Least General Generalization of Terms

Description:

The least general generalization of terms is inductively defined as follows:

  • Let X be a variable and t be an arbitrary term, different from X. Then LGG (X, t) = Y, for a variable Y, not appearing in t.
  • Let f and g be different function symbols and t1, ..., tn, u1, ..., un be arbitrary terms.
    Then
    • LGG( f(t1, ..., tn), f(u1, ..., un) ) := f( LGG( t1, u1), ..., LGG( tn, un) ).
    • LGG( f(t1), g(u1) ) = Y, where Y is a variable not appearing in t1 or u1.
  • If t, u and v are terms and LGG(t, u) = v then LGG(u, t) = v.

It has the following properties:

If t1 and t2 are terms and tlgg = LGG(t1, t2) is their least general generalization, then

  • there exist substitutions θ1 and θ2, such that
    • tlggθ1 = t1 and
    • tlggθ2 = t2.
  • for every term tgen with substitutions θ1 and θ2, such that
    • tgenθ1 = t1 and
    • tgenθ2 = t2,
    there exists a substitution ρ, such that tgenρ = tlgg.
In other terms, there is no more specific generalization of t1 and t2 than their LGG.

Further properties: For all terms t1, t2 and t2 the following equations hold.

  • LGG(t1, t2) = LGG (t2, t1)
  • LGG( LGG(t1, t2), t3) = LGG( t1, LGG(t2, t3))
  • LGG(t1, t1) = t1