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 Th10: Depth (l,tt) SubstIn psi=Depth psi &
for I being Element of U-InterpretersOf S holds
I-TruthEval (l,tt) SubstIn psi=(l,I-TermEval.tt) ReassignIn I-TruthEval psi
proof
set II=U-InterpretersOf S, TT=AllTermsOf S, AF=AtomicFormulasOf
S, F=S-firstChar, L=LettersOf S;
set f0=l AtomicSubst tt, f1=l Subst1 tt, f4=(l,tt) Subst4 f1, FF=AllFormulasOf
S, N=TheNorSymbOf S;
defpred P[Nat] means for phi st Depth phi<=$1 holds
(Depth ((l,tt) SubstIn phi)=Depth phi &
for I being Element of II holds I-TruthEval ((l,tt) SubstIn phi)=
((l, I-TermEval.tt) ReassignIn I)-TruthEval phi);
tt null {} is ({}\/rng tt)-valued FinSequence; then
tt is FinSequence of (rng tt) by FOMODEL0:26; then
reconsider ttt=tt as Element of (rng tt)*;
A1: P[0]
proof
let phi; set d=Depth phi, IT=(l,tt) SubstIn phi; assume
A2: d<=0; reconsider phii=phi as 0wff string of S by A2;
Depth (l,tt) SubstIn phii=0; hence Depth IT=d; let I be Element of II;
set u=I-TermEval.tt, J=(l,u) ReassignIn I;
I-TruthEval ((l,tt) AtomicSubst phii) = J-TruthEval phii by Th8;
hence thesis;
end;
A3: for n st P[n] holds P[n+1]
proof
let n; assume
A4: P[n]; let phi; reconsider X=L\(rng tt \/ rng head phi \/ {l})
as infinite Subset of L; reconsider
XX=X as non empty Subset of L; set ll2= the Element of X;
reconsider l2=ll2 as literal Element of S by TARSKI:def 3; assume
C0: Depth phi <= n+1;  not l2 in rng tt \/ rng head phi \/ {l}
by XBOOLE_0:def 5; then not l2 in rng tt \/ rng head phi & not l2 in {l}
by XBOOLE_0:def 3; then
A5: l2<>l & not l2 in rng tt & not l2 in rng head phi
by XBOOLE_0:def 3, TARSKI:def 1;
per cases;
suppose phi is exal; then reconsider phii=phi as
non 0wff exal wff string of S; consider m such that
A6: Depth phii=m+1 by NAT_1:6; reconsider mm=m as Element of NAT by
ORDINAL1:def 12;
D1: m<=n by XREAL_1:8, C0, A6; reconsider phii as
non 0wff exal (m+1)-wff string of S by A6, FOMODEL2:def 31;
set IT=(l,tt) SubstIn phii, d=Depth phii;
reconsider l1=F.phii as literal Element of S; reconsider
phi1=head phii as Element of FF by FOMODEL2:16; set d1=Depth phi1;
reconsider phi2=tail phii as empty set;
reconsider psi=(l1,l2)-SymbolSubstIn phi as (m+1)-wff string of S;
reconsider psi1=(l1,l2)-SymbolSubstIn (head phii) as m-wff string of S;
Depth psi1\+\d1={}; then
A7: Depth psi1=Depth phi1 by FOMODEL0:29;
reconsider Phi1=(l,tt) SubstIn psi1 as wff string of S;
A8: phii=<*l1*>^phi1^phi2 by FOMODEL2:23 .= <*l1*>^phi1;
d1 <= m by FOMODEL2:def 31; then
A9: d1<=n by XXREAL_0:2,D1; then
A10: Depth Phi1=Depth (head phii) by A4, A7;
reconsider m1=m-d1 as Nat; reconsider
new1=((l,tt) SubstIn phi1) as wff string of S; set d11=Depth new1;
A11: IT= (l,tt,m,f4.mm) Subst2 phii by A6, Lm44;
per cases;
suppose l1<>l; then
A12: IT=<*l2*>^(f4.mm.((l1,l2)-SymbolSubstIn phi1))
by A6, Def20, A11 .= <*l2*>^(l,tt) SubstIn psi1 by Lm46; then
Depth IT=Depth phi1+1 by A10, FOMODEL2:17 .= Depth phi by A8, FOMODEL2:17;
hence Depth ((l,tt) SubstIn phi)=Depth phi; let I be Element of II;
set tu=I-TermEval.tt, It=(l,tu) ReassignIn I;
I-TruthEval IT=1 iff (l,tu) ReassignIn I-TruthEval phii=1
proof
hereby
assume I-TruthEval IT=1; then consider u such that
A13: ((l2,u) ReassignIn I)-TruthEval Phi1=1 by A12, FOMODEL2:19;
set I2=(l2,u) ReassignIn I;
1=((l,I2-TermEval.tt) ReassignIn I2)-TruthEval psi1 by A13, A7, A9, A4
.= ((l,tu) ReassignIn I2)-TruthEval psi1 by A5, FOMODEL2:25 .=
((l2,u) ReassignIn (l,tu) ReassignIn I)-TruthEval psi1 by A5, FOMODEL0:43
.= (l1,u) ReassignIn (l,tu) ReassignIn I-TruthEval (head phii) by A5, Th9;
hence 1 = (l,tu) ReassignIn I-TruthEval phii by A8, FOMODEL2:19;
end;
assume (l,tu) ReassignIn I-TruthEval phii=1; then consider u1 such that
A14: (l1,u1) ReassignIn (l,tu) ReassignIn I-TruthEval (head phii)=1 by
A8, FOMODEL2:19;
1= (l2,u1) ReassignIn (l,tu) ReassignIn I-TruthEval psi1 by A14, Th9, A5
.=(l,tu) ReassignIn (l2,u1) ReassignIn I-TruthEval psi1 by FOMODEL0:43,A5
.= (l,(l2,u1) ReassignIn I-TermEval.tt) ReassignIn (l2,u1) ReassignIn I
-TruthEval psi1 by FOMODEL2:25, A5 .=
(l2,u1) ReassignIn I-TruthEval Phi1 by A7, A9, A4; hence
I-TruthEval IT=1 by A12, FOMODEL2:19;
end; then
I-TruthEval IT=1 iff not (l,tu) ReassignIn I-TruthEval phii=0
by FOMODEL0:39; hence thesis by FOMODEL0:39;
end;
suppose
A15: l1=l; then
A16: phi = IT by Lm45;
thus Depth (l,tt) SubstIn phi = Depth phi by A15, Lm45;
let I be Element of II;
set tu=I-TermEval.tt, It=(l,tu) ReassignIn I;
It-TruthEval phii=1 iff I-TruthEval phii=1
proof
hereby
assume It-TruthEval phii=1; then consider u such that
A17: (l1,u) ReassignIn It-TruthEval phi1=1 by A8, FOMODEL2:19;
1=(l1,u) ReassignIn I-TruthEval phi1 by A17, A15, FOMODEL0:43;
hence I-TruthEval phii=1 by A8, FOMODEL2:19;
end;
assume I-TruthEval phii=1; then
consider u1 such that
A18: (l1,u1) ReassignIn I-TruthEval phi1=1 by A8, FOMODEL2:19;
(l1,u1) ReassignIn It-TruthEval phi1=1 by A15, A18, FOMODEL0:43;
hence It-TruthEval phii=1 by A8, FOMODEL2:19;
end;
then It-TruthEval phi=1 iff not I-TruthEval phi=0 by FOMODEL0:39;
hence thesis by A16, FOMODEL0:39;
end;
end;
suppose not phi is exal & not phi is 0wff;
then reconsider phii=phi
as non 0wff non exal wff string of S; set IT=(l,tt) SubstIn phii,
d=Depth phii; consider m such that
A19: d=m+1 by NAT_1:6;
W1: m+1+(-1)<=n+1-1 by XREAL_1:8, C0, A19;
reconsider mm=m as Element of NAT by ORDINAL1:def 12;
reconsider phii as
non 0wff non exal (m+1)-wff string of S by A19, FOMODEL2:def 31;
reconsider phi1=head phii, phi2=tail phii as Element of FF
by FOMODEL2:16; set d1=Depth phi1, d2=Depth phi2;
F.phii \+\ N={} & phii=<*F.phii*>^phi1^phi2 by FOMODEL2:23; then
A20: phii=<*N*>^phi1^phi2 by FOMODEL0:29;
D2: d1 <=m & d2 <= m by FOMODEL2:def 31;
reconsider m1=m-d1, m2=m-d2 as Nat; reconsider new1 =
((l,tt) SubstIn phi1), new2=(l,tt) SubstIn phi2 as wff string of S;
set d11=Depth new1, d22=Depth new2;
A21: d1<=n & d2<=n by W1,D2,XXREAL_0:2;
A22: IT = (l,tt,m,f4.mm) Subst2 phii by A19, Lm44 .=
<*N*>^(f4.(d1+m1).phi1)^(f4.(d2+m2).phi2) by Def20, A19 .=
<*N*>^new1^(f4.(d2+m2).phi2) by Lm45 .= <*N*>^new1^new2 by Lm45; then
Depth IT=1+max(d11, d22) by FOMODEL2:17 .= 1+max(d1, d22) by A21, A4 .=
1+max(d1,d2) by A21, A4 .= d by FOMODEL2:17, A20;
hence Depth (l,tt) SubstIn phi=Depth phi; let I be Element of II;
set TE=I-TermEval, u=TE.tt, J=(l,u) ReassignIn I, LH=I-TruthEval IT,
RH=J-TruthEval phii;
I-TruthEval new1=J-TruthEval phi1 & I-TruthEval new2=J-TruthEval phi2
by A21, A4; then J-TruthEval phii=1 iff
(I-TruthEval new1=0 & I-TruthEval new2=0) by A20, FOMODEL2:19; then
LH=1 iff not RH=0 by FOMODEL2:19, A22, FOMODEL0:39;
hence thesis by FOMODEL0:39;
end;
suppose phi is 0wff;
hence thesis by A1;
end;
end;
A23: for m holds P[m] from NAT_1:sch 2(A1,A3);
set m=Depth psi; thus Depth ((l,tt) SubstIn psi)=Depth psi by A23;
let I be Element of II; thus thesis by A23;
end;
