theorem
  for t1,t2 st t2 = (canonical_homomorphism T).t1 holds
  (canonical_homomorphism T).t1 = (canonical_homomorphism T).t2
  proof set H = canonical_homomorphism T;
    let t1,t2;
    assume Z0: t2 = H.t1;
    reconsider t = t1 as Element of (the Sorts of Free(S,X)).the_sort_of t1
    by SORT;
A1: the_sort_of @(H.t1) = the_sort_of (H.t1) &
    H.the_sort_of t1 is Function of (the Sorts of Free(S,X)).the_sort_of t1,
    (the Sorts of T).the_sort_of t1 by Lem00;
A2: dom(H**H) = (dom H)/\dom H = dom H = the carrier of S
    by PARTFUN1:def 2,PBOOLE:def 19;
    H**H = H by MSAFREE4:48;
    hence H.t1 = (H**H).(the_sort_of t1).t1 by ABBR
    .= ((H.the_sort_of t1)*(H.the_sort_of t1)).t by A2,PBOOLE:def 19
    .= (H.the_sort_of t1).((H.the_sort_of t1).t1) by FUNCT_2:15
    .= (H.the_sort_of t1).(H.t1) by ABBR
    .= (H.the_sort_of t2).(H.t1) by Z0,A1,Lem0
    .= H.t2 by Z0,ABBR;
  end;
