:: FOMODEL3 semantic presentation begin definition let S be Language; let s be Element of S; let V be Element of (((AllSymbolsOf S) *) \ {{}}) * ; funcs -compound V -> string of S equals :: FOMODEL3:def 1 <*s*> ^ ((S -multiCat) . V); coherence <*s*> ^ ((S -multiCat) . V) is string of S proof set SS = AllSymbolsOf S; set C = S -multiCat ; reconsider header = <*s*> as Element of (AllSymbolsOf S) * ; reconsider tailer = (S -multiCat) . V as FinSequence of AllSymbolsOf S by FINSEQ_1:def_11; reconsider IT = header ^ tailer as FinSequence of AllSymbolsOf S ; ( IT in (AllSymbolsOf S) * & not IT in {{}} ) by FINSEQ_1:def_11; hence <*s*> ^ ((S -multiCat) . V) is string of S by XBOOLE_0:def_5; ::_thesis: verum end; end; :: 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); registration let S be Language; let mm be Element of NAT ; let s be termal Element of S; let V be abs (ar s) -element Element of ((S -termsOfMaxDepth) . mm) * ; clusters -compound V -> mm + 1 -termal for string of S; coherence for b1 being string of S st b1 = s -compound V holds b1 is mm + 1 -termal proof set C = S -multiCat ; set t = s -compound V; set T = S -termsOfMaxDepth ; set L = LettersOf S; set SS = AllSymbolsOf S; set n = abs (ar s); set A = AtomicTermsOf S; set fam = { (Compound (u,((S -termsOfMaxDepth) . mm))) where u is ofAtomicFormula Element of S : u is operational } ; A1: V is FinSequence of (S -termsOfMaxDepth) . mm by FINSEQ_1:def_11; reconsider Ss = ((AllSymbolsOf S) *) \ {{}} as Subset of ((AllSymbolsOf S) *) ; V in Ss * ; then reconsider VV = V as Element of ((AllSymbolsOf S) *) * ; ( s -compound V = <*s*> ^ ((S -multiCat) . VV) & rng VV c= (S -termsOfMaxDepth) . mm ) by A1, FINSEQ_1:def_4; then A2: s -compound V in Compound (s,((S -termsOfMaxDepth) . mm)) ; percases ( s is literal or not s is literal ) ; suppose s is literal ; ::_thesis: for b1 being string of S st b1 = s -compound V holds b1 is mm + 1 -termal then reconsider v = s as literal Element of S ; reconsider vv = v as Element of LettersOf S by FOMODEL1:def_14; ar v = 0 ; then abs (ar s) = 0 ; then reconsider VVV = V as 0 -element FinSequence ; s -compound V = <*s*> ^ VVV .= <*vv*> ; then s -compound V in AtomicTermsOf S by FINSEQ_2:98; then ( (S -termsOfMaxDepth) . 0 c= (S -termsOfMaxDepth) . (0 + (mm + 1)) & s -compound V in (S -termsOfMaxDepth) . 0 ) by FOMODEL1:4, FOMODEL1:def_30; hence for b1 being string of S st b1 = s -compound V holds b1 is mm + 1 -termal by FOMODEL1:def_33; ::_thesis: verum end; suppose not s is literal ; ::_thesis: for b1 being string of S st b1 = s -compound V holds b1 is mm + 1 -termal then Compound (s,((S -termsOfMaxDepth) . mm)) in { (Compound (u,((S -termsOfMaxDepth) . mm))) where u is ofAtomicFormula Element of S : u is operational } ; then s -compound V in union { (Compound (u,((S -termsOfMaxDepth) . mm))) where u is ofAtomicFormula Element of S : u is operational } by A2, TARSKI:def_4; then s -compound V in (union { (Compound (u,((S -termsOfMaxDepth) . mm))) where u is ofAtomicFormula Element of S : u is operational } ) \/ ((S -termsOfMaxDepth) . mm) by XBOOLE_0:def_3; then s -compound V in (S -termsOfMaxDepth) . (mm + 1) by FOMODEL1:def_30; hence for b1 being string of S st b1 = s -compound V holds b1 is mm + 1 -termal by FOMODEL1:def_33; ::_thesis: verum end; end; end; end; Lm1: 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 proof let x be set ; ::_thesis: for m, n being Nat for S being Language st not x in (S -termsOfMaxDepth) . (m + n) holds not x in (S -termsOfMaxDepth) . m let m, n be Nat; ::_thesis: for S being Language st not x in (S -termsOfMaxDepth) . (m + n) holds not x in (S -termsOfMaxDepth) . m let S be Language; ::_thesis: ( not x in (S -termsOfMaxDepth) . (m + n) implies not x in (S -termsOfMaxDepth) . m ) set T = S -termsOfMaxDepth ; A1: (S -termsOfMaxDepth) . m c= (S -termsOfMaxDepth) . (m + n) by FOMODEL1:4; assume not x in (S -termsOfMaxDepth) . (m + n) ; ::_thesis: not x in (S -termsOfMaxDepth) . m hence not x in (S -termsOfMaxDepth) . m by A1; ::_thesis: verum end; Lm2: 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 proof let x be set ; ::_thesis: 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 let n be Nat; ::_thesis: 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 let S be Language; ::_thesis: ( x in (S -termsOfMaxDepth) . n implies { mm where mm is Element of NAT : not x in (S -termsOfMaxDepth) . mm } c= n ) set T = S -termsOfMaxDepth ; set A = { mm where mm is Element of NAT : not x in (S -termsOfMaxDepth) . mm } ; assume A1: x in (S -termsOfMaxDepth) . n ; ::_thesis: { mm where mm is Element of NAT : not x in (S -termsOfMaxDepth) . mm } c= n now__::_thesis:_for_y_being_set_st_y_in__{__mm_where_mm_is_Element_of_NAT_:_not_x_in_(S_-termsOfMaxDepth)_._mm__}__holds_ y_in_n let y be set ; ::_thesis: ( y in { mm where mm is Element of NAT : not x in (S -termsOfMaxDepth) . mm } implies y in n ) assume y in { mm where mm is Element of NAT : not x in (S -termsOfMaxDepth) . mm } ; ::_thesis: y in n then consider mm being Element of NAT such that A2: ( y = mm & not x in (S -termsOfMaxDepth) . mm ) ; now__::_thesis:_not_mm_>=_n assume mm >= n ; ::_thesis: contradiction then consider k being Nat such that A3: mm = n + k by NAT_1:10; thus contradiction by A1, A2, A3, Lm1; ::_thesis: verum end; hence y in n by A2, NAT_1:44; ::_thesis: verum end; hence { mm where mm is Element of NAT : not x in (S -termsOfMaxDepth) . mm } c= n by TARSKI:def_3; ::_thesis: verum end; Lm3: 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) * proof let S be Language; ::_thesis: for V being Element of (AllTermsOf S) * ex mm being Element of NAT st V is Element of ((S -termsOfMaxDepth) . mm) * set TT = AllTermsOf S; set T = S -termsOfMaxDepth ; let V be Element of (AllTermsOf S) * ; ::_thesis: ex mm being Element of NAT st V is Element of ((S -termsOfMaxDepth) . mm) * deffunc H1( set ) -> set = { mm where mm is Element of NAT : not V . $1 in (S -termsOfMaxDepth) . mm } ; set B = { H1(nn) where nn is Element of NAT : nn in dom V } ; A1: dom V is finite ; reconsider TF = S -termsOfMaxDepth as Function ; A2: now__::_thesis:_for_x_being_set_st_x_in__{__H1(nn)_where_nn_is_Element_of_NAT_:_nn_in_dom_V__}__holds_ x_is_finite let x be set ; ::_thesis: ( x in { H1(nn) where nn is Element of NAT : nn in dom V } implies x is finite ) assume x in { H1(nn) where nn is Element of NAT : nn in dom V } ; ::_thesis: x is finite then consider nn being Element of NAT such that A3: ( x = { mm where mm is Element of NAT : not V . nn in (S -termsOfMaxDepth) . mm } & nn in dom V ) ; reconsider D = dom V as non empty set by A3; rng V c= AllTermsOf S by RELAT_1:def_19; then reconsider VV = V as Function of D,(AllTermsOf S) by FUNCT_2:2; reconsider nnn = nn as Element of D by A3; consider kk being Element of NAT such that A4: VV . nnn in TF . kk by FOMODEL1:5; x c= kk by Lm2, A3, A4; hence x is finite ; ::_thesis: verum end; { H1(nn) where nn is Element of NAT : nn in dom V } is finite from FRAENKEL:sch_21(A1); then reconsider BB = { H1(nn) where nn is Element of NAT : nn in dom V } as finite finite-membered set by A2, FINSET_1:def_6; reconsider C = union BB as finite set ; consider x being set such that A5: x in NAT \ C by XBOOLE_0:def_1; reconsider mm = x as Element of NAT by A5; take mm ; ::_thesis: V is Element of ((S -termsOfMaxDepth) . mm) * now__::_thesis:_for_i_being_set_st_i_in_dom_V_holds_ V_._i_in_(S_-termsOfMaxDepth)_._mm let i be set ; ::_thesis: ( i in dom V implies V . i in (S -termsOfMaxDepth) . mm ) assume A6: i in dom V ; ::_thesis: V . i in (S -termsOfMaxDepth) . mm then reconsider ii = i as Element of NAT ; ( not V . i in (S -termsOfMaxDepth) . mm implies mm in C ) proof assume not V . i in (S -termsOfMaxDepth) . mm ; ::_thesis: mm in C then ( mm in H1(i) & H1(ii) in { H1(nn) where nn is Element of NAT : nn in dom V } ) by A6; hence mm in C by TARSKI:def_4; ::_thesis: verum end; hence V . i in (S -termsOfMaxDepth) . mm by A5, XBOOLE_0:def_5; ::_thesis: verum end; then V is Function of (dom V),((S -termsOfMaxDepth) . mm) by FUNCT_2:3; then V is FinSequence of (S -termsOfMaxDepth) . mm by FOMODEL0:26; hence V is Element of ((S -termsOfMaxDepth) . mm) * by FINSEQ_1:def_11; ::_thesis: verum end; registration let S be Language; let s be termal Element of S; let V be abs (ar s) -element Element of (AllTermsOf S) * ; clusters -compound V -> termal for string of S; coherence for b1 being string of S st b1 = s -compound V holds b1 is termal proof set T = S -termsOfMaxDepth ; set n = abs (ar s); consider mm being Element of NAT such that A1: V is Element of ((S -termsOfMaxDepth) . mm) * by Lm3; reconsider VV = V as abs (ar s) -element Element of ((S -termsOfMaxDepth) . mm) * by A1; s -compound VV is mm + 1 -termal string of S ; hence for b1 being string of S st b1 = s -compound V holds b1 is termal ; ::_thesis: verum end; end; registration let S be Language; let s be relational Element of S; let V be abs (ar s) -element Element of (AllTermsOf S) * ; clusters -compound V -> 0wff for string of S; coherence for b1 being string of S st b1 = s -compound V holds b1 is 0wff by FOMODEL1:def_35; end; definition let S be Language; let s be Element of S; funcs -compound -> Function of ((((AllSymbolsOf S) *) \ {{}}) *),(((AllSymbolsOf S) *) \ {{}}) means :Def2: :: FOMODEL3:def 2 for V being Element of (((AllSymbolsOf S) *) \ {{}}) * holds it . V = s -compound V; existence ex b1 being Function of ((((AllSymbolsOf S) *) \ {{}}) *),(((AllSymbolsOf S) *) \ {{}}) st for V being Element of (((AllSymbolsOf S) *) \ {{}}) * holds b1 . V = s -compound V proof set SS = AllSymbolsOf S; deffunc H1( Element of (((AllSymbolsOf S) *) \ {{}}) * ) -> string of S = s -compound $1; consider f being Function of ((((AllSymbolsOf S) *) \ {{}}) *),(((AllSymbolsOf S) *) \ {{}}) such that A1: for x being Element of (((AllSymbolsOf S) *) \ {{}}) * holds f . x = H1(x) from FUNCT_2:sch_4(); take f ; ::_thesis: for V being Element of (((AllSymbolsOf S) *) \ {{}}) * holds f . V = s -compound V thus for V being Element of (((AllSymbolsOf S) *) \ {{}}) * holds f . V = s -compound V by A1; ::_thesis: verum end; uniqueness for b1, b2 being Function of ((((AllSymbolsOf S) *) \ {{}}) *),(((AllSymbolsOf S) *) \ {{}}) st ( for V being Element of (((AllSymbolsOf S) *) \ {{}}) * holds b1 . V = s -compound V ) & ( for V being Element of (((AllSymbolsOf S) *) \ {{}}) * holds b2 . V = s -compound V ) holds b1 = b2 proof set SS = AllSymbolsOf S; let IT1, IT2 be Function of ((((AllSymbolsOf S) *) \ {{}}) *),(((AllSymbolsOf S) *) \ {{}}); ::_thesis: ( ( for V being Element of (((AllSymbolsOf S) *) \ {{}}) * holds IT1 . V = s -compound V ) & ( for V being Element of (((AllSymbolsOf S) *) \ {{}}) * holds IT2 . V = s -compound V ) implies IT1 = IT2 ) assume that A2: for V being Element of (((AllSymbolsOf S) *) \ {{}}) * holds IT1 . V = s -compound V and A3: for V being Element of (((AllSymbolsOf S) *) \ {{}}) * holds IT2 . V = s -compound V ; ::_thesis: IT1 = IT2 now__::_thesis:_for_V_being_Element_of_(((AllSymbolsOf_S)_*)_\_{{}})_*_holds_IT1_._V_=_IT2_._V let V be Element of (((AllSymbolsOf S) *) \ {{}}) * ; ::_thesis: IT1 . V = IT2 . V thus IT1 . V = s -compound V by A2 .= IT2 . V by A3 ; ::_thesis: verum end; hence IT1 = IT2 by FUNCT_2:def_7; ::_thesis: verum end; end; :: deftheorem Def2 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 ); registration let S be Language; let s be termal Element of S; cluster(s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S)) -> AllTermsOf S -valued ; coherence (s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S)) is AllTermsOf S -valued proof set SS = AllSymbolsOf S; set A = AllTermsOf S; set n = abs (ar s); set D = (abs (ar s)) -tuples_on (AllTermsOf S); set f = s -compound ; set IT = (s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S)); now__::_thesis:_for_y_being_set_st_y_in_rng_((s_-compound)_|_((abs_(ar_s))_-tuples_on_(AllTermsOf_S)))_holds_ y_in_AllTermsOf_S let y be set ; ::_thesis: ( y in rng ((s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S))) implies y in AllTermsOf S ) assume y in rng ((s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S))) ; ::_thesis: y in AllTermsOf S then y in (s -compound) .: ((abs (ar s)) -tuples_on (AllTermsOf S)) by RELAT_1:115; then consider x being set such that A1: ( x in dom (s -compound) & x in (abs (ar s)) -tuples_on (AllTermsOf S) & y = (s -compound) . x ) by FUNCT_1:def_6; reconsider V = x as abs (ar s) -element FinSequence of AllTermsOf S by A1, FOMODEL0:12; reconsider VV = V as abs (ar s) -element Element of (AllTermsOf S) * by FINSEQ_1:def_11; reconsider Ss = ((AllSymbolsOf S) *) \ {{}} as Subset of ((AllSymbolsOf S) *) ; VV is Element of Ss * ; then ( s -compound VV is termal string of S & VV is Element of ((AllSymbolsOf S) *) * ) ; then (s -compound) . VV is termal string of S by Def2; hence y in AllTermsOf S by A1, FOMODEL1:def_32; ::_thesis: verum end; then rng ((s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S))) c= AllTermsOf S by TARSKI:def_3; hence (s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S)) is AllTermsOf S -valued by RELAT_1:def_19; ::_thesis: verum end; end; registration let S be Language; let s be relational Element of S; cluster(s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S)) -> AtomicFormulasOf S -valued ; coherence (s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S)) is AtomicFormulasOf S -valued proof set SS = AllSymbolsOf S; set A = AllTermsOf S; set n = abs (ar s); set D = (abs (ar s)) -tuples_on (AllTermsOf S); set f = s -compound ; set IT = (s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S)); set AF = AtomicFormulasOf S; now__::_thesis:_for_y_being_set_st_y_in_rng_((s_-compound)_|_((abs_(ar_s))_-tuples_on_(AllTermsOf_S)))_holds_ y_in_AtomicFormulasOf_S let y be set ; ::_thesis: ( y in rng ((s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S))) implies y in AtomicFormulasOf S ) assume y in rng ((s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S))) ; ::_thesis: y in AtomicFormulasOf S then y in (s -compound) .: ((abs (ar s)) -tuples_on (AllTermsOf S)) by RELAT_1:115; then consider x being set such that A1: ( x in dom (s -compound) & x in (abs (ar s)) -tuples_on (AllTermsOf S) & y = (s -compound) . x ) by FUNCT_1:def_6; reconsider V = x as abs (ar s) -element FinSequence of AllTermsOf S by A1, FOMODEL0:12; reconsider VV = V as abs (ar s) -element Element of (AllTermsOf S) * by FINSEQ_1:def_11; reconsider Ss = ((AllSymbolsOf S) *) \ {{}} as Subset of ((AllSymbolsOf S) *) ; VV is Element of Ss * ; then ( s -compound VV is 0wff string of S & VV is Element of ((AllSymbolsOf S) *) * ) ; then (s -compound) . VV is 0wff string of S by Def2; hence y in AtomicFormulasOf S by A1; ::_thesis: verum end; then rng ((s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S))) c= AtomicFormulasOf S by TARSKI:def_3; hence (s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S)) is AtomicFormulasOf S -valued by RELAT_1:def_19; ::_thesis: verum end; end; definition let S be Language; let s be ofAtomicFormula Element of S; let X be set ; funcX -freeInterpreter s -> set equals :Def3: :: FOMODEL3:def 3 (s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S)) if not s is relational otherwise ((s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S))) * (chi (X,(AtomicFormulasOf S))); coherence ( ( not s is relational implies (s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S)) is set ) & ( s is relational implies ((s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S))) * (chi (X,(AtomicFormulasOf S))) is set ) ) ; consistency for b1 being set holds verum ; end; :: deftheorem Def3 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))) ) ); definition let S be Language; let s be ofAtomicFormula Element of S; let X be set ; :: original: -freeInterpreter redefine funcX -freeInterpreter s -> Interpreter of s, AllTermsOf S; coherence X -freeInterpreter s is Interpreter of s, AllTermsOf S proof set A = AllTermsOf S; set n = abs (ar s); set SS = AllSymbolsOf S; set XF = X -freeInterpreter s; set AF = AtomicFormulasOf S; reconsider Ss = ((AllSymbolsOf S) *) \ {{}} as Subset of ((AllSymbolsOf S) *) ; (abs (ar s)) -tuples_on (AllTermsOf S) c= (AllTermsOf S) * by FINSEQ_2:142; then (abs (ar s)) -tuples_on (AllTermsOf S) c= Ss * by XBOOLE_1:1; then reconsider f = (s -compound) | ((abs (ar s)) -tuples_on (AllTermsOf S)) as Function of ((abs (ar s)) -tuples_on (AllTermsOf S)),(((AllSymbolsOf S) *) \ {{}}) by FUNCT_2:32; percases ( s is relational or not s is relational ) ; supposeA1: s is relational ; ::_thesis: X -freeInterpreter s is Interpreter of s, AllTermsOf S then reconsider ss = s as relational Element of S ; (ss -compound) | ((abs (ar ss)) -tuples_on (AllTermsOf S)) is AtomicFormulasOf S -valued ; then rng f c= AtomicFormulasOf S by RELAT_1:def_19; then reconsider ff = f as Function of ((abs (ar s)) -tuples_on (AllTermsOf S)),(AtomicFormulasOf S) by RELSET_1:6; reconsider g = chi (X,(AtomicFormulasOf S)) as Function of (AtomicFormulasOf S),BOOLEAN ; g * ff is Function of ((abs (ar s)) -tuples_on (AllTermsOf S)),BOOLEAN ; then X -freeInterpreter s is Function of ((abs (ar s)) -tuples_on (AllTermsOf S)),BOOLEAN by A1, Def3; hence X -freeInterpreter s is Interpreter of s, AllTermsOf S by A1, FOMODEL2:def_2; ::_thesis: verum end; supposeA2: not s is relational ; ::_thesis: X -freeInterpreter s is Interpreter of s, AllTermsOf S then reconsider ss = s as non relational ofAtomicFormula Element of S ; (ss -compound) | ((abs (ar ss)) -tuples_on (AllTermsOf S)) is AllTermsOf S -valued ; then rng f c= AllTermsOf S by RELAT_1:def_19; then f is Function of ((abs (ar s)) -tuples_on (AllTermsOf S)),(AllTermsOf S) by RELSET_1:6; then X -freeInterpreter s is Function of ((abs (ar s)) -tuples_on (AllTermsOf S)),(AllTermsOf S) by A2, Def3; hence X -freeInterpreter s is Interpreter of s, AllTermsOf S by A2, FOMODEL2:def_2; ::_thesis: verum end; end; end; end; definition let S be Language; let X be set ; func(S,X) -freeInterpreter -> Function means :Def4: :: FOMODEL3:def 4 ( dom it = OwnSymbolsOf S & ( for s being own Element of S holds it . s = X -freeInterpreter s ) ); existence ex b1 being Function st ( dom b1 = OwnSymbolsOf S & ( for s being own Element of S holds b1 . s = X -freeInterpreter s ) ) proof set O = OwnSymbolsOf S; set SS = AllSymbolsOf S; defpred S1[ set , set ] means for s being own Element of S st $1 = s holds $2 = X -freeInterpreter s; A1: for x being set st x in OwnSymbolsOf S holds ex y being set st S1[x,y] proof let x be set ; ::_thesis: ( x in OwnSymbolsOf S implies ex y being set st S1[x,y] ) assume x in OwnSymbolsOf S ; ::_thesis: ex y being set st S1[x,y] then reconsider s = x as own Element of S by FOMODEL1:def_19; take yy = X -freeInterpreter s; ::_thesis: S1[x,yy] thus for ss being own Element of S st x = ss holds yy = X -freeInterpreter ss ; ::_thesis: verum end; consider f being Function such that A2: ( dom f = OwnSymbolsOf S & ( for x being set st x in OwnSymbolsOf S holds S1[x,f . x] ) ) from CLASSES1:sch_1(A1); take f ; ::_thesis: ( dom f = OwnSymbolsOf S & ( for s being own Element of S holds f . s = X -freeInterpreter s ) ) thus dom f = OwnSymbolsOf S by A2; ::_thesis: for s being own Element of S holds f . s = X -freeInterpreter s thus for s being own Element of S holds f . s = X -freeInterpreter s ::_thesis: verum proof let s be own Element of S; ::_thesis: f . s = X -freeInterpreter s ( s in OwnSymbolsOf S & s = s ) by FOMODEL1:def_19; hence f . s = X -freeInterpreter s by A2; ::_thesis: verum end; end; uniqueness for b1, b2 being Function st dom b1 = OwnSymbolsOf S & ( for s being own Element of S holds b1 . s = X -freeInterpreter s ) & dom b2 = OwnSymbolsOf S & ( for s being own Element of S holds b2 . s = X -freeInterpreter s ) holds b1 = b2 proof set O = OwnSymbolsOf S; set SS = AllSymbolsOf S; let IT1, IT2 be Function; ::_thesis: ( dom IT1 = OwnSymbolsOf S & ( for s being own Element of S holds IT1 . s = X -freeInterpreter s ) & dom IT2 = OwnSymbolsOf S & ( for s being own Element of S holds IT2 . s = X -freeInterpreter s ) implies IT1 = IT2 ) assume A3: ( dom IT1 = OwnSymbolsOf S & ( for s being own Element of S holds IT1 . s = X -freeInterpreter s ) ) ; ::_thesis: ( not dom IT2 = OwnSymbolsOf S or ex s being own Element of S st not IT2 . s = X -freeInterpreter s or IT1 = IT2 ) assume A4: ( dom IT2 = OwnSymbolsOf S & ( for s being own Element of S holds IT2 . s = X -freeInterpreter s ) ) ; ::_thesis: IT1 = IT2 now__::_thesis:_(_dom_IT1_=_dom_IT2_&_(_for_x_being_set_st_x_in_dom_IT1_holds_ IT1_._x_=_IT2_._x_)_) thus dom IT1 = dom IT2 by A3, A4; ::_thesis: for x being set st x in dom IT1 holds IT1 . x = IT2 . x let x be set ; ::_thesis: ( x in dom IT1 implies IT1 . x = IT2 . x ) assume x in dom IT1 ; ::_thesis: IT1 . x = IT2 . x then reconsider s = x as own Element of S by A3, FOMODEL1:def_19; IT1 . s = X -freeInterpreter s by A3 .= IT2 . s by A4 ; hence IT1 . x = IT2 . x ; ::_thesis: verum end; hence IT1 = IT2 by FUNCT_1:2; ::_thesis: verum end; end; :: deftheorem Def4 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 ) ) ); registration let S be Language; let X be set ; cluster(S,X) -freeInterpreter -> Function-yielding for Function; coherence for b1 being Function st b1 = (S,X) -freeInterpreter holds b1 is Function-yielding proof set O = OwnSymbolsOf S; set IT = (S,X) -freeInterpreter ; now__::_thesis:_for_x_being_set_st_x_in_dom_((S,X)_-freeInterpreter)_holds_ ((S,X)_-freeInterpreter)_._x_is_Function let x be set ; ::_thesis: ( x in dom ((S,X) -freeInterpreter) implies ((S,X) -freeInterpreter) . x is Function ) assume x in dom ((S,X) -freeInterpreter) ; ::_thesis: ((S,X) -freeInterpreter) . x is Function then x in OwnSymbolsOf S by Def4; then reconsider s = x as own Element of S by FOMODEL1:def_19; X -freeInterpreter s is Function ; hence ((S,X) -freeInterpreter) . x is Function by Def4; ::_thesis: verum end; hence for b1 being Function st b1 = (S,X) -freeInterpreter holds b1 is Function-yielding by FUNCOP_1:def_6; ::_thesis: verum end; end; definition let S be Language; let X be set ; :: original: -freeInterpreter redefine func(S,X) -freeInterpreter -> Interpreter of S, AllTermsOf S; coherence (S,X) -freeInterpreter is Interpreter of S, AllTermsOf S proof set IT = (S,X) -freeInterpreter ; set A = AllTermsOf S; for s being own Element of S holds ((S,X) -freeInterpreter) . s is Interpreter of s, AllTermsOf S proof let s be own Element of S; ::_thesis: ((S,X) -freeInterpreter) . s is Interpreter of s, AllTermsOf S X -freeInterpreter s is Interpreter of s, AllTermsOf S ; hence ((S,X) -freeInterpreter) . s is Interpreter of s, AllTermsOf S by Def4; ::_thesis: verum end; hence (S,X) -freeInterpreter is Interpreter of S, AllTermsOf S by FOMODEL2:def_3; ::_thesis: verum end; end; registration let S be Language; let X be set ; cluster(S,X) -freeInterpreter -> S, AllTermsOf S -interpreter-like for Function; coherence for b1 being Function st b1 = (S,X) -freeInterpreter holds b1 is S, AllTermsOf S -interpreter-like by FOMODEL2:def_4; end; definition let S be Language; let X be set ; :: original: -freeInterpreter redefine func(S,X) -freeInterpreter -> Element of (AllTermsOf S) -InterpretersOf S; coherence (S,X) -freeInterpreter is Element of (AllTermsOf S) -InterpretersOf S proof set f = (S,X) -freeInterpreter ; set U = AllTermsOf S; set O = OwnSymbolsOf S; dom ((S,X) -freeInterpreter) c= OwnSymbolsOf S by Def4; then ((S,X) -freeInterpreter) | (OwnSymbolsOf S) = (S,X) -freeInterpreter by RELAT_1:68; hence (S,X) -freeInterpreter is Element of (AllTermsOf S) -InterpretersOf S by FOMODEL2:2; ::_thesis: verum end; end; definition let X, Y be non empty set ; let R be Relation of X,Y; let n be Nat; funcn -placesOf R -> Relation of (n -tuples_on X),(n -tuples_on Y) equals :: FOMODEL3:def 5 { [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) proof set Xn = n -tuples_on X; set Yn = n -tuples_on Y; set IT = { [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 } ; now__::_thesis:_for_x_being_set_st_x_in__{__[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__}__holds_ x_in_[:(n_-tuples_on_X),(n_-tuples_on_Y):] let x be set ; ::_thesis: ( x in { [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 } implies x in [:(n -tuples_on X),(n -tuples_on Y):] ) assume x in { [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 } ; ::_thesis: x in [:(n -tuples_on X),(n -tuples_on Y):] then consider p being Element of n -tuples_on X, q being Element of n -tuples_on Y such that A1: ( x = [p,q] & ( for j being set st j in Seg n holds [(p . j),(q . j)] in R ) ) ; thus x in [:(n -tuples_on X),(n -tuples_on Y):] by A1; ::_thesis: verum end; hence { [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) by TARSKI:def_3; ::_thesis: verum end; 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 } ; Lm4: for n being zero Nat for X, Y being non empty set for R being Relation of X,Y holds n -placesOf R = {[{},{}]} proof let n be zero Nat; ::_thesis: for X, Y being non empty set for R being Relation of X,Y holds n -placesOf R = {[{},{}]} let X, Y be non empty set ; ::_thesis: for R being Relation of X,Y holds n -placesOf R = {[{},{}]} let R be Relation of X,Y; ::_thesis: n -placesOf R = {[{},{}]} set RR = n -placesOf R; A1: [:(n -tuples_on X),(n -tuples_on Y):] = [:{{}},(0 -tuples_on Y):] by FOMODEL0:10 .= [:{{}},{{}}:] by FOMODEL0:10 .= {[{},{}]} by ZFMISC_1:29 ; {} in {{}} by TARSKI:def_1; then reconsider p = {} as Element of n -tuples_on X by FOMODEL0:10; {} in {{}} by TARSKI:def_1; then reconsider q = {} as Element of n -tuples_on Y by FOMODEL0:10; for j being set st j in Seg 0 holds [(p . j),(q . j)] in R ; then [p,q] in n -placesOf R ; then {[{},{}]} c= n -placesOf R by ZFMISC_1:31; hence n -placesOf R = {[{},{}]} by A1, XBOOLE_0:def_10; ::_thesis: verum end; registration let X, Y be non empty set ; let R be total Relation of X,Y; let n be non zero Nat; clustern -placesOf R -> total for Relation of (n -tuples_on X),(n -tuples_on Y); coherence for b1 being Relation of (n -tuples_on X),(n -tuples_on Y) st b1 = n -placesOf R holds b1 is total proof set RR = n -placesOf R; set XX = n -tuples_on X; A1: dom R = X by PARTFUN1:def_2; reconsider nn = n as Element of NAT by ORDINAL1:def_12; now__::_thesis:_for_x_being_set_st_x_in_n_-tuples_on_X_holds_ x_in_dom_(n_-placesOf_R) let x be set ; ::_thesis: ( x in n -tuples_on X implies x in dom (n -placesOf R) ) assume x in n -tuples_on X ; ::_thesis: x in dom (n -placesOf R) then reconsider xx = x as Element of n -tuples_on X ; reconsider xxx = xx as Element of Funcs ((Seg n),X) by FOMODEL0:11; defpred S1[ set , set ] means [(xx . X),Y] in R; A2: for m being Nat st m in Seg n holds ex d being Element of Y st S1[m,d] proof let m be Nat; ::_thesis: ( m in Seg n implies ex d being Element of Y st S1[m,d] ) assume m in Seg n ; ::_thesis: ex d being Element of Y st S1[m,d] then reconsider mm = m as Element of Seg n ; xxx . mm in dom R by A1; then consider y being set such that A3: [(xx . m),y] in R by XTUPLE_0:def_12; reconsider yy = y as Element of Y by A3, ZFMISC_1:87; take yy ; ::_thesis: S1[m,yy] thus S1[m,yy] by A3; ::_thesis: verum end; consider f being FinSequence of Y such that A4: ( len f = n & ( for m being Nat st m in Seg n holds S1[m,f /. m] ) ) from FINSEQ_4:sch_1(A2); reconsider ff = f as Element of nn -tuples_on Y by A4, FINSEQ_2:133; reconsider fff = ff as Element of Funcs ((Seg nn),Y) by FOMODEL0:11; A5: dom fff = Seg nn by FUNCT_2:def_1; now__::_thesis:_for_j_being_set_st_j_in_Seg_n_holds_ [(xx_._j),(ff_._j)]_in_R let j be set ; ::_thesis: ( j in Seg n implies [(xx . j),(ff . j)] in R ) assume A6: j in Seg n ; ::_thesis: [(xx . j),(ff . j)] in R then reconsider jj = j as Element of NAT ; ( jj in dom ff & S1[jj,f /. jj] ) by A6, A4, A5; hence [(xx . j),(ff . j)] in R by PARTFUN1:def_6; ::_thesis: verum end; then [xx,ff] in n -placesOf R ; hence x in dom (n -placesOf R) by XTUPLE_0:def_12; ::_thesis: verum end; then ( n -tuples_on X c= dom (n -placesOf R) & dom (n -placesOf R) c= n -tuples_on X ) by TARSKI:def_3; then dom (n -placesOf R) = n -tuples_on X by XBOOLE_0:def_10; hence for b1 being Relation of (n -tuples_on X),(n -tuples_on Y) st b1 = n -placesOf R holds b1 is total by PARTFUN1:def_2; ::_thesis: verum end; end; registration let X, Y be non empty set ; let R be total Relation of X,Y; let n be Nat; clustern -placesOf R -> total for Relation of (n -tuples_on X),(n -tuples_on Y); coherence for b1 being Relation of (n -tuples_on X),(n -tuples_on Y) st b1 = n -placesOf R holds b1 is total proof set RR = n -placesOf R; percases ( not n is zero or n is zero ) ; suppose not n is zero ; ::_thesis: for b1 being Relation of (n -tuples_on X),(n -tuples_on Y) st b1 = n -placesOf R holds b1 is total then reconsider nn = n as non zero Nat ; nn -placesOf R is total ; hence for b1 being Relation of (n -tuples_on X),(n -tuples_on Y) st b1 = n -placesOf R holds b1 is total ; ::_thesis: verum end; suppose n is zero ; ::_thesis: for b1 being Relation of (n -tuples_on X),(n -tuples_on Y) st b1 = n -placesOf R holds b1 is total then reconsider nn = n as zero Nat ; nn -placesOf R = {[{},{}]} by Lm4; then dom (n -placesOf R) = {{}} by RELAT_1:9 .= nn -tuples_on X by FOMODEL0:10 ; hence for b1 being Relation of (n -tuples_on X),(n -tuples_on Y) st b1 = n -placesOf R holds b1 is total by PARTFUN1:def_2; ::_thesis: verum end; end; end; end; registration let X, Y be non empty set ; let R be Relation of X,Y; let n be zero Nat; clustern -placesOf R -> Function-like for Relation of (n -tuples_on X),(n -tuples_on Y); coherence for b1 being Relation of (n -tuples_on X),(n -tuples_on Y) st b1 = n -placesOf R holds b1 is Function-like proof set IT = n -placesOf R; reconsider f = {[{},{}]} as Function ; now__::_thesis:_for_x_being_set_st_x_in_n_-placesOf_R_holds_ x_in_f let x be set ; ::_thesis: ( x in n -placesOf R implies x in f ) assume x in n -placesOf R ; ::_thesis: x in f then consider p being Element of n -tuples_on X, q being Element of n -tuples_on Y such that A1: ( x = [p,q] & ( for j being set st j in Seg n holds [(p . j),(q . j)] in R ) ) ; ( p = {} & q = {} ) ; hence x in f by A1, TARSKI:def_1; ::_thesis: verum end; then reconsider ITT = n -placesOf R as Subset of f by TARSKI:def_3; ITT is Function-like ; hence for b1 being Relation of (n -tuples_on X),(n -tuples_on Y) st b1 = n -placesOf R holds b1 is Function-like ; ::_thesis: verum end; end; definition let X be non empty set ; let R be Relation of X; let n be Nat; funcn -placesOf R -> Relation of (n -tuples_on X) equals :: FOMODEL3:def 6 n -placesOf R; coherence n -placesOf R is Relation of (n -tuples_on X) ; end; :: 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; definition let X be non empty set ; let R be Relation of X; let n be zero Nat; :: original: -placesOf redefine funcn -placesOf R -> Relation of (n -tuples_on X) equals :: FOMODEL3:def 7 {[{},{}]}; coherence n -placesOf R is Relation of (n -tuples_on X) ; compatibility for b1 being Relation of (n -tuples_on X) holds ( b1 = n -placesOf R iff b1 = {[{},{}]} ) by Lm4; end; :: 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 = {[{},{}]}; Lm5: 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 ) proof let n be non zero Nat; ::_thesis: 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 ) let X be non empty set ; ::_thesis: 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 ) let x, y be Element of Funcs ((Seg n),X); ::_thesis: 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 ) let R be Relation of X; ::_thesis: ( [x,y] in n -placesOf R iff for j being Element of Seg n holds [(x . j),(y . j)] in R ) reconsider xa = x as Element of n -tuples_on X by FINSEQ_2:93; reconsider ya = y as Element of n -tuples_on X by FINSEQ_2:93; thus ( [x,y] in n -placesOf R implies for j being Element of Seg n holds [(x . j),(y . j)] in R ) ::_thesis: ( ( for j being Element of Seg n holds [(x . j),(y . j)] in R ) implies [x,y] in n -placesOf R ) proof assume [x,y] in n -placesOf R ; ::_thesis: for j being Element of Seg n holds [(x . j),(y . j)] in R then consider p, q being Element of n -tuples_on X such that A1: ( [x,y] = [p,q] & ( for j being set st j in Seg n holds [(p . j),(q . j)] in R ) ) ; ( x = p & y = q ) by A1, XTUPLE_0:1; hence for j being Element of Seg n holds [(x . j),(y . j)] in R by A1; ::_thesis: verum end; thus ( ( for j being Element of Seg n holds [(x . j),(y . j)] in R ) implies [x,y] in n -placesOf R ) ::_thesis: verum proof assume for j being Element of Seg n holds [(x . j),(y . j)] in R ; ::_thesis: [x,y] in n -placesOf R then for j being set st j in Seg n holds [(xa . j),(ya . j)] in R ; hence [x,y] in n -placesOf R ; ::_thesis: verum end; end; Lm6: 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) proof let n be non zero Nat; ::_thesis: 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) let X be non empty set ; ::_thesis: for r being total symmetric Relation of X holds n -placesOf r is total symmetric Relation of (n -tuples_on X) let r be total symmetric Relation of X; ::_thesis: n -placesOf r is total symmetric Relation of (n -tuples_on X) A1: field r = X by ORDERS_1:12; set R = n -placesOf r; A2: field (n -placesOf r) = n -tuples_on X by ORDERS_1:12; now__::_thesis:_for_x,_y_being_set_st_x_in_n_-tuples_on_X_&_y_in_n_-tuples_on_X_&_[x,y]_in_n_-placesOf_r_holds_ [y,x]_in_n_-placesOf_r let x, y be set ; ::_thesis: ( x in n -tuples_on X & y in n -tuples_on X & [x,y] in n -placesOf r implies [y,x] in n -placesOf r ) assume x in n -tuples_on X ; ::_thesis: ( y in n -tuples_on X & [x,y] in n -placesOf r implies [y,x] in n -placesOf r ) then reconsider xa = x as Element of Funcs ((Seg n),X) by FINSEQ_2:93; assume y in n -tuples_on X ; ::_thesis: ( [x,y] in n -placesOf r implies [y,x] in n -placesOf r ) then reconsider ya = y as Element of Funcs ((Seg n),X) by FINSEQ_2:93; assume A3: [x,y] in n -placesOf r ; ::_thesis: [y,x] in n -placesOf r A4: r is_symmetric_in X by A1, RELAT_2:def_11; now__::_thesis:_for_j_being_Element_of_Seg_n_holds_[(ya_._j),(xa_._j)]_in_r let j be Element of Seg n; ::_thesis: [(ya . j),(xa . j)] in r ( xa . j in X & ya . j in X & [(xa . j),(ya . j)] in r ) by Lm5, A3; hence [(ya . j),(xa . j)] in r by A4, RELAT_2:def_3; ::_thesis: verum end; hence [y,x] in n -placesOf r by Lm5; ::_thesis: verum end; then n -placesOf r is_symmetric_in n -tuples_on X by RELAT_2:def_3; hence n -placesOf r is total symmetric Relation of (n -tuples_on X) by A2, RELAT_2:def_11; ::_thesis: verum end; Lm7: 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) proof let n be non zero Nat; ::_thesis: 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) let X be non empty set ; ::_thesis: for r being total transitive Relation of X holds n -placesOf r is total transitive Relation of (n -tuples_on X) let r be total transitive Relation of X; ::_thesis: n -placesOf r is total transitive Relation of (n -tuples_on X) A1: field r = X by ORDERS_1:12; set R = n -placesOf r; A2: field (n -placesOf r) = n -tuples_on X by ORDERS_1:12; now__::_thesis:_for_x,_y,_z_being_set_st_x_in_n_-tuples_on_X_&_y_in_n_-tuples_on_X_&_z_in_n_-tuples_on_X_&_[x,y]_in_n_-placesOf_r_&_[y,z]_in_n_-placesOf_r_holds_ [x,z]_in_n_-placesOf_r let x, y, z be set ; ::_thesis: ( x in n -tuples_on X & y in n -tuples_on X & z in n -tuples_on X & [x,y] in n -placesOf r & [y,z] in n -placesOf r implies [x,z] in n -placesOf r ) assume x in n -tuples_on X ; ::_thesis: ( y in n -tuples_on X & z in n -tuples_on X & [x,y] in n -placesOf r & [y,z] in n -placesOf r implies [x,z] in n -placesOf r ) then reconsider xa = x as Element of Funcs ((Seg n),X) by FINSEQ_2:93; assume y in n -tuples_on X ; ::_thesis: ( z in n -tuples_on X & [x,y] in n -placesOf r & [y,z] in n -placesOf r implies [x,z] in n -placesOf r ) then reconsider ya = y as Element of Funcs ((Seg n),X) by FINSEQ_2:93; assume z in n -tuples_on X ; ::_thesis: ( [x,y] in n -placesOf r & [y,z] in n -placesOf r implies [x,z] in n -placesOf r ) then reconsider za = z as Element of Funcs ((Seg n),X) by FINSEQ_2:93; assume A3: [x,y] in n -placesOf r ; ::_thesis: ( [y,z] in n -placesOf r implies [x,z] in n -placesOf r ) assume A4: [y,z] in n -placesOf r ; ::_thesis: [x,z] in n -placesOf r A5: r is_transitive_in X by A1, RELAT_2:def_16; now__::_thesis:_for_j_being_Element_of_Seg_n_holds_[(xa_._j),(za_._j)]_in_r let j be Element of Seg n; ::_thesis: [(xa . j),(za . j)] in r ( xa . j in X & ya . j in X & za . j in X & [(xa . j),(ya . j)] in r & [(ya . j),(za . j)] in r ) by Lm5, A3, A4; hence [(xa . j),(za . j)] in r by A5, RELAT_2:def_8; ::_thesis: verum end; hence [x,z] in n -placesOf r by Lm5; ::_thesis: verum end; then n -placesOf r is_transitive_in n -tuples_on X by RELAT_2:def_8; hence n -placesOf r is total transitive Relation of (n -tuples_on X) by A2, RELAT_2:def_16; ::_thesis: verum end; Lm8: 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) proof let n be zero Nat; ::_thesis: 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) let X be non empty set ; ::_thesis: for r being Relation of X holds n -placesOf r is total symmetric transitive Relation of (n -tuples_on X) let r be Relation of X; ::_thesis: n -placesOf r is total symmetric transitive Relation of (n -tuples_on X) set R = n -placesOf r; now__::_thesis:_for_x_being_set_st_x_in_n_-tuples_on_X_holds_ ex_y_being_set_st_[x,y]_in_n_-placesOf_r let x be set ; ::_thesis: ( x in n -tuples_on X implies ex y being set st [x,y] in n -placesOf r ) assume x in n -tuples_on X ; ::_thesis: ex y being set st [x,y] in n -placesOf r then x = {} ; then [x,x] in n -placesOf r by TARSKI:def_1; hence ex y being set st [x,y] in n -placesOf r ; ::_thesis: verum end; then A1: dom (n -placesOf r) = n -tuples_on X by RELSET_1:9; then n -placesOf r is total by PARTFUN1:def_2; then A2: field (n -placesOf r) = n -tuples_on X by ORDERS_1:12; now__::_thesis:_for_x,_y_being_set_st_x_in_n_-tuples_on_X_&_y_in_n_-tuples_on_X_&_[x,y]_in_n_-placesOf_r_holds_ [y,x]_in_n_-placesOf_r let x, y be set ; ::_thesis: ( x in n -tuples_on X & y in n -tuples_on X & [x,y] in n -placesOf r implies [y,x] in n -placesOf r ) assume x in n -tuples_on X ; ::_thesis: ( y in n -tuples_on X & [x,y] in n -placesOf r implies [y,x] in n -placesOf r ) then A3: x = {} ; assume y in n -tuples_on X ; ::_thesis: ( [x,y] in n -placesOf r implies [y,x] in n -placesOf r ) then A4: y = {} ; assume [x,y] in n -placesOf r ; ::_thesis: [y,x] in n -placesOf r thus [y,x] in n -placesOf r by A3, A4, TARSKI:def_1; ::_thesis: verum end; then A5: n -placesOf r is_symmetric_in n -tuples_on X by RELAT_2:def_3; for x, y, z being set st x in n -tuples_on X & y in n -tuples_on X & z in n -tuples_on X & [x,y] in n -placesOf r & [y,z] in n -placesOf r holds [x,z] in n -placesOf r ; then A6: n -placesOf r is_transitive_in n -tuples_on X by RELAT_2:def_8; thus n -placesOf r is total symmetric transitive Relation of (n -tuples_on X) by A1, A5, A2, A6, PARTFUN1:def_2, RELAT_2:def_11, RELAT_2:def_16; ::_thesis: verum end; registration let X be non empty set ; let R be total symmetric Relation of X; let n be Nat; clustern -placesOf R -> total for Relation of (n -tuples_on X); coherence for b1 being Relation of (n -tuples_on X) st b1 = n -placesOf R holds b1 is total ; end; registration let X be non empty set ; let R be total symmetric Relation of X; let n be Nat; clustern -placesOf R -> symmetric for Relation of (n -tuples_on X); coherence for b1 being Relation of (n -tuples_on X) st b1 = n -placesOf R holds b1 is symmetric proof percases ( n is zero or not n is zero ) ; suppose n is zero ; ::_thesis: for b1 being Relation of (n -tuples_on X) st b1 = n -placesOf R holds b1 is symmetric hence for b1 being Relation of (n -tuples_on X) st b1 = n -placesOf R holds b1 is symmetric by Lm8; ::_thesis: verum end; suppose not n is zero ; ::_thesis: for b1 being Relation of (n -tuples_on X) st b1 = n -placesOf R holds b1 is symmetric hence for b1 being Relation of (n -tuples_on X) st b1 = n -placesOf R holds b1 is symmetric by Lm6; ::_thesis: verum end; end; end; end; registration let X be non empty set ; let R be total symmetric Relation of X; let n be Nat; clustern -placesOf R -> total symmetric for Relation of (n -tuples_on X); coherence for b1 being Relation of (n -tuples_on X) st b1 = n -placesOf R holds ( b1 is symmetric & b1 is total ) ; end; registration let X be non empty set ; let R be total transitive Relation of X; let n be Nat; clustern -placesOf R -> total transitive for Relation of (n -tuples_on X); coherence for b1 being Relation of (n -tuples_on X) st b1 = n -placesOf R holds ( b1 is transitive & b1 is total ) proof percases ( n is zero or not n is zero ) ; suppose n is zero ; ::_thesis: for b1 being Relation of (n -tuples_on X) st b1 = n -placesOf R holds ( b1 is transitive & b1 is total ) hence for b1 being Relation of (n -tuples_on X) st b1 = n -placesOf R holds ( b1 is transitive & b1 is total ) by Lm8; ::_thesis: verum end; suppose not n is zero ; ::_thesis: for b1 being Relation of (n -tuples_on X) st b1 = n -placesOf R holds ( b1 is transitive & b1 is total ) hence for b1 being Relation of (n -tuples_on X) st b1 = n -placesOf R holds ( b1 is transitive & b1 is total ) by Lm7; ::_thesis: verum end; end; end; end; registration let X be non empty set ; let R be Equivalence_Relation of X; let n be Nat; clustern -placesOf R -> total symmetric transitive for Relation of (n -tuples_on X); coherence for b1 being Relation of (n -tuples_on X) st b1 = n -placesOf R holds ( b1 is total & b1 is symmetric & b1 is transitive ) ; end; 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; funcR quotient (E,F) -> set equals :: FOMODEL3:def 8 { [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 ) } ; 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; :: original: quotient redefine funcR quotient (E,F) -> Relation of (Class E),(Class F); coherence R quotient (E,F) is Relation of (Class E),(Class F) proof set IT = R quotient (E,F); now__::_thesis:_for_x_being_set_st_x_in_R_quotient_(E,F)_holds_ x_in_[:(Class_E),(Class_F):] let x be set ; ::_thesis: ( x in R quotient (E,F) implies x in [:(Class E),(Class F):] ) assume x in R quotient (E,F) ; ::_thesis: x in [:(Class E),(Class F):] then consider e being Element of Class E, f being Element of Class F such that A1: ( x = [e,f] & ex x, y being set st ( x in e & y in f & [x,y] in R ) ) ; thus x in [:(Class E),(Class F):] by A1; ::_thesis: verum end; hence R quotient (E,F) is Relation of (Class E),(Class F) by TARSKI:def_3; ::_thesis: verum end; end; definition let E, F be Relation; let f be Function; attrf is E,F -respecting means :Def9: :: FOMODEL3:def 9 for x1, x2 being set st [x1,x2] in E holds [(f . x1),(f . x2)] in F; end; :: deftheorem Def9 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 ); definition let S be Language; let U be non empty set ; let s be ofAtomicFormula Element of S; let E be Relation of U; let f be Interpreter of s,U; attrf is E -respecting means :Def10: :: FOMODEL3:def 10 f is (abs (ar s)) -placesOf E,E -respecting if not s is relational otherwise f is (abs (ar s)) -placesOf E, id BOOLEAN -respecting ; consistency verum ; end; :: deftheorem Def10 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 ) ) ); registration let X, Y be non empty set ; let E be Equivalence_Relation of X; let F be Equivalence_Relation of Y; cluster non empty Relation-like X -defined Y -valued Function-like total quasi_total E,F -respecting for Element of bool [:X,Y:]; existence ex b1 being Function of X,Y st b1 is E,F -respecting proof consider y being set such that A1: y in Y by XBOOLE_0:7; set R = X --> y; ( {y} c= Y & dom (X --> y) = X & rng (X --> y) c= {y} ) by A1, FUNCOP_1:13, ZFMISC_1:31; then reconsider f = X --> y as Function of X,Y by FUNCT_2:2, XBOOLE_1:1; now__::_thesis:_for_x1,_x2_being_set_st_[x1,x2]_in_E_holds_ [(f_._x1),(f_._x2)]_in_F let x1, x2 be set ; ::_thesis: ( [x1,x2] in E implies [(f . x1),(f . x2)] in F ) assume [x1,x2] in E ; ::_thesis: [(f . x1),(f . x2)] in F then ( x1 in X & x2 in X ) by ZFMISC_1:87; then A2: ( f . x1 = y & f . x2 = y ) by FUNCOP_1:7; thus [(f . x1),(f . x2)] in F by A2, A1, EQREL_1:5; ::_thesis: verum end; then f is E,F -respecting by Def9; hence ex b1 being Function of X,Y st b1 is E,F -respecting ; ::_thesis: verum end; end; registration let S be Language; let U be non empty set ; let s be ofAtomicFormula Element of S; let E be Equivalence_Relation of U; cluster non empty Relation-like (abs (ar s)) -tuples_on U -defined U \/ BOOLEAN -valued Function-like total quasi_total E -respecting for Interpreter of s,U; existence ex b1 being Interpreter of s,U st b1 is E -respecting proof set n = abs (ar s); reconsider EE = (abs (ar s)) -placesOf E as Equivalence_Relation of ((abs (ar s)) -tuples_on U) ; set f = the (abs (ar s)) -placesOf E,E -respecting Function of ((abs (ar s)) -tuples_on U),U; set g = the (abs (ar s)) -placesOf E, id BOOLEAN -respecting Function of ((abs (ar s)) -tuples_on U),BOOLEAN; percases ( s is relational or not s is relational ) ; supposeA1: s is relational ; ::_thesis: ex b1 being Interpreter of s,U st b1 is E -respecting then reconsider gg = the (abs (ar s)) -placesOf E, id BOOLEAN -respecting Function of ((abs (ar s)) -tuples_on U),BOOLEAN as Interpreter of s,U by FOMODEL2:def_2; gg is E -respecting by Def10, A1; hence ex b1 being Interpreter of s,U st b1 is E -respecting ; ::_thesis: verum end; supposeA2: not s is relational ; ::_thesis: ex b1 being Interpreter of s,U st b1 is E -respecting then reconsider ff = the (abs (ar s)) -placesOf E,E -respecting Function of ((abs (ar s)) -tuples_on U),U as Interpreter of s,U by FOMODEL2:def_2; ff is E -respecting by Def10, A2; hence ex b1 being Interpreter of s,U st b1 is E -respecting ; ::_thesis: verum end; end; end; end; registration let X, Y be non empty set ; let E be Equivalence_Relation of X; let F be Equivalence_Relation of Y; cluster Relation-like Function-like E,F -respecting for set ; existence ex b1 being Function st b1 is E,F -respecting proof take the E,F -respecting Function of X,Y ; ::_thesis: the E,F -respecting Function of X,Y is E,F -respecting thus the E,F -respecting Function of X,Y is E,F -respecting ; ::_thesis: verum end; end; definition let X be non empty set ; let E be Equivalence_Relation of X; let n be Nat; :: original: -placesOf redefine funcn -placesOf E -> Equivalence_Relation of (n -tuples_on X); coherence n -placesOf E is Equivalence_Relation of (n -tuples_on X) ; end; definition let X be non empty set ; let x be Element of SmallestPartition X; func DeTrivial x -> Element of X means :Def11: :: FOMODEL3:def 11 x = {it}; existence ex b1 being Element of X st x = {b1} proof set XX = SmallestPartition X; consider y being set such that A1: ( x = {y} & y in X ) by RELSET_2:1; reconsider yy = y as Element of X by A1; take yy ; ::_thesis: x = {yy} thus x = {yy} by A1; ::_thesis: verum end; uniqueness for b1, b2 being Element of X st x = {b1} & x = {b2} holds b1 = b2 by ZFMISC_1:3; end; :: deftheorem Def11 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} ); definition let X be non empty set ; func peeler X -> Function of {_{X}_},X means :Def12: :: FOMODEL3:def 12 for x being Element of {_{X}_} holds it . x = DeTrivial x; existence ex b1 being Function of {_{X}_},X st for x being Element of {_{X}_} holds b1 . x = DeTrivial x proof deffunc H1( Element of {_{X}_}) -> Element of X = DeTrivial $1; consider f being Function of {_{X}_},X such that A1: for x being Element of {_{X}_} holds f . x = H1(x) from FUNCT_2:sch_4(); take f ; ::_thesis: for x being Element of {_{X}_} holds f . x = DeTrivial x thus for x being Element of {_{X}_} holds f . x = DeTrivial x by A1; ::_thesis: verum end; uniqueness for b1, b2 being Function of {_{X}_},X st ( for x being Element of {_{X}_} holds b1 . x = DeTrivial x ) & ( for x being Element of {_{X}_} holds b2 . x = DeTrivial x ) holds b1 = b2 proof let IT1, IT2 be Function of {_{X}_},X; ::_thesis: ( ( for x being Element of {_{X}_} holds IT1 . x = DeTrivial x ) & ( for x being Element of {_{X}_} holds IT2 . x = DeTrivial x ) implies IT1 = IT2 ) assume that A2: for x being Element of {_{X}_} holds IT1 . x = DeTrivial x and A3: for x being Element of {_{X}_} holds IT2 . x = DeTrivial x ; ::_thesis: IT1 = IT2 now__::_thesis:_for_x_being_Element_of_{_{X}_}_holds_IT1_._x_=_IT2_._x let x be Element of {_{X}_}; ::_thesis: IT1 . x = IT2 . x thus IT1 . x = DeTrivial x by A2 .= IT2 . x by A3 ; ::_thesis: verum end; hence IT1 = IT2 by FUNCT_2:63; ::_thesis: verum end; end; :: deftheorem Def12 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 ); registration let X be non empty set ; let EqR be Equivalence_Relation of X; cluster -> non empty for Element of Class EqR; coherence for b1 being Element of Class EqR holds not b1 is empty ; end; Lm9: 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 proof let X be non empty set ; ::_thesis: 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 let E be Equivalence_Relation of X; ::_thesis: for x, y being set for C being Element of Class E st x in C & y in C holds [x,y] in E let x, y be set ; ::_thesis: for C being Element of Class E st x in C & y in C holds [x,y] in E let C be Element of Class E; ::_thesis: ( x in C & y in C implies [x,y] in E ) assume A1: ( x in C & y in C ) ; ::_thesis: [x,y] in E reconsider EE = E as transitive Tolerance of X ; consider xe being set such that A2: ( xe in X & C = Class (E,xe) ) by EQREL_1:def_3; thus [x,y] in E by A1, A2, EQREL_1:22; ::_thesis: verum end; 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 proof let X be non empty set ; ::_thesis: 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 let E be Equivalence_Relation of X; ::_thesis: 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 let C1, C2 be Element of Class E; ::_thesis: for x1, x2 being set st x1 in C1 & x2 in C2 & [x1,x2] in E holds C1 = C2 let x1, x2 be set ; ::_thesis: ( x1 in C1 & x2 in C2 & [x1,x2] in E implies C1 = C2 ) reconsider EE = E as Tolerance of X ; assume A1: x1 in C1 ; ::_thesis: ( not x2 in C2 or not [x1,x2] in E or C1 = C2 ) then reconsider x11 = x1 as Element of X ; x11 in X ; then x1 in Class (EE,x1) by EQREL_1:20; then C1 meets EqClass (E,x11) by A1, XBOOLE_0:3; then A2: C1 = EqClass (E,x11) by EQREL_1:def_4; assume A3: x2 in C2 ; ::_thesis: ( not [x1,x2] in E or C1 = C2 ) then reconsider x22 = x2 as Element of X ; x22 in X ; then x2 in Class (EE,x2) by EQREL_1:20; then C2 meets EqClass (E,x22) by A3, XBOOLE_0:3; then A4: C2 = EqClass (E,x22) by EQREL_1:def_4; assume [x1,x2] in E ; ::_thesis: C1 = C2 hence C1 = C2 by A2, A4, EQREL_1:35; ::_thesis: verum end; registration let X, Y be non empty set ; let E be Equivalence_Relation of X; let F be Equivalence_Relation of Y; let f be E,F -respecting Function; clusterf quotient (E,F) -> Function-like for Relation; coherence for b1 being Relation st b1 = f quotient (E,F) holds b1 is Function-like proof set IT = f quotient (E,F); reconsider P = Class E as a_partition of X ; reconsider EEE = E as Relation of X,X ; now__::_thesis:_for_e,_f1,_f2_being_set_st_[e,f1]_in_f_quotient_(E,F)_&_[e,f2]_in_f_quotient_(E,F)_holds_ f1_=_f2 let e, f1, f2 be set ; ::_thesis: ( [e,f1] in f quotient (E,F) & [e,f2] in f quotient (E,F) implies f1 = f2 ) assume [e,f1] in f quotient (E,F) ; ::_thesis: ( [e,f2] in f quotient (E,F) implies f1 = f2 ) then consider ee1 being Element of Class E, ff1 being Element of Class F such that A1: ( [e,f1] = [ee1,ff1] & ex x1, y1 being set st ( x1 in ee1 & y1 in ff1 & [x1,y1] in f ) ) ; consider x1, y1 being set such that A2: ( x1 in ee1 & y1 in ff1 & [x1,y1] in f ) by A1; assume [e,f2] in f quotient (E,F) ; ::_thesis: f1 = f2 then consider ee2 being Element of Class E, ff2 being Element of Class F such that A3: ( [e,f2] = [ee2,ff2] & ex x2, y2 being set st ( x2 in ee2 & y2 in ff2 & [x2,y2] in f ) ) ; A4: ( ee1 = e & ee2 = e & ff1 = f1 & ff2 = f2 ) by A1, A3, XTUPLE_0:1; consider x2, y2 being set such that A5: ( x2 in ee2 & y2 in ff2 & [x2,y2] in f ) by A3; A6: [x1,x2] in E by Lm9, A2, A5, A4; ( y2 = f . x2 & y1 = f . x1 ) by A5, A2, FUNCT_1:1; then [y1,y2] in F by Def9, A6; hence f1 = f2 by A4, A2, A5, Lm10; ::_thesis: verum end; hence for b1 being Relation st b1 = f quotient (E,F) holds b1 is Function-like by FUNCT_1:def_1; ::_thesis: verum end; end; registration let X, Y be non empty set ; let E be Equivalence_Relation of X; let F be Equivalence_Relation of Y; let R be total Relation of X,Y; clusterR quotient (E,F) -> total for Relation of (Class E),(Class F); coherence for b1 being Relation of (Class E),(Class F) st b1 = R quotient (E,F) holds b1 is total proof set RR = R quotient (E,F); reconsider Q = Class F as a_partition of Y ; now__::_thesis:_for_e_being_set_st_e_in_Class_E_holds_ e_in_dom_(R_quotient_(E,F)) let e be set ; ::_thesis: ( e in Class E implies e in dom (R quotient (E,F)) ) assume e in Class E ; ::_thesis: e in dom (R quotient (E,F)) then reconsider ee = e as Element of Class E ; set xx = the Element of ee; reconsider x = the Element of ee as Element of X ; dom R = X by PARTFUN1:def_2; then consider y being set such that A1: [x,y] in R by XTUPLE_0:def_12; reconsider yy = y as Element of Y by A1, ZFMISC_1:87; reconsider f = EqClass (yy,Q) as Element of Class F by EQREL_1:def_6; ( [e,f] = [e,f] & x in e & y in f & [x,y] in R ) by A1, EQREL_1:def_6; then [e,f] in R quotient (E,F) ; hence e in dom (R quotient (E,F)) by XTUPLE_0:def_12; ::_thesis: verum end; then Class E c= dom (R quotient (E,F)) by TARSKI:def_3; then Class E = dom (R quotient (E,F)) by XBOOLE_0:def_10; hence for b1 being Relation of (Class E),(Class F) st b1 = R quotient (E,F) holds b1 is total by PARTFUN1:def_2; ::_thesis: verum end; end; definition let X, Y be non empty set ; let E be Equivalence_Relation of X; let F be Equivalence_Relation of Y; let f be E,F -respecting Function of X,Y; :: original: quotient redefine funcf quotient (E,F) -> Function of (Class E),(Class F); coherence f quotient (E,F) is Function of (Class E),(Class F) proof thus f quotient (E,F) is Function of (Class E),(Class F) ; ::_thesis: verum end; end; definition let X be non empty set ; let E be Equivalence_Relation of X; funcE -class -> Function of X,(Class E) means :Def13: :: FOMODEL3:def 13 for x being Element of X holds it . x = EqClass (E,x); existence ex b1 being Function of X,(Class E) st for x being Element of X holds b1 . x = EqClass (E,x) proof deffunc H1( Element of X) -> Element of Class E = EqClass (E,$1); consider f being Function of X,(Class E) such that A1: for x being Element of X holds f . x = H1(x) from FUNCT_2:sch_4(); take f ; ::_thesis: for x being Element of X holds f . x = EqClass (E,x) thus for x being Element of X holds f . x = EqClass (E,x) by A1; ::_thesis: verum end; uniqueness for b1, b2 being Function of X,(Class E) st ( for x being Element of X holds b1 . x = EqClass (E,x) ) & ( for x being Element of X holds b2 . x = EqClass (E,x) ) holds b1 = b2 proof let IT1, IT2 be Function of X,(Class E); ::_thesis: ( ( for x being Element of X holds IT1 . x = EqClass (E,x) ) & ( for x being Element of X holds IT2 . x = EqClass (E,x) ) implies IT1 = IT2 ) assume A2: for x being Element of X holds IT1 . x = EqClass (E,x) ; ::_thesis: ( ex x being Element of X st not IT2 . x = EqClass (E,x) or IT1 = IT2 ) assume A3: for x being Element of X holds IT2 . x = EqClass (E,x) ; ::_thesis: IT1 = IT2 now__::_thesis:_for_x_being_Element_of_X_holds_IT1_._x_=_IT2_._x let x be Element of X; ::_thesis: IT1 . x = IT2 . x thus IT1 . x = EqClass (E,x) by A2 .= IT2 . x by A3 ; ::_thesis: verum end; hence IT1 = IT2 by FUNCT_2:63; ::_thesis: verum end; end; :: deftheorem Def13 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) ); registration let X be non empty set ; let E be Equivalence_Relation of X; clusterE -class -> onto for Function of X,(Class E); coherence for b1 being Function of X,(Class E) st b1 = E -class holds b1 is onto proof set P = E -class ; now__::_thesis:_for_c_being_set_st_c_in_Class_E_holds_ c_in_rng_(E_-class) let c be set ; ::_thesis: ( c in Class E implies c in rng (E -class) ) assume A1: c in Class E ; ::_thesis: c in rng (E -class) then reconsider cc = c as Subset of X ; consider x being set such that A2: ( x in X & cc = Class (E,x) ) by A1, EQREL_1:def_3; reconsider xx = x as Element of X by A2; (E -class) . xx = cc by A2, Def13; hence c in rng (E -class) by FUNCT_2:4; ::_thesis: verum end; then ( Class E c= rng (E -class) & rng (E -class) c= Class E ) by RELAT_1:def_19, TARSKI:def_3; then Class E = rng (E -class) by XBOOLE_0:def_10; hence for b1 being Function of X,(Class E) st b1 = E -class holds b1 is onto by FUNCT_2:def_3; ::_thesis: verum end; end; registration let X, Y be non empty set ; cluster Relation-like X -defined Y -valued onto for Element of bool [:X,Y:]; existence ex b1 being Relation of X,Y st b1 is onto proof [:X,Y:] c= [:X,Y:] ; then reconsider R = [:X,Y:] as Relation of X,Y ; rng R = Y by RELAT_1:160; then R is onto by FUNCT_2:def_3; hence ex b1 being Relation of X,Y st b1 is onto ; ::_thesis: verum end; end; registration let Y be non empty set ; cluster Relation-like Y -valued onto for set ; existence ex b1 being Y -valued Relation st b1 is onto proof take the onto Relation of Y,Y ; ::_thesis: the onto Relation of Y,Y is onto thus the onto Relation of Y,Y is onto ; ::_thesis: verum end; end; registration let Y be non empty set ; let R be Y -valued Relation; clusterR ~ -> Y -defined for Relation; coherence for b1 being Relation st b1 = R ~ holds b1 is Y -defined proof ( rng R c= Y & dom (R ~) = rng R ) by RELAT_1:20; hence for b1 being Relation st b1 = R ~ holds b1 is Y -defined by RELAT_1:def_18; ::_thesis: verum end; end; registration let Y be non empty set ; let R be Y -valued onto Relation; clusterR ~ -> Y -defined total for Y -defined Relation; coherence for b1 being Y -defined Relation st b1 = R ~ holds b1 is total proof dom (R ~) = rng R by RELAT_1:20 .= Y by FUNCT_2:def_3 ; hence for b1 being Y -defined Relation st b1 = R ~ holds b1 is total by PARTFUN1:def_2; ::_thesis: verum end; end; registration let X, Y be non empty set ; let R be onto Relation of X,Y; clusterR ~ -> total for Relation of Y,X; coherence for b1 being Relation of Y,X st b1 = R ~ holds b1 is total ; end; registration let Y be non empty set ; let R be Y -valued onto Relation; clusterR ~ -> Y -defined total for Y -defined Relation; coherence for b1 being Y -defined Relation st b1 = R ~ holds b1 is total ; end; Lm11: 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 proof let U be non empty set ; ::_thesis: 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 let E be Equivalence_Relation of U; ::_thesis: for n being non zero Nat holds (n -placesOf ((E -class) ~)) * ((n -placesOf E) -class) is Function-like let n be non zero Nat; ::_thesis: (n -placesOf ((E -class) ~)) * ((n -placesOf E) -class) is Function-like set En = n -placesOf E; reconsider f1 = E -class as Function of U,(Class E) ; reconsider r1 = E -class as Relation of U,(Class E) ; reconsider r2 = r1 ~ as Relation of (Class E),U ; reconsider r3 = n -placesOf r2 as Relation of (n -tuples_on (Class E)),(n -tuples_on U) ; reconsider f4 = (n -placesOf E) -class as Function of (n -tuples_on U),(Class (n -placesOf E)) ; reconsider r4 = f4 as Relation of (n -tuples_on U),(Class (n -placesOf E)) ; now__::_thesis:_for_x,_z1,_z2_being_set_st_[x,z1]_in_r3_*_r4_&_[x,z2]_in_r3_*_r4_holds_ z1_=_z2 let x, z1, z2 be set ; ::_thesis: ( [x,z1] in r3 * r4 & [x,z2] in r3 * r4 implies z1 = z2 ) assume A1: ( [x,z1] in r3 * r4 & [x,z2] in r3 * r4 ) ; ::_thesis: z1 = z2 consider y1 being set such that A2: ( [x,y1] in r3 & [y1,z1] in r4 ) by A1, RELAT_1:def_8; consider y2 being set such that A3: ( [x,y2] in r3 & [y2,z2] in r4 ) by A1, RELAT_1:def_8; A4: ( f4 . y1 = z1 & f4 . y2 = z2 ) by A2, A3, FUNCT_1:1; reconsider y11 = y1, y22 = y2 as Element of n -tuples_on U by A2, A3, ZFMISC_1:87; consider p1 being Element of n -tuples_on (Class E), q1 being Element of n -tuples_on U such that A5: ( [x,y1] = [p1,q1] & ( for j being set st j in Seg n holds [(p1 . j),(q1 . j)] in r2 ) ) by A2; consider p2 being Element of n -tuples_on (Class E), q2 being Element of n -tuples_on U such that A6: ( [x,y2] = [p2,q2] & ( for j being set st j in Seg n holds [(p2 . j),(q2 . j)] in r2 ) ) by A3; A7: ( x = p1 & y1 = q1 & x = p2 & y2 = q2 ) by A5, A6, XTUPLE_0:1; reconsider q11 = q1 as Element of Funcs ((Seg n),U) by FOMODEL0:11; reconsider q22 = q2 as Element of Funcs ((Seg n),U) by FOMODEL0:11; now__::_thesis:_for_j_being_set_st_j_in_Seg_n_holds_ [(q1_._j),(q2_._j)]_in_E let j be set ; ::_thesis: ( j in Seg n implies [(q1 . j),(q2 . j)] in E ) assume A8: j in Seg n ; ::_thesis: [(q1 . j),(q2 . j)] in E then reconsider jj = j as Element of Seg n ; ( [(p1 . j),(q1 . j)] in r2 & [(p2 . j),(q2 . j)] in r2 ) by A5, A6, A8; then ( [(q1 . j),(p1 . j)] in f1 & [(q2 . j),(p2 . j)] in f1 ) by RELAT_1:def_7; then ( f1 . (q1 . jj) = p1 . jj & f1 . (q2 . jj) = p2 . jj ) by FUNCT_1:1; then ( Class (E,(q11 . jj)) = p1 . jj & Class (E,(q22 . jj)) = p2 . jj ) by Def13; hence [(q1 . j),(q2 . j)] in E by A7, EQREL_1:35; ::_thesis: verum end; then A9: [y1,y2] in n -placesOf E by A7; ( ((n -placesOf E) -class) . y11 = Class ((n -placesOf E),y11) & ((n -placesOf E) -class) . y22 = Class ((n -placesOf E),y22) ) by Def13; hence z1 = z2 by A9, A4, EQREL_1:35; ::_thesis: verum end; hence (n -placesOf ((E -class) ~)) * ((n -placesOf E) -class) is Function-like by FUNCT_1:def_1; ::_thesis: verum end; definition let U be non empty set ; let n be Nat; let E be Equivalence_Relation of U; funcn -tuple2Class E -> Relation of (n -tuples_on (Class E)),(Class (n -placesOf E)) equals :: FOMODEL3:def 14 (n -placesOf ((E -class) ~)) * ((n -placesOf E) -class); coherence (n -placesOf ((E -class) ~)) * ((n -placesOf E) -class) is Relation of (n -tuples_on (Class E)),(Class (n -placesOf E)) ; end; :: 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); registration let U be non empty set ; let n be Nat; let E be Equivalence_Relation of U; clustern -tuple2Class E -> Function-like for Relation of (n -tuples_on (Class E)),(Class (n -placesOf E)); coherence for b1 being Relation of (n -tuples_on (Class E)),(Class (n -placesOf E)) st b1 = n -tuple2Class E holds b1 is Function-like proof percases ( not n is zero or n is zero ) ; suppose not n is zero ; ::_thesis: for b1 being Relation of (n -tuples_on (Class E)),(Class (n -placesOf E)) st b1 = n -tuple2Class E holds b1 is Function-like hence for b1 being Relation of (n -tuples_on (Class E)),(Class (n -placesOf E)) st b1 = n -tuple2Class E holds b1 is Function-like by Lm11; ::_thesis: verum end; suppose n is zero ; ::_thesis: for b1 being Relation of (n -tuples_on (Class E)),(Class (n -placesOf E)) st b1 = n -tuple2Class E holds b1 is Function-like then reconsider m = n as zero Nat ; set En = n -placesOf E; reconsider f1 = E -class as Function of U,(Class E) ; reconsider r1 = E -class as Relation of U,(Class E) ; reconsider r2 = r1 ~ as Relation of (Class E),U ; reconsider f3 = m -placesOf r2 as PartFunc of (m -tuples_on (Class E)),(m -tuples_on U) ; reconsider f4 = (n -placesOf E) -class as Function of (n -tuples_on U),(Class (n -placesOf E)) ; f3 * f4 is Function-like ; hence for b1 being Relation of (n -tuples_on (Class E)),(Class (n -placesOf E)) st b1 = n -tuple2Class E holds b1 is Function-like ; ::_thesis: verum end; end; end; end; registration let U be non empty set ; let n be Nat; let E be Equivalence_Relation of U; clustern -tuple2Class E -> total for Relation of (n -tuples_on (Class E)),(Class (n -placesOf E)); coherence for b1 being Relation of (n -tuples_on (Class E)),(Class (n -placesOf E)) st b1 = n -tuple2Class E holds b1 is total ; end; definition let U be non empty set ; let n be Nat; let E be Equivalence_Relation of U; :: original: -tuple2Class redefine funcn -tuple2Class E -> Function of (n -tuples_on (Class E)),(Class (n -placesOf E)); coherence n -tuple2Class E is Function of (n -tuples_on (Class E)),(Class (n -placesOf E)) ; end; definition let S be Language; let U be non empty set ; let s be ofAtomicFormula Element of S; let E be Equivalence_Relation of U; let f be Interpreter of s,U; funcf quotient E -> set equals :Def15: :: FOMODEL3:def 15 ((abs (ar s)) -tuple2Class E) * (f quotient (((abs (ar s)) -placesOf E),E)) if not s is relational otherwise (((abs (ar s)) -tuple2Class E) * (f quotient (((abs (ar s)) -placesOf E),(id BOOLEAN)))) * (peeler BOOLEAN); coherence ( ( not s is relational implies ((abs (ar s)) -tuple2Class E) * (f quotient (((abs (ar s)) -placesOf E),E)) is set ) & ( s is relational implies (((abs (ar s)) -tuple2Class E) * (f quotient (((abs (ar s)) -placesOf E),(id BOOLEAN)))) * (peeler BOOLEAN) is set ) ) ; consistency for b1 being set holds verum ; end; :: deftheorem Def15 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) ) ); definition let S be Language; let U be non empty set ; let s be ofAtomicFormula Element of S; let E be Equivalence_Relation of U; let f be E -respecting Interpreter of s,U; :: original: quotient redefine funcf quotient E -> Interpreter of s, Class E; coherence f quotient E is Interpreter of s, Class E proof set n = abs (ar s); set D = (abs (ar s)) -tuples_on U; set h = (abs (ar s)) -tuple2Class E; set IT = f quotient E; reconsider EE = (abs (ar s)) -placesOf E as Equivalence_Relation of ((abs (ar s)) -tuples_on U) ; reconsider hr = (abs (ar s)) -tuple2Class E as Relation ; percases ( not s is relational or s is relational ) ; supposeA1: not s is relational ; ::_thesis: f quotient E is Interpreter of s, Class E then reconsider g = f as EE,E -respecting Function of ((abs (ar s)) -tuples_on U),U by Def10, FOMODEL2:def_2; reconsider e = g quotient (EE,E) as Function of (Class EE),(Class E) ; reconsider er = e as Relation ; reconsider gr = g as Relation ; f quotient E = e * ((abs (ar s)) -tuple2Class E) by Def15, A1; hence f quotient E is Interpreter of s, Class E by A1, FOMODEL2:def_2; ::_thesis: verum end; supposeA2: s is relational ; ::_thesis: f quotient E is Interpreter of s, Class E then reconsider g = f as EE, id BOOLEAN -respecting Function of ((abs (ar s)) -tuples_on U),BOOLEAN by Def10, FOMODEL2:def_2; reconsider pr = peeler BOOLEAN as Relation ; reconsider e = g quotient (EE,(id BOOLEAN)) as Function of (Class EE),{_{BOOLEAN}_} ; reconsider er = e as Relation ; reconsider gr = g as Relation ; f quotient E = (peeler BOOLEAN) * (e * ((abs (ar s)) -tuple2Class E)) by A2, Def15; hence f quotient E is Interpreter of s, Class E by A2, FOMODEL2:def_2; ::_thesis: verum end; end; end; end; theorem :: FOMODEL3:1 for X being non empty set for E being Equivalence_Relation of X for C1, C2 being Element of Class E st C1 meets C2 holds C1 = C2 by EQREL_1:def_4; registration let S be Language; cluster -> own for Element of OwnSymbolsOf S; coherence for b1 being Element of OwnSymbolsOf S holds b1 is own by FOMODEL1:def_19; cluster -> ofAtomicFormula for Element of OwnSymbolsOf S; coherence for b1 being Element of OwnSymbolsOf S holds b1 is ofAtomicFormula ; end; registration let S be Language; let U be non empty set ; let o be non relational ofAtomicFormula Element of S; let E be Relation of U; clusterE -respecting -> (abs (ar o)) -placesOf E,E -respecting for Interpreter of o,U; coherence for b1 being Interpreter of o,U st b1 is E -respecting holds b1 is (abs (ar o)) -placesOf E,E -respecting by Def10; end; registration let S be Language; let U be non empty set ; let r be relational Element of S; let E be Relation of U; clusterE -respecting -> (abs (ar r)) -placesOf E, id BOOLEAN -respecting for Interpreter of r,U; coherence for b1 being Interpreter of r,U st b1 is E -respecting holds b1 is (abs (ar r)) -placesOf E, id BOOLEAN -respecting by Def10; end; registration let n be Nat; let U1, U2 be non empty set ; let f be Function-like Relation of U1,U2; clustern -placesOf f -> Function-like for Relation; coherence for b1 being Relation st b1 = n -placesOf f holds b1 is Function-like proof set IT = n -placesOf f; percases ( n = 0 or n <> 0 ) ; suppose n = 0 ; ::_thesis: for b1 being Relation st b1 = n -placesOf f holds b1 is Function-like hence for b1 being Relation st b1 = n -placesOf f holds b1 is Function-like ; ::_thesis: verum end; suppose n <> 0 ; ::_thesis: for b1 being Relation st b1 = n -placesOf f holds b1 is Function-like then reconsider n = n as non zero Nat ; now__::_thesis:_for_x,_y1,_y2_being_set_st_[x,y1]_in_n_-placesOf_f_&_[x,y2]_in_n_-placesOf_f_holds_ y1_=_y2 let x, y1, y2 be set ; ::_thesis: ( [x,y1] in n -placesOf f & [x,y2] in n -placesOf f implies y1 = y2 ) assume [x,y1] in n -placesOf f ; ::_thesis: ( [x,y2] in n -placesOf f implies y1 = y2 ) then consider p1 being Element of n -tuples_on U1, q1 being Element of n -tuples_on U2 such that A1: ( [x,y1] = [p1,q1] & ( for j being set st j in Seg n holds [(p1 . j),(q1 . j)] in f ) ) ; assume [x,y2] in n -placesOf f ; ::_thesis: y1 = y2 then consider p2 being Element of n -tuples_on U1, q2 being Element of n -tuples_on U2 such that A2: ( [x,y2] = [p2,q2] & ( for j being set st j in Seg n holds [(p2 . j),(q2 . j)] in f ) ) ; A3: ( x = p1 & y1 = q1 & x = p2 & y2 = q2 ) by A1, A2, XTUPLE_0:1; reconsider xx = x as Function by A2, XTUPLE_0:1; reconsider qq1 = q1, qq2 = q2 as Element of Funcs ((Seg n),U2) by FOMODEL0:11; now__::_thesis:_for_j_being_Element_of_Seg_n_holds_qq1_._j_=_qq2_._j let j be Element of Seg n; ::_thesis: qq1 . j = qq2 . j ( [(xx . j),(q1 . j)] in f & [(xx . j),(q2 . j)] in f ) by A1, A2, A3; hence qq1 . j = qq2 . j by FUNCT_1:def_1; ::_thesis: verum end; hence y1 = y2 by A3, FUNCT_2:63; ::_thesis: verum end; hence for b1 being Relation st b1 = n -placesOf f holds b1 is Function-like by FUNCT_1:def_1; ::_thesis: verum end; end; end; end; registration let U1, U2 be non empty set ; let n be zero Nat; let R be Relation of U1,U2; cluster(n -placesOf R) \+\ (id {{}}) -> empty ; coherence (n -placesOf R) \+\ (id {{}}) is empty proof set A = {[{},{}]}; ( {[{},{}]} \+\ (id {{}}) = {} & n -placesOf R = {[{},{}]} ) by Lm4; hence (n -placesOf R) \+\ (id {{}}) is empty ; ::_thesis: verum end; end; registration let X be set ; let Y be functional set ; clusterX /\ Y -> functional ; coherence X /\ Y is functional ; end; theorem :: FOMODEL3:2 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) * by Lm3; definition let S be Language; let U be non empty set ; let E be Equivalence_Relation of U; let I be S,U -interpreter-like Function; attrI is E -respecting means :Def16: :: FOMODEL3:def 16 for s being own Element of S holds I . s is E -respecting ; end; :: deftheorem Def16 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 ); definition let S be Language; let U be non empty set ; let E be Equivalence_Relation of U; let I be S,U -interpreter-like Function; funcI quotient E -> Function means :Def17: :: FOMODEL3:def 17 ( dom it = OwnSymbolsOf S & ( for o being Element of OwnSymbolsOf S holds it . o = (I . o) quotient E ) ); existence ex b1 being Function st ( dom b1 = OwnSymbolsOf S & ( for o being Element of OwnSymbolsOf S holds b1 . o = (I . o) quotient E ) ) proof set O = OwnSymbolsOf S; set AT = AllTermsOf S; deffunc H1( Element of OwnSymbolsOf S) -> set = (I . $1) quotient E; consider f being Function such that A1: ( dom f = OwnSymbolsOf S & ( for d being Element of OwnSymbolsOf S holds f . d = H1(d) ) ) from FUNCT_1:sch_4(); take f ; ::_thesis: ( dom f = OwnSymbolsOf S & ( for o being Element of OwnSymbolsOf S holds f . o = (I . o) quotient E ) ) thus ( dom f = OwnSymbolsOf S & ( for o being Element of OwnSymbolsOf S holds f . o = (I . o) quotient E ) ) by A1; ::_thesis: verum end; uniqueness for b1, b2 being Function st dom b1 = OwnSymbolsOf S & ( for o being Element of OwnSymbolsOf S holds b1 . o = (I . o) quotient E ) & dom b2 = OwnSymbolsOf S & ( for o being Element of OwnSymbolsOf S holds b2 . o = (I . o) quotient E ) holds b1 = b2 proof set O = OwnSymbolsOf S; set AT = AllTermsOf S; let IT1, IT2 be Function; ::_thesis: ( dom IT1 = OwnSymbolsOf S & ( for o being Element of OwnSymbolsOf S holds IT1 . o = (I . o) quotient E ) & dom IT2 = OwnSymbolsOf S & ( for o being Element of OwnSymbolsOf S holds IT2 . o = (I . o) quotient E ) implies IT1 = IT2 ) deffunc H1( Element of OwnSymbolsOf S) -> set = (I . $1) quotient E; assume A2: ( dom IT1 = OwnSymbolsOf S & ( for o being Element of OwnSymbolsOf S holds IT1 . o = H1(o) ) ) ; ::_thesis: ( not dom IT2 = OwnSymbolsOf S or ex o being Element of OwnSymbolsOf S st not IT2 . o = (I . o) quotient E or IT1 = IT2 ) assume A3: ( dom IT2 = OwnSymbolsOf S & ( for o being Element of OwnSymbolsOf S holds IT2 . o = H1(o) ) ) ; ::_thesis: IT1 = IT2 ( dom IT1 = dom IT2 & ( for x being set st x in dom IT1 holds IT1 . x = IT2 . x ) ) proof thus dom IT1 = dom IT2 by A2, A3; ::_thesis: for x being set st x in dom IT1 holds IT1 . x = IT2 . x let x be set ; ::_thesis: ( x in dom IT1 implies IT1 . x = IT2 . x ) assume x in dom IT1 ; ::_thesis: IT1 . x = IT2 . x then reconsider o = x as Element of OwnSymbolsOf S by A2; IT1 . o = H1(o) by A2 .= IT2 . o by A3 ; hence IT1 . x = IT2 . x ; ::_thesis: verum end; hence IT1 = IT2 by FUNCT_1:2; ::_thesis: verum end; end; :: deftheorem Def17 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 ) ) ); definition let S be Language; let U be non empty set ; let E be Equivalence_Relation of U; let I be S,U -interpreter-like Function; redefine func I quotient E means :Def18: :: FOMODEL3:def 18 ( dom it = OwnSymbolsOf S & ( for o being own Element of S holds it . o = (I . o) quotient E ) ); compatibility for b1 being Function holds ( b1 = I quotient E iff ( dom b1 = OwnSymbolsOf S & ( for o being own Element of S holds b1 . o = (I . o) quotient E ) ) ) proof set O = OwnSymbolsOf S; set IT0 = I quotient E; defpred S1[ Function] means ( dom $1 = OwnSymbolsOf S & ( for o being own Element of S holds $1 . o = (I . o) quotient E ) ); let IT be Function; ::_thesis: ( IT = I quotient E iff ( dom IT = OwnSymbolsOf S & ( for o being own Element of S holds IT . o = (I . o) quotient E ) ) ) thus ( IT = I quotient E implies S1[IT] ) ::_thesis: ( dom IT = OwnSymbolsOf S & ( for o being own Element of S holds IT . o = (I . o) quotient E ) implies IT = I quotient E ) proof assume A1: IT = I quotient E ; ::_thesis: S1[IT] hence dom IT = OwnSymbolsOf S by Def17; ::_thesis: for o being own Element of S holds IT . o = (I . o) quotient E now__::_thesis:_for_o_being_own_Element_of_S_holds_IT_._o_=_(I_._o)_quotient_E let o be own Element of S; ::_thesis: IT . o = (I . o) quotient E reconsider oo = o as Element of OwnSymbolsOf S by FOMODEL1:def_19; (I quotient E) . oo = (I . oo) quotient E by Def17; hence IT . o = (I . o) quotient E by A1; ::_thesis: verum end; hence for o being own Element of S holds IT . o = (I . o) quotient E ; ::_thesis: verum end; assume A2: S1[IT] ; ::_thesis: IT = I quotient E for o being Element of OwnSymbolsOf S holds IT . o = (I . o) quotient E by A2; hence IT = I quotient E by A2, Def17; ::_thesis: verum end; end; :: deftheorem Def18 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 ) ) ); registration let S be Language; let U be non empty set ; let I be S,U -interpreter-like Function; let E be Equivalence_Relation of U; clusterI quotient E -> OwnSymbolsOf S -defined ; coherence I quotient E is OwnSymbolsOf S -defined proof set II = I quotient E; set O = OwnSymbolsOf S; dom (I quotient E) c= OwnSymbolsOf S by Def17; hence I quotient E is OwnSymbolsOf S -defined by RELAT_1:def_18; ::_thesis: verum end; end; registration let S be Language; let U be non empty set ; let E be Equivalence_Relation of U; cluster Relation-like OwnSymbolsOf S -defined Function-like total Function-yielding V164() S,U -interpreter-like E -respecting for Element of U -InterpretersOf S; existence ex b1 being Element of U -InterpretersOf S st b1 is E -respecting proof set O = OwnSymbolsOf S; set C = PFuncs ((U *),(U \/ BOOLEAN)); set II = U -InterpretersOf S; deffunc H1( Element of OwnSymbolsOf S) -> E -respecting Interpreter of S,U = the E -respecting Interpreter of S,U; consider f being Function such that A1: ( dom f = OwnSymbolsOf S & ( for d being Element of OwnSymbolsOf S holds f . d = H1(d) ) ) from FUNCT_1:sch_4(); now__::_thesis:_for_x_being_set_st_x_in_dom_f_holds_ f_._x_is_Function let x be set ; ::_thesis: ( x in dom f implies f . x is Function ) assume x in dom f ; ::_thesis: f . x is Function then reconsider o = x as Element of OwnSymbolsOf S by A1; f . o = H1(o) by A1; hence f . x is Function ; ::_thesis: verum end; then A2: f is Function-yielding by FUNCOP_1:def_6; for s being own Element of S holds f . s is Interpreter of s,U proof let s be own Element of S; ::_thesis: f . s is Interpreter of s,U reconsider o = s as Element of OwnSymbolsOf S by FOMODEL1:def_19; f . o = H1(o) by A1; hence f . s is Interpreter of s,U ; ::_thesis: verum end; then reconsider ff = f as Interpreter of S,U by FOMODEL2:def_3; reconsider fff = ff as S,U -interpreter-like Function by A2, FOMODEL2:def_4; reconsider ffff = fff as OwnSymbolsOf S -defined Function by A1, RELAT_1:def_18; ( fff | (OwnSymbolsOf S) is PFuncs ((U *),(U \/ BOOLEAN)) -valued & ffff | (OwnSymbolsOf S) = ffff null (OwnSymbolsOf S) ) ; then ( fff = fff & dom fff = OwnSymbolsOf S & rng fff c= PFuncs ((U *),(U \/ BOOLEAN)) ) by A1, RELAT_1:def_19; then reconsider IT = fff as Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) by FUNCT_2:def_2; IT in U -InterpretersOf S ; then reconsider ITT = IT as Element of U -InterpretersOf S ; take ITT ; ::_thesis: ITT is E -respecting now__::_thesis:_for_s_being_own_Element_of_S_holds_ITT_._s_is_E_-respecting let s be own Element of S; ::_thesis: ITT . s is E -respecting reconsider o = s as Element of OwnSymbolsOf S by FOMODEL1:def_19; fff . o = H1(o) by A1; hence ITT . s is E -respecting ; ::_thesis: verum end; hence ITT is E -respecting by Def16; ::_thesis: verum end; end; registration let S be Language; let U be non empty set ; let E be Equivalence_Relation of U; cluster Relation-like Function-like Function-yielding V164() S,U -interpreter-like E -respecting for set ; existence ex b1 being S,U -interpreter-like Function st b1 is E -respecting proof take IT = the E -respecting Element of U -InterpretersOf S; ::_thesis: IT is E -respecting thus IT is E -respecting ; ::_thesis: verum end; end; registration let S be Language; let U be non empty set ; let E be Equivalence_Relation of U; let o be own Element of S; let I be S,U -interpreter-like E -respecting Function; clusterI . o -> E -respecting for Interpreter of o,U; coherence for b1 being Interpreter of o,U st b1 = I . o holds b1 is E -respecting by Def16; end; registration let S be Language; let U be non empty set ; let E be Equivalence_Relation of U; let I be S,U -interpreter-like E -respecting Function; clusterI quotient E -> S, Class E -interpreter-like for Function; coherence for b1 being Function st b1 = I quotient E holds b1 is S, Class E -interpreter-like proof set IT = I quotient E; set O = OwnSymbolsOf S; A1: for o being Element of OwnSymbolsOf S holds ( (I quotient E) . o is Interpreter of o, Class E & (I quotient E) . o is Function ) proof let o be Element of OwnSymbolsOf S; ::_thesis: ( (I quotient E) . o is Interpreter of o, Class E & (I quotient E) . o is Function ) reconsider i = I . o as E -respecting Interpreter of o,U ; A2: i quotient E is Interpreter of o, Class E ; hence (I quotient E) . o is Interpreter of o, Class E by Def17; ::_thesis: (I quotient E) . o is Function thus (I quotient E) . o is Function by A2, Def17; ::_thesis: verum end; for x being set st x in dom (I quotient E) holds (I quotient E) . x is Function by A1; then A3: I quotient E is Function-yielding by FUNCOP_1:def_6; now__::_thesis:_for_o_being_own_Element_of_S_holds_(I_quotient_E)_._o_is_Interpreter_of_o,_Class_E let o be own Element of S; ::_thesis: (I quotient E) . o is Interpreter of o, Class E reconsider oo = o as Element of OwnSymbolsOf S by FOMODEL1:def_19; (I quotient E) . oo is Interpreter of oo, Class E by A1; hence (I quotient E) . o is Interpreter of o, Class E ; ::_thesis: verum end; then I quotient E is Interpreter of S, Class E by FOMODEL2:def_3; hence for b1 being Function st b1 = I quotient E holds b1 is S, Class E -interpreter-like by A3, FOMODEL2:def_4; ::_thesis: verum end; end; definition let S be Language; let U be non empty set ; let E be Equivalence_Relation of U; let I be S,U -interpreter-like E -respecting Function; :: original: quotient redefine funcI quotient E -> Element of (Class E) -InterpretersOf S; coherence I quotient E is Element of (Class E) -InterpretersOf S proof set J = I quotient E; set O = OwnSymbolsOf S; set II = (Class E) -InterpretersOf S; (I quotient E) null (OwnSymbolsOf S) in (Class E) -InterpretersOf S by FOMODEL2:2; hence I quotient E is Element of (Class E) -InterpretersOf S ; ::_thesis: verum end; end; Lm12: 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 } proof let U1, U2 be non empty set ; ::_thesis: 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 } let n be Nat; ::_thesis: 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 } let R be Relation of U1,U2; ::_thesis: 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 } deffunc H1( set , set ) -> set = [$1,$2]; defpred S1[ Function, Function] means for j being set st j in Seg n holds [($1 . j),($2 . j)] in R; defpred S2[ Relation, set ] means $2 c= $1 * R; set N1 = n -tuples_on U1; set N2 = n -tuples_on U2; set D = Seg n; set LH = { H1(p,q) where p is Element of n -tuples_on U1, q is Element of n -tuples_on U2 : S1[p,q] } ; set RH = { H1(p,q) where p is Element of n -tuples_on U1, q is Element of n -tuples_on U2 : S2[p,q] } ; A1: for u being Element of n -tuples_on U1 for v being Element of n -tuples_on U2 holds ( S1[u,v] iff S2[u,v] ) proof let u be Element of n -tuples_on U1; ::_thesis: for v being Element of n -tuples_on U2 holds ( S1[u,v] iff S2[u,v] ) let v be Element of n -tuples_on U2; ::_thesis: ( S1[u,v] iff S2[u,v] ) A2: ( len u = n & len v = n ) by CARD_1:def_7; then ( dom u = Seg n & dom v = Seg n ) by FINSEQ_1:def_3; then A3: ( u = { [x,(u . x)] where x is Element of Seg n : x in Seg n } & v = { [x,(v . x)] where x is Element of Seg n : x in Seg n } ) by FOMODEL0:20; thus ( S1[u,v] implies S2[u,v] ) ::_thesis: ( S2[u,v] implies S1[u,v] ) proof assume A4: S1[u,v] ; ::_thesis: S2[u,v] now__::_thesis:_for_z_being_set_st_z_in_v_holds_ z_in_u_*_R let z be set ; ::_thesis: ( z in v implies z in u * R ) assume z in v ; ::_thesis: z in u * R then consider x being Element of Seg n such that A5: ( z = [x,(v . x)] & x in Seg n ) by A3; A6: [(u . x),(v . x)] in R by A4, A5; [x,(u . x)] in u by A3, A5; hence z in u * R by A5, A6, RELAT_1:def_8; ::_thesis: verum end; hence S2[u,v] by TARSKI:def_3; ::_thesis: verum end; assume A7: S2[u,v] ; ::_thesis: S1[u,v] now__::_thesis:_for_j_being_set_st_j_in_Seg_n_holds_ [(u_._j),(v_._j)]_in_R let j be set ; ::_thesis: ( j in Seg n implies [(u . j),(v . j)] in R ) assume A8: j in Seg n ; ::_thesis: [(u . j),(v . j)] in R then reconsider x = j as Element of Seg n ; [x,(v . x)] in v by A3, A8; then consider z being set such that A9: ( [x,z] in u & [z,(v . x)] in R ) by A7, RELAT_1:def_8; x in dom u by A2, A8, FINSEQ_1:def_3; hence [(u . j),(v . j)] in R by A9, FUNCT_1:def_2; ::_thesis: verum end; hence S1[u,v] ; ::_thesis: verum end; { H1(p,q) where p is Element of n -tuples_on U1, q is Element of n -tuples_on U2 : S1[p,q] } = { H1(p,q) where p is Element of n -tuples_on U1, q is Element of n -tuples_on U2 : S2[p,q] } from FRAENKEL:sch_4(A1); hence 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 } ; ::_thesis: verum end; Lm13: 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) proof let U2, U1, U3 be non empty set ; ::_thesis: 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) let n be Nat; ::_thesis: 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) let U be non empty Subset of U2; ::_thesis: 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) let P be Relation of U1,U; ::_thesis: for Q being Relation of U2,U3 holds (n -placesOf P) * (n -placesOf Q) c= n -placesOf (P * Q) let Q be Relation of U2,U3; ::_thesis: (n -placesOf P) * (n -placesOf Q) c= n -placesOf (P * Q) set R = P * Q; set LH = n -placesOf (P * Q); set Pn = n -placesOf P; set Qn = n -placesOf Q; set RH = (n -placesOf P) * (n -placesOf Q); set N = n -tuples_on U; set N1 = n -tuples_on U1; set N2 = n -tuples_on U2; set N3 = n -tuples_on U3; A1: ( n -placesOf (P * Q) = { [p,q] where p is Element of n -tuples_on U1, q is Element of n -tuples_on U3 : q c= p * (P * Q) } & n -placesOf P = { [p,q] where p is Element of n -tuples_on U1, q is Element of n -tuples_on U : q c= p * P } & n -placesOf Q = { [p,q] where p is Element of n -tuples_on U2, q is Element of n -tuples_on U3 : q c= p * Q } ) by Lm12; now__::_thesis:_for_t_being_set_st_t_in_(n_-placesOf_P)_*_(n_-placesOf_Q)_holds_ t_in_n_-placesOf_(P_*_Q) let t be set ; ::_thesis: ( t in (n -placesOf P) * (n -placesOf Q) implies t in n -placesOf (P * Q) ) assume A2: t in (n -placesOf P) * (n -placesOf Q) ; ::_thesis: t in n -placesOf (P * Q) then consider x, z being set such that A3: t = [x,z] by RELAT_1:def_1; consider y being set such that A4: ( [x,y] in n -placesOf P & [y,z] in n -placesOf Q ) by A3, A2, RELAT_1:def_8; consider p1 being Element of n -tuples_on U1, p2 being Element of n -tuples_on U such that A5: ( [p1,p2] = [x,y] & p2 c= p1 * P ) by A1, A4; consider q1 being Element of n -tuples_on U2, q2 being Element of n -tuples_on U3 such that A6: ( [q1,q2] = [y,z] & q2 c= q1 * Q ) by A1, A4; A7: ( p2 * Q c= (p1 * P) * Q & p1 = x & p2 = y & q1 = y & q2 = z ) by A5, A6, RELAT_1:30, XTUPLE_0:1; then q2 c= (p1 * P) * Q by A6, XBOOLE_1:1; then ( [p1,q2] = [p1,q2] & q2 c= p1 * (P * Q) ) by RELAT_1:36; hence t in n -placesOf (P * Q) by A3, A7, A1; ::_thesis: verum end; hence (n -placesOf P) * (n -placesOf Q) c= n -placesOf (P * Q) by TARSKI:def_3; ::_thesis: verum end; 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) c= (n -placesOf P) * (n -placesOf Q) proof let U2, U1, U3 be non empty set ; ::_thesis: 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) let n be Nat; ::_thesis: 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) let U be non empty Subset of U2; ::_thesis: 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) let P be Relation of U1,U; ::_thesis: for Q being Relation of U2,U3 holds n -placesOf (P * Q) c= (n -placesOf P) * (n -placesOf Q) let Q be Relation of U2,U3; ::_thesis: n -placesOf (P * Q) c= (n -placesOf P) * (n -placesOf Q) set R = P * Q; set LH = n -placesOf (P * Q); set Pn = n -placesOf P; set Qn = n -placesOf Q; set RH = (n -placesOf P) * (n -placesOf Q); set N = n -tuples_on U; set N1 = n -tuples_on U1; set N2 = n -tuples_on U2; set N3 = n -tuples_on U3; reconsider nn = n as Element of NAT by ORDINAL1:def_12; now__::_thesis:_for_x_being_set_st_x_in_n_-placesOf_(P_*_Q)_holds_ x_in_(n_-placesOf_P)_*_(n_-placesOf_Q) let x be set ; ::_thesis: ( x in n -placesOf (P * Q) implies x in (n -placesOf P) * (n -placesOf Q) ) assume x in n -placesOf (P * Q) ; ::_thesis: x in (n -placesOf P) * (n -placesOf Q) then consider p being Element of n -tuples_on U1, q being Element of n -tuples_on U3 such that A1: ( x = [p,q] & ( for j being set st j in Seg n holds [(p . j),(q . j)] in P * Q ) ) ; defpred S1[ set , set ] means ( [(p . $1),$2] in P & [$2,(q . $1)] in Q ); A2: for k being Nat st k in Seg n holds ex y being Element of U st S1[k,y] proof let k be Nat; ::_thesis: ( k in Seg n implies ex y being Element of U st S1[k,y] ) assume k in Seg n ; ::_thesis: ex y being Element of U st S1[k,y] then [(p . k),(q . k)] in P * Q by A1; then consider y being set such that A3: ( [(p . k),y] in P & [y,(q . k)] in Q ) by RELAT_1:def_8; ( y in rng P & rng P c= U ) by A3, XTUPLE_0:def_13; then reconsider yy = y as Element of U ; take yy ; ::_thesis: S1[k,yy] thus S1[k,yy] by A3; ::_thesis: verum end; consider r being FinSequence of U such that A4: ( dom r = Seg n & ( for k being Nat st k in Seg n holds S1[k,r . k] ) ) from FINSEQ_1:sch_5(A2); len r = nn by A4, FINSEQ_1:def_3; then reconsider rr = r as n -element FinSequence of U by CARD_1:def_7; reconsider rrr = rr as Element of n -tuples_on U by FOMODEL0:16; reconsider rrrr = rrr as Element of n -tuples_on U2 by FOMODEL0:16; ( [p,rrr] = [p,rrr] & ( for j being set st j in Seg n holds [(p . j),(rrr . j)] in P ) ) by A4; then A5: [p,rrr] in n -placesOf P ; ( [rrrr,q] = [rrrr,q] & ( for j being set st j in Seg n holds [(rrrr . j),(q . j)] in Q ) ) by A4; then [rrrr,q] in n -placesOf Q ; hence x in (n -placesOf P) * (n -placesOf Q) by A1, A5, RELAT_1:def_8; ::_thesis: verum end; hence n -placesOf (P * Q) c= (n -placesOf P) * (n -placesOf Q) by TARSKI:def_3; ::_thesis: verum end; Lm15: 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) proof let U2, U1, U3 be non empty set ; ::_thesis: 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) let n be Nat; ::_thesis: 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) let U be non empty Subset of U2; ::_thesis: 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) let P be Relation of U1,U; ::_thesis: for Q being Relation of U2,U3 holds n -placesOf (P * Q) = (n -placesOf P) * (n -placesOf Q) let Q be Relation of U2,U3; ::_thesis: n -placesOf (P * Q) = (n -placesOf P) * (n -placesOf Q) set R = P * Q; set LH = n -placesOf (P * Q); set Pn = n -placesOf P; set Qn = n -placesOf Q; set RH = (n -placesOf P) * (n -placesOf Q); ( n -placesOf (P * Q) c= (n -placesOf P) * (n -placesOf Q) & (n -placesOf P) * (n -placesOf Q) c= n -placesOf (P * Q) ) by Lm13, Lm14; hence n -placesOf (P * Q) = (n -placesOf P) * (n -placesOf Q) by XBOOLE_0:def_10; ::_thesis: verum end; Lm16: 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) proof let U1, U2, U3 be non empty set ; ::_thesis: 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) let n be Nat; ::_thesis: 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) reconsider U = U2 /\ U2 as non empty Subset of U2 ; let P be Relation of U1,U2; ::_thesis: for Q being Relation of U2,U3 holds n -placesOf (P * Q) = (n -placesOf P) * (n -placesOf Q) let Q be Relation of U2,U3; ::_thesis: n -placesOf (P * Q) = (n -placesOf P) * (n -placesOf Q) reconsider PP = P as Relation of U1,U ; n -placesOf (PP * Q) = (n -placesOf PP) * (n -placesOf Q) by Lm15; hence n -placesOf (P * Q) = (n -placesOf P) * (n -placesOf Q) ; ::_thesis: verum end; Lm17: 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) ~ proof let U1, U2 be non empty set ; ::_thesis: for n being Nat for R being Relation of U1,U2 holds n -placesOf (R ~) = (n -placesOf R) ~ let n be Nat; ::_thesis: for R being Relation of U1,U2 holds n -placesOf (R ~) = (n -placesOf R) ~ let R be Relation of U1,U2; ::_thesis: n -placesOf (R ~) = (n -placesOf R) ~ set N1 = n -tuples_on U1; set N2 = n -tuples_on U2; set IT = { [q,p] where p is Element of n -tuples_on U1, q is Element of n -tuples_on U2 : for j being set st j in Seg n holds [(p . j),(q . j)] in R } ; reconsider Q = R ~ as Relation of U2,U1 ; reconsider Rn = n -placesOf R as Relation of (n -tuples_on U1),(n -tuples_on U2) ; reconsider LH = n -placesOf Q as Relation of (n -tuples_on U2),(n -tuples_on U1) ; reconsider RH = Rn ~ as Relation of (n -tuples_on U2),(n -tuples_on U1) ; now__::_thesis:_for_x_being_set_st_x_in_LH_holds_ x_in_RH let x be set ; ::_thesis: ( x in LH implies x in RH ) assume x in LH ; ::_thesis: x in RH then consider p being Element of n -tuples_on U2, q being Element of n -tuples_on U1 such that A1: ( x = [p,q] & ( for j being set st j in Seg n holds [(p . j),(q . j)] in R ~ ) ) ; for j being set st j in Seg n holds [(q . j),(p . j)] in R proof let j be set ; ::_thesis: ( j in Seg n implies [(q . j),(p . j)] in R ) assume j in Seg n ; ::_thesis: [(q . j),(p . j)] in R then [(p . j),(q . j)] in R ~ by A1; hence [(q . j),(p . j)] in R by RELAT_1:def_7; ::_thesis: verum end; then [q,p] in Rn ; hence x in RH by A1, RELAT_1:def_7; ::_thesis: verum end; then A2: LH c= RH by TARSKI:def_3; now__::_thesis:_for_x_being_set_st_x_in_RH_~_holds_ x_in_LH_~ let x be set ; ::_thesis: ( x in RH ~ implies x in LH ~ ) assume x in RH ~ ; ::_thesis: x in LH ~ then consider p being Element of n -tuples_on U1, q being Element of n -tuples_on U2 such that A3: ( x = [p,q] & ( for j being set st j in Seg n holds [(p . j),(q . j)] in R ) ) ; for j being set st j in Seg n holds [(q . j),(p . j)] in R ~ proof let j be set ; ::_thesis: ( j in Seg n implies [(q . j),(p . j)] in R ~ ) assume j in Seg n ; ::_thesis: [(q . j),(p . j)] in R ~ then [(p . j),(q . j)] in R by A3; hence [(q . j),(p . j)] in R ~ by RELAT_1:def_7; ::_thesis: verum end; then [q,p] in LH ; hence x in LH ~ by A3, RELAT_1:def_7; ::_thesis: verum end; then RH ~ c= LH ~ by TARSKI:def_3; then (RH ~) \ (LH ~) = {} ; then (RH \ LH) ~ = {} by RELAT_1:24; then ((RH \ LH) ~) ~ = {} ; then RH c= LH by XBOOLE_1:37; hence n -placesOf (R ~) = (n -placesOf R) ~ by A2, XBOOLE_0:def_10; ::_thesis: verum end; Lm18: 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) proof let X, Y be non empty set ; ::_thesis: for E being Equivalence_Relation of X for F being Equivalence_Relation of Y for g being b1,b2 -respecting Function of X,Y holds (F -class) * g = (g quotient (E,F)) * (E -class) let E be Equivalence_Relation of X; ::_thesis: for F being Equivalence_Relation of Y for g being E,b1 -respecting Function of X,Y holds (F -class) * g = (g quotient (E,F)) * (E -class) let F be Equivalence_Relation of Y; ::_thesis: for g being E,F -respecting Function of X,Y holds (F -class) * g = (g quotient (E,F)) * (E -class) let g be E,F -respecting Function of X,Y; ::_thesis: (F -class) * g = (g quotient (E,F)) * (E -class) set G = g quotient (E,F); A1: dom (g quotient (E,F)) = Class E by FUNCT_2:def_1; reconsider LH = (F -class) * g, RH = (g quotient (E,F)) * (E -class) as Function of X,(Class F) ; A2: ( dom LH = X & dom RH = X ) by FUNCT_2:def_1; now__::_thesis:_for_x_being_Element_of_X_holds_LH_._x_=_RH_._x let x be Element of X; ::_thesis: LH . x = RH . x reconsider F1 = LH . x, F2 = RH . x as Element of Class F ; A3: ( F1 = (F -class) . (g . x) & F2 = (g quotient (E,F)) . ((E -class) . x) ) by A2, FUNCT_1:12; then F2 = (g quotient (E,F)) . (EqClass (E,x)) by Def13; then [(EqClass (E,x)),F2] in g quotient (E,F) by A1, FUNCT_1:1; then consider e being Element of Class E, f being Element of Class F such that A4: ( [(EqClass (E,x)),F2] = [e,f] & ex a, b being set st ( a in e & b in f & [a,b] in g ) ) ; consider a, b being set such that A5: ( a in e & b in f & [a,b] in g ) by A4; A6: ( EqClass (E,x) = e & F2 = f ) by A4, XTUPLE_0:1; then A7: ( a in EqClass (E,x) & [a,x] in E & b in F2 ) by A5, EQREL_1:19; a in X by A5; then a in dom g by FUNCT_2:def_1; then b = g . a by A5, FUNCT_1:def_2; then [b,(g . x)] in F by A7, Def9; then b in EqClass (F,(g . x)) by EQREL_1:19; then b in F1 by A3, Def13; then F1 meets F2 by A5, A6, XBOOLE_0:3; hence LH . x = RH . x by EQREL_1:def_4; ::_thesis: verum end; hence (F -class) * g = (g quotient (E,F)) * (E -class) by FUNCT_2:63; ::_thesis: verum end; Lm19: 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 proof let U1, U2 be non empty set ; ::_thesis: for m being Nat for p being U1 -valued b1 -element FinSequence for f being Function of U1,U2 holds f * p = (m -placesOf f) . p let m be Nat; ::_thesis: for p being U1 -valued m -element FinSequence for f being Function of U1,U2 holds f * p = (m -placesOf f) . p let p be U1 -valued m -element FinSequence; ::_thesis: for f being Function of U1,U2 holds f * p = (m -placesOf f) . p let f be Function of U1,U2; ::_thesis: f * p = (m -placesOf f) . p set F = m -placesOf f; A1: ( dom f = U1 & dom (m -placesOf f) = m -tuples_on U1 & p in m -tuples_on U1 & f * p in m -tuples_on U2 ) by FOMODEL0:16, FUNCT_2:def_1; reconsider pp = p as Element of m -tuples_on U1 by FOMODEL0:16; pp is Element of Funcs ((Seg m),U1) by FOMODEL0:11; then reconsider ppp = pp as Function of (Seg m),U1 ; reconsider LH = f * p as Element of Funcs ((Seg m),U2) by A1, FOMODEL0:11; reconsider RH = (m -placesOf f) . pp as Element of Funcs ((Seg m),U2) by FOMODEL0:11; reconsider LHH = LH, RHH = RH as Function of (Seg m),U2 ; reconsider LHHH = LH, RHHH = RH as Element of m -tuples_on U2 by FOMODEL0:11; A2: ( dom ppp = Seg m & rng ppp c= U1 & dom LH = Seg m & dom LH = Seg m ) by FUNCT_2:def_1, RELAT_1:def_19; [p,LH] in m -placesOf f proof for j being set st j in Seg m holds [(pp . j),(LHHH . j)] in f proof let j be set ; ::_thesis: ( j in Seg m implies [(pp . j),(LHHH . j)] in f ) assume A3: j in Seg m ; ::_thesis: [(pp . j),(LHHH . j)] in f then A4: LH . j = f . (p . j) by A2, FUNCT_1:12; ppp . j in rng ppp by A3, A2, FUNCT_1:3; hence [(pp . j),(LHHH . j)] in f by A1, A2, A4, FUNCT_1:1; ::_thesis: verum end; hence [p,LH] in m -placesOf f ; ::_thesis: verum end; hence f * p = (m -placesOf f) . p by FUNCT_1:1; ::_thesis: verum end; Lm20: 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)) proof let U be non empty set ; ::_thesis: for n being Nat for E being Equivalence_Relation of U holds (n -placesOf E) -class = (n -tuple2Class E) * (n -placesOf (E -class)) let n be Nat; ::_thesis: for E being Equivalence_Relation of U holds (n -placesOf E) -class = (n -tuple2Class E) * (n -placesOf (E -class)) let E be Equivalence_Relation of U; ::_thesis: (n -placesOf E) -class = (n -tuple2Class E) * (n -placesOf (E -class)) set UN = n -tuples_on U; set A = n -tuple2Class E; set RH = (n -tuple2Class E) * (n -placesOf (E -class)); set LH = (n -placesOf E) -class ; reconsider RA = n -placesOf (E -class) as Relation of (n -tuples_on U),(n -tuples_on (Class E)) ; reconsider ER = E -class as Relation of U,(Class E) ; reconsider RB = n -placesOf (ER ~) as Relation of (n -tuples_on (Class E)),(n -tuples_on U) ; reconsider RC = (n -placesOf ER) ~ as Relation of (n -tuples_on (Class E)),(n -tuples_on U) ; A1: ( dom ((n -placesOf E) -class) = n -tuples_on U & dom ((n -tuple2Class E) * (n -placesOf (E -class))) = n -tuples_on U ) by FUNCT_2:def_1; reconsider FA = RA as Function of (n -tuples_on U),(n -tuples_on (Class E)) ; reconsider RAA = RA as n -tuples_on U -defined total Relation ; (n -tuple2Class E) * (n -placesOf (E -class)) = (RA * RB) * ((n -placesOf E) -class) by RELAT_1:36 .= (RA * RC) * ((n -placesOf E) -class) by Lm17 ; then (id (n -tuples_on U)) * ((n -placesOf E) -class) c= (n -tuple2Class E) * (n -placesOf (E -class)) by FOMODEL0:21, RELAT_1:30; then ((n -placesOf E) -class) | (n -tuples_on U) c= (n -tuple2Class E) * (n -placesOf (E -class)) by RELAT_1:65; hence (n -placesOf E) -class = (n -tuple2Class E) * (n -placesOf (E -class)) by A1, GRFUNC_1:3; ::_thesis: verum end; Lm21: 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) proof let U1, U2 be non empty set ; ::_thesis: for n being Nat for E being Equivalence_Relation of U1 for F being Equivalence_Relation of U2 for g being b1 -placesOf b2,b3 -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) let n be Nat; ::_thesis: for E being Equivalence_Relation of U1 for F being Equivalence_Relation of U2 for g being n -placesOf b1,b2 -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) set X = U1; set Y = U2; let E be Equivalence_Relation of U1; ::_thesis: for F being Equivalence_Relation of U2 for g being n -placesOf E,b1 -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) let F be Equivalence_Relation of U2; ::_thesis: for g being n -placesOf E,F -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) let g be n -placesOf E,F -respecting Function of (n -tuples_on U1),U2; ::_thesis: (g quotient ((n -placesOf E),F)) * (n -tuple2Class E) = (n -placesOf ((E -class) ~)) * ((F -class) * g) reconsider G = g quotient ((n -placesOf E),F) as Function of (Class (n -placesOf E)),(Class F) ; reconsider R = G as Relation of (Class (n -placesOf E)),(Class F) ; reconsider projector = E -class as Relation of U1,(Class E) ; G * (n -tuple2Class E) = (n -placesOf (projector ~)) * (((n -placesOf E) -class) * R) by RELAT_1:36 .= (n -placesOf (projector ~)) * ((F -class) * g) by Lm18 ; hence (g quotient ((n -placesOf E),F)) * (n -tuple2Class E) = (n -placesOf ((E -class) ~)) * ((F -class) * g) ; ::_thesis: verum end; Lm22: 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 proof let x be set ; ::_thesis: 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 let U be non empty set ; ::_thesis: 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 let f be Function; ::_thesis: for R being total reflexive Relation of U st x in dom f & f is U -valued holds f is id {x},R -respecting let R be total reflexive Relation of U; ::_thesis: ( x in dom f & f is U -valued implies f is id {x},R -respecting ) set E = id {x}; assume A1: x in dom f ; ::_thesis: ( not f is U -valued or f is id {x},R -respecting ) then reconsider D = dom f as non empty set ; (id {x}) \+\ {[x,x]} = {} ; then A2: id {x} = {[x,x]} by FOMODEL0:29; reconsider xx = x as Element of D by A1; assume f is U -valued ; ::_thesis: f is id {x},R -respecting then rng f c= U by RELAT_1:def_19; then reconsider ff = f as Function of D,U by FUNCT_2:2; now__::_thesis:_for_x1,_x2_being_set_st_[x1,x2]_in_id_{x}_holds_ [(f_._x1),(f_._x2)]_in_R let x1, x2 be set ; ::_thesis: ( [x1,x2] in id {x} implies [(f . x1),(f . x2)] in R ) assume [x1,x2] in id {x} ; ::_thesis: [(f . x1),(f . x2)] in R then [x1,x2] = [x,x] by A2, TARSKI:def_1; then A3: ( x1 = x & x2 = x ) by XTUPLE_0:1; ( f . xx = f . xx & ff . xx in U ) ; hence [(f . x1),(f . x2)] in R by A3, EQREL_1:5; ::_thesis: verum end; hence f is id {x},R -respecting by Def9; ::_thesis: verum end; Lm23: for U being non empty set holds (peeler U) * ((id U) -class) = id U proof let U be non empty set ; ::_thesis: (peeler U) * ((id U) -class) = id U set X = U; set P = peeler U; set IX = id U; set I = (id U) -class ; set IT = (peeler U) * ((id U) -class); reconsider Pf = peeler U, If = (id U) -class as Function ; A1: ( dom ((id U) -class) = U & dom (id U) = U ) by FUNCT_2:def_1; A2: {_{U}_} = { {x} where x is Element of U : verum } by EQREL_1:37; reconsider PP = peeler U as Function of (Class (id U)),U ; reconsider II = (id U) -class as Function of U,(Class (id U)) ; reconsider LH = PP * II, RH = id U as Function of U,U ; now__::_thesis:_for_x_being_Element_of_U_holds_(id_U)_._x_=_(PP_*_II)_._x let x be Element of U; ::_thesis: (id U) . x = (PP * II) . x set xx = x; {x} in {_{U}_} by A2; then reconsider xton = {x} as Element of {_{U}_} ; (Pf * If) . x = Pf . (If . x) by A1, FUNCT_1:13 .= (peeler U) . (Class ((id U),x)) by Def13 .= (peeler U) . xton by EQREL_1:25 .= DeTrivial xton by Def12 .= x by Def11 .= (id U) . x by FUNCT_1:17 ; hence (id U) . x = (PP * II) . x ; ::_thesis: verum end; hence (peeler U) * ((id U) -class) = id U by FUNCT_2:63; ::_thesis: verum end; Lm24: 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) proof let U be non empty set ; ::_thesis: for u being Element of U for k being Nat for S being Language for E being Equivalence_Relation of U for I being b3,U -interpreter-like b4 -respecting Function holds (((I quotient E),((E -class) . u)) -TermEval) . k = (E -class) * (((I,u) -TermEval) . k) let u be Element of U; ::_thesis: for k being Nat for S being Language for E being Equivalence_Relation of U for I being b2,U -interpreter-like b3 -respecting Function holds (((I quotient E),((E -class) . u)) -TermEval) . k = (E -class) * (((I,u) -TermEval) . k) let k be Nat; ::_thesis: for S being Language for E being Equivalence_Relation of U for I being b1,U -interpreter-like b2 -respecting Function holds (((I quotient E),((E -class) . u)) -TermEval) . k = (E -class) * (((I,u) -TermEval) . k) let S be Language; ::_thesis: for E being Equivalence_Relation of U for I being S,U -interpreter-like b1 -respecting Function holds (((I quotient E),((E -class) . u)) -TermEval) . k = (E -class) * (((I,u) -TermEval) . k) let E be Equivalence_Relation of U; ::_thesis: for I being S,U -interpreter-like E -respecting Function holds (((I quotient E),((E -class) . u)) -TermEval) . k = (E -class) * (((I,u) -TermEval) . k) reconsider e = (E -class) . u as Element of Class E ; let I be S,U -interpreter-like E -respecting Function; ::_thesis: (((I quotient E),((E -class) . u)) -TermEval) . k = (E -class) * (((I,u) -TermEval) . k) set te = (I,u) -TermEval ; set II = I quotient E; set TE = ((I quotient E),e) -TermEval ; set F = S -firstChar ; set O = OwnSymbolsOf S; set TT = AllTermsOf S; defpred S1[ Nat] means (((I quotient E),e) -TermEval) . $1 = (E -class) * (((I,u) -TermEval) . $1); A1: S1[ 0 ] proof A2: ( (((I quotient E),e) -TermEval) . 0 = (AllTermsOf S) --> e & ((I,u) -TermEval) . 0 = (AllTermsOf S) --> u ) by FOMODEL2:def_8; dom (E -class) = U by FUNCT_2:def_1; hence S1[ 0 ] by A2, FUNCOP_1:17; ::_thesis: verum end; A3: for m being Nat st S1[m] holds S1[m + 1] proof let m be Nat; ::_thesis: ( S1[m] implies S1[m + 1] ) assume A4: S1[m] ; ::_thesis: S1[m + 1] reconsider mm = m, MM = m + 1 as Element of NAT by ORDINAL1:def_12; ( ((I,u) -TermEval) . mm is Element of Funcs ((AllTermsOf S),U) & ((I,u) -TermEval) . MM is Element of Funcs ((AllTermsOf S),U) ) ; then reconsider tm = ((I,u) -TermEval) . mm, tmm = ((I,u) -TermEval) . MM as Function of (AllTermsOf S),U ; ( (((I quotient E),e) -TermEval) . mm is Element of Funcs ((AllTermsOf S),(Class E)) & (((I quotient E),e) -TermEval) . MM is Element of Funcs ((AllTermsOf S),(Class E)) ) ; then reconsider TM = (((I quotient E),e) -TermEval) . mm, TMM = (((I quotient E),e) -TermEval) . MM as Function of (AllTermsOf S),(Class E) ; now__::_thesis:_for_tt_being_Element_of_AllTermsOf_S_holds_TMM_._tt_=_((E_-class)_*_tmm)_._tt let tt be Element of AllTermsOf S; ::_thesis: TMM . tt = ((E -class) * tmm) . tt reconsider t = tt as termal string of S ; set s = (S -firstChar) . t; set g = I . ((S -firstChar) . t); set G = (I quotient E) . ((S -firstChar) . t); set sub = SubTerms t; set n = abs (ar ((S -firstChar) . t)); reconsider gg = I . ((S -firstChar) . t) as (abs (ar ((S -firstChar) . t))) -placesOf E,E -respecting Function of ((abs (ar ((S -firstChar) . t))) -tuples_on U),U by FOMODEL2:def_2; A5: (I . ((S -firstChar) . t)) quotient E = (gg quotient (((abs (ar ((S -firstChar) . t))) -placesOf E),E)) * ((abs (ar ((S -firstChar) . t))) -tuple2Class E) by Def15; reconsider ggg = gg quotient (((abs (ar ((S -firstChar) . t))) -placesOf E),E) as Function ; A6: ( tm * (SubTerms t) is U -valued abs (ar ((S -firstChar) . t)) -element FinSequence & dom ((abs (ar ((S -firstChar) . t))) -placesOf (E -class)) = (abs (ar ((S -firstChar) . t))) -tuples_on U & dom gg = (abs (ar ((S -firstChar) . t))) -tuples_on U & dom tmm = AllTermsOf S ) by FUNCT_2:def_1; thus TMM . tt = ((I quotient E) . ((S -firstChar) . t)) . (((((I quotient E),e) -TermEval) . m) * (SubTerms t)) by FOMODEL2:3 .= ((I . ((S -firstChar) . t)) quotient E) . (((((I quotient E),e) -TermEval) . m) * (SubTerms t)) by Def18 .= ((I . ((S -firstChar) . t)) quotient E) . ((E -class) * (tm * (SubTerms t))) by A4, RELAT_1:36 .= ((I . ((S -firstChar) . t)) quotient E) . (((abs (ar ((S -firstChar) . t))) -placesOf (E -class)) . (tm * (SubTerms t))) by Lm19 .= ((ggg * ((abs (ar ((S -firstChar) . t))) -tuple2Class E)) * ((abs (ar ((S -firstChar) . t))) -placesOf (E -class))) . (tm * (SubTerms t)) by A5, A6, FOMODEL0:16, FUNCT_1:13 .= (ggg * (((abs (ar ((S -firstChar) . t))) -tuple2Class E) * ((abs (ar ((S -firstChar) . t))) -placesOf (E -class)))) . (tm * (SubTerms t)) by RELAT_1:36 .= (ggg * (((abs (ar ((S -firstChar) . t))) -placesOf E) -class)) . (tm * (SubTerms t)) by Lm20 .= ((E -class) * gg) . (tm * (SubTerms t)) by Lm18 .= (E -class) . (gg . (tm * (SubTerms t))) by A6, FOMODEL0:16, FUNCT_1:13 .= (E -class) . ((((I,u) -TermEval) . (m + 1)) . t) by FOMODEL2:3 .= ((E -class) * tmm) . tt by A6, FUNCT_1:13 ; ::_thesis: verum end; hence S1[m + 1] by FUNCT_2:63; ::_thesis: verum end; for n being Nat holds S1[n] from NAT_1:sch_2(A1, A3); hence (((I quotient E),((E -class) . u)) -TermEval) . k = (E -class) * (((I,u) -TermEval) . k) ; ::_thesis: verum end; Lm25: 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) proof let U be non empty set ; ::_thesis: for S being Language for E being Equivalence_Relation of U for I being b1,U -interpreter-like b2 -respecting Function holds (I quotient E) -TermEval = (E -class) * (I -TermEval) let S be Language; ::_thesis: for E being Equivalence_Relation of U for I being S,U -interpreter-like b1 -respecting Function holds (I quotient E) -TermEval = (E -class) * (I -TermEval) let E be Equivalence_Relation of U; ::_thesis: for I being S,U -interpreter-like E -respecting Function holds (I quotient E) -TermEval = (E -class) * (I -TermEval) set u = the Element of U; let I be S,U -interpreter-like E -respecting Function; ::_thesis: (I quotient E) -TermEval = (E -class) * (I -TermEval) reconsider e = (E -class) . the Element of U as Element of Class E ; set F = S -firstChar ; set II = I quotient E; set te = (I, the Element of U) -TermEval ; set TE = ((I quotient E),e) -TermEval ; set O = OwnSymbolsOf S; set TT = AllTermsOf S; set tee = I -TermEval ; set TEE = (I quotient E) -TermEval ; set T = S -termsOfMaxDepth ; reconsider TF = S -termsOfMaxDepth as Function ; now__::_thesis:_for_tt_being_Element_of_AllTermsOf_S_holds_((I_quotient_E)_-TermEval)_._tt_=_((E_-class)_*_(I_-TermEval))_._tt let tt be Element of AllTermsOf S; ::_thesis: ((I quotient E) -TermEval) . tt = ((E -class) * (I -TermEval)) . tt consider mm being Element of NAT such that A1: tt in TF . mm by FOMODEL1:5; set v = I -TermEval tt; set V = (I quotient E) -TermEval tt; reconsider MM = mm + 1 as Element of NAT ; ((I, the Element of U) -TermEval) . MM is Element of Funcs ((AllTermsOf S),U) ; then A2: ( dom (((I, the Element of U) -TermEval) . MM) = AllTermsOf S & dom (I -TermEval) = AllTermsOf S ) by FUNCT_2:def_1; thus ((I quotient E) -TermEval) . tt = (I quotient E) -TermEval tt by FOMODEL2:def_10 .= ((((I quotient E),e) -TermEval) . (mm + 1)) . tt by A1, FOMODEL2:def_9 .= ((E -class) * (((I, the Element of U) -TermEval) . (mm + 1))) . tt by Lm24 .= (E -class) . ((((I, the Element of U) -TermEval) . (mm + 1)) . tt) by A2, FUNCT_1:13 .= (E -class) . (I -TermEval tt) by A1, FOMODEL2:def_9 .= (E -class) . ((I -TermEval) . tt) by FOMODEL2:def_10 .= ((E -class) * (I -TermEval)) . tt by A2, FUNCT_1:13 ; ::_thesis: verum end; hence (I quotient E) -TermEval = (E -class) * (I -TermEval) by FUNCT_2:63; ::_thesis: verum end; Lm26: 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 proof let U1 be non empty set ; ::_thesis: for S being Language for R being Equivalence_Relation of U1 for phi being 0wff string of S for i being b1,U1 -interpreter-like b2 -respecting Function st (S -firstChar) . phi <> TheEqSymbOf S holds (i quotient R) -AtomicEval phi = i -AtomicEval phi let S be Language; ::_thesis: for R being Equivalence_Relation of U1 for phi being 0wff string of S for i being S,U1 -interpreter-like b1 -respecting Function st (S -firstChar) . phi <> TheEqSymbOf S holds (i quotient R) -AtomicEval phi = i -AtomicEval phi let R be Equivalence_Relation of U1; ::_thesis: for phi being 0wff string of S for i being S,U1 -interpreter-like R -respecting Function st (S -firstChar) . phi <> TheEqSymbOf S holds (i quotient R) -AtomicEval phi = i -AtomicEval phi let phi be 0wff string of S; ::_thesis: for i being S,U1 -interpreter-like R -respecting Function st (S -firstChar) . phi <> TheEqSymbOf S holds (i quotient R) -AtomicEval phi = i -AtomicEval phi let i be S,U1 -interpreter-like R -respecting Function; ::_thesis: ( (S -firstChar) . phi <> TheEqSymbOf S implies (i quotient R) -AtomicEval phi = i -AtomicEval phi ) set TT = AllTermsOf S; set E = TheEqSymbOf S; set p = SubTerms phi; set F = S -firstChar ; set r = (S -firstChar) . phi; set n = abs (ar ((S -firstChar) . phi)); set U = Class R; set I = i quotient R; set UV = (i quotient R) -TermEval ; set N1 = (abs (ar ((S -firstChar) . phi))) -tuples_on U1; set V = (i quotient R) -AtomicEval phi; set uv = i -TermEval ; set v = i -AtomicEval phi; set f = ((i quotient R) ===) . ((S -firstChar) . phi); set G = (i quotient R) . ((S -firstChar) . phi); set g = i . ((S -firstChar) . phi); set d = (Class R) -deltaInterpreter ; A1: ( SubTerms phi in (abs (ar ((S -firstChar) . phi))) -tuples_on (AllTermsOf S) & dom ((abs (ar ((S -firstChar) . phi))) -placesOf ((R -class) * (i -TermEval))) = (abs (ar ((S -firstChar) . phi))) -tuples_on (AllTermsOf S) & dom ((abs (ar ((S -firstChar) . phi))) -placesOf (i -TermEval)) = (abs (ar ((S -firstChar) . phi))) -tuples_on (AllTermsOf S) ) by FOMODEL0:16, FUNCT_2:def_1; assume A2: (S -firstChar) . phi <> TheEqSymbOf S ; ::_thesis: (i quotient R) -AtomicEval phi = i -AtomicEval phi then A3: (i quotient R) -AtomicEval phi = ((i quotient R) . ((S -firstChar) . phi)) . (((i quotient R) -TermEval) * (SubTerms phi)) by FOMODEL2:14 .= ((i quotient R) . ((S -firstChar) . phi)) . (((R -class) * (i -TermEval)) * (SubTerms phi)) by Lm25 .= ((i quotient R) . ((S -firstChar) . phi)) . (((abs (ar ((S -firstChar) . phi))) -placesOf ((R -class) * (i -TermEval))) . (SubTerms phi)) by Lm19 .= (((i quotient R) . ((S -firstChar) . phi)) * ((abs (ar ((S -firstChar) . phi))) -placesOf ((R -class) * (i -TermEval)))) . (SubTerms phi) by A1, FUNCT_1:13 ; reconsider o = (S -firstChar) . phi as Element of OwnSymbolsOf S by A2, FOMODEL1:15; set gg = i . o; set GG = (i quotient R) . o; reconsider ggg = i . o as (abs (ar ((S -firstChar) . phi))) -placesOf R, id BOOLEAN -respecting Function of ((abs (ar ((S -firstChar) . phi))) -tuples_on U1),BOOLEAN by Def10, FOMODEL2:def_2; set F = ggg quotient (((abs (ar ((S -firstChar) . phi))) -placesOf R),(id BOOLEAN)); reconsider P = peeler BOOLEAN as Function ; reconsider nuisance1 = ggg quotient (((abs (ar ((S -firstChar) . phi))) -placesOf R),(id BOOLEAN)), nuisance2 = (abs (ar ((S -firstChar) . phi))) -tuple2Class R, nuisance3 = P as Relation ; reconsider RR = R -class as Relation of U1,(Class R) ; A4: (i quotient R) . o = (i . o) quotient R by Def18 .= (peeler BOOLEAN) * ((ggg quotient (((abs (ar ((S -firstChar) . phi))) -placesOf R),(id BOOLEAN))) * ((abs (ar ((S -firstChar) . phi))) -tuple2Class R)) by Def15 ; A5: ((abs (ar ((S -firstChar) . phi))) -tuple2Class R) * ((abs (ar ((S -firstChar) . phi))) -placesOf ((R -class) * (i -TermEval))) = (((abs (ar ((S -firstChar) . phi))) -placesOf R) -class) * ((abs (ar ((S -firstChar) . phi))) -placesOf (i -TermEval)) proof set x = (abs (ar ((S -firstChar) . phi))) -placesOf ((R -class) * (i -TermEval)); A6: ((abs (ar ((S -firstChar) . phi))) -tuple2Class R) * ((abs (ar ((S -firstChar) . phi))) -placesOf ((R -class) * (i -TermEval))) = (((abs (ar ((S -firstChar) . phi))) -placesOf (i -TermEval)) * ((abs (ar ((S -firstChar) . phi))) -placesOf RR)) * (((abs (ar ((S -firstChar) . phi))) -placesOf (RR ~)) * (((abs (ar ((S -firstChar) . phi))) -placesOf R) -class)) by Lm16 .= ((abs (ar ((S -firstChar) . phi))) -placesOf (i -TermEval)) * (((abs (ar ((S -firstChar) . phi))) -placesOf RR) * (((abs (ar ((S -firstChar) . phi))) -placesOf (RR ~)) * (((abs (ar ((S -firstChar) . phi))) -placesOf R) -class))) by RELAT_1:36 .= ((abs (ar ((S -firstChar) . phi))) -placesOf (i -TermEval)) * ((((abs (ar ((S -firstChar) . phi))) -placesOf RR) * ((abs (ar ((S -firstChar) . phi))) -placesOf (RR ~))) * (((abs (ar ((S -firstChar) . phi))) -placesOf R) -class)) by RELAT_1:36 .= ((abs (ar ((S -firstChar) . phi))) -placesOf (i -TermEval)) * ((((abs (ar ((S -firstChar) . phi))) -placesOf RR) * (((abs (ar ((S -firstChar) . phi))) -placesOf RR) ~)) * (((abs (ar ((S -firstChar) . phi))) -placesOf R) -class)) by Lm17 ; ((abs (ar ((S -firstChar) . phi))) -placesOf (i -TermEval)) * ((((abs (ar ((S -firstChar) . phi))) -placesOf RR) * (((abs (ar ((S -firstChar) . phi))) -placesOf RR) ~)) * (((abs (ar ((S -firstChar) . phi))) -placesOf R) -class)) = (((abs (ar ((S -firstChar) . phi))) -placesOf (i -TermEval)) * (((abs (ar ((S -firstChar) . phi))) -placesOf RR) * (((abs (ar ((S -firstChar) . phi))) -placesOf RR) ~))) * (((abs (ar ((S -firstChar) . phi))) -placesOf R) -class) by RELAT_1:36 .= ((((abs (ar ((S -firstChar) . phi))) -placesOf (i -TermEval)) * ((abs (ar ((S -firstChar) . phi))) -placesOf RR)) * (((abs (ar ((S -firstChar) . phi))) -placesOf RR) ~)) * (((abs (ar ((S -firstChar) . phi))) -placesOf R) -class) by RELAT_1:36 ; hence ((abs (ar ((S -firstChar) . phi))) -tuple2Class R) * ((abs (ar ((S -firstChar) . phi))) -placesOf ((R -class) * (i -TermEval))) = (((abs (ar ((S -firstChar) . phi))) -placesOf R) -class) * ((abs (ar ((S -firstChar) . phi))) -placesOf (i -TermEval)) by A6, FOMODEL0:27; ::_thesis: verum end; (P * ((ggg quotient (((abs (ar ((S -firstChar) . phi))) -placesOf R),(id BOOLEAN))) * ((abs (ar ((S -firstChar) . phi))) -tuple2Class R))) * ((abs (ar ((S -firstChar) . phi))) -placesOf ((R -class) * (i -TermEval))) = P * (((ggg quotient (((abs (ar ((S -firstChar) . phi))) -placesOf R),(id BOOLEAN))) * ((abs (ar ((S -firstChar) . phi))) -tuple2Class R)) * ((abs (ar ((S -firstChar) . phi))) -placesOf ((R -class) * (i -TermEval)))) by RELAT_1:36 .= P * ((ggg quotient (((abs (ar ((S -firstChar) . phi))) -placesOf R),(id BOOLEAN))) * ((((abs (ar ((S -firstChar) . phi))) -placesOf R) -class) * ((abs (ar ((S -firstChar) . phi))) -placesOf (i -TermEval)))) by A5, RELAT_1:36 ; then (i quotient R) -AtomicEval phi = (P * (((ggg quotient (((abs (ar ((S -firstChar) . phi))) -placesOf R),(id BOOLEAN))) * (((abs (ar ((S -firstChar) . phi))) -placesOf R) -class)) * ((abs (ar ((S -firstChar) . phi))) -placesOf (i -TermEval)))) . (SubTerms phi) by A3, A4, RELAT_1:36 .= ((P * ((ggg quotient (((abs (ar ((S -firstChar) . phi))) -placesOf R),(id BOOLEAN))) * (((abs (ar ((S -firstChar) . phi))) -placesOf R) -class))) * ((abs (ar ((S -firstChar) . phi))) -placesOf (i -TermEval))) . (SubTerms phi) by RELAT_1:36 .= (P * ((ggg quotient (((abs (ar ((S -firstChar) . phi))) -placesOf R),(id BOOLEAN))) * (((abs (ar ((S -firstChar) . phi))) -placesOf R) -class))) . (((abs (ar ((S -firstChar) . phi))) -placesOf (i -TermEval)) . (SubTerms phi)) by A1, FUNCT_1:13 .= (P * ((ggg quotient (((abs (ar ((S -firstChar) . phi))) -placesOf R),(id BOOLEAN))) * (((abs (ar ((S -firstChar) . phi))) -placesOf R) -class))) . ((i -TermEval) * (SubTerms phi)) by Lm19 .= (P * (((id BOOLEAN) -class) * ggg)) . ((i -TermEval) * (SubTerms phi)) by Lm18 .= ((P * ((id BOOLEAN) -class)) * ggg) . ((i -TermEval) * (SubTerms phi)) by RELAT_1:36 .= ((id BOOLEAN) * ggg) . ((i -TermEval) * (SubTerms phi)) by Lm23 .= ggg . ((i -TermEval) * (SubTerms phi)) by FUNCT_2:17 .= i -AtomicEval phi by FOMODEL2:14 ; hence (i quotient R) -AtomicEval phi = i -AtomicEval phi ; ::_thesis: verum end; Lm27: 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 proof let X be set ; ::_thesis: 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 let m be Nat; ::_thesis: 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 let S be Language; ::_thesis: 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 let tt be Element of AllTermsOf S; ::_thesis: for t being 0 -termal string of S holds (((((S,X) -freeInterpreter),tt) -TermEval) . (m + 1)) . t = t let t be 0 -termal string of S; ::_thesis: (((((S,X) -freeInterpreter),tt) -TermEval) . (m + 1)) . t = t set I = (S,X) -freeInterpreter ; set TT = AllTermsOf S; set F = S -firstChar ; set v = (S -firstChar) . t; set n = abs (ar ((S -firstChar) . t)); set C = S -multiCat ; set II = (((S,X) -freeInterpreter),tt) -TermEval ; set SS = AllSymbolsOf S; set ff = (((S -firstChar) . t) -compound) | ((abs (ar ((S -firstChar) . t))) -tuples_on (AllTermsOf S)); reconsider f = X -freeInterpreter ((S -firstChar) . t) as Function of ((abs (ar ((S -firstChar) . t))) -tuples_on (AllTermsOf S)),(AllTermsOf S) by FOMODEL2:def_2; A1: (((S -firstChar) . t) -compound) | ((abs (ar ((S -firstChar) . t))) -tuples_on (AllTermsOf S)) = f by Def3; reconsider E = {} as Element of (((AllSymbolsOf S) *) \ {{}}) * by FINSEQ_1:49; dom f = 0 -tuples_on (AllTermsOf S) by FUNCT_2:def_1; then dom f = {{}} by FOMODEL0:10; then A2: {} in dom ((((S -firstChar) . t) -compound) | ((abs (ar ((S -firstChar) . t))) -tuples_on (AllTermsOf S))) by A1, TARSKI:def_1; thus (((((S,X) -freeInterpreter),tt) -TermEval) . (m + 1)) . t = (((S,X) -freeInterpreter) . ((S -firstChar) . t)) . {} by FOMODEL2:3 .= f . {} by Def4 .= ((((S -firstChar) . t) -compound) | ((abs (ar ((S -firstChar) . t))) -tuples_on (AllTermsOf S))) . {} by Def3 .= (((S -firstChar) . t) -compound) . {} by A2, FUNCT_1:47 .= ((S -firstChar) . t) -compound E by Def2 .= <*((S -firstChar) . t)*> null {} .= t by FOMODEL2:1 ; ::_thesis: verum end; Lm28: 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) proof let X be set ; ::_thesis: 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) let m be Nat; ::_thesis: 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) let S be Language; ::_thesis: for tt being Element of AllTermsOf S holds (((((S,X) -freeInterpreter),tt) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = id ((S -termsOfMaxDepth) . m) let tt be Element of AllTermsOf S; ::_thesis: (((((S,X) -freeInterpreter),tt) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = id ((S -termsOfMaxDepth) . m) set I = (S,X) -freeInterpreter ; set TE = (((S,X) -freeInterpreter),tt) -TermEval ; set T = S -termsOfMaxDepth ; set F = S -firstChar ; set SS = AllSymbolsOf S; set TT = AllTermsOf S; defpred S1[ Nat] means (((((S,X) -freeInterpreter),tt) -TermEval) . ($1 + 1)) | ((S -termsOfMaxDepth) . $1) = id ((S -termsOfMaxDepth) . $1); A1: S1[ 0 ] proof reconsider Z = 0 , O = 1 as Element of NAT ; ((((S,X) -freeInterpreter),tt) -TermEval) . O is Element of Funcs ((AllTermsOf S),(AllTermsOf S)) ; then ( ((((S,X) -freeInterpreter),tt) -TermEval) . O is Function of (AllTermsOf S),(AllTermsOf S) & (S -termsOfMaxDepth) . Z c= AllTermsOf S ) by FOMODEL1:2; then reconsider f = (((((S,X) -freeInterpreter),tt) -TermEval) . 1) | ((S -termsOfMaxDepth) . 0) as Function of ((S -termsOfMaxDepth) . 0),(AllTermsOf S) by FUNCT_2:32; A2: dom f = (S -termsOfMaxDepth) . 0 by FUNCT_2:def_1; now__::_thesis:_for_x_being_set_st_x_in_(S_-termsOfMaxDepth)_._0_holds_ f_._x_=_x let x be set ; ::_thesis: ( x in (S -termsOfMaxDepth) . 0 implies f . x = x ) assume x in (S -termsOfMaxDepth) . 0 ; ::_thesis: f . x = x then reconsider xx = x as Element of (S -termsOfMaxDepth) . Z ; reconsider t = xx as 0 -termal string of S by FOMODEL1:def_33; thus f . x = (((((S,X) -freeInterpreter),tt) -TermEval) . (0 + 1)) . t by A2, FUNCT_1:47 .= x by Lm27 ; ::_thesis: verum end; hence S1[ 0 ] by A2, FUNCT_1:17; ::_thesis: verum end; A3: for n being Nat st S1[n] holds S1[n + 1] proof let n be Nat; ::_thesis: ( S1[n] implies S1[n + 1] ) assume A4: S1[n] ; ::_thesis: S1[n + 1] reconsider nn = n, NN = n + 1, NNN = (n + 1) + 1 as Element of NAT by ORDINAL1:def_12; ((((S,X) -freeInterpreter),tt) -TermEval) . NNN is Element of Funcs ((AllTermsOf S),(AllTermsOf S)) ; then ( ((((S,X) -freeInterpreter),tt) -TermEval) . NNN is Function of (AllTermsOf S),(AllTermsOf S) & (S -termsOfMaxDepth) . NN c= AllTermsOf S ) by FOMODEL1:2; then reconsider f = (((((S,X) -freeInterpreter),tt) -TermEval) . NNN) | ((S -termsOfMaxDepth) . NN) as Function of ((S -termsOfMaxDepth) . NN),(AllTermsOf S) by FUNCT_2:32; A5: dom f = (S -termsOfMaxDepth) . NN by FUNCT_2:def_1 .= dom (id ((S -termsOfMaxDepth) . NN)) ; now__::_thesis:_for_x_being_set_st_x_in_dom_f_holds_ f_._x_=_(id_((S_-termsOfMaxDepth)_._(n_+_1)))_._x let x be set ; ::_thesis: ( x in dom f implies f . x = (id ((S -termsOfMaxDepth) . (n + 1))) . x ) assume A6: x in dom f ; ::_thesis: f . x = (id ((S -termsOfMaxDepth) . (n + 1))) . x then reconsider tt = x as Element of (S -termsOfMaxDepth) . (nn + 1) ; reconsider t = tt as nn + 1 -termal string of S by FOMODEL1:def_33; set s = (S -firstChar) . t; set p = abs (ar ((S -firstChar) . t)); A7: dom (X -freeInterpreter ((S -firstChar) . t)) = (abs (ar ((S -firstChar) . t))) -tuples_on (AllTermsOf S) by FUNCT_2:def_1; reconsider subt = SubTerms t as (S -termsOfMaxDepth) . n -valued Function ; reconsider subtt = subt as Element of dom (X -freeInterpreter ((S -firstChar) . t)) by A7, FOMODEL0:16; A8: ( subtt in dom (X -freeInterpreter ((S -firstChar) . t)) & X -freeInterpreter ((S -firstChar) . t) = (((S -firstChar) . t) -compound) | ((abs (ar ((S -firstChar) . t))) -tuples_on (AllTermsOf S)) ) by Def3; SubTerms t in (AllTermsOf S) * ; then reconsider subttt = SubTerms t as Element of (((AllSymbolsOf S) *) \ {{}}) * ; reconsider temp = subt null ((S -termsOfMaxDepth) . n) as Function ; {((id ((S -termsOfMaxDepth) . (nn + 1))) . tt)} \ {tt} = {} ; then A9: tt = (id ((S -termsOfMaxDepth) . (nn + 1))) . tt by ZFMISC_1:15; thus f . x = (((((S,X) -freeInterpreter),tt) -TermEval) . NNN) . x by A6, FUNCT_1:47 .= (((S,X) -freeInterpreter) . ((S -firstChar) . t)) . ((((((S,X) -freeInterpreter),tt) -TermEval) . (n + 1)) * (((S -termsOfMaxDepth) . n) |` subt)) by FOMODEL2:3 .= (((S,X) -freeInterpreter) . ((S -firstChar) . t)) . ((((((S,X) -freeInterpreter),tt) -TermEval) . (n + 1)) * ((id ((S -termsOfMaxDepth) . n)) * subt)) by RELAT_1:92 .= (((S,X) -freeInterpreter) . ((S -firstChar) . t)) . (((((((S,X) -freeInterpreter),tt) -TermEval) . (n + 1)) * (id ((S -termsOfMaxDepth) . n))) * subt) by RELAT_1:36 .= (((S,X) -freeInterpreter) . ((S -firstChar) . t)) . (((((((S,X) -freeInterpreter),tt) -TermEval) . (n + 1)) | ((S -termsOfMaxDepth) . n)) * subt) by RELAT_1:65 .= (((S,X) -freeInterpreter) . ((S -firstChar) . t)) . (((S -termsOfMaxDepth) . n) |` subt) by A4, RELAT_1:92 .= (X -freeInterpreter ((S -firstChar) . t)) . subt by Def4 .= (((S -firstChar) . t) -compound) . subttt by A8, FUNCT_1:47 .= ((S -firstChar) . t) -compound subttt by Def2 .= (id ((S -termsOfMaxDepth) . (n + 1))) . x by A9, FOMODEL1:def_37 ; ::_thesis: verum end; hence S1[n + 1] by A5, FUNCT_1:2; ::_thesis: verum end; for n being Nat holds S1[n] from NAT_1:sch_2(A1, A3); hence (((((S,X) -freeInterpreter),tt) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = id ((S -termsOfMaxDepth) . m) ; ::_thesis: verum end; Lm29: for X being set for S being Language holds ((S,X) -freeInterpreter) -TermEval = id (AllTermsOf S) proof let X be set ; ::_thesis: for S being Language holds ((S,X) -freeInterpreter) -TermEval = id (AllTermsOf S) let S be Language; ::_thesis: ((S,X) -freeInterpreter) -TermEval = id (AllTermsOf S) set u = the Element of AllTermsOf S; set I = (S,X) -freeInterpreter ; set TE = (((S,X) -freeInterpreter), the Element of AllTermsOf S) -TermEval ; set T = S -termsOfMaxDepth ; set F = S -firstChar ; set SS = AllSymbolsOf S; set TT = AllTermsOf S; reconsider Tf = S -termsOfMaxDepth as Function ; reconsider LH = ((S,X) -freeInterpreter) -TermEval , RH = id (AllTermsOf S) as Function of (AllTermsOf S),(AllTermsOf S) ; now__::_thesis:_for_tt_being_Element_of_AllTermsOf_S_holds_LH_._tt_=_RH_._tt let tt be Element of AllTermsOf S; ::_thesis: LH . tt = RH . tt consider mm being Element of NAT such that A1: tt in Tf . mm by FOMODEL1:5; reconsider ttt = tt as Element of (S -termsOfMaxDepth) . mm by A1; reconsider M = mm + 1 as Element of NAT ; reconsider tttt = tt as Element of (S -termsOfMaxDepth) . mm by A1; set uv = ((S,X) -freeInterpreter) -TermEval tt; ((((S,X) -freeInterpreter), the Element of AllTermsOf S) -TermEval) . M is Element of Funcs ((AllTermsOf S),(AllTermsOf S)) ; then reconsider f = ((((S,X) -freeInterpreter), the Element of AllTermsOf S) -TermEval) . (mm + 1) as Function of (AllTermsOf S),(AllTermsOf S) ; ((f | ((S -termsOfMaxDepth) . mm)) . ttt) \+\ (f . ttt) = {} ; then A2: (f | ((S -termsOfMaxDepth) . mm)) . ttt = f . ttt by FOMODEL0:29; ( {((id ((S -termsOfMaxDepth) . mm)) . tttt)} \ {tttt} = {} & {((id (AllTermsOf S)) . tt)} \ {tt} = {} ) ; then A3: ( (id ((S -termsOfMaxDepth) . mm)) . tttt = tttt & (id (AllTermsOf S)) . tt = tt ) by ZFMISC_1:15; thus LH . tt = ((S,X) -freeInterpreter) -TermEval tt by FOMODEL2:def_10 .= f . tt by A1, FOMODEL2:def_9 .= RH . tt by A3, A2, Lm28 ; ::_thesis: verum end; hence ((S,X) -freeInterpreter) -TermEval = id (AllTermsOf S) by FUNCT_2:63; ::_thesis: verum end; Lm30: for U1, U2 being non empty set for R being Relation of U1,U2 holds 0 -placesOf R = id {{}} proof let U1, U2 be non empty set ; ::_thesis: for R being Relation of U1,U2 holds 0 -placesOf R = id {{}} let R be Relation of U1,U2; ::_thesis: 0 -placesOf R = id {{}} (0 -placesOf R) \+\ (id {{}}) = {} ; hence 0 -placesOf R = id {{}} by FOMODEL0:29; ::_thesis: verum end; theorem :: FOMODEL3:3 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) by Lm25; theorem :: FOMODEL3:4 for X being set for S being Language holds ((S,X) -freeInterpreter) -TermEval = id (AllTermsOf S) by Lm29; theorem :: FOMODEL3:5 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 by Lm26; Lm31: 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) proof let m be Nat; ::_thesis: 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) let S be Language; ::_thesis: for l1, l2 being literal Element of S holds (l1 SubstWith l2) | ((S -termsOfMaxDepth) . m) is Function of ((S -termsOfMaxDepth) . m),((S -termsOfMaxDepth) . m) let l1, l2 be literal Element of S; ::_thesis: (l1 SubstWith l2) | ((S -termsOfMaxDepth) . m) is Function of ((S -termsOfMaxDepth) . m),((S -termsOfMaxDepth) . m) set T = S -termsOfMaxDepth ; set F = S -firstChar ; set C = S -multiCat ; set SS = AllSymbolsOf S; set strings = ((AllSymbolsOf S) *) \ {{}}; set g = (AllSymbolsOf S) -concatenation ; set G = MultPlace ((AllSymbolsOf S) -concatenation); set e = l1 SubstWith l2; A1: for t being 0 -termal string of S holds (l1 SubstWith l2) . t in (S -termsOfMaxDepth) . 0 proof let t be 0 -termal string of S; ::_thesis: (l1 SubstWith l2) . t in (S -termsOfMaxDepth) . 0 set l = (S -firstChar) . t; A2: t = <*((S -firstChar) . t)*> by FOMODEL2:1; ( (S -firstChar) . t = l1 or (S -firstChar) . t <> l1 ) ; then ( (l1 SubstWith l2) . <*((S -firstChar) . t)*> = <*l2*> or (l1 SubstWith l2) . <*((S -firstChar) . t)*> = <*((S -firstChar) . t)*> ) by FOMODEL0:35; hence (l1 SubstWith l2) . t in (S -termsOfMaxDepth) . 0 by A2, FOMODEL1:def_33; ::_thesis: verum end; defpred S1[ Nat] means (l1 SubstWith l2) | ((S -termsOfMaxDepth) . $1) is Function of ((S -termsOfMaxDepth) . $1),((S -termsOfMaxDepth) . $1); A3: S1[ 0 ] proof reconsider z = 0 as Element of NAT ; reconsider T0 = (S -termsOfMaxDepth) . z as Subset of ((AllSymbolsOf S) *) by XBOOLE_1:1; set f = (l1 SubstWith l2) | T0; A4: dom ((l1 SubstWith l2) | T0) = T0 by PARTFUN1:def_2; now__::_thesis:_for_x_being_set_st_x_in_T0_holds_ ((l1_SubstWith_l2)_|_T0)_._x_in_T0 let x be set ; ::_thesis: ( x in T0 implies ((l1 SubstWith l2) | T0) . x in T0 ) assume A5: x in T0 ; ::_thesis: ((l1 SubstWith l2) | T0) . x in T0 reconsider t = x as 0 -termal string of S by A5, FOMODEL1:def_33; set l = (S -firstChar) . t; reconsider tt = t as Element of T0 by FOMODEL1:def_33; (((l1 SubstWith l2) | T0) . tt) \+\ ((l1 SubstWith l2) . tt) = {} ; then ((l1 SubstWith l2) | T0) . x = (l1 SubstWith l2) . x by FOMODEL0:29; then ((l1 SubstWith l2) | T0) . t in T0 by A1; hence ((l1 SubstWith l2) | T0) . x in T0 ; ::_thesis: verum end; hence S1[ 0 ] by A4, FUNCT_2:3; ::_thesis: verum end; A6: for m being Nat st S1[m] holds S1[m + 1] proof let m be Nat; ::_thesis: ( S1[m] implies S1[m + 1] ) reconsider mm = m, MM = m + 1 as Element of NAT by ORDINAL1:def_12; assume A7: S1[m] ; ::_thesis: S1[m + 1] reconsider Tm = (S -termsOfMaxDepth) . mm, TM = (S -termsOfMaxDepth) . MM as Subset of ((AllSymbolsOf S) *) by XBOOLE_1:1; reconsider f = (l1 SubstWith l2) | ((S -termsOfMaxDepth) . m) as Function of ((S -termsOfMaxDepth) . mm),((S -termsOfMaxDepth) . mm) by A7; set ff = (l1 SubstWith l2) | TM; A8: dom ((l1 SubstWith l2) | TM) = TM by PARTFUN1:def_2; now__::_thesis:_for_tt_being_set_st_tt_in_TM_holds_ ((l1_SubstWith_l2)_|_TM)_._tt_in_(S_-termsOfMaxDepth)_._(mm_+_1) let tt be set ; ::_thesis: ( tt in TM implies ((l1 SubstWith l2) | TM) . tt in (S -termsOfMaxDepth) . (mm + 1) ) assume tt in TM ; ::_thesis: ((l1 SubstWith l2) | TM) . tt in (S -termsOfMaxDepth) . (mm + 1) then reconsider ttt = tt as Element of TM ; reconsider t = ttt as mm + 1 -termal string of S by FOMODEL1:def_33, TARSKI:def_3; set ST = SubTerms t; dom f = (S -termsOfMaxDepth) . mm by FUNCT_2:def_1; then rng (SubTerms t) c= dom f by RELAT_1:def_19; then A9: (l1 SubstWith l2) * (SubTerms t) = f * (SubTerms t) by RELAT_1:165; reconsider s = (S -firstChar) . t as termal Element of S ; set l = abs (ar s); f * (SubTerms t) is FinSequence of (S -termsOfMaxDepth) . mm by FOMODEL0:26; then reconsider newtt = f * (SubTerms t) as abs (ar s) -element Element of ((S -termsOfMaxDepth) . mm) * by FINSEQ_1:def_11; (((l1 SubstWith l2) | TM) . ttt) \+\ ((l1 SubstWith l2) . ttt) = {} ; then A10: ((l1 SubstWith l2) | TM) . tt = (l1 SubstWith l2) . tt by FOMODEL0:29; ( ( s = l1 implies ( (l1 SubstWith l2) . <*s*> = <*l2*> & ar s = ar l2 ) ) & ( s <> l1 implies ( (l1 SubstWith l2) . <*s*> = <*s*> & ar s = ar s ) ) ) by FOMODEL0:35; then consider ss being termal Element of S such that A11: ( (l1 SubstWith l2) . <*s*> = <*ss*> & ar s = ar ss ) ; reconsider newttt = newtt as abs (ar ss) -element Element of ((S -termsOfMaxDepth) . mm) * by A11; (l1 SubstWith l2) . t = (l1 SubstWith l2) . (<*((S -firstChar) . t)*> ^ ((S -multiCat) . (SubTerms t))) by FOMODEL1:def_37 .= ((l1 SubstWith l2) . <*s*>) ^ ((l1 SubstWith l2) . ((S -multiCat) . (SubTerms t))) by FOMODEL0:36 .= ss -compound newttt by A9, A11, FOMODEL0:37 ; hence ((l1 SubstWith l2) | TM) . tt in (S -termsOfMaxDepth) . (mm + 1) by A10, FOMODEL1:def_33; ::_thesis: verum end; hence S1[m + 1] by A8, FUNCT_2:3; ::_thesis: verum end; for n being Nat holds S1[n] from NAT_1:sch_2(A3, A6); hence (l1 SubstWith l2) | ((S -termsOfMaxDepth) . m) is Function of ((S -termsOfMaxDepth) . m),((S -termsOfMaxDepth) . m) ; ::_thesis: verum end; definition let S be Language; let x be set ; let s be Element of S; let w be string of S; :: original: -SymbolSubstIn redefine func(x,s) -SymbolSubstIn w -> string of S; coherence (x,s) -SymbolSubstIn w is string of S proof (x,s) -SymbolSubstIn (w null w) is (len w) + 0 -element ; hence (x,s) -SymbolSubstIn w is string of S by FOMODEL0:30; ::_thesis: verum end; end; registration let S be Language; let l1, l2 be literal Element of S; let m be Nat; let t be m -termal string of S; cluster(l1,l2) -SymbolSubstIn t -> m -termal for string of S; coherence for b1 being string of S st b1 = (l1,l2) -SymbolSubstIn t holds b1 is m -termal proof set e = l1 SubstWith l2; set T = S -termsOfMaxDepth ; set SS = AllSymbolsOf S; set IT = (l1,l2) -SymbolSubstIn t; reconsider mm = m as Element of NAT by ORDINAL1:def_12; reconsider f = (l1 SubstWith l2) | ((S -termsOfMaxDepth) . m) as Function of ((S -termsOfMaxDepth) . m),((S -termsOfMaxDepth) . m) by Lm31; reconsider tt = t as Element of (S -termsOfMaxDepth) . m by FOMODEL1:def_33; (f . tt) \+\ ((l1 SubstWith l2) . tt) = {} ; then f . tt = (l1 SubstWith l2) . tt by FOMODEL0:29; then (l1 SubstWith l2) . t in (S -termsOfMaxDepth) . mm ; then (l1,l2) -SymbolSubstIn t in (S -termsOfMaxDepth) . mm by FOMODEL0:def_23; hence for b1 being string of S st b1 = (l1,l2) -SymbolSubstIn t holds b1 is m -termal by FOMODEL1:def_33; ::_thesis: verum end; end; registration let S be Language; let t be termal string of S; let l1, l2 be literal Element of S; cluster(l1,l2) -SymbolSubstIn t -> termal for string of S; coherence for b1 being string of S st b1 = (l1,l2) -SymbolSubstIn t holds b1 is termal proof set IT = (l1,l2) -SymbolSubstIn t; set TT = AllTermsOf S; set T = S -termsOfMaxDepth ; reconsider TF = S -termsOfMaxDepth as Function ; t in AllTermsOf S by FOMODEL1:def_32; then consider mm being Element of NAT such that A1: t in TF . mm by FOMODEL1:5; reconsider tm = t as mm -termal string of S by A1, FOMODEL1:def_33; (l1,l2) -SymbolSubstIn tm is mm -termal ; hence for b1 being string of S st b1 = (l1,l2) -SymbolSubstIn t holds b1 is termal ; ::_thesis: verum end; end; Lm32: 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) proof let S be Language; ::_thesis: for l1, l2 being literal Element of S holds (l1 SubstWith l2) | (AllTermsOf S) is Function of (AllTermsOf S),(AllTermsOf S) let l1, l2 be literal Element of S; ::_thesis: (l1 SubstWith l2) | (AllTermsOf S) is Function of (AllTermsOf S),(AllTermsOf S) set e = l1 SubstWith l2; set SS = AllSymbolsOf S; set TT = AllTermsOf S; (AllTermsOf S) /\ (((AllSymbolsOf S) *) \ {{}}) = (AllTermsOf S) null (((AllSymbolsOf S) *) \ {{}}) .= AllTermsOf S ; then reconsider TTT = AllTermsOf S as non empty Subset of ((AllSymbolsOf S) *) ; set f = (l1 SubstWith l2) | TTT; A1: dom ((l1 SubstWith l2) | TTT) = TTT by PARTFUN1:def_2; now__::_thesis:_for_x_being_set_st_x_in_TTT_holds_ ((l1_SubstWith_l2)_|_TTT)_._x_in_TTT let x be set ; ::_thesis: ( x in TTT implies ((l1 SubstWith l2) | TTT) . x in TTT ) assume A2: x in TTT ; ::_thesis: ((l1 SubstWith l2) | TTT) . x in TTT then reconsider t = x as termal string of S ; reconsider xx = x as Element of TTT by A2; (((l1 SubstWith l2) | TTT) . xx) \+\ ((l1 SubstWith l2) . xx) = {} ; then ((l1 SubstWith l2) | TTT) . xx = (l1 SubstWith l2) . xx by FOMODEL0:29 .= (l1,l2) -SymbolSubstIn t by FOMODEL0:def_23 ; hence ((l1 SubstWith l2) | TTT) . x in TTT by FOMODEL1:def_32; ::_thesis: verum end; hence (l1 SubstWith l2) | (AllTermsOf S) is Function of (AllTermsOf S),(AllTermsOf S) by A1, FUNCT_2:3; ::_thesis: verum end; registration let S be Language; let l1, l2 be literal Element of S; let phi be 0wff string of S; cluster(l1,l2) -SymbolSubstIn phi -> 0wff for string of S; coherence for b1 being string of S st b1 = (l1,l2) -SymbolSubstIn phi holds b1 is 0wff proof let s be string of S; ::_thesis: ( s = (l1,l2) -SymbolSubstIn phi implies s is 0wff ) assume A1: s = (l1,l2) -SymbolSubstIn phi ; ::_thesis: s is 0wff set psi = (l1,l2) -SymbolSubstIn phi; set e = l1 SubstWith l2; set SS = AllSymbolsOf S; set TT = AllTermsOf S; set C = S -multiCat ; (AllTermsOf S) /\ (((AllSymbolsOf S) *) \ {{}}) = (AllTermsOf S) null (((AllSymbolsOf S) *) \ {{}}) .= AllTermsOf S ; then reconsider TTT = AllTermsOf S as non empty Subset of ((AllSymbolsOf S) *) ; reconsider f = (l1 SubstWith l2) | (AllTermsOf S) as Function of (AllTermsOf S),(AllTermsOf S) by Lm32; consider r being relational Element of S, V being abs (ar r) -element Element of (AllTermsOf S) * such that A2: phi = <*r*> ^ ((S -multiCat) . V) by FOMODEL1:def_35; set m = abs (ar r); reconsider FV = V as abs (ar r) -element FinSequence of AllTermsOf S by FOMODEL0:26; reconsider newstrings = f * FV as abs (ar r) -element Element of (AllTermsOf S) * by FINSEQ_1:def_11; V in TTT * ; then reconsider VV = V as Element of ((AllSymbolsOf S) *) * ; A3: ( rng V c= AllTermsOf S & dom f = AllTermsOf S ) by FUNCT_2:def_1, RELAT_1:def_19; (l1,l2) -SymbolSubstIn phi = (l1 SubstWith l2) . phi by FOMODEL0:def_23 .= ((l1 SubstWith l2) . <*r*>) ^ ((l1 SubstWith l2) . ((S -multiCat) . VV)) by A2, FOMODEL0:36 .= <*r*> ^ ((l1 SubstWith l2) . ((S -multiCat) . VV)) by FOMODEL0:35 .= <*r*> ^ ((S -multiCat) . ((l1 SubstWith l2) * VV)) by FOMODEL0:37 .= <*r*> ^ ((S -multiCat) . newstrings) by A3, RELAT_1:165 ; hence s is 0wff by A1, FOMODEL1:def_35; ::_thesis: verum end; end; registration let S be Language; let m0 be zero number ; let phi be m0 -wff string of S; cluster Depth phi -> zero for number ; coherence for b1 being number st b1 = Depth phi holds b1 is empty by FOMODEL2:def_31; end; Lm33: 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 ) proof let S be Language; ::_thesis: 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 ) let l1, l2 be literal Element of S; ::_thesis: for psi1 being wff string of S ex psi2 being wff string of S st ( Depth psi1 = Depth psi2 & (l1 SubstWith l2) . psi1 = psi2 ) let psi1 be wff string of S; ::_thesis: ex psi2 being wff string of S st ( Depth psi1 = Depth psi2 & (l1 SubstWith l2) . psi1 = psi2 ) set e = l1 SubstWith l2; set N = TheNorSymbOf S; set L = LettersOf S; defpred S1[ wff string of S] means ex psi being wff string of S st ( Depth psi = Depth $1 & (l1 SubstWith l2) . $1 = psi ); defpred S2[ Nat] means for phi being wff string of S st Depth phi <= $1 holds S1[phi]; A1: S2[ 0 ] proof thus for phi being wff string of S st Depth phi <= 0 holds S1[phi] ::_thesis: verum proof let phi be wff string of S; ::_thesis: ( Depth phi <= 0 implies S1[phi] ) set D = Depth phi; assume Depth phi <= 0 ; ::_thesis: S1[phi] then Depth phi = 0 ; then reconsider p0 = phi as 0 -wff string of S by FOMODEL2:def_31; reconsider psi = (l1,l2) -SymbolSubstIn p0 as 0wff string of S ; take psi ; ::_thesis: ( Depth psi = Depth phi & (l1 SubstWith l2) . phi = psi ) thus Depth psi = Depth phi ; ::_thesis: (l1 SubstWith l2) . phi = psi thus (l1 SubstWith l2) . phi = psi by FOMODEL0:def_23; ::_thesis: verum end; end; A2: for n being Nat st S2[n] holds S2[n + 1] proof let n be Nat; ::_thesis: ( S2[n] implies S2[n + 1] ) set Fn = S -formulasOfMaxDepth n; assume A3: S2[n] ; ::_thesis: S2[n + 1] thus for phi being wff string of S st Depth phi <= n + 1 holds S1[phi] ::_thesis: verum proof let phi be wff string of S; ::_thesis: ( Depth phi <= n + 1 implies S1[phi] ) set D = Depth phi; assume A4: Depth phi <= n + 1 ; ::_thesis: S1[phi] percases ( phi is 0wff or phi is exal or ( not phi is exal & not phi is 0wff ) ) ; suppose phi is 0wff ; ::_thesis: S1[phi] then reconsider p0 = phi as 0wff string of S ; reconsider psi = (l1,l2) -SymbolSubstIn p0 as 0wff string of S ; take psi ; ::_thesis: ( Depth psi = Depth phi & (l1 SubstWith l2) . phi = psi ) thus Depth psi = Depth phi ; ::_thesis: (l1 SubstWith l2) . phi = psi thus (l1 SubstWith l2) . phi = psi by FOMODEL0:def_23; ::_thesis: verum end; supposeA5: phi is exal ; ::_thesis: S1[phi] then consider m being Nat such that A6: Depth phi = m + 1 by NAT_1:6; phi in m -ExFormulasOf S by A6, A5, FOMODEL2:18; then consider v being Element of LettersOf S, phi1 being Element of S -formulasOfMaxDepth m such that A7: phi = <*v*> ^ phi1 ; reconsider l = v as literal Element of S ; reconsider phi11 = phi1 as m -wff string of S by FOMODEL2:def_24; set m1 = Depth phi11; (Depth phi11) + 1 <= n + 1 by A4, A7, FOMODEL2:17; then Depth phi11 <= n by XREAL_1:6; then consider psi1 being wff string of S such that A8: ( Depth psi1 = Depth phi11 & (l1 SubstWith l2) . phi11 = psi1 ) by A3; ( l = l1 or l <> l1 ) ; then ( (l1 SubstWith l2) . <*l*> = <*l2*> or (l1 SubstWith l2) . <*l*> = <*l*> ) by FOMODEL0:35; then consider s being literal Element of S such that A9: (l1 SubstWith l2) . <*l*> = <*s*> ; take psi = <*s*> ^ psi1; ::_thesis: ( Depth psi = Depth phi & (l1 SubstWith l2) . phi = psi ) thus Depth psi = (Depth psi1) + 1 by FOMODEL2:17 .= Depth phi by A8, A7, FOMODEL2:17 ; ::_thesis: (l1 SubstWith l2) . phi = psi thus (l1 SubstWith l2) . phi = psi by A9, A8, A7, FOMODEL0:36; ::_thesis: verum end; supposeA10: ( not phi is exal & not phi is 0wff ) ; ::_thesis: S1[phi] then consider m being Nat such that A11: Depth phi = m + 1 by NAT_1:6; phi in m -NorFormulasOf S by A10, A11, FOMODEL2:18; then consider phi1, phi2 being Element of S -formulasOfMaxDepth m such that A12: phi = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 ; reconsider phi11 = phi1, phi22 = phi2 as m -wff string of S by FOMODEL2:def_24; set m1 = Depth phi11; set m2 = Depth phi22; set M = max ((Depth phi11),(Depth phi22)); A13: ( ((max ((Depth phi11),(Depth phi22))) - (Depth phi11)) + (Depth phi11) >= 0 + (Depth phi11) & ((max ((Depth phi11),(Depth phi22))) - (Depth phi22)) + (Depth phi22) >= 0 + (Depth phi22) ) by XREAL_1:6; n + 1 >= (max ((Depth phi11),(Depth phi22))) + 1 by A4, A12, FOMODEL2:17; then n >= max ((Depth phi11),(Depth phi22)) by XREAL_1:6; then ( S1[phi11] & S1[phi22] ) by A3, A13, XXREAL_0:2; then consider psi1, psi2 being wff string of S such that A14: ( Depth psi1 = Depth phi11 & (l1 SubstWith l2) . phi11 = psi1 & Depth psi2 = Depth phi22 & (l1 SubstWith l2) . phi22 = psi2 ) ; take psi = (<*(TheNorSymbOf S)*> ^ psi1) ^ psi2; ::_thesis: ( Depth psi = Depth phi & (l1 SubstWith l2) . phi = psi ) thus Depth phi = (max ((Depth phi11),(Depth phi22))) + 1 by A12, FOMODEL2:17 .= Depth psi by A14, FOMODEL2:17 ; ::_thesis: (l1 SubstWith l2) . phi = psi thus (l1 SubstWith l2) . phi = ((l1 SubstWith l2) . (<*(TheNorSymbOf S)*> ^ phi11)) ^ ((l1 SubstWith l2) . phi22) by A12, FOMODEL0:36 .= (((l1 SubstWith l2) . <*(TheNorSymbOf S)*>) ^ ((l1 SubstWith l2) . phi11)) ^ psi2 by A14, FOMODEL0:36 .= psi by A14, FOMODEL0:35 ; ::_thesis: verum end; end; end; end; for n being Nat holds S2[n] from NAT_1:sch_2(A1, A2); hence ex psi2 being wff string of S st ( Depth psi1 = Depth psi2 & (l1 SubstWith l2) . psi1 = psi2 ) ; ::_thesis: verum end; definition let S be Language; let m be Nat; let w be string of S; :: original: null redefine funcw null m -> string of S; coherence w null m is string of S ; end; registration let S be Language; let phi be wff string of S; let m be Nat; clusterphi null m -> (Depth phi) + m -wff for string of S; coherence for b1 being string of S st b1 = phi null m holds b1 is (Depth phi) + m -wff proof set D = Depth phi; phi is (Depth phi) + (0 * m) -wff by FOMODEL2:def_31; hence for b1 being string of S st b1 = phi null m holds b1 is (Depth phi) + m -wff ; ::_thesis: verum end; end; registration let S be Language; let m be Nat; let phi be m -wff string of S; clusterm - (Depth phi) -> ext-real non negative for ext-real number ; coherence for b1 being ext-real number st b1 = m - (Depth phi) holds not b1 is negative proof set D = Depth phi; Depth phi <= m by FOMODEL2:def_31; then (Depth phi) - (Depth phi) <= m - (Depth phi) by XREAL_1:9; hence for b1 being ext-real number st b1 = m - (Depth phi) holds not b1 is negative ; ::_thesis: verum end; end; registration let S be Language; let l1, l2 be literal Element of S; let m be Nat; let phi be m -wff string of S; cluster(l1,l2) -SymbolSubstIn phi -> m -wff for string of S; coherence for b1 being string of S st b1 = (l1,l2) -SymbolSubstIn phi holds b1 is m -wff proof set D = Depth phi; set e = l1 SubstWith l2; reconsider d = m - (Depth phi) as Nat ; consider psi being wff string of S such that A1: ( Depth psi = Depth phi & (l1 SubstWith l2) . phi = psi ) by Lm33; set DD = Depth psi; psi null d is (Depth psi) + d -wff ; hence for b1 being string of S st b1 = (l1,l2) -SymbolSubstIn phi holds b1 is m -wff by A1, FOMODEL0:def_23; ::_thesis: verum end; end; registration let S be Language; let l1, l2 be literal Element of S; let phi be wff string of S; cluster(l1,l2) -SymbolSubstIn phi -> wff for string of S; coherence for b1 being string of S st b1 = (l1,l2) -SymbolSubstIn phi holds b1 is wff proof set psi = (l1,l2) -SymbolSubstIn phi; consider m being Nat such that A1: phi is m -wff by FOMODEL2:def_25; thus for b1 being string of S st b1 = (l1,l2) -SymbolSubstIn phi holds b1 is wff by A1; ::_thesis: verum end; end; Lm34: 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) proof let S be Language; ::_thesis: for l1, l2 being literal Element of S for psi1 being wff string of S holds Depth psi1 = Depth ((l1,l2) -SymbolSubstIn psi1) let l1, l2 be literal Element of S; ::_thesis: for psi1 being wff string of S holds Depth psi1 = Depth ((l1,l2) -SymbolSubstIn psi1) let psi1 be wff string of S; ::_thesis: Depth psi1 = Depth ((l1,l2) -SymbolSubstIn psi1) set e = l1 SubstWith l2; set psi = (l1,l2) -SymbolSubstIn psi1; consider psi2 being wff string of S such that A1: ( Depth psi2 = Depth psi1 & psi2 = (l1 SubstWith l2) . psi1 ) by Lm33; thus Depth psi1 = Depth ((l1,l2) -SymbolSubstIn psi1) by A1, FOMODEL0:def_23; ::_thesis: verum end; registration let S be Language; let l1, l2 be literal Element of S; let phi be wff string of S; cluster(Depth ((l1,l2) -SymbolSubstIn phi)) \+\ (Depth phi) -> empty for set ; coherence for b1 being set st b1 = (Depth ((l1,l2) -SymbolSubstIn phi)) \+\ (Depth phi) holds b1 is empty proof Depth ((l1,l2) -SymbolSubstIn phi) = Depth phi by Lm34; hence for b1 being set st b1 = (Depth ((l1,l2) -SymbolSubstIn phi)) \+\ (Depth phi) holds b1 is empty ; ::_thesis: verum end; end; theorem :: FOMODEL3:6 for X being set for S being Language for a being ofAtomicFormula Element of S for T being abs (ar b3) -element Element of (AllTermsOf S) * holds ( ( not a is relational implies (X -freeInterpreter a) . T = a -compound T ) & ( a is relational implies (X -freeInterpreter a) . T = (chi (X,(AtomicFormulasOf S))) . (a -compound T) ) ) proof let X be set ; ::_thesis: for S being Language for a being ofAtomicFormula Element of S for T being abs (ar b2) -element Element of (AllTermsOf S) * holds ( ( not a is relational implies (X -freeInterpreter a) . T = a -compound T ) & ( a is relational implies (X -freeInterpreter a) . T = (chi (X,(AtomicFormulasOf S))) . (a -compound T) ) ) let S be Language; ::_thesis: for a being ofAtomicFormula Element of S for T being abs (ar b1) -element Element of (AllTermsOf S) * holds ( ( not a is relational implies (X -freeInterpreter a) . T = a -compound T ) & ( a is relational implies (X -freeInterpreter a) . T = (chi (X,(AtomicFormulasOf S))) . (a -compound T) ) ) let a be ofAtomicFormula Element of S; ::_thesis: for T being abs (ar a) -element Element of (AllTermsOf S) * holds ( ( not a is relational implies (X -freeInterpreter a) . T = a -compound T ) & ( a is relational implies (X -freeInterpreter a) . T = (chi (X,(AtomicFormulasOf S))) . (a -compound T) ) ) set AT = AllTermsOf S; set SS = AllSymbolsOf S; set I = X -freeInterpreter a; set f = a -compound ; set m = abs (ar a); set g = (a -compound) | ((abs (ar a)) -tuples_on (AllTermsOf S)); set AF = AtomicFormulasOf S; set ch = chi (X,(AtomicFormulasOf S)); let T be abs (ar a) -element Element of (AllTermsOf S) * ; ::_thesis: ( ( not a is relational implies (X -freeInterpreter a) . T = a -compound T ) & ( a is relational implies (X -freeInterpreter a) . T = (chi (X,(AtomicFormulasOf S))) . (a -compound T) ) ) A1: dom (a -compound) = (((AllSymbolsOf S) *) \ {{}}) * by FUNCT_2:def_1; T in (abs (ar a)) -tuples_on (AllTermsOf S) by FOMODEL0:16; then A2: ( ((a -compound) | ((abs (ar a)) -tuples_on (AllTermsOf S))) . T = (a -compound) . T & a -compound T = (a -compound) . T ) by Def2, FUNCT_1:49; thus ( not a is relational implies (X -freeInterpreter a) . T = a -compound T ) by A2, Def3; ::_thesis: ( a is relational implies (X -freeInterpreter a) . T = (chi (X,(AtomicFormulasOf S))) . (a -compound T) ) assume a is relational ; ::_thesis: (X -freeInterpreter a) . T = (chi (X,(AtomicFormulasOf S))) . (a -compound T) then X -freeInterpreter a = (chi (X,(AtomicFormulasOf S))) * ((a -compound) | ((abs (ar a)) -tuples_on (AllTermsOf S))) by Def3 .= ((chi (X,(AtomicFormulasOf S))) * (a -compound)) | ((abs (ar a)) -tuples_on (AllTermsOf S)) by RELAT_1:83 ; then (X -freeInterpreter a) . T = ((chi (X,(AtomicFormulasOf S))) * (a -compound)) . T by FOMODEL0:16, FUNCT_1:49 .= (chi (X,(AtomicFormulasOf S))) . ((a -compound) . T) by A1, FUNCT_1:13 ; hence (X -freeInterpreter a) . T = (chi (X,(AtomicFormulasOf S))) . (a -compound T) by Def2; ::_thesis: verum end; registration let S be Language; cluster non empty Relation-like NAT -defined Function-like finite FinSequence-like FinSubsequence-like finite-support termal for Element of ((AllSymbolsOf S) *) \ {{}}; existence ex b1 being string of S st b1 is termal proof take w = <* the literal Element of S*>; ::_thesis: w is termal thus w is termal ; ::_thesis: verum end; cluster non empty Relation-like NAT -defined Function-like finite FinSequence-like FinSubsequence-like finite-support 0wff for Element of ((AllSymbolsOf S) *) \ {{}}; existence ex b1 being string of S st b1 is 0wff proof take the Element of AtomicFormulasOf S ; ::_thesis: the Element of AtomicFormulasOf S is 0wff thus the Element of AtomicFormulasOf S is 0wff ; ::_thesis: verum end; end; theorem Th7: :: FOMODEL3:7 for X being set for U being non empty set for n being Nat for S being Language for l being literal Element of S for I being b4,b2 -interpreter-like Function for tt0 being Element of AllTermsOf S holds ((I -TermEval) * (((((l,tt0) ReassignIn ((S,X) -freeInterpreter)),tt0) -TermEval) . n)) | ((S -termsOfMaxDepth) . n) = (((((l,((I -TermEval) . tt0)) ReassignIn I),((I -TermEval) . tt0)) -TermEval) . n) | ((S -termsOfMaxDepth) . n) proof let X be set ; ::_thesis: for U being non empty set for n being Nat for S being Language for l being literal Element of S for I being b3,b1 -interpreter-like Function for tt0 being Element of AllTermsOf S holds ((I -TermEval) * (((((l,tt0) ReassignIn ((S,X) -freeInterpreter)),tt0) -TermEval) . n)) | ((S -termsOfMaxDepth) . n) = (((((l,((I -TermEval) . tt0)) ReassignIn I),((I -TermEval) . tt0)) -TermEval) . n) | ((S -termsOfMaxDepth) . n) let U be non empty set ; ::_thesis: for n being Nat for S being Language for l being literal Element of S for I being b2,U -interpreter-like Function for tt0 being Element of AllTermsOf S holds ((I -TermEval) * (((((l,tt0) ReassignIn ((S,X) -freeInterpreter)),tt0) -TermEval) . n)) | ((S -termsOfMaxDepth) . n) = (((((l,((I -TermEval) . tt0)) ReassignIn I),((I -TermEval) . tt0)) -TermEval) . n) | ((S -termsOfMaxDepth) . n) let n be Nat; ::_thesis: for S being Language for l being literal Element of S for I being b1,U -interpreter-like Function for tt0 being Element of AllTermsOf S holds ((I -TermEval) * (((((l,tt0) ReassignIn ((S,X) -freeInterpreter)),tt0) -TermEval) . n)) | ((S -termsOfMaxDepth) . n) = (((((l,((I -TermEval) . tt0)) ReassignIn I),((I -TermEval) . tt0)) -TermEval) . n) | ((S -termsOfMaxDepth) . n) let S be Language; ::_thesis: for l being literal Element of S for I being S,U -interpreter-like Function for tt0 being Element of AllTermsOf S holds ((I -TermEval) * (((((l,tt0) ReassignIn ((S,X) -freeInterpreter)),tt0) -TermEval) . n)) | ((S -termsOfMaxDepth) . n) = (((((l,((I -TermEval) . tt0)) ReassignIn I),((I -TermEval) . tt0)) -TermEval) . n) | ((S -termsOfMaxDepth) . n) let l be literal Element of S; ::_thesis: for I being S,U -interpreter-like Function for tt0 being Element of AllTermsOf S holds ((I -TermEval) * (((((l,tt0) ReassignIn ((S,X) -freeInterpreter)),tt0) -TermEval) . n)) | ((S -termsOfMaxDepth) . n) = (((((l,((I -TermEval) . tt0)) ReassignIn I),((I -TermEval) . tt0)) -TermEval) . n) | ((S -termsOfMaxDepth) . n) let I be S,U -interpreter-like Function; ::_thesis: for tt0 being Element of AllTermsOf S holds ((I -TermEval) * (((((l,tt0) ReassignIn ((S,X) -freeInterpreter)),tt0) -TermEval) . n)) | ((S -termsOfMaxDepth) . n) = (((((l,((I -TermEval) . tt0)) ReassignIn I),((I -TermEval) . tt0)) -TermEval) . n) | ((S -termsOfMaxDepth) . n) let tt0 be Element of AllTermsOf S; ::_thesis: ((I -TermEval) * (((((l,tt0) ReassignIn ((S,X) -freeInterpreter)),tt0) -TermEval) . n)) | ((S -termsOfMaxDepth) . n) = (((((l,((I -TermEval) . tt0)) ReassignIn I),((I -TermEval) . tt0)) -TermEval) . n) | ((S -termsOfMaxDepth) . n) set II = U -InterpretersOf S; reconsider u = (I -TermEval) . tt0 as Element of U ; set F = S -firstChar ; set FI = (S,X) -freeInterpreter ; set H = (l,tt0) ReassignIn ((S,X) -freeInterpreter); set TT = AllTermsOf S; set TI = (I,u) -TermEval ; set TF = (((S,X) -freeInterpreter),tt0) -TermEval ; set TH = (((l,tt0) ReassignIn ((S,X) -freeInterpreter)),tt0) -TermEval ; set TII = I -TermEval ; set J = (l,((I -TermEval) . tt0)) ReassignIn I; set TJ = (((l,((I -TermEval) . tt0)) ReassignIn I),u) -TermEval ; set C = S -multiCat ; set SS = AllSymbolsOf S; set T = S -termsOfMaxDepth ; reconsider t0 = tt0 as termal string of S ; set k = Depth t0; reconsider t00 = t0 as Depth t0 -termal string of S by FOMODEL1:def_40; A1: ( l in {l} & dom (l .--> ({} .--> tt0)) = {l} & dom (l .--> ({} .--> ((I -TermEval) . tt0))) = {l} ) by FUNCOP_1:13, TARSKI:def_1; then ( ((l,tt0) ReassignIn ((S,X) -freeInterpreter)) . l = (l .--> ({} .--> tt0)) . l & ((l,((I -TermEval) . tt0)) ReassignIn I) . l = (l .--> ({} .--> ((I -TermEval) . tt0))) . l ) by FUNCT_4:13; then A2: ( ((l,tt0) ReassignIn ((S,X) -freeInterpreter)) . l = {} .--> tt0 & ((l,((I -TermEval) . tt0)) ReassignIn I) . l = {} .--> ((I -TermEval) . tt0) ) by A1, FUNCOP_1:7; defpred S1[ Nat] means ((I -TermEval) * (((((l,tt0) ReassignIn ((S,X) -freeInterpreter)),tt0) -TermEval) . $1)) | ((S -termsOfMaxDepth) . $1) = (((((l,((I -TermEval) . tt0)) ReassignIn I),u) -TermEval) . $1) | ((S -termsOfMaxDepth) . $1); A3: S1[ 0 ] proof A4: ( dom ((AllTermsOf S) --> u) = AllTermsOf S & dom ((AllTermsOf S) --> tt0) = AllTermsOf S & dom (I -TermEval) = AllTermsOf S ) by FUNCT_2:def_1; ( ((I,u) -TermEval) . 0 = (AllTermsOf S) --> u & ((((l,tt0) ReassignIn ((S,X) -freeInterpreter)),tt0) -TermEval) . 0 = (AllTermsOf S) --> tt0 ) by FOMODEL2:def_8; then (I -TermEval) * (((((l,tt0) ReassignIn ((S,X) -freeInterpreter)),tt0) -TermEval) . 0) = (AllTermsOf S) --> ((I -TermEval) . tt0) by A4, FUNCOP_1:17 .= ((((l,((I -TermEval) . tt0)) ReassignIn I),u) -TermEval) . 0 by FOMODEL2:def_8 ; hence S1[ 0 ] ; ::_thesis: verum end; A5: for m being Nat st S1[m] holds S1[m + 1] proof let m be Nat; ::_thesis: ( S1[m] implies S1[m + 1] ) reconsider mm = m, MM = m + 1 as Element of NAT by ORDINAL1:def_12; assume A6: S1[m] ; ::_thesis: S1[m + 1] reconsider TM = (S -termsOfMaxDepth) . MM, Tm = (S -termsOfMaxDepth) . mm as Subset of (AllTermsOf S) by FOMODEL1:2; ( ((((l,((I -TermEval) . tt0)) ReassignIn I),u) -TermEval) . mm is Element of Funcs ((AllTermsOf S),U) & ((I,u) -TermEval) . MM is Element of Funcs ((AllTermsOf S),U) & ((((l,((I -TermEval) . tt0)) ReassignIn I),u) -TermEval) . MM is Element of Funcs ((AllTermsOf S),U) & ((I,u) -TermEval) . mm is Element of Funcs ((AllTermsOf S),U) ) ; then reconsider Jm = ((((l,((I -TermEval) . tt0)) ReassignIn I),u) -TermEval) . mm, JM = ((((l,((I -TermEval) . tt0)) ReassignIn I),u) -TermEval) . MM, IM = ((I,u) -TermEval) . MM, Imm = ((I,u) -TermEval) . mm as Function of (AllTermsOf S),U ; ( ((((l,tt0) ReassignIn ((S,X) -freeInterpreter)),tt0) -TermEval) . mm is Element of Funcs ((AllTermsOf S),(AllTermsOf S)) & ((((l,tt0) ReassignIn ((S,X) -freeInterpreter)),tt0) -TermEval) . MM is Element of Funcs ((AllTermsOf S),(AllTermsOf S)) ) ; then reconsider Hm = ((((l,tt0) ReassignIn ((S,X) -freeInterpreter)),tt0) -TermEval) . mm, HM = ((((l,tt0) ReassignIn ((S,X) -freeInterpreter)),tt0) -TermEval) . MM as Function of (AllTermsOf S),(AllTermsOf S) ; set LH = ((I -TermEval) * HM) | TM; set RH = JM | TM; A7: ( dom (((I -TermEval) * HM) | TM) = TM & dom (JM | TM) = TM ) by PARTFUN1:def_2; now__::_thesis:_for_x_being_set_st_x_in_dom_(((I_-TermEval)_*_HM)_|_TM)_holds_ (((I_-TermEval)_*_HM)_|_TM)_._x_=_(JM_|_TM)_._x let x be set ; ::_thesis: ( x in dom (((I -TermEval) * HM) | TM) implies (((I -TermEval) * HM) | TM) . b1 = (JM | TM) . b1 ) assume A8: x in dom (((I -TermEval) * HM) | TM) ; ::_thesis: (((I -TermEval) * HM) | TM) . b1 = (JM | TM) . b1 then x in dom ((I -TermEval) * HM) by RELAT_1:57; then reconsider tt = x as Element of AllTermsOf S ; reconsider t = x as mm + 1 -termal string of S by A7, A8, FOMODEL1:def_33; reconsider ttt = x as Element of TM by A8; set ST = SubTerms t; set o = (S -firstChar) . t; set n = abs (ar ((S -firstChar) . t)); ( (((IM * HM) | TM) . ttt) \+\ ((IM * HM) . ttt) = {} & ((JM | TM) . ttt) \+\ (JM . ttt) = {} & ((((I -TermEval) * HM) | TM) . ttt) \+\ (((I -TermEval) * HM) . ttt) = {} ) ; then A9: ( ((IM * HM) | TM) . x = (IM * HM) . x & (JM | TM) . x = JM . x & (((I -TermEval) * HM) | TM) . x = ((I -TermEval) * HM) . x ) by FOMODEL0:29; ( ((IM * HM) . tt) \+\ (IM . (HM . tt)) = {} & (((I -TermEval) * HM) . tt) \+\ ((I -TermEval) . (HM . tt)) = {} ) ; then A10: ( (IM * HM) . t = IM . (HM . t) & ((I -TermEval) * HM) . tt = (I -TermEval) . (HM . tt) ) by FOMODEL0:29; reconsider newterms = Hm * (SubTerms t) as abs (ar ((S -firstChar) . t)) -element FinSequence of AllTermsOf S by FOMODEL0:26; reconsider newtermss = newterms as Element of (abs (ar ((S -firstChar) . t))) -tuples_on (AllTermsOf S) by FOMODEL0:16; reconsider newtermsss = newterms as FinSequence of ((AllSymbolsOf S) *) \ {{}} by FOMODEL0:26; (((((S -firstChar) . t) -compound) | ((abs (ar ((S -firstChar) . t))) -tuples_on (AllTermsOf S))) . newtermss) \+\ ((((S -firstChar) . t) -compound) . newtermss) = {} ; then A11: ((((S -firstChar) . t) -compound) | ((abs (ar ((S -firstChar) . t))) -tuples_on (AllTermsOf S))) . newterms = (((S -firstChar) . t) -compound) . newterms by FOMODEL0:29; percases ( (S -firstChar) . t = l or (S -firstChar) . t <> l ) ; suppose (S -firstChar) . t = l ; ::_thesis: (((I -TermEval) * HM) | TM) . b1 = (JM | TM) . b1 then ( (S -firstChar) . t = l & t is 0 -termal ) by FOMODEL1:16; then ( ((I -TermEval) * HM) . t = (I -TermEval) . (({} .--> tt0) . {}) & JM . t = ({} .--> ((I -TermEval) . tt0)) . {} & {} in {{}} ) by A10, A2, FOMODEL2:3, TARSKI:def_1; then ( ((I -TermEval) * HM) . t = (I -TermEval) . tt0 & JM . t = (I -TermEval) . tt0 ) by FUNCOP_1:7; hence (((I -TermEval) * HM) | TM) . x = (JM | TM) . x by A9; ::_thesis: verum end; suppose (S -firstChar) . t <> l ; ::_thesis: (((I -TermEval) * HM) | TM) . b1 = (JM | TM) . b1 then A12: ( not (S -firstChar) . t in dom (l .--> ({} .--> tt0)) & not (S -firstChar) . t in dom (l .--> ({} .--> ((I -TermEval) . tt0))) ) by TARSKI:def_1; then ((S,X) -freeInterpreter) . ((S -firstChar) . t) = ((l,tt0) ReassignIn ((S,X) -freeInterpreter)) . ((S -firstChar) . t) by FUNCT_4:11; then A13: ((l,tt0) ReassignIn ((S,X) -freeInterpreter)) . ((S -firstChar) . t) = X -freeInterpreter ((S -firstChar) . t) by Def4 .= (((S -firstChar) . t) -compound) | ((abs (ar ((S -firstChar) . t))) -tuples_on (AllTermsOf S)) by Def3 ; reconsider newtermssss = newterms as abs (ar ((S -firstChar) . t)) -element Element of (AllTermsOf S) * by FINSEQ_1:def_11; A14: (((l,tt0) ReassignIn ((S,X) -freeInterpreter)) . ((S -firstChar) . t)) . newterms = ((S -firstChar) . t) -compound newtermssss by A11, Def2, A13; reconsider t1 = ((S -firstChar) . t) -compound newtermssss as termal string of S ; set p = Depth t1; reconsider pp = Depth t1 as Element of NAT by ORDINAL1:def_12; reconsider t111 = t1 as Depth t1 -termal string of S by FOMODEL1:def_40; reconsider t11 = t1 as Element of AllTermsOf S by FOMODEL1:def_32; ((I,u) -TermEval) . pp is Element of Funcs ((AllTermsOf S),U) ; then reconsider Ip = ((I,u) -TermEval) . pp as Function of (AllTermsOf S),U ; A15: (S -firstChar) . t1 = t1 . 1 by FOMODEL0:6 .= (S -firstChar) . t by FINSEQ_1:41 ; then A16: SubTerms t1 = newtermssss by FOMODEL1:def_37; A17: ( dom (Hm | Tm) = Tm & dom (Jm | Tm) = Tm & rng (SubTerms t) c= Tm ) by PARTFUN1:def_2, RELAT_1:def_19; ((I -TermEval) * HM) . t = (I -TermEval) . t1 by A14, A10, FOMODEL2:3 .= (I . ((S -firstChar) . t)) . ((I -TermEval) * (SubTerms t1)) by A15, FOMODEL2:21 .= (I . ((S -firstChar) . t)) . ((I -TermEval) * ((Hm | Tm) * (SubTerms t))) by A17, A16, RELAT_1:165 .= (I . ((S -firstChar) . t)) . (((I -TermEval) * (Hm | Tm)) * (SubTerms t)) by RELAT_1:36 .= (I . ((S -firstChar) . t)) . ((((I -TermEval) * Hm) | Tm) * (SubTerms t)) by RELAT_1:83 .= (I . ((S -firstChar) . t)) . (Jm * (SubTerms t)) by A6, A17, RELAT_1:165 .= (((l,((I -TermEval) . tt0)) ReassignIn I) . ((S -firstChar) . t)) . (Jm * (SubTerms t)) by A12, FUNCT_4:11 .= JM . t by FOMODEL2:3 ; hence (((I -TermEval) * HM) | TM) . x = (JM | TM) . x by A9; ::_thesis: verum end; end; end; hence S1[m + 1] by A7, FUNCT_1:2; ::_thesis: verum end; for m being Nat holds S1[m] from NAT_1:sch_2(A3, A5); hence ((I -TermEval) * (((((l,tt0) ReassignIn ((S,X) -freeInterpreter)),tt0) -TermEval) . n)) | ((S -termsOfMaxDepth) . n) = (((((l,((I -TermEval) . tt0)) ReassignIn I),((I -TermEval) . tt0)) -TermEval) . n) | ((S -termsOfMaxDepth) . n) ; ::_thesis: verum end; definition let S be Language; let l be literal Element of S; let tt be Element of AllTermsOf S; let phi0 be 0wff string of S; func(l,tt) AtomicSubst phi0 -> FinSequence equals :: FOMODEL3:def 19 <*((S -firstChar) . phi0)*> ^ ((S -multiCat) . ((((l,tt) ReassignIn ((S,{}) -freeInterpreter)) -TermEval) * (SubTerms phi0))); coherence <*((S -firstChar) . phi0)*> ^ ((S -multiCat) . ((((l,tt) ReassignIn ((S,{}) -freeInterpreter)) -TermEval) * (SubTerms phi0))) is FinSequence ; end; :: 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))); Lm35: 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 proof let S be Language; ::_thesis: 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 let l be literal Element of S; ::_thesis: for phi0 being 0wff string of S for tt being Element of AllTermsOf S holds (l,tt) AtomicSubst phi0 is 0wff string of S let phi0 be 0wff string of S; ::_thesis: for tt being Element of AllTermsOf S holds (l,tt) AtomicSubst phi0 is 0wff string of S let tt be Element of AllTermsOf S; ::_thesis: (l,tt) AtomicSubst phi0 is 0wff string of S set ST = SubTerms phi0; set FI = (S,{}) -freeInterpreter ; set I = (l,tt) ReassignIn ((S,{}) -freeInterpreter); set C = S -multiCat ; set F = S -firstChar ; set r = (S -firstChar) . phi0; set n = abs (ar ((S -firstChar) . phi0)); set TT = AllTermsOf S; set TE = ((l,tt) ReassignIn ((S,{}) -freeInterpreter)) -TermEval ; set SS = AllSymbolsOf S; reconsider STT = SubTerms phi0 as FinSequence of AllTermsOf S by FOMODEL0:26; reconsider newterms = (((l,tt) ReassignIn ((S,{}) -freeInterpreter)) -TermEval) * STT as FinSequence of AllTermsOf S ; A1: newterms is Element of (AllTermsOf S) * by FINSEQ_1:def_11; then reconsider newtermss = newterms as Element of ((AllSymbolsOf S) *) * by TARSKI:def_3; reconsider IT = <*((S -firstChar) . phi0)*> ^ ((S -multiCat) . newtermss) as string of S by FOMODEL0:30; IT is 0wff by A1, FOMODEL1:def_35; hence (l,tt) AtomicSubst phi0 is 0wff string of S ; ::_thesis: verum end; definition let S be Language; let l be literal Element of S; let tt be Element of AllTermsOf S; let phi0 be 0wff string of S; :: original: AtomicSubst redefine func(l,tt) AtomicSubst phi0 -> string of S; coherence (l,tt) AtomicSubst phi0 is string of S by Lm35; end; registration let S be Language; let l be literal Element of S; let tt be Element of AllTermsOf S; let phi0 be 0wff string of S; cluster(l,tt) AtomicSubst phi0 -> 0wff for string of S; coherence for b1 being string of S st b1 = (l,tt) AtomicSubst phi0 holds b1 is 0wff by Lm35; end; Lm36: 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) ) proof let S be Language; ::_thesis: 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) ) let l be literal Element of S; ::_thesis: 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) ) let phi0 be 0wff string of S; ::_thesis: 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) ) let tt be Element of AllTermsOf S; ::_thesis: ( (S -firstChar) . ((l,tt) AtomicSubst phi0) = (S -firstChar) . phi0 & SubTerms ((l,tt) AtomicSubst phi0) = (((l,tt) ReassignIn ((S,{}) -freeInterpreter)) -TermEval) * (SubTerms phi0) ) set psi0 = (l,tt) AtomicSubst phi0; set F = S -firstChar ; set C = S -multiCat ; set TT = AllTermsOf S; set FI = (S,{}) -freeInterpreter ; set I = (l,tt) ReassignIn ((S,{}) -freeInterpreter); set s1 = (S -firstChar) . phi0; set s2 = (S -firstChar) . ((l,tt) AtomicSubst phi0); set n1 = abs (ar ((S -firstChar) . phi0)); set n2 = abs (ar ((S -firstChar) . ((l,tt) AtomicSubst phi0))); thus A1: (S -firstChar) . ((l,tt) AtomicSubst phi0) = ((l,tt) AtomicSubst phi0) . 1 by FOMODEL0:6 .= (S -firstChar) . phi0 by FINSEQ_1:41 ; ::_thesis: SubTerms ((l,tt) AtomicSubst phi0) = (((l,tt) ReassignIn ((S,{}) -freeInterpreter)) -TermEval) * (SubTerms phi0) reconsider ST = SubTerms phi0 as abs (ar ((S -firstChar) . phi0)) -element FinSequence of AllTermsOf S by FOMODEL0:26; reconsider newST = (((l,tt) ReassignIn ((S,{}) -freeInterpreter)) -TermEval) * ST as abs (ar ((S -firstChar) . ((l,tt) AtomicSubst phi0))) -element FinSequence of AllTermsOf S by A1; newST is abs (ar ((S -firstChar) . ((l,tt) AtomicSubst phi0))) -element Element of (AllTermsOf S) * by FINSEQ_1:def_11; hence SubTerms ((l,tt) AtomicSubst phi0) = (((l,tt) ReassignIn ((S,{}) -freeInterpreter)) -TermEval) * (SubTerms phi0) by A1, FOMODEL1:def_38; ::_thesis: verum end; Lm37: 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 proof let X be set ; ::_thesis: for U being non empty set for S being Language for l being literal Element of S for I being b2,b1 -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 let U be non empty set ; ::_thesis: for S being Language for l being literal Element of S for I being b1,U -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 let S be Language; ::_thesis: for l being literal Element of S for I being S,U -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 let l be literal Element of S; ::_thesis: for I being S,U -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 let I be S,U -interpreter-like Function; ::_thesis: for tt being Element of AllTermsOf S holds (I -TermEval) * (((l,tt) ReassignIn ((S,X) -freeInterpreter)) -TermEval) = ((l,((I -TermEval) . tt)) ReassignIn I) -TermEval let tt be Element of AllTermsOf S; ::_thesis: (I -TermEval) * (((l,tt) ReassignIn ((S,X) -freeInterpreter)) -TermEval) = ((l,((I -TermEval) . tt)) ReassignIn I) -TermEval set TI = I -TermEval ; set u = (I -TermEval) . tt; set J = (l,((I -TermEval) . tt)) ReassignIn I; set TJ = ((l,((I -TermEval) . tt)) ReassignIn I) -TermEval ; set F = S -firstChar ; set C = S -multiCat ; set FI = (S,X) -freeInterpreter ; set FJ = (l,tt) ReassignIn ((S,X) -freeInterpreter); set TF = ((l,tt) ReassignIn ((S,X) -freeInterpreter)) -TermEval ; set TT = AllTermsOf S; set T = S -termsOfMaxDepth ; reconsider LH = (I -TermEval) * (((l,tt) ReassignIn ((S,X) -freeInterpreter)) -TermEval), RH = ((l,((I -TermEval) . tt)) ReassignIn I) -TermEval as Function of (AllTermsOf S),U ; now__::_thesis:_for_tt0_being_Element_of_AllTermsOf_S_holds_LH_._tt0_=_RH_._tt0 let tt0 be Element of AllTermsOf S; ::_thesis: LH . tt0 = RH . tt0 reconsider t = tt0 as termal string of S ; set n = Depth t; reconsider nn = Depth t, NN = (Depth t) + 1 as Element of NAT by ORDINAL1:def_12; reconsider tn = t as Depth t -termal string of S by FOMODEL1:def_40; tn is (Depth t) + (0 * 1) -termal ; then reconsider tN = tn as NN -termal string of S ; reconsider TN = (S -termsOfMaxDepth) . NN, Tn = (S -termsOfMaxDepth) . nn as Subset of (AllTermsOf S) by FOMODEL1:2; reconsider tnn = tn as Element of Tn by FOMODEL1:def_33; reconsider tNN = tN as Element of TN by FOMODEL1:def_33; ((((l,tt) ReassignIn ((S,X) -freeInterpreter)),tt) -TermEval) . NN is Element of Funcs ((AllTermsOf S),(AllTermsOf S)) ; then reconsider FJN = ((((l,tt) ReassignIn ((S,X) -freeInterpreter)),tt) -TermEval) . NN as Function of (AllTermsOf S),(AllTermsOf S) ; ((((l,((I -TermEval) . tt)) ReassignIn I),((I -TermEval) . tt)) -TermEval) . NN is Element of Funcs ((AllTermsOf S),U) ; then reconsider JN = ((((l,((I -TermEval) . tt)) ReassignIn I),((I -TermEval) . tt)) -TermEval) . NN as Function of (AllTermsOf S),U ; ( ((I -TermEval) . (FJN . tt0)) \+\ (((I -TermEval) * FJN) . tt0) = {} & ((((I -TermEval) * FJN) | TN) . tNN) \+\ (((I -TermEval) * FJN) . tNN) = {} & ((JN | TN) . tNN) \+\ (JN . tNN) = {} ) ; then A1: ( ((I -TermEval) * FJN) . tt0 = (I -TermEval) . (FJN . tt0) & (((I -TermEval) * FJN) | TN) . tt0 = ((I -TermEval) * FJN) . tt0 & (JN | TN) . tt0 = JN . tt0 ) by FOMODEL0:29; (LH . tt0) \+\ ((I -TermEval) . ((((l,tt) ReassignIn ((S,X) -freeInterpreter)) -TermEval) . tt0)) = {} ; then LH . tt0 = (I -TermEval) . ((((l,tt) ReassignIn ((S,X) -freeInterpreter)) -TermEval) . tt0) by FOMODEL0:29 .= (I -TermEval) . (((l,tt) ReassignIn ((S,X) -freeInterpreter)) -TermEval tt0) by FOMODEL2:def_10 .= (I -TermEval) . (FJN . tnn) by FOMODEL2:def_9 .= (((((l,((I -TermEval) . tt)) ReassignIn I),((I -TermEval) . tt)) -TermEval) . NN) . tnn by A1, Th7 .= ((l,((I -TermEval) . tt)) ReassignIn I) -TermEval tt0 by FOMODEL2:def_9 .= (((l,((I -TermEval) . tt)) ReassignIn I) -TermEval) . tt0 by FOMODEL2:def_10 ; hence LH . tt0 = RH . tt0 ; ::_thesis: verum end; hence (I -TermEval) * (((l,tt) ReassignIn ((S,X) -freeInterpreter)) -TermEval) = ((l,((I -TermEval) . tt)) ReassignIn I) -TermEval by FUNCT_2:63; ::_thesis: verum end; theorem Th8: :: FOMODEL3:8 for U being non empty set for S being Language for l being literal Element of S for phi0 being 0wff string of S for I being b2,b1 -interpreter-like Function for tt being Element of AllTermsOf S holds I -AtomicEval ((l,tt) AtomicSubst phi0) = ((l,((I -TermEval) . tt)) ReassignIn I) -AtomicEval phi0 proof let U be non empty set ; ::_thesis: for S being Language for l being literal Element of S for phi0 being 0wff string of S for I being b1,U -interpreter-like Function for tt being Element of AllTermsOf S holds I -AtomicEval ((l,tt) AtomicSubst phi0) = ((l,((I -TermEval) . tt)) ReassignIn I) -AtomicEval phi0 let S be Language; ::_thesis: for l being literal Element of S for phi0 being 0wff string of S for I being S,U -interpreter-like Function for tt being Element of AllTermsOf S holds I -AtomicEval ((l,tt) AtomicSubst phi0) = ((l,((I -TermEval) . tt)) ReassignIn I) -AtomicEval phi0 let l be literal Element of S; ::_thesis: for phi0 being 0wff string of S for I being S,U -interpreter-like Function for tt being Element of AllTermsOf S holds I -AtomicEval ((l,tt) AtomicSubst phi0) = ((l,((I -TermEval) . tt)) ReassignIn I) -AtomicEval phi0 let phi0 be 0wff string of S; ::_thesis: for I being S,U -interpreter-like Function for tt being Element of AllTermsOf S holds I -AtomicEval ((l,tt) AtomicSubst phi0) = ((l,((I -TermEval) . tt)) ReassignIn I) -AtomicEval phi0 let I be S,U -interpreter-like Function; ::_thesis: for tt being Element of AllTermsOf S holds I -AtomicEval ((l,tt) AtomicSubst phi0) = ((l,((I -TermEval) . tt)) ReassignIn I) -AtomicEval phi0 let tt be Element of AllTermsOf S; ::_thesis: I -AtomicEval ((l,tt) AtomicSubst phi0) = ((l,((I -TermEval) . tt)) ReassignIn I) -AtomicEval phi0 set psi0 = (l,tt) AtomicSubst phi0; set u = (I -TermEval) . tt; set J = (l,((I -TermEval) . tt)) ReassignIn I; set F = S -firstChar ; set C = S -multiCat ; set FI = (S,{}) -freeInterpreter ; set s1 = (S -firstChar) . phi0; set s2 = (S -firstChar) . ((l,tt) AtomicSubst phi0); set n1 = abs (ar ((S -firstChar) . phi0)); set n2 = abs (ar ((S -firstChar) . ((l,tt) AtomicSubst phi0))); set TI = I -TermEval ; set TJ = ((l,((I -TermEval) . tt)) ReassignIn I) -TermEval ; set E = TheEqSymbOf S; set FJ = (l,tt) ReassignIn ((S,{}) -freeInterpreter); set d = U -deltaInterpreter ; not (S -firstChar) . phi0 in dom (l .--> ({} .--> ((I -TermEval) . tt))) by TARSKI:def_1; then A1: ( (S -firstChar) . phi0 = (S -firstChar) . ((l,tt) AtomicSubst phi0) & ((l,((I -TermEval) . tt)) ReassignIn I) . ((S -firstChar) . phi0) = I . ((S -firstChar) . phi0) ) by Lm36, FUNCT_4:11; A2: (I -TermEval) * (SubTerms ((l,tt) AtomicSubst phi0)) = (I -TermEval) * ((((l,tt) ReassignIn ((S,{}) -freeInterpreter)) -TermEval) * (SubTerms phi0)) by Lm36 .= ((I -TermEval) * (((l,tt) ReassignIn ((S,{}) -freeInterpreter)) -TermEval)) * (SubTerms phi0) by RELAT_1:36 .= (((l,((I -TermEval) . tt)) ReassignIn I) -TermEval) * (SubTerms phi0) by Lm37 ; percases ( (S -firstChar) . ((l,tt) AtomicSubst phi0) <> TheEqSymbOf S or (S -firstChar) . ((l,tt) AtomicSubst phi0) = TheEqSymbOf S ) ; supposeA3: (S -firstChar) . ((l,tt) AtomicSubst phi0) <> TheEqSymbOf S ; ::_thesis: I -AtomicEval ((l,tt) AtomicSubst phi0) = ((l,((I -TermEval) . tt)) ReassignIn I) -AtomicEval phi0 then I -AtomicEval ((l,tt) AtomicSubst phi0) = (((l,((I -TermEval) . tt)) ReassignIn I) . ((S -firstChar) . phi0)) . ((((l,((I -TermEval) . tt)) ReassignIn I) -TermEval) * (SubTerms phi0)) by A1, A2, FOMODEL2:14 .= ((l,((I -TermEval) . tt)) ReassignIn I) -AtomicEval phi0 by A3, A1, FOMODEL2:14 ; hence I -AtomicEval ((l,tt) AtomicSubst phi0) = ((l,((I -TermEval) . tt)) ReassignIn I) -AtomicEval phi0 ; ::_thesis: verum end; supposeA4: (S -firstChar) . ((l,tt) AtomicSubst phi0) = TheEqSymbOf S ; ::_thesis: I -AtomicEval ((l,tt) AtomicSubst phi0) = ((l,((I -TermEval) . tt)) ReassignIn I) -AtomicEval phi0 then I -AtomicEval ((l,tt) AtomicSubst phi0) = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms ((l,tt) AtomicSubst phi0))) by FOMODEL2:14 .= ((l,((I -TermEval) . tt)) ReassignIn I) -AtomicEval phi0 by A4, A1, A2, FOMODEL2:14 ; hence I -AtomicEval ((l,tt) AtomicSubst phi0) = ((l,((I -TermEval) . tt)) ReassignIn I) -AtomicEval phi0 ; ::_thesis: verum end; end; end; registration let S be Language; let l1, l2 be literal Element of S; let m be Nat; cluster(l1 SubstWith l2) | ((S -termsOfMaxDepth) . m) -> (S -termsOfMaxDepth) . m -valued for Relation; coherence for b1 being Relation st b1 = (l1 SubstWith l2) | ((S -termsOfMaxDepth) . m) holds b1 is (S -termsOfMaxDepth) . m -valued proof set s = l1 SubstWith l2; set T = S -termsOfMaxDepth ; set SS = AllSymbolsOf S; reconsider Tm = (S -termsOfMaxDepth) . m as Subset of ((AllSymbolsOf S) *) by XBOOLE_1:1; set f = (l1 SubstWith l2) | Tm; A1: dom ((l1 SubstWith l2) | Tm) = Tm by PARTFUN1:def_2; now__::_thesis:_for_x_being_set_st_x_in_Tm_holds_ ((l1_SubstWith_l2)_|_Tm)_._x_in_(S_-termsOfMaxDepth)_._m let x be set ; ::_thesis: ( x in Tm implies ((l1 SubstWith l2) | Tm) . x in (S -termsOfMaxDepth) . m ) assume x in Tm ; ::_thesis: ((l1 SubstWith l2) | Tm) . x in (S -termsOfMaxDepth) . m then reconsider xx = x as Element of Tm ; reconsider t = xx as m -termal string of S by FOMODEL1:def_33, TARSKI:def_3; (((l1 SubstWith l2) | Tm) . xx) \+\ ((l1 SubstWith l2) . xx) = {} ; then ((l1 SubstWith l2) | Tm) . x = (l1 SubstWith l2) . t by FOMODEL0:29 .= (l1,l2) -SymbolSubstIn t by FOMODEL0:def_23 ; hence ((l1 SubstWith l2) | Tm) . x in (S -termsOfMaxDepth) . m by FOMODEL1:def_33; ::_thesis: verum end; hence for b1 being Relation st b1 = (l1 SubstWith l2) | ((S -termsOfMaxDepth) . m) holds b1 is (S -termsOfMaxDepth) . m -valued by A1, FUNCT_2:3; ::_thesis: verum end; end; registration let S be Language; let l1, l2 be literal Element of S; cluster(l1 SubstWith l2) | (AllTermsOf S) -> AllTermsOf S -valued for Relation; coherence for b1 being Relation st b1 = (l1 SubstWith l2) | (AllTermsOf S) holds b1 is AllTermsOf S -valued proof set f = l1 SubstWith l2; set SS = AllSymbolsOf S; set TT = AllTermsOf S; reconsider TTT = AllTermsOf S as non empty Subset of ((AllSymbolsOf S) *) by XBOOLE_1:1; A1: dom ((l1 SubstWith l2) | TTT) = TTT by PARTFUN1:def_2; now__::_thesis:_for_x_being_set_st_x_in_TTT_holds_ ((l1_SubstWith_l2)_|_TTT)_._x_in_TTT let x be set ; ::_thesis: ( x in TTT implies ((l1 SubstWith l2) | TTT) . x in TTT ) assume x in TTT ; ::_thesis: ((l1 SubstWith l2) | TTT) . x in TTT then reconsider tt = x as Element of TTT ; reconsider t = tt as termal string of S by TARSKI:def_3; (((l1 SubstWith l2) | TTT) . tt) \+\ ((l1 SubstWith l2) . tt) = {} ; then ((l1 SubstWith l2) | TTT) . x = (l1 SubstWith l2) . t by FOMODEL0:29 .= (l1,l2) -SymbolSubstIn t by FOMODEL0:def_23 ; hence ((l1 SubstWith l2) | TTT) . x in TTT by FOMODEL1:def_32; ::_thesis: verum end; hence for b1 being Relation st b1 = (l1 SubstWith l2) | (AllTermsOf S) holds b1 is AllTermsOf S -valued by A1, FUNCT_2:3; ::_thesis: verum end; end; Lm38: 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) proof let S be Language; ::_thesis: 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) let l1, l2 be literal Element of S; ::_thesis: for t being termal string of S holds SubTerms ((l1,l2) -SymbolSubstIn t) = (l1 SubstWith l2) * (SubTerms t) let t be termal string of S; ::_thesis: SubTerms ((l1,l2) -SymbolSubstIn t) = (l1 SubstWith l2) * (SubTerms t) set s = l1 SubstWith l2; set newt = (l1,l2) -SymbolSubstIn t; set ST = SubTerms t; set F = S -firstChar ; set C = S -multiCat ; set ST2 = SubTerms ((l1,l2) -SymbolSubstIn t); set SS = AllSymbolsOf S; set TT = AllTermsOf S; reconsider TTT = AllTermsOf S as Subset of ((AllSymbolsOf S) *) by XBOOLE_1:1; A1: ( rng (SubTerms t) c= AllTermsOf S & dom ((l1 SubstWith l2) | TTT) = TTT & rng ((l1 SubstWith l2) | (AllTermsOf S)) c= AllTermsOf S ) by PARTFUN1:def_2, RELAT_1:def_19; then reconsider ss = (l1 SubstWith l2) | (AllTermsOf S) as Function of (AllTermsOf S),(AllTermsOf S) by FUNCT_2:2; percases ( not t is 0 -termal or t is 0 -termal ) ; suppose not t is 0 -termal ; ::_thesis: SubTerms ((l1,l2) -SymbolSubstIn t) = (l1 SubstWith l2) * (SubTerms t) then reconsider s1 = (S -firstChar) . t as non literal ofAtomicFormula Element of S by FOMODEL1:16; reconsider h = (l1,l2) -SymbolSubstIn <*s1*> as AllSymbolsOf S -valued 1 -element FinSequence ; set s2 = (S -firstChar) . ((l1,l2) -SymbolSubstIn t); set n1 = abs (ar s1); set n2 = abs (ar ((S -firstChar) . ((l1,l2) -SymbolSubstIn t))); ss * (SubTerms t) = (l1 SubstWith l2) * (SubTerms t) by A1, RELAT_1:165; then reconsider p = (l1 SubstWith l2) * (SubTerms t) as abs (ar s1) -element FinSequence of AllTermsOf S by FOMODEL0:26; A2: (l1,l2) -SymbolSubstIn t = <*((S -firstChar) . ((l1,l2) -SymbolSubstIn t))*> ^ ((S -multiCat) . (SubTerms ((l1,l2) -SymbolSubstIn t))) by FOMODEL1:def_37; t = <*s1*> ^ ((S -multiCat) . (SubTerms t)) by FOMODEL1:def_37; then (l1 SubstWith l2) . t = ((l1 SubstWith l2) . <*s1*>) ^ ((l1 SubstWith l2) . ((S -multiCat) . (SubTerms t))) by FOMODEL0:36 .= h ^ ((l1 SubstWith l2) . ((S -multiCat) . (SubTerms t))) by FOMODEL0:def_23 .= h ^ ((S -multiCat) . ((l1 SubstWith l2) * (SubTerms t))) by FOMODEL0:37 ; then A3: (l1,l2) -SymbolSubstIn t = h ^ ((S -multiCat) . p) by FOMODEL0:def_23; then ( h = <*((S -firstChar) . ((l1,l2) -SymbolSubstIn t))*> & h = <*s1*> ) by A2, FOMODEL0:34, FOMODEL0:41; then ( h . 1 = s1 & h . 1 = (S -firstChar) . ((l1,l2) -SymbolSubstIn t) ) by FINSEQ_1:40; then reconsider pp = p as abs (ar ((S -firstChar) . ((l1,l2) -SymbolSubstIn t))) -element Element of (AllTermsOf S) * by FINSEQ_1:def_11; (l1,l2) -SymbolSubstIn t = <*((S -firstChar) . ((l1,l2) -SymbolSubstIn t))*> ^ ((S -multiCat) . pp) by A3, A2, FOMODEL0:41; hence SubTerms ((l1,l2) -SymbolSubstIn t) = (l1 SubstWith l2) * (SubTerms t) by FOMODEL1:def_37; ::_thesis: verum end; suppose t is 0 -termal ; ::_thesis: SubTerms ((l1,l2) -SymbolSubstIn t) = (l1 SubstWith l2) * (SubTerms t) then reconsider t0 = t as 0 -termal string of S ; reconsider newt = (l1,l2) -SymbolSubstIn t0 as 0 -termal string of S ; ( SubTerms newt = {} & SubTerms t0 = {} ) ; hence SubTerms ((l1,l2) -SymbolSubstIn t) = (l1 SubstWith l2) * (SubTerms t) ; ::_thesis: verum end; end; end; Lm39: 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) proof let S be Language; ::_thesis: 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) let l1, l2 be literal Element of S; ::_thesis: for phi0 being 0wff string of S holds SubTerms ((l1,l2) -SymbolSubstIn phi0) = (l1 SubstWith l2) * (SubTerms phi0) let phi0 be 0wff string of S; ::_thesis: SubTerms ((l1,l2) -SymbolSubstIn phi0) = (l1 SubstWith l2) * (SubTerms phi0) set s = l1 SubstWith l2; set psi0 = (l1,l2) -SymbolSubstIn phi0; set ST1 = SubTerms phi0; set F = S -firstChar ; set C = S -multiCat ; set ST2 = SubTerms ((l1,l2) -SymbolSubstIn phi0); set SS = AllSymbolsOf S; set TT = AllTermsOf S; reconsider TTT = AllTermsOf S as Subset of ((AllSymbolsOf S) *) by XBOOLE_1:1; A1: ( rng (SubTerms phi0) c= AllTermsOf S & dom ((l1 SubstWith l2) | TTT) = TTT & rng ((l1 SubstWith l2) | (AllTermsOf S)) c= AllTermsOf S ) by PARTFUN1:def_2, RELAT_1:def_19; then reconsider ss = (l1 SubstWith l2) | (AllTermsOf S) as Function of (AllTermsOf S),(AllTermsOf S) by FUNCT_2:2; reconsider r1 = (S -firstChar) . phi0, r2 = (S -firstChar) . ((l1,l2) -SymbolSubstIn phi0) as relational Element of S ; phi0 . 1 = r1 by FOMODEL0:6; then ( r1 = phi0 . 1 & ((l1,l2) -SymbolSubstIn phi0) . 1 = phi0 . 1 ) by FUNCT_4:105; then A2: r1 = r2 by FOMODEL0:6; set n1 = abs (ar r1); set n2 = abs (ar r2); (l1 SubstWith l2) * (SubTerms phi0) = ss * (SubTerms phi0) by A1, RELAT_1:165; then (l1 SubstWith l2) * (SubTerms phi0) is abs (ar r2) -element FinSequence of AllTermsOf S by A2, FOMODEL0:26; then reconsider ST22 = (l1 SubstWith l2) * (SubTerms phi0) as abs (ar r2) -element Element of (AllTermsOf S) * by FINSEQ_1:def_11; reconsider ST11 = SubTerms phi0 as (AllSymbolsOf S) * -valued FinSequence ; phi0 = <*r1*> ^ ((S -multiCat) . (SubTerms phi0)) by FOMODEL1:def_38; then (l1 SubstWith l2) . phi0 = ((l1 SubstWith l2) . <*r1*>) ^ ((l1 SubstWith l2) . ((S -multiCat) . (SubTerms phi0))) by FOMODEL0:36 .= <*r1*> ^ ((l1 SubstWith l2) . ((S -multiCat) . (SubTerms phi0))) by FOMODEL0:35 .= <*r2*> ^ ((S -multiCat) . ST22) by A2, FOMODEL0:37 ; then (l1,l2) -SymbolSubstIn phi0 = <*r2*> ^ ((S -multiCat) . ST22) by FOMODEL0:def_23; hence SubTerms ((l1,l2) -SymbolSubstIn phi0) = (l1 SubstWith l2) * (SubTerms phi0) by FOMODEL1:def_38; ::_thesis: verum end; Lm40: 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)) proof let U be non empty set ; ::_thesis: 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 b3,U -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)) let u be Element of U; ::_thesis: for m being Nat for S being Language for l1, l2 being literal Element of S for I being b2,U -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)) let m be Nat; ::_thesis: for S being Language for l1, l2 being literal Element of S for I being b1,U -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)) let S be Language; ::_thesis: for l1, l2 being literal Element of S for I being S,U -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)) let l1, l2 be literal Element of S; ::_thesis: for I being S,U -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)) let I be S,U -interpreter-like Function; ::_thesis: (((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)) set I1 = (l1,u) ReassignIn I; set I2 = (l2,u) ReassignIn I; set s = l1 SubstWith l2; set E1 = ((l1,u) ReassignIn I) -TermEval ; set E2 = ((l2,u) ReassignIn I) -TermEval ; set T = S -termsOfMaxDepth ; set TT = AllTermsOf S; set SS = AllSymbolsOf S; set F = S -firstChar ; set C = S -multiCat ; set g1 = l1 .--> ({} .--> u); set g2 = l2 .--> ({} .--> u); set L = LettersOf S; reconsider SSS = (AllSymbolsOf S) \ {l2} as non empty Subset of (AllSymbolsOf S) ; set D = SSS * ; ( l1 in {l1} & l2 in {l2} ) by TARSKI:def_1; then ( l1 in dom (l1 .--> ({} .--> u)) & l2 in dom (l2 .--> ({} .--> u)) ) by FUNCOP_1:13; then ( ((l1,u) ReassignIn I) . l1 = (l1 .--> ({} .--> u)) . l1 & ((l2,u) ReassignIn I) . l2 = (l2 .--> ({} .--> u)) . l2 ) by FUNCT_4:13; then A1: ( ((l1,u) ReassignIn I) . l1 = {} .--> u & ((l2,u) ReassignIn I) . l2 = {} .--> u ) by FUNCOP_1:72; defpred S1[ Nat] means (((l1,u) ReassignIn I) -TermEval) | (((S -termsOfMaxDepth) . $1) /\ (SSS *)) = ((((l2,u) ReassignIn I) -TermEval) * (l1 SubstWith l2)) | (((S -termsOfMaxDepth) . $1) /\ (SSS *)); A2: S1[ 0 ] proof reconsider T0 = (S -termsOfMaxDepth) . 0 as non empty Subset of (AllTermsOf S) by FOMODEL1:2; reconsider T00 = T0 as non empty Subset of ((AllSymbolsOf S) *) by XBOOLE_1:1; reconsider ss = (l1 SubstWith l2) | ((S -termsOfMaxDepth) . 0) as (S -termsOfMaxDepth) . 0 -valued Function ; reconsider X0 = T0 /\ (SSS *) as Subset of T0 ; reconsider X = T0 /\ (SSS *) as Subset of (AllTermsOf S) by XBOOLE_1:1; ss | (SSS *) is T0 -valued ; then reconsider sss = (l1 SubstWith l2) | (T0 /\ (SSS *)) as T00 -valued Function by RELAT_1:71; A3: ( dom ((((l2,u) ReassignIn I) -TermEval) * sss) = X & dom ((((l1,u) ReassignIn I) -TermEval) | X) = X ) by PARTFUN1:def_2; ( rng ((((l2,u) ReassignIn I) -TermEval) * sss) c= U & rng ((((l1,u) ReassignIn I) -TermEval) | X) c= U ) by RELAT_1:def_19; then reconsider f1 = (((l1,u) ReassignIn I) -TermEval) | X, f2 = (((l2,u) ReassignIn I) -TermEval) * sss as Function of X,U by A3, FUNCT_2:2; now__::_thesis:_for_x_being_set_st_x_in_X_holds_ f1_._x_=_f2_._x let x be set ; ::_thesis: ( x in X implies f1 . b1 = f2 . b1 ) assume A4: x in X ; ::_thesis: f1 . b1 = f2 . b1 then reconsider X00 = X0 as non empty Subset of (SSS *) ; ( dom sss = X & rng sss c= T0 ) by PARTFUN1:def_2, RELAT_1:def_19; then reconsider ssss = sss as Function of X00,T0 by FUNCT_2:2; reconsider xx = x as Element of X00 by A4; reconsider xd = xx as Element of SSS * ; reconsider t0 = x as 0 -termal string of S by A4, FOMODEL1:def_33, TARSKI:def_3; reconsider t00 = t0 as Element of T0 by FOMODEL1:def_33; T0 = AtomicTermsOf S by FOMODEL1:def_30; then reconsider tl = t00 as 1 -element FinSequence of LettersOf S by FOMODEL0:12; reconsider LL = (LettersOf S) \ {l2} as non empty Subset of (LettersOf S) ; ( rng tl c= LettersOf S & rng xd c= (AllSymbolsOf S) \ {l2} ) by RELAT_1:def_19; then rng xx c= (LettersOf S) /\ ((AllSymbolsOf S) \ {l2}) by XBOOLE_1:19; then rng xx c= ((LettersOf S) null (AllSymbolsOf S)) \ {l2} by XBOOLE_1:49; then reconsider xxx = tl as LL -valued 1 -element FinSequence by RELAT_1:def_19; {(xxx . 1)} \ LL = {} ; then reconsider lx = xxx . 1 as Element of LL by ZFMISC_1:60; not lx in {l2} by XBOOLE_0:def_5; then A5: ( lx <> l2 & not lx in dom (l2 .--> ({} .--> u)) ) by TARSKI:def_1; A6: len xxx = 1 by CARD_1:def_7; reconsider newt = (l1,l2) -SymbolSubstIn t0 as 0 -termal string of S ; reconsider s1 = (S -firstChar) . t0, s2 = (S -firstChar) . newt as literal Element of S ; A7: ( s1 = lx & s2 = newt . 1 ) by FOMODEL0:6; ( (((((l2,u) ReassignIn I) -TermEval) * ssss) . xx) \+\ ((((l2,u) ReassignIn I) -TermEval) . (ssss . xx)) = {} & (sss . xx) \+\ ((l1 SubstWith l2) . xx) = {} & (f1 . xx) \+\ ((((l1,u) ReassignIn I) -TermEval) . xx) = {} ) ; then A8: ( ((((l2,u) ReassignIn I) -TermEval) * sss) . x = (((l2,u) ReassignIn I) -TermEval) . (sss . x) & sss . x = (l1 SubstWith l2) . x & f1 . x = (((l1,u) ReassignIn I) -TermEval) . x ) by FOMODEL0:29; A9: f2 . x = (((l2,u) ReassignIn I) -TermEval) . newt by A8, FOMODEL0:def_23 .= (((l2,u) ReassignIn I) . s2) . ((((l2,u) ReassignIn I) -TermEval) * (SubTerms newt)) by FOMODEL2:21 .= (((l2,u) ReassignIn I) . s2) . {} ; A10: f1 . x = (((l1,u) ReassignIn I) . s1) . ((((l1,u) ReassignIn I) -TermEval) * (SubTerms t0)) by A8, FOMODEL2:21 .= (((l1,u) ReassignIn I) . s1) . {} ; percases ( lx = l1 or lx <> l1 ) ; supposeA11: lx = l1 ; ::_thesis: f1 . b1 = f2 . b1 t0 = <*l1*> by A6, A11, FINSEQ_1:40; then newt = <*l2*> by FOMODEL0:34; hence f1 . x = f2 . x by A11, A10, A1, A9, A7, FINSEQ_1:40; ::_thesis: verum end; suppose lx <> l1 ; ::_thesis: f1 . b1 = f2 . b1 then ( newt . 1 = lx & not lx in {l1} ) by FUNCT_4:105, TARSKI:def_1; then ( s2 = lx & not lx in dom (l1 .--> ({} .--> u)) ) by FOMODEL0:6; then ( f2 . x = (I . lx) . {} & f1 . x = (I . lx) . {} ) by A7, A9, A10, A5, FUNCT_4:11; hence f1 . x = f2 . x ; ::_thesis: verum end; end; end; then f1 = f2 by FUNCT_2:12; hence S1[ 0 ] by RELAT_1:83; ::_thesis: verum end; A12: for n being Nat st S1[n] holds S1[n + 1] proof let n be Nat; ::_thesis: ( S1[n] implies S1[n + 1] ) reconsider nn = n, NN = n + 1 as Element of NAT by ORDINAL1:def_12; assume A13: S1[n] ; ::_thesis: S1[n + 1] reconsider Tnn = (S -termsOfMaxDepth) . nn, TNN = (S -termsOfMaxDepth) . NN as non empty Subset of (AllTermsOf S) by FOMODEL1:2; reconsider Xn = Tnn /\ (SSS *), X = TNN /\ (SSS *) as Subset of (AllTermsOf S) by XBOOLE_1:1; ((l1 SubstWith l2) | ((S -termsOfMaxDepth) . NN)) | (SSS *) is TNN -valued ; then reconsider sX = (l1 SubstWith l2) | X as AllTermsOf S -valued Function by RELAT_1:71; ( dom ((l1 SubstWith l2) | X) = X & rng sX c= AllTermsOf S ) by PARTFUN1:def_2, RELAT_1:def_19; then reconsider sXX = sX as Function of X,(AllTermsOf S) by FUNCT_2:2; ((l1 SubstWith l2) | ((S -termsOfMaxDepth) . nn)) | (SSS *) is Tnn -valued ; then reconsider sXn = (l1 SubstWith l2) | Xn as AllTermsOf S -valued Function by RELAT_1:71; A14: ( dom ((((l1,u) ReassignIn I) -TermEval) | X) = X & dom ((((l2,u) ReassignIn I) -TermEval) * sX) = X & dom ((((l2,u) ReassignIn I) -TermEval) * sXn) = Xn ) by PARTFUN1:def_2; ( rng ((((l1,u) ReassignIn I) -TermEval) | X) c= U & rng ((((l2,u) ReassignIn I) -TermEval) * sX) c= U ) by RELAT_1:def_19; then reconsider f1 = (((l1,u) ReassignIn I) -TermEval) | X, f2 = (((l2,u) ReassignIn I) -TermEval) * sX as Function of X,U by A14, FUNCT_2:2; now__::_thesis:_for_x_being_set_st_x_in_X_holds_ f2_._x_=_f1_._x let x be set ; ::_thesis: ( x in X implies f2 . b1 = f1 . b1 ) assume A15: x in X ; ::_thesis: f2 . b1 = f1 . b1 then reconsider XX = X as non empty Subset of TNN ; reconsider xxx = x as Element of XX by A15; reconsider xx = xxx as Element of SSS * by A15; reconsider tN = x as Element of TNN by A15; reconsider t = tN as NN -termal string of S by FOMODEL1:def_33, TARSKI:def_3; reconsider ttt = t as Element of AllTermsOf S ; set d = Depth t; reconsider aux = rng xx as Subset of ((AllSymbolsOf S) \ {l2}) by RELAT_1:def_19; ( aux * c= SSS * & rng (SubTerms t) c= (rng t) * ) by RELAT_1:def_19; then A16: rng (SubTerms t) c= SSS * by XBOOLE_1:1; reconsider tt = t as nn + 1 -termal string of S ; reconsider newt = (l1,l2) -SymbolSubstIn t as NN -termal string of S ; A17: rng (SubTerms tt) c= (S -termsOfMaxDepth) . nn by RELAT_1:def_19; A18: ( dom ((((l1,u) ReassignIn I) -TermEval) | Xn) = Xn & dom (((((l2,u) ReassignIn I) -TermEval) * (l1 SubstWith l2)) | Xn) = Xn ) by A14, PARTFUN1:def_2, RELAT_1:83; ( (f1 . xxx) \+\ ((((l1,u) ReassignIn I) -TermEval) . xxx) = {} & (((l1 SubstWith l2) | XX) . xxx) \+\ ((l1 SubstWith l2) . xxx) = {} & (((((l2,u) ReassignIn I) -TermEval) * sXX) . xxx) \+\ ((((l2,u) ReassignIn I) -TermEval) . (sXX . xxx)) = {} ) ; then A19: ( f1 . x = (((l1,u) ReassignIn I) -TermEval) . x & sX . x = (l1 SubstWith l2) . x & f2 . x = (((l2,u) ReassignIn I) -TermEval) . (sX . x) ) by FOMODEL0:29; percases ( Depth t = 0 or Depth t <> 0 ) ; suppose Depth t = 0 ; ::_thesis: f2 . b1 = f1 . b1 then reconsider t0 = t as 0 -termal string of S by FOMODEL1:def_40; reconsider l = (S -firstChar) . t0 as literal Element of S ; A20: t0 = <*l*> ^ ((S -multiCat) . (SubTerms t0)) by FOMODEL1:def_37 .= <*l*> null {} ; {(xx . 1)} \ SSS = {} ; then t0 . 1 in SSS by ZFMISC_1:60; then l in SSS by FOMODEL0:6; then not l in dom (l2 .--> ({} .--> u)) by XBOOLE_0:def_5; then A21: ((l2,u) ReassignIn I) . l = I . l by FUNCT_4:11; A22: f1 . t0 = (((l1,u) ReassignIn I) . l) . ((((l1,u) ReassignIn I) -TermEval) * (SubTerms t0)) by A19, FOMODEL2:21 .= (((l1,u) ReassignIn I) . l) . {} ; percases ( l in dom (l1 .--> ({} .--> u)) or not l in dom (l1 .--> ({} .--> u)) ) ; supposeA23: l in dom (l1 .--> ({} .--> u)) ; ::_thesis: f2 . b1 = f1 . b1 then l = l1 by TARSKI:def_1; then ( f1 . t0 = (((l1,u) ReassignIn I) . l1) . {} & (l1 SubstWith l2) . t0 = <*l2*> ) by A22, A20, FOMODEL0:35; then f2 . t0 = (((l2,u) ReassignIn I) . ((S -firstChar) . <*l2*>)) . ((((l2,u) ReassignIn I) -TermEval) * (SubTerms <*l2*>)) by A19, FOMODEL2:21 .= (((l2,u) ReassignIn I) . (<*l2*> . 1)) . {} by FOMODEL0:6 .= (((l2,u) ReassignIn I) . l2) . {} by FINSEQ_1:40 ; hence f2 . x = f1 . x by A23, A22, A1, TARSKI:def_1; ::_thesis: verum end; supposeA24: not l in dom (l1 .--> ({} .--> u)) ; ::_thesis: f2 . b1 = f1 . b1 then ( f1 . t0 = (I . l) . {} & not l in {l1} ) by A22, FUNCOP_1:13, FUNCT_4:11; then l <> l1 by TARSKI:def_1; then (l1 SubstWith l2) . t0 = t0 by A20, FOMODEL0:35; then f2 . t0 = (((l2,u) ReassignIn I) . l) . ((((l2,u) ReassignIn I) -TermEval) * (SubTerms t0)) by A19, FOMODEL2:21 .= (((l2,u) ReassignIn I) . l) . {} ; hence f2 . x = f1 . x by A24, A22, A21, FUNCT_4:11; ::_thesis: verum end; end; end; suppose Depth t <> 0 ; ::_thesis: f2 . b1 = f1 . b1 then A25: not t is 0 -termal ; then reconsider s1 = (S -firstChar) . t as non literal ofAtomicFormula Element of S by FOMODEL1:16; ( t . 1 = (S -firstChar) . t & not (S -firstChar) . t is literal ) by A25, FOMODEL0:6, FOMODEL1:16; then newt . 1 = s1 by FUNCT_4:105; then reconsider s2 = (S -firstChar) . newt as non literal ofAtomicFormula Element of S by FOMODEL0:6; ( not s1 in dom (l1 .--> ({} .--> u)) & not s2 in dom (l2 .--> ({} .--> u)) ) by TARSKI:def_1; then A26: ( ((l1,u) ReassignIn I) . s1 = I . s1 & ((l2,u) ReassignIn I) . s2 = I . s2 ) by FUNCT_4:11; s1 <> l1 ; then t . 1 <> l1 by FOMODEL0:6; then newt . 1 = t . 1 by FUNCT_4:105 .= s1 by FOMODEL0:6 ; then A27: s1 = s2 by FOMODEL0:6; thus f2 . x = (((l2,u) ReassignIn I) -TermEval) . newt by A19, FOMODEL0:def_23 .= (((l2,u) ReassignIn I) . s2) . ((((l2,u) ReassignIn I) -TermEval) * (SubTerms newt)) by FOMODEL2:21 .= (((l2,u) ReassignIn I) . s2) . ((((l2,u) ReassignIn I) -TermEval) * ((l1 SubstWith l2) * (SubTerms t))) by Lm38 .= (I . s2) . (((((l2,u) ReassignIn I) -TermEval) * (l1 SubstWith l2)) * (SubTerms t)) by A26, RELAT_1:36 .= (I . s2) . ((((((l2,u) ReassignIn I) -TermEval) * (l1 SubstWith l2)) | (((S -termsOfMaxDepth) . n) /\ (SSS *))) * (SubTerms t)) by A17, A16, A18, RELAT_1:165, XBOOLE_1:19 .= (I . s2) . ((((l1,u) ReassignIn I) -TermEval) * (SubTerms t)) by A17, A16, A18, A13, RELAT_1:165, XBOOLE_1:19 .= f1 . x by A19, A26, A27, FOMODEL2:21 ; ::_thesis: verum end; end; end; then f1 = f2 by FUNCT_2:12; hence S1[n + 1] by RELAT_1:83; ::_thesis: verum end; for m being Nat holds S1[m] from NAT_1:sch_2(A2, A12); hence (((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)) ; ::_thesis: verum end; Lm41: 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) proof let U be non empty set ; ::_thesis: 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 b2,U -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) let u be Element of U; ::_thesis: for S being Language for l2, l1 being literal Element of S for phi0 being 0wff string of S for I being b1,U -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) let S be Language; ::_thesis: for l2, l1 being literal Element of S for phi0 being 0wff string of S for I being S,U -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) let l2, l1 be literal Element of S; ::_thesis: for phi0 being 0wff string of S for I being S,U -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) let phi0 be 0wff string of S; ::_thesis: for I being S,U -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) let I be S,U -interpreter-like Function; ::_thesis: ( phi0 is (AllSymbolsOf S) \ {l2} -valued implies ((l1,u) ReassignIn I) -AtomicEval phi0 = ((l2,u) ReassignIn I) -AtomicEval ((l1,l2) -SymbolSubstIn phi0) ) set I1 = (l1,u) ReassignIn I; set I2 = (l2,u) ReassignIn I; set s = l1 SubstWith l2; set E1 = ((l1,u) ReassignIn I) -TermEval ; set E2 = ((l2,u) ReassignIn I) -TermEval ; set T = S -termsOfMaxDepth ; set TT = AllTermsOf S; set SS = AllSymbolsOf S; set F = S -firstChar ; set C = S -multiCat ; set g1 = l1 .--> ({} .--> u); set g2 = l2 .--> ({} .--> u); set L = LettersOf S; set E = TheEqSymbOf S; set d = U -deltaInterpreter ; set SSS = (AllSymbolsOf S) \ {l2}; reconsider SSSS = (AllSymbolsOf S) \ {l2} as non empty Subset of (AllSymbolsOf S) ; reconsider psi0 = (l1,l2) -SymbolSubstIn phi0 as 0wff string of S ; reconsider r = (S -firstChar) . phi0, r2 = (S -firstChar) . psi0 as relational Element of S ; phi0 . 1 = r by FOMODEL0:6; then A1: r = psi0 . 1 by FUNCT_4:105 .= r2 by FOMODEL0:6 ; ( not r in dom (l1 .--> ({} .--> u)) & not r in dom (l2 .--> ({} .--> u)) ) by TARSKI:def_1; then A2: ( ((l1,u) ReassignIn I) . r = I . r & ((l2,u) ReassignIn I) . r = I . r ) by FUNCT_4:11; ( dom (((l1,u) ReassignIn I) -TermEval) = AllTermsOf S & dom (((l2,u) ReassignIn I) -TermEval) = AllTermsOf S ) by FUNCT_2:def_1; then A3: ( dom ((((l1,u) ReassignIn I) -TermEval) | (((AllSymbolsOf S) \ {l2}) *)) = (AllTermsOf S) /\ (((AllSymbolsOf S) \ {l2}) *) & dom ((l1 SubstWith l2) | (SSSS *)) = SSSS * ) by PARTFUN1:def_2, RELAT_1:61; reconsider ST1 = SubTerms phi0 as Element of (AllTermsOf S) * ; consider mm being Element of NAT such that A4: SubTerms phi0 is Element of ((S -termsOfMaxDepth) . mm) * by Lm3; reconsider Tm = (S -termsOfMaxDepth) . mm as non empty Subset of (AllTermsOf S) by FOMODEL1:2; A5: dom ((((l1,u) ReassignIn I) -TermEval) | ((((AllSymbolsOf S) \ {l2}) *) /\ Tm)) = dom (((((l1,u) ReassignIn I) -TermEval) | (((AllSymbolsOf S) \ {l2}) *)) | Tm) by RELAT_1:71 .= (dom ((((l1,u) ReassignIn I) -TermEval) | (((AllSymbolsOf S) \ {l2}) *))) /\ Tm by RELAT_1:61 .= (Tm null (AllTermsOf S)) /\ (((AllSymbolsOf S) \ {l2}) *) by A3, XBOOLE_1:16 .= (((AllSymbolsOf S) \ {l2}) *) /\ Tm ; A6: dom ((l1 SubstWith l2) | ((((AllSymbolsOf S) \ {l2}) *) /\ Tm)) = dom (((l1 SubstWith l2) | (((AllSymbolsOf S) \ {l2}) *)) | Tm) by RELAT_1:71 .= (((AllSymbolsOf S) \ {l2}) *) /\ Tm by A3, RELAT_1:61 ; assume phi0 is (AllSymbolsOf S) \ {l2} -valued ; ::_thesis: ((l1,u) ReassignIn I) -AtomicEval phi0 = ((l2,u) ReassignIn I) -AtomicEval ((l1,l2) -SymbolSubstIn phi0) then reconsider R = rng phi0 as non empty Subset of SSSS by RELAT_1:def_19; ( rng (SubTerms phi0) c= R * & R * c= ((AllSymbolsOf S) \ {l2}) * ) by RELAT_1:def_19; then A7: ( rng (SubTerms phi0) c= ((AllSymbolsOf S) \ {l2}) * & rng (SubTerms phi0) c= Tm ) by A4, RELAT_1:def_19; A8: (((l1,u) ReassignIn I) -TermEval) * (SubTerms phi0) = ((((l1,u) ReassignIn I) -TermEval) | ((((AllSymbolsOf S) \ {l2}) *) /\ Tm)) * (SubTerms phi0) by A7, A5, RELAT_1:165, XBOOLE_1:19 .= (((((l2,u) ReassignIn I) -TermEval) * (l1 SubstWith l2)) | ((((AllSymbolsOf S) \ {l2}) *) /\ Tm)) * (SubTerms phi0) by Lm40 .= ((((l2,u) ReassignIn I) -TermEval) * ((l1 SubstWith l2) | ((((AllSymbolsOf S) \ {l2}) *) /\ Tm))) * (SubTerms phi0) by RELAT_1:83 .= (((l2,u) ReassignIn I) -TermEval) * (((l1 SubstWith l2) | ((((AllSymbolsOf S) \ {l2}) *) /\ Tm)) * (SubTerms phi0)) by RELAT_1:36 .= (((l2,u) ReassignIn I) -TermEval) * ((l1 SubstWith l2) * (SubTerms phi0)) by A7, A6, RELAT_1:165, XBOOLE_1:19 .= (((l2,u) ReassignIn I) -TermEval) * (SubTerms psi0) by Lm39 ; percases ( r <> TheEqSymbOf S or r = TheEqSymbOf S ) ; supposeA9: r <> TheEqSymbOf S ; ::_thesis: ((l1,u) ReassignIn I) -AtomicEval phi0 = ((l2,u) ReassignIn I) -AtomicEval ((l1,l2) -SymbolSubstIn phi0) then ((l1,u) ReassignIn I) -AtomicEval phi0 = (((l2,u) ReassignIn I) . r2) . ((((l2,u) ReassignIn I) -TermEval) * (SubTerms psi0)) by A8, A1, A2, FOMODEL2:14 .= ((l2,u) ReassignIn I) -AtomicEval psi0 by A9, A1, FOMODEL2:14 ; hence ((l1,u) ReassignIn I) -AtomicEval phi0 = ((l2,u) ReassignIn I) -AtomicEval ((l1,l2) -SymbolSubstIn phi0) ; ::_thesis: verum end; supposeA10: r = TheEqSymbOf S ; ::_thesis: ((l1,u) ReassignIn I) -AtomicEval phi0 = ((l2,u) ReassignIn I) -AtomicEval ((l1,l2) -SymbolSubstIn phi0) then ((l1,u) ReassignIn I) -AtomicEval phi0 = (U -deltaInterpreter) . ((((l1,u) ReassignIn I) -TermEval) * (SubTerms phi0)) by FOMODEL2:14 .= ((l2,u) ReassignIn I) -AtomicEval psi0 by A10, A1, A8, FOMODEL2:14 ; hence ((l1,u) ReassignIn I) -AtomicEval phi0 = ((l2,u) ReassignIn I) -AtomicEval ((l1,l2) -SymbolSubstIn phi0) ; ::_thesis: verum end; end; end; theorem Th9: :: FOMODEL3:9 for U being non empty set for u1 being Element of U for S being Language for l2, l1 being literal Element of S for psi being wff string of S st not l2 in rng psi holds for I being Element of U -InterpretersOf S holds ((l1,u1) ReassignIn I) -TruthEval psi = ((l2,u1) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn psi) proof let U be non empty set ; ::_thesis: for u1 being Element of U for S being Language for l2, l1 being literal Element of S for psi being wff string of S st not l2 in rng psi holds for I being Element of U -InterpretersOf S holds ((l1,u1) ReassignIn I) -TruthEval psi = ((l2,u1) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn psi) let u1 be Element of U; ::_thesis: for S being Language for l2, l1 being literal Element of S for psi being wff string of S st not l2 in rng psi holds for I being Element of U -InterpretersOf S holds ((l1,u1) ReassignIn I) -TruthEval psi = ((l2,u1) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn psi) let S be Language; ::_thesis: for l2, l1 being literal Element of S for psi being wff string of S st not l2 in rng psi holds for I being Element of U -InterpretersOf S holds ((l1,u1) ReassignIn I) -TruthEval psi = ((l2,u1) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn psi) let l2, l1 be literal Element of S; ::_thesis: for psi being wff string of S st not l2 in rng psi holds for I being Element of U -InterpretersOf S holds ((l1,u1) ReassignIn I) -TruthEval psi = ((l2,u1) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn psi) let psi be wff string of S; ::_thesis: ( not l2 in rng psi implies for I being Element of U -InterpretersOf S holds ((l1,u1) ReassignIn I) -TruthEval psi = ((l2,u1) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn psi) ) set II = U -InterpretersOf S; set s = l1 SubstWith l2; set SS = AllSymbolsOf S; set SSS = (AllSymbolsOf S) \ {l2}; set TT = AllTermsOf S; set T = S -termsOfMaxDepth ; set F = S -firstChar ; set N = TheNorSymbOf S; reconsider SSSS = (AllSymbolsOf S) \ {l2} as non empty Subset of (AllSymbolsOf S) ; defpred S1[ Nat] means for I being Element of U -InterpretersOf S for u being Element of U for phi being wff string of S st phi is $1 -wff & phi is (AllSymbolsOf S) \ {l2} -valued holds ((l1,u) ReassignIn I) -TruthEval phi = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi); A1: S1[ 0 ] proof let I be Element of U -InterpretersOf S; ::_thesis: for u being Element of U for phi being wff string of S st phi is 0 -wff & phi is (AllSymbolsOf S) \ {l2} -valued holds ((l1,u) ReassignIn I) -TruthEval phi = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi) let u be Element of U; ::_thesis: for phi being wff string of S st phi is 0 -wff & phi is (AllSymbolsOf S) \ {l2} -valued holds ((l1,u) ReassignIn I) -TruthEval phi = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi) let phi be wff string of S; ::_thesis: ( phi is 0 -wff & phi is (AllSymbolsOf S) \ {l2} -valued implies ((l1,u) ReassignIn I) -TruthEval phi = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi) ) set I1 = (l1,u) ReassignIn I; set I2 = (l2,u) ReassignIn I; assume phi is 0 -wff ; ::_thesis: ( not phi is (AllSymbolsOf S) \ {l2} -valued or ((l1,u) ReassignIn I) -TruthEval phi = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi) ) then reconsider phi0 = phi as 0wff string of S ; assume phi is (AllSymbolsOf S) \ {l2} -valued ; ::_thesis: ((l1,u) ReassignIn I) -TruthEval phi = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi) then ((l1,u) ReassignIn I) -TruthEval phi0 = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi0) by Lm41; hence ((l1,u) ReassignIn I) -TruthEval phi = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi) ; ::_thesis: verum end; A2: for n being Nat st S1[n] holds S1[n + 1] proof let n be Nat; ::_thesis: ( S1[n] implies S1[n + 1] ) assume A3: S1[n] ; ::_thesis: S1[n + 1] let I be Element of U -InterpretersOf S; ::_thesis: for u being Element of U for phi being wff string of S st phi is n + 1 -wff & phi is (AllSymbolsOf S) \ {l2} -valued holds ((l1,u) ReassignIn I) -TruthEval phi = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi) let u be Element of U; ::_thesis: for phi being wff string of S st phi is n + 1 -wff & phi is (AllSymbolsOf S) \ {l2} -valued holds ((l1,u) ReassignIn I) -TruthEval phi = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi) let phi be wff string of S; ::_thesis: ( phi is n + 1 -wff & phi is (AllSymbolsOf S) \ {l2} -valued implies ((l1,u) ReassignIn I) -TruthEval phi = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi) ) set I1 = (l1,u) ReassignIn I; set I2 = (l2,u) ReassignIn I; assume A4: ( phi is n + 1 -wff & phi is (AllSymbolsOf S) \ {l2} -valued ) ; ::_thesis: ((l1,u) ReassignIn I) -TruthEval phi = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi) then reconsider phii = phi as n + 1 -wff string of S ; reconsider x = phi as non empty SSSS -valued FinSequence by A4; {(x . 1)} \ ((AllSymbolsOf S) \ {l2}) = {} ; then phii . 1 in (AllSymbolsOf S) \ {l2} by ZFMISC_1:60; then (S -firstChar) . phii in (AllSymbolsOf S) \ {l2} by FOMODEL0:6; then not (S -firstChar) . phii in {l2} by XBOOLE_0:def_5; then A5: (S -firstChar) . phii <> l2 by TARSKI:def_1; reconsider psi = (l1,l2) -SymbolSubstIn phii as n + 1 -wff string of S ; reconsider phi1 = head phii as n -wff string of S ; reconsider psi1 = (l1,l2) -SymbolSubstIn phi1 as n -wff string of S ; percases ( ( phi is exal & not phi is 0wff ) or ( not phi is exal & not phi is 0wff ) or phi is 0 -wff ) ; suppose ( phi is exal & not phi is 0wff ) ; ::_thesis: ((l1,u) ReassignIn I) -TruthEval phi = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi) then reconsider phii = phii as non 0wff n + 1 -wff exal string of S ; set l = (S -firstChar) . phii; set phi2 = tail phii; A6: phii = (<*((S -firstChar) . phii)*> ^ phi1) ^ (tail phii) by FOMODEL2:23 .= <*((S -firstChar) . phii)*> ^ phi1 ; then (l1 SubstWith l2) . phii = ((l1 SubstWith l2) . <*((S -firstChar) . phii)*>) ^ ((l1 SubstWith l2) . phi1) by FOMODEL0:36 .= ((l1 SubstWith l2) . <*((S -firstChar) . phii)*>) ^ psi1 by FOMODEL0:def_23 ; then A7: psi = ((l1 SubstWith l2) . <*((S -firstChar) . phii)*>) ^ psi1 by FOMODEL0:def_23; x = (<*((S -firstChar) . phii)*> ^ phi1) ^ {} by A6; then A8: phi1 is SSSS -valued by FOMODEL0:44; ( ((l1,u) ReassignIn I) -TruthEval phii = 1 iff ((l2,u) ReassignIn I) -TruthEval psi = 1 ) proof percases ( (S -firstChar) . phii = l1 or (S -firstChar) . phii <> l1 ) ; supposeA9: (S -firstChar) . phii = l1 ; ::_thesis: ( ((l1,u) ReassignIn I) -TruthEval phii = 1 iff ((l2,u) ReassignIn I) -TruthEval psi = 1 ) then A10: psi = <*l2*> ^ psi1 by A7, FOMODEL0:35; hereby ::_thesis: ( ((l2,u) ReassignIn I) -TruthEval psi = 1 implies ((l1,u) ReassignIn I) -TruthEval phii = 1 ) assume ((l1,u) ReassignIn I) -TruthEval phii = 1 ; ::_thesis: ((l2,u) ReassignIn I) -TruthEval psi = 1 then consider u1 being Element of U such that A11: ((((S -firstChar) . phii),u1) ReassignIn ((l1,u) ReassignIn I)) -TruthEval phi1 = 1 by A6, FOMODEL2:19; 1 = ((l1,u1) ReassignIn I) -TruthEval phi1 by A11, A9, FOMODEL0:43 .= ((l2,u1) ReassignIn I) -TruthEval psi1 by A8, A3 .= ((l2,u1) ReassignIn ((l2,u) ReassignIn I)) -TruthEval psi1 by FOMODEL0:43 ; hence ((l2,u) ReassignIn I) -TruthEval psi = 1 by A10, FOMODEL2:19; ::_thesis: verum end; assume ((l2,u) ReassignIn I) -TruthEval psi = 1 ; ::_thesis: ((l1,u) ReassignIn I) -TruthEval phii = 1 then consider u2 being Element of U such that A12: ((l2,u2) ReassignIn ((l2,u) ReassignIn I)) -TruthEval psi1 = 1 by A10, FOMODEL2:19; 1 = ((l2,u2) ReassignIn I) -TruthEval psi1 by A12, FOMODEL0:43 .= ((l1,u2) ReassignIn I) -TruthEval phi1 by A8, A3 .= ((((S -firstChar) . phii),u2) ReassignIn ((l1,u) ReassignIn I)) -TruthEval phi1 by A9, FOMODEL0:43 ; hence ((l1,u) ReassignIn I) -TruthEval phii = 1 by A6, FOMODEL2:19; ::_thesis: verum end; supposeA13: (S -firstChar) . phii <> l1 ; ::_thesis: ( ((l1,u) ReassignIn I) -TruthEval phii = 1 iff ((l2,u) ReassignIn I) -TruthEval psi = 1 ) then A14: psi = <*((S -firstChar) . phii)*> ^ psi1 by A7, FOMODEL0:35; hereby ::_thesis: ( ((l2,u) ReassignIn I) -TruthEval psi = 1 implies ((l1,u) ReassignIn I) -TruthEval phii = 1 ) assume ((l1,u) ReassignIn I) -TruthEval phii = 1 ; ::_thesis: ((l2,u) ReassignIn I) -TruthEval psi = 1 then consider u1 being Element of U such that A15: ((((S -firstChar) . phii),u1) ReassignIn ((l1,u) ReassignIn I)) -TruthEval phi1 = 1 by A6, FOMODEL2:19; 1 = ((l1,u) ReassignIn ((((S -firstChar) . phii),u1) ReassignIn I)) -TruthEval phi1 by A15, A13, FOMODEL0:43 .= ((l2,u) ReassignIn ((((S -firstChar) . phii),u1) ReassignIn I)) -TruthEval psi1 by A3, A8 .= ((((S -firstChar) . phii),u1) ReassignIn ((l2,u) ReassignIn I)) -TruthEval psi1 by A5, FOMODEL0:43 ; hence ((l2,u) ReassignIn I) -TruthEval psi = 1 by A14, FOMODEL2:19; ::_thesis: verum end; assume ((l2,u) ReassignIn I) -TruthEval psi = 1 ; ::_thesis: ((l1,u) ReassignIn I) -TruthEval phii = 1 then consider u2 being Element of U such that A16: ((((S -firstChar) . phii),u2) ReassignIn ((l2,u) ReassignIn I)) -TruthEval psi1 = 1 by A14, FOMODEL2:19; 1 = ((l2,u) ReassignIn ((((S -firstChar) . phii),u2) ReassignIn I)) -TruthEval psi1 by A5, A16, FOMODEL0:43 .= ((l1,u) ReassignIn ((((S -firstChar) . phii),u2) ReassignIn I)) -TruthEval phi1 by A3, A8 .= ((((S -firstChar) . phii),u2) ReassignIn ((l1,u) ReassignIn I)) -TruthEval phi1 by A13, FOMODEL0:43 ; hence ((l1,u) ReassignIn I) -TruthEval phii = 1 by A6, FOMODEL2:19; ::_thesis: verum end; end; end; then ( ((l1,u) ReassignIn I) -TruthEval phii = 1 iff not ((l2,u) ReassignIn I) -TruthEval psi = 0 ) by FOMODEL0:39; hence ((l1,u) ReassignIn I) -TruthEval phi = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi) by FOMODEL0:39; ::_thesis: verum end; suppose ( not phi is exal & not phi is 0wff ) ; ::_thesis: ((l1,u) ReassignIn I) -TruthEval phi = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi) then reconsider phii = phii as non 0wff n + 1 -wff non exal string of S ; reconsider phi2 = tail phii as n -wff string of S ; reconsider psi2 = (l1,l2) -SymbolSubstIn phi2 as n -wff string of S ; ((S -firstChar) . phii) \+\ (TheNorSymbOf S) = {} ; then (S -firstChar) . phii = TheNorSymbOf S by FOMODEL0:29; then A17: phii = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 by FOMODEL2:23; then ( phi1 is (AllSymbolsOf S) \ {l2} -valued & phi2 is (AllSymbolsOf S) \ {l2} -valued & ( ((l1,u) ReassignIn I) -TruthEval phii = 1 implies ( ((l1,u) ReassignIn I) -TruthEval phi1 = 0 & ((l1,u) ReassignIn I) -TruthEval phi2 = 0 ) ) & ( ((l1,u) ReassignIn I) -TruthEval phi1 = 0 & ((l1,u) ReassignIn I) -TruthEval phi2 = 0 implies ((l1,u) ReassignIn I) -TruthEval phii = 1 ) ) by A4, FOMODEL0:44, FOMODEL2:19; then A18: ( ((l1,u) ReassignIn I) -TruthEval phii = 1 iff ( ((l2,u) ReassignIn I) -TruthEval psi1 = 0 & ((l2,u) ReassignIn I) -TruthEval psi2 = 0 ) ) by A3; A19: ( (l1 SubstWith l2) . phii = psi & (l1 SubstWith l2) . phi1 = psi1 & (l1 SubstWith l2) . phi2 = psi2 ) by FOMODEL0:def_23; then psi = ((l1 SubstWith l2) . (<*(TheNorSymbOf S)*> ^ phi1)) ^ ((l1 SubstWith l2) . phi2) by A17, FOMODEL0:36 .= (((l1 SubstWith l2) . <*(TheNorSymbOf S)*>) ^ ((l1 SubstWith l2) . phi1)) ^ ((l1 SubstWith l2) . phi2) by FOMODEL0:36 .= (<*(TheNorSymbOf S)*> ^ psi1) ^ psi2 by A19, FOMODEL0:35 ; then ( ((l2,u) ReassignIn I) -TruthEval psi = 1 iff not ((l1,u) ReassignIn I) -TruthEval phi = 0 ) by A18, FOMODEL0:39, FOMODEL2:19; hence ((l1,u) ReassignIn I) -TruthEval phi = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi) by FOMODEL0:39; ::_thesis: verum end; suppose phi is 0 -wff ; ::_thesis: ((l1,u) ReassignIn I) -TruthEval phi = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi) hence ((l1,u) ReassignIn I) -TruthEval phi = ((l2,u) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn phi) by A1, A4; ::_thesis: verum end; end; end; A20: for m being Nat holds S1[m] from NAT_1:sch_2(A1, A2); set m = Depth psi; assume not l2 in rng psi ; ::_thesis: for I being Element of U -InterpretersOf S holds ((l1,u1) ReassignIn I) -TruthEval psi = ((l2,u1) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn psi) then ( {l2} misses rng psi & rng psi c= AllSymbolsOf S ) by RELAT_1:def_19, ZFMISC_1:50; then rng psi c= (AllSymbolsOf S) \ {l2} by XBOOLE_1:86; then A21: ( psi is Depth psi -wff & psi is (AllSymbolsOf S) \ {l2} -valued ) by FOMODEL2:def_31, RELAT_1:def_19; let I be Element of U -InterpretersOf S; ::_thesis: ((l1,u1) ReassignIn I) -TruthEval psi = ((l2,u1) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn psi) thus ((l1,u1) ReassignIn I) -TruthEval psi = ((l2,u1) ReassignIn I) -TruthEval ((l1,l2) -SymbolSubstIn psi) by A20, A21; ::_thesis: verum end; 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 FinSequence-yielding Function; let phi be wff string of S; func(l,t,n,f) Subst2 phi -> FinSequence equals :Def20: :: FOMODEL3:def 20 (<*(TheNorSymbOf S)*> ^ (f . (head phi))) ^ (f . (tail phi)) if ( Depth phi = n + 1 & not phi is exal ) <* 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))) if ( Depth phi = n + 1 & phi is exal & (S -firstChar) . phi <> l ) otherwise f . phi; coherence ( ( Depth phi = n + 1 & not phi is exal implies (<*(TheNorSymbOf S)*> ^ (f . (head phi))) ^ (f . (tail phi)) is FinSequence ) & ( Depth phi = n + 1 & phi is exal & (S -firstChar) . phi <> l implies <* 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))) is FinSequence ) & ( ( 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 f . phi is FinSequence ) ) ; consistency for b1 being FinSequence st Depth phi = n + 1 & not phi is exal & Depth phi = n + 1 & phi is exal & (S -firstChar) . phi <> l holds ( b1 = (<*(TheNorSymbOf S)*> ^ (f . (head phi))) ^ (f . (tail phi)) iff b1 = <* 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))) ) ; end; :: deftheorem Def20 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 ) ); registration let S be Language; cluster -> FinSequence-yielding for Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)); coherence for b1 being Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)) holds b1 is FinSequence-yielding ; end; Lm42: 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 proof let n be Nat; ::_thesis: 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 let S be Language; ::_thesis: 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 let l be literal Element of S; ::_thesis: 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 let t be termal string of S; ::_thesis: 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 let phi be wff string of S; ::_thesis: for f being Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)) holds (l,t,n,f) Subst2 phi is wff string of S set FF = AllFormulasOf S; set h = head phi; set d = Depth phi; set F = S -firstChar ; let f be Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)); ::_thesis: (l,t,n,f) Subst2 phi is wff string of S reconsider ff = f as Function of (AllFormulasOf S),(AllFormulasOf S) ; set IT = (l,t,n,f) Subst2 phi; set N = TheNorSymbOf S; set L = LettersOf S; set X = (LettersOf S) \ (((rng t) \/ (rng (head phi))) \/ {l}); set ll1 = the Element of (LettersOf S) \ (((rng t) \/ (rng (head phi))) \/ {l}); reconsider hh = head phi, phii = phi as Element of AllFormulasOf S by FOMODEL2:16; reconsider newhead = ff . hh as wff string of S by TARSKI:def_3; reconsider XX = (LettersOf S) \ (((rng t) \/ (rng (head phi))) \/ {l}) as non empty Subset of (LettersOf S) ; the Element of (LettersOf S) \ (((rng t) \/ (rng (head phi))) \/ {l}) is Element of XX ; then reconsider l1 = the Element of (LettersOf S) \ (((rng t) \/ (rng (head phi))) \/ {l}) as literal Element of S ; percases ( ( Depth phi = n + 1 & not phi is exal ) or ( Depth phi = n + 1 & phi is exal & (S -firstChar) . phi <> l ) or Depth phi <> n + 1 or (S -firstChar) . phi = l ) ; supposeA1: ( Depth phi = n + 1 & not phi is exal ) ; ::_thesis: (l,t,n,f) Subst2 phi is wff string of S then not phi is 0 -wff ; then reconsider phiii = phi as non 0wff wff non exal string of S by A1; reconsider ttt = tail phiii as wff string of S ; reconsider tt = ttt as Element of AllFormulasOf S by FOMODEL2:16; reconsider newtail = ff . tt as wff string of S by TARSKI:def_3; (l,t,n,f) Subst2 phi = (<*(TheNorSymbOf S)*> ^ newhead) ^ newtail by A1, Def20; hence (l,t,n,f) Subst2 phi is wff string of S ; ::_thesis: verum end; supposeA2: ( Depth phi = n + 1 & phi is exal & (S -firstChar) . phi <> l ) ; ::_thesis: (l,t,n,f) Subst2 phi is wff string of S reconsider phiii = phi as non 0wff wff exal string of S by A2; reconsider l = (S -firstChar) . phiii as literal Element of S ; reconsider newhead = (l,l1) -SymbolSubstIn (head phi) as wff string of S ; reconsider newheadd = newhead as Element of AllFormulasOf S by FOMODEL2:16; reconsider newesthead = ff . newheadd as wff string of S by TARSKI:def_3; (l,t,n,f) Subst2 phi = <*l1*> ^ newesthead by A2, Def20; hence (l,t,n,f) Subst2 phi is wff string of S ; ::_thesis: verum end; suppose Depth phi <> n + 1 ; ::_thesis: (l,t,n,f) Subst2 phi is wff string of S then (l,t,n,f) Subst2 phi = ff . phii by Def20; hence (l,t,n,f) Subst2 phi is wff string of S by TARSKI:def_3; ::_thesis: verum end; suppose (S -firstChar) . phi = l ; ::_thesis: (l,t,n,f) Subst2 phi is wff string of S then ( (S -firstChar) . phi = l & phi is exal ) by FOMODEL2:def_32; then (l,t,n,f) Subst2 phi = ff . phii by Def20; hence (l,t,n,f) Subst2 phi is wff string of S by TARSKI:def_3; ::_thesis: verum end; end; end; 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)); let phi be wff string of S; :: original: Subst2 redefine func(l,t,n,f) Subst2 phi -> wff string of S; coherence (l,t,n,f) Subst2 phi is wff string of S by Lm42; end; registration 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)); let phi be wff string of S; cluster(l,t,n,f) Subst2 phi -> wff for string of S; coherence for b1 being string of S st b1 = (l,t,n,f) Subst2 phi holds b1 is wff ; end; definition let S be Language; let l be literal Element of S; let t be termal string of S; let nn be Element of NAT ; let f be Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)); let phi be wff string of S; :: original: Subst2 redefine func(l,t,nn,f) Subst2 phi -> Element of AllFormulasOf S; coherence (l,t,nn,f) Subst2 phi is Element of AllFormulasOf S proof (l,t,nn,f) Subst2 phi in AllFormulasOf S by FOMODEL2:16; hence (l,t,nn,f) Subst2 phi is Element of AllFormulasOf S ; ::_thesis: verum end; end; 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 :Def21: :: FOMODEL3:def 21 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 proof reconsider nn = n as Element of NAT by ORDINAL1:def_12; deffunc H1( Element of AllFormulasOf S) -> Element of AllFormulasOf S = (l,t,nn,f) Subst2 $1; consider g being Function of (AllFormulasOf S),(AllFormulasOf S) such that A1: for x being Element of AllFormulasOf S holds g . x = H1(x) from FUNCT_2:sch_4(); reconsider gg = g as Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)) by FUNCT_2:8; take gg ; ::_thesis: for phi being wff string of S holds gg . phi = (l,t,n,f) Subst2 phi now__::_thesis:_for_phi_being_wff_string_of_S_holds_gg_._phi_=_(l,t,nn,f)_Subst2_phi let phi be wff string of S; ::_thesis: gg . phi = (l,t,nn,f) Subst2 phi reconsider phii = phi as Element of AllFormulasOf S by FOMODEL2:16; g . phii = H1(phii) by A1; hence gg . phi = (l,t,nn,f) Subst2 phi ; ::_thesis: verum end; hence for phi being wff string of S holds gg . phi = (l,t,n,f) Subst2 phi ; ::_thesis: verum end; 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 proof let IT1, IT2 be Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)); ::_thesis: ( ( for phi being wff string of S holds IT1 . phi = (l,t,n,f) Subst2 phi ) & ( for phi being wff string of S holds IT2 . phi = (l,t,n,f) Subst2 phi ) implies IT1 = IT2 ) reconsider IT11 = IT1, IT22 = IT2 as Function of (AllFormulasOf S),(AllFormulasOf S) ; assume A2: for phi being wff string of S holds IT1 . phi = (l,t,n,f) Subst2 phi ; ::_thesis: ( ex phi being wff string of S st not IT2 . phi = (l,t,n,f) Subst2 phi or IT1 = IT2 ) assume A3: for phi being wff string of S holds IT2 . phi = (l,t,n,f) Subst2 phi ; ::_thesis: IT1 = IT2 now__::_thesis:_for_x_being_set_st_x_in_AllFormulasOf_S_holds_ IT11_._x_=_IT22_._x let x be set ; ::_thesis: ( x in AllFormulasOf S implies IT11 . x = IT22 . x ) assume x in AllFormulasOf S ; ::_thesis: IT11 . x = IT22 . x then reconsider phi = x as wff string of S ; IT1 . phi = (l,t,n,f) Subst2 phi by A2 .= IT2 . phi by A3 ; hence IT11 . x = IT22 . x ; ::_thesis: verum end; hence IT1 = IT2 by FUNCT_2:12; ::_thesis: verum end; end; :: deftheorem Def21 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 :Def22: :: FOMODEL3:def 22 ( 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 ) ) proof consider g being Function of NAT,(Funcs ((AllFormulasOf S),(AllFormulasOf S))) such that A1: ( g . 0 = f & ( for m being Nat holds g . (m + 1) = H1(m,g . m) ) ) from NAT_1:sch_12(); take g ; ::_thesis: ( g . 0 = f & ( for m being Nat holds g . (m + 1) = (l,t,m,(g . m)) Subst3 ) ) thus ( g . 0 = f & ( for m being Nat holds g . (m + 1) = (l,t,m,(g . m)) Subst3 ) ) by A1; ::_thesis: verum end; 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 proof let IT1, IT2 be Function of NAT,(Funcs ((AllFormulasOf S),(AllFormulasOf S))); ::_thesis: ( IT1 . 0 = f & ( for m being Nat holds IT1 . (m + 1) = (l,t,m,(IT1 . m)) Subst3 ) & IT2 . 0 = f & ( for m being Nat holds IT2 . (m + 1) = (l,t,m,(IT2 . m)) Subst3 ) implies IT1 = IT2 ) assume that A2: IT1 . 0 = f and A3: for m being Nat holds IT1 . (m + 1) = H1(m,IT1 . m) and A4: IT2 . 0 = f and A5: for m being Nat holds IT2 . (m + 1) = H1(m,IT2 . m) ; ::_thesis: IT1 = IT2 IT1 = IT2 from NAT_1:sch_16(A2, A3, A4, A5); hence IT1 = IT2 ; ::_thesis: verum end; end; :: deftheorem Def22 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 ) ) ); definition let S be Language; let l be literal Element of S; let t be termal string of S; set AF = AtomicFormulasOf S; set TT = AllTermsOf S; funcl AtomicSubst t -> Function of (AtomicFormulasOf S),(AtomicFormulasOf S) means :Def23: :: FOMODEL3:def 23 for phi0 being 0wff string of S for tt being Element of AllTermsOf S st tt = t holds it . phi0 = (l,tt) AtomicSubst phi0; existence ex b1 being Function of (AtomicFormulasOf S),(AtomicFormulasOf S) st for phi0 being 0wff string of S for tt being Element of AllTermsOf S st tt = t holds b1 . phi0 = (l,tt) AtomicSubst phi0 proof reconsider tt = t as Element of AllTermsOf S by FOMODEL1:def_32; deffunc H1( Element of AtomicFormulasOf S) -> string of S = (l,tt) AtomicSubst $1; consider f being Function such that A1: ( dom f = AtomicFormulasOf S & ( for x being Element of AtomicFormulasOf S holds f . x = H1(x) ) ) from FUNCT_1:sch_4(); now__::_thesis:_for_x_being_set_st_x_in_AtomicFormulasOf_S_holds_ f_._x_in_AtomicFormulasOf_S let x be set ; ::_thesis: ( x in AtomicFormulasOf S implies f . x in AtomicFormulasOf S ) assume x in AtomicFormulasOf S ; ::_thesis: f . x in AtomicFormulasOf S then reconsider tt = x as Element of AtomicFormulasOf S ; f . tt = H1(tt) by A1; then reconsider y = f . x as 0wff string of S ; y in AtomicFormulasOf S ; hence f . x in AtomicFormulasOf S ; ::_thesis: verum end; then reconsider ff = f as Function of (AtomicFormulasOf S),(AtomicFormulasOf S) by A1, FUNCT_2:3; take ff ; ::_thesis: for phi0 being 0wff string of S for tt being Element of AllTermsOf S st tt = t holds ff . phi0 = (l,tt) AtomicSubst phi0 hereby ::_thesis: verum let phi0 be 0wff string of S; ::_thesis: for tt1 being Element of AllTermsOf S st tt1 = t holds ff . phi0 = (l,tt1) AtomicSubst phi0 let tt1 be Element of AllTermsOf S; ::_thesis: ( tt1 = t implies ff . phi0 = (l,tt1) AtomicSubst phi0 ) phi0 in AtomicFormulasOf S ; then reconsider phi = phi0 as Element of AtomicFormulasOf S ; assume tt1 = t ; ::_thesis: ff . phi0 = (l,tt1) AtomicSubst phi0 then ( tt1 = tt & f . phi = (l,tt) AtomicSubst phi ) by A1; hence ff . phi0 = (l,tt1) AtomicSubst phi0 ; ::_thesis: verum end; end; uniqueness for b1, b2 being Function of (AtomicFormulasOf S),(AtomicFormulasOf S) st ( for phi0 being 0wff string of S for tt being Element of AllTermsOf S st tt = t holds b1 . phi0 = (l,tt) AtomicSubst phi0 ) & ( for phi0 being 0wff string of S for tt being Element of AllTermsOf S st tt = t holds b2 . phi0 = (l,tt) AtomicSubst phi0 ) holds b1 = b2 proof reconsider tt = t as Element of AllTermsOf S by FOMODEL1:def_32; let IT1, IT2 be Function of (AtomicFormulasOf S),(AtomicFormulasOf S); ::_thesis: ( ( for phi0 being 0wff string of S for tt being Element of AllTermsOf S st tt = t holds IT1 . phi0 = (l,tt) AtomicSubst phi0 ) & ( for phi0 being 0wff string of S for tt being Element of AllTermsOf S st tt = t holds IT2 . phi0 = (l,tt) AtomicSubst phi0 ) implies IT1 = IT2 ) assume that A2: for phi0 being 0wff string of S for tt being Element of AllTermsOf S st tt = t holds IT1 . phi0 = (l,tt) AtomicSubst phi0 and A3: for phi0 being 0wff string of S for tt being Element of AllTermsOf S st tt = t holds IT2 . phi0 = (l,tt) AtomicSubst phi0 ; ::_thesis: IT1 = IT2 now__::_thesis:_for_x_being_Element_of_AtomicFormulasOf_S_holds_IT1_._x_=_IT2_._x let x be Element of AtomicFormulasOf S; ::_thesis: IT1 . x = IT2 . x consider w being string of S such that A4: ( x = w & w is 0wff ) ; reconsider phi0 = w as 0wff string of S by A4; IT1 . phi0 = (l,tt) AtomicSubst phi0 by A2 .= IT2 . phi0 by A3 ; hence IT1 . x = IT2 . x by A4; ::_thesis: verum end; hence IT1 = IT2 by FUNCT_2:63; ::_thesis: verum end; end; :: deftheorem Def23 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 ); definition let S be Language; let l be literal Element of S; let t be termal string of S; funcl Subst1 t -> Function equals :: FOMODEL3:def 24 (id (AllFormulasOf S)) +* (l AtomicSubst t); coherence (id (AllFormulasOf S)) +* (l AtomicSubst t) is Function ; end; :: 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); Lm43: 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)) proof let S be Language; ::_thesis: for l being literal Element of S for t being termal string of S holds l Subst1 t in Funcs ((AllFormulasOf S),(AllFormulasOf S)) let l be literal Element of S; ::_thesis: for t being termal string of S holds l Subst1 t in Funcs ((AllFormulasOf S),(AllFormulasOf S)) let t be termal string of S; ::_thesis: l Subst1 t in Funcs ((AllFormulasOf S),(AllFormulasOf S)) set FF = AllFormulasOf S; set g = l AtomicSubst t; set AF = AtomicFormulasOf S; set E = the Element of AllFormulasOf S; set f = id (AllFormulasOf S); set IT = (id (AllFormulasOf S)) +* (l AtomicSubst t); set SS = AllSymbolsOf S; reconsider FFF = AllFormulasOf S as Subset of ((AllSymbolsOf S) *) by XBOOLE_1:1; (AtomicFormulasOf S) \ (AllFormulasOf S) = {} ; then reconsider AFF = AtomicFormulasOf S as Subset of (AllFormulasOf S) by XBOOLE_1:37; ( dom (id (AllFormulasOf S)) = AllFormulasOf S & dom (l AtomicSubst t) = AFF ) by FUNCT_2:def_1; then A1: dom ((id (AllFormulasOf S)) +* (l AtomicSubst t)) = (AllFormulasOf S) null AFF by FUNCT_4:def_1; reconsider gg = l AtomicSubst t as AFF -valued Function ; reconsider ff = id (AllFormulasOf S) as AllFormulasOf S -valued Function ; ( (id (AllFormulasOf S)) +* (l AtomicSubst t) = (id (AllFormulasOf S)) +* (l AtomicSubst t) & dom ((id (AllFormulasOf S)) +* (l AtomicSubst t)) = AllFormulasOf S & rng ((id (AllFormulasOf S)) +* (l AtomicSubst t)) c= AllFormulasOf S ) by A1, RELAT_1:def_19; hence l Subst1 t in Funcs ((AllFormulasOf S),(AllFormulasOf S)) by FUNCT_2:def_2; ::_thesis: verum end; definition let S be Language; let l be literal Element of S; let t be termal string of S; :: original: Subst1 redefine funcl Subst1 t -> Element of Funcs ((AllFormulasOf S),((AllSymbolsOf S) *)); coherence l Subst1 t is Element of Funcs ((AllFormulasOf S),((AllSymbolsOf S) *)) proof set FF = AllFormulasOf S; set SS = AllSymbolsOf S; set IT = l Subst1 t; AllFormulasOf S c= (AllSymbolsOf S) * by XBOOLE_1:1; then ( l Subst1 t in Funcs ((AllFormulasOf S),(AllFormulasOf S)) & Funcs ((AllFormulasOf S),(AllFormulasOf S)) c= Funcs ((AllFormulasOf S),((AllSymbolsOf S) *)) ) by Lm43, FUNCT_5:56; hence l Subst1 t is Element of Funcs ((AllFormulasOf S),((AllSymbolsOf S) *)) ; ::_thesis: verum end; end; definition let S be Language; let l be literal Element of S; let t be termal string of S; :: original: Subst1 redefine funcl Subst1 t -> Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)); coherence l Subst1 t is Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)) by Lm43; end; definition let S be Language; let l be literal Element of S; let t be termal string of S; let phi be wff string of S; func(l,t) SubstIn phi -> wff string of S equals :: FOMODEL3:def 25 (((l,t) Subst4 (l Subst1 t)) . (Depth phi)) . phi; coherence (((l,t) Subst4 (l Subst1 t)) . (Depth phi)) . phi is wff string of S proof set FF = AllFormulasOf S; set D = Funcs ((AllFormulasOf S),(AllFormulasOf S)); reconsider d = Depth phi as Element of NAT by ORDINAL1:def_12; reconsider F = (l,t) Subst4 (l Subst1 t) as Function of NAT,(Funcs ((AllFormulasOf S),(AllFormulasOf S))) ; F . d is Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)) ; then reconsider f = F . d as Function of (AllFormulasOf S),(AllFormulasOf S) ; reconsider phii = phi as Element of AllFormulasOf S by FOMODEL2:16; f . phii is wff string of S by TARSKI:def_3; hence (((l,t) Subst4 (l Subst1 t)) . (Depth phi)) . phi is wff string of S ; ::_thesis: verum end; end; :: 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; registration let S be Language; let l be literal Element of S; let t be termal string of S; let phi be wff string of S; cluster(l,t) SubstIn phi -> wff for string of S; coherence for b1 being string of S st b1 = (l,t) SubstIn phi holds b1 is wff ; end; Lm44: 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 proof let m be Nat; ::_thesis: 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 let S be Language; ::_thesis: 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 let l be literal Element of S; ::_thesis: 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 let t be termal string of S; ::_thesis: 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 let phi be wff string of S; ::_thesis: 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 set FF = AllFormulasOf S; set D = Funcs ((AllFormulasOf S),(AllFormulasOf S)); let f be Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)); ::_thesis: (((l,t) Subst4 f) . (m + 1)) . phi = (l,t,m,(((l,t) Subst4 f) . m)) Subst2 phi reconsider mm = m as Element of NAT by ORDINAL1:def_12; set f4 = (l,t) Subst4 f; set f3 = (l,t,m,(((l,t) Subst4 f) . mm)) Subst3 ; (((l,t) Subst4 f) . (mm + 1)) . phi = ((l,t,m,(((l,t) Subst4 f) . mm)) Subst3) . phi by Def22 .= (l,t,m,(((l,t) Subst4 f) . mm)) Subst2 phi by Def21 ; hence (((l,t) Subst4 f) . (m + 1)) . phi = (l,t,m,(((l,t) Subst4 f) . m)) Subst2 phi ; ::_thesis: verum end; Lm45: 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 ) ) proof let m be Nat; ::_thesis: 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 ) ) let S be Language; ::_thesis: 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 ) ) let l be literal Element of S; ::_thesis: 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 ) ) let t be termal string of S; ::_thesis: 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 ) ) let phi be wff string of S; ::_thesis: 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 ) ) set TT = AllTermsOf S; set FF = AllFormulasOf S; set F = S -firstChar ; let f be Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)); ::_thesis: ( (((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 ) ) reconsider tt = t as Element of AllTermsOf S by FOMODEL1:def_32; set f0 = l Subst1 t; set f4 = (l,t) Subst4 (l Subst1 t); set N = TheNorSymbOf S; set L = LettersOf S; set h = head phi; set d = Depth phi; set d1 = Depth (head phi); set AF = AtomicFormulasOf S; set f5 = (l,t) Subst4 f; defpred S1[ Nat] means ( (((l,t) Subst4 f) . ((Depth phi) + $1)) . phi = (((l,t) Subst4 f) . (Depth phi)) . phi & ( (S -firstChar) . phi = l implies (((l,t) Subst4 (l Subst1 t)) . $1) . phi = phi ) ); A1: S1[ 0 ] proof thus (((l,t) Subst4 f) . ((Depth phi) + 0)) . phi = (((l,t) Subst4 f) . (Depth phi)) . phi ; ::_thesis: ( (S -firstChar) . phi = l implies (((l,t) Subst4 (l Subst1 t)) . 0) . phi = phi ) assume A2: (S -firstChar) . phi = l ; ::_thesis: (((l,t) Subst4 (l Subst1 t)) . 0) . phi = phi then reconsider phii = phi as non 0wff wff string of S ; reconsider phiii = phii as Element of AllFormulasOf S by FOMODEL2:16; ((S -firstChar) . phi) \+\ (TheNorSymbOf S) <> {} by A2, FOMODEL0:29; then reconsider phii = phii as non 0wff wff exal string of S ; A3: ((id (AllFormulasOf S)) . phiii) \+\ phiii = {} ; not phii in dom (l AtomicSubst t) ; then A4: (l Subst1 t) . phii = (id (AllFormulasOf S)) . phii by FUNCT_4:11 .= phii by A3, FOMODEL0:29 ; reconsider tt = tail phii as empty set ; thus (((l,t) Subst4 (l Subst1 t)) . 0) . phi = phi by Def22, A4; ::_thesis: verum end; A5: for n being Nat st S1[n] holds S1[n + 1] proof let n be Nat; ::_thesis: ( S1[n] implies S1[n + 1] ) assume A6: S1[n] ; ::_thesis: S1[n + 1] then ( Depth phi <> (Depth phi) + (n + 1) & S1[n] ) ; then A7: ( Depth phi <> ((Depth phi) + n) + 1 & S1[n] ) ; thus (((l,t) Subst4 f) . ((Depth phi) + (n + 1))) . phi = (((l,t) Subst4 f) . (((Depth phi) + n) + 1)) . phi .= (l,t,((Depth phi) + n),(((l,t) Subst4 f) . ((Depth phi) + n))) Subst2 phi by Lm44 .= (((l,t) Subst4 f) . (Depth phi)) . phi by A7, Def20 ; ::_thesis: ( (S -firstChar) . phi = l implies (((l,t) Subst4 (l Subst1 t)) . (n + 1)) . phi = phi ) assume A8: (S -firstChar) . phi = l ; ::_thesis: (((l,t) Subst4 (l Subst1 t)) . (n + 1)) . phi = phi then ( ((S -firstChar) . phi) \+\ (TheNorSymbOf S) <> {} & not phi is 0 -wff ) by FOMODEL0:29; then ( not phi is 0wff & ( phi is exal or phi is 0wff ) ) ; then reconsider phii = phi as non 0wff wff exal string of S ; thus (((l,t) Subst4 (l Subst1 t)) . (n + 1)) . phi = (l,t,n,(((l,t) Subst4 (l Subst1 t)) . n)) Subst2 phii by Lm44 .= phi by A6, A8, Def20 ; ::_thesis: verum end; for n being Nat holds S1[n] from NAT_1:sch_2(A1, A5); hence ( (((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 ) ) ; ::_thesis: verum end; Lm46: 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 proof let m be Nat; ::_thesis: 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 let S be Language; ::_thesis: 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 let l be literal Element of S; ::_thesis: 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 let t be termal string of S; ::_thesis: 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 let phi be wff string of S; ::_thesis: ( phi is m -wff implies (l,t) SubstIn phi = (((l,t) Subst4 (l Subst1 t)) . m) . phi ) set d = Depth phi; set FF = AllFormulasOf S; reconsider f = l Subst1 t as Element of Funcs ((AllFormulasOf S),(AllFormulasOf S)) ; assume phi is m -wff ; ::_thesis: (l,t) SubstIn phi = (((l,t) Subst4 (l Subst1 t)) . m) . phi then reconsider k = m - (Depth phi) as Nat ; (((l,t) Subst4 f) . ((Depth phi) + k)) . phi = (l,t) SubstIn phi by Lm45; hence (l,t) SubstIn phi = (((l,t) Subst4 (l Subst1 t)) . m) . phi ; ::_thesis: verum end; registration let S be Language; let l be literal Element of S; let tt be Element of AllTermsOf S; let phi0 be 0wff string of S; identify(l,tt) SubstIn phi0 with (l,tt) AtomicSubst phi0; compatibility (l,tt) SubstIn phi0 = (l,tt) AtomicSubst phi0 proof set LH = (l,tt) SubstIn phi0; set RH = (l,tt) AtomicSubst phi0; set f1 = l Subst1 tt; set f4 = (l,tt) Subst4 (l Subst1 tt); set f0 = l AtomicSubst tt; set AF = AtomicFormulasOf S; ( phi0 in AtomicFormulasOf S & dom (l AtomicSubst tt) = AtomicFormulasOf S ) by FUNCT_2:def_1; then reconsider phi00 = phi0 as Element of dom (l AtomicSubst tt) ; thus (l,tt) SubstIn phi0 = (l Subst1 tt) . phi00 by Def22 .= (l AtomicSubst tt) . phi00 by FUNCT_4:13 .= (l,tt) AtomicSubst phi0 by Def23 ; ::_thesis: verum end; identify(l,tt) AtomicSubst phi0 with (l,tt) SubstIn phi0; compatibility (l,tt) AtomicSubst phi0 = (l,tt) SubstIn phi0 ; end; theorem Th10: :: FOMODEL3:10 for U being non empty set for S being Language for l being literal Element of S for psi being wff string of S for tt being Element of AllTermsOf S holds ( 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 let U be non empty set ; ::_thesis: for S being Language for l being literal Element of S for psi being wff string of S for tt being Element of AllTermsOf S holds ( 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 ) ) let S be Language; ::_thesis: for l being literal Element of S for psi being wff string of S for tt being Element of AllTermsOf S holds ( 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 ) ) let l be literal Element of S; ::_thesis: for psi being wff string of S for tt being Element of AllTermsOf S holds ( 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 ) ) let psi be wff string of S; ::_thesis: for tt being Element of AllTermsOf S holds ( 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 ) ) let tt be Element of AllTermsOf S; ::_thesis: ( 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 ) ) set II = U -InterpretersOf S; set TT = AllTermsOf S; set AF = AtomicFormulasOf S; set F = S -firstChar ; set L = LettersOf S; set f0 = l AtomicSubst tt; set f1 = l Subst1 tt; set f4 = (l,tt) Subst4 (l Subst1 tt); set FF = AllFormulasOf S; set N = TheNorSymbOf S; defpred S1[ Nat] means for phi being wff string of S st Depth phi <= $1 holds ( Depth ((l,tt) SubstIn phi) = Depth phi & ( for I being Element of U -InterpretersOf S 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) * by FINSEQ_1:def_11; A1: S1[ 0 ] proof let phi be wff string of S; ::_thesis: ( Depth phi <= 0 implies ( Depth ((l,tt) SubstIn phi) = Depth phi & ( for I being Element of U -InterpretersOf S holds I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi ) ) ) set d = Depth phi; set IT = (l,tt) SubstIn phi; assume A2: Depth phi <= 0 ; ::_thesis: ( Depth ((l,tt) SubstIn phi) = Depth phi & ( for I being Element of U -InterpretersOf S holds I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi ) ) reconsider phii = phi as 0wff string of S by A2; Depth ((l,tt) SubstIn phii) = 0 ; hence Depth ((l,tt) SubstIn phi) = Depth phi ; ::_thesis: for I being Element of U -InterpretersOf S holds I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi let I be Element of U -InterpretersOf S; ::_thesis: I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi set u = (I -TermEval) . tt; set J = (l,((I -TermEval) . tt)) ReassignIn I; I -TruthEval ((l,tt) AtomicSubst phii) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phii by Th8; hence I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi ; ::_thesis: verum end; A3: for n being Nat st S1[n] holds S1[n + 1] proof let n be Nat; ::_thesis: ( S1[n] implies S1[n + 1] ) assume A4: S1[n] ; ::_thesis: S1[n + 1] let phi be wff string of S; ::_thesis: ( Depth phi <= n + 1 implies ( Depth ((l,tt) SubstIn phi) = Depth phi & ( for I being Element of U -InterpretersOf S holds I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi ) ) ) reconsider X = (LettersOf S) \ (((rng tt) \/ (rng (head phi))) \/ {l}) as infinite Subset of (LettersOf S) ; reconsider XX = X as non empty Subset of (LettersOf S) ; set ll2 = the Element of X; reconsider l2 = the Element of X as literal Element of S by TARSKI:def_3; assume A5: Depth phi <= n + 1 ; ::_thesis: ( Depth ((l,tt) SubstIn phi) = Depth phi & ( for I being Element of U -InterpretersOf S holds I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi ) ) 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 A6: ( l2 <> l & not l2 in rng tt & not l2 in rng (head phi) ) by TARSKI:def_1, XBOOLE_0:def_3; percases ( phi is exal or ( not phi is exal & not phi is 0wff ) or phi is 0wff ) ; suppose phi is exal ; ::_thesis: ( Depth ((l,tt) SubstIn phi) = Depth phi & ( for I being Element of U -InterpretersOf S holds I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi ) ) then reconsider phii = phi as non 0wff wff exal string of S ; consider m being Nat such that A7: Depth phii = m + 1 by NAT_1:6; reconsider mm = m as Element of NAT by ORDINAL1:def_12; A8: m <= n by A5, A7, XREAL_1:6; reconsider phii = phii as non 0wff m + 1 -wff exal string of S by A7, FOMODEL2:def_31; set IT = (l,tt) SubstIn phii; set d = Depth phii; reconsider l1 = (S -firstChar) . phii as literal Element of S ; reconsider phi1 = head phii as Element of AllFormulasOf S 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) \+\ (Depth phi1) = {} ; then A9: Depth psi1 = Depth phi1 by FOMODEL0:29; reconsider Phi1 = (l,tt) SubstIn psi1 as wff string of S ; A10: phii = (<*l1*> ^ phi1) ^ phi2 by FOMODEL2:23 .= <*l1*> ^ phi1 ; Depth phi1 <= m by FOMODEL2:def_31; then A11: Depth phi1 <= n by A8, XXREAL_0:2; then A12: Depth Phi1 = Depth (head phii) by A4, A9; reconsider m1 = m - (Depth phi1) as Nat ; reconsider new1 = (l,tt) SubstIn phi1 as wff string of S ; set d11 = Depth new1; A13: (l,tt) SubstIn phii = (l,tt,m,(((l,tt) Subst4 (l Subst1 tt)) . mm)) Subst2 phii by A7, Lm44; percases ( l1 <> l or l1 = l ) ; suppose l1 <> l ; ::_thesis: ( Depth ((l,tt) SubstIn phi) = Depth phi & ( for I being Element of U -InterpretersOf S holds I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi ) ) then A14: (l,tt) SubstIn phii = <*l2*> ^ ((((l,tt) Subst4 (l Subst1 tt)) . mm) . ((l1,l2) -SymbolSubstIn phi1)) by A7, Def20, A13 .= <*l2*> ^ ((l,tt) SubstIn psi1) by Lm46 ; then Depth ((l,tt) SubstIn phii) = (Depth phi1) + 1 by A12, FOMODEL2:17 .= Depth phi by A10, FOMODEL2:17 ; hence Depth ((l,tt) SubstIn phi) = Depth phi ; ::_thesis: for I being Element of U -InterpretersOf S holds I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi let I be Element of U -InterpretersOf S; ::_thesis: I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi set tu = (I -TermEval) . tt; set It = (l,((I -TermEval) . tt)) ReassignIn I; ( I -TruthEval ((l,tt) SubstIn phii) = 1 iff ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phii = 1 ) proof hereby ::_thesis: ( ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phii = 1 implies I -TruthEval ((l,tt) SubstIn phii) = 1 ) assume I -TruthEval ((l,tt) SubstIn phii) = 1 ; ::_thesis: 1 = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phii then consider u being Element of U such that A15: ((l2,u) ReassignIn I) -TruthEval Phi1 = 1 by A14, FOMODEL2:19; set I2 = (l2,u) ReassignIn I; 1 = ((l,((((l2,u) ReassignIn I) -TermEval) . tt)) ReassignIn ((l2,u) ReassignIn I)) -TruthEval psi1 by A15, A9, A11, A4 .= ((l,((I -TermEval) . tt)) ReassignIn ((l2,u) ReassignIn I)) -TruthEval psi1 by A6, FOMODEL2:25 .= ((l2,u) ReassignIn ((l,((I -TermEval) . tt)) ReassignIn I)) -TruthEval psi1 by A6, FOMODEL0:43 .= ((l1,u) ReassignIn ((l,((I -TermEval) . tt)) ReassignIn I)) -TruthEval (head phii) by A6, Th9 ; hence 1 = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phii by A10, FOMODEL2:19; ::_thesis: verum end; assume ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phii = 1 ; ::_thesis: I -TruthEval ((l,tt) SubstIn phii) = 1 then consider u1 being Element of U such that A16: ((l1,u1) ReassignIn ((l,((I -TermEval) . tt)) ReassignIn I)) -TruthEval (head phii) = 1 by A10, FOMODEL2:19; 1 = ((l2,u1) ReassignIn ((l,((I -TermEval) . tt)) ReassignIn I)) -TruthEval psi1 by A16, Th9, A6 .= ((l,((I -TermEval) . tt)) ReassignIn ((l2,u1) ReassignIn I)) -TruthEval psi1 by A6, FOMODEL0:43 .= ((l,((((l2,u1) ReassignIn I) -TermEval) . tt)) ReassignIn ((l2,u1) ReassignIn I)) -TruthEval psi1 by A6, FOMODEL2:25 .= ((l2,u1) ReassignIn I) -TruthEval Phi1 by A9, A11, A4 ; hence I -TruthEval ((l,tt) SubstIn phii) = 1 by A14, FOMODEL2:19; ::_thesis: verum end; then ( I -TruthEval ((l,tt) SubstIn phii) = 1 iff not ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phii = 0 ) by FOMODEL0:39; hence I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi by FOMODEL0:39; ::_thesis: verum end; supposeA17: l1 = l ; ::_thesis: ( Depth ((l,tt) SubstIn phi) = Depth phi & ( for I being Element of U -InterpretersOf S holds I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi ) ) then A18: phi = (l,tt) SubstIn phii by Lm45; thus Depth ((l,tt) SubstIn phi) = Depth phi by A17, Lm45; ::_thesis: for I being Element of U -InterpretersOf S holds I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi let I be Element of U -InterpretersOf S; ::_thesis: I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi set tu = (I -TermEval) . tt; set It = (l,((I -TermEval) . tt)) ReassignIn I; ( ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phii = 1 iff I -TruthEval phii = 1 ) proof hereby ::_thesis: ( I -TruthEval phii = 1 implies ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phii = 1 ) assume ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phii = 1 ; ::_thesis: I -TruthEval phii = 1 then consider u being Element of U such that A19: ((l1,u) ReassignIn ((l,((I -TermEval) . tt)) ReassignIn I)) -TruthEval phi1 = 1 by A10, FOMODEL2:19; 1 = ((l1,u) ReassignIn I) -TruthEval phi1 by A19, A17, FOMODEL0:43; hence I -TruthEval phii = 1 by A10, FOMODEL2:19; ::_thesis: verum end; assume I -TruthEval phii = 1 ; ::_thesis: ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phii = 1 then consider u1 being Element of U such that A20: ((l1,u1) ReassignIn I) -TruthEval phi1 = 1 by A10, FOMODEL2:19; ((l1,u1) ReassignIn ((l,((I -TermEval) . tt)) ReassignIn I)) -TruthEval phi1 = 1 by A17, A20, FOMODEL0:43; hence ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phii = 1 by A10, FOMODEL2:19; ::_thesis: verum end; then ( ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi = 1 iff not I -TruthEval phi = 0 ) by FOMODEL0:39; hence I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi by A18, FOMODEL0:39; ::_thesis: verum end; end; end; suppose ( not phi is exal & not phi is 0wff ) ; ::_thesis: ( Depth ((l,tt) SubstIn phi) = Depth phi & ( for I being Element of U -InterpretersOf S holds I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi ) ) then reconsider phii = phi as non 0wff wff non exal string of S ; set IT = (l,tt) SubstIn phii; set d = Depth phii; consider m being Nat such that A21: Depth phii = m + 1 by NAT_1:6; reconsider mm = m as Element of NAT by ORDINAL1:def_12; A22: (m + 1) + (- 1) <= (n + 1) - 1 by A5, A21, XREAL_1:6; reconsider phii = phii as non 0wff m + 1 -wff non exal string of S by A21, FOMODEL2:def_31; reconsider phi1 = head phii, phi2 = tail phii as Element of AllFormulasOf S by FOMODEL2:16; set d1 = Depth phi1; set d2 = Depth phi2; ( ((S -firstChar) . phii) \+\ (TheNorSymbOf S) = {} & phii = (<*((S -firstChar) . phii)*> ^ phi1) ^ phi2 ) by FOMODEL2:23; then A23: phii = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 by FOMODEL0:29; A24: ( Depth phi1 <= m & Depth phi2 <= m ) by FOMODEL2:def_31; reconsider m1 = m - (Depth phi1), m2 = m - (Depth phi2) as Nat ; reconsider new1 = (l,tt) SubstIn phi1, new2 = (l,tt) SubstIn phi2 as wff string of S ; set d11 = Depth new1; set d22 = Depth new2; A25: ( Depth phi1 <= n & Depth phi2 <= n ) by A22, A24, XXREAL_0:2; A26: (l,tt) SubstIn phii = (l,tt,m,(((l,tt) Subst4 (l Subst1 tt)) . mm)) Subst2 phii by A21, Lm44 .= (<*(TheNorSymbOf S)*> ^ ((((l,tt) Subst4 (l Subst1 tt)) . ((Depth phi1) + m1)) . phi1)) ^ ((((l,tt) Subst4 (l Subst1 tt)) . ((Depth phi2) + m2)) . phi2) by Def20, A21 .= (<*(TheNorSymbOf S)*> ^ new1) ^ ((((l,tt) Subst4 (l Subst1 tt)) . ((Depth phi2) + m2)) . phi2) by Lm45 .= (<*(TheNorSymbOf S)*> ^ new1) ^ new2 by Lm45 ; then Depth ((l,tt) SubstIn phii) = 1 + (max ((Depth new1),(Depth new2))) by FOMODEL2:17 .= 1 + (max ((Depth phi1),(Depth new2))) by A25, A4 .= 1 + (max ((Depth phi1),(Depth phi2))) by A25, A4 .= Depth phii by A23, FOMODEL2:17 ; hence Depth ((l,tt) SubstIn phi) = Depth phi ; ::_thesis: for I being Element of U -InterpretersOf S holds I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi let I be Element of U -InterpretersOf S; ::_thesis: I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi set TE = I -TermEval ; set u = (I -TermEval) . tt; set J = (l,((I -TermEval) . tt)) ReassignIn I; set LH = I -TruthEval ((l,tt) SubstIn phii); set RH = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phii; ( I -TruthEval new1 = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi1 & I -TruthEval new2 = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi2 ) by A25, A4; then ( ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phii = 1 iff ( I -TruthEval new1 = 0 & I -TruthEval new2 = 0 ) ) by A23, FOMODEL2:19; then ( I -TruthEval ((l,tt) SubstIn phii) = 1 iff not ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phii = 0 ) by A26, FOMODEL0:39, FOMODEL2:19; hence I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi by FOMODEL0:39; ::_thesis: verum end; suppose phi is 0wff ; ::_thesis: ( Depth ((l,tt) SubstIn phi) = Depth phi & ( for I being Element of U -InterpretersOf S holds I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi ) ) hence ( Depth ((l,tt) SubstIn phi) = Depth phi & ( for I being Element of U -InterpretersOf S holds I -TruthEval ((l,tt) SubstIn phi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval phi ) ) by A1; ::_thesis: verum end; end; end; A27: for m being Nat holds S1[m] from NAT_1:sch_2(A1, A3); set m = Depth psi; thus Depth ((l,tt) SubstIn psi) = Depth psi by A27; ::_thesis: for I being Element of U -InterpretersOf S holds I -TruthEval ((l,tt) SubstIn psi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval psi let I be Element of U -InterpretersOf S; ::_thesis: I -TruthEval ((l,tt) SubstIn psi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval psi thus I -TruthEval ((l,tt) SubstIn psi) = ((l,((I -TermEval) . tt)) ReassignIn I) -TruthEval psi by A27; ::_thesis: verum end; registration let m be Nat; let S be Language; let l be literal Element of S; let t be termal string of S; let phi be m -wff string of S; cluster(l,t) SubstIn phi -> m -wff for string of S; coherence for b1 being string of S st b1 = (l,t) SubstIn phi holds b1 is m -wff proof set d = Depth phi; set TT = AllTermsOf S; reconsider tt = t as Element of AllTermsOf S by FOMODEL1:def_32; set psi = (l,tt) SubstIn phi; reconsider k = m - (Depth phi) as Nat ; Depth ((l,tt) SubstIn phi) = Depth phi by Th10; then reconsider psii = (l,tt) SubstIn phi as Depth phi -wff string of S by FOMODEL2:def_31; psii is (Depth phi) + (0 * k) -wff ; then psii is (Depth phi) + k -wff ; hence for b1 being string of S st b1 = (l,t) SubstIn phi holds b1 is m -wff ; ::_thesis: verum end; end; Lm47: 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 *) proof let X be set ; ::_thesis: 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 *) let U be non empty set ; ::_thesis: 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 *) let S1, S2 be Language; ::_thesis: 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 *) set T1 = S1 -termsOfMaxDepth ; set O1 = OwnSymbolsOf S1; set TT1 = AllTermsOf S1; set SS1 = AllSymbolsOf S1; set L1 = LettersOf S1; set F1 = S1 -firstChar ; set C1 = S1 -multiCat ; set AT1 = AtomicTermsOf S1; set II1 = U -InterpretersOf S1; set a1 = the adicity of S1; set strings1 = ((AllSymbolsOf S1) *) \ {{}}; set T2 = S2 -termsOfMaxDepth ; set O2 = OwnSymbolsOf S2; set TT2 = AllTermsOf S2; set SS2 = AllSymbolsOf S2; set L2 = LettersOf S2; set F2 = S2 -firstChar ; set C2 = S2 -multiCat ; set AT2 = AtomicTermsOf S2; set II2 = U -InterpretersOf S2; set a2 = the adicity of S2; set strings2 = ((AllSymbolsOf S2) *) \ {{}}; let I1 be Element of U -InterpretersOf S1; ::_thesis: 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 *) let I2 be Element of U -InterpretersOf S2; ::_thesis: ( I1 | X = I2 | X & the adicity of S1 | X = the adicity of S2 | X implies (I1 -TermEval) | (X *) c= (I2 -TermEval) | (X *) ) A1: ( dom I1 = OwnSymbolsOf S1 & dom I2 = OwnSymbolsOf S2 ) by PARTFUN1:def_2; set E1 = I1 -TermEval ; set E2 = I2 -TermEval ; set I11 = I1 | X; set I22 = I2 | X; assume A2: I1 | X = I2 | X ; ::_thesis: ( not the adicity of S1 | X = the adicity of S2 | X or (I1 -TermEval) | (X *) c= (I2 -TermEval) | (X *) ) then A3: ( dom (I1 -TermEval) = AllTermsOf S1 & dom (I2 -TermEval) = AllTermsOf S2 & I1 | X = I2 | X ) by FUNCT_2:def_1; A4: X /\ (dom I1) = dom (I2 | X) by A2, RELAT_1:61 .= X /\ (dom I2) by RELAT_1:61 ; defpred S1[ Nat] means (I1 -TermEval) | ((X *) /\ ((S1 -termsOfMaxDepth) . $1)) c= (I2 -TermEval) | ((X *) /\ ((S2 -termsOfMaxDepth) . $1)); deffunc H1( set ) -> set = { <*x*> where x is Element of $1 : verum } ; A5: S1[ 0 ] proof A6: ( (S2 -termsOfMaxDepth) . 0 c= AllTermsOf S2 & (S1 -termsOfMaxDepth) . 0 c= AllTermsOf S1 ) by FOMODEL1:2; reconsider D1 = (X *) /\ ((S1 -termsOfMaxDepth) . 0) as Subset of (AllTermsOf S1) by A6, XBOOLE_1:1; reconsider D2 = (X *) /\ ((S2 -termsOfMaxDepth) . 0) as Subset of (AllTermsOf S2) by A6, XBOOLE_1:1; set f1 = (I1 -TermEval) | D1; set f2 = (I2 -TermEval) | D2; A7: ( dom ((I1 -TermEval) | D1) = D1 & dom ((I2 -TermEval) | D2) = D2 ) by PARTFUN1:def_2; now__::_thesis:_for_x_being_set_st_x_in_dom_((I1_-TermEval)_|_D1)_holds_ (_x_in_dom_((I2_-TermEval)_|_D2)_&_((I2_-TermEval)_|_D2)_._x_=_((I1_-TermEval)_|_D1)_._x_) let x be set ; ::_thesis: ( x in dom ((I1 -TermEval) | D1) implies ( x in dom ((I2 -TermEval) | D2) & ((I2 -TermEval) | D2) . x = ((I1 -TermEval) | D1) . x ) ) assume A8: x in dom ((I1 -TermEval) | D1) ; ::_thesis: ( x in dom ((I2 -TermEval) | D2) & ((I2 -TermEval) | D2) . x = ((I1 -TermEval) | D1) . x ) then A9: x in (X *) /\ (AtomicTermsOf S1) by A7, FOMODEL1:def_30; then A10: x in 1 -tuples_on (X /\ (LettersOf S1)) by FOMODEL0:2; then reconsider Y1 = X /\ (LettersOf S1) as non empty set ; Y1 <> {} ; then reconsider XX = X as non empty set ; reconsider xx = x as Element of X * by A8, A7; x in H1(Y1) by A10, FINSEQ_2:96; then consider y1 being Element of Y1 such that A11: x = <*y1*> ; y1 in Y1 ; then reconsider l1 = y1 as literal Element of S1 ; ( l1 in X & l1 in OwnSymbolsOf S1 ) by FOMODEL1:def_19, XBOOLE_0:def_4; then l1 in X /\ (OwnSymbolsOf S2) by A4, A1, XBOOLE_0:def_4; then reconsider s2 = l1 as own Element of S2 ; reconsider s22 = s2, l11 = l1 as Element of XX by XBOOLE_0:def_4; ( ((I2 | XX) . s22) \+\ (I2 . s22) = {} & ((I1 | XX) . l11) \+\ (I1 . l11) = {} ) ; then ( (I2 | X) . s2 = I2 . s2 & (I1 | X) . l1 = I1 . l1 ) by FOMODEL0:29; then 0 -tuples_on U = dom (I2 . s2) by A2, FUNCT_2:def_1 .= (abs (ar s2)) -tuples_on U by FUNCT_2:def_1 ; then ( not s2 is relational & not s2 is operational ) ; then reconsider l2 = s2 as literal Element of S2 ; x in AtomicTermsOf S1 by A9; then x in (S1 -termsOfMaxDepth) . 0 by FOMODEL1:def_30; then reconsider t1 = x as 0 -termal string of S1 by FOMODEL1:def_33; reconsider D11 = D1 as non empty Subset of (AllTermsOf S1) by A8; reconsider x1 = t1 as Element of D11 by A8; A12: ( l11 in XX & l2 in LettersOf S2 ) by FOMODEL1:def_14; then reconsider Y2 = XX /\ (LettersOf S2) as non empty set by XBOOLE_0:def_4; reconsider ll2 = l2 as Element of Y2 by A12, XBOOLE_0:def_4; <*ll2*> in H1(Y2) ; then <*ll2*> in 1 -tuples_on Y2 by FINSEQ_2:96; then A13: x in (X *) /\ (AtomicTermsOf S2) by A11, FOMODEL0:2; reconsider D22 = D2 as non empty Subset of (AllTermsOf S2) by A13, FOMODEL1:def_30; reconsider x2 = x as Element of D22 by A13, FOMODEL1:def_30; A14: t1 . 1 = y1 by A11, FINSEQ_1:40; then reconsider y11 = t1 . 1 as Element of XX by XBOOLE_0:def_4; ( ((I1 | XX) . y11) \+\ (I1 . y11) = {} & ((I2 | XX) . y11) \+\ (I2 . y11) = {} & (((I2 -TermEval) | D22) . x2) \+\ ((I2 -TermEval) . x2) = {} ) ; then A15: ( (I1 | X) . y11 = I1 . y11 & (I2 | X) . y11 = I2 . y11 & (I2 -TermEval) . x2 = ((I2 -TermEval) | D22) . x2 ) by FOMODEL0:29; (((I1 -TermEval) | D11) . x1) \+\ ((I1 -TermEval) . x1) = {} ; then ((I1 -TermEval) | D1) . x = (I1 -TermEval) . t1 by FOMODEL0:29 .= (I1 . ((S1 -firstChar) . t1)) . ((I1 -TermEval) * (SubTerms t1)) by FOMODEL2:21 .= (I2 . l2) . {} by A14, A2, A15, FOMODEL0:6 .= (I2 . (<*l2*> . 1)) . {} by FINSEQ_1:40 .= (I2 . ((S2 -firstChar) . <*l2*>)) . ((I2 -TermEval) * (SubTerms <*l2*>)) by FOMODEL0:6 .= ((I2 -TermEval) | D2) . x by A11, A15, FOMODEL2:21 ; hence ( x in dom ((I2 -TermEval) | D2) & ((I2 -TermEval) | D2) . x = ((I1 -TermEval) | D1) . x ) by A7, A13, FOMODEL1:def_30; ::_thesis: verum end; hence S1[ 0 ] by FOMODEL0:51; ::_thesis: verum end; assume A16: the adicity of S1 | X = the adicity of S2 | X ; ::_thesis: (I1 -TermEval) | (X *) c= (I2 -TermEval) | (X *) A17: for n being Nat st S1[n] holds S1[n + 1] proof let n be Nat; ::_thesis: ( S1[n] implies S1[n + 1] ) assume A18: S1[n] ; ::_thesis: S1[n + 1] reconsider nn = n, NN = n + 1 as Element of NAT by ORDINAL1:def_12; A19: ( (S2 -termsOfMaxDepth) . NN c= AllTermsOf S2 & (S1 -termsOfMaxDepth) . NN c= AllTermsOf S1 & (S1 -termsOfMaxDepth) . nn c= AllTermsOf S1 & (S2 -termsOfMaxDepth) . nn c= AllTermsOf S2 ) by FOMODEL1:2; reconsider D1 = (X *) /\ ((S1 -termsOfMaxDepth) . NN), d1 = (X *) /\ ((S1 -termsOfMaxDepth) . nn) as Subset of (AllTermsOf S1) by A19, XBOOLE_1:1; reconsider D2 = (X *) /\ ((S2 -termsOfMaxDepth) . NN), d2 = (X *) /\ ((S2 -termsOfMaxDepth) . nn) as Subset of (AllTermsOf S2) by A19, XBOOLE_1:1; set f1 = (I1 -TermEval) | D1; set f2 = (I2 -TermEval) | D2; A20: ( dom ((I1 -TermEval) | D1) = D1 & dom ((I2 -TermEval) | D2) = D2 & dom ((I1 -TermEval) | d1) = d1 & dom ((I2 -TermEval) | d2) = d2 ) by PARTFUN1:def_2; then A21: d1 c= d2 by A18, GRFUNC_1:2; reconsider d12 = d1 as Subset of d2 by A18, A20, GRFUNC_1:2; reconsider d21 = d12 as Subset of (AllTermsOf S2) by XBOOLE_1:1; now__::_thesis:_for_y_being_set_st_y_in_dom_((I1_-TermEval)_|_D1)_holds_ (_y_in_dom_((I2_-TermEval)_|_D2)_&_((I1_-TermEval)_|_D1)_._y_=_((I2_-TermEval)_|_D2)_._y_) let y be set ; ::_thesis: ( y in dom ((I1 -TermEval) | D1) implies ( b1 in dom ((I2 -TermEval) | D2) & ((I1 -TermEval) | D1) . b1 = ((I2 -TermEval) | D2) . b1 ) ) assume A22: y in dom ((I1 -TermEval) | D1) ; ::_thesis: ( b1 in dom ((I2 -TermEval) | D2) & ((I1 -TermEval) | D1) . b1 = ((I2 -TermEval) | D2) . b1 ) then reconsider D11 = D1 as non empty set ; reconsider y1 = y as Element of D11 by A22; y1 in (S1 -termsOfMaxDepth) . NN by XBOOLE_0:def_4; then reconsider t1 = y1 as nn + 1 -termal string of S1 by FOMODEL1:def_33; reconsider o1 = (S1 -firstChar) . t1 as termal Element of S1 ; set m1 = abs (ar o1); A23: ( t1 in X * & not t1 is empty ) by TARSKI:def_3; then reconsider XX = X as non empty set ; A24: y1 in XX * by TARSKI:def_3; {(t1 . 1)} \ XX = {} by A24; then A25: ( t1 . 1 in XX & o1 = t1 . 1 ) by FOMODEL0:6, ZFMISC_1:60; then ( o1 in XX & o1 in OwnSymbolsOf S1 ) by FOMODEL1:def_19; then o1 in XX /\ (OwnSymbolsOf S2) by A4, A1, XBOOLE_0:def_4; then reconsider o2 = o1 as own Element of S2 ; reconsider o22 = o2 as ofAtomicFormula Element of S2 ; reconsider ox = o1 as Element of XX by A25; ( ( the adicity of S1 . ox) \+\ (( the adicity of S1 | XX) . ox) = {} & ( the adicity of S2 . ox) \+\ (( the adicity of S2 | XX) . ox) = {} ) ; then A26: ( the adicity of S1 . o1 = ( the adicity of S1 | X) . o1 & the adicity of S2 . o2 = ( the adicity of S2 | X) . o2 ) by FOMODEL0:29; ar o1 = ar o22 by A26, A16; then not o22 is relational ; then reconsider o2 = o2 as termal Element of S2 ; set m2 = abs (ar o2); A27: ( (I1 . ox) \+\ ((I1 | XX) . ox) = {} & (I2 . ox) \+\ ((I2 | XX) . ox) = {} ) ; then A28: I1 . ox = (I1 | XX) . o1 by FOMODEL0:29 .= I2 . ox by A27, A2, FOMODEL0:29 ; set st1 = SubTerms t1; reconsider B = rng t1 as non empty Subset of XX by A24, RELAT_1:def_19; ( rng (SubTerms t1) c= (rng t1) * & B * c= XX * ) by RELAT_1:def_19; then A29: rng (SubTerms t1) c= XX * by XBOOLE_1:1; A30: rng (SubTerms t1) c= (S1 -termsOfMaxDepth) . n by RELAT_1:def_19; then rng (SubTerms t1) c= d1 by A29, XBOOLE_1:19; then A31: ( rng (SubTerms t1) c= ((AllSymbolsOf S1) *) \ {{}} & rng (SubTerms t1) c= d2 ) by A21, XBOOLE_1:1; then ( rng (SubTerms t1) c= ((AllSymbolsOf S1) *) \ {{}} & rng (SubTerms t1) c= ((AllSymbolsOf S2) *) \ {{}} ) by XBOOLE_1:1; then A32: ( rng (SubTerms t1) c= (AllSymbolsOf S1) * & rng (SubTerms t1) c= (AllSymbolsOf S2) * ) by XBOOLE_1:1; rng (SubTerms t1) c= (S2 -termsOfMaxDepth) . nn by A31, XBOOLE_1:1; then SubTerms t1 is (S2 -termsOfMaxDepth) . nn -valued by RELAT_1:def_19; then SubTerms t1 is abs (ar o2) -element FinSequence of (S2 -termsOfMaxDepth) . nn by A16, A26, FOMODEL0:26; then reconsider st2 = SubTerms t1 as abs (ar o2) -element Element of ((S2 -termsOfMaxDepth) . nn) * by FINSEQ_1:def_11; reconsider T2n = (S2 -termsOfMaxDepth) . nn as non empty Subset of (AllTermsOf S2) by FOMODEL1:2; st2 in T2n * ; then reconsider st22 = st2 as abs (ar o2) -element Element of (AllTermsOf S2) * ; reconsider t2 = o2 -compound st2 as nn + 1 -termal string of S2 ; percases ( t1 is 0 -termal or not t1 is 0 -termal ) ; suppose t1 is 0 -termal ; ::_thesis: ( b1 in dom ((I2 -TermEval) | D2) & ((I1 -TermEval) | D1) . b1 = ((I2 -TermEval) | D2) . b1 ) then reconsider t11 = t1 as 0 -termal string of S1 ; A33: ( t11 in X * & t11 in (S1 -termsOfMaxDepth) . 0 ) by FOMODEL1:def_33, TARSKI:def_3; then A34: t11 in (XX *) /\ ((S1 -termsOfMaxDepth) . 0) by XBOOLE_0:def_4; A35: ( (S2 -termsOfMaxDepth) . 0 c= AllTermsOf S2 & (S1 -termsOfMaxDepth) . 0 c= AllTermsOf S1 ) by FOMODEL1:2; reconsider A1 = (X *) /\ ((S1 -termsOfMaxDepth) . 0) as Subset of (AllTermsOf S1) by A35, XBOOLE_1:1; reconsider A2 = (X *) /\ ((S2 -termsOfMaxDepth) . 0) as Subset of (AllTermsOf S2) by A35, XBOOLE_1:1; set g1 = (I1 -TermEval) | A1; set g2 = (I2 -TermEval) | A2; A36: ( dom ((I1 -TermEval) | A1) = A1 & dom ((I2 -TermEval) | A2) = A2 ) by PARTFUN1:def_2; then A37: A1 c= A2 by A5, GRFUNC_1:2; then ( t11 in A2 & t11 in A1 ) by A34; then reconsider t2 = t11 as 0 -termal string of S2 by FOMODEL1:def_33; t2 is 0 + (0 * NN) -termal ; then t2 is 0 + NN -termal ; then A38: ( t2 in XX * & t2 in (S2 -termsOfMaxDepth) . NN ) by FOMODEL1:def_33, TARSKI:def_3; thus y in dom ((I2 -TermEval) | D2) by A20, A38, XBOOLE_0:def_4; ::_thesis: ((I1 -TermEval) | D1) . y = ((I2 -TermEval) | D2) . y reconsider D22 = D2 as non empty set by A38, XBOOLE_0:def_4; reconsider A11 = A1, A22 = A2 as non empty set by A36, A5, A33, XBOOLE_0:def_4; reconsider t111 = t11 as Element of A11 by A33, XBOOLE_0:def_4; reconsider t02 = t11 as Element of A22 by A37, A34; reconsider t20 = t2 as Element of D22 by A38, XBOOLE_0:def_4; ( (((I1 -TermEval) | D11) . y1) \+\ ((I1 -TermEval) . y1) = {} & (((I1 -TermEval) | ((X *) /\ ((S1 -termsOfMaxDepth) . 0))) . t111) \+\ ((I1 -TermEval) . t111) = {} & (((I2 -TermEval) | A2) . t02) \+\ ((I2 -TermEval) . t02) = {} & (((I2 -TermEval) | D22) . t20) \+\ ((I2 -TermEval) . t20) = {} ) ; then A39: ( ((I1 -TermEval) | D1) . y = (I1 -TermEval) . y & ((I1 -TermEval) | ((X *) /\ ((S1 -termsOfMaxDepth) . 0))) . y = (I1 -TermEval) . y & ((I2 -TermEval) | ((X *) /\ ((S2 -termsOfMaxDepth) . 0))) . y = (I2 -TermEval) . y & ((I2 -TermEval) | D2) . y = (I2 -TermEval) . y ) by FOMODEL0:29; thus ((I1 -TermEval) | D1) . y = ((I2 -TermEval) | D2) . y by A39, A5, A36, A34, GRFUNC_1:2; ::_thesis: verum end; suppose not t1 is 0 -termal ; ::_thesis: ( b1 in dom ((I2 -TermEval) | D2) & ((I1 -TermEval) | D1) . b1 = ((I2 -TermEval) | D2) . b1 ) then o1 is operational by FOMODEL1:16; then consider n1 being Nat such that A40: abs (ar o1) = n1 + 1 by NAT_1:6; reconsider nn1 = n1 as Element of NAT by ORDINAL1:def_12; reconsider st11 = SubTerms t1 as nn1 + 1 -element Element of (AllTermsOf S1) * by A40; A41: not st11 is {} * -valued ; st11 is (AllSymbolsOf S2) * -valued by A32, RELAT_1:def_19; then (S2 -multiCat) . st11 <> {} by A41, FOMODEL0:52; then A42: (S1 -multiCat) . (SubTerms t1) = (S2 -multiCat) . (SubTerms t1) by FOMODEL0:52; A43: t1 = t2 by A42, FOMODEL1:def_37; then ( t1 in X * & t1 in (S2 -termsOfMaxDepth) . NN ) by FOMODEL1:def_33, TARSKI:def_3; hence y in dom ((I2 -TermEval) | D2) by A20, XBOOLE_0:def_4; ::_thesis: ((I1 -TermEval) | D1) . y = ((I2 -TermEval) | D2) . y A44: ( t2 in (S2 -termsOfMaxDepth) . NN & t2 in X * ) by A42, A23, FOMODEL1:def_33, FOMODEL1:def_37; reconsider D22 = D2 as non empty set by A44, XBOOLE_0:def_4; reconsider tt2 = t2 as Element of D22 by A44, XBOOLE_0:def_4; A45: (S2 -firstChar) . t2 = t2 . 1 by FOMODEL0:6 .= o2 by FINSEQ_1:41 ; then A46: st22 = SubTerms t2 by FOMODEL1:def_37; A47: (I1 -TermEval) | d1 = ((I2 -TermEval) | d2) | d1 by A18, A20, GRFUNC_1:34 .= (I2 -TermEval) | (d12 null d2) by RELAT_1:71 ; ( (((I1 -TermEval) | D11) . y1) \+\ ((I1 -TermEval) . y1) = {} & (((I2 -TermEval) | D22) . tt2) \+\ ((I2 -TermEval) . tt2) = {} ) ; then A48: ( ((I1 -TermEval) | D1) . y1 = (I1 -TermEval) . y1 & ((I2 -TermEval) | D2) . t2 = (I2 -TermEval) . t2 ) by FOMODEL0:29; hence ((I1 -TermEval) | D1) . y = (I1 . o1) . ((I1 -TermEval) * (SubTerms t1)) by FOMODEL2:21 .= (I1 . o1) . (((I1 -TermEval) | d1) * (SubTerms t1)) by A20, A30, A29, RELAT_1:165, XBOOLE_1:19 .= (I1 . o1) . ((I2 -TermEval) * (SubTerms t1)) by A20, A30, A29, A47, RELAT_1:165, XBOOLE_1:19 .= ((I2 -TermEval) | D2) . y by A43, A48, A45, A46, A28, FOMODEL2:21 ; ::_thesis: verum end; end; end; hence S1[n + 1] by FOMODEL0:51; ::_thesis: verum end; A49: for n being Nat holds S1[n] from NAT_1:sch_2(A5, A17); now__::_thesis:_for_x_being_set_st_x_in_dom_((I1_-TermEval)_|_(X_*))_holds_ (_x_in_dom_((I2_-TermEval)_|_(X_*))_&_((I1_-TermEval)_|_(X_*))_._x_=_((I2_-TermEval)_|_(X_*))_._x_) set g1 = (I1 -TermEval) | (X *); set g2 = (I2 -TermEval) | (X *); A50: ( dom ((I1 -TermEval) | (X *)) = (X *) /\ (AllTermsOf S1) & dom ((I2 -TermEval) | (X *)) = (X *) /\ (AllTermsOf S2) ) by A3, RELAT_1:61; let x be set ; ::_thesis: ( x in dom ((I1 -TermEval) | (X *)) implies ( x in dom ((I2 -TermEval) | (X *)) & ((I1 -TermEval) | (X *)) . x = ((I2 -TermEval) | (X *)) . x ) ) assume A51: x in dom ((I1 -TermEval) | (X *)) ; ::_thesis: ( x in dom ((I2 -TermEval) | (X *)) & ((I1 -TermEval) | (X *)) . x = ((I2 -TermEval) | (X *)) . x ) then x in (X *) /\ (AllTermsOf S1) by A3, RELAT_1:61; then reconsider t1 = x as termal string of S1 ; set m1 = Depth t1; reconsider mm1 = Depth t1 as Element of NAT by ORDINAL1:def_12; reconsider t11 = t1 as Depth t1 -termal string of S1 by FOMODEL1:def_40; A52: ( t11 in (S1 -termsOfMaxDepth) . (Depth t1) & x in X * ) by A51, FOMODEL1:def_33; then A53: ( x in (X *) /\ ((S1 -termsOfMaxDepth) . (Depth t1)) & (S1 -termsOfMaxDepth) . mm1 c= AllTermsOf S1 & (S2 -termsOfMaxDepth) . mm1 c= AllTermsOf S2 ) by FOMODEL1:2, XBOOLE_0:def_4; then reconsider D1 = (X *) /\ ((S1 -termsOfMaxDepth) . (Depth t1)) as non empty Subset of (AllTermsOf S1) by XBOOLE_1:1; reconsider D2 = (X *) /\ ((S2 -termsOfMaxDepth) . (Depth t1)) as Subset of (AllTermsOf S2) by A53, XBOOLE_1:1; reconsider t111 = t1 as Element of D1 by A52, XBOOLE_0:def_4; set f1 = (I1 -TermEval) | D1; set f2 = (I2 -TermEval) | D2; A54: ( dom ((I1 -TermEval) | D1) = D1 & dom ((I2 -TermEval) | D2) = D2 ) by PARTFUN1:def_2; ( x in dom ((I1 -TermEval) | D1) & (I1 -TermEval) | D1 c= (I2 -TermEval) | D2 ) by A49, A53, PARTFUN1:def_2; then A55: ( x in dom ((I2 -TermEval) | D2) & ((I1 -TermEval) | D1) . x = ((I2 -TermEval) | D2) . x ) by FOMODEL0:51; then A56: ( x in (X *) /\ (AllTermsOf S2) & x in D2 ) by A54, XBOOLE_0:def_4; hence x in dom ((I2 -TermEval) | (X *)) by A3, RELAT_1:61; ::_thesis: ((I1 -TermEval) | (X *)) . x = ((I2 -TermEval) | (X *)) . x thus ((I1 -TermEval) | (X *)) . x = (I1 -TermEval) . t111 by A51, FUNCT_1:47 .= ((I1 -TermEval) | D1) . t111 by A54, FUNCT_1:47 .= (I2 -TermEval) . t111 by A55, FUNCT_1:49 .= ((I2 -TermEval) | (X *)) . x by A56, A50, FUNCT_1:47 ; ::_thesis: verum end; hence (I1 -TermEval) | (X *) c= (I2 -TermEval) | (X *) by FOMODEL0:51; ::_thesis: verum end; theorem Th11: :: FOMODEL3:11 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 *) = (I2 -TermEval) | (X *) proof let X be set ; ::_thesis: 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 *) = (I2 -TermEval) | (X *) let U be non empty set ; ::_thesis: 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 *) = (I2 -TermEval) | (X *) let S1, S2 be Language; ::_thesis: 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 *) = (I2 -TermEval) | (X *) set II1 = U -InterpretersOf S1; set II2 = U -InterpretersOf S2; let I1 be Element of U -InterpretersOf S1; ::_thesis: 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 *) = (I2 -TermEval) | (X *) let I2 be Element of U -InterpretersOf S2; ::_thesis: ( I1 | X = I2 | X & the adicity of S1 | X = the adicity of S2 | X implies (I1 -TermEval) | (X *) = (I2 -TermEval) | (X *) ) set E1 = I1 -TermEval ; set E2 = I2 -TermEval ; set D = X * ; set f1 = (I1 -TermEval) | (X *); set f2 = (I2 -TermEval) | (X *); set a1 = the adicity of S1; set a2 = the adicity of S2; assume ( I1 | X = I2 | X & the adicity of S1 | X = the adicity of S2 | X ) ; ::_thesis: (I1 -TermEval) | (X *) = (I2 -TermEval) | (X *) then ( (I1 -TermEval) | (X *) c= (I2 -TermEval) | (X *) & (I2 -TermEval) | (X *) c= (I1 -TermEval) | (X *) ) by Lm47; hence (I1 -TermEval) | (X *) = (I2 -TermEval) | (X *) by XBOOLE_0:def_10; ::_thesis: verum end; Lm48: 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 ) proof let U be non empty set ; ::_thesis: 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 ) let S1, S2 be Language; ::_thesis: 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 ) set II1 = U -InterpretersOf S1; set II2 = U -InterpretersOf S2; set a2 = the adicity of S2; set F2 = S2 -firstChar ; set E1 = TheEqSymbOf S1; set E2 = TheEqSymbOf S2; set TT1 = AllTermsOf S1; set TT2 = AllTermsOf S2; set O1 = OwnSymbolsOf S1; set O2 = OwnSymbolsOf S2; set C2 = S2 -multiCat ; set F1 = S1 -firstChar ; set TS1 = TermSymbolsOf S1; set TS2 = TermSymbolsOf S2; set a1 = the adicity of S1; set C1 = S1 -multiCat ; set AS1 = AtomicFormulaSymbolsOf S1; set AS2 = AtomicFormulaSymbolsOf S2; set d = U -deltaInterpreter ; set RR1 = RelSymbolsOf S1; reconsider TS1 = TermSymbolsOf S1 as non empty Subset of (OwnSymbolsOf S1) by FOMODEL1:1; reconsider TS2 = TermSymbolsOf S2 as non empty Subset of (OwnSymbolsOf S2) by FOMODEL1:1; let phi1 be 0wff string of S1; ::_thesis: 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 ) let I1 be Element of U -InterpretersOf S1; ::_thesis: 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 ) let I2 be Element of U -InterpretersOf S2; ::_thesis: ( 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 implies ex phi2 being 0wff string of S2 st ( phi2 = phi1 & I2 -AtomicEval phi2 = I1 -AtomicEval phi1 ) ) set TE1 = I1 -TermEval ; set TE2 = I2 -TermEval ; set X = (rng phi1) /\ (OwnSymbolsOf S1); assume A1: ( 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 ) ; ::_thesis: ex phi2 being 0wff string of S2 st ( phi2 = phi1 & I2 -AtomicEval phi2 = I1 -AtomicEval phi1 ) then A2: (I1 -TermEval) | (((rng phi1) /\ (OwnSymbolsOf S1)) *) = (I2 -TermEval) | (((rng phi1) /\ (OwnSymbolsOf S1)) *) by Th11; then A3: dom ((I1 -TermEval) | (((rng phi1) /\ (OwnSymbolsOf S1)) *)) = (((rng phi1) /\ (OwnSymbolsOf S1)) *) /\ (dom (I2 -TermEval)) by RELAT_1:61 .= (((rng phi1) /\ (OwnSymbolsOf S1)) *) /\ (AllTermsOf S2) by FUNCT_2:def_1 ; then A4: (((rng phi1) /\ (OwnSymbolsOf S1)) *) /\ (AllTermsOf S2) = (((rng phi1) /\ (OwnSymbolsOf S1)) *) /\ (dom (I1 -TermEval)) by RELAT_1:61 .= (((rng phi1) /\ (OwnSymbolsOf S1)) *) /\ (AllTermsOf S1) by FUNCT_2:def_1 ; reconsider r1 = (S1 -firstChar) . phi1 as relational Element of S1 ; set m = abs (ar r1); set Y1 = ((rng phi1) /\ (OwnSymbolsOf S1)) \/ {(TheEqSymbOf S1)}; set Y2 = ((rng phi1) /\ (OwnSymbolsOf S1)) \/ {(TheEqSymbOf S2)}; {((phi1 null {}) . 1)} \ ((rng phi1) \/ {}) = {} ; then phi1 . 1 in rng phi1 by ZFMISC_1:60; then A5: r1 in rng phi1 by FOMODEL0:6; ( r1 in {(TheEqSymbOf S1)} or not r1 in (RelSymbolsOf S1) \ (OwnSymbolsOf S1) ) by FOMODEL1:1; then A6: ( r1 in {(TheEqSymbOf S1)} or not r1 in RelSymbolsOf S1 or r1 in OwnSymbolsOf S1 ) by XBOOLE_0:def_5; then ( r1 in {(TheEqSymbOf S1)} or r1 in (rng phi1) /\ (OwnSymbolsOf S1) ) by A5, FOMODEL1:def_17, XBOOLE_0:def_4; then A7: r1 in ((rng phi1) /\ (OwnSymbolsOf S1)) \/ {(TheEqSymbOf S1)} by XBOOLE_0:def_3; reconsider t1 = SubTerms phi1 as (abs (ar r1)) + 0 -element FinSequence of AllTermsOf S1 by FOMODEL0:26; t1 is TS1 * -valued ; then ( t1 in (abs (ar r1)) -tuples_on ((OwnSymbolsOf S1) *) & t1 in (abs (ar r1)) -tuples_on ((rng phi1) *) ) by FOMODEL0:16; then t1 in ((abs (ar r1)) -tuples_on ((rng phi1) *)) /\ ((abs (ar r1)) -tuples_on ((OwnSymbolsOf S1) *)) by XBOOLE_0:def_4; then t1 in (abs (ar r1)) -tuples_on (((rng phi1) *) /\ ((OwnSymbolsOf S1) *)) by FOMODEL0:3; then t1 in (abs (ar r1)) -tuples_on (((rng phi1) /\ (OwnSymbolsOf S1)) *) by FOMODEL0:55; then ( t1 is ((rng phi1) /\ (OwnSymbolsOf S1)) * -valued & rng t1 c= AllTermsOf S1 ) by FOMODEL0:12, RELAT_1:def_19; then A8: ( rng t1 c= ((rng phi1) /\ (OwnSymbolsOf S1)) * & rng t1 c= AllTermsOf S1 ) by RELAT_1:def_19; then A9: rng t1 c= (((rng phi1) /\ (OwnSymbolsOf S1)) *) /\ (AllTermsOf S1) by XBOOLE_1:19; A10: rng t1 c= (((rng phi1) /\ (OwnSymbolsOf S1)) *) /\ (AllTermsOf S2) by A8, A4, XBOOLE_1:19; then reconsider X2 = (((rng phi1) /\ (OwnSymbolsOf S1)) *) /\ (AllTermsOf S2) as non empty Subset of (AllTermsOf S2) ; reconsider X1 = (((rng phi1) /\ (OwnSymbolsOf S1)) *) /\ (AllTermsOf S1) as non empty Subset of (AllTermsOf S1) by A9; t1 is X2 -valued abs (ar r1) -element FinSequence by A10, RELAT_1:def_19; then reconsider t2 = t1 as abs (ar r1) -element FinSequence of X2 by FOMODEL0:26; t2 is Element of X2 * by FINSEQ_1:def_11; then reconsider tt2 = t2 as abs (ar r1) -element Element of (AllTermsOf S2) * ; reconsider E11 = TheEqSymbOf S1 as Element of AtomicFormulaSymbolsOf S1 by FOMODEL1:def_20; reconsider EE1 = {E11} as non empty Subset of (AtomicFormulaSymbolsOf S1) ; reconsider E22 = TheEqSymbOf S2 as Element of AtomicFormulaSymbolsOf S2 by FOMODEL1:def_20; reconsider EE2 = {E22} as non empty Subset of (AtomicFormulaSymbolsOf S2) ; set Y1 = ((rng phi1) /\ (OwnSymbolsOf S1)) \/ EE1; set Y2 = ((rng phi1) /\ (OwnSymbolsOf S1)) \/ EE2; set f1 = the adicity of S1 | EE1; set f2 = the adicity of S2 | EE2; A11: ( dom ( the adicity of S1 | EE1) = EE1 & dom ( the adicity of S2 | EE2) = EE2 ) by PARTFUN1:def_2; now__::_thesis:_for_x_being_set_st_x_in_dom_(_the_adicity_of_S1_|_EE1)_holds_ (_the_adicity_of_S1_|_EE1)_._x_=_(_the_adicity_of_S2_|_EE2)_._x let x be set ; ::_thesis: ( x in dom ( the adicity of S1 | EE1) implies ( the adicity of S1 | EE1) . x = ( the adicity of S2 | EE2) . x ) assume A12: x in dom ( the adicity of S1 | EE1) ; ::_thesis: ( the adicity of S1 | EE1) . x = ( the adicity of S2 | EE2) . x then ( x = TheEqSymbOf S1 & ( the adicity of S1 | EE1) . x = the adicity of S1 . x ) by FUNCT_1:47, TARSKI:def_1; then ( ( the adicity of S1 | EE1) . x = - 2 & the adicity of S2 . x = - 2 ) by A1, FOMODEL1:def_23; hence ( the adicity of S1 | EE1) . x = ( the adicity of S2 | EE2) . x by A11, A1, A12, FUNCT_1:47; ::_thesis: verum end; then the adicity of S1 | EE1 = the adicity of S2 | EE2 by A11, A1, FUNCT_1:2; then ( the adicity of S2 | ((rng phi1) /\ (OwnSymbolsOf S1))) +* ( the adicity of S2 | EE2) = the adicity of S1 | (((rng phi1) /\ (OwnSymbolsOf S1)) \/ EE1) by A1, FUNCT_4:78; then A13: ( ((rng phi1) /\ (OwnSymbolsOf S1)) \/ EE1 = ((rng phi1) /\ (OwnSymbolsOf S1)) \/ EE2 & the adicity of S1 | (((rng phi1) /\ (OwnSymbolsOf S1)) \/ EE1) = the adicity of S2 | (((rng phi1) /\ (OwnSymbolsOf S1)) \/ EE2) ) by A1, FUNCT_4:78; A14: ar r1 = ( the adicity of S1 | (((rng phi1) /\ (OwnSymbolsOf S1)) \/ EE1)) . r1 by A7, FUNCT_1:49 .= the adicity of S2 . r1 by A7, A13, FUNCT_1:49 ; then r1 in dom the adicity of S2 by FUNCT_1:def_2; then r1 in AtomicFormulaSymbolsOf S2 ; then reconsider r2 = r1 as ofAtomicFormula Element of S2 by FOMODEL1:def_20; A15: ar r1 = ar r2 by A14; then reconsider r2 = r2 as relational Element of S2 ; reconsider phi2 = r2 -compound tt2 as 0wff string of S2 by A15; take phi2 ; ::_thesis: ( phi2 = phi1 & I2 -AtomicEval phi2 = I1 -AtomicEval phi1 ) thus phi1 = <*r1*> ^ ((S1 -multiCat) . t1) by FOMODEL1:def_38 .= phi2 by FOMODEL0:52 ; ::_thesis: I2 -AtomicEval phi2 = I1 -AtomicEval phi1 A16: (S2 -firstChar) . phi2 = phi2 . 1 by FOMODEL0:6 .= r2 by FINSEQ_1:41 ; then reconsider tt22 = tt2 as abs (ar ((S2 -firstChar) . phi2)) -element Element of (AllTermsOf S2) * by A14; A17: tt22 = SubTerms phi2 by A16, FOMODEL1:def_38; A18: (I1 -TermEval) * t1 = ((I1 -TermEval) | (((rng phi1) /\ (OwnSymbolsOf S1)) *)) * t1 by A8, A4, A3, RELAT_1:165, XBOOLE_1:19 .= (I2 -TermEval) * (SubTerms phi2) by A17, A2, A8, A4, A3, RELAT_1:165, XBOOLE_1:19 ; percases ( r1 <> TheEqSymbOf S1 or r1 = TheEqSymbOf S1 ) ; supposeA19: r1 <> TheEqSymbOf S1 ; ::_thesis: I2 -AtomicEval phi2 = I1 -AtomicEval phi1 then A20: r1 in (rng phi1) /\ (OwnSymbolsOf S1) by A6, A5, FOMODEL1:def_17, TARSKI:def_1, XBOOLE_0:def_4; then I1 . r1 = (I1 | ((rng phi1) /\ (OwnSymbolsOf S1))) . r1 by FUNCT_1:49 .= I2 . r2 by A1, A20, FUNCT_1:49 ; then ( I1 -AtomicEval phi1 = (I1 . r1) . ((I1 -TermEval) * t1) & I2 -AtomicEval phi2 = (I1 . r1) . ((I2 -TermEval) * (SubTerms phi2)) ) by A1, A19, A16, FOMODEL2:14; hence I1 -AtomicEval phi1 = I2 -AtomicEval phi2 by A18; ::_thesis: verum end; suppose r1 = TheEqSymbOf S1 ; ::_thesis: I2 -AtomicEval phi2 = I1 -AtomicEval phi1 then ( I1 -AtomicEval phi1 = (U -deltaInterpreter) . ((I1 -TermEval) * t1) & I2 -AtomicEval phi2 = (U -deltaInterpreter) . ((I2 -TermEval) * (SubTerms phi2)) ) by A1, A16, FOMODEL2:14; hence I1 -AtomicEval phi1 = I2 -AtomicEval phi2 by A18; ::_thesis: verum end; end; end; theorem :: FOMODEL3:12 for U being non empty set for S1, S2 being Language st TheNorSymbOf S1 = TheNorSymbOf S2 & TheEqSymbOf S1 = TheEqSymbOf S2 & the adicity of S1 | (OwnSymbolsOf S1) = the adicity of S2 | (OwnSymbolsOf S1) holds for I1 being Element of U -InterpretersOf S1 for I2 being Element of U -InterpretersOf S2 for phi1 being wff string of S1 st I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) holds ex phi2 being wff string of S2 st ( phi2 = phi1 & I2 -TruthEval phi2 = I1 -TruthEval phi1 ) proof let U be non empty set ; ::_thesis: for S1, S2 being Language st TheNorSymbOf S1 = TheNorSymbOf S2 & TheEqSymbOf S1 = TheEqSymbOf S2 & the adicity of S1 | (OwnSymbolsOf S1) = the adicity of S2 | (OwnSymbolsOf S1) holds for I1 being Element of U -InterpretersOf S1 for I2 being Element of U -InterpretersOf S2 for phi1 being wff string of S1 st I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) holds ex phi2 being wff string of S2 st ( phi2 = phi1 & I2 -TruthEval phi2 = I1 -TruthEval phi1 ) let S1, S2 be Language; ::_thesis: ( 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 for I2 being Element of U -InterpretersOf S2 for phi1 being wff string of S1 st I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) holds ex phi2 being wff string of S2 st ( phi2 = phi1 & I2 -TruthEval phi2 = I1 -TruthEval phi1 ) ) set II1 = U -InterpretersOf S1; set II2 = U -InterpretersOf S2; set N1 = TheNorSymbOf S1; set N2 = TheNorSymbOf S2; set F1 = S1 -firstChar ; set F2 = S2 -firstChar ; set a1 = the adicity of S1; set a2 = the adicity of S2; set O1 = OwnSymbolsOf S1; set O2 = OwnSymbolsOf S2; set d = U -deltaInterpreter ; set E1 = TheEqSymbOf S1; set E2 = TheEqSymbOf S2; set AS1 = AtomicFormulaSymbolsOf S1; set AS2 = AtomicFormulaSymbolsOf S2; assume A1: TheNorSymbOf S1 = TheNorSymbOf S2 ; ::_thesis: ( not TheEqSymbOf S1 = TheEqSymbOf S2 or not the adicity of S1 | (OwnSymbolsOf S1) = the adicity of S2 | (OwnSymbolsOf S1) or for I1 being Element of U -InterpretersOf S1 for I2 being Element of U -InterpretersOf S2 for phi1 being wff string of S1 st I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) holds ex phi2 being wff string of S2 st ( phi2 = phi1 & I2 -TruthEval phi2 = I1 -TruthEval phi1 ) ) assume A2: ( TheEqSymbOf S1 = TheEqSymbOf S2 & the adicity of S1 | (OwnSymbolsOf S1) = the adicity of S2 | (OwnSymbolsOf S1) ) ; ::_thesis: for I1 being Element of U -InterpretersOf S1 for I2 being Element of U -InterpretersOf S2 for phi1 being wff string of S1 st I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) holds ex phi2 being wff string of S2 st ( phi2 = phi1 & I2 -TruthEval phi2 = I1 -TruthEval phi1 ) defpred S1[ Nat] means for I1 being Element of U -InterpretersOf S1 for I2 being Element of U -InterpretersOf S2 for phi1 being $1 -wff string of S1 st I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) holds ex phi2 being $1 -wff string of S2 st ( phi1 = phi2 & I1 -TruthEval phi1 = I2 -TruthEval phi2 ); A3: S1[ 0 ] proof let I1 be Element of U -InterpretersOf S1; ::_thesis: for I2 being Element of U -InterpretersOf S2 for phi1 being 0 -wff string of S1 st I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) holds ex phi2 being 0 -wff string of S2 st ( phi1 = phi2 & I1 -TruthEval phi1 = I2 -TruthEval phi2 ) let I2 be Element of U -InterpretersOf S2; ::_thesis: for phi1 being 0 -wff string of S1 st I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) holds ex phi2 being 0 -wff string of S2 st ( phi1 = phi2 & I1 -TruthEval phi1 = I2 -TruthEval phi2 ) let phi1 be 0 -wff string of S1; ::_thesis: ( I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) implies ex phi2 being 0 -wff string of S2 st ( phi1 = phi2 & I1 -TruthEval phi1 = I2 -TruthEval phi2 ) ) set TE1 = I1 -TermEval ; set TE2 = I2 -TermEval ; set X = rng phi1; reconsider XX = (rng phi1) /\ (OwnSymbolsOf S1) as Subset of (OwnSymbolsOf S1) ; reconsider r1 = (S1 -firstChar) . phi1 as relational Element of S1 ; A4: the adicity of S1 | XX = ( the adicity of S1 | (OwnSymbolsOf S1)) | (rng phi1) by RELAT_1:71 .= the adicity of S2 | XX by A2, RELAT_1:71 ; assume I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) ; ::_thesis: ex phi2 being 0 -wff string of S2 st ( phi1 = phi2 & I1 -TruthEval phi1 = I2 -TruthEval phi2 ) then (I2 | (OwnSymbolsOf S1)) | (rng phi1) = 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 = phi2 as 0 -wff string of S2 ; take phi2 ; ::_thesis: ( phi1 = phi2 & I1 -TruthEval phi1 = I2 -TruthEval phi2 ) set st1 = SubTerms phi1; set st2 = SubTerms phi2; reconsider r2 = (S2 -firstChar) . phi2 as relational Element of S2 ; thus ( phi1 = phi2 & I1 -TruthEval phi1 = I2 -TruthEval phi2 ) by A5; ::_thesis: verum end; A6: for n being Nat st S1[n] holds S1[n + 1] proof let n be Nat; ::_thesis: ( S1[n] implies S1[n + 1] ) assume A7: S1[n] ; ::_thesis: S1[n + 1] let I1 be Element of U -InterpretersOf S1; ::_thesis: for I2 being Element of U -InterpretersOf S2 for phi1 being n + 1 -wff string of S1 st I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) holds ex phi2 being n + 1 -wff string of S2 st ( phi1 = phi2 & I1 -TruthEval phi1 = I2 -TruthEval phi2 ) let I2 be Element of U -InterpretersOf S2; ::_thesis: for phi1 being n + 1 -wff string of S1 st I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) holds ex phi2 being n + 1 -wff string of S2 st ( phi1 = phi2 & I1 -TruthEval phi1 = I2 -TruthEval phi2 ) let phi1 be n + 1 -wff string of S1; ::_thesis: ( I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) implies ex phi2 being n + 1 -wff string of S2 st ( phi1 = phi2 & I1 -TruthEval phi1 = I2 -TruthEval phi2 ) ) set X = rng phi1; assume A8: I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) ; ::_thesis: ex phi2 being n + 1 -wff string of S2 st ( phi1 = phi2 & I1 -TruthEval phi1 = I2 -TruthEval phi2 ) reconsider h1 = head phi1 as n -wff string of S1 ; set t = tail phi1; set s1 = (S1 -firstChar) . phi1; consider h2 being n -wff string of S2 such that A9: ( h1 = h2 & I1 -TruthEval h1 = I2 -TruthEval h2 ) by A7, A8; percases ( phi1 is exal or ( not phi1 is 0wff & not phi1 is exal ) or phi1 is 0wff ) ; suppose phi1 is exal ; ::_thesis: ex phi2 being n + 1 -wff string of S2 st ( phi1 = phi2 & I1 -TruthEval phi1 = I2 -TruthEval phi2 ) then reconsider phi11 = phi1 as n + 1 -wff exal string of S1 ; reconsider l1 = (S1 -firstChar) . phi11 as literal Element of S1 ; A10: l1 in OwnSymbolsOf S1 by FOMODEL1:def_19; A11: I1 . l1 = I2 . l1 by A8, A10, FUNCT_1:49; l1 in dom I2 by A11, FUNCT_1:def_2; then l1 in OwnSymbolsOf S2 ; then reconsider l2 = l1 as own Element of S2 ; (abs (ar l2)) -tuples_on U = dom (I2 . l2) by PARTFUN1:def_2 .= 0 -tuples_on U by A11, FUNCT_2:def_1 ; then ( not l2 is relational & not l2 is operational ) ; then reconsider l2 = l2 as literal Element of S2 ; reconsider phi2 = <*l2*> ^ h2 as n + 1 -wff exal string of S2 ; take phi2 ; ::_thesis: ( phi1 = phi2 & I1 -TruthEval phi1 = I2 -TruthEval phi2 ) A12: phi1 = (<*l1*> ^ h1) ^ (tail phi11) by FOMODEL2:23 .= <*l1*> ^ h1 ; hence phi1 = phi2 by A9; ::_thesis: I1 -TruthEval phi1 = I2 -TruthEval phi2 ( I1 -TruthEval phi11 = 1 iff I2 -TruthEval phi2 = 1 ) proof hereby ::_thesis: ( I2 -TruthEval phi2 = 1 implies I1 -TruthEval phi11 = 1 ) assume I1 -TruthEval phi11 = 1 ; ::_thesis: I2 -TruthEval phi2 = 1 then consider u being Element of U such that A13: ((l1,u) ReassignIn I1) -TruthEval h1 = 1 by A12, FOMODEL2:19; reconsider I11 = (l1,u) ReassignIn I1 as Element of U -InterpretersOf S1 ; reconsider I22 = (l2,u) ReassignIn I2 as Element of U -InterpretersOf S2 ; I11 | (OwnSymbolsOf S1) = (I1 | (OwnSymbolsOf S1)) +* ((l1 .--> ({} .--> u)) | (OwnSymbolsOf S1)) by FUNCT_4:71 .= I22 | (OwnSymbolsOf S1) by A8, FUNCT_4:71 ; then consider h22 being n -wff string of S2 such that A14: ( h22 = h1 & I11 -TruthEval h1 = I22 -TruthEval h22 ) by A7; thus I2 -TruthEval phi2 = 1 by A14, A9, A13, FOMODEL2:19; ::_thesis: verum end; assume I2 -TruthEval phi2 = 1 ; ::_thesis: I1 -TruthEval phi11 = 1 then consider u2 being Element of U such that A15: ((l2,u2) ReassignIn I2) -TruthEval h2 = 1 by FOMODEL2:19; reconsider I11 = (l1,u2) ReassignIn I1 as Element of U -InterpretersOf S1 ; reconsider I22 = (l2,u2) ReassignIn I2 as Element of U -InterpretersOf S2 ; I11 | (OwnSymbolsOf S1) = (I1 | (OwnSymbolsOf S1)) +* ((l1 .--> ({} .--> u2)) | (OwnSymbolsOf S1)) by FUNCT_4:71 .= I22 | (OwnSymbolsOf S1) by A8, FUNCT_4:71 ; then consider h222 being n -wff string of S2 such that A16: ( h222 = h1 & I11 -TruthEval h1 = I22 -TruthEval h222 ) by A7; thus I1 -TruthEval phi11 = 1 by A12, A15, A16, A9, FOMODEL2:19; ::_thesis: verum 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; ::_thesis: verum end; suppose ( not phi1 is 0wff & not phi1 is exal ) ; ::_thesis: ex phi2 being n + 1 -wff string of S2 st ( phi1 = phi2 & I1 -TruthEval phi1 = I2 -TruthEval phi2 ) then reconsider phi11 = phi1 as non 0wff n + 1 -wff non exal string of S1 ; reconsider t1 = tail phi11 as n -wff string of S1 ; consider t2 being n -wff string of S2 such that A17: ( t1 = t2 & I1 -TruthEval t1 = I2 -TruthEval t2 ) by A7, A8; reconsider phi2 = (<*(TheNorSymbOf S2)*> ^ h2) ^ t2 as non 0wff n + 1 -wff non exal string of S2 ; take phi2 ; ::_thesis: ( phi1 = phi2 & I1 -TruthEval phi1 = I2 -TruthEval phi2 ) ( ((S1 -firstChar) . phi11) \+\ (TheNorSymbOf S1) = {} & ((S2 -firstChar) . phi2) \+\ (TheNorSymbOf S2) = {} ) ; then A18: ( (S1 -firstChar) . phi1 = TheNorSymbOf S1 & (S2 -firstChar) . phi2 = TheNorSymbOf S2 & phi11 = (<*((S1 -firstChar) . phi11)*> ^ h1) ^ t1 & h2 = head phi2 & t2 = tail phi2 ) by FOMODEL0:29, FOMODEL2:23; hence phi1 = phi2 by A17, A9, A1; ::_thesis: I1 -TruthEval phi1 = I2 -TruthEval phi2 set b1 = I1 -TruthEval h1; set c1 = I1 -TruthEval t1; set b2 = I2 -TruthEval h2; set c2 = I2 -TruthEval t2; set A1 = I1 -TruthEval phi11; set A2 = I2 -TruthEval phi2; ( (I1 -TruthEval phi11) \+\ ((I1 -TruthEval (head phi11)) 'nor' (I1 -TruthEval (tail phi11))) = {} & (I2 -TruthEval phi2) \+\ ((I2 -TruthEval (head phi2)) 'nor' (I2 -TruthEval (tail phi2))) = {} ) ; then ( I1 -TruthEval phi11 = (I1 -TruthEval h1) 'nor' (I1 -TruthEval t1) & I2 -TruthEval phi2 = (I2 -TruthEval h2) 'nor' (I2 -TruthEval t2) ) by A18, FOMODEL0:29; hence I1 -TruthEval phi1 = I2 -TruthEval phi2 by A9, A17; ::_thesis: verum end; suppose phi1 is 0wff ; ::_thesis: ex phi2 being n + 1 -wff string of S2 st ( phi1 = phi2 & I1 -TruthEval phi1 = I2 -TruthEval phi2 ) then consider phi2 being 0 -wff string of S2 such that A19: ( 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 ; ::_thesis: ( phi1 = phi22 & I1 -TruthEval phi1 = I2 -TruthEval phi22 ) thus ( phi1 = phi22 & I1 -TruthEval phi1 = I2 -TruthEval phi22 ) by A19; ::_thesis: verum end; end; end; A20: for n being Nat holds S1[n] from NAT_1:sch_2(A3, A6); let I1 be Element of U -InterpretersOf S1; ::_thesis: for I2 being Element of U -InterpretersOf S2 for phi1 being wff string of S1 st I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) holds ex phi2 being wff string of S2 st ( phi2 = phi1 & I2 -TruthEval phi2 = I1 -TruthEval phi1 ) let I2 be Element of U -InterpretersOf S2; ::_thesis: for phi1 being wff string of S1 st I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) holds ex phi2 being wff string of S2 st ( phi2 = phi1 & I2 -TruthEval phi2 = I1 -TruthEval phi1 ) let phi1 be wff string of S1; ::_thesis: ( I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) implies ex phi2 being wff string of S2 st ( phi2 = phi1 & I2 -TruthEval phi2 = I1 -TruthEval phi1 ) ) set d = Depth phi1; reconsider phi11 = phi1 null 0 as (Depth phi1) + 0 -wff string of S1 ; assume I1 | (OwnSymbolsOf S1) = I2 | (OwnSymbolsOf S1) ; ::_thesis: ex phi2 being wff string of S2 st ( phi2 = phi1 & I2 -TruthEval phi2 = I1 -TruthEval phi1 ) then ex phi2 being Depth phi1 -wff string of S2 st ( phi2 = phi11 & I2 -TruthEval phi2 = I1 -TruthEval phi11 ) by A20; hence ex phi2 being wff string of S2 st ( phi2 = phi1 & I2 -TruthEval phi2 = I1 -TruthEval phi1 ) ; ::_thesis: verum end; theorem Th13: :: FOMODEL3:13 for U being non empty set for S being Language for phi being wff string of S for I1, I2 being Element of U -InterpretersOf S st I1 | ((rng phi) /\ (OwnSymbolsOf S)) = I2 | ((rng phi) /\ (OwnSymbolsOf S)) holds I1 -TruthEval phi = I2 -TruthEval phi proof let U be non empty set ; ::_thesis: for S being Language for phi being wff string of S for I1, I2 being Element of U -InterpretersOf S st I1 | ((rng phi) /\ (OwnSymbolsOf S)) = I2 | ((rng phi) /\ (OwnSymbolsOf S)) holds I1 -TruthEval phi = I2 -TruthEval phi let S be Language; ::_thesis: for phi being wff string of S for I1, I2 being Element of U -InterpretersOf S st I1 | ((rng phi) /\ (OwnSymbolsOf S)) = I2 | ((rng phi) /\ (OwnSymbolsOf S)) holds I1 -TruthEval phi = I2 -TruthEval phi let phi be wff string of S; ::_thesis: for I1, I2 being Element of U -InterpretersOf S st I1 | ((rng phi) /\ (OwnSymbolsOf S)) = I2 | ((rng phi) /\ (OwnSymbolsOf S)) holds I1 -TruthEval phi = I2 -TruthEval phi set O = OwnSymbolsOf S; set II = U -InterpretersOf S; set a = the adicity of S; set E = TheEqSymbOf S; set F = S -firstChar ; set C = S -multiCat ; defpred S1[ Nat] means for I1, I2 being Element of U -InterpretersOf S for phi being $1 -wff string of S st I1 | ((rng phi) /\ (OwnSymbolsOf S)) = I2 | ((rng phi) /\ (OwnSymbolsOf S)) holds I1 -TruthEval phi = I2 -TruthEval phi; A1: S1[ 0 ] proof let I1, I2 be Element of U -InterpretersOf S; ::_thesis: for phi being 0 -wff string of S st I1 | ((rng phi) /\ (OwnSymbolsOf S)) = I2 | ((rng phi) /\ (OwnSymbolsOf S)) holds I1 -TruthEval phi = I2 -TruthEval phi let phi be 0 -wff string of S; ::_thesis: ( I1 | ((rng phi) /\ (OwnSymbolsOf S)) = I2 | ((rng phi) /\ (OwnSymbolsOf S)) implies I1 -TruthEval phi = I2 -TruthEval phi ) reconsider phi1 = phi as 0wff string of S ; assume I1 | ((rng phi) /\ (OwnSymbolsOf S)) = I2 | ((rng phi) /\ (OwnSymbolsOf S)) ; ::_thesis: I1 -TruthEval phi = I2 -TruthEval phi then ( I1 | ((rng phi1) /\ (OwnSymbolsOf S)) = I2 | ((rng phi1) /\ (OwnSymbolsOf S)) & the adicity of S | ((rng phi1) /\ (OwnSymbolsOf S)) = the adicity of S | ((rng phi1) /\ (OwnSymbolsOf S)) & TheEqSymbOf S = TheEqSymbOf S ) ; then consider phi2 being 0wff string of S such that A2: ( phi2 = phi1 & I2 -AtomicEval phi2 = I1 -AtomicEval phi1 ) by Lm48; thus I1 -TruthEval phi = I2 -TruthEval phi by A2; ::_thesis: verum end; A3: for n being Nat st S1[n] holds S1[n + 1] proof let n be Nat; ::_thesis: ( S1[n] implies S1[n + 1] ) assume A4: S1[n] ; ::_thesis: S1[n + 1] let I1, I2 be Element of U -InterpretersOf S; ::_thesis: for phi being n + 1 -wff string of S st I1 | ((rng phi) /\ (OwnSymbolsOf S)) = I2 | ((rng phi) /\ (OwnSymbolsOf S)) holds I1 -TruthEval phi = I2 -TruthEval phi let phi be n + 1 -wff string of S; ::_thesis: ( I1 | ((rng phi) /\ (OwnSymbolsOf S)) = I2 | ((rng phi) /\ (OwnSymbolsOf S)) implies I1 -TruthEval phi = I2 -TruthEval phi ) assume A5: I1 | ((rng phi) /\ (OwnSymbolsOf S)) = I2 | ((rng phi) /\ (OwnSymbolsOf S)) ; ::_thesis: I1 -TruthEval phi = I2 -TruthEval phi percases ( ( not phi is 0wff & not phi is exal ) or ( phi is exal & not phi is 0wff ) or phi is 0wff ) ; suppose ( not phi is 0wff & not phi is exal ) ; ::_thesis: I1 -TruthEval phi = I2 -TruthEval phi then reconsider phii = phi as non 0wff n + 1 -wff non exal string of S ; set X = (rng phii) /\ (OwnSymbolsOf S); set s = (S -firstChar) . phii; reconsider h = head phii, t = tail phii as n -wff string of S ; phii = (<*((S -firstChar) . phii)*> ^ h) ^ t by FOMODEL2:23 .= <*((S -firstChar) . phii)*> ^ (h ^ t) by FINSEQ_1:32 ; then ( rng (h ^ t) c= rng phii & rng t c= rng (h ^ t) & rng h c= rng (h ^ t) ) by FINSEQ_1:29, FINSEQ_1:30; then ( rng h c= rng phii & rng t c= rng phii ) by XBOOLE_1:1; then reconsider rh = (rng h) /\ (OwnSymbolsOf S), rt = (rng t) /\ (OwnSymbolsOf S) as Subset of ((rng phii) /\ (OwnSymbolsOf S)) by XBOOLE_1:26; set v1 = I1 -TruthEval phii; set v2 = I2 -TruthEval phii; set h1 = I1 -TruthEval h; set h2 = I2 -TruthEval h; set t1 = I1 -TruthEval t; set t2 = I2 -TruthEval t; A6: I1 | rh = I1 | (rh null ((rng phii) /\ (OwnSymbolsOf S))) .= (I1 | ((rng phii) /\ (OwnSymbolsOf S))) | rh by RELAT_1:71 .= I2 | (rh null ((rng phii) /\ (OwnSymbolsOf S))) by A5, RELAT_1:71 ; I1 | rt = I1 | (rt null ((rng phii) /\ (OwnSymbolsOf S))) .= (I1 | ((rng phii) /\ (OwnSymbolsOf S))) | rt by RELAT_1:71 .= I2 | (rt null ((rng phii) /\ (OwnSymbolsOf S))) by A5, RELAT_1:71 ; then A7: I1 -TruthEval t = I2 -TruthEval t by A4; ( (I1 -TruthEval phii) \+\ ((I1 -TruthEval h) 'nor' (I1 -TruthEval t)) = {} & (I2 -TruthEval phii) \+\ ((I2 -TruthEval h) 'nor' (I2 -TruthEval t)) = {} ) ; then ( I1 -TruthEval phii = (I1 -TruthEval h) 'nor' (I1 -TruthEval t) & I2 -TruthEval phii = (I2 -TruthEval h) 'nor' (I2 -TruthEval t) ) by FOMODEL0:29; hence I1 -TruthEval phi = I2 -TruthEval phi by A4, A6, A7; ::_thesis: verum end; suppose ( phi is exal & not phi is 0wff ) ; ::_thesis: I1 -TruthEval phi = I2 -TruthEval phi then reconsider phii = phi as wff exal string of S ; set l = (S -firstChar) . phii; reconsider h = head phii as n -wff string of S ; A8: phii = (<*((S -firstChar) . phii)*> ^ h) ^ (tail phii) by FOMODEL2:23 .= <*((S -firstChar) . phii)*> ^ h ; then reconsider rh = rng h as Subset of (rng phii) by FINSEQ_1:30; now__::_thesis:_(_(_I1_-TruthEval_phii_=_1_implies_I2_-TruthEval_phii_=_1_)_&_(_I2_-TruthEval_phii_=_1_implies_I1_-TruthEval_phii_=_1_)_) hereby ::_thesis: ( I2 -TruthEval phii = 1 implies I1 -TruthEval phii = 1 ) assume I1 -TruthEval phii = 1 ; ::_thesis: I2 -TruthEval phii = 1 then consider u being Element of U such that A9: ((((S -firstChar) . phii),u) ReassignIn I1) -TruthEval h = 1 by A8, FOMODEL2:19; set f = ((S -firstChar) . phii) .--> ({} .--> u); reconsider I1u = (((S -firstChar) . phii),u) ReassignIn I1, I2u = (((S -firstChar) . phii),u) ReassignIn I2 as Element of U -InterpretersOf S ; I1u | ((rng h) /\ (OwnSymbolsOf S)) = (I1 | ((rh null (rng phii)) /\ (OwnSymbolsOf S))) +* ((((S -firstChar) . phii) .--> ({} .--> u)) | (rh /\ (OwnSymbolsOf S))) by FUNCT_4:71 .= (I1 | (rh /\ ((rng phii) /\ (OwnSymbolsOf S)))) +* ((((S -firstChar) . phii) .--> ({} .--> u)) | (rh /\ (OwnSymbolsOf S))) by XBOOLE_1:16 .= ((I1 | ((rng phii) /\ (OwnSymbolsOf S))) | rh) +* ((((S -firstChar) . phii) .--> ({} .--> u)) | (rh /\ (OwnSymbolsOf S))) by RELAT_1:71 .= (I2 | (((rng phii) /\ (OwnSymbolsOf S)) /\ rh)) +* ((((S -firstChar) . phii) .--> ({} .--> u)) | (rh /\ (OwnSymbolsOf S))) by A5, RELAT_1:71 .= (I2 | (((rng phii) /\ rh) /\ (OwnSymbolsOf S))) +* ((((S -firstChar) . phii) .--> ({} .--> u)) | (rh /\ (OwnSymbolsOf S))) by XBOOLE_1:16 .= I2u | ((rng h) /\ (OwnSymbolsOf S)) by FUNCT_4:71 ; then I2u -TruthEval h = 1 by A9, A4; hence I2 -TruthEval phii = 1 by A8, FOMODEL2:19; ::_thesis: verum end; assume I2 -TruthEval phii = 1 ; ::_thesis: I1 -TruthEval phii = 1 then consider u being Element of U such that A10: ((((S -firstChar) . phii),u) ReassignIn I2) -TruthEval h = 1 by A8, FOMODEL2:19; set f = ((S -firstChar) . phii) .--> ({} .--> u); reconsider I1u = (((S -firstChar) . phii),u) ReassignIn I1, I2u = (((S -firstChar) . phii),u) ReassignIn I2 as Element of U -InterpretersOf S ; I1u | ((rng h) /\ (OwnSymbolsOf S)) = (I1 | ((rh null (rng phii)) /\ (OwnSymbolsOf S))) +* ((((S -firstChar) . phii) .--> ({} .--> u)) | (rh /\ (OwnSymbolsOf S))) by FUNCT_4:71 .= (I1 | (rh /\ ((rng phii) /\ (OwnSymbolsOf S)))) +* ((((S -firstChar) . phii) .--> ({} .--> u)) | (rh /\ (OwnSymbolsOf S))) by XBOOLE_1:16 .= ((I1 | ((rng phii) /\ (OwnSymbolsOf S))) | rh) +* ((((S -firstChar) . phii) .--> ({} .--> u)) | (rh /\ (OwnSymbolsOf S))) by RELAT_1:71 .= (I2 | (((rng phii) /\ (OwnSymbolsOf S)) /\ rh)) +* ((((S -firstChar) . phii) .--> ({} .--> u)) | (rh /\ (OwnSymbolsOf S))) by A5, RELAT_1:71 .= (I2 | (((rng phii) /\ rh) /\ (OwnSymbolsOf S))) +* ((((S -firstChar) . phii) .--> ({} .--> u)) | (rh /\ (OwnSymbolsOf S))) by XBOOLE_1:16 .= I2u | ((rng h) /\ (OwnSymbolsOf S)) by FUNCT_4:71 ; then I1u -TruthEval h = 1 by A10, A4; hence I1 -TruthEval phii = 1 by A8, FOMODEL2:19; ::_thesis: verum end; then ( I1 -TruthEval phii = 1 iff not I2 -TruthEval phii = 0 ) by FOMODEL0:39; hence I1 -TruthEval phi = I2 -TruthEval phi by FOMODEL0:39; ::_thesis: verum end; suppose phi is 0wff ; ::_thesis: I1 -TruthEval phi = I2 -TruthEval phi hence I1 -TruthEval phi = I2 -TruthEval phi by A1, A5; ::_thesis: verum end; end; end; A11: for n being Nat holds S1[n] from NAT_1:sch_2(A1, A3); let I1, I2 be Element of U -InterpretersOf S; ::_thesis: ( I1 | ((rng phi) /\ (OwnSymbolsOf S)) = I2 | ((rng phi) /\ (OwnSymbolsOf S)) implies I1 -TruthEval phi = I2 -TruthEval phi ) set d = Depth phi; phi null 0 is (Depth phi) + 0 -wff ; then reconsider phii = phi as Depth phi -wff string of S ; assume I1 | ((rng phi) /\ (OwnSymbolsOf S)) = I2 | ((rng phi) /\ (OwnSymbolsOf S)) ; ::_thesis: I1 -TruthEval phi = I2 -TruthEval phi then I1 | ((rng phii) /\ (OwnSymbolsOf S)) = I2 | ((rng phii) /\ (OwnSymbolsOf S)) ; hence I1 -TruthEval phi = I2 -TruthEval phi by A11; ::_thesis: verum end; theorem :: FOMODEL3:14 for X being set for U being non empty set for u being Element of U for S being Language for l being literal Element of S for I being Element of U -InterpretersOf S st l is X -absent & X is I -satisfied holds X is (l,u) ReassignIn I -satisfied proof let X be set ; ::_thesis: for U being non empty set for u being Element of U for S being Language for l being literal Element of S for I being Element of U -InterpretersOf S st l is X -absent & X is I -satisfied holds X is (l,u) ReassignIn I -satisfied let U be non empty set ; ::_thesis: for u being Element of U for S being Language for l being literal Element of S for I being Element of U -InterpretersOf S st l is X -absent & X is I -satisfied holds X is (l,u) ReassignIn I -satisfied let u be Element of U; ::_thesis: for S being Language for l being literal Element of S for I being Element of U -InterpretersOf S st l is X -absent & X is I -satisfied holds X is (l,u) ReassignIn I -satisfied let S be Language; ::_thesis: for l being literal Element of S for I being Element of U -InterpretersOf S st l is X -absent & X is I -satisfied holds X is (l,u) ReassignIn I -satisfied let l be literal Element of S; ::_thesis: for I being Element of U -InterpretersOf S st l is X -absent & X is I -satisfied holds X is (l,u) ReassignIn I -satisfied set II = U -InterpretersOf S; let I be Element of U -InterpretersOf S; ::_thesis: ( l is X -absent & X is I -satisfied implies X is (l,u) ReassignIn I -satisfied ) set O = OwnSymbolsOf S; set I2 = (l,u) ReassignIn I; set f2 = l .--> ({} .--> u); assume A1: ( l is X -absent & X is I -satisfied ) ; ::_thesis: X is (l,u) ReassignIn I -satisfied now__::_thesis:_for_phi_being_wff_string_of_S_st_phi_in_X_holds_ ((l,u)_ReassignIn_I)_-TruthEval_phi_=_1 let phi be wff string of S; ::_thesis: ( phi in X implies ((l,u) ReassignIn I) -TruthEval phi = 1 ) reconsider no = (rng phi) /\ (OwnSymbolsOf S) as Subset of (rng phi) ; assume A2: phi in X ; ::_thesis: ((l,u) ReassignIn I) -TruthEval phi = 1 then reconsider Phi = {phi} as Subset of X by ZFMISC_1:31; A3: I -TruthEval phi = 1 by A1, A2, FOMODEL2:def_42; l is X /\ Phi -absent by A1; then not l in no by FOMODEL2:28; then {l} misses no by ZFMISC_1:50; then dom (l .--> ({} .--> u)) misses no by FUNCOP_1:13; then (I | no) +* ((l .--> ({} .--> u)) | no) = (I | no) +* {} by RELAT_1:66; then ((l,u) ReassignIn I) | no = I | no by FUNCT_4:71; hence ((l,u) ReassignIn I) -TruthEval phi = 1 by A3, Th13; ::_thesis: verum end; hence X is (l,u) ReassignIn I -satisfied by FOMODEL2:def_42; ::_thesis: verum end; theorem :: FOMODEL3:15 for U being non empty set for u being Element of U for S being Language for l being literal Element of S for E being Equivalence_Relation of U for i being b5 -respecting Element of U -InterpretersOf S holds (l,((E -class) . u)) ReassignIn (i quotient E) = ((l,u) ReassignIn i) quotient E proof let U be non empty set ; ::_thesis: for u being Element of U for S being Language for l being literal Element of S for E being Equivalence_Relation of U for i being b4 -respecting Element of U -InterpretersOf S holds (l,((E -class) . u)) ReassignIn (i quotient E) = ((l,u) ReassignIn i) quotient E let u be Element of U; ::_thesis: for S being Language for l being literal Element of S for E being Equivalence_Relation of U for i being b3 -respecting Element of U -InterpretersOf S holds (l,((E -class) . u)) ReassignIn (i quotient E) = ((l,u) ReassignIn i) quotient E let S be Language; ::_thesis: for l being literal Element of S for E being Equivalence_Relation of U for i being b2 -respecting Element of U -InterpretersOf S holds (l,((E -class) . u)) ReassignIn (i quotient E) = ((l,u) ReassignIn i) quotient E let l be literal Element of S; ::_thesis: for E being Equivalence_Relation of U for i being b1 -respecting Element of U -InterpretersOf S holds (l,((E -class) . u)) ReassignIn (i quotient E) = ((l,u) ReassignIn i) quotient E set II = U -InterpretersOf S; let E be Equivalence_Relation of U; ::_thesis: for i being E -respecting Element of U -InterpretersOf S holds (l,((E -class) . u)) ReassignIn (i quotient E) = ((l,u) ReassignIn i) quotient E let i be E -respecting Element of U -InterpretersOf S; ::_thesis: (l,((E -class) . u)) ReassignIn (i quotient E) = ((l,u) ReassignIn i) quotient E set x = u; set O = OwnSymbolsOf S; set UU = Class E; set III = (Class E) -InterpretersOf S; reconsider X = (E -class) . u as Element of Class E ; reconsider I = i quotient E as Element of (Class E) -InterpretersOf S ; reconsider j = (l,u) ReassignIn i as Element of U -InterpretersOf S ; reconsider Jj = (l,X) ReassignIn I as Element of (Class E) -InterpretersOf S ; reconsider jJ = j quotient E as Function ; A1: ( dom Jj = OwnSymbolsOf S & dom jJ = OwnSymbolsOf S ) by Def17, PARTFUN1:def_2; set jJ = j quotient E; set g = l .--> ({{}} --> u); set h = {{}} --> u; set G = l .--> ({{}} --> X); reconsider n = abs (ar l) as Nat ; A2: ( {{}} = 0 -tuples_on U & id {{}} is Equivalence_Relation of {{}} ) by FOMODEL0:10; then reconsider Enn = id {{}} as Equivalence_Relation of (0 -tuples_on U) ; set En = n -placesOf E; set nE = n -tuple2Class E; A3: ( dom (l .--> ({{}} --> u)) = {l} & dom (l .--> ({{}} --> X)) = {l} ) by FUNCOP_1:13; then A4: ( dom (l .--> ({{}} --> u)) = {l} & dom (l .--> ({{}} --> X)) = {l} & l in dom (l .--> ({{}} --> u)) & l in dom (l .--> ({{}} --> X)) ) by TARSKI:def_1; A5: ( n -placesOf E = Enn & dom (E -class) = U & dom ({{}} --> ((E -class) . u)) = {{}} & dom ({{}} --> u) = {{}} & (id {{}}) \+\ ({} .--> {}) = {} ) by Lm30, FUNCT_2:def_1; then A6: ( n -placesOf E = Enn & u in dom (E -class) & {} in dom ({{}} --> ((E -class) . u)) & id {{}} = {} .--> {} ) by FOMODEL0:29, TARSKI:def_1; {} in dom ({{}} --> u) by A5, TARSKI:def_1; then reconsider hh = {{}} --> u as Enn,E -respecting Function by Lm22; reconsider hhh = hh as n -placesOf E,E -respecting Function of (n -tuples_on U),U by A2, A5; now__::_thesis:_for_s_being_set_st_s_in_OwnSymbolsOf_S_holds_ Jj_._s_=_(j_quotient_E)_._s let s be set ; ::_thesis: ( s in OwnSymbolsOf S implies Jj . b1 = (j quotient E) . b1 ) assume s in OwnSymbolsOf S ; ::_thesis: Jj . b1 = (j quotient E) . b1 then reconsider ss = s as own Element of S ; percases ( s in dom (l .--> ({{}} --> X)) or not s in dom (l .--> ({{}} --> X)) ) ; supposeA7: s in dom (l .--> ({{}} --> X)) ; ::_thesis: Jj . b1 = (j quotient E) . b1 A8: s = l by A7, TARSKI:def_1; then A9: (j quotient E) . s = (j . l) quotient E by Def18 .= (n -tuple2Class E) * ((j . l) quotient ((n -placesOf E),E)) by Def15 .= (n -tuple2Class E) * (((l .--> ({{}} --> u)) . l) quotient ((n -placesOf E),E)) by A4, FUNCT_4:13 .= (n -tuple2Class E) * (({{}} --> u) quotient ((n -placesOf E),E)) by FUNCOP_1:72 .= (n -placesOf ((E -class) ~)) * ((E -class) * hhh) by Lm21 .= (id {{}}) * ((E -class) * hhh) by Lm30 .= ({{}} --> ((E -class) . u)) * ({{}} --> {}) by A6, FUNCOP_1:17 .= {{}} --> (({} .--> ((E -class) . u)) . {}) by A6, FUNCOP_1:17 .= {{}} --> X by FUNCOP_1:72 ; Jj . s = (l .--> ({{}} --> X)) . l by A7, A8, FUNCT_4:13 .= {{}} --> X by FUNCOP_1:72 ; hence Jj . s = (j quotient E) . s by A9; ::_thesis: verum end; supposeA10: not s in dom (l .--> ({{}} --> X)) ; ::_thesis: Jj . b1 = (j quotient E) . b1 then Jj . s = I . s by FUNCT_4:11 .= (i . ss) quotient E by Def18 .= (j . ss) quotient E by A10, A3, FUNCT_4:11 .= (j quotient E) . ss by Def18 ; hence Jj . s = (j quotient E) . s ; ::_thesis: verum end; end; end; hence (l,((E -class) . u)) ReassignIn (i quotient E) = ((l,u) ReassignIn i) quotient E by A1, FUNCT_1:2; ::_thesis: verum end;