Isabelle/UTP: Mechanised Theory Engineering for Computer Scientists
Simon Foster
University of York
July 31, 2013
1
Isabelle/UTP: Mechanised Theory Engineering for Computer Scientists - - PowerPoint PPT Presentation
Isabelle/UTP: Mechanised Theory Engineering for Computer Scientists Simon Foster University of York July 31, 2013 1 Outline COMPASS Overview of Isabelle/UTP Automating Proof Mechanising UTP Theories 2 Outline COMPASS Overview of
1
2
3
4
5
6
7
8
9
10
◮ mechanising programming language semantics
◮ program verification / refinement
11
◮ proof checking (decidable) ◮ proof automation (undecidable)
◮ Functional Programming: f = reverse · map g ◮ Logic: ∀ xs. map f (map g xs) = map (f · g) xs ◮ similar syntax to ML and Haskell
12
13
◮ logical operators, quantifiers, expressions, alpha renaming,
◮ sequential composition ◮ assignment x := v ◮ if-then-else P ⊳ c ⊲ Q
◮ weakest and strongest fixpoint µX.P, νX.P ◮ finite iteration (Kleene Star) P⋆
14
15
16
17
18
19
20
◮ simplifier – equational rewriting ◮ blast – classical deduction (introduction / elimination) ◮ auto – combination of several tools ◮ Z3 – satisfiability modulo theorems ◮ sledgehammer – call external automated theorem provers
21
22
23
◮ utp-pred-tac: UTP predicates as HOL predicates ◮ handles std. logic operators ∧, ∨, ⇒, ⊑, ¬, ∃, ∀ ◮ utp-rel-tac: UTP predicates as HOL relations ◮ classical binary relations: P (A × A) ◮ handles most rel operators ∪, ∩, , II, false, ⌣ ◮ utp-xrel-tac: well-formed UTP relations as HOL relations ◮ adds ¬ and true: complete relation algebra 24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43