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

Proving integration within a set

I am attempting to use the fundamental theorem of calculus to prove the lemma lm1: lemma lm1: fixes f :: "real ⇒ real" assumes "∀x∈{a..b}. (f has_vector_derivative f' x) (at x within {a .. b})" "∀x∈{a..b}. a ≤ x" "∀x∈{a..b}. x ≤ b" shows "∀x∈{a..b}.…
A K
  • 65
  • 5
0
votes
2 answers

Isabelle: understanding the use of quantifiers

I have found that I can prove the following lemma, which seems false to me. lemma assumes "∀a b. f a > f b ∧ a ≠ b" shows "∀a b. f b > f a" using assms by auto How can the lemma above be true? Is Isabelle substituting values as I have used the ∀…
creator22
  • 9
  • 1
0
votes
1 answer

Isabelle 'fun' without 'where'?

Isabelle doesn't let me write just fun f :: "nat list => nat"; I have to add at least one defining equation, e.g. where "f [] = 5". But since it's fine to leave some constructors undefined, why can't I simply leave all constructors undefined? Then,…
John Wickerson
  • 1,204
  • 12
  • 23
0
votes
1 answer

Apply lemmas to bound variables

I can prove the following lemma: lemma lem1: assumes "(a::real) ≤ b / c" and "c > 0" shows "a * c ≤ b" using assms using pos_le_divide_eq[of "c" "a" "b"] by auto however, if I use bound variables, the proof does not work. lemma lem2: assumes "∀a b…
creator22
  • 9
  • 1
0
votes
2 answers

Converting free variables to bound variables

I want to prove the following lemma lemma assumes "f (w+n) - f w / n ≤ g (w+n)" shows "∀n. (f (w+n) - f w) / n ≤ g (w+n)" I assumed this would be very simple however it is proving trickier than I first thought. From my thoughts, the inequality in…
creator22
  • 9
  • 1
0
votes
4 answers

Substituting for the lambda expression in Isabelle

Given the function f: definition f :: "real => real" where "f x = x" I can show that as n tends to 0, f(x+n) tends to f(x) by the following lemma lemma "(λn. f(x+n)) -- 0 --> f x" unfolding f_def apply (auto intro!: tendsto_eq_intros) done As a…
creator22
  • 9
  • 1
0
votes
1 answer

Working with generic definitions in Isabelle

I am working with limits and I am unable to prove the following definition func :: "real ⇒ real" where "func = real" lemma "(λh. (func (x+h))) -- 0 --> (func (x))" unfolding func_def apply (auto intro!: tendsto_eq_intros) However if I replace the…
creator22
  • 9
  • 1
0
votes
1 answer

Applying lemma to solve goal

I am trying to prove the following lemma using the theorem lemma lm22: fixes f :: "real ⇒ 'a::banach" assumes "a ≤ b" and "∀x∈{a .. b}. (f has_vector_derivative f' x) (at x within {a .. b} shows "(f' has_integral (f b - f a)) {a .. b}" Isabelle…
A K
  • 65
  • 5
0
votes
2 answers

Solving equations with an associative and commutative operator

Consider a goal like this in Isabelle (and don’t worry about ccProd and ccFromList): ccProd {x} (set xs) ⊔ (ccProd {x} (set ys) ⊔ (ccFromList xs ⊔ (ccFromList ys ⊔ ccProd (set xs) (set ys)))) = ccProd {x} (set xs) ⊔ (ccFromList xs ⊔ (ccFromList ys ⊔…
Joachim Breitner
  • 25,395
  • 6
  • 78
  • 139
0
votes
0 answers

Proving Skip: "(SKIP,s)⇒ s" terminates in Isabelle

How can I show that "(SKIP,s)⇒ s", which is a rule of the Big Step Semantics, terminates in Isabelle? Big Step Semantics is defined as follows "(SKIP,s)⇒ s" is one command. inductive big_step :: "com × state ⇒ state ⇒ bool" where Skip:…
Sophie Sepp
  • 521
  • 1
  • 5
  • 16
0
votes
1 answer

Getting coefficients of a polynomial mod as an int list in Isabelle

I am attempting to get an int list of coefficients of a remainder of the division of two polynomials. I have been attempting to use mod from Polynomial.thy on two polynomials of type int poly. However, I am getting the error: Type unification…
0
votes
2 answers

Type hierarchy definition in Isabelle

I would like to build a kind of type hierarchy in Isabelle: B is of type A ( B::A ) C and D are of type of B (C,D ::B) E and F are of type of C (E,F ::C) What is the best way to encode this in Isabelle? Is there any direct way to define…
qartal
  • 2,024
  • 19
  • 31
0
votes
1 answer

How to define Subtypes in Isabelle and what they mean?

The question regarding subtyping in Isabelle is very lengthy here. So my simple question is that how I can define type B to be a subtype of A if I define A as below: typedecl A By doing this I would like to make all operations and relations…
qartal
  • 2,024
  • 19
  • 31
0
votes
1 answer

Untyped set operations in Isabelle

I have the following code in Isabelle: typedecl type1 typedecl type2 consts A::"type1 set" B::"type2 set" When I want to use union operation with A and B as bellow: axiomatization where c0: "A ∩ B = {}" Since A and B are sets of different…
qartal
  • 2,024
  • 19
  • 31
0
votes
1 answer

How type casting is possible in isabelle

Supose I have the following code in Isabelle: typedecl type1 typedecl type2 typedecl type3 consts A::"type1 set" B::"type2 set" When I want to use union operation with A and B as bellow: axiomatization where c0: "A ∪ B = {}" Since A and B…
qartal
  • 2,024
  • 19
  • 31