let A be free Universal_Algebra; :: thesis: for o1, o2 being OperSymbol of A
for p1, p2 being FinSequence st p1 in dom (Den o1,A) & p2 in dom (Den o2,A) & (Den o1,A) . p1 = (Den o2,A) . p2 holds
( o1 = o2 & p1 = p2 )

consider G being free GeneratorSet of A;
let o1, o2 be OperSymbol of A; :: thesis: for p1, p2 being FinSequence st p1 in dom (Den o1,A) & p2 in dom (Den o2,A) & (Den o1,A) . p1 = (Den o2,A) . p2 holds
( o1 = o2 & p1 = p2 )

let p1, p2 be FinSequence; :: thesis: ( p1 in dom (Den o1,A) & p2 in dom (Den o2,A) & (Den o1,A) . p1 = (Den o2,A) . p2 implies ( o1 = o2 & p1 = p2 ) )
assume that
A1: ( p1 in dom (Den o1,A) & p2 in dom (Den o2,A) ) and
A2: (Den o1,A) . p1 = (Den o2,A) . p2 ; :: thesis: ( o1 = o2 & p1 = p2 )
thus A3: o1 = o2 by A1, A2, Lm2; :: thesis: p1 = p2
reconsider S = signature A as non empty FinSequence of NAT by MSUALG_1:9;
set G' = G \/ {the carrier of A};
reconsider G' = G \/ {the carrier of A} as non empty set ;
deffunc H1( set ) -> set = root-tree [0 ,$1];
consider g being Function such that
A4: ( dom g = G & ( for x being set st x in G holds
g . x = H1(x) ) ) from FUNCT_1:sch 3();
set X = [:{0 },G':];
set B = FreeUnivAlgNSG S,[:{0 },G':];
A5: signature (FreeUnivAlgNSG S,[:{0 },G':]) = S by FREEALG:4;
A6: Terminals (DTConUA S,[:{0 },G':]) = [:{0 },G':] by FREEALG:3;
rng g c= FreeGenSetNSG S,[:{0 },G':]
proof
let b be set ; :: according to TARSKI:def 3 :: thesis: ( b nin rng g or not b nin FreeGenSetNSG S,[:{0 },G':] )
assume b in rng g ; :: thesis: not b nin FreeGenSetNSG S,[:{0 },G':]
then consider a being set such that
A7: ( a in dom g & b = g . a ) by FUNCT_1:def 5;
reconsider a = a as Element of A by A4, A7;
( a in G' & 0 in {0 } ) by A4, A7, TARSKI:def 1, XBOOLE_0:def 3;
then A8: [0 ,a] in [:{0 },G':] by ZFMISC_1:106;
then reconsider s = [0 ,a] as Symbol of (DTConUA S,[:{0 },G':]) by A6;
root-tree s in FreeGenSetNSG S,[:{0 },G':] by A6, A8;
hence not b nin FreeGenSetNSG S,[:{0 },G':] by A4, A7; :: thesis: verum
end;
then reconsider g = g as Function of G,the carrier of (FreeUnivAlgNSG S,[:{0 },G':]) by A4, FUNCT_2:4, XBOOLE_1:1;
signature (FreeUnivAlgNSG S,[:{0 },G':]) = S by FREEALG:4;
then A, FreeUnivAlgNSG S,[:{0 },G':] are_similar by UNIALG_2:def 2;
then consider h being Function of A,(FreeUnivAlgNSG S,[:{0 },G':]) such that
A9: ( h is_homomorphism A, FreeUnivAlgNSG S,[:{0 },G':] & h | G = g ) by FREEALG:def 6;
defpred S1[ Nat] means for a1, a2 being set st a1 in G |^ $1 & a2 in G |^ $1 & h . a1 = h . a2 holds
a1 = a2;
A10: G |^ 0 = G by Th18;
A11: ( len S = len the charact of (FreeUnivAlgNSG S,[:{0 },G':]) & len S = len the charact of A ) by A5, UNIALG_1:def 11;
then A12: ( dom S = dom the charact of (FreeUnivAlgNSG S,[:{0 },G':]) & dom S = dom the charact of A ) by FINSEQ_3:31;
A13: now
let o be Element of dom the charact of A; :: thesis: for p being FinSequence of A st p in dom (Den o,A) holds
( len p = S . o & len (h * p) = S . o & h . ((Den o,A) . p) = o -tree (h * p) )

let p be FinSequence of A; :: thesis: ( p in dom (Den o,A) implies ( len p = S . o & len (h * p) = S . o & h . ((Den o,A) . p) = o -tree (h * p) ) )
assume A14: p in dom (Den o,A) ; :: thesis: ( len p = S . o & len (h * p) = S . o & h . ((Den o,A) . p) = o -tree (h * p) )
reconsider q = p as FinSequence of A ;
reconsider hq = h * q as FinSequence of (FreeUnivAlgNSG S,[:{0 },G':]) ;
reconsider op = Den o,A as Element of Operations A ;
reconsider on = o as Element of NAT ;
reconsider o' = on as OperSymbol of (FreeUnivAlgNSG S,[:{0 },G':]) by A11, FINSEQ_3:31;
reconsider op' = Den o',(FreeUnivAlgNSG S,[:{0 },G':]) as Element of Operations (FreeUnivAlgNSG S,[:{0 },G':]) ;
reconsider j = S . o' as Element of NAT ;
dom op = (arity op) -tuples_on the carrier of A by UNIALG_2:2;
then A15: len p = arity op by A14, FINSEQ_1:def 18
.= j by A12, UNIALG_1:def 11 ;
hence ( len p = S . o & len (h * p) = S . o ) by FINSEQ_2:37; :: thesis: h . ((Den o,A) . p) = o -tree (h * p)
A16: h . (op . q) = op' . hq by A14, A9, ALG_1:def 1;
A17: In o',(dom the charact of (FreeUnivAlgNSG S,[:{0 },G':])) = o' by FUNCT_7:def 1;
( o' in dom S & len hq = S . o' ) by A12, A15, FINSEQ_2:37;
hence h . ((Den o,A) . p) = o -tree (h * p) by A17, A16, Th17; :: thesis: verum
end;
A18: S1[ 0 ]
proof
let a1, a2 be set ; :: thesis: ( a1 in G |^ 0 & a2 in G |^ 0 & h . a1 = h . a2 implies a1 = a2 )
assume A19: ( a1 in G |^ 0 & a2 in G |^ 0 & h . a1 = h . a2 ) ; :: thesis: a1 = a2
then ( h . a1 = g . a1 & h . a2 = g . a2 ) by A10, A9, FUNCT_1:72;
then ( h . a1 = H1(a1) & h . a2 = H1(a2) ) by A19, A10, A4;
then [0 ,a1] = [0 ,a2] by A19, TREES_4:4;
hence a1 = a2 by ZFMISC_1:33; :: thesis: verum
end;
A20: now
let o be Element of dom the charact of A; :: thesis: for p being Element of the carrier of A * st p in dom (Den o,A) holds
for x being set st x in G holds
not h . ((Den o,A) . p) = h . x

let p be Element of the carrier of A * ; :: thesis: ( p in dom (Den o,A) implies for x being set st x in G holds
not h . ((Den o,A) . p) = h . x )

assume p in dom (Den o,A) ; :: thesis: for x being set st x in G holds
not h . ((Den o,A) . p) = h . x

then A21: h . ((Den o,A) . p) = o -tree (h * p) by A13;
let x be set ; :: thesis: ( x in G implies not h . ((Den o,A) . p) = h . x )
assume A22: x in G ; :: thesis: not h . ((Den o,A) . p) = h . x
then A23: h . x = g . x by A9, FUNCT_1:72
.= H1(x) by A22, A4 ;
assume h . ((Den o,A) . p) = h . x ; :: thesis: contradiction
hence contradiction by A23, A21, TREES_4:17; :: thesis: verum
end;
A24: for k being Nat st S1[k] holds
S1[k + 1]
proof
let k be Nat; :: thesis: ( S1[k] implies S1[k + 1] )
assume A25: S1[k] ; :: thesis: S1[k + 1]
defpred S2[ set ] means ex o being Element of dom the charact of A ex p being Element of the carrier of A * st
( $1 = (Den o,A) . p & p in dom (Den o,A) & rng p c= G |^ k );
let a1, a2 be set ; :: thesis: ( a1 in G |^ (k + 1) & a2 in G |^ (k + 1) & h . a1 = h . a2 implies a1 = a2 )
assume A26: ( a1 in G |^ (k + 1) & a2 in G |^ (k + 1) & h . a1 = h . a2 ) ; :: thesis: a1 = a2
per cases ( ( a1 in G & a2 in G ) or ( S2[a1] & S2[a2] ) or ( a1 in G & S2[a2] ) or ( S2[a1] & a2 in G ) ) by A26, Th23;
suppose A27: ( a1 in G & a2 in G ) ; :: thesis: a1 = a2
then ( h . a1 = g . a1 & h . a2 = g . a2 ) by A9, FUNCT_1:72;
then ( h . a1 = H1(a1) & h . a2 = H1(a2) ) by A27, A4;
then [0 ,a1] = [0 ,a2] by A26, TREES_4:4;
hence a1 = a2 by ZFMISC_1:33; :: thesis: verum
end;
suppose A28: ( S2[a1] & S2[a2] ) ; :: thesis: a1 = a2
then consider b1 being Element of dom the charact of A, q1 being Element of the carrier of A * such that
A29: ( a1 = (Den b1,A) . q1 & q1 in dom (Den b1,A) & rng q1 c= G |^ k ) ;
consider b2 being Element of dom the charact of A, q2 being Element of the carrier of A * such that
A30: ( a2 = (Den b2,A) . q2 & q2 in dom (Den b2,A) & rng q2 c= G |^ k ) by A28;
b1 -tree (h * q1) = h . a1 by A13, A29
.= b2 -tree (h * q2) by A13, A30, A26 ;
then A31: ( b1 = b2 & h * q1 = h * q2 ) by TREES_4:15;
( len q1 = S . b1 & len q2 = S . b2 ) by A29, A30, A13;
then A32: ( dom q1 = Seg (len q1) & dom q2 = Seg (len q1) ) by A31, FINSEQ_1:def 3;
now
let j be Nat; :: thesis: ( j in dom q1 implies q1 . j = q2 . j )
assume A33: j in dom q1 ; :: thesis: q1 . j = q2 . j
then ( q1 . j in rng q1 & q2 . j in rng q2 ) by A32, FUNCT_1:12;
then ( q1 . j in G |^ k & q2 . j in G |^ k & h . (q1 . j) = (h * q1) . j & h . (q2 . j) = (h * q2) . j ) by A29, A30, A32, A33, FUNCT_1:23;
hence q1 . j = q2 . j by A25, A31; :: thesis: verum
end;
hence a1 = a2 by A29, A30, A31, A32, FINSEQ_1:17; :: thesis: verum
end;
suppose ( ( a1 in G & S2[a2] ) or ( S2[a1] & a2 in G ) ) ; :: thesis: a1 = a2
hence a1 = a2 by A26, A20; :: thesis: verum
end;
end;
end;
A34: for k being Nat holds S1[k] from NAT_1:sch 2(A18, A24);
reconsider q1 = p1, q2 = p2 as FinSequence of A by A1, FINSEQ_1:def 11;
o1 -tree (h * q1) = h . ((Den o1,A) . p1) by A1, A13
.= o2 -tree (h * q2) by A2, A1, A13 ;
then A35: h * p1 = h * p2 by TREES_4:15;
( len q1 = S . o1 & len q2 = S . o2 ) by A1, A13;
then A36: ( dom q1 = Seg (len q1) & dom q2 = Seg (len q1) ) by A3, FINSEQ_1:def 3;
now
let j be Nat; :: thesis: ( j in dom q1 implies q1 . j = q2 . j )
assume A37: j in dom q1 ; :: thesis: q1 . j = q2 . j
then A38: ( q1 . j in rng q1 & q2 . j in rng q2 ) by A36, FUNCT_1:12;
then consider n1 being Nat such that
A39: q1 . j in G |^ n1 by Th30;
consider n2 being Nat such that
A40: q2 . j in G |^ n2 by A38, Th30;
reconsider k = max n1,n2 as Nat ;
( G |^ n1 c= G |^ k & G |^ n2 c= G |^ k ) by Th21, XXREAL_0:25;
then ( q1 . j in G |^ k & q2 . j in G |^ k & h . (q1 . j) = (h * q1) . j & h . (q2 . j) = (h * q2) . j & S1[k] ) by A34, A39, A40, A36, A37, FUNCT_1:23;
hence q1 . j = q2 . j by A35; :: thesis: verum
end;
hence p1 = p2 by A36, FINSEQ_1:17; :: thesis: verum