higher order proof reconstruction from paramodulation
play

Higher order proof reconstruction from paramodulation-based - PowerPoint PPT Presentation

Higher order proof reconstruction from paramodulation-based refutations: the unit equality case Andrea Asperti and Enrico Tassi Department of Computer Science, University of Bologna 28-30 June 2007 Context What we had: Matita is an ITP


  1. Higher order proof reconstruction from paramodulation-based refutations: the unit equality case Andrea Asperti and Enrico Tassi Department of Computer Science, University of Bologna 28-30 June 2007

  2. Context What we had: ◮ Matita is an ITP developed at the university of Bologna ◮ Lack of automation is one of the most reported issues of ITPs ◮ ATP are effective tools, but usually do not provide a proof object, sometimes a minimalistic trace mainly for efficiency (both space and time). ◮ Matita follows the independent verification principle: we need a real CIC proof ◮ We implemented our own first order paramodulation based automatic theorem prover (that, of course, provides a good trace), restricted to the unit equality case.

  3. Context What we had: ◮ Matita is an ITP developed at the university of Bologna ◮ Lack of automation is one of the most reported issues of ITPs ◮ ATP are effective tools, but usually do not provide a proof object, sometimes a minimalistic trace mainly for efficiency (both space and time). ◮ Matita follows the independent verification principle: we need a real CIC proof ◮ We implemented our own first order paramodulation based automatic theorem prover (that, of course, provides a good trace), restricted to the unit equality case. ◮ Why your own prover?

  4. Context What we had: ◮ Matita is an ITP developed at the university of Bologna ◮ Lack of automation is one of the most reported issues of ITPs ◮ ATP are effective tools, but usually do not provide a proof object, sometimes a minimalistic trace mainly for efficiency (both space and time). ◮ Matita follows the independent verification principle: we need a real CIC proof ◮ We implemented our own first order paramodulation based automatic theorem prover (that, of course, provides a good trace), restricted to the unit equality case. ◮ Why your own prover? For fun :-)

  5. Aim What we want: ◮ To be able to read the proofs: ◮ To understand what the automatic procedure did. ◮ Nice natural language rendering using MoWGLI tech. a = b by lemma 1 = c by lemma 2 = d by lemma 3

  6. Aim What we want: ◮ To be able to read the proofs: ◮ To understand what the automatic procedure did. ◮ Nice natural language rendering using MoWGLI tech. a = b by lemma 1 = c by lemma 2 = d by lemma 3 ◮ Save earth from overheating ◮ Fast to typecheck ◮ Not re-doing proof search every time we compile a file

  7. Plan The plan: 1. Start from the trace of the prover 2. Transform it into a CIC object 3. Apply type preserving transformations to obtain a nice proof object suitable for point 4. 4. Render it in natural language (re-using MoWGLI/Matita rendering facility) 5. Thanks to C. Sacerdoti Coen declarative language, the printed proof is a re-executable script (PLMMS talk).

  8. Outline ◮ Equality in CIC ◮ Superposition rules ◮ Proof reconstruction ◮ Demo ◮ Conclusion

  9. Equality in CIC ◮ Not built in, but an inductive predicate with one constructor: refl eq : x = A x ◮ As any inductive type, comes with an eliminator in two flavours: h : P a 1 k : a 1 = A a 2 ( eq ind A a 1 P h a 2 k ) : P a 2 h : P a 2 k : a 1 = A a 2 ( eq ind r A a 2 P h a 1 k ) : P a 1

  10. Superposition rules ◮ Superposition left (backward reasoning) ⊢ l = A r t = B s ⊢ C t [ r ] p σ = B s σ ⊢ C σ ◮ Superposition right (forward reasoning) ⊢ l = A r ⊢ t = B s ⊢ t [ r ] p σ = B s σ ◮ Equality resolution t = A s ⊢ C ⊢ C σ

  11. � � � � � � � � � � Data flow (1/3) � � � � � CIC Proof ψ eq ind trace � � � � � � � � � � � � ρ � � � � � � CIC CIC eq trans θ canonical eq sym

  12. � � � � � � � � � � Data flow (1/3) � � � � � CIC Proof ψ eq ind trace � � � � � � � � � � � � ρ � � � � � � CIC CIC eq trans θ canonical eq sym

  13. Superposition rules with CIC proofs ◮ Superposition left (backward reasoning) ⊢ l = A r t = B s ⊢ C t [ r ] p σ = B s σ ⊢ C σ ◮ Superposition right (forward reasoning) ⊢ l = A r ⊢ t = B s ⊢ t [ r ] p σ = B s σ ◮ Equality resolution t = A s ⊢ C ⊢ C σ

  14. Superposition rules with CIC proofs ◮ Superposition left (backward reasoning) ⊢ h : l = A r α : t = B s ⊢ M : C β : t [ r ] p σ = B s σ ⊢ M σ [ R /ασ ] : C σ R = ( eq ind r A r σ ( λ x : A . t [ x ] p = B s ) σ β l σ h σ ) : t σ = B s σ ◮ Superposition right (forward reasoning) ⊢ l = A r ⊢ t = B s ⊢ t [ r ] p σ = B s σ ◮ Equality resolution t = A s ⊢ C ⊢ C σ

  15. Superposition rules with CIC proofs ◮ Superposition left (backward reasoning) ⊢ h : l = A r α : t = B s ⊢ M : C β : t [ r ] p σ = B s σ ⊢ M σ [ R /ασ ] : C σ R = ( eq ind r A r σ ( λ x : A . t [ x ] p = B s ) σ β l σ h σ ) : t σ = B s σ ◮ Superposition right (forward reasoning) ⊢ h : l = A r ⊢ k : t = B s ⊢ R : t [ r ] p σ = B s σ R = ( eq ind A l σ ( λ x : A . t [ x ] p = B s ) σ k σ r σ h σ ) : t [ r ] p σ = B s σ ◮ Equality resolution t = A s ⊢ C ⊢ C σ

  16. Superposition rules with CIC proofs ◮ Superposition left (backward reasoning) ⊢ h : l = A r α : t = B s ⊢ M : C β : t [ r ] p σ = B s σ ⊢ M σ [ R /ασ ] : C σ R = ( eq ind r A r σ ( λ x : A . t [ x ] p = B s ) σ β l σ h σ ) : t σ = B s σ ◮ Superposition right (forward reasoning) ⊢ h : l = A r ⊢ k : t = B s ⊢ R : t [ r ] p σ = B s σ R = ( eq ind A l σ ( λ x : A . t [ x ] p = B s ) σ k σ r σ h σ ) : t [ r ] p σ = B s σ ◮ Equality resolution α : t = A s ⊢ M : C ⊢ M [ refl eq A t σ/α ] : C σ

  17. Superposition rules with CIC proofs ◮ Superposition left (backward reasoning) ⊢ h : l = A r α : t = B s ⊢ M : C t [ r ] p σ = B s σ ⊢ C σ ◮ Superposition right (forward reasoning) ⊢ h : l = A r ⊢ k : t = B s ⊢ t [ r ] p σ = B s σ ◮ Equality resolution α : t = A s ⊢ C ⊢ C σ

  18. � � � � � � � � � � Data flow (2/3) � � � � � CIC Proof ψ eq ind trace � � � � � � � � � � � � ρ � � � � � � CIC CIC eq trans θ canonical eq sym

  19. � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � Data flow (2/3) � � � � � � � � � � CIC Proof ψ eq ind trace � � � � � � � � � � � � � � � � � ρ � � � � � � � � � � � � � � � � � � CIC CIC eq trans θ canonical eq sym � � � � � � � � � � � �

  20. Data flow (2/3) Typing Proof size Problem Search Steps raw opt raw opt BOO069-1 2.15 27 79.50 3.1M BOO071-1 2.23 27 203.03 5.4M GRP118-1 0.11 17 7.66 546K GRP485-1 0.17 47 323.35 5.1M LAT008-1 0.48 40 22.56 933K LCL115-2 0.81 52 24.42 1.1M Tab. 1. Timing (in seconds) and proof size

  21. Data flow (2/3) Typing Proof size Problem Search Steps raw opt raw opt BOO069-1 2.15 27 79.50 0.23 3.1M 29K BOO071-1 2.23 27 203.03 0.22 5.4M 28K GRP118-1 0.11 17 7.66 0.13 546K 21K GRP485-1 0.17 47 323.35 0.23 5.1M 33K LAT008-1 0.48 40 22.56 0.12 933K 19K LCL115-2 0.81 52 24.42 0.29 1.1M 37K Tab. 1. Timing (in seconds) and proof size

  22. � � � � � � � � � � Data flow (2/3) � � � � � CIC Proof ψ letin trace eq ind � � � � � � � � � � � � ρ � � � � � � CIC CIC letin θ letin eq trans canonical eq sym

  23. � � � � � � � � � � Data flow (2/3) � � � � � CIC Proof ψ letin trace eq ind � � � � � � � � � � � � ρ � � � � � � CIC CIC letin θ letin eq trans canonical eq sym

  24. Normal form Given the following standard lemmas: trans : ∀ A : Type . ∀ x , y , z : A . x = A y → y = A z → x = A z sym : ∀ A : Type . ∀ x , y : A . x = A y → y = A x eq f : ∀ A , B : Type . ∀ f : A → B . ∀ x , y : A . x = A y → ( f x ) = B ( f y ) Definition (Proof normal form) π = eq f B C ∆ a b axiom | eq f B C ∆ a b ( sym B b a axiom ) | trans A a b c π π

  25. ρ , CIC eq ind → CIC trans sym ρ ( π ) � ρ ′ ( λ x : B . x , π ) when π : a = B b ρ ′ (∆ , eq ind A a ( λ x . Γ[ x ] = B m ) π 1 b π 2 ) � trans C (∆ ◦ Γ)[ b ] (∆ ◦ Γ)[ a ] ∆[ m ] ( sym C (∆ ◦ Γ)[ a ] (∆ ◦ Γ)[ b ] ρ ′ (∆ ◦ Γ , π 2 )) ρ ′ (∆ , π 1 ) ρ ′ (∆ , eq ind r A a ( λ x . Γ[ x ] = B m ) π 1 b π 2 ) � trans C (∆ ◦ Γ)[ b ] (∆ ◦ Γ)[ a ] ∆[ m ] ρ ′ (∆ ◦ Γ , π 2 ) ρ ′ (∆ , π 1 ) ρ ′ (∆ , eq ind A a ( λ x . m = B Γ[ x ]) π 2 b π 1 ) � trans C ∆[ m ] (∆ ◦ Γ)[ a ] (∆ ◦ Γ)[ b ] ρ ′ (∆ , π 2 ) ρ ′ (∆ ◦ Γ , π 1 ) ρ ′ (∆ , eq ind r A a ( λ x . m = B Γ[ x ]) π 1 b π 2 ) � trans C ∆[ m ] (∆ ◦ Γ)[ a ] (∆ ◦ Γ)[ b ] ρ ′ (∆ , π 1 ) ( sym C (∆ ◦ Γ)[ b ] (∆ ◦ Γ)[ a ] ρ ′ (∆ ◦ Γ , π 2 )) ρ ′ (∆ , π ) � eq f B C ∆ a b π when π : a = B b and ∆ : B → C

Recommend


More recommend