Isabelle theorem prover
|
|
The Isabelle theorem prover an interactive theorem proving framework, a successor of the HOL theorem prover.
Example taken from a theory file
subsection{*Inductive definition of the even numbers*}
consts Ev :: "nat set" | Ev of type set of naturals
inductive Ev | Inductive definition, two cases
intros
ZeroI: "0 : Ev"
Add2I: "n : Ev ==> Suc(Suc n) : Ev"
text{* Using the introduction rules: *}
lemma "Suc(Suc(Suc(Suc 0))) \<in> Ev" | four belongs to Ev
apply(rule Add2I) | proof
apply(rule Add2I)
apply(rule ZeroI)
done
text{*A simple inductive proof: *}
lemma "n:Ev ==> n+n : Ev" | 2n is even if n is even
apply(erule Ev.induct) | induction
apply(simp) | simplification
apply(rule Ev.ZeroI)
apply(simp)
apply(rule Ev.Add2I)
apply(rule Ev.Add2I)
apply(assumption)
done
External link
- Isabelle website (http://www.cl.cam.ac.uk/Research/HVG/Isabelle/index.html)
See also: theorem prover.
