12.07.2015 Views

number-theory

number-theory

number-theory

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3D Unification 41this pair was shown in 3C2.1 to have a common instance, but no s can exist suchthat §(p) - §(T), because the latter would imply the impossible identitys(a) - §(a)-*s(b).3D1.2 Note The problem of finding unifiers for pairs of type-sequences can bereduced to that for pairs of types as follows. Given two sequences (P1,...,pn) and(ti..... Tn), choose a variable b not occurring in any of these types and definep* = P1--+...->Pn-+b, T - T1-->...->Tn-fib;then the given pair of sequences is unified by a substitution s if (p*,T*) is unifiedby s r Vars(pl,...,Pn,T1,...,Tn).3D2 Definition (M.g.u.) (i) A most general unifier (m.g.u.) of (p, T) is a unifier usuch that for every other unifier s of (p, T) we have§(P) = § (u(P))for some s'. If v - u(p) for some m.g.u. U of (p,T) we shall call v a most generalunification (m.g.u.) of (p, T).(ii) M.g.u.'s of pairs of type-sequences or deductions are defined similarly.3D2.1 Exercise* Prove that the pair (a-*(b->b), (c--+c)-+a) is unifiable with a mostgeneral unifier u = [(b->b)/a, b/c], and with the corresponding most general unificationbeing(b-*b)-*(b-*b).3D2.2 Lemma A type p is a most general unification of (p, T) iff µ is a unification of(p, T) and all other unifications of (p, T) are instances of p.3D2.3 Lemma If u is an m.g.u. of (p, T) and v is a renaming of variables in u(p), thenv o u is an m.g.u. of (p, T).3D2.4 Notation From now on we shall often speak of "the" m.g.u. of (p, T) as ifm.g.u.'s were unique. (By 3D2.2, 3B8.1 and 3D2.3 they are unique modulo renaming.)3D2.5 Lemma (Avoiding variables) (i) Let V be any finite set of type-variables.(p, T) has an m.g.u. u, then it has an m.g.u. u' such thatIfDom(u) = Vars(p) U Vars(T), Range(u') n v = 0.(ii) Similarly for m.g.u.'s of pairs of type-sequences or deductions.Proof If u contains a component v/a with a Vars(p) U Vars(T) we can removethis component from u without affecting u(p) or U(T). We can also add trivialcomponents to enlarge Dom(u) if necessary, and the result can easily be seen to bestill an m.g.u. We can then change the range of u by a renaming. 0

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!