begin
:: deftheorem defines -compound FOMODEL3:def 1 :
for S being Language
for s being Element of S
for V being Element of (((AllSymbolsOf S) *) \ {{}}) * holds s -compound V = <*s*> ^ ((S -multiCat) . V);
Lm2:
for x being set
for m, n being Nat
for S being Language st not x in (S -termsOfMaxDepth) . (m + n) holds
not x in (S -termsOfMaxDepth) . m
Lm5:
for x being set
for n being Nat
for S being Language st x in (S -termsOfMaxDepth) . n holds
{ mm where mm is Element of NAT : not x in (S -termsOfMaxDepth) . mm } c= n
Lm1:
for S being Language
for V being Element of (AllTermsOf S) * ex mm being Element of NAT st V is Element of ((S -termsOfMaxDepth) . mm) *
:: deftheorem DefCompound1 defines -compound FOMODEL3:def 2 :
for S being Language
for s being Element of S
for b3 being Function of ((((AllSymbolsOf S) *) \ {{}}) *),(((AllSymbolsOf S) *) \ {{}}) holds
( b3 = s -compound iff for V being Element of (((AllSymbolsOf S) *) \ {{}}) * holds b3 . V = s -compound V );
:: deftheorem DefFreeInt1 defines -freeInterpreter FOMODEL3:def 3 :
for S being Language
for s being ofAtomicFormula Element of S
for X being set holds
( ( not s is relational implies X -freeInterpreter s = (s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S)) ) & ( s is relational implies X -freeInterpreter s = ((s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S))) * (chi (X,(AtomicFormulasOf S))) ) );
:: deftheorem DefFree1 defines -freeInterpreter FOMODEL3:def 4 :
for S being Language
for X being set
for b3 being Function holds
( b3 = (S,X) -freeInterpreter iff ( dom b3 = OwnSymbolsOf S & ( for s being own Element of S holds b3 . s = X -freeInterpreter s ) ) );
definition
let X,
Y be non
empty set ;
let R be
Relation of
X,
Y;
let n be
Nat;
func n -placesOf R -> Relation of
(n -tuples_on X),
(n -tuples_on Y) equals
{ [p,q] where p is Element of n -tuples_on X, q is Element of n -tuples_on Y : for j being set st j in Seg n holds
[(p . j),(q . j)] in R } ;
coherence
{ [p,q] where p is Element of n -tuples_on X, q is Element of n -tuples_on Y : for j being set st j in Seg n holds
[(p . j),(q . j)] in R } is Relation of (n -tuples_on X),(n -tuples_on Y)
end;
:: deftheorem defines -placesOf FOMODEL3:def 5 :
for X, Y being non empty set
for R being Relation of X,Y
for n being Nat holds n -placesOf R = { [p,q] where p is Element of n -tuples_on X, q is Element of n -tuples_on Y : for j being set st j in Seg n holds
[(p . j),(q . j)] in R } ;
Lm7:
for n being zero Nat
for X, Y being non empty set
for R being Relation of X,Y holds n -placesOf R = {[{},{}]}
:: deftheorem defines -placesOf FOMODEL3:def 6 :
for X being non empty set
for R being Relation of X
for n being Nat holds n -placesOf R = n -placesOf R;
:: deftheorem defines -placesOf FOMODEL3:def 7 :
for X being non empty set
for R being Relation of X
for n being zero Nat holds n -placesOf R = {[{},{}]};
Lm9:
for n being non zero Nat
for X being non empty set
for x, y being Element of Funcs ((Seg n),X)
for R being Relation of X holds
( [x,y] in n -placesOf R iff for j being Element of Seg n holds [(x . j),(y . j)] in R )
Lm16:
for n being non zero Nat
for X being non empty set
for r being total symmetric Relation of X holds n -placesOf r is total symmetric Relation of (n -tuples_on X)
Lm17:
for n being non zero Nat
for X being non empty set
for r being total transitive Relation of X holds n -placesOf r is total transitive Relation of (n -tuples_on X)
Lm13:
for n being zero Nat
for X being non empty set
for r being Relation of X holds n -placesOf r is total symmetric transitive Relation of (n -tuples_on X)
definition
let X,
Y be non
empty set ;
let E be
Equivalence_Relation of
X;
let F be
Equivalence_Relation of
Y;
let R be
Relation;
func R quotient (
E,
F)
-> set equals
{ [e,f] where e is Element of Class E, f is Element of Class F : ex x, y being set st
( x in e & y in f & [x,y] in R ) } ;
coherence
{ [e,f] where e is Element of Class E, f is Element of Class F : ex x, y being set st
( x in e & y in f & [x,y] in R ) } is set
;
end;
:: deftheorem defines quotient FOMODEL3:def 8 :
for X, Y being non empty set
for E being Equivalence_Relation of X
for F being Equivalence_Relation of Y
for R being Relation holds R quotient (E,F) = { [e,f] where e is Element of Class E, f is Element of Class F : ex x, y being set st
( x in e & y in f & [x,y] in R ) } ;
:: deftheorem DefCompatible defines -respecting FOMODEL3:def 9 :
for E, F being Relation
for f being Function holds
( f is E,F -respecting iff for x1, x2 being set st [x1,x2] in E holds
[(f . x1),(f . x2)] in F );
:: deftheorem DefCompatible2 defines -respecting FOMODEL3:def 10 :
for S being Language
for U being non empty set
for s being ofAtomicFormula Element of S
for E being Relation of U
for f being Interpreter of s,U holds
( ( not s is relational implies ( f is E -respecting iff f is (abs (ar s)) -placesOf E,E -respecting ) ) & ( s is relational implies ( f is E -respecting iff f is (abs (ar s)) -placesOf E, id BOOLEAN -respecting ) ) );
:: deftheorem DefDetriv defines DeTrivial FOMODEL3:def 11 :
for X being non empty set
for x being Element of SmallestPartition X
for b3 being Element of X holds
( b3 = DeTrivial x iff x = {b3} );
:: deftheorem DefPeel defines peeler FOMODEL3:def 12 :
for X being non empty set
for b2 being Function of {_{X}_},X holds
( b2 = peeler X iff for x being Element of {_{X}_} holds b2 . x = DeTrivial x );
Lm3:
for X being non empty set
for E being Equivalence_Relation of X
for x, y being set
for C being Element of Class E st x in C & y in C holds
[x,y] in E
Lm10:
for X being non empty set
for E being Equivalence_Relation of X
for C1, C2 being Element of Class E
for x1, x2 being set st x1 in C1 & x2 in C2 & [x1,x2] in E holds
C1 = C2
:: deftheorem DefClass defines -class FOMODEL3:def 13 :
for X being non empty set
for E being Equivalence_Relation of X
for b3 being Function of X,(Class E) holds
( b3 = E -class iff for x being Element of X holds b3 . x = EqClass (E,x) );
Lm8:
for U being non empty set
for E being Equivalence_Relation of U
for n being non zero Nat holds (n -placesOf ((E -class) ~)) * ((n -placesOf E) -class) is Function-like
:: deftheorem defines -tuple2Class FOMODEL3:def 14 :
for U being non empty set
for n being Nat
for E being Equivalence_Relation of U holds n -tuple2Class E = (n -placesOf ((E -class) ~)) * ((n -placesOf E) -class);
:: deftheorem DefQuot2 defines quotient FOMODEL3:def 15 :
for S being Language
for U being non empty set
for s being ofAtomicFormula Element of S
for E being Equivalence_Relation of U
for f being Interpreter of s,U holds
( ( not s is relational implies f quotient E = ((abs (ar s)) -tuple2Class E) * (f quotient (((abs (ar s)) -placesOf E),E)) ) & ( s is relational implies f quotient E = (((abs (ar s)) -tuple2Class E) * (f quotient (((abs (ar s)) -placesOf E),(id BOOLEAN)))) * (peeler BOOLEAN) ) );
theorem
theorem
:: deftheorem DefCompatible3 defines -respecting FOMODEL3:def 16 :
for S being Language
for U being non empty set
for E being Equivalence_Relation of U
for I being b1,b2 -interpreter-like Function holds
( I is E -respecting iff for s being own Element of S holds I . s is E -respecting );
:: deftheorem DefQuot3 defines quotient FOMODEL3:def 17 :
for S being Language
for U being non empty set
for E being Equivalence_Relation of U
for I being b1,b2 -interpreter-like Function
for b5 being Function holds
( b5 = I quotient E iff ( dom b5 = OwnSymbolsOf S & ( for o being Element of OwnSymbolsOf S holds b5 . o = (I . o) quotient E ) ) );
:: deftheorem DefQuot3b defines quotient FOMODEL3:def 18 :
for S being Language
for U being non empty set
for E being Equivalence_Relation of U
for I being b1,b2 -interpreter-like Function
for b5 being Function holds
( b5 = I quotient E iff ( dom b5 = OwnSymbolsOf S & ( for o being own Element of S holds b5 . o = (I . o) quotient E ) ) );
Lm6:
for U1, U2 being non empty set
for n being Nat
for R being Relation of U1,U2 holds n -placesOf R = { [p,q] where p is Element of n -tuples_on U1, q is Element of n -tuples_on U2 : q c= p * R }
Lm12:
for U2, U1, U3 being non empty set
for n being Nat
for U being non empty Subset of U2
for P being Relation of U1,U
for Q being Relation of U2,U3 holds (n -placesOf P) * (n -placesOf Q) c= n -placesOf (P * Q)
Lm18:
for U2, U1, U3 being non empty set
for n being Nat
for U being non empty Subset of U2
for P being Relation of U1,U
for Q being Relation of U2,U3 holds n -placesOf (P * Q) c= (n -placesOf P) * (n -placesOf Q)
Lm14:
for U2, U1, U3 being non empty set
for n being Nat
for U being non empty Subset of U2
for P being Relation of U1,U
for Q being Relation of U2,U3 holds n -placesOf (P * Q) = (n -placesOf P) * (n -placesOf Q)
Lm20:
for U1, U2, U3 being non empty set
for n being Nat
for P being Relation of U1,U2
for Q being Relation of U2,U3 holds n -placesOf (P * Q) = (n -placesOf P) * (n -placesOf Q)
Lm19:
for U1, U2 being non empty set
for n being Nat
for R being Relation of U1,U2 holds n -placesOf (R ~) = (n -placesOf R) ~
Lm27:
for X, Y being non empty set
for E being Equivalence_Relation of X
for F being Equivalence_Relation of Y
for g being b3,b4 -respecting Function of X,Y holds (F -class) * g = (g quotient (E,F)) * (E -class)
Lm22:
for U1, U2 being non empty set
for m being Nat
for p being b1 -valued b3 -element FinSequence
for f being Function of U1,U2 holds f * p = (m -placesOf f) . p
Lm23:
for U being non empty set
for n being Nat
for E being Equivalence_Relation of U holds (n -placesOf E) -class = (n -tuple2Class E) * (n -placesOf (E -class))
Lm24:
for U1, U2 being non empty set
for n being Nat
for E being Equivalence_Relation of U1
for F being Equivalence_Relation of U2
for g being b3 -placesOf b4,b5 -respecting Function of (n -tuples_on U1),U2 holds (g quotient ((n -placesOf E),F)) * (n -tuple2Class E) = (n -placesOf ((E -class) ~)) * ((F -class) * g)
Lm25:
for x being set
for U being non empty set
for f being Function
for R being total reflexive Relation of U st x in dom f & f is U -valued holds
f is id {x},R -respecting
Lm26:
for U being non empty set holds (peeler U) * ((id U) -class) = id U
Lm21:
for U being non empty set
for u being Element of U
for k being Nat
for S being Language
for E being Equivalence_Relation of U
for I being b4,b1 -interpreter-like b5 -respecting Function holds (((I quotient E),((E -class) . u)) -TermEval) . k = (E -class) * (((I,u) -TermEval) . k)
Lm32:
for U being non empty set
for S being Language
for E being Equivalence_Relation of U
for I being b2,b1 -interpreter-like b3 -respecting Function holds (I quotient E) -TermEval = (E -class) * (I -TermEval)
Lm28:
for U1 being non empty set
for S being Language
for R being Equivalence_Relation of U1
for phi being 0wff string of S
for i being b2,b1 -interpreter-like b3 -respecting Function st (S -firstChar) . phi <> TheEqSymbOf S holds
(i quotient R) -AtomicEval phi = i -AtomicEval phi
Lm31:
for X being set
for m being Nat
for S being Language
for tt being Element of AllTermsOf S
for t being 0 -termal string of S holds (((((S,X) -freeInterpreter),tt) -TermEval) . (m + 1)) . t = t
Lm30:
for X being set
for m being Nat
for S being Language
for tt being Element of AllTermsOf S holds (((((S,X) -freeInterpreter),tt) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = id ((S -termsOfMaxDepth) . m)
Lm29:
for X being set
for S being Language holds ((S,X) -freeInterpreter) -TermEval = id (AllTermsOf S)
Lm33:
for U1, U2 being non empty set
for R being Relation of U1,U2 holds 0 -placesOf R = id {{}}
theorem
theorem
theorem
Lm35:
for m being Nat
for S being Language
for l1, l2 being literal Element of S holds (l1 SubstWith l2) | ((S -termsOfMaxDepth) . m) is Function of ((S -termsOfMaxDepth) . m),((S -termsOfMaxDepth) . m)
Lm36:
for S being Language
for l1, l2 being literal Element of S holds (l1 SubstWith l2) | (AllTermsOf S) is Function of (AllTermsOf S),(AllTermsOf S)
Lm37:
for S being Language
for l1, l2 being literal Element of S
for psi1 being wff string of S ex psi2 being wff string of S st
( Depth psi1 = Depth psi2 & (l1 SubstWith l2) . psi1 = psi2 )
Lm39:
for S being Language
for l1, l2 being literal Element of S
for psi1 being wff string of S holds Depth psi1 = Depth ((l1,l2) -SymbolSubstIn psi1)
theorem
theorem Th7:
:: deftheorem defines AtomicSubst FOMODEL3:def 19 :
for S being Language
for l being literal Element of S
for tt being Element of AllTermsOf S
for phi0 being 0wff string of S holds (l,tt) AtomicSubst phi0 = <*((S -firstChar) . phi0)*> ^ ((S -multiCat) . ((((l,tt) ReassignIn ((S,{}) -freeInterpreter)) -TermEval) * (SubTerms phi0)));
Lm38:
for S being Language
for l being literal Element of S
for phi0 being 0wff string of S
for tt being Element of AllTermsOf S holds (l,tt) AtomicSubst phi0 is 0wff string of S
Lm42:
for S being Language
for l being literal Element of S
for phi0 being 0wff string of S
for tt being Element of AllTermsOf S holds
( (S -firstChar) . ((l,tt) AtomicSubst phi0) = (S -firstChar) . phi0 & SubTerms ((l,tt) AtomicSubst phi0) = (((l,tt) ReassignIn ((S,{}) -freeInterpreter)) -TermEval) * (SubTerms phi0) )
Lm43:
for X being set
for U being non empty set
for S being Language
for l being literal Element of S
for I being b3,b2 -interpreter-like Function
for tt being Element of AllTermsOf S holds (I -TermEval) * (((l,tt) ReassignIn ((S,X) -freeInterpreter)) -TermEval) = ((l,((I -TermEval) . tt)) ReassignIn I) -TermEval
theorem Th8:
Lm40:
for S being Language
for l1, l2 being literal Element of S
for t being termal string of S holds SubTerms ((l1,l2) -SymbolSubstIn t) = (l1 SubstWith l2) * (SubTerms t)
Lm41:
for S being Language
for l1, l2 being literal Element of S
for phi0 being 0wff string of S holds SubTerms ((l1,l2) -SymbolSubstIn phi0) = (l1 SubstWith l2) * (SubTerms phi0)
Lm44:
for U being non empty set
for u being Element of U
for m being Nat
for S being Language
for l1, l2 being literal Element of S
for I being b4,b1 -interpreter-like Function holds (((l1,u) ReassignIn I) -TermEval) | ((((AllSymbolsOf S) \ {l2}) *) /\ ((S -termsOfMaxDepth) . m)) = ((((l2,u) ReassignIn I) -TermEval) * (l1 SubstWith l2)) | ((((AllSymbolsOf S) \ {l2}) *) /\ ((S -termsOfMaxDepth) . m))
Lm45:
for U being non empty set
for u being Element of U
for S being Language
for l2, l1 being literal Element of S
for phi0 being 0wff string of S
for I being b3,b1 -interpreter-like Function st phi0 is (AllSymbolsOf S) \ {l2} -valued holds
((l1,u) ReassignIn I) -AtomicEval phi0 = ((l2,u) ReassignIn I) -AtomicEval ((l1,l2) -SymbolSubstIn phi0)
theorem Th9:
:: deftheorem DefSubst2 defines Subst2 FOMODEL3:def 20 :
for S being Language
for l being literal Element of S
for t being termal string of S
for n being Nat
for f being FinSequence-yielding Function
for phi being wff string of S holds
( ( Depth phi = n + 1 & not phi is exal implies (l,t,n,f) Subst2 phi = (<*(TheNorSymbOf S)*> ^ (f . (head phi))) ^ (f . (tail phi)) ) & ( Depth phi = n + 1 & phi is exal & (S -firstChar) . phi <> l implies (l,t,n,f) Subst2 phi = <* the Element of (LettersOf S) \ (((rng t) \/ (rng (head phi))) \/ {l})*> ^ (f . ((((S -firstChar) . phi), the Element of (LettersOf S) \ (((rng t) \/ (rng (head phi))) \/ {l})) -SymbolSubstIn (head phi))) ) & ( ( not Depth phi = n + 1 or phi is exal ) & ( not Depth phi = n + 1 or not phi is exal or not (S -firstChar) . phi <> l ) implies (l,t,n,f) Subst2 phi = f . phi ) );
Lm46:
for n being Nat
for S being Language
for l being literal Element of S
for t being termal string of S
for phi being wff string of S
for f being Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)) holds (l,t,n,f) Subst2 phi is wff string of S
definition
let S be
Language;
let l be
literal Element of
S;
let t be
termal string of
S;
let n be
Nat;
let f be
Element of
Funcs (
(AllFormulasOf S),
(AllFormulasOf S));
set FF =
AllFormulasOf S;
set D =
Funcs (
(AllFormulasOf S),
(AllFormulasOf S));
func (
l,
t,
n,
f)
Subst3 -> Element of
Funcs (
(AllFormulasOf S),
(AllFormulasOf S))
means :
DefSubst3:
for
phi being
wff string of
S holds
it . phi = (
l,
t,
n,
f)
Subst2 phi;
existence
ex b1 being Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)) st
for phi being wff string of S holds b1 . phi = (l,t,n,f) Subst2 phi
uniqueness
for b1, b2 being Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)) st ( for phi being wff string of S holds b1 . phi = (l,t,n,f) Subst2 phi ) & ( for phi being wff string of S holds b2 . phi = (l,t,n,f) Subst2 phi ) holds
b1 = b2
end;
:: deftheorem DefSubst3 defines Subst3 FOMODEL3:def 21 :
for S being Language
for l being literal Element of S
for t being termal string of S
for n being Nat
for f, b6 being Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)) holds
( b6 = (l,t,n,f) Subst3 iff for phi being wff string of S holds b6 . phi = (l,t,n,f) Subst2 phi );
definition
let S be
Language;
let l be
literal Element of
S;
let t be
termal string of
S;
let f be
Element of
Funcs (
(AllFormulasOf S),
(AllFormulasOf S));
set FF =
AllFormulasOf S;
set D =
Funcs (
(AllFormulasOf S),
(AllFormulasOf S));
deffunc H1(
Nat,
Element of
Funcs (
(AllFormulasOf S),
(AllFormulasOf S)))
-> Element of
Funcs (
(AllFormulasOf S),
(AllFormulasOf S)) = (
l,
t,$1,$2)
Subst3 ;
func (
l,
t)
Subst4 f -> Function of
NAT,
(Funcs ((AllFormulasOf S),(AllFormulasOf S))) means :
DefSubst4:
(
it . 0 = f & ( for
m being
Nat holds
it . (m + 1) = (
l,
t,
m,
(it . m))
Subst3 ) );
existence
ex b1 being Function of NAT,(Funcs ((AllFormulasOf S),(AllFormulasOf S))) st
( b1 . 0 = f & ( for m being Nat holds b1 . (m + 1) = (l,t,m,(b1 . m)) Subst3 ) )
uniqueness
for b1, b2 being Function of NAT,(Funcs ((AllFormulasOf S),(AllFormulasOf S))) st b1 . 0 = f & ( for m being Nat holds b1 . (m + 1) = (l,t,m,(b1 . m)) Subst3 ) & b2 . 0 = f & ( for m being Nat holds b2 . (m + 1) = (l,t,m,(b2 . m)) Subst3 ) holds
b1 = b2
end;
:: deftheorem DefSubst4 defines Subst4 FOMODEL3:def 22 :
for S being Language
for l being literal Element of S
for t being termal string of S
for f being Element of Funcs ((AllFormulasOf S),(AllFormulasOf S))
for b5 being Function of NAT,(Funcs ((AllFormulasOf S),(AllFormulasOf S))) holds
( b5 = (l,t) Subst4 f iff ( b5 . 0 = f & ( for m being Nat holds b5 . (m + 1) = (l,t,m,(b5 . m)) Subst3 ) ) );
:: deftheorem DefAtomSubst2 defines AtomicSubst FOMODEL3:def 23 :
for S being Language
for l being literal Element of S
for t being termal string of S
for b4 being Function of (AtomicFormulasOf S),(AtomicFormulasOf S) holds
( b4 = l AtomicSubst t iff for phi0 being 0wff string of S
for tt being Element of AllTermsOf S st tt = t holds
b4 . phi0 = (l,tt) AtomicSubst phi0 );
:: deftheorem defines Subst1 FOMODEL3:def 24 :
for S being Language
for l being literal Element of S
for t being termal string of S holds l Subst1 t = (id (AllFormulasOf S)) +* (l AtomicSubst t);
Lm47:
for S being Language
for l being literal Element of S
for t being termal string of S holds l Subst1 t in Funcs ((AllFormulasOf S),(AllFormulasOf S))
:: deftheorem defines SubstIn FOMODEL3:def 25 :
for S being Language
for l being literal Element of S
for t being termal string of S
for phi being wff string of S holds (l,t) SubstIn phi = (((l,t) Subst4 (l Subst1 t)) . (Depth phi)) . phi;
Lm48:
for m being Nat
for S being Language
for l being literal Element of S
for t being termal string of S
for phi being wff string of S
for f being Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)) holds (((l,t) Subst4 f) . (m + 1)) . phi = (l,t,m,(((l,t) Subst4 f) . m)) Subst2 phi
Lm49:
for m being Nat
for S being Language
for l being literal Element of S
for t being termal string of S
for phi being wff string of S
for f being Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)) holds
( (((l,t) Subst4 f) . ((Depth phi) + m)) . phi = (((l,t) Subst4 f) . (Depth phi)) . phi & ( (S -firstChar) . phi = l implies (((l,t) Subst4 (l Subst1 t)) . (Depth phi)) . phi = phi ) )
Lm50:
for m being Nat
for S being Language
for l being literal Element of S
for t being termal string of S
for phi being wff string of S st phi is m -wff holds
(l,t) SubstIn phi = (((l,t) Subst4 (l Subst1 t)) . m) . phi
theorem Th10:
Lm51:
for X being set
for U being non empty set
for S1, S2 being Language
for I1 being Element of U -InterpretersOf S1
for I2 being Element of U -InterpretersOf S2 st I1 | X = I2 | X & the adicity of S1 | X = the adicity of S2 | X holds
(I1 -TermEval) | (X *) c= (I2 -TermEval) | (X *)
theorem Th11:
Lm52:
for U being non empty set
for S1, S2 being Language
for phi1 being 0wff string of S1
for I1 being Element of U -InterpretersOf S1
for I2 being Element of U -InterpretersOf S2 st I1 | ((rng phi1) /\ (OwnSymbolsOf S1)) = I2 | ((rng phi1) /\ (OwnSymbolsOf S1)) & the adicity of S1 | ((rng phi1) /\ (OwnSymbolsOf S1)) = the adicity of S2 | ((rng phi1) /\ (OwnSymbolsOf S1)) & TheEqSymbOf S1 = TheEqSymbOf S2 holds
ex phi2 being 0wff string of S2 st
( phi2 = phi1 & I2 -AtomicEval phi2 = I1 -AtomicEval phi1 )
theorem
theorem Th13:
theorem
theorem