reserve A,B,C,X,Y,Z,x,x1,x2,y,z for set, U,U1,U2,U3 for non empty set,
u,u1,u2 for (Element of U), P,Q,R for Relation, f,g for Function,
k,m,n for Nat, m1, n1 for non zero Nat, kk,mm,nn for (Element of NAT),
p, p1, p2 for FinSequence, q, q1, q2 for U-valued FinSequence;
reserve S, S1, S2 for Language, s,s1,s2 for Element of S,
l,l1,l2 for literal Element of S, a for ofAtomicFormula Element of S,
r for relational Element of S, w,w1,w2 for string of S,
t,t1,t2 for termal string of S;
reserve phi0 for 0wff string of S,
psi, psi1, psi2, phi,phi1,phi2 for wff string of S,
I for (S,U)-interpreter-like Function;
reserve tt,tt0,tt1,tt2 for Element of AllTermsOf S;

theorem Th12: TheNorSymbOf S1 = TheNorSymbOf S2 &
TheEqSymbOf S1 = TheEqSymbOf S2 &
(the adicity of S1)|(OwnSymbolsOf S1) =
(the adicity of S2)|(OwnSymbolsOf S1) implies
for I1 being Element of U-InterpretersOf S1,
I2 being Element of U-InterpretersOf S2, phi1 being wff string of S1
st I1|(OwnSymbolsOf S1) = I2|(OwnSymbolsOf S1) ex
phi2 being wff string of S2 st
((phi2=phi1 & I2-TruthEval phi2=I1-TruthEval phi1))
proof
set II1=U-InterpretersOf S1, II2=U-InterpretersOf S2,
N1=TheNorSymbOf S1, N2=TheNorSymbOf S2, F1=S1-firstChar, F2=S2-firstChar,
a1=the adicity of S1, a2=the adicity of S2, O1=OwnSymbolsOf S1,
O2=OwnSymbolsOf S2, d=U-deltaInterpreter, E1=TheEqSymbOf S1,
E2=TheEqSymbOf S2, AS1=AtomicFormulaSymbolsOf S1,
AS2=AtomicFormulaSymbolsOf S2;
assume
A1: N1=N2; assume
A2: E1=E2 & a1|O1=a2|O1;
defpred P[Nat] means for I1 being Element of II1, I2 being Element of II2,
phi1 being $1-wff string of S1 st I1|O1 = I2|O1 ex phi2 being
$1-wff string of S2 st (phi1=phi2 & I1-TruthEval phi1 = I2-TruthEval phi2);
A3: P[0]
proof
let I1 be Element of II1, I2 be Element of II2, phi1 be 0-wff string of S1;
set TE1=I1-TermEval, TE2=I2-TermEval, X=rng phi1; reconsider
XX=X/\O1 as Subset of O1; reconsider r1=F1.phi1 as
relational Element of S1;
A4: a1|XX = a1|O1|X by RELAT_1:71 .= a2|XX by A2, RELAT_1:71;
assume I1|O1 = I2|O1; then
I2|O1|X = I1|XX by RELAT_1:71; then
I1|XX = I2|XX by RELAT_1:71; then
consider phi2 being 0wff string of S2 such that
A5: phi2=phi1 & I2-AtomicEval phi2=I1-AtomicEval phi1
by A4, Lm48, A2; reconsider phi2 as 0-wff string of S2; take phi2;
set st1=SubTerms phi1, st2=SubTerms phi2;
reconsider r2=F2.phi2 as relational Element of S2;
thus thesis by A5;
end;
A6: for n st P[n] holds P[n+1]
proof
let n; assume
A7: P[n]; let I1 be Element of II1, I2 be Element of II2,
phi1 be (n+1)-wff string of S1; set X=rng phi1; assume
A8: I1|O1=I2|O1;
reconsider h1=head phi1 as n-wff string of S1; set t=tail phi1, s1=F1.phi1;
consider h2 being n-wff string
of S2 such that
A9: h1=h2 & I1-TruthEval h1=I2-TruthEval h2 by A7, A8;
per cases;
suppose
phi1 is exal; then reconsider phi11=phi1 as exal (n+1)-wff string of S1;
reconsider l1=F1.phi11 as literal Element of S1;
A10: I1.l1 = I2.l1 by A8, FOMODEL1:def 19, FUNCT_1:49;
l1 in dom I2 by A10, FUNCT_1:def 2; then
l1 in O2; then reconsider l2=l1 as own Element of S2;
|.ar l2.|-tuples_on U = dom (I2.l2) by PARTFUN1:def 2 .=
0-tuples_on U by A10, FUNCT_2:def 1; then
not l2 is relational & not l2 is operational; then reconsider
l2 as literal Element of S2;
reconsider phi2=<*l2*>^h2 as (n+1)-wff exal string of S2; take phi2;
A11: phi1=<*l1*>^h1^(tail phi11) by FOMODEL2:23 .= <*l1*>^h1;
hence phi1=phi2 by A9;
I1-TruthEval phi11=1 iff I2-TruthEval phi2=1
proof
hereby
assume I1-TruthEval phi11=1; then consider u such that
A12: (l1,u) ReassignIn I1-TruthEval h1=1 by FOMODEL2:19, A11;
reconsider I11=(l1,u) ReassignIn I1 as Element of II1;
reconsider I22=(l2,u) ReassignIn I2 as Element of II2;
I11|O1 = I1|O1 +* ((l1.-->({}.-->u))|O1) by FUNCT_4:71 .=
 I22|O1 by A8, FUNCT_4:71; then
