components of a hammer for type theory
play

Components of a Hammer for Type Theory Goal Translation and Proof - PowerPoint PPT Presentation

Components of a Hammer for Type Theory Goal Translation and Proof Reconstruction ukasz Czajka Cezary Kaliszyk University of Innsbruck May 24, 2016 Interactive Proof in Type Theory Why do we love it? Why do we hate it? 2 / 14


  1. Components of a Hammer for Type Theory Goal Translation and Proof Reconstruction Łukasz Czajka Cezary Kaliszyk University of Innsbruck May 24, 2016

  2. Interactive Proof in Type Theory · Why do we love it? · Why do we hate it? 2 / 14

  3. Interactive Proof in Type Theory · Why do we love it? · The power we need · Successful projects today · Why do we hate it? · ITPs are stupid · large parts of proofs are tedious 2 / 14

  4. Interactive Proof in Type Theory · Why do we love it? · The power we need · Successful projects today · Why do we hate it? · ITPs are stupid · large parts of proofs are tedious · Automation for Interactive Proof · Tableaux: Itaut, Tauto, Blast · Rewriting: Simp, Subst, HORewrite · Decision Procedures: Congruence Closure, Ring, Omega, Cooper, ... 2 / 14

  5. Interactive Proof in Type Theory · Why do we love it? · The power we need · Successful projects today · Why do we hate it? · ITPs are stupid · large parts of proofs are tedious · Automation for Interactive Proof · Tableaux: Itaut, Tauto, Blast · Rewriting: Simp, Subst, HORewrite · Decision Procedures: Congruence Closure, Ring, Omega, Cooper, ... · AI / ATP techniques: Hammers · MizAR for Mizar · Sledgehammer for Isabelle / HOL · HOL(y)Hammer for HOL Light and HOL4 2 / 14

  6. Hammer Overview Current Goal TPTP ITP Proof ATP Proof Hammer ATP Proof Assistant 3 / 14

  7. Evaluations Top-level goals: · HOL(y)Hammer · Flyspeck text formalization: 47% · Similar results for HOL4 and CakeML · Sledgehammer · Probability theory: 40% · Term rewriting: 44% · Java threads: 59% · MizAR · Mizar Mathematical Library: 40% More for subgoals 4 / 14

  8. For Type Theory? Premise selection · Features · Machine Learning Encoding CoC and variants in formalisms of ATPs · Soundness? Completeness? Efficiency! · This talk Reconstruction: Get an ITP proof · Extract information from the ATP proof · Redo the proof 5 / 14

  9. Translation Target logic Target logic: untyped FOL with equality. 6 / 14

  10. Translation Three functions � , � and � . 7 / 14

  11. Translation Three functions � , � and � . · The function � encodes propositions as FOL formulas and is used for terms of Coq having type Prop. 7 / 14

  12. Translation Three functions � , � and � . · The function � encodes propositions as FOL formulas and is used for terms of Coq having type Prop. · If Γ ⊢ t : Prop then � Γ ( Π x : t . s ) = � Γ ( t ) → � Γ , x : t ( s ) . · If Γ �⊢ t : Prop then � Γ ( Π x : t . s ) = ∀ x . � Γ ( t , x ) → � Γ , x : t ( s ) . 7 / 14

  13. Translation Three functions � , � and � . · The function � encodes propositions as FOL formulas and is used for terms of Coq having type Prop. · If Γ ⊢ t : Prop then � Γ ( Π x : t . s ) = � Γ ( t ) → � Γ , x : t ( s ) . · If Γ �⊢ t : Prop then � Γ ( Π x : t . s ) = ∀ x . � Γ ( t , x ) → � Γ , x : t ( s ) . · The function � encodes types as guards and is used for terms of Coq which have type Type. 7 / 14

  14. Translation Three functions � , � and � . · The function � encodes propositions as FOL formulas and is used for terms of Coq having type Prop. · If Γ ⊢ t : Prop then � Γ ( Π x : t . s ) = � Γ ( t ) → � Γ , x : t ( s ) . · If Γ �⊢ t : Prop then � Γ ( Π x : t . s ) = ∀ x . � Γ ( t , x ) → � Γ , x : t ( s ) . · The function � encodes types as guards and is used for terms of Coq which have type Type. For instance, for a (closed) type τ = Π x : α . β ( x ) we have � ( τ , f ) = ∀ x . � ( α , x ) → � ( β ( x ) , f x ) 7 / 14

  15. Translation Three functions � , � and � . · The function � encodes propositions as FOL formulas and is used for terms of Coq having type Prop. · If Γ ⊢ t : Prop then � Γ ( Π x : t . s ) = � Γ ( t ) → � Γ , x : t ( s ) . · If Γ �⊢ t : Prop then � Γ ( Π x : t . s ) = ∀ x . � Γ ( t , x ) → � Γ , x : t ( s ) . · The function � encodes types as guards and is used for terms of Coq which have type Type. For instance, for a (closed) type τ = Π x : α . β ( x ) we have � ( τ , f ) = ∀ x . � ( α , x ) → � ( β ( x ) , f x ) · The function � encodes Coq terms as FOL terms. 7 / 14

  16. Translation Three functions � , � and � . · The function � encodes propositions as FOL formulas and is used for terms of Coq having type Prop. · If Γ ⊢ t : Prop then � Γ ( Π x : t . s ) = � Γ ( t ) → � Γ , x : t ( s ) . · If Γ �⊢ t : Prop then � Γ ( Π x : t . s ) = ∀ x . � Γ ( t , x ) → � Γ , x : t ( s ) . · The function � encodes types as guards and is used for terms of Coq which have type Type. For instance, for a (closed) type τ = Π x : α . β ( x ) we have � ( τ , f ) = ∀ x . � ( α , x ) → � ( β ( x ) , f x ) · The function � encodes Coq terms as FOL terms. · � Γ ( ts ) is equal to: 7 / 14

  17. Translation Three functions � , � and � . · The function � encodes propositions as FOL formulas and is used for terms of Coq having type Prop. · If Γ ⊢ t : Prop then � Γ ( Π x : t . s ) = � Γ ( t ) → � Γ , x : t ( s ) . · If Γ �⊢ t : Prop then � Γ ( Π x : t . s ) = ∀ x . � Γ ( t , x ) → � Γ , x : t ( s ) . · The function � encodes types as guards and is used for terms of Coq which have type Type. For instance, for a (closed) type τ = Π x : α . β ( x ) we have � ( τ , f ) = ∀ x . � ( α , x ) → � ( β ( x ) , f x ) · The function � encodes Coq terms as FOL terms. · � Γ ( ts ) is equal to: · ǫ if Γ ⊢ ts : α : Prop, 7 / 14

  18. Translation Three functions � , � and � . · The function � encodes propositions as FOL formulas and is used for terms of Coq having type Prop. · If Γ ⊢ t : Prop then � Γ ( Π x : t . s ) = � Γ ( t ) → � Γ , x : t ( s ) . · If Γ �⊢ t : Prop then � Γ ( Π x : t . s ) = ∀ x . � Γ ( t , x ) → � Γ , x : t ( s ) . · The function � encodes types as guards and is used for terms of Coq which have type Type. For instance, for a (closed) type τ = Π x : α . β ( x ) we have � ( τ , f ) = ∀ x . � ( α , x ) → � ( β ( x ) , f x ) · The function � encodes Coq terms as FOL terms. · � Γ ( ts ) is equal to: · ǫ if Γ ⊢ ts : α : Prop, · � Γ ( t ) if Γ ⊢ s : α : Prop, 7 / 14

  19. Translation Three functions � , � and � . · The function � encodes propositions as FOL formulas and is used for terms of Coq having type Prop. · If Γ ⊢ t : Prop then � Γ ( Π x : t . s ) = � Γ ( t ) → � Γ , x : t ( s ) . · If Γ �⊢ t : Prop then � Γ ( Π x : t . s ) = ∀ x . � Γ ( t , x ) → � Γ , x : t ( s ) . · The function � encodes types as guards and is used for terms of Coq which have type Type. For instance, for a (closed) type τ = Π x : α . β ( x ) we have � ( τ , f ) = ∀ x . � ( α , x ) → � ( β ( x ) , f x ) · The function � encodes Coq terms as FOL terms. · � Γ ( ts ) is equal to: · ǫ if Γ ⊢ ts : α : Prop, · � Γ ( t ) if Γ ⊢ s : α : Prop, · � Γ ( t ) � Γ ( s ) otherwise. 7 / 14

  20. Translation Three functions � , � and � . · The function � encodes propositions as FOL formulas and is used for terms of Coq having type Prop. · If Γ ⊢ t : Prop then � Γ ( Π x : t . s ) = � Γ ( t ) → � Γ , x : t ( s ) . · If Γ �⊢ t : Prop then � Γ ( Π x : t . s ) = ∀ x . � Γ ( t , x ) → � Γ , x : t ( s ) . · The function � encodes types as guards and is used for terms of Coq which have type Type. For instance, for a (closed) type τ = Π x : α . β ( x ) we have � ( τ , f ) = ∀ x . � ( α , x ) → � ( β ( x ) , f x ) · The function � encodes Coq terms as FOL terms. · � Γ ( ts ) is equal to: · ǫ if Γ ⊢ ts : α : Prop, · � Γ ( t ) if Γ ⊢ s : α : Prop, · � Γ ( t ) � Γ ( s ) otherwise. x : � · � Γ ( λ� t . s ) = F � y where s does not start with a lambda-abstraction x : � any more, F is a fresh constant, � y = FV ( λ� t . s ) and x : � ∀ � y . � Γ ( ∀ � t . F � y � x = s ) is a new axiom. 7 / 14

  21. Translation Translating inductive declarations For inductive types: · Translate the typing of each constructor (using the � function). 8 / 14

  22. Translation Translating inductive declarations For inductive types: · Translate the typing of each constructor (using the � function). · Add axioms stating injectivity of constructors, axioms stating non-equality of different constructors, and the “inversion” axioms for elements of the inductive type. 8 / 14

  23. Translation Translating inductive declarations For inductive types: · Translate the typing of each constructor (using the � function). · Add axioms stating injectivity of constructors, axioms stating non-equality of different constructors, and the “inversion” axioms for elements of the inductive type. · Translate the typing of the inductive definition. 8 / 14

  24. Translation Translating inductive declarations For inductive types: · Translate the typing of each constructor (using the � function). · Add axioms stating injectivity of constructors, axioms stating non-equality of different constructors, and the “inversion” axioms for elements of the inductive type. · Translate the typing of the inductive definition. · Translate induction principles and recursor definitions. 8 / 14

  25. Proof reconstruction · From an ATP run we obtain a list of FOL axioms that the ATP needed in the proof. 9 / 14

Recommend


More recommend