Harnessing SMT solvers for TLA
+ Proofs Stephan Merz and Hern´ an Vanzetto TLA
+ Workshop, Paris, France
August 27th, 2012
1
+ Proofs Harnessing SMT solvers for TLA Stephan Merz and Hern an - - PowerPoint PPT Presentation
+ Proofs Harnessing SMT solvers for TLA Stephan Merz and Hern an Vanzetto + Workshop, Paris, France TLA August 27th, 2012 1 Introduction + proof language: TLA Hierarchical proof structure Top-down development: users refine assertions
+ Workshop, Paris, France
1
+ proof language:
◮ invoke proof method ◮ cite necessary assumptions and facts ◮ expand definitions
+ Proof System:
+ proofs
+ Toolbox
2
3
+
◮ Faithful encoding of TLA
+ over Isabelle’s meta-logic
◮ Calls predefined Isabelle automatic proof methods ◮ Used to certify proofs of other backend provers 4
+
◮ Faithful encoding of TLA
+ over Isabelle’s meta-logic
◮ Calls predefined Isabelle automatic proof methods ◮ Used to certify proofs of other backend provers
◮ Tableau prover for first-order logic with equality ◮ Includes extensions for TLA
+ on sets, functions, ...
◮ Backend called by default ; proofs certified by Isabelle 4
+
◮ Faithful encoding of TLA
+ over Isabelle’s meta-logic
◮ Calls predefined Isabelle automatic proof methods ◮ Used to certify proofs of other backend provers
◮ Tableau prover for first-order logic with equality ◮ Includes extensions for TLA
+ on sets, functions, ...
◮ Backend called by default ; proofs certified by Isabelle
◮ Cooper’s algorithm for Presburger arithmetic 4
+
◮ Faithful encoding of TLA
+ over Isabelle’s meta-logic
◮ Calls predefined Isabelle automatic proof methods ◮ Used to certify proofs of other backend provers
◮ Tableau prover for first-order logic with equality ◮ Includes extensions for TLA
+ on sets, functions, ...
◮ Backend called by default ; proofs certified by Isabelle
◮ Cooper’s algorithm for Presburger arithmetic
◮ Available since the last public version of TLAPS (v1.0) ◮ Based on type inference 4
5
1
2
3
4
5
6
7
+ expressions
◮ Ad-hoc type system for TLA
+ terms
7
+ expressions
◮ Ad-hoc type system for TLA
+ terms
◮ x /
7
+ expressions
◮ Ad-hoc type system for TLA
+ terms
◮ x /
7
+ formulas are translated to SMT input formats
+ expressions contain only operators that have a
8
9
9
10
+ terms are mapped to a unique SMT sort U
◮ union : U × U → U
◮ Axiom for ∪:
◮ Primitive operators (∈, f [x], domain) are left uninterpreted
10
11
11
1 Grounding expressions: rewrite based on operator semantics ◮ [
◮ [
◮ [
12
1 Grounding expressions: rewrite based on operator semantics ◮ [
◮ [
◮ [
2 Disambiguation of equalities by inferred kinds ◮ [
◮ S = {a} ∪ {}
12
1 Grounding expressions: rewrite based on operator semantics ◮ [
◮ [
◮ [
2 Disambiguation of equalities by inferred kinds ◮ [
◮ S = {a} ∪ {}
3 Term-rewriting of top-level equalities ◮ assume T = {1,2}
12
1 Grounding expressions: rewrite based on operator semantics ◮ [
◮ [
◮ [
2 Disambiguation of equalities by inferred kinds ◮ [
◮ S = {a} ∪ {}
3 Term-rewriting of top-level equalities ◮ assume T = {1,2}
4 Abstraction of non-basic operators ◮ ∀a : P({a}∪{}) ⇔ P({a}) −
12
◮ includes some basic arithmetic
◮ mostly based on records
+, SimpleArithmetic
13
14
+
15
+ proof obligation
16
1 Any expression choose x : P(x) can be abstracted to a new
2 Use of the following TLA
+ theorem to ground the expression
17