let X be set ; for S being Language
for U being non empty set
for I1, I2 being b1,b2 -interpreter-like Function st I1 | X = I2 | X holds
(I1 -TermEval) | (X *) = (I2 -TermEval) | (X *)
let S be Language; for U being non empty set
for I1, I2 being S,b1 -interpreter-like Function st I1 | X = I2 | X holds
(I1 -TermEval) | (X *) = (I2 -TermEval) | (X *)
let U be non empty set ; for I1, I2 being S,U -interpreter-like Function st I1 | X = I2 | X holds
(I1 -TermEval) | (X *) = (I2 -TermEval) | (X *)
set T = S -termsOfMaxDepth ;
set O = OwnSymbolsOf S;
set TT = AllTermsOf S;
set SS = AllSymbolsOf S;
set L = LettersOf S;
set F = S -firstChar ;
set C = S -multiCat ;
let I1, I2 be S,U -interpreter-like Function; ( I1 | X = I2 | X implies (I1 -TermEval) | (X *) = (I2 -TermEval) | (X *) )
set E1 = I1 -TermEval ;
set E2 = I2 -TermEval ;
set I11 = I1 | X;
set I22 = I2 | X;
assume Z3:
I1 | X = I2 | X
; (I1 -TermEval) | (X *) = (I2 -TermEval) | (X *)
then B2:
( dom (I1 -TermEval) = AllTermsOf S & dom (I2 -TermEval) = AllTermsOf S & I1 | X = I2 | X )
by FUNCT_2:def 1;
defpred S1[ Nat] means (I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . $1)) = (I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . $1));
B0:
S1[ 0 ]
B1:
for n being Nat st S1[n] holds
S1[n + 1]
proof
let n be
Nat;
( S1[n] implies S1[n + 1] )
set d =
(X *) /\ ((S -termsOfMaxDepth) . n);
set D =
(X *) /\ ((S -termsOfMaxDepth) . (n + 1));
reconsider nn =
n,
NN =
n + 1 as
Element of
NAT by ORDINAL1:def 12;
assume Z9:
S1[
n]
;
S1[n + 1]
(
(X *) /\ ((S -termsOfMaxDepth) . (n + 1)) c= (S -termsOfMaxDepth) . NN &
(X *) /\ ((S -termsOfMaxDepth) . n) c= (S -termsOfMaxDepth) . nn &
(S -termsOfMaxDepth) . nn c= AllTermsOf S &
(S -termsOfMaxDepth) . NN c= AllTermsOf S )
by FOMODEL1:2;
then reconsider DD =
(X *) /\ ((S -termsOfMaxDepth) . (n + 1)),
dd =
(X *) /\ ((S -termsOfMaxDepth) . n) as
Subset of
(AllTermsOf S) by XBOOLE_1:1;
C1:
(
dom ((I1 -TermEval) | dd) = (X *) /\ ((S -termsOfMaxDepth) . n) &
dom ((I2 -TermEval) | dd) = (X *) /\ ((S -termsOfMaxDepth) . n) &
dom ((I1 -TermEval) | DD) = (X *) /\ ((S -termsOfMaxDepth) . (n + 1)) &
dom ((I2 -TermEval) | DD) = (X *) /\ ((S -termsOfMaxDepth) . (n + 1)) )
by PARTFUN1:def 2;
now let x be
set ;
( x in dom ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) implies ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x = ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x )assume Z4:
x in dom ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1))))
;
((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x = ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . xreconsider t =
x as
nn + 1
-termal string of
S by Z4, C1, FOMODEL1:def 33;
reconsider XX =
X as non
empty set by Z4, C1;
reconsider DD =
DD as non
empty Subset of
(AllTermsOf S) by Z4;
reconsider tx =
x as non
empty Element of
XX * by Z4, C1;
reconsider dx =
x as
Element of
DD by Z4, PARTFUN1:def 2;
set o =
(S -firstChar) . t;
set m =
abs (ar ((S -firstChar) . t));
{(tx . 1)} \ XX = {}
;
then
tx . 1
in XX
by ZFMISC_1:60;
then reconsider oo =
(S -firstChar) . t as
Element of
XX by FOMODEL0:6;
reconsider r =
rng t as
Subset of
X by Z4, C1, RELAT_1:def 19;
r * c= X *
;
then reconsider newords =
(rng t) * as non
empty Subset of
(X *) ;
reconsider ST =
SubTerms t as
newords -valued abs (ar ((S -firstChar) . t)) -element FinSequence ;
(
((I1 | X) . oo) \+\ (I1 . oo) = {} &
((I2 | X) . oo) \+\ (I2 . oo) = {} )
;
then Z10:
(
(I1 | X) . oo = I1 . oo &
(I2 | X) . oo = I2 . oo )
by FOMODEL0:29;
(
(((I1 -TermEval) | DD) . dx) \+\ ((I1 -TermEval) . dx) = {} &
(((I2 -TermEval) | DD) . dx) \+\ ((I2 -TermEval) . dx) = {} )
;
then D3:
(
((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x = (I1 -TermEval) . x &
((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x = (I2 -TermEval) . x )
by FOMODEL0:29;
(
rng ST c= (S -termsOfMaxDepth) . nn &
rng ST c= X * )
by RELAT_1:def 19;
then D2:
(
((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . n))) * ST = (I1 -TermEval) * ST &
((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . n))) * ST = (I2 -TermEval) * ST )
by C1, RELAT_1:165, XBOOLE_1:19;
then
(I1 . ((S -firstChar) . t)) . (((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . n))) * ST) = (I1 -TermEval) . t
by Th21;
hence
((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x = ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x
by D3, Z9, Z3, Z10, D2, Th21;
verum end;
hence
S1[
n + 1]
by C1, FUNCT_1:2;
verum
end;
B3:
for m being Nat holds S1[m]
from NAT_1:sch 2(B0, B1);
set f1 = (I1 -TermEval) | (X *);
set f2 = (I2 -TermEval) | (X *);
B4:
( dom ((I1 -TermEval) | (X *)) = (X *) /\ (AllTermsOf S) & dom ((I2 -TermEval) | (X *)) = (X *) /\ (AllTermsOf S) )
by B2, RELAT_1:61;
hence
(I1 -TermEval) | (X *) = (I2 -TermEval) | (X *)
by B4, FUNCT_1:2; verum