Download presentation
1
CAS- 734 (Presentation -1) By : Vasudha Kapil
ISABELLE/HOL CAS- 734 (Presentation -1) By : Vasudha Kapil
2
Outline Intoduction Theory Format HOL Proof format Example
3
ISABELLE/HOL Isabelle theorem prover is an interactive proof assistant. It is a Generic Proof Assistant. It was developed at University of Cambridge (Laury Paulson) , TU Munchen (Tobias Nipkow) and Universt Paris Sud (Makarius Wenzel) Isabelle/HOL is specialization of Isabelle for HOL (Higher Order Logic).
4
INSTALLATION Download system from :
It is currently available for three platforms : WINDOWS MAC OS X LINUX Platform specific application bundle includes sources, documentation and add on components required.
5
INTERFACE Isabelle jEdit is the interface for current version of Isabelle/HOL. Interactive Development Environment Parses and interprets file while it is typed. List of mathematical symbols provided.
6
THEORIES General format of theory T in Isabelle/HOL is : Theory T
Imports B Bn Begin (Declarations, Definitions & Proofs) end
7
Brief Review of HOL HOL has HOL = functional programming + logic
datatypes recursive functions logical operators (∧, −→, ∀, ∃, ) HOL = functional programming + logic
8
Types Basic Syntax – τ ::= (τ )
| bool | nat | base types | ’a | ’b | type variables | τ ⇒ τ total functions | sets, lists type constructors | user-defined types All terms and formulae should be well typed in Isabelle.
9
Type Inference and Type Annotation
Type Inference : Isabelle automatically computes the type of each variable in a term. Type Annotations : In the presence of overloaded functions type inference is not always possible. Type constraints are needed in such cases. Syntax : f (x::nat)
10
Terms Syntax Terms must be well-typed
| a constant or variable (identifier) | term term function application | λx. term function “abstraction” | lots of syntactic sugar Terms must be well-typed Notation: t :: τ means t is a well-typed term of type τ .
11
Formulae They are terms of type bool (True & False) and usual logical connectives. Syntax : form ::= (form) | term = term | ¬form| form ∧ form | form ∨ form | form −→ form| ∀x. form | ∃x. form
12
Variables Isabelle has three kinds of variables : Bound Variables
Free Variables Schematic variables or unknown. Example : ?x It has ‘?’ as its first character.
13
Functions Function definition schemas in Isabelle/HOL
Non Recursive with definition definition name :: “domain” where “fun_def” Example : definition sq :: “nat => nat” where “sq n= n*n” Primitive Recursive with primrec primrec name :: “domain” where “fun_def1| fun_def2| |fun_defn” Example : primrec rev :: "'a list =>'a list“ where "rev [] = []" | "rev (x # xs) = (rev (x # [])"
14
Functions (continued)
Well founded recursion with fun Syntax : fun f :: “τ” where “equations” Fun has automatic termination proof. Well founded recursion with function. Syntax : function f :: “τ” .... by pat_completeness auto Termination by lexicographic_order User supplied termination proof.
15
Proofs General format:
lemma name : "..." apply (...) . done If the lemma is suitable as a simplification rule: lemma name [simp]: "..."
16
Automated Methods Methods are commands to work on proof state.
Syntax : apply (method <parameters>) assumption : It solves a sub goal if consequent is contained in set of assumptions. auto : Instructs Isabelle to try and prove all subgoals automatically essentially by simplifying them. simp : Same as auto but act on subgoal 1 only. [simp] : It can be used to make a theorem simplification rule. Example : prove rev(rev x) = x lemma rev_rev [simp] : “rev(rev x) = x”
17
Methods (continued) blast : Covers logic, sets, relations
Doesn’t support equality. arith : Covers linear arithmetic. Supports int, reals as well Doesn’t support complex multiplication (*) Induction : apply (induction m) : Tells Isabelle to start a proof by induction on m.
18
EXAMPLE theory addition imports Main begin fun add :: "nat⇒ nat ⇒ nat" where "add 0 n = n" | "add (Suc m) n = Suc(add m n)" lemma add_ex [simp]: "add m 0 = m" apply(induction m) apply(auto) done end
19
Bibliography Theorem Proving with Isabelle/HOL : By Tobias Nipkow. Isabelle/HOL : A Proof Assistant for Higher Order Logic. By- Tobias Nipkow, Lawrence C. Paulson, Markus Wenzel
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.