reserve i for Nat,
  j for Element of NAT,
  X,Y,x,y,z for set;
reserve C for initialized ConstructorSignature,
  s for SortSymbol of C,
  o for OperSymbol of C,
  c for constructor OperSymbol of C;
reserve a,b for expression of C, an_Adj C;
reserve t, t1,t2 for expression of C, a_Type C;

theorem
  (ast C)term(a,t1) = (ast C)term(b,t2) implies a = b & t1 = t2
proof
  assume (ast C)term(a,t1) = (ast C)term(b,t2);
  then [ *, the carrier of C]-tree<*a,t1*> = (ast C)term(b,t2) by Th46
    .= [ *, the carrier of C]-tree<*b,t2*> by Th46;
  then <*a,t1*> = <*b,t2*> by TREES_4:15;
  hence thesis by FINSEQ_1:77;
end;