consider h22 being n-wff string of S2 such that
A13: h22=h1 & I11-TruthEval h1=I22-TruthEval h22 by A7;
thus I2-TruthEval phi2=1 by FOMODEL2:19, A13, A9, A12;
end;
assume I2-TruthEval phi2=1; then consider u2 such that
A14: (l2,u2) ReassignIn I2-TruthEval h2=1 by FOMODEL2:19;
reconsider I11=(l1,u2) ReassignIn I1 as Element of II1;
reconsider I22=(l2,u2) ReassignIn I2 as Element of II2;
I11|O1 = I1|O1 +* ((l1.-->({}.-->u2))|O1) by FUNCT_4:71 .=
 I22|O1 by A8, FUNCT_4:71; then
consider h222 being n-wff string of S2 such that
A15: h222=h1 & I11-TruthEval h1=I22-TruthEval h222 by A7;
thus I1-TruthEval phi11=1 by FOMODEL2:19, A11, A14, A15, A9;
end; then I1-TruthEval phi1=1 iff not I2-TruthEval phi2=0 by FOMODEL0:39;
hence I1-TruthEval phi1=I2-TruthEval phi2 by FOMODEL0:39;
end;
suppose
not phi1 is 0wff & not phi1 is exal; then reconsider phi11=phi1 as
non 0wff non exal (n+1)-wff string of S1; reconsider t1=tail phi11 as
n-wff string of S1; consider t2 being n-wff string of S2 such that
A16: t1=t2 & I1-TruthEval t1=I2-TruthEval t2 by A7, A8; reconsider
phi2=<*N2*>^h2^t2 as (n+1)-wff non exal non 0wff string of S2;
take phi2; F1.phi11 \+\ N1={} & F2.phi2\+\N2={}; then
A17: F1.phi1=N1 & F2.phi2=N2 & phi11=<*F1.phi11*>^h1^t1
& h2=head phi2 & t2=tail phi2 by FOMODEL2:23, FOMODEL0:29;
hence phi1=phi2 by A16, A9, A1;
set b1=I1-TruthEval h1, c1=I1-TruthEval t1, b2=I2-TruthEval h2,
c2=I2-TruthEval t2, A1=I1-TruthEval phi11, A2=I2-TruthEval phi2;
A1 \+\ (I1-TruthEval (head phi11) 'nor' (I1-TruthEval (tail phi11)))={} &
A2 \+\ (I2-TruthEval (head phi2) 'nor' (I2-TruthEval (tail phi2))) ={};
then A1=b1 'nor' c1 & A2=b2 'nor' c2 by A17, FOMODEL0:29;
hence thesis by A9, A16;
end;
suppose
phi1 is 0wff; then consider phi2 being 0-wff string of S2 such that
A18: phi1=phi2 & I1-TruthEval phi1=I2-TruthEval phi2 by A3, A8;
phi2 is (0+0*(n+1))-wff; then phi2 is (0+(n+1))-wff; then
reconsider phi22=phi2 as (n+1)-wff string of S2;
take phi22; thus thesis by A18;
end;
end;
A19: for n holds P[n] from NAT_1:sch 2(A3, A6);
let I1 be Element of II1, I2 be Element of II2, phi1 be wff string of S1;
set d=Depth phi1; reconsider phi11=phi1 null 0 as (d+0)-wff string of S1;
assume I1|O1=I2|O1; then
ex phi2 being d-wff string of S2 st
((phi2=phi11 & I2-TruthEval phi2=I1-TruthEval phi11)) by A19;
hence thesis;
end;
