Rule-Based Naive Standard Unification t . = t , E ⇒ SU E f ( s 1 , . . . , s n ) . s 1 . = t 1 , . . . , s n . = f ( t 1 , . . . , t n ), E ⇒ SU = t n , E f ( . . . ) . = g ( . . . ), E ⇒ SU ⊥ x . x . = t , E ⇒ SU = t , E { x �→ t } if x ∈ var ( E ), x �∈ var ( t ) x . = t , E ⇒ SU ⊥ if x � = t , x ∈ var ( t ) t . x . = x , E ⇒ SU = t , E if t �∈ X 280
SU: Main Properties If E = x 1 . . = u 1 , . . . , x k = u k , with x i pairwise distinct, x i �∈ var ( u j ), then E is called an (equational problem in) solved form representing the solution σ E = { x 1 �→ u 1 , . . . , x k �→ u k } . Proposition 3.22: If E is a solved form then σ E is an mgu of E . 281
SU: Main Properties Theorem 3.23: 1. If E ⇒ SU E ′ then σ is a unifier of E iff σ is a unifier of E ′ ∗ 2. If E ⇒ SU ⊥ then E is not unifiable. ⇒ SU E ′ with E ′ in solved form, then σ E ′ is an mgu of E . ∗ 3. If E Proof: (1) We have to show this for each of the rules. Let’s treat the case for the 4th rule here. Suppose σ is a unifier of x . = t , that is, x σ = t σ . Thus, σ ◦ { x �→ t } = σ [ x �→ t σ ] = σ [ x �→ x σ ] = σ . Therefore, for any equation u . = v in E : u σ = v σ , iff u { x �→ t } σ = v { x �→ t } σ . (2) and (3) follow by induction from (1) using Proposition 3.22. ✷ 282
Main Unification Theorem Theorem 3.24: E is unifiable if and only if there is a most general unifier σ of E , such that σ is idempotent and dom ( σ ) ∪ codom ( σ ) ⊆ var ( E ). 283
Rule-Based Polynomial Unification Problem: using ⇒ SU , an exponential growth of terms is possible. The following unification algorithm avoids this problem, at least if the final solved form is represented as a DAG. 284
Rule-Based Polynomial Unification t . = t , E ⇒ PU E f ( s 1 , . . . , s n ) . s 1 . = t 1 , . . . , s n . = f ( t 1 , . . . , t n ), E ⇒ PU = t n , E f ( . . . ) . = g ( . . . ), E ⇒ PU ⊥ x . x . = y , E ⇒ PU = y , E { x �→ y } if x ∈ var ( E ), x � = y x 1 . = t 1 , . . . , x n . = t n , E ⇒ PU ⊥ if there are positions p i with t i / p i = x i +1 , t n / p n = x 1 and some p i � = ǫ 285
Rule-Based Polynomial Unification x . = t , E ⇒ PU ⊥ if x � = t , x ∈ var ( t ) t . x . = x , E ⇒ PU = t , E if t �∈ X x . = t , x . x . = t , t . = s , E ⇒ PU = s , E if t , s �∈ X and | t | ≤ | s | 286
Properties of PU Theorem 3.25: 1. If E ⇒ PU E ′ then σ is a unifier of E iff σ is a unifier of E ′ ∗ 2. If E ⇒ PU ⊥ then E is not unifiable. ⇒ PU E ′ with E ′ in solved form, then σ E ′ is an mgu of E . ∗ 3. If E Note: The solved form of ⇒ PU is different form the solved form obtained from ⇒ SU . In order to obtain the unifier σ E ′ , we have to sort the list of equality problems x i . = t i in such a way that x i does not occur in t j for j < i , and then we have to compose the substitutions { x 1 �→ t 1 } ◦ · · · ◦ { x k �→ t k } . 287
Lifting Lemma Lemma 3.26: Let C and D be variable-disjoint clauses. If D C � σ � ρ D σ C ρ [propositional resolution] C ′ then there exists a substitution τ such that D C [general resolution] C ′′ � τ C ′ = C ′′ τ 288
Lifting Lemma An analogous lifting lemma holds for factorization. 289
Recommend
More recommend