φ ormal µ ethods γ roup iProver-Eq: An Instantiation-based Theorem Prover with Equality Konstantin Korovin and Christoph Sticksel (joint work with Renate Schmidt) The University of Manchester 17th July 2010 1 Konstantin Korovin and Christoph Sticksel iProver-Eq: An Instantiation-based ATP with Equality
Instantiation-based Methods and Equality • Instantiation-based methods – Decision procedure for Bernays-Sch¨ onfinkel fragment (verification, planning/scheduling, knowledge representation) – Performs well in plain first-order logic – Complementary to “traditional” first-order calculi • Equational reasoning – Essential part in theory reasoning – Natural concept in many applications – Not well explored in instantiation-based setting • Here: Instantiation-based calculus Inst-Gen-Eq – Ganzinger and Korovin [2004] – Complete for first-order clause logic modulo equality 2 Konstantin Korovin and Christoph Sticksel iProver-Eq: An Instantiation-based ATP with Equality
What is iProver-Eq? • iProver is the implementation of the Inst-Gen calculus where equality is handled only axiomatically • iProver-Eq is the extension of iProver with superposition-based equational reasoning • Distinctive feature: modular combination of first-order reasoning and ground satisfiability checking • Proof procedure consists of – Ground reasoning on the abstraction of the clause set by an SMT solver – Equational reasoning on first-order literals in a candidate model – Instantiation of clauses with substitutions from superposition proofs 3 Konstantin Korovin and Christoph Sticksel iProver-Eq: An Instantiation-based ATP with Equality
iProver-Eq System Overview First-order Ground Superposition SMT solver generate Conflicting Clause Instances Literals Ground select Model add find First-order Ground abstract Clauses Clauses Satisfiability Unsatisfiability proved proved 4 Konstantin Korovin and Christoph Sticksel iProver-Eq: An Instantiation-based ATP with Equality
Inst-Gen-Eq by Example: Finding inconsistencies First-order clauses Ground abstraction f ( x , y ) ≃ f ( y , x ) f ( ⊥ , ⊥ ) ≃ f ( ⊥ , ⊥ ) f ( u , v ) �≃ g ( z ) ∨ u ≃ z f ( ⊥ , ⊥ ) �≃ g ( ⊥ ) ∨ ⊥ ≃ ⊥ f ( a , b ) ≃ g ( c ) f ( a , b ) ≃ g ( c ) a �≃ b a �≃ b Unit superposition proof: Selected literals inconsistent f ( x , y ) ≃ f ( y , x ) f ( u , v ) �≃ g ( z ) [ u / x , v / y ] f ( a , b ) ≃ g ( c ) f ( v , u ) �≃ g ( z ) [ a / v , b / u ] g ( c ) �≃ g ( z ) [ c / z ] � 5 Konstantin Korovin and Christoph Sticksel iProver-Eq: An Instantiation-based ATP with Equality
Inst-Gen-Eq by Example: Finding inconsistencies First-order clauses Ground abstraction f ( x , y ) ≃ f ( y , x ) f ( ⊥ , ⊥ ) ≃ f ( ⊥ , ⊥ ) f ( u , v ) �≃ g ( z ) ∨ u ≃ z f ( ⊥ , ⊥ ) �≃ g ( ⊥ ) ∨ ⊥ ≃ ⊥ f ( a , b ) ≃ g ( c ) f ( a , b ) ≃ g ( c ) a �≃ b a �≃ b Unit superposition proof: Selected literals inconsistent f ( x , y ) ≃ f ( y , x ) f ( u , v ) �≃ g ( z ) [ u / x , v / y ] f ( a , b ) ≃ g ( c ) f ( v , u ) �≃ g ( z ) [ a / v , b / u ] g ( c ) �≃ g ( z ) [ c / z ] � 5 Konstantin Korovin and Christoph Sticksel iProver-Eq: An Instantiation-based ATP with Equality
Inst-Gen-Eq by Example: Finding inconsistencies First-order clauses Ground abstraction f ( x , y ) ≃ f ( y , x ) f ( ⊥ , ⊥ ) ≃ f ( ⊥ , ⊥ ) f ( u , v ) �≃ g ( z ) ∨ u ≃ z f ( ⊥ , ⊥ ) �≃ g ( ⊥ ) ∨ ⊥ ≃ ⊥ f ( a , b ) ≃ g ( c ) f ( a , b ) ≃ g ( c ) a �≃ b a �≃ b Unit superposition proof: Selected literals inconsistent f ( x , y ) ≃ f ( y , x ) f ( u , v ) �≃ g ( z ) [ u / x , v / y ] f ( a , b ) ≃ g ( c ) f ( v , u ) �≃ g ( z ) [ a / v , b / u ] g ( c ) �≃ g ( z ) [ c / z ] � 5 Konstantin Korovin and Christoph Sticksel iProver-Eq: An Instantiation-based ATP with Equality
Inst-Gen-Eq by Example: Finding inconsistencies First-order clauses Ground abstraction f ( x , y ) ≃ f ( y , x ) f ( ⊥ , ⊥ ) ≃ f ( ⊥ , ⊥ ) f ( u , v ) �≃ g ( z ) ∨ u ≃ z f ( ⊥ , ⊥ ) �≃ g ( ⊥ ) ∨ ⊥ ≃ ⊥ f ( a , b ) ≃ g ( c ) f ( a , b ) ≃ g ( c ) a �≃ b a �≃ b Unit superposition proof: Selected literals inconsistent f ( x , y ) ≃ f ( y , x ) f ( u , v ) �≃ g ( z ) [ u / x , v / y ] f ( a , b ) ≃ g ( c ) f ( v , u ) �≃ g ( z ) [ a / v , b / u ] g ( c ) �≃ g ( z ) [ c / z ] � 5 Konstantin Korovin and Christoph Sticksel iProver-Eq: An Instantiation-based ATP with Equality
Inst-Gen-Eq by Example: Generating instances Unit superposition proof: Substitution extraction f ( x , y ) ≃ f ( y , x ) f ( u , v ) �≃ g ( z ) [ u / x , v / y ] f ( a , b ) ≃ g ( c ) f ( v , u ) �≃ g ( z ) [ a / v , b / u ] g ( c ) �≃ g ( z ) [ c / z ] � First-order clauses First-order instances f ( x , y ) ≃ f ( y , x ) f ( b , a ) ≃ f ( a , b ) f ( u , v ) �≃ g ( z ) ∨ u ≃ z f ( b , a ) �≃ g ( c ) ∨ b ≃ c f ( a , b ) ≃ g ( c ) a �≃ b 6 Konstantin Korovin and Christoph Sticksel iProver-Eq: An Instantiation-based ATP with Equality
Inst-Gen-Eq by Example: Generating instances Unit superposition proof: Substitution extraction f ( x , y ) ≃ f ( y , x ) f ( u , v ) �≃ g ( z ) [ u / x , v / y ] f ( a , b ) ≃ g ( c ) f ( v , u ) �≃ g ( z ) [ a / v , b / u ] g ( c ) �≃ g ( z ) [ c / z ] � First-order clauses First-order instances f ( x , y ) ≃ f ( y , x ) f ( b , a ) ≃ f ( a , b ) f ( u , v ) �≃ g ( z ) ∨ u ≃ z f ( b , a ) �≃ g ( c ) ∨ b ≃ c f ( a , b ) ≃ g ( c ) a �≃ b 6 Konstantin Korovin and Christoph Sticksel iProver-Eq: An Instantiation-based ATP with Equality
Inst-Gen-Eq by Example: Generating instances Unit superposition proof: Substitution extraction f ( x , y ) ≃ f ( y , x ) f ( u , v ) �≃ g ( z ) [ u / x , v / y ] f ( a , b ) ≃ g ( c ) f ( v , u ) �≃ g ( z ) [ a / v , b / u ] g ( c ) �≃ g ( z ) [ c / z ] � First-order clauses First-order instances f ( x , y ) ≃ f ( y , x ) f ( b , a ) ≃ f ( a , b ) f ( u , v ) �≃ g ( z ) ∨ u ≃ z f ( b , a ) �≃ g ( c ) ∨ b ≃ c f ( a , b ) ≃ g ( c ) a �≃ b 6 Konstantin Korovin and Christoph Sticksel iProver-Eq: An Instantiation-based ATP with Equality
Inst-Gen-Eq by Example: Generating instances Unit superposition proof: Substitution extraction f ( x , y ) ≃ f ( y , x ) f ( u , v ) �≃ g ( z ) [ u / x , v / y ] f ( a , b ) ≃ g ( c ) f ( v , u ) �≃ g ( z ) [ a / v , b / u ] g ( c ) �≃ g ( z ) [ c / z ] � First-order clauses First-order instances f ( x , y ) ≃ f ( y , x ) f ( b , a ) ≃ f ( a , b ) f ( u , v ) �≃ g ( z ) ∨ u ≃ z f ( b , a ) �≃ g ( c ) ∨ b ≃ c f ( a , b ) ≃ g ( c ) a �≃ b 6 Konstantin Korovin and Christoph Sticksel iProver-Eq: An Instantiation-based ATP with Equality
Inst-Gen-Eq by Example: Generating instances Unit superposition proof: Substitution extraction f ( x , y ) ≃ f ( y , x ) f ( u , v ) �≃ g ( z ) [ u / x , v / y ] f ( a , b ) ≃ g ( c ) f ( v , u ) �≃ g ( z ) [ a / v , b / u ] g ( c ) �≃ g ( z ) [ c / z ] � First-order clauses First-order instances f ( x , y ) ≃ f ( y , x ) f ( b , a ) ≃ f ( a , b ) f ( u , v ) �≃ g ( z ) ∨ u ≃ z f ( b , a ) �≃ g ( c ) ∨ b ≃ c f ( a , b ) ≃ g ( c ) a �≃ b 6 Konstantin Korovin and Christoph Sticksel iProver-Eq: An Instantiation-based ATP with Equality
Answer computation and completeness Unit superposition proof f ( x , y ) ≃ f ( y , x ) f ( u , v ) �≃ g ( z ) [ u / x , v / y ] f ( a , b ) ≃ g ( c ) f ( v , u ) �≃ g ( z ) [ a / v , b / u ] g ( c ) �≃ g ( z ) [ c / z ] � • Instances from all proofs from selected literals required • Shorter proofs do not subsume longer proofs • Literal variants may occur in the same proof 7 Konstantin Korovin and Christoph Sticksel iProver-Eq: An Instantiation-based ATP with Equality
Answer computation and completeness Unit superposition proof f ( x , y ) ≃ f ( y , x ) f ( u , v ) �≃ g ( z ) [ u / x , v / y ] f ( a , b ) ≃ g ( c ) f ( v , u ) �≃ g ( z ) [ a / v , b / u ] g ( c ) �≃ g ( z ) [ c / z ] � • Instances from all proofs from selected literals required • Shorter proofs do not subsume longer proofs • Literal variants may occur in the same proof 7 Konstantin Korovin and Christoph Sticksel iProver-Eq: An Instantiation-based ATP with Equality
Answer computation and completeness Unit superposition proof f ( x , y ) ≃ f ( y , x ) f ( u , v ) �≃ g ( z ) [ u / x , v / y ] f ( a , b ) ≃ g ( c ) f ( v , u ) �≃ g ( z ) [ a / v , b / u ] g ( c ) �≃ g ( z ) [ c / z ] � • Instances from all proofs from selected literals required • Shorter proofs do not subsume longer proofs • Literal variants may occur in the same proof 7 Konstantin Korovin and Christoph Sticksel iProver-Eq: An Instantiation-based ATP with Equality
Labelled Unit Superposition • Find inconsistent first-order literals • Compute instantiating substitutions in labels Superposition T : l ≃ r T ′ : L [ l ′ ] ( σ ) σ is mgu of l and l ′ ( T ⊓ T ′ ) σ : L [ r ] σ Variant merging T : L T ′ : L ′ ( θ ) L = L ′ θ T ⊔ T ′ θ : L Equality resolution T : ( l �≃ r ) ( σ ) σ is mgu of l and r T σ : � • Uniform treatment of literal variants • Preserve proof structure for redundancy elimination 8 Konstantin Korovin and Christoph Sticksel iProver-Eq: An Instantiation-based ATP with Equality
Recommend
More recommend