Questions tagged [isabelle]

Isabelle is a generic proof assistant, with Isabelle/HOL as main instance.

Isabelle is a generic proof assistant, which is best-known for its Isabelle/HOL instance. It allows mathematical formulas to be expressed in a formal language and provides tools for proving those formulas in a logical calculus. HOL specifications may be turned into program code in SML, OCaml, Haskell, or Scala. Isabelle includes many add-on tools like CVC4, Z3, SPASS, E prover.

User interfaces

Important links

1111 questions
0
votes
1 answer

Isabelle: degree of polynomial multiplied with constant

I am working with the library HOL/Library/Polynomial.thy. A simple property didn't work. E.g., the degree of 2x *2 is equal to the degree of 2x- How can I prove the lemmas (i.e., remove "sorry"): lemma mylemma: fixes y :: "('a::comm_ring_1…
mrsteve
  • 4,082
  • 1
  • 26
  • 63
0
votes
1 answer

Why is my definition of a function that chooses an element from a finite set inconsistent?

I would like to reason about functions that choose one element from a finite set. I tried to define a predicate that tells me whether some given function is such a “chooser” function: definition chooser :: "('a set ⇒ 'a) ⇒ bool" where "chooser f ⟷…
Christoph Lange
  • 595
  • 2
  • 13
0
votes
2 answers

Degree of polynomial smaller than a number

I am working on a lemma that shows that the degree of a sum of monomials is always less or equal to n if the exponent of each monomial is less or equal to n. lemma degree_poly_smaller: fixes a :: "('a::comm_ring_1 poly)" and n::nat shows…
mrsteve
  • 4,082
  • 1
  • 26
  • 63
0
votes
1 answer

how to create an object logic via thf

How can I create an object logic in Isabelle via thf? What I have found about creating an object logic in the documentation was 2.3 Example: First-Order Logic in the Isabelle/Isar reference manual. What else should I read on object logics and…
Gergely
  • 6,879
  • 6
  • 25
  • 35
0
votes
1 answer

Isabelle: transpose a matrix that includes a constant factor

In my Isabelle theory I have a matrix with a constant factor: ... k :: 'n and c :: 'a (χ i j. if j = k then c * (A $ i $ j) else A $ i $ j) I can calculate the transposed matrix: (transpose (χ i j. if j = k then c * (A $ i $ j) else A $ i $…
mrsteve
  • 4,082
  • 1
  • 26
  • 63
0
votes
1 answer

What Isabelle library to reuse for expressing that some function is a linear order (on some set)

In my Isabelle formalisation I'm dealing with finite sets of natural numbers, and on these sets I'd like to consider functions that have the property of being a linear order. I see that there are several different formalisations of orders in the…
Christoph Lange
  • 595
  • 2
  • 13
0
votes
2 answers

Working with Isabelle's code generator: Data refinement and higher order functions

This is a follow-up on Isabelle's Code generation: Abstraction lemmas for containers?: I want to generate code for the_question in the following theory: theory Scratch imports Main begin typedef small = "{x::nat. x < 10}" morphisms to_nat small …
Joachim Breitner
  • 25,395
  • 6
  • 78
  • 139
0
votes
2 answers

What is a good way to define a finite multiplication table in Isar?

Suppose I have a binary operator f :: "sT => sT => sT". I want to define f so that it implements a 4x4 multiplication table for the Klein four group, shown here on the Wiki: http://en.wikipedia.org/wiki/Klein_four-group Here, all I'm attempting to…
user2190811
0
votes
2 answers

Generating code from locales without interpretation

I would love to generate code from locale definitions directly, without interpretation. Example: (* A locale, from the code point of view, similar to a class *) locale MyTest = fixes L :: "string list" assumes distinctL: "distinct L" begin …
corny
  • 7,824
  • 3
  • 14
  • 20
0
votes
1 answer

Exporting code from locales with multiple parameters

according to the codegen documentation section "7.3 Locales and interpretation", exporting code from locales is a bit tricky but achievable. The following example works fine: locale localTest = fixes A :: "string" begin fun concatA :: "string ⇒…
corny
  • 7,824
  • 3
  • 14
  • 20
0
votes
3 answers

code_pred in locales

I want to create an executable inductive within a locale. Without the locale everything works fine: definition "P a b = True" inductive test :: "'a ⇒ 'a ⇒ bool" where "test a a" | "test a b ⟹ P b c ⟹ test a c" code_pred test . However, when…
corny
  • 7,824
  • 3
  • 14
  • 20
-1
votes
1 answer

What does depth refer to in Isar Virtual Machine output?

Here is a proof: theory Example imports Main begin datatype natural = Zero | Succ natural lemma "⋀ n. n = Succ m ⟹ n ≠ Zero" proof - fix n assume "n = Succ m" from this show "n ≠ Zero" by (metis natural.distinct(2)) qed end The depth value…
Gergely
  • 6,879
  • 6
  • 25
  • 35
-2
votes
1 answer

Solving a system of linear equations on Isabelle

I am having problem in representing a system of linear equations on Isabelle/HOL. I suppose I should simply write some equations jointed by "\and" but I have problem with type declaration for functions (+, *, -), coefficients, variables. Can…
Kowmei
  • 1
-3
votes
1 answer

Proper way to prove correctness and termination of algorithm from transforming formulas

I would like to prove the correctness and termination of a function/algorithm that transforms any first-order logic formula into its Negation Normal Form (NNF). However, I do not even know how to start.Could anyone please help me? I've tried to use…
Anderson
  • 1
  • 1
-4
votes
1 answer

Limit of c^n (with ¦c¦<1) is 0 (Isabelle)

Does anyone know a rule for showing "¦c¦<1 ==> (λn. c^n) ---> 0" in the reals? I have found the following rules using the 'query' panel: Limits.LIMSEQ_rabs_realpow_zero2: ¦?c¦ < 1 ⟹ op ^ ?c ---> 0 Limits.LIMSEQ_rabs_realpow_zero: ¦?c¦ < 1 ⟹ op ^…
IIM
  • 533
  • 3
  • 11
1 2 3
74
75