:: FOMODEL2 semantic presentation begin definition let S be Language; :: original: TheNorSymbOf redefine func TheNorSymbOf S -> Element of S; coherence TheNorSymbOf S is Element of S ; end; definition let U be non empty set ; funcU -deltaInterpreter -> Function of (2 -tuples_on U),BOOLEAN equals :: FOMODEL2:def 1 chi (((U -concatenation) .: (id (1 -tuples_on U))),(2 -tuples_on U)); coherence chi (((U -concatenation) .: (id (1 -tuples_on U))),(2 -tuples_on U)) is Function of (2 -tuples_on U),BOOLEAN ; end; :: deftheorem defines -deltaInterpreter FOMODEL2:def_1_:_ for U being non empty set holds U -deltaInterpreter = chi (((U -concatenation) .: (id (1 -tuples_on U))),(2 -tuples_on U)); definition let X be set ; :: original: id redefine func id X -> Equivalence_Relation of X; coherence id X is Equivalence_Relation of X by EQREL_1:3; end; definition let S be Language; let U be non empty set ; let s be ofAtomicFormula Element of S; mode Interpreter of s,U -> set means :Def2: :: FOMODEL2:def 2 it is Function of ((abs (ar s)) -tuples_on U),BOOLEAN if s is relational otherwise it is Function of ((abs (ar s)) -tuples_on U),U; existence ( ( s is relational implies ex b1 being set st b1 is Function of ((abs (ar s)) -tuples_on U),BOOLEAN ) & ( not s is relational implies ex b1 being set st b1 is Function of ((abs (ar s)) -tuples_on U),U ) ) proof thus ( s is relational implies ex IT being set st IT is Function of ((abs (ar s)) -tuples_on U),BOOLEAN ) ::_thesis: ( not s is relational implies ex b1 being set st b1 is Function of ((abs (ar s)) -tuples_on U),U ) proof assume s is relational ; ::_thesis: ex IT being set st IT is Function of ((abs (ar s)) -tuples_on U),BOOLEAN take the Function of ((abs (ar s)) -tuples_on U),BOOLEAN ; ::_thesis: the Function of ((abs (ar s)) -tuples_on U),BOOLEAN is Function of ((abs (ar s)) -tuples_on U),BOOLEAN thus the Function of ((abs (ar s)) -tuples_on U),BOOLEAN is Function of ((abs (ar s)) -tuples_on U),BOOLEAN ; ::_thesis: verum end; assume not s is relational ; ::_thesis: ex b1 being set st b1 is Function of ((abs (ar s)) -tuples_on U),U take the Function of ((abs (ar s)) -tuples_on U),U ; ::_thesis: the Function of ((abs (ar s)) -tuples_on U),U is Function of ((abs (ar s)) -tuples_on U),U thus the Function of ((abs (ar s)) -tuples_on U),U is Function of ((abs (ar s)) -tuples_on U),U ; ::_thesis: verum end; consistency for b1 being set holds verum ; end; :: deftheorem Def2 defines Interpreter FOMODEL2:def_2_:_ for S being Language for U being non empty set for s being ofAtomicFormula Element of S for b4 being set holds ( ( s is relational implies ( b4 is Interpreter of s,U iff b4 is Function of ((abs (ar s)) -tuples_on U),BOOLEAN ) ) & ( not s is relational implies ( b4 is Interpreter of s,U iff b4 is Function of ((abs (ar s)) -tuples_on U),U ) ) ); definition let S be Language; let U be non empty set ; let s be ofAtomicFormula Element of S; :: original: Interpreter redefine mode Interpreter of s,U -> Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN); coherence for b1 being Interpreter of s,U holds b1 is Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN) proof let f be Interpreter of s,U; ::_thesis: f is Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN) set n = abs (ar s); set D = (abs (ar s)) -tuples_on U; set C = U \/ BOOLEAN; (abs (ar s)) -tuples_on U c= ((abs (ar s)) -tuples_on U) \/ {} ; then reconsider DD = (abs (ar s)) -tuples_on U as Subset of ((abs (ar s)) -tuples_on U) ; reconsider C1 = BOOLEAN , C2 = U as Subset of (U \/ BOOLEAN) by XBOOLE_1:7; percases ( s is relational or not s is relational ) ; suppose s is relational ; ::_thesis: f is Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN) then reconsider ff = f as Function of DD,C1 by Def2; [:DD,C1:] c= [:((abs (ar s)) -tuples_on U),(U \/ BOOLEAN):] ; then reconsider fff = ff as Relation of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN) by XBOOLE_1:1; fff is Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN) ; hence f is Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN) ; ::_thesis: verum end; suppose not s is relational ; ::_thesis: f is Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN) then reconsider ff = f as Function of DD,C2 by Def2; [:DD,C2:] c= [:((abs (ar s)) -tuples_on U),(U \/ BOOLEAN):] ; then reconsider fff = ff as Relation of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN) by XBOOLE_1:1; fff is Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN) ; hence f is Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN) ; ::_thesis: verum end; end; end; end; registration let S be Language; let U be non empty set ; let s be termal Element of S; cluster -> U -valued for Interpreter of s,U; coherence for b1 being Interpreter of s,U holds b1 is U -valued by Def2; end; registration let S be Language; cluster literal -> own for Element of AllSymbolsOf S; coherence for b1 being Element of S st b1 is literal holds b1 is own ; end; definition let S be Language; let U be non empty set ; mode Interpreter of S,U -> Function means :Def3: :: FOMODEL2:def 3 for s being own Element of S holds it . s is Interpreter of s,U; existence ex b1 being Function st for s being own Element of S holds b1 . s is Interpreter of s,U proof set O = OwnSymbolsOf S; defpred S1[ set , set ] means ex s being own Element of S st ( $1 = s & $2 is Interpreter of s,U ); 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 y = the Interpreter of s,U; ::_thesis: S1[x,y] take s ; ::_thesis: ( x = s & y is Interpreter of s,U ) thus ( x = s & y is Interpreter of s,U ) ; ::_thesis: verum end; consider f being Function such that A2: ( dom f = OwnSymbolsOf S & ( for s being set st s in OwnSymbolsOf S holds S1[s,f . s] ) ) from CLASSES1:sch_1(A1); take f ; ::_thesis: for s being own Element of S holds f . s is Interpreter of s,U thus for s being own Element of S holds f . s is Interpreter of s,U ::_thesis: verum proof let s be own Element of S; ::_thesis: f . s is Interpreter of s,U s in OwnSymbolsOf S by FOMODEL1:def_19; then consider s1 being own Element of S such that A3: ( s = s1 & f . s is Interpreter of s1,U ) by A2; thus f . s is Interpreter of s,U by A3; ::_thesis: verum end; end; end; :: deftheorem Def3 defines Interpreter FOMODEL2:def_3_:_ for S being Language for U being non empty set for b3 being Function holds ( b3 is Interpreter of S,U iff for s being own Element of S holds b3 . s is Interpreter of s,U ); definition let S be Language; let U be non empty set ; let f be Function; attrf is S,U -interpreter-like means :Def4: :: FOMODEL2:def 4 ( f is Interpreter of S,U & f is Function-yielding ); end; :: deftheorem Def4 defines -interpreter-like FOMODEL2:def_4_:_ for S being Language for U being non empty set for f being Function holds ( f is S,U -interpreter-like iff ( f is Interpreter of S,U & f is Function-yielding ) ); registration let S be Language; let U be non empty set ; cluster Relation-like Function-like S,U -interpreter-like -> Function-yielding for set ; coherence for b1 being Function st b1 is S,U -interpreter-like holds b1 is Function-yielding by Def4; end; registration let S be Language; let U be non empty set ; let s be own Element of S; cluster -> non empty for Interpreter of s,U; coherence for b1 being Interpreter of s,U holds not b1 is empty ; end; Lm1: for S being Language for U being non empty set for f being Interpreter of S,U holds OwnSymbolsOf S c= dom f proof let S be Language; ::_thesis: for U being non empty set for f being Interpreter of S,U holds OwnSymbolsOf S c= dom f let U be non empty set ; ::_thesis: for f being Interpreter of S,U holds OwnSymbolsOf S c= dom f set SS = AllSymbolsOf S; set A = AtomicFormulaSymbolsOf S; set O = OwnSymbolsOf S; let f be Interpreter of S,U; ::_thesis: OwnSymbolsOf S c= dom f now__::_thesis:_for_x_being_set_st_x_in_OwnSymbolsOf_S_holds_ x_in_dom_f let x be set ; ::_thesis: ( x in OwnSymbolsOf S implies x in dom f ) assume x in OwnSymbolsOf S ; ::_thesis: x in dom f then reconsider s = x as own Element of S by FOMODEL1:def_19; not f . s is empty by Def3; hence x in dom f by FUNCT_1:def_2; ::_thesis: verum end; hence OwnSymbolsOf S c= dom f by TARSKI:def_3; ::_thesis: verum end; Lm2: for S being Language for U being non empty set for f being Function st f is S,U -interpreter-like holds OwnSymbolsOf S c= dom f proof let S be Language; ::_thesis: for U being non empty set for f being Function st f is S,U -interpreter-like holds OwnSymbolsOf S c= dom f let U be non empty set ; ::_thesis: for f being Function st f is S,U -interpreter-like holds OwnSymbolsOf S c= dom f let f be Function; ::_thesis: ( f is S,U -interpreter-like implies OwnSymbolsOf S c= dom f ) assume f is S,U -interpreter-like ; ::_thesis: OwnSymbolsOf S c= dom f then f is Interpreter of S,U by Def4; hence OwnSymbolsOf S c= dom f by Lm1; ::_thesis: verum end; registration let S be Language; let U be non empty set ; cluster Relation-like Function-like S,U -interpreter-like for set ; existence ex b1 being Function st b1 is S,U -interpreter-like proof set O = OwnSymbolsOf S; set SS = AllSymbolsOf S; set I = the Interpreter of S,U; reconsider f = the Interpreter of S,U | (OwnSymbolsOf S) as Function ; A1: dom f = (OwnSymbolsOf S) /\ (dom the Interpreter of S,U) by RELAT_1:61 .= OwnSymbolsOf S by Lm1, XBOOLE_1:28 ; take f ; ::_thesis: f is S,U -interpreter-like A2: for s being own Element of S holds ( f . s is Interpreter of s,U & f . s is Function ) proof let s be own Element of S; ::_thesis: ( f . s is Interpreter of s,U & f . s is Function ) s in dom f by A1, FOMODEL1:def_19; then A3: f . s = the Interpreter of S,U . s by FUNCT_1:47; hence f . s is Interpreter of s,U by Def3; ::_thesis: f . s is Function thus f . s is Function by A3, Def3; ::_thesis: verum end; then reconsider ff = f as Interpreter of S,U by Def3; now__::_thesis:_for_x_being_set_st_x_in_dom_f_holds_ ff_._x_is_Function let x be set ; ::_thesis: ( x in dom f implies ff . x is Function ) assume x in dom f ; ::_thesis: ff . x is Function then reconsider s = x as own Element of S by A1, FOMODEL1:def_19; ff . s is Function by A2; hence ff . x is Function ; ::_thesis: verum end; then ff is Function-yielding by FUNCOP_1:def_6; hence f is S,U -interpreter-like by Def4; ::_thesis: verum end; end; definition let S be Language; let U be non empty set ; let I be S,U -interpreter-like Function; let s be own Element of S; :: original: . redefine funcI . s -> Interpreter of s,U; coherence I . s is Interpreter of s,U proof reconsider I = I as Interpreter of S,U by Def4; I . s is Interpreter of s,U by Def3; hence I . s is Interpreter of s,U ; ::_thesis: verum end; end; registration let S be Language; let U be non empty set ; let I be S,U -interpreter-like Function; let x be own Element of S; let f be Interpreter of x,U; clusterI +* (x .--> f) -> S,U -interpreter-like ; coherence I +* (x .--> f) is S,U -interpreter-like proof set g = x .--> f; set O = OwnSymbolsOf S; set h = I +* (x .--> f); ( OwnSymbolsOf S c= dom I & dom I c= (dom I) \/ (dom (x .--> f)) ) by Lm2, XBOOLE_1:7; then A1: OwnSymbolsOf S c= (dom I) \/ (dom (x .--> f)) by XBOOLE_1:1; reconsider I = I as Interpreter of S,U by Def4; now__::_thesis:_for_s_being_own_Element_of_S_holds_(I_+*_(x_.-->_f))_._s_is_Interpreter_of_s,U let s be own Element of S; ::_thesis: (I +* (x .--> f)) . b1 is Interpreter of b1,U A2: s in OwnSymbolsOf S by FOMODEL1:def_19; percases ( s in dom (x .--> f) or not s in dom (x .--> f) ) ; supposeA3: s in dom (x .--> f) ; ::_thesis: (I +* (x .--> f)) . b1 is Interpreter of b1,U then A4: (I +* (x .--> f)) . s = (x .--> f) . s by A2, A1, FUNCT_4:def_1 .= f by A3, FUNCOP_1:7 ; thus (I +* (x .--> f)) . s is Interpreter of s,U by A4, A3, TARSKI:def_1; ::_thesis: verum end; suppose not s in dom (x .--> f) ; ::_thesis: (I +* (x .--> f)) . b1 is Interpreter of b1,U then (I +* (x .--> f)) . s = I . s by A1, A2, FUNCT_4:def_1; hence (I +* (x .--> f)) . s is Interpreter of s,U by Def3; ::_thesis: verum end; end; end; then ( I +* (x .--> f) is Interpreter of S,U & I +* (x .--> f) is Function-yielding ) by Def3; hence I +* (x .--> f) is S,U -interpreter-like by Def4; ::_thesis: verum end; end; definition let f be Function; let x, y be set ; func(x,y) ReassignIn f -> Function equals :: FOMODEL2:def 5 f +* (x .--> ({} .--> y)); coherence f +* (x .--> ({} .--> y)) is Function ; end; :: deftheorem defines ReassignIn FOMODEL2:def_5_:_ for f being Function for x, y being set holds (x,y) ReassignIn f = f +* (x .--> ({} .--> y)); registration let S be Language; let U be non empty set ; let I be S,U -interpreter-like Function; let x be literal Element of S; let u be Element of U; cluster(x,u) ReassignIn I -> S,U -interpreter-like ; coherence (x,u) ReassignIn I is S,U -interpreter-like proof set h = (x,u) ReassignIn I; set n = abs (ar x); ( abs (ar x) = 0 & {{}} = 0 -tuples_on U ) by FOMODEL0:10; then reconsider f = {{}} --> u as Function of ((abs (ar x)) -tuples_on U),U ; reconsider ff = f as Interpreter of x,U by Def2; (x,u) ReassignIn I = I +* (x .--> ff) ; hence (x,u) ReassignIn I is S,U -interpreter-like ; ::_thesis: verum end; end; registration let S be Language; cluster AllSymbolsOf S -> non empty ; coherence not AllSymbolsOf S is empty ; end; registration let Y be set ; let X, Z be non empty set ; cluster Function-like quasi_total -> Function-yielding for Element of bool [:X,(Funcs (Y,Z)):]; coherence for b1 being Function of X,(Funcs (Y,Z)) holds b1 is Function-yielding ; end; registration let X, Y, Z be non empty set ; cluster non empty Relation-like X -defined Funcs (Y,Z) -valued Function-like total quasi_total Function-yielding V164() for Element of bool [:X,(Funcs (Y,Z)):]; existence ex b1 being Function of X,(Funcs (Y,Z)) st b1 is Function-yielding proof take the Function of X,(Funcs (Y,Z)) ; ::_thesis: the Function of X,(Funcs (Y,Z)) is Function-yielding thus the Function of X,(Funcs (Y,Z)) is Function-yielding ; ::_thesis: verum end; end; definition let f be Function-yielding Function; let g be Function; func^^^g,f__ -> Function means :Def6: :: FOMODEL2:def 6 ( dom it = dom f & ( for x being set st x in dom f holds it . x = g * (f . x) ) ); existence ex b1 being Function st ( dom b1 = dom f & ( for x being set st x in dom f holds b1 . x = g * (f . x) ) ) proof deffunc H1( set ) -> set = g * (f . $1); consider h being Function such that A1: ( dom h = dom f & ( for x being set st x in dom f holds h . x = H1(x) ) ) from FUNCT_1:sch_3(); take h ; ::_thesis: ( dom h = dom f & ( for x being set st x in dom f holds h . x = g * (f . x) ) ) thus ( dom h = dom f & ( for x being set st x in dom f holds h . x = g * (f . x) ) ) by A1; ::_thesis: verum end; uniqueness for b1, b2 being Function st dom b1 = dom f & ( for x being set st x in dom f holds b1 . x = g * (f . x) ) & dom b2 = dom f & ( for x being set st x in dom f holds b2 . x = g * (f . x) ) holds b1 = b2 proof let IT1, IT2 be Function; ::_thesis: ( dom IT1 = dom f & ( for x being set st x in dom f holds IT1 . x = g * (f . x) ) & dom IT2 = dom f & ( for x being set st x in dom f holds IT2 . x = g * (f . x) ) implies IT1 = IT2 ) assume A2: ( dom IT1 = dom f & ( for x being set st x in dom f holds IT1 . x = g * (f . x) ) ) ; ::_thesis: ( not dom IT2 = dom f or ex x being set st ( x in dom f & not IT2 . x = g * (f . x) ) or IT1 = IT2 ) assume A3: ( dom IT2 = dom f & ( for x being set st x in dom f holds IT2 . x = g * (f . x) ) ) ; ::_thesis: IT1 = IT2 now__::_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 ( IT1 . x = g * (f . x) & IT2 . x = g * (f . x) ) by A2, A3; hence IT1 . x = IT2 . x ; ::_thesis: verum end; hence IT1 = IT2 by A2, A3, FUNCT_1:2; ::_thesis: verum end; end; :: deftheorem Def6 defines ^^^ FOMODEL2:def_6_:_ for f being Function-yielding Function for g, b3 being Function holds ( b3 = ^^^g,f__ iff ( dom b3 = dom f & ( for x being set st x in dom f holds b3 . x = g * (f . x) ) ) ); registration let f be empty Function; let g be Function; cluster^^^g,f__ -> empty ; coherence ^^^g,f__ is empty proof dom ^^^g,f__ = dom f by Def6 .= {} ; hence ^^^g,f__ is empty ; ::_thesis: verum end; end; definition let f be Function-yielding Function; let g be Function; func^^^f,g__ -> Function means :Def7: :: FOMODEL2:def 7 ( dom it = (dom f) /\ (dom g) & ( for x being set st x in dom it holds it . x = (f . x) . (g . x) ) ); existence ex b1 being Function st ( dom b1 = (dom f) /\ (dom g) & ( for x being set st x in dom b1 holds b1 . x = (f . x) . (g . x) ) ) proof set A = (dom f) /\ (dom g); deffunc H1( set ) -> set = (f . $1) . (g . $1); consider h being Function such that A1: ( dom h = (dom f) /\ (dom g) & ( for x being set st x in (dom f) /\ (dom g) holds h . x = H1(x) ) ) from FUNCT_1:sch_3(); take h ; ::_thesis: ( dom h = (dom f) /\ (dom g) & ( for x being set st x in dom h holds h . x = (f . x) . (g . x) ) ) thus ( dom h = (dom f) /\ (dom g) & ( for x being set st x in dom h holds h . x = (f . x) . (g . x) ) ) by A1; ::_thesis: verum end; uniqueness for b1, b2 being Function st dom b1 = (dom f) /\ (dom g) & ( for x being set st x in dom b1 holds b1 . x = (f . x) . (g . x) ) & dom b2 = (dom f) /\ (dom g) & ( for x being set st x in dom b2 holds b2 . x = (f . x) . (g . x) ) holds b1 = b2 proof set A = (dom f) /\ (dom g); let IT1, IT2 be Function; ::_thesis: ( dom IT1 = (dom f) /\ (dom g) & ( for x being set st x in dom IT1 holds IT1 . x = (f . x) . (g . x) ) & dom IT2 = (dom f) /\ (dom g) & ( for x being set st x in dom IT2 holds IT2 . x = (f . x) . (g . x) ) implies IT1 = IT2 ) assume A2: ( dom IT1 = (dom f) /\ (dom g) & ( for x being set st x in dom IT1 holds IT1 . x = (f . x) . (g . x) ) ) ; ::_thesis: ( not dom IT2 = (dom f) /\ (dom g) or ex x being set st ( x in dom IT2 & not IT2 . x = (f . x) . (g . x) ) or IT1 = IT2 ) assume A3: ( dom IT2 = (dom f) /\ (dom g) & ( for x being set st x in dom IT2 holds IT2 . x = (f . x) . (g . x) ) ) ; ::_thesis: IT1 = IT2 now__::_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 A4: x in dom IT1 ; ::_thesis: IT1 . x = IT2 . x thus IT1 . x = (f . x) . (g . x) by A2, A4 .= IT2 . x by A3, A4, A2 ; ::_thesis: verum end; hence IT1 = IT2 by A2, A3, FUNCT_1:2; ::_thesis: verum end; end; :: deftheorem Def7 defines ^^^ FOMODEL2:def_7_:_ for f being Function-yielding Function for g, b3 being Function holds ( b3 = ^^^f,g__ iff ( dom b3 = (dom f) /\ (dom g) & ( for x being set st x in dom b3 holds b3 . x = (f . x) . (g . x) ) ) ); registration let f be Function-yielding Function; let g be empty Function; cluster^^^f,g__ -> empty ; coherence ^^^f,g__ is empty proof dom ^^^f,g__ = (dom f) /\ (dom g) by Def7 .= {} ; hence ^^^f,g__ is empty ; ::_thesis: verum end; end; registration let X be FinSequence-membered set ; cluster Relation-like X -valued Function-like -> Function-yielding for set ; coherence for b1 being Function st b1 is X -valued holds b1 is Function-yielding ; end; registration let E, D be non empty set ; let p be D -valued FinSequence; let h be Function of D,E; clusterh (*) p -> len p -element for FinSequence; coherence for b1 being FinSequence st b1 = h * p holds b1 is len p -element proof reconsider pp = p as FinSequence of D by FOMODEL0:26; len (h * pp) = len pp by FINSEQ_2:33; hence for b1 being FinSequence st b1 = h * p holds b1 is len p -element by CARD_1:def_7; ::_thesis: verum end; end; registration let X, Y be non empty set ; let f be Function of X,Y; let p be X -valued FinSequence; clusterf (*) p -> FinSequence-like ; coherence f * p is FinSequence-like ; end; registration let E, D be non empty set ; let n be Nat; let p be D -valued n -element FinSequence; let h be Function of D,E; clusterh (*) p -> n -element for FinSequence of E; coherence for b1 being FinSequence of E st b1 = h * p holds b1 is n -element ; end; Lm3: for U being non empty set for S being Language for I being b2,b1 -interpreter-like Function for t being termal string of S holds (abs (ar t)) -tuples_on U = dom (I . ((S -firstChar) . t)) by FUNCT_2:def_1; theorem :: FOMODEL2:1 for S being Language for t0 being 0 -termal string of S holds t0 = <*((S -firstChar) . t0)*> proof let S be Language; ::_thesis: for t0 being 0 -termal string of S holds t0 = <*((S -firstChar) . t0)*> let t0 be 0 -termal string of S; ::_thesis: t0 = <*((S -firstChar) . t0)*> reconsider e = (S -multiCat) . (SubTerms t0) as empty set ; t0 = <*((S -firstChar) . t0)*> ^ e by FOMODEL1:def_37 .= <*((S -firstChar) . t0)*> ; hence t0 = <*((S -firstChar) . t0)*> ; ::_thesis: verum end; Lm4: for S being Language for U being non empty set for I being b1,b2 -interpreter-like Function for xx being Function of (AllTermsOf S),U holds ( ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ is Element of Funcs ((AllTermsOf S),U) & AllTermsOf S c= dom (I * (S -firstChar)) ) proof let S be Language; ::_thesis: for U being non empty set for I being S,b1 -interpreter-like Function for xx being Function of (AllTermsOf S),U holds ( ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ is Element of Funcs ((AllTermsOf S),U) & AllTermsOf S c= dom (I * (S -firstChar)) ) let U be non empty set ; ::_thesis: for I being S,U -interpreter-like Function for xx being Function of (AllTermsOf S),U holds ( ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ is Element of Funcs ((AllTermsOf S),U) & AllTermsOf S c= dom (I * (S -firstChar)) ) let I be S,U -interpreter-like Function; ::_thesis: for xx being Function of (AllTermsOf S),U holds ( ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ is Element of Funcs ((AllTermsOf S),U) & AllTermsOf S c= dom (I * (S -firstChar)) ) set A = AllTermsOf S; set F = S -firstChar ; set ST = S -subTerms ; set SS = AllSymbolsOf S; set Z = AtomicTermsOf S; set T = S -termsOfMaxDepth ; A1: dom (S -firstChar) = ((AllSymbolsOf S) *) \ {{}} by FUNCT_2:def_1; let xx be Function of (AllTermsOf S),U; ::_thesis: ( ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ is Element of Funcs ((AllTermsOf S),U) & AllTermsOf S c= dom (I * (S -firstChar)) ) set f = ^^^xx,(S -subTerms)__; set g = ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____; A2: dom ^^^xx,(S -subTerms)__ = dom (S -subTerms) by Def6 .= AllTermsOf S by FUNCT_2:def_1 ; A3: for a being set st a in AllTermsOf S holds ( a in dom (I * (S -firstChar)) & ( a in dom ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ implies ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ . a in U ) ) proof let a be set ; ::_thesis: ( a in AllTermsOf S implies ( a in dom (I * (S -firstChar)) & ( a in dom ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ implies ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ . a in U ) ) ) assume A4: a in AllTermsOf S ; ::_thesis: ( a in dom (I * (S -firstChar)) & ( a in dom ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ implies ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ . a in U ) ) then reconsider t = a as termal string of S ; set n = abs (ar t); reconsider ss = (S -firstChar) . t as termal Element of S ; reconsider s = ss as own Element of S ; reconsider t1 = s as Element of OwnSymbolsOf S by FOMODEL1:def_19; ( t1 in OwnSymbolsOf S & OwnSymbolsOf S c= dom I ) by Lm2; hence A5: a in dom (I * (S -firstChar)) by A1, FUNCT_1:11; ::_thesis: ( a in dom ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ implies ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ . a in U ) reconsider tt = a as Element of AllTermsOf S by A4; reconsider i = I . s as Interpreter of s,U ; (S -subTerms) . tt = SubTerms t by FOMODEL1:def_39; then reconsider y = (S -subTerms) . tt as abs (ar t) -element FinSequence of AllTermsOf S by FINSEQ_1:def_11; reconsider z = xx * y as abs (ar t) -element FinSequence of U ; len z = abs (ar t) by CARD_1:def_7; then reconsider zz = z as Element of (abs (ar t)) -tuples_on U by FINSEQ_2:133; (abs (ar t)) -tuples_on U c= dom (I . t1) by Lm3; then A6: zz in dom i by TARSKI:def_3; tt in AllTermsOf S ; then A7: tt in dom (S -subTerms) by FUNCT_2:def_1; assume a in dom ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ ; ::_thesis: ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ . a in U then ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ . t = ((I * (S -firstChar)) . t) . (^^^xx,(S -subTerms)__ . t) by Def7 .= (I . s) . (^^^xx,(S -subTerms)__ . t) by A5, FUNCT_1:12 .= i . zz by Def6, A7 ; hence ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ . a in U by A6, FUNCT_1:102; ::_thesis: verum end; then A8: for a being set st a in AllTermsOf S holds a in dom (I * (S -firstChar)) ; then A9: AllTermsOf S c= dom (I * (S -firstChar)) by TARSKI:def_3; A10: dom ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ = (dom (I * (S -firstChar))) /\ (AllTermsOf S) by A2, Def7 .= AllTermsOf S by A9, XBOOLE_1:28 ; then for a being set st a in AllTermsOf S holds ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ . a in U by A3; then ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ is Function of (AllTermsOf S),U by A10, FUNCT_2:3; hence ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ is Element of Funcs ((AllTermsOf S),U) by FUNCT_2:8; ::_thesis: AllTermsOf S c= dom (I * (S -firstChar)) thus AllTermsOf S c= dom (I * (S -firstChar)) by A8, TARSKI:def_3; ::_thesis: verum end; definition let S be Language; let U be non empty set ; let u be Element of U; let I be S,U -interpreter-like Function; func(I,u) -TermEval -> Function of NAT,(Funcs ((AllTermsOf S),U)) means :Def8: :: FOMODEL2:def 8 ( it . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds it . (mm + 1) = ^^^(I * (S -firstChar)),^^^(it . mm),(S -subTerms)____ ) ); existence ex b1 being Function of NAT,(Funcs ((AllTermsOf S),U)) st ( b1 . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds b1 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(b1 . mm),(S -subTerms)____ ) ) proof set A = AllTermsOf S; set F = S -firstChar ; set ST = S -subTerms ; set SS = AllSymbolsOf S; set Z = AtomicTermsOf S; set T = S -termsOfMaxDepth ; set fz = (AllTermsOf S) --> u; defpred S1[ set , Element of Funcs ((AllTermsOf S),U), set ] means $3 = ^^^(I * (S -firstChar)),^^^$2,(S -subTerms)____; reconsider fzz = (AllTermsOf S) --> u as Function of (AllTermsOf S),U ; reconsider fzzz = fzz as Element of Funcs ((AllTermsOf S),U) by FUNCT_2:8; A1: for mm being Element of NAT for x being Element of Funcs ((AllTermsOf S),U) ex y being Element of Funcs ((AllTermsOf S),U) st S1[mm,x,y] proof let mm be Element of NAT ; ::_thesis: for x being Element of Funcs ((AllTermsOf S),U) ex y being Element of Funcs ((AllTermsOf S),U) st S1[mm,x,y] let x be Element of Funcs ((AllTermsOf S),U); ::_thesis: ex y being Element of Funcs ((AllTermsOf S),U) st S1[mm,x,y] reconsider xx = x as Function of (AllTermsOf S),U ; reconsider yy = ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ as Function of (AllTermsOf S),U by Lm4; reconsider yyy = yy as Element of Funcs ((AllTermsOf S),U) by FUNCT_2:8; take yyy ; ::_thesis: S1[mm,x,yyy] thus S1[mm,x,yyy] ; ::_thesis: verum end; consider f being Function of NAT,(Funcs ((AllTermsOf S),U)) such that A2: ( f . 0 = fzzz & ( for mm being Element of NAT holds S1[mm,f . mm,f . (mm + 1)] ) ) from RECDEF_1:sch_2(A1); take f ; ::_thesis: ( f . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds f . (mm + 1) = ^^^(I * (S -firstChar)),^^^(f . mm),(S -subTerms)____ ) ) thus ( f . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds f . (mm + 1) = ^^^(I * (S -firstChar)),^^^(f . mm),(S -subTerms)____ ) ) by A2; ::_thesis: verum end; uniqueness for b1, b2 being Function of NAT,(Funcs ((AllTermsOf S),U)) st b1 . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds b1 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(b1 . mm),(S -subTerms)____ ) & b2 . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds b2 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(b2 . mm),(S -subTerms)____ ) holds b1 = b2 proof set A = AllTermsOf S; set F = S -firstChar ; set ST = S -subTerms ; set SS = AllSymbolsOf S; set Z = AtomicTermsOf S; set T = S -termsOfMaxDepth ; set fz = (AllTermsOf S) --> u; reconsider fzz = (AllTermsOf S) --> u as Element of Funcs ((AllTermsOf S),U) by FUNCT_2:8; defpred S1[ set , set , set ] means for f being Element of Funcs ((AllTermsOf S),U) st $2 = f holds $3 = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____; let IT1, IT2 be Function of NAT,(Funcs ((AllTermsOf S),U)); ::_thesis: ( IT1 . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds IT1 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(IT1 . mm),(S -subTerms)____ ) & IT2 . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds IT2 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(IT2 . mm),(S -subTerms)____ ) implies IT1 = IT2 ) assume A3: ( IT1 . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds IT1 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(IT1 . mm),(S -subTerms)____ ) ) ; ::_thesis: ( not IT2 . 0 = (AllTermsOf S) --> u or ex mm being Element of NAT st not IT2 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(IT2 . mm),(S -subTerms)____ or IT1 = IT2 ) assume A4: ( IT2 . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds IT2 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(IT2 . mm),(S -subTerms)____ ) ) ; ::_thesis: IT1 = IT2 A5: IT1 . 0 = fzz by A3; A6: for m being Nat holds S1[m,IT1 . m,IT1 . (m + 1)] proof let m be Nat; ::_thesis: S1[m,IT1 . m,IT1 . (m + 1)] reconsider mm = m as Element of NAT by ORDINAL1:def_12; let f be Element of Funcs ((AllTermsOf S),U); ::_thesis: ( IT1 . m = f implies IT1 . (m + 1) = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____ ) assume IT1 . m = f ; ::_thesis: IT1 . (m + 1) = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____ then IT1 . mm = f ; hence IT1 . (m + 1) = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____ by A3; ::_thesis: verum end; A7: IT2 . 0 = fzz by A4; A8: for m being Nat holds S1[m,IT2 . m,IT2 . (m + 1)] proof let m be Nat; ::_thesis: S1[m,IT2 . m,IT2 . (m + 1)] reconsider mm = m as Element of NAT by ORDINAL1:def_12; let f be Element of Funcs ((AllTermsOf S),U); ::_thesis: ( IT2 . m = f implies IT2 . (m + 1) = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____ ) assume IT2 . m = f ; ::_thesis: IT2 . (m + 1) = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____ then IT2 . mm = f ; hence IT2 . (m + 1) = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____ by A4; ::_thesis: verum end; A9: for m being Nat for x, y1, y2 being Element of Funcs ((AllTermsOf S),U) st S1[m,x,y1] & S1[m,x,y2] holds y1 = y2 proof let m be Nat; ::_thesis: for x, y1, y2 being Element of Funcs ((AllTermsOf S),U) st S1[m,x,y1] & S1[m,x,y2] holds y1 = y2 let x, y1, y2 be Element of Funcs ((AllTermsOf S),U); ::_thesis: ( S1[m,x,y1] & S1[m,x,y2] implies y1 = y2 ) assume for f being Element of Funcs ((AllTermsOf S),U) st x = f holds y1 = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____ ; ::_thesis: ( not S1[m,x,y2] or y1 = y2 ) then A10: y1 = ^^^(I * (S -firstChar)),^^^x,(S -subTerms)____ ; assume for f being Element of Funcs ((AllTermsOf S),U) st x = f holds y2 = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____ ; ::_thesis: y1 = y2 hence y1 = y2 by A10; ::_thesis: verum end; IT1 = IT2 from NAT_1:sch_14(A5, A6, A7, A8, A9); hence IT1 = IT2 ; ::_thesis: verum end; end; :: deftheorem Def8 defines -TermEval FOMODEL2:def_8_:_ for S being Language for U being non empty set for u being Element of U for I being b1,b2 -interpreter-like Function for b5 being Function of NAT,(Funcs ((AllTermsOf S),U)) holds ( b5 = (I,u) -TermEval iff ( b5 . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds b5 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(b5 . mm),(S -subTerms)____ ) ) ); Lm5: for S being Language for U being non empty set for u being Element of U for I being b1,b2 -interpreter-like Function for t being termal string of S for mm being Element of NAT holds ( (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) proof let S be Language; ::_thesis: for U being non empty set for u being Element of U for I being S,b1 -interpreter-like Function for t being termal string of S for mm being Element of NAT holds ( (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) let U be non empty set ; ::_thesis: for u being Element of U for I being S,U -interpreter-like Function for t being termal string of S for mm being Element of NAT holds ( (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) let u be Element of U; ::_thesis: for I being S,U -interpreter-like Function for t being termal string of S for mm being Element of NAT holds ( (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) let I be S,U -interpreter-like Function; ::_thesis: for t being termal string of S for mm being Element of NAT holds ( (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) let t be termal string of S; ::_thesis: for mm being Element of NAT holds ( (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) let mm be Element of NAT ; ::_thesis: ( (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) set TE = (I,u) -TermEval ; set F = S -firstChar ; set ST = S -subTerms ; set A = AllTermsOf S; A1: ( t in AllTermsOf S & AllTermsOf S c= dom (I * (S -firstChar)) ) by Lm4, FOMODEL1:def_32; reconsider tt = t as Element of AllTermsOf S by FOMODEL1:def_32; set G = ^^^(I * (S -firstChar)),^^^(((I,u) -TermEval) . mm),(S -subTerms)____; A2: dom (S -subTerms) = AllTermsOf S by FUNCT_2:def_1; ^^^(I * (S -firstChar)),^^^(((I,u) -TermEval) . mm),(S -subTerms)____ is Function of (AllTermsOf S),U by Lm4; then A3: dom ^^^(I * (S -firstChar)),^^^(((I,u) -TermEval) . mm),(S -subTerms)____ = AllTermsOf S by FUNCT_2:def_1; A4: (((I,u) -TermEval) . (mm + 1)) . t = ^^^(I * (S -firstChar)),^^^(((I,u) -TermEval) . mm),(S -subTerms)____ . t by Def8 .= ((I * (S -firstChar)) . t) . (^^^(((I,u) -TermEval) . mm),(S -subTerms)__ . t) by A1, Def7, A3 .= ((I * (S -firstChar)) . t) . ((((I,u) -TermEval) . mm) * ((S -subTerms) . tt)) by Def6, A2 .= ((I * (S -firstChar)) . t) . ((((I,u) -TermEval) . mm) * (SubTerms t)) by FOMODEL1:def_39 .= (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) by A1, FUNCT_1:12 ; hence (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) ; ::_thesis: ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ) assume t is 0 -termal ; ::_thesis: (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} then reconsider tt = t as 0 -termal string of S ; reconsider s = (S -firstChar) . tt as literal Element of S ; reconsider v = I . s as Interpreter of s,U ; (((I,u) -TermEval) . (mm + 1)) . t = v . {} by A4; hence (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ; ::_thesis: verum end; Lm6: for S being Language for U being non empty set for I being b1,b2 -interpreter-like Function for u1, u2 being Element of U for m being Nat for t being b6 -termal string of S for n being Nat holds (((I,u1) -TermEval) . (m + 1)) . t = (((I,u2) -TermEval) . ((m + 1) + n)) . t proof let S be Language; ::_thesis: for U being non empty set for I being S,b1 -interpreter-like Function for u1, u2 being Element of U for m being Nat for t being b5 -termal string of S for n being Nat holds (((I,u1) -TermEval) . (m + 1)) . t = (((I,u2) -TermEval) . ((m + 1) + n)) . t let U be non empty set ; ::_thesis: for I being S,U -interpreter-like Function for u1, u2 being Element of U for m being Nat for t being b4 -termal string of S for n being Nat holds (((I,u1) -TermEval) . (m + 1)) . t = (((I,u2) -TermEval) . ((m + 1) + n)) . t let I be S,U -interpreter-like Function; ::_thesis: for u1, u2 being Element of U for m being Nat for t being b3 -termal string of S for n being Nat holds (((I,u1) -TermEval) . (m + 1)) . t = (((I,u2) -TermEval) . ((m + 1) + n)) . t let u1, u2 be Element of U; ::_thesis: for m being Nat for t being b1 -termal string of S for n being Nat holds (((I,u1) -TermEval) . (m + 1)) . t = (((I,u2) -TermEval) . ((m + 1) + n)) . t set F = S -firstChar ; set ST = S -subTerms ; set A = AllTermsOf S; set T = S -termsOfMaxDepth ; set U1 = (I,u1) -TermEval ; set U2 = (I,u2) -TermEval ; set SS = AllSymbolsOf S; defpred S1[ Nat] means for t being $1 -termal string of S for n being Nat holds (((I,u1) -TermEval) . ($1 + 1)) . t = (((I,u2) -TermEval) . (($1 + 1) + n)) . t; A1: S1[ 0 ] proof let t be 0 -termal string of S; ::_thesis: for n being Nat holds (((I,u1) -TermEval) . (0 + 1)) . t = (((I,u2) -TermEval) . ((0 + 1) + n)) . t let n be Nat; ::_thesis: (((I,u1) -TermEval) . (0 + 1)) . t = (((I,u2) -TermEval) . ((0 + 1) + n)) . t reconsider nn = n as Element of NAT by ORDINAL1:def_12; (((I,u1) -TermEval) . (0 + 1)) . t = (I . ((S -firstChar) . t)) . {} by Lm5 .= (((I,u2) -TermEval) . ((0 + 1) + nn)) . t by Lm5 ; hence (((I,u1) -TermEval) . (0 + 1)) . t = (((I,u2) -TermEval) . ((0 + 1) + n)) . t ; ::_thesis: verum end; A2: for k being Element of NAT st S1[k] holds S1[k + 1] proof let k be Element of NAT ; ::_thesis: ( S1[k] implies S1[k + 1] ) assume A3: S1[k] ; ::_thesis: S1[k + 1] reconsider K = k + 1 as Element of NAT ; let t be k + 1 -termal string of S; ::_thesis: for n being Nat holds (((I,u1) -TermEval) . ((k + 1) + 1)) . t = (((I,u2) -TermEval) . (((k + 1) + 1) + n)) . t let n be Nat; ::_thesis: (((I,u1) -TermEval) . ((k + 1) + 1)) . t = (((I,u2) -TermEval) . (((k + 1) + 1) + n)) . t reconsider KK = K + n as Element of NAT ; reconsider tt = t as termal string of S ; A4: (((I,u1) -TermEval) . K) * (SubTerms t) = (((I,u2) -TermEval) . (K + n)) * (SubTerms t) proof set V = SubTerms t; set l = abs (ar t); reconsider VV = SubTerms t as abs (ar t) -element FinSequence of AllTermsOf S by FINSEQ_1:def_11; reconsider VVV = SubTerms t as (S -termsOfMaxDepth) . k -valued Function ; len VV = abs (ar t) by CARD_1:def_7; then A5: dom VVV = Seg (abs (ar t)) by FINSEQ_1:def_3; reconsider U1K = ((I,u1) -TermEval) . K, U2K = ((I,u2) -TermEval) . KK as Function of (AllTermsOf S),U ; reconsider p = U1K * VV, q = U2K * VV as abs (ar t) -element FinSequence of U ; ( len p = abs (ar t) & len q = abs (ar t) ) by CARD_1:def_7; then A6: ( dom p = Seg (abs (ar t)) & dom q = Seg (abs (ar t)) ) by FINSEQ_1:def_3; for i being set st i in Seg (abs (ar t)) holds p . i = q . i proof let i be set ; ::_thesis: ( i in Seg (abs (ar t)) implies p . i = q . i ) assume A7: i in Seg (abs (ar t)) ; ::_thesis: p . i = q . i then ( VVV . i in ((AllSymbolsOf S) *) \ {{}} & VVV . i in (S -termsOfMaxDepth) . k ) by A5, FUNCT_1:102; then reconsider t1 = VVV . i as k -termal string of S by FOMODEL1:def_33; p . i = (((I,u1) -TermEval) . K) . t1 by A7, A6, FUNCT_1:12 .= U2K . (VVV . i) by A3 .= q . i by A7, A6, FUNCT_1:12 ; hence p . i = q . i ; ::_thesis: verum end; hence (((I,u1) -TermEval) . K) * (SubTerms t) = (((I,u2) -TermEval) . (K + n)) * (SubTerms t) by A6, FUNCT_1:2; ::_thesis: verum end; (((I,u1) -TermEval) . (K + 1)) . tt = (I . ((S -firstChar) . tt)) . ((((I,u2) -TermEval) . KK) * (SubTerms t)) by Lm5, A4 .= (((I,u2) -TermEval) . (KK + 1)) . tt by Lm5 ; hence (((I,u1) -TermEval) . ((k + 1) + 1)) . t = (((I,u2) -TermEval) . (((k + 1) + 1) + n)) . t ; ::_thesis: verum end; A8: for mm being Element of NAT holds S1[mm] from NAT_1:sch_1(A1, A2); now__::_thesis:_for_m_being_Nat_holds_S1[m] let m be Nat; ::_thesis: S1[m] reconsider mm = m as Element of NAT by ORDINAL1:def_12; S1[mm] by A8; hence S1[m] ; ::_thesis: verum end; hence for m being Nat for t being b1 -termal string of S for n being Nat holds (((I,u1) -TermEval) . (m + 1)) . t = (((I,u2) -TermEval) . ((m + 1) + n)) . t ; ::_thesis: verum end; definition let S be Language; let U be non empty set ; let I be S,U -interpreter-like Function; let t be Element of AllTermsOf S; funcI -TermEval t -> Element of U means :Def9: :: FOMODEL2:def 9 for u1 being Element of U for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds it = (((I,u1) -TermEval) . (mm + 1)) . t; existence ex b1 being Element of U st for u1 being Element of U for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds b1 = (((I,u1) -TermEval) . (mm + 1)) . t proof set T = S -termsOfMaxDepth ; set A = AllTermsOf S; consider mm being Element of NAT such that A1: t in (S -termsOfMaxDepth) . mm by FOMODEL1:5; set u1 = the Element of U; reconsider t0 = t as string of S ; reconsider t1 = t0 as mm -termal string of S by A1, FOMODEL1:def_33; reconsider mmm = mm + 1 as Element of NAT ; reconsider f1 = ((I, the Element of U) -TermEval) . mmm as Function of (AllTermsOf S),U ; reconsider IT = f1 . t as Element of U ; take IT ; ::_thesis: for u1 being Element of U for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds IT = (((I,u1) -TermEval) . (mm + 1)) . t let u2 be Element of U; ::_thesis: for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds IT = (((I,u2) -TermEval) . (mm + 1)) . t let nn be Element of NAT ; ::_thesis: ( t in (S -termsOfMaxDepth) . nn implies IT = (((I,u2) -TermEval) . (nn + 1)) . t ) assume t in (S -termsOfMaxDepth) . nn ; ::_thesis: IT = (((I,u2) -TermEval) . (nn + 1)) . t then reconsider t2 = t0 as nn -termal string of S by FOMODEL1:def_33; IT = (((I,u2) -TermEval) . ((mm + 1) + nn)) . t1 by Lm6 .= (((I,u2) -TermEval) . ((nn + 1) + mm)) . t2 .= (((I,u2) -TermEval) . (nn + 1)) . t2 by Lm6 ; hence IT = (((I,u2) -TermEval) . (nn + 1)) . t ; ::_thesis: verum end; uniqueness for b1, b2 being Element of U st ( for u1 being Element of U for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds b1 = (((I,u1) -TermEval) . (mm + 1)) . t ) & ( for u1 being Element of U for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds b2 = (((I,u1) -TermEval) . (mm + 1)) . t ) holds b1 = b2 proof set T = S -termsOfMaxDepth ; set A = AllTermsOf S; let IT1, IT2 be Element of U; ::_thesis: ( ( for u1 being Element of U for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds IT1 = (((I,u1) -TermEval) . (mm + 1)) . t ) & ( for u1 being Element of U for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds IT2 = (((I,u1) -TermEval) . (mm + 1)) . t ) implies IT1 = IT2 ) assume A2: for u1 being Element of U for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds IT1 = (((I,u1) -TermEval) . (mm + 1)) . t ; ::_thesis: ( ex u1 being Element of U ex mm being Element of NAT st ( t in (S -termsOfMaxDepth) . mm & not IT2 = (((I,u1) -TermEval) . (mm + 1)) . t ) or IT1 = IT2 ) assume A3: for u2 being Element of U for nn being Element of NAT st t in (S -termsOfMaxDepth) . nn holds IT2 = (((I,u2) -TermEval) . (nn + 1)) . t ; ::_thesis: IT1 = IT2 consider mm being Element of NAT such that A4: t in (S -termsOfMaxDepth) . mm by FOMODEL1:5; set u = the Element of U; IT1 = (((I, the Element of U) -TermEval) . (mm + 1)) . t by A2, A4 .= IT2 by A3, A4 ; hence IT1 = IT2 ; ::_thesis: verum end; end; :: deftheorem Def9 defines -TermEval FOMODEL2:def_9_:_ for S being Language for U being non empty set for I being b1,b2 -interpreter-like Function for t being Element of AllTermsOf S for b5 being Element of U holds ( b5 = I -TermEval t iff for u1 being Element of U for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds b5 = (((I,u1) -TermEval) . (mm + 1)) . t ); definition let S be Language; let U be non empty set ; let I be S,U -interpreter-like Function; funcI -TermEval -> Function of (AllTermsOf S),U means :Def10: :: FOMODEL2:def 10 for t being Element of AllTermsOf S holds it . t = I -TermEval t; existence ex b1 being Function of (AllTermsOf S),U st for t being Element of AllTermsOf S holds b1 . t = I -TermEval t proof set A = AllTermsOf S; deffunc H1( Element of AllTermsOf S) -> Element of U = I -TermEval $1; consider f being Function of (AllTermsOf S),U such that A1: for t being Element of AllTermsOf S holds f . t = H1(t) from FUNCT_2:sch_4(); take f ; ::_thesis: for t being Element of AllTermsOf S holds f . t = I -TermEval t thus for t being Element of AllTermsOf S holds f . t = I -TermEval t by A1; ::_thesis: verum end; uniqueness for b1, b2 being Function of (AllTermsOf S),U st ( for t being Element of AllTermsOf S holds b1 . t = I -TermEval t ) & ( for t being Element of AllTermsOf S holds b2 . t = I -TermEval t ) holds b1 = b2 proof set A = AllTermsOf S; let IT1, IT2 be Function of (AllTermsOf S),U; ::_thesis: ( ( for t being Element of AllTermsOf S holds IT1 . t = I -TermEval t ) & ( for t being Element of AllTermsOf S holds IT2 . t = I -TermEval t ) implies IT1 = IT2 ) assume A2: for t being Element of AllTermsOf S holds IT1 . t = I -TermEval t ; ::_thesis: ( ex t being Element of AllTermsOf S st not IT2 . t = I -TermEval t or IT1 = IT2 ) assume A3: for t being Element of AllTermsOf S holds IT2 . t = I -TermEval t ; ::_thesis: IT1 = IT2 now__::_thesis:_for_t_being_Element_of_AllTermsOf_S_holds_IT1_._t_=_IT2_._t let t be Element of AllTermsOf S; ::_thesis: IT1 . t = IT2 . t thus IT1 . t = I -TermEval t by A2 .= IT2 . t by A3 ; ::_thesis: verum end; hence IT1 = IT2 by FUNCT_2:63; ::_thesis: verum end; end; :: deftheorem Def10 defines -TermEval FOMODEL2:def_10_:_ for S being Language for U being non empty set for I being b1,b2 -interpreter-like Function for b4 being Function of (AllTermsOf S),U holds ( b4 = I -TermEval iff for t being Element of AllTermsOf S holds b4 . t = I -TermEval t ); definition let S be Language; let U be non empty set ; let I be S,U -interpreter-like Function; funcI === -> Function equals :: FOMODEL2:def 11 I +* ((TheEqSymbOf S) .--> (U -deltaInterpreter)); coherence I +* ((TheEqSymbOf S) .--> (U -deltaInterpreter)) is Function ; end; :: deftheorem defines === FOMODEL2:def_11_:_ for S being Language for U being non empty set for I being b1,b2 -interpreter-like Function holds I === = I +* ((TheEqSymbOf S) .--> (U -deltaInterpreter)); definition let S be Language; let U be non empty set ; let I be S,U -interpreter-like Function; let x be set ; attrx is I -extension means :Def12: :: FOMODEL2:def 12 x = I === ; end; :: deftheorem Def12 defines -extension FOMODEL2:def_12_:_ for S being Language for U being non empty set for I being b1,b2 -interpreter-like Function for x being set holds ( x is I -extension iff x = I === ); registration let S be Language; let U be non empty set ; let I be S,U -interpreter-like Function; clusterI === -> I -extension for Function; coherence for b1 being Function st b1 = I === holds b1 is I -extension by Def12; clusterI -extension -> Function-like for set ; coherence for b1 being set st b1 is I -extension holds b1 is Function-like proof let x be set ; ::_thesis: ( x is I -extension implies x is Function-like ) assume x is I -extension ; ::_thesis: x is Function-like then x = I === by Def12; hence x is Function-like ; ::_thesis: verum end; end; registration let S be Language; let U be non empty set ; let I be S,U -interpreter-like Function; cluster Relation-like Function-like I -extension for set ; existence ex b1 being Function st b1 is I -extension proof take f = I === ; ::_thesis: f is I -extension thus f is I -extension ; ::_thesis: verum end; end; registration let S be Language; let U be non empty set ; let I be S,U -interpreter-like Function; clusterI === -> S,U -interpreter-like ; coherence I === is S,U -interpreter-like proof set EQ = TheEqSymbOf S; set g = (TheEqSymbOf S) .--> (U -deltaInterpreter); set O = OwnSymbolsOf S; set A = AtomicFormulaSymbolsOf S; now__::_thesis:_for_s_being_own_Element_of_S_holds_(I_===)_._s_is_Interpreter_of_s,U let s be own Element of S; ::_thesis: (I ===) . s is Interpreter of s,U s in OwnSymbolsOf S by FOMODEL1:def_19; then not s in (AtomicFormulaSymbolsOf S) \ (OwnSymbolsOf S) by XBOOLE_0:def_5; then not s in {(TheEqSymbOf S)} by FOMODEL1:9; then not s in dom ((TheEqSymbOf S) .--> (U -deltaInterpreter)) ; then (I ===) . s = I . s by FUNCT_4:11; hence (I ===) . s is Interpreter of s,U ; ::_thesis: verum end; hence I === is Interpreter of S,U by Def3; :: according to FOMODEL2:def_4 ::_thesis: I === is Function-yielding thus I === is Function-yielding ; ::_thesis: verum end; end; definition let S be Language; let U be non empty set ; let I be S,U -interpreter-like Function; let f be I -extension Function; let s be ofAtomicFormula Element of S; :: original: . redefine funcf . s -> Interpreter of s,U; coherence f . s is Interpreter of s,U proof set a = the adicity of S; set EQ = TheEqSymbOf S; set d = U -deltaInterpreter ; set g = (TheEqSymbOf S) .--> (U -deltaInterpreter); set n = ar s; set A = AtomicFormulaSymbolsOf S; set O = OwnSymbolsOf S; reconsider sss = s as Element of AtomicFormulaSymbolsOf S by FOMODEL1:def_20; reconsider EQQ = TheEqSymbOf S as ofAtomicFormula Element of S ; ar EQQ = - 2 by FOMODEL1:def_23; then A1: abs (ar EQQ) = - (- 2) by ABSVALUE:def_1 .= 2 ; A2: f = I === by Def12; percases ( s is own or not s is own ) ; suppose s is own ; ::_thesis: f . s is Interpreter of s,U then reconsider ss = s as own Element of S ; (I ===) . ss is Interpreter of s,U ; hence f . s is Interpreter of s,U by Def12; ::_thesis: verum end; suppose not s is own ; ::_thesis: f . s is Interpreter of s,U then not sss in OwnSymbolsOf S by FOMODEL1:def_19; then sss in (AtomicFormulaSymbolsOf S) \ (OwnSymbolsOf S) by XBOOLE_0:def_5; then sss in {(TheEqSymbOf S)} by FOMODEL1:9; then s = TheEqSymbOf S by TARSKI:def_1; then ( f . s is Function of ((abs (ar s)) -tuples_on U),BOOLEAN & s is relational ) by A1, A2, FUNCT_7:94; hence f . s is Interpreter of s,U by Def2; ::_thesis: verum end; end; end; end; definition let S be Language; let U be non empty set ; let I be S,U -interpreter-like Function; let phi be 0wff string of S; funcI -AtomicEval phi -> set equals :: FOMODEL2:def 13 ((I ===) . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)); coherence ((I ===) . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)) is set ; end; :: deftheorem defines -AtomicEval FOMODEL2:def_13_:_ for S being Language for U being non empty set for I being b1,b2 -interpreter-like Function for phi being 0wff string of S holds I -AtomicEval phi = ((I ===) . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)); definition let S be Language; let U be non empty set ; let I be S,U -interpreter-like Function; let phi be 0wff string of S; :: original: -AtomicEval redefine funcI -AtomicEval phi -> Element of BOOLEAN ; coherence I -AtomicEval phi is Element of BOOLEAN proof set F = S -firstChar ; set i = I -TermEval ; set A = AllTermsOf S; reconsider s = (S -firstChar) . phi as relational Element of S ; set n = abs (ar s); reconsider f = (I ===) . s as Interpreter of s,U ; reconsider ff = f as Function of ((abs (ar s)) -tuples_on U),BOOLEAN by Def2; reconsider V = SubTerms phi as abs (ar s) -element FinSequence of AllTermsOf S by FINSEQ_1:def_11; reconsider iV = (I -TermEval) * V as abs (ar s) -element FinSequence of U ; len iV = abs (ar s) by CARD_1:def_7; then reconsider iVV = iV as Element of (abs (ar s)) -tuples_on U by FINSEQ_2:133; ff . iVV is Element of BOOLEAN ; hence I -AtomicEval phi is Element of BOOLEAN ; ::_thesis: verum end; end; registration let S be Language; let U be non empty set ; let I be S,U -interpreter-like Function; clusterI | (OwnSymbolsOf S) -> PFuncs ((U *),(U \/ BOOLEAN)) -valued for Function; coherence for b1 being Function st b1 = I | (OwnSymbolsOf S) holds b1 is PFuncs ((U *),(U \/ BOOLEAN)) -valued proof set O = OwnSymbolsOf S; set f = I | (OwnSymbolsOf S); set D = dom (I | (OwnSymbolsOf S)); set C = U \/ BOOLEAN; now__::_thesis:_for_y_being_set_st_y_in_rng_(I_|_(OwnSymbolsOf_S))_holds_ y_in_PFuncs_((U_*),(U_\/_BOOLEAN)) let y be set ; ::_thesis: ( y in rng (I | (OwnSymbolsOf S)) implies y in PFuncs ((U *),(U \/ BOOLEAN)) ) assume y in rng (I | (OwnSymbolsOf S)) ; ::_thesis: y in PFuncs ((U *),(U \/ BOOLEAN)) then y in (I | (OwnSymbolsOf S)) .: (dom (I | (OwnSymbolsOf S))) by RELAT_1:113; then consider x being set such that A1: ( x in dom (I | (OwnSymbolsOf S)) & x in dom (I | (OwnSymbolsOf S)) & y = (I | (OwnSymbolsOf S)) . x ) by FUNCT_1:def_6; x in OwnSymbolsOf S by A1; then reconsider s = x as own Element of S by FOMODEL1:def_19; reconsider n = abs (ar s) as Element of NAT ; reconsider DD = n -tuples_on U as Subset of (U *) by FINSEQ_2:134; U \/ BOOLEAN c= U \/ BOOLEAN ; then reconsider CC = U \/ BOOLEAN as Subset of (U \/ BOOLEAN) ; (I | (OwnSymbolsOf S)) . x = I . s by A1, FUNCT_1:49; then reconsider g = (I | (OwnSymbolsOf S)) . x as Function of DD,CC ; [:DD,CC:] c= [:(U *),(U \/ BOOLEAN):] ; then reconsider gg = g as Relation of (U *),(U \/ BOOLEAN) by XBOOLE_1:1; gg is PartFunc of (U *),(U \/ BOOLEAN) ; hence y in PFuncs ((U *),(U \/ BOOLEAN)) by A1, PARTFUN1:45; ::_thesis: verum end; then rng (I | (OwnSymbolsOf S)) c= PFuncs ((U *),(U \/ BOOLEAN)) by TARSKI:def_3; hence for b1 being Function st b1 = I | (OwnSymbolsOf S) holds b1 is PFuncs ((U *),(U \/ BOOLEAN)) -valued by RELAT_1:def_19; ::_thesis: verum end; clusterI | (OwnSymbolsOf S) -> S,U -interpreter-like for Function; coherence for b1 being Function st b1 = I | (OwnSymbolsOf S) holds b1 is S,U -interpreter-like proof set O = OwnSymbolsOf S; set f = I | (OwnSymbolsOf S); set D = dom (I | (OwnSymbolsOf S)); set C = U \/ BOOLEAN; now__::_thesis:_for_s_being_own_Element_of_S_holds_(I_|_(OwnSymbolsOf_S))_._s_is_Interpreter_of_s,U let s be own Element of S; ::_thesis: (I | (OwnSymbolsOf S)) . s is Interpreter of s,U s in OwnSymbolsOf S by FOMODEL1:def_19; then (I | (OwnSymbolsOf S)) . s = I . s by FUNCT_1:49; hence (I | (OwnSymbolsOf S)) . s is Interpreter of s,U ; ::_thesis: verum end; then I | (OwnSymbolsOf S) is Interpreter of S,U by Def3; hence for b1 being Function st b1 = I | (OwnSymbolsOf S) holds b1 is S,U -interpreter-like by Def4; ::_thesis: verum end; end; registration let S be Language; let U be non empty set ; let I be S,U -interpreter-like Function; clusterI | (OwnSymbolsOf S) -> OwnSymbolsOf S -defined total for OwnSymbolsOf S -defined Relation; coherence for b1 being OwnSymbolsOf S -defined Relation st b1 = I | (OwnSymbolsOf S) holds b1 is total proof set O = OwnSymbolsOf S; set f = I | (OwnSymbolsOf S); set D = dom (I | (OwnSymbolsOf S)); set C = U \/ BOOLEAN; ( OwnSymbolsOf S c= dom (I | (OwnSymbolsOf S)) & dom (I | (OwnSymbolsOf S)) c= OwnSymbolsOf S ) by Lm2; then dom (I | (OwnSymbolsOf S)) = OwnSymbolsOf S by XBOOLE_0:def_10; hence for b1 being OwnSymbolsOf S -defined Relation st b1 = I | (OwnSymbolsOf S) holds b1 is total by PARTFUN1:def_2; ::_thesis: verum end; end; definition let S be Language; let U be non empty set ; funcU -InterpretersOf S -> set equals :: FOMODEL2:def 14 { f where f is Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) : f is S,U -interpreter-like } ; coherence { f where f is Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) : f is S,U -interpreter-like } is set ; end; :: deftheorem defines -InterpretersOf FOMODEL2:def_14_:_ for S being Language for U being non empty set holds U -InterpretersOf S = { f where f is Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) : f is S,U -interpreter-like } ; definition let S be Language; let U be non empty set ; :: original: -InterpretersOf redefine funcU -InterpretersOf S -> Subset of (Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN))))); coherence U -InterpretersOf S is Subset of (Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN))))) proof set I = U -InterpretersOf S; set O = OwnSymbolsOf S; set C = PFuncs ((U *),(U \/ BOOLEAN)); defpred S1[ Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN))))] means $1 is S,U -interpreter-like ; { f where f is Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) : S1[f] } is Subset of (Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN))))) from DOMAIN_1:sch_7(); hence U -InterpretersOf S is Subset of (Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN))))) ; ::_thesis: verum end; end; registration let S be Language; let U be non empty set ; clusterU -InterpretersOf S -> non empty ; coherence not U -InterpretersOf S is empty proof set I = the S,U -interpreter-like Function; set O = OwnSymbolsOf S; set f = the S,U -interpreter-like Function | (OwnSymbolsOf S); set C = PFuncs ((U *),(U \/ BOOLEAN)); ( dom ( the S,U -interpreter-like Function | (OwnSymbolsOf S)) c= OwnSymbolsOf S & rng ( the S,U -interpreter-like Function | (OwnSymbolsOf S)) c= PFuncs ((U *),(U \/ BOOLEAN)) ) ; then reconsider ff = the S,U -interpreter-like Function | (OwnSymbolsOf S) as Relation of (OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN))) by RELSET_1:4; reconsider fff = ff as Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) by FUNCT_2:8; ex g being Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) st ( the S,U -interpreter-like Function | (OwnSymbolsOf S) = g & g is S,U -interpreter-like ) proof take fff ; ::_thesis: ( the S,U -interpreter-like Function | (OwnSymbolsOf S) = fff & fff is S,U -interpreter-like ) thus ( the S,U -interpreter-like Function | (OwnSymbolsOf S) = fff & fff is S,U -interpreter-like ) ; ::_thesis: verum end; then the S,U -interpreter-like Function | (OwnSymbolsOf S) in U -InterpretersOf S ; hence not U -InterpretersOf S is empty ; ::_thesis: verum end; end; registration let S be Language; let U be non empty set ; cluster -> S,U -interpreter-like for Element of U -InterpretersOf S; coherence for b1 being Element of U -InterpretersOf S holds b1 is S,U -interpreter-like proof set SUI = U -InterpretersOf S; set O = OwnSymbolsOf S; set C = PFuncs ((U *),(U \/ BOOLEAN)); let x be Element of U -InterpretersOf S; ::_thesis: x is S,U -interpreter-like x in U -InterpretersOf S ; then consider f being Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) such that A1: ( x = f & f is S,U -interpreter-like ) ; thus x is S,U -interpreter-like by A1; ::_thesis: verum end; end; definition let S be Language; let U be non empty set ; funcS -TruthEval U -> Function of [:(U -InterpretersOf S),(AtomicFormulasOf S):],BOOLEAN means :Def15: :: FOMODEL2:def 15 for I being Element of U -InterpretersOf S for phi being Element of AtomicFormulasOf S holds it . (I,phi) = I -AtomicEval phi; existence ex b1 being Function of [:(U -InterpretersOf S),(AtomicFormulasOf S):],BOOLEAN st for I being Element of U -InterpretersOf S for phi being Element of AtomicFormulasOf S holds b1 . (I,phi) = I -AtomicEval phi proof set II = U -InterpretersOf S; set AF = AtomicFormulasOf S; deffunc H1( Element of U -InterpretersOf S, Element of AtomicFormulasOf S) -> Element of BOOLEAN = $1 -AtomicEval $2; consider f being Function of [:(U -InterpretersOf S),(AtomicFormulasOf S):],BOOLEAN such that A1: for I being Element of U -InterpretersOf S for phi being Element of AtomicFormulasOf S holds f . (I,phi) = H1(I,phi) from BINOP_1:sch_4(); take f ; ::_thesis: for I being Element of U -InterpretersOf S for phi being Element of AtomicFormulasOf S holds f . (I,phi) = I -AtomicEval phi thus for I being Element of U -InterpretersOf S for phi being Element of AtomicFormulasOf S holds f . (I,phi) = I -AtomicEval phi by A1; ::_thesis: verum end; uniqueness for b1, b2 being Function of [:(U -InterpretersOf S),(AtomicFormulasOf S):],BOOLEAN st ( for I being Element of U -InterpretersOf S for phi being Element of AtomicFormulasOf S holds b1 . (I,phi) = I -AtomicEval phi ) & ( for I being Element of U -InterpretersOf S for phi being Element of AtomicFormulasOf S holds b2 . (I,phi) = I -AtomicEval phi ) holds b1 = b2 proof set II = U -InterpretersOf S; set AF = AtomicFormulasOf S; set B = BOOLEAN ; let IT1, IT2 be Function of [:(U -InterpretersOf S),(AtomicFormulasOf S):],BOOLEAN; ::_thesis: ( ( for I being Element of U -InterpretersOf S for phi being Element of AtomicFormulasOf S holds IT1 . (I,phi) = I -AtomicEval phi ) & ( for I being Element of U -InterpretersOf S for phi being Element of AtomicFormulasOf S holds IT2 . (I,phi) = I -AtomicEval phi ) implies IT1 = IT2 ) deffunc H1( Element of U -InterpretersOf S, Element of AtomicFormulasOf S) -> Element of BOOLEAN = $1 -AtomicEval $2; assume that A2: for I being Element of U -InterpretersOf S for phi being Element of AtomicFormulasOf S holds IT1 . (I,phi) = H1(I,phi) and A3: for I being Element of U -InterpretersOf S for phi being Element of AtomicFormulasOf S holds IT2 . (I,phi) = H1(I,phi) ; ::_thesis: IT1 = IT2 now__::_thesis:_for_a_being_Element_of_U_-InterpretersOf_S for_b_being_Element_of_AtomicFormulasOf_S_holds_IT1_._(a,b)_=_IT2_._(a,b) let a be Element of U -InterpretersOf S; ::_thesis: for b being Element of AtomicFormulasOf S holds IT1 . (a,b) = IT2 . (a,b) let b be Element of AtomicFormulasOf S; ::_thesis: IT1 . (a,b) = IT2 . (a,b) thus IT1 . (a,b) = H1(a,b) by A2 .= IT2 . (a,b) by A3 ; ::_thesis: verum end; hence IT1 = IT2 by BINOP_1:2; ::_thesis: verum end; end; :: deftheorem Def15 defines -TruthEval FOMODEL2:def_15_:_ for S being Language for U being non empty set for b3 being Function of [:(U -InterpretersOf S),(AtomicFormulasOf S):],BOOLEAN holds ( b3 = S -TruthEval U iff for I being Element of U -InterpretersOf S for phi being Element of AtomicFormulasOf S holds b3 . (I,phi) = I -AtomicEval phi ); definition let S be Language; let U be non empty set ; let I be Element of U -InterpretersOf S; let f be PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN; let phi be Element of ((AllSymbolsOf S) *) \ {{}}; funcf -ExFunctor (I,phi) -> Element of BOOLEAN equals :Def16: :: FOMODEL2:def 16 TRUE if ex u being Element of U ex v being literal Element of S st ( phi . 1 = v & f . (((v,u) ReassignIn I),(phi /^ 1)) = TRUE ) otherwise FALSE ; coherence ( ( ex u being Element of U ex v being literal Element of S st ( phi . 1 = v & f . (((v,u) ReassignIn I),(phi /^ 1)) = TRUE ) implies TRUE is Element of BOOLEAN ) & ( ( for u being Element of U for v being literal Element of S holds ( not phi . 1 = v or not f . (((v,u) ReassignIn I),(phi /^ 1)) = TRUE ) ) implies FALSE is Element of BOOLEAN ) ) ; consistency for b1 being Element of BOOLEAN holds verum ; end; :: deftheorem Def16 defines -ExFunctor FOMODEL2:def_16_:_ for S being Language for U being non empty set for I being Element of U -InterpretersOf S for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN for phi being Element of ((AllSymbolsOf S) *) \ {{}} holds ( ( ex u being Element of U ex v being literal Element of S st ( phi . 1 = v & f . (((v,u) ReassignIn I),(phi /^ 1)) = TRUE ) implies f -ExFunctor (I,phi) = TRUE ) & ( ( for u being Element of U for v being literal Element of S holds ( not phi . 1 = v or not f . (((v,u) ReassignIn I),(phi /^ 1)) = TRUE ) ) implies f -ExFunctor (I,phi) = FALSE ) ); definition let S be Language; let U be non empty set ; let g be Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN); func ExIterator g -> PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN means :Def17: :: FOMODEL2:def 17 ( ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom it iff ex v being literal Element of S ex w being string of S st ( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom it holds it . (x,y) = g -ExFunctor (x,y) ) ); existence ex b1 being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st ( ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom b1 iff ex v being literal Element of S ex w being string of S st ( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom b1 holds b1 . (x,y) = g -ExFunctor (x,y) ) ) proof set SS = AllSymbolsOf S; set II = U -InterpretersOf S; set Strings = ((AllSymbolsOf S) *) \ {{}}; deffunc H1( Element of U -InterpretersOf S, Element of ((AllSymbolsOf S) *) \ {{}}) -> Element of BOOLEAN = g -ExFunctor ($1,$2); defpred S1[ Element of U -InterpretersOf S, Element of ((AllSymbolsOf S) *) \ {{}}] means ex v being literal Element of S ex w being string of S st ( [$1,w] in dom g & $2 = <*v*> ^ w ); A1: for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st S1[x,y] holds H1(x,y) in BOOLEAN ; consider f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN such that A2: ( ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom f iff S1[x,y] ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom f holds f . (x,y) = H1(x,y) ) ) from BINOP_1:sch_8(A1); take f ; ::_thesis: ( ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom f iff ex v being literal Element of S ex w being string of S st ( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom f holds f . (x,y) = g -ExFunctor (x,y) ) ) thus ( ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom f iff ex v being literal Element of S ex w being string of S st ( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom f holds f . (x,y) = g -ExFunctor (x,y) ) ) by A2; ::_thesis: verum end; uniqueness for b1, b2 being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom b1 iff ex v being literal Element of S ex w being string of S st ( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom b1 holds b1 . (x,y) = g -ExFunctor (x,y) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom b2 iff ex v being literal Element of S ex w being string of S st ( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom b2 holds b2 . (x,y) = g -ExFunctor (x,y) ) holds b1 = b2 proof set SS = AllSymbolsOf S; set II = U -InterpretersOf S; set Strings = ((AllSymbolsOf S) *) \ {{}}; set D = [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):]; let IT1, IT2 be PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN; ::_thesis: ( ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom IT1 iff ex v being literal Element of S ex w being string of S st ( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom IT1 holds IT1 . (x,y) = g -ExFunctor (x,y) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom IT2 iff ex v being literal Element of S ex w being string of S st ( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom IT2 holds IT2 . (x,y) = g -ExFunctor (x,y) ) implies IT1 = IT2 ) defpred S1[ Element of U -InterpretersOf S, Element of ((AllSymbolsOf S) *) \ {{}}] means ex v being literal Element of S ex w being string of S st ( [$1,w] in dom g & $2 = <*v*> ^ w ); assume that A3: for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom IT1 iff S1[x,y] ) and A4: for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom IT1 holds IT1 . (x,y) = g -ExFunctor (x,y) ; ::_thesis: ( ex x being Element of U -InterpretersOf S ex y being Element of ((AllSymbolsOf S) *) \ {{}} st ( ( [x,y] in dom IT2 implies ex v being literal Element of S ex w being string of S st ( [x,w] in dom g & y = <*v*> ^ w ) ) implies ( ex v being literal Element of S ex w being string of S st ( [x,w] in dom g & y = <*v*> ^ w ) & not [x,y] in dom IT2 ) ) or ex x being Element of U -InterpretersOf S ex y being Element of ((AllSymbolsOf S) *) \ {{}} st ( [x,y] in dom IT2 & not IT2 . (x,y) = g -ExFunctor (x,y) ) or IT1 = IT2 ) assume that A5: for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom IT2 iff S1[x,y] ) and A6: for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom IT2 holds IT2 . (x,y) = g -ExFunctor (x,y) ; ::_thesis: IT1 = IT2 now__::_thesis:_for_x_being_set_st_x_in_dom_IT1_holds_ x_in_dom_IT2 let x be set ; ::_thesis: ( x in dom IT1 implies x in dom IT2 ) assume A7: x in dom IT1 ; ::_thesis: x in dom IT2 then reconsider xx = x as Element of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ; consider x1, x2 being set such that A8: ( x1 in U -InterpretersOf S & x2 in ((AllSymbolsOf S) *) \ {{}} & xx = [x1,x2] ) by ZFMISC_1:def_2; reconsider I = x1 as Element of U -InterpretersOf S by A8; reconsider phi = x2 as Element of ((AllSymbolsOf S) *) \ {{}} by A8; S1[I,phi] by A3, A7, A8; hence x in dom IT2 by A5, A8; ::_thesis: verum end; then A9: dom IT1 c= dom IT2 by TARSKI:def_3; now__::_thesis:_for_x_being_set_st_x_in_dom_IT2_holds_ x_in_dom_IT1 let x be set ; ::_thesis: ( x in dom IT2 implies x in dom IT1 ) assume A10: x in dom IT2 ; ::_thesis: x in dom IT1 then reconsider xx = x as Element of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ; consider x1, x2 being set such that A11: ( x1 in U -InterpretersOf S & x2 in ((AllSymbolsOf S) *) \ {{}} & xx = [x1,x2] ) by ZFMISC_1:def_2; reconsider I = x1 as Element of U -InterpretersOf S by A11; reconsider phi = x2 as Element of ((AllSymbolsOf S) *) \ {{}} by A11; S1[I,phi] by A5, A10, A11; hence x in dom IT1 by A3, A11; ::_thesis: verum end; then dom IT2 c= dom IT1 by TARSKI:def_3; then A12: dom IT2 = dom IT1 by A9, XBOOLE_0:def_10; now__::_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 A13: x in dom IT1 ; ::_thesis: IT1 . x = IT2 . x then reconsider xx = x as Element of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ; consider x1, x2 being set such that A14: ( x1 in U -InterpretersOf S & x2 in ((AllSymbolsOf S) *) \ {{}} & xx = [x1,x2] ) by ZFMISC_1:def_2; reconsider I = x1 as Element of U -InterpretersOf S by A14; reconsider phi = x2 as Element of ((AllSymbolsOf S) *) \ {{}} by A14; IT1 . x = IT1 . (I,phi) by A14 .= g -ExFunctor (I,phi) by A4, A14, A13 .= IT2 . (I,phi) by A6, A14, A13, A9 .= IT2 . x by A14 ; hence IT1 . x = IT2 . x ; ::_thesis: verum end; hence IT1 = IT2 by A12, FUNCT_1:2; ::_thesis: verum end; end; :: deftheorem Def17 defines ExIterator FOMODEL2:def_17_:_ for S being Language for U being non empty set for g being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) for b4 being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN holds ( b4 = ExIterator g iff ( ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom b4 iff ex v being literal Element of S ex w being string of S st ( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom b4 holds b4 . (x,y) = g -ExFunctor (x,y) ) ) ); definition let S be Language; let U be non empty set ; let f be PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN; let I be Element of U -InterpretersOf S; let phi be Element of ((AllSymbolsOf S) *) \ {{}}; funcf -NorFunctor (I,phi) -> Element of BOOLEAN equals :Def18: :: FOMODEL2:def 18 TRUE if ex w1, w2 being Element of ((AllSymbolsOf S) *) \ {{}} st ( [I,w1] in dom f & f . (I,w1) = FALSE & f . (I,w2) = FALSE & phi = (<*(TheNorSymbOf S)*> ^ w1) ^ w2 ) otherwise FALSE ; coherence ( ( ex w1, w2 being Element of ((AllSymbolsOf S) *) \ {{}} st ( [I,w1] in dom f & f . (I,w1) = FALSE & f . (I,w2) = FALSE & phi = (<*(TheNorSymbOf S)*> ^ w1) ^ w2 ) implies TRUE is Element of BOOLEAN ) & ( ( for w1, w2 being Element of ((AllSymbolsOf S) *) \ {{}} holds ( not [I,w1] in dom f or not f . (I,w1) = FALSE or not f . (I,w2) = FALSE or not phi = (<*(TheNorSymbOf S)*> ^ w1) ^ w2 ) ) implies FALSE is Element of BOOLEAN ) ) ; consistency for b1 being Element of BOOLEAN holds verum ; end; :: deftheorem Def18 defines -NorFunctor FOMODEL2:def_18_:_ for S being Language for U being non empty set for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN for I being Element of U -InterpretersOf S for phi being Element of ((AllSymbolsOf S) *) \ {{}} holds ( ( ex w1, w2 being Element of ((AllSymbolsOf S) *) \ {{}} st ( [I,w1] in dom f & f . (I,w1) = FALSE & f . (I,w2) = FALSE & phi = (<*(TheNorSymbOf S)*> ^ w1) ^ w2 ) implies f -NorFunctor (I,phi) = TRUE ) & ( ( for w1, w2 being Element of ((AllSymbolsOf S) *) \ {{}} holds ( not [I,w1] in dom f or not f . (I,w1) = FALSE or not f . (I,w2) = FALSE or not phi = (<*(TheNorSymbOf S)*> ^ w1) ^ w2 ) ) implies f -NorFunctor (I,phi) = FALSE ) ); definition let S be Language; let U be non empty set ; let g be Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN); func NorIterator g -> PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN means :Def19: :: FOMODEL2:def 19 ( ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom it iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st ( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom it holds it . (x,y) = g -NorFunctor (x,y) ) ); existence ex b1 being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st ( ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom b1 iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st ( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom b1 holds b1 . (x,y) = g -NorFunctor (x,y) ) ) proof set SS = AllSymbolsOf S; set II = U -InterpretersOf S; set Strings = ((AllSymbolsOf S) *) \ {{}}; reconsider g = g as PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN ; deffunc H1( Element of U -InterpretersOf S, Element of ((AllSymbolsOf S) *) \ {{}}) -> Element of BOOLEAN = g -NorFunctor ($1,$2); defpred S1[ Element of U -InterpretersOf S, Element of ((AllSymbolsOf S) *) \ {{}}] means ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st ( $2 = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [$1,phi1] in dom g & [$1,phi2] in dom g ); A1: for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st S1[x,y] holds H1(x,y) in BOOLEAN ; consider f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN such that A2: ( ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom f iff S1[x,y] ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom f holds f . (x,y) = H1(x,y) ) ) from BINOP_1:sch_8(A1); take f ; ::_thesis: ( ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom f iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st ( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom f holds f . (x,y) = g -NorFunctor (x,y) ) ) thus ( ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom f iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st ( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom f holds f . (x,y) = g -NorFunctor (x,y) ) ) by A2; ::_thesis: verum end; uniqueness for b1, b2 being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom b1 iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st ( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom b1 holds b1 . (x,y) = g -NorFunctor (x,y) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom b2 iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st ( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom b2 holds b2 . (x,y) = g -NorFunctor (x,y) ) holds b1 = b2 proof set SS = AllSymbolsOf S; set II = U -InterpretersOf S; set Strings = ((AllSymbolsOf S) *) \ {{}}; set D = [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):]; deffunc H1( Element of U -InterpretersOf S, Element of ((AllSymbolsOf S) *) \ {{}}) -> Element of BOOLEAN = g -NorFunctor ($1,$2); defpred S1[ Element of U -InterpretersOf S, Element of ((AllSymbolsOf S) *) \ {{}}] means ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st ( $2 = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [$1,phi1] in dom g & [$1,phi2] in dom g ); let IT1, IT2 be PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN; ::_thesis: ( ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom IT1 iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st ( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom IT1 holds IT1 . (x,y) = g -NorFunctor (x,y) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom IT2 iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st ( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom IT2 holds IT2 . (x,y) = g -NorFunctor (x,y) ) implies IT1 = IT2 ) assume that A3: for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom IT1 iff S1[x,y] ) and A4: for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom IT1 holds IT1 . (x,y) = H1(x,y) ; ::_thesis: ( ex x being Element of U -InterpretersOf S ex y being Element of ((AllSymbolsOf S) *) \ {{}} st ( ( [x,y] in dom IT2 implies ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st ( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) implies ( ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st ( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) & not [x,y] in dom IT2 ) ) or ex x being Element of U -InterpretersOf S ex y being Element of ((AllSymbolsOf S) *) \ {{}} st ( [x,y] in dom IT2 & not IT2 . (x,y) = g -NorFunctor (x,y) ) or IT1 = IT2 ) assume that A5: for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom IT2 iff S1[x,y] ) and A6: for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom IT2 holds IT2 . (x,y) = H1(x,y) ; ::_thesis: IT1 = IT2 now__::_thesis:_for_x_being_set_st_x_in_dom_IT1_holds_ x_in_dom_IT2 let x be set ; ::_thesis: ( x in dom IT1 implies x in dom IT2 ) assume A7: x in dom IT1 ; ::_thesis: x in dom IT2 then reconsider xx = x as Element of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ; consider x1, x2 being set such that A8: ( x1 in U -InterpretersOf S & x2 in ((AllSymbolsOf S) *) \ {{}} & xx = [x1,x2] ) by ZFMISC_1:def_2; reconsider I = x1 as Element of U -InterpretersOf S by A8; reconsider phi = x2 as Element of ((AllSymbolsOf S) *) \ {{}} by A8; S1[I,phi] by A3, A7, A8; hence x in dom IT2 by A5, A8; ::_thesis: verum end; then A9: dom IT1 c= dom IT2 by TARSKI:def_3; now__::_thesis:_for_x_being_set_st_x_in_dom_IT2_holds_ x_in_dom_IT1 let x be set ; ::_thesis: ( x in dom IT2 implies x in dom IT1 ) assume A10: x in dom IT2 ; ::_thesis: x in dom IT1 then reconsider xx = x as Element of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ; consider x1, x2 being set such that A11: ( x1 in U -InterpretersOf S & x2 in ((AllSymbolsOf S) *) \ {{}} & xx = [x1,x2] ) by ZFMISC_1:def_2; reconsider I = x1 as Element of U -InterpretersOf S by A11; reconsider phi = x2 as Element of ((AllSymbolsOf S) *) \ {{}} by A11; S1[I,phi] by A5, A10, A11; hence x in dom IT1 by A3, A11; ::_thesis: verum end; then dom IT2 c= dom IT1 by TARSKI:def_3; then A12: dom IT2 = dom IT1 by A9, XBOOLE_0:def_10; now__::_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 A13: x in dom IT1 ; ::_thesis: IT1 . x = IT2 . x then reconsider xx = x as Element of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ; consider x1, x2 being set such that A14: ( x1 in U -InterpretersOf S & x2 in ((AllSymbolsOf S) *) \ {{}} & xx = [x1,x2] ) by ZFMISC_1:def_2; reconsider I = x1 as Element of U -InterpretersOf S by A14; reconsider phi = x2 as Element of ((AllSymbolsOf S) *) \ {{}} by A14; IT1 . x = IT1 . (I,phi) by A14 .= H1(I,phi) by A4, A14, A13 .= IT2 . (I,phi) by A6, A14, A13, A9 .= IT2 . x by A14 ; hence IT1 . x = IT2 . x ; ::_thesis: verum end; hence IT1 = IT2 by A12, FUNCT_1:2; ::_thesis: verum end; end; :: deftheorem Def19 defines NorIterator FOMODEL2:def_19_:_ for S being Language for U being non empty set for g being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) for b4 being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN holds ( b4 = NorIterator g iff ( ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} holds ( [x,y] in dom b4 iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st ( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom b4 holds b4 . (x,y) = g -NorFunctor (x,y) ) ) ); definition let S be Language; let U be non empty set ; func(S,U) -TruthEval -> Function of NAT,(PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) means :Def20: :: FOMODEL2:def 20 ( it . 0 = S -TruthEval U & ( for mm being Element of NAT holds it . (mm + 1) = ((ExIterator (it . mm)) +* (NorIterator (it . mm))) +* (it . mm) ) ); existence ex b1 being Function of NAT,(PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) st ( b1 . 0 = S -TruthEval U & ( for mm being Element of NAT holds b1 . (mm + 1) = ((ExIterator (b1 . mm)) +* (NorIterator (b1 . mm))) +* (b1 . mm) ) ) proof set SS = AllSymbolsOf S; set II = U -InterpretersOf S; set AF = AtomicFormulasOf S; set Strings = ((AllSymbolsOf S) *) \ {{}}; set D = [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):]; reconsider ii = U -InterpretersOf S as Subset of (U -InterpretersOf S) by XBOOLE_0:def_10; reconsider subboolean = BOOLEAN as Subset of BOOLEAN by XBOOLE_0:def_10; reconsider sub = [:ii,(AtomicFormulasOf S):] as Subset of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ; [:sub,subboolean:] c= [:[:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN:] ; then S -TruthEval U is PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN by XBOOLE_1:1; then reconsider Z = S -TruthEval U as Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) by PARTFUN1:45; deffunc H1( Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) -> Element of bool [:[:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN:] = ((ExIterator $1) +* (NorIterator $1)) +* $1; defpred S1[ set , Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN), set ] means $3 = H1($2); A1: for n being Element of NAT for x being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ex y being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) st S1[n,x,y] proof let n be Element of NAT ; ::_thesis: for x being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ex y being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) st S1[n,x,y] let x be Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN); ::_thesis: ex y being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) st S1[n,x,y] reconsider yy = H1(x) as Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) by PARTFUN1:45; take y = yy; ::_thesis: S1[n,x,y] thus S1[n,x,y] ; ::_thesis: verum end; consider f being Function of NAT,(PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) such that A2: ( f . 0 = Z & ( for n being Element of NAT holds S1[n,f . n,f . (n + 1)] ) ) from RECDEF_1:sch_2(A1); take f ; ::_thesis: ( f . 0 = S -TruthEval U & ( for mm being Element of NAT holds f . (mm + 1) = ((ExIterator (f . mm)) +* (NorIterator (f . mm))) +* (f . mm) ) ) thus f . 0 = S -TruthEval U by A2; ::_thesis: for mm being Element of NAT holds f . (mm + 1) = ((ExIterator (f . mm)) +* (NorIterator (f . mm))) +* (f . mm) thus for mm being Element of NAT holds f . (mm + 1) = ((ExIterator (f . mm)) +* (NorIterator (f . mm))) +* (f . mm) by A2; ::_thesis: verum end; uniqueness for b1, b2 being Function of NAT,(PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) st b1 . 0 = S -TruthEval U & ( for mm being Element of NAT holds b1 . (mm + 1) = ((ExIterator (b1 . mm)) +* (NorIterator (b1 . mm))) +* (b1 . mm) ) & b2 . 0 = S -TruthEval U & ( for mm being Element of NAT holds b2 . (mm + 1) = ((ExIterator (b2 . mm)) +* (NorIterator (b2 . mm))) +* (b2 . mm) ) holds b1 = b2 proof set SS = AllSymbolsOf S; set II = U -InterpretersOf S; set AF = AtomicFormulasOf S; set Strings = ((AllSymbolsOf S) *) \ {{}}; set D = [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):]; set Z = S -TruthEval U; ( [:(U -InterpretersOf S),(AtomicFormulasOf S):] c= [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] & BOOLEAN c= BOOLEAN ) by ZFMISC_1:96; then ( dom (S -TruthEval U) c= [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] & rng (S -TruthEval U) c= BOOLEAN ) by XBOOLE_1:1; then S -TruthEval U is Relation of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN by RELSET_1:4; then reconsider ZZ = S -TruthEval U as Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) by PARTFUN1:45; deffunc H1( set , Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) -> Element of bool [:[:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN:] = ((ExIterator $2) +* (NorIterator $2)) +* $2; defpred S1[ set , set , set ] means for f being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) st $2 = f holds $3 = H1($1,f); let IT1, IT2 be Function of NAT,(PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)); ::_thesis: ( IT1 . 0 = S -TruthEval U & ( for mm being Element of NAT holds IT1 . (mm + 1) = ((ExIterator (IT1 . mm)) +* (NorIterator (IT1 . mm))) +* (IT1 . mm) ) & IT2 . 0 = S -TruthEval U & ( for mm being Element of NAT holds IT2 . (mm + 1) = ((ExIterator (IT2 . mm)) +* (NorIterator (IT2 . mm))) +* (IT2 . mm) ) implies IT1 = IT2 ) assume A3: ( IT1 . 0 = S -TruthEval U & ( for mm being Element of NAT holds IT1 . (mm + 1) = ((ExIterator (IT1 . mm)) +* (NorIterator (IT1 . mm))) +* (IT1 . mm) ) ) ; ::_thesis: ( not IT2 . 0 = S -TruthEval U or ex mm being Element of NAT st not IT2 . (mm + 1) = ((ExIterator (IT2 . mm)) +* (NorIterator (IT2 . mm))) +* (IT2 . mm) or IT1 = IT2 ) assume A4: ( IT2 . 0 = S -TruthEval U & ( for mm being Element of NAT holds IT2 . (mm + 1) = ((ExIterator (IT2 . mm)) +* (NorIterator (IT2 . mm))) +* (IT2 . mm) ) ) ; ::_thesis: IT1 = IT2 A5: IT1 . 0 = ZZ by A3; A6: for m being Nat holds S1[m,IT1 . m,IT1 . (m + 1)] proof let m be Nat; ::_thesis: S1[m,IT1 . m,IT1 . (m + 1)] reconsider mm = m as Element of NAT by ORDINAL1:def_12; let f be Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN); ::_thesis: ( IT1 . m = f implies IT1 . (m + 1) = H1(m,f) ) assume f = IT1 . m ; ::_thesis: IT1 . (m + 1) = H1(m,f) then IT1 . (mm + 1) = H1(m,f) by A3; hence IT1 . (m + 1) = H1(m,f) ; ::_thesis: verum end; A7: IT2 . 0 = ZZ by A4; A8: for m being Nat holds S1[m,IT2 . m,IT2 . (m + 1)] proof let m be Nat; ::_thesis: S1[m,IT2 . m,IT2 . (m + 1)] reconsider mm = m as Element of NAT by ORDINAL1:def_12; let f be Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN); ::_thesis: ( IT2 . m = f implies IT2 . (m + 1) = H1(m,f) ) assume f = IT2 . m ; ::_thesis: IT2 . (m + 1) = H1(m,f) then IT2 . (mm + 1) = H1(m,f) by A4; hence IT2 . (m + 1) = H1(m,f) ; ::_thesis: verum end; A9: for n being Nat for x, y1, y2 being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) st S1[n,x,y1] & S1[n,x,y2] holds y1 = y2 proof let n be Nat; ::_thesis: for x, y1, y2 being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) st S1[n,x,y1] & S1[n,x,y2] holds y1 = y2 let x, y1, y2 be Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN); ::_thesis: ( S1[n,x,y1] & S1[n,x,y2] implies y1 = y2 ) assume that A10: S1[n,x,y1] and A11: S1[n,x,y2] ; ::_thesis: y1 = y2 A12: y2 = H1(n,x) by A11; thus y1 = y2 by A10, A12; ::_thesis: verum end; thus IT1 = IT2 from NAT_1:sch_14(A5, A6, A7, A8, A9); ::_thesis: verum end; end; :: deftheorem Def20 defines -TruthEval FOMODEL2:def_20_:_ for S being Language for U being non empty set for b3 being Function of NAT,(PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) holds ( b3 = (S,U) -TruthEval iff ( b3 . 0 = S -TruthEval U & ( for mm being Element of NAT holds b3 . (mm + 1) = ((ExIterator (b3 . mm)) +* (NorIterator (b3 . mm))) +* (b3 . mm) ) ) ); theorem Th2: :: FOMODEL2:2 for S being Language for U being non empty set for I being b1,b2 -interpreter-like Function holds I | (OwnSymbolsOf S) in U -InterpretersOf S proof let S be Language; ::_thesis: for U being non empty set for I being S,b1 -interpreter-like Function holds I | (OwnSymbolsOf S) in U -InterpretersOf S let U be non empty set ; ::_thesis: for I being S,U -interpreter-like Function holds I | (OwnSymbolsOf S) in U -InterpretersOf S let I be S,U -interpreter-like Function; ::_thesis: I | (OwnSymbolsOf S) in U -InterpretersOf S set O = OwnSymbolsOf S; set C = PFuncs ((U *),(U \/ BOOLEAN)); ( dom (I | (OwnSymbolsOf S)) c= OwnSymbolsOf S & rng (I | (OwnSymbolsOf S)) c= PFuncs ((U *),(U \/ BOOLEAN)) ) ; then I | (OwnSymbolsOf S) is Function of (OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN))) by RELSET_1:4; then ( I | (OwnSymbolsOf S) is S,U -interpreter-like & I | (OwnSymbolsOf S) is Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) ) by FUNCT_2:8; hence I | (OwnSymbolsOf S) in U -InterpretersOf S ; ::_thesis: verum end; definition let S be Language; let m be Nat; let U be non empty set ; func(S,U) -TruthEval m -> Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) means :Def21: :: FOMODEL2:def 21 for mm being Element of NAT st m = mm holds it = ((S,U) -TruthEval) . mm; existence ex b1 being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) st for mm being Element of NAT st m = mm holds b1 = ((S,U) -TruthEval) . mm proof set f = (S,U) -TruthEval ; reconsider nn = m as Element of NAT by ORDINAL1:def_12; take ((S,U) -TruthEval) . nn ; ::_thesis: for mm being Element of NAT st m = mm holds ((S,U) -TruthEval) . nn = ((S,U) -TruthEval) . mm let mm be Element of NAT ; ::_thesis: ( m = mm implies ((S,U) -TruthEval) . nn = ((S,U) -TruthEval) . mm ) assume m = mm ; ::_thesis: ((S,U) -TruthEval) . nn = ((S,U) -TruthEval) . mm hence ((S,U) -TruthEval) . nn = ((S,U) -TruthEval) . mm ; ::_thesis: verum end; uniqueness for b1, b2 being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) st ( for mm being Element of NAT st m = mm holds b1 = ((S,U) -TruthEval) . mm ) & ( for mm being Element of NAT st m = mm holds b2 = ((S,U) -TruthEval) . mm ) holds b1 = b2 proof set II = U -InterpretersOf S; set SS = AllSymbolsOf S; set f = (S,U) -TruthEval ; let IT1, IT2 be Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN); ::_thesis: ( ( for mm being Element of NAT st m = mm holds IT1 = ((S,U) -TruthEval) . mm ) & ( for mm being Element of NAT st m = mm holds IT2 = ((S,U) -TruthEval) . mm ) implies IT1 = IT2 ) assume that A1: for mm being Element of NAT st m = mm holds IT1 = ((S,U) -TruthEval) . mm and A2: for mm being Element of NAT st m = mm holds IT2 = ((S,U) -TruthEval) . mm ; ::_thesis: IT1 = IT2 reconsider mm = m as Element of NAT by ORDINAL1:def_12; thus IT1 = ((S,U) -TruthEval) . mm by A1 .= IT2 by A2 ; ::_thesis: verum end; end; :: deftheorem Def21 defines -TruthEval FOMODEL2:def_21_:_ for S being Language for m being Nat for U being non empty set for b4 being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) holds ( b4 = (S,U) -TruthEval m iff for mm being Element of NAT st m = mm holds b4 = ((S,U) -TruthEval) . mm ); Lm7: for m being Nat for x being set for S being Language for U being non empty set for n being Nat st x in dom ((S,U) -TruthEval m) holds ( x in dom ((S,U) -TruthEval (m + n)) & ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + n)) . x ) proof let m be Nat; ::_thesis: for x being set for S being Language for U being non empty set for n being Nat st x in dom ((S,U) -TruthEval m) holds ( x in dom ((S,U) -TruthEval (m + n)) & ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + n)) . x ) let x be set ; ::_thesis: for S being Language for U being non empty set for n being Nat st x in dom ((S,U) -TruthEval m) holds ( x in dom ((S,U) -TruthEval (m + n)) & ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + n)) . x ) let S be Language; ::_thesis: for U being non empty set for n being Nat st x in dom ((S,U) -TruthEval m) holds ( x in dom ((S,U) -TruthEval (m + n)) & ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + n)) . x ) let U be non empty set ; ::_thesis: for n being Nat st x in dom ((S,U) -TruthEval m) holds ( x in dom ((S,U) -TruthEval (m + n)) & ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + n)) . x ) set f = (S,U) -TruthEval ; defpred S1[ Nat] means ( x in dom ((S,U) -TruthEval m) implies ( x in dom ((S,U) -TruthEval (m + $1)) & ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + $1)) . x ) ); A1: S1[ 0 ] ; A2: for n being Nat st S1[n] holds S1[n + 1] proof let n be Nat; ::_thesis: ( S1[n] implies S1[n + 1] ) reconsider k = m + n, K = (m + n) + 1 as Element of NAT by ORDINAL1:def_12; assume A3: S1[n] ; ::_thesis: S1[n + 1] set g = (S,U) -TruthEval m; set g0 = (S,U) -TruthEval (m + n); set g1 = (S,U) -TruthEval ((m + n) + 1); A4: ( ((S,U) -TruthEval) . k = (S,U) -TruthEval (m + n) & ((S,U) -TruthEval) . K = (S,U) -TruthEval ((m + n) + 1) ) by Def21; A5: ((S,U) -TruthEval) . K = ((ExIterator (((S,U) -TruthEval) . k)) +* (NorIterator (((S,U) -TruthEval) . k))) +* (((S,U) -TruthEval) . k) by Def20; then dom (((S,U) -TruthEval) . K) = (dom ((ExIterator (((S,U) -TruthEval) . k)) +* (NorIterator (((S,U) -TruthEval) . k)))) \/ (dom (((S,U) -TruthEval) . k)) by FUNCT_4:def_1; then A6: dom (((S,U) -TruthEval) . k) c= dom (((S,U) -TruthEval) . K) by XBOOLE_1:7; assume A7: x in dom ((S,U) -TruthEval m) ; ::_thesis: ( x in dom ((S,U) -TruthEval (m + (n + 1))) & ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + (n + 1))) . x ) then x in dom (((S,U) -TruthEval) . k) by A3, Def21; then A8: x in dom (((S,U) -TruthEval) . K) by A6; thus x in dom ((S,U) -TruthEval (m + (n + 1))) by A4, A7, A3, A6; ::_thesis: ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + (n + 1))) . x x in (dom ((ExIterator (((S,U) -TruthEval) . k)) +* (NorIterator (((S,U) -TruthEval) . k)))) \/ (dom (((S,U) -TruthEval) . k)) by A8, A5, FUNCT_4:def_1; hence ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + (n + 1))) . x by A3, A4, A7, A5, FUNCT_4:def_1; ::_thesis: verum end; thus for n being Nat holds S1[n] from NAT_1:sch_2(A1, A2); ::_thesis: verum end; Lm8: for x, X, Y, Z being set holds ( x in (X \/ Y) \/ Z iff ( x in X or x in Y or x in Z ) ) proof let x, X, Y, Z be set ; ::_thesis: ( x in (X \/ Y) \/ Z iff ( x in X or x in Y or x in Z ) ) set W = (X \/ Y) \/ Z; ( x in (X \/ Y) \/ Z iff ( x in X \/ Y or x in Z ) ) by XBOOLE_0:def_3; hence ( x in (X \/ Y) \/ Z iff ( x in X or x in Y or x in Z ) ) by XBOOLE_0:def_3; ::_thesis: verum end; Lm9: for S being Language for U1, U2 being non empty set for m being Nat for I1 being Element of U1 -InterpretersOf S for I2 being Element of U2 -InterpretersOf S for w being string of S st [I1,w] in dom ((S,U1) -TruthEval m) holds [I2,w] in dom ((S,U2) -TruthEval m) proof let S be Language; ::_thesis: for U1, U2 being non empty set for m being Nat for I1 being Element of U1 -InterpretersOf S for I2 being Element of U2 -InterpretersOf S for w being string of S st [I1,w] in dom ((S,U1) -TruthEval m) holds [I2,w] in dom ((S,U2) -TruthEval m) let U1, U2 be non empty set ; ::_thesis: for m being Nat for I1 being Element of U1 -InterpretersOf S for I2 being Element of U2 -InterpretersOf S for w being string of S st [I1,w] in dom ((S,U1) -TruthEval m) holds [I2,w] in dom ((S,U2) -TruthEval m) set SS = AllSymbolsOf S; set N = TheNorSymbOf S; set II1 = U1 -InterpretersOf S; set II2 = U2 -InterpretersOf S; set AF = AtomicFormulasOf S; defpred S1[ Nat] means for I1 being Element of U1 -InterpretersOf S for I2 being Element of U2 -InterpretersOf S for w being string of S st [I1,w] in dom ((S,U1) -TruthEval $1) holds [I2,w] in dom ((S,U2) -TruthEval $1); A1: S1[ 0 ] proof set f1 = (S,U1) -TruthEval 0; set f2 = (S,U2) -TruthEval 0; reconsider Z = 0 as Element of NAT ; reconsider g1 = ((S,U1) -TruthEval) . Z as Element of PFuncs ([:(U1 -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ; reconsider g2 = ((S,U2) -TruthEval) . Z as Element of PFuncs ([:(U2 -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ; A2: ( (S,U1) -TruthEval 0 = g1 & (S,U2) -TruthEval 0 = g2 ) by Def21; A3: ( g1 = S -TruthEval U1 & g2 = S -TruthEval U2 ) by Def20; A4: dom ((S,U1) -TruthEval 0) = [:(U1 -InterpretersOf S),(AtomicFormulasOf S):] by A2, A3, FUNCT_2:def_1; A5: dom ((S,U2) -TruthEval 0) = [:(U2 -InterpretersOf S),(AtomicFormulasOf S):] by A2, A3, FUNCT_2:def_1; let I1 be Element of U1 -InterpretersOf S; ::_thesis: for I2 being Element of U2 -InterpretersOf S for w being string of S st [I1,w] in dom ((S,U1) -TruthEval 0) holds [I2,w] in dom ((S,U2) -TruthEval 0) let I2 be Element of U2 -InterpretersOf S; ::_thesis: for w being string of S st [I1,w] in dom ((S,U1) -TruthEval 0) holds [I2,w] in dom ((S,U2) -TruthEval 0) let w be string of S; ::_thesis: ( [I1,w] in dom ((S,U1) -TruthEval 0) implies [I2,w] in dom ((S,U2) -TruthEval 0) ) assume [I1,w] in dom ((S,U1) -TruthEval 0) ; ::_thesis: [I2,w] in dom ((S,U2) -TruthEval 0) then ( I1 in U1 -InterpretersOf S & w in AtomicFormulasOf S ) by A4, ZFMISC_1:87; hence [I2,w] in dom ((S,U2) -TruthEval 0) by A5, ZFMISC_1:87; ::_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] ) reconsider nn = n, NN = n + 1 as Element of NAT by ORDINAL1:def_12; assume A7: S1[n] ; ::_thesis: S1[n + 1] let I1 be Element of U1 -InterpretersOf S; ::_thesis: for I2 being Element of U2 -InterpretersOf S for w being string of S st [I1,w] in dom ((S,U1) -TruthEval (n + 1)) holds [I2,w] in dom ((S,U2) -TruthEval (n + 1)) let I2 be Element of U2 -InterpretersOf S; ::_thesis: for w being string of S st [I1,w] in dom ((S,U1) -TruthEval (n + 1)) holds [I2,w] in dom ((S,U2) -TruthEval (n + 1)) set f1n = (S,U1) -TruthEval n; set f1N = (S,U1) -TruthEval (n + 1); set f2n = (S,U2) -TruthEval n; set f2N = (S,U2) -TruthEval (n + 1); A8: dom ((S,U1) -TruthEval (n + 1)) = ((dom (ExIterator ((S,U1) -TruthEval n))) \/ (dom (NorIterator ((S,U1) -TruthEval n)))) \/ (dom ((S,U1) -TruthEval n)) proof reconsider g1N = ((S,U1) -TruthEval) . NN as Element of PFuncs ([:(U1 -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ; reconsider g1n = ((S,U1) -TruthEval) . nn as Element of PFuncs ([:(U1 -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ; A9: ( (S,U1) -TruthEval n = g1n & (S,U1) -TruthEval (n + 1) = g1N ) by Def21; then (S,U1) -TruthEval (n + 1) = ((ExIterator g1n) +* (NorIterator g1n)) +* g1n by Def20; then dom ((S,U1) -TruthEval (n + 1)) = (dom ((ExIterator g1n) +* (NorIterator g1n))) \/ (dom g1n) by FUNCT_4:def_1 .= ((dom (ExIterator g1n)) \/ (dom (NorIterator g1n))) \/ (dom g1n) by FUNCT_4:def_1 ; hence dom ((S,U1) -TruthEval (n + 1)) = ((dom (ExIterator ((S,U1) -TruthEval n))) \/ (dom (NorIterator ((S,U1) -TruthEval n)))) \/ (dom ((S,U1) -TruthEval n)) by A9; ::_thesis: verum end; A10: dom ((S,U2) -TruthEval (n + 1)) = ((dom (ExIterator ((S,U2) -TruthEval n))) \/ (dom (NorIterator ((S,U2) -TruthEval n)))) \/ (dom ((S,U2) -TruthEval n)) proof reconsider g2N = ((S,U2) -TruthEval) . NN as Element of PFuncs ([:(U2 -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ; reconsider g2n = ((S,U2) -TruthEval) . nn as Element of PFuncs ([:(U2 -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ; A11: ( (S,U2) -TruthEval n = g2n & (S,U2) -TruthEval (n + 1) = g2N ) by Def21; then (S,U2) -TruthEval (n + 1) = ((ExIterator g2n) +* (NorIterator g2n)) +* g2n by Def20; then dom ((S,U2) -TruthEval (n + 1)) = (dom ((ExIterator g2n) +* (NorIterator g2n))) \/ (dom g2n) by FUNCT_4:def_1 .= ((dom (ExIterator g2n)) \/ (dom (NorIterator g2n))) \/ (dom g2n) by FUNCT_4:def_1 ; hence dom ((S,U2) -TruthEval (n + 1)) = ((dom (ExIterator ((S,U2) -TruthEval n))) \/ (dom (NorIterator ((S,U2) -TruthEval n)))) \/ (dom ((S,U2) -TruthEval n)) by A11; ::_thesis: verum end; let w be string of S; ::_thesis: ( [I1,w] in dom ((S,U1) -TruthEval (n + 1)) implies [I2,w] in dom ((S,U2) -TruthEval (n + 1)) ) set x = [I1,w]; assume A12: [I1,w] in dom ((S,U1) -TruthEval (n + 1)) ; ::_thesis: [I2,w] in dom ((S,U2) -TruthEval (n + 1)) percases ( [I1,w] in dom (ExIterator ((S,U1) -TruthEval n)) or [I1,w] in dom (NorIterator ((S,U1) -TruthEval n)) or [I1,w] in dom ((S,U1) -TruthEval n) ) by A12, Lm8, A8; suppose [I1,w] in dom (ExIterator ((S,U1) -TruthEval n)) ; ::_thesis: [I2,w] in dom ((S,U2) -TruthEval (n + 1)) then consider v being literal Element of S, ww being string of S such that A13: ( [I1,ww] in dom ((S,U1) -TruthEval n) & w = <*v*> ^ ww ) by Def17; ( [I2,ww] in dom ((S,U2) -TruthEval n) & w = <*v*> ^ ww ) by A13, A7; then [I2,w] in dom (ExIterator ((S,U2) -TruthEval n)) by Def17; hence [I2,w] in dom ((S,U2) -TruthEval (n + 1)) by Lm8, A10; ::_thesis: verum end; suppose [I1,w] in dom (NorIterator ((S,U1) -TruthEval n)) ; ::_thesis: [I2,w] in dom ((S,U2) -TruthEval (n + 1)) then consider phi1, phi2 being string of S such that A14: ( w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [I1,phi1] in dom ((S,U1) -TruthEval n) & [I1,phi2] in dom ((S,U1) -TruthEval n) ) by Def19; ( w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [I2,phi1] in dom ((S,U2) -TruthEval n) & [I2,phi2] in dom ((S,U2) -TruthEval n) ) by A14, A7; then [I2,w] in dom (NorIterator ((S,U2) -TruthEval n)) by Def19; hence [I2,w] in dom ((S,U2) -TruthEval (n + 1)) by Lm8, A10; ::_thesis: verum end; suppose [I1,w] in dom ((S,U1) -TruthEval n) ; ::_thesis: [I2,w] in dom ((S,U2) -TruthEval (n + 1)) then [I2,w] in dom ((S,U2) -TruthEval n) by A7; hence [I2,w] in dom ((S,U2) -TruthEval (n + 1)) by Lm8, A10; ::_thesis: verum end; end; end; thus for m being Nat holds S1[m] from NAT_1:sch_2(A1, A6); ::_thesis: verum end; Lm10: for mm being Element of NAT for S being Language for U being non empty set holds curry (((S,U) -TruthEval) . mm) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) proof let mm be Element of NAT ; ::_thesis: for S being Language for U being non empty set holds curry (((S,U) -TruthEval) . mm) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) let S be Language; ::_thesis: for U being non empty set holds curry (((S,U) -TruthEval) . mm) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) let U be non empty set ; ::_thesis: curry (((S,U) -TruthEval) . mm) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) set II = U -InterpretersOf S; set AF = AtomicFormulasOf S; set f = ((S,U) -TruthEval) . mm; set SS = AllSymbolsOf S; set F = (S,U) -TruthEval ; reconsider g = curry (((S,U) -TruthEval) . mm) as Element of PFuncs ((U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN))) by FUNCT_6:14; set y = the Element of AtomicFormulasOf S; reconsider Z = 0 as Element of NAT ; dom (S -TruthEval U) = [:(U -InterpretersOf S),(AtomicFormulasOf S):] by FUNCT_2:def_1; then A1: dom (((S,U) -TruthEval) . 0) = [:(U -InterpretersOf S),(AtomicFormulasOf S):] by Def20; now__::_thesis:_for_x_being_set_st_x_in_U_-InterpretersOf_S_holds_ x_in_dom_g let x be set ; ::_thesis: ( x in U -InterpretersOf S implies x in dom g ) assume x in U -InterpretersOf S ; ::_thesis: x in dom g then [x, the Element of AtomicFormulasOf S] in dom (((S,U) -TruthEval) . 0) by A1, ZFMISC_1:87; then [x, the Element of AtomicFormulasOf S] in dom ((S,U) -TruthEval 0) by Def21; then [x, the Element of AtomicFormulasOf S] in dom ((S,U) -TruthEval (0 + mm)) by Lm7; then [x, the Element of AtomicFormulasOf S] in dom (((S,U) -TruthEval) . mm) by Def21; hence x in dom g by FUNCT_5:19; ::_thesis: verum end; then ( U -InterpretersOf S c= dom g & dom g c= U -InterpretersOf S ) by TARSKI:def_3; then dom g = U -InterpretersOf S by XBOOLE_0:def_10; then reconsider gg = g as total PartFunc of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by PARTFUN1:def_2; curry (((S,U) -TruthEval) . mm) = gg ; hence curry (((S,U) -TruthEval) . mm) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) ; ::_thesis: verum end; Lm11: for m being Nat for S being Language for U being non empty set holds curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) proof let m be Nat; ::_thesis: for S being Language for U being non empty set holds curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) let S be Language; ::_thesis: for U being non empty set holds curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) let U be non empty set ; ::_thesis: curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) reconsider mm = m as Element of NAT by ORDINAL1:def_12; set f = (S,U) -TruthEval mm; set g = ((S,U) -TruthEval) . mm; curry ((S,U) -TruthEval mm) = curry (((S,U) -TruthEval) . mm) by Def21; hence curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by Lm10; ::_thesis: verum end; definition let S be Language; let U be non empty set ; let m be Nat; let I be Element of U -InterpretersOf S; func(I,m) -TruthEval -> Element of PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN) equals :: FOMODEL2:def 22 (curry ((S,U) -TruthEval m)) . I; coherence (curry ((S,U) -TruthEval m)) . I is Element of PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN) proof set II = U -InterpretersOf S; set SS = AllSymbolsOf S; reconsider mm = m as Element of NAT by ORDINAL1:def_12; curry ((S,U) -TruthEval mm) = curry (((S,U) -TruthEval) . mm) by Def21; then reconsider f = curry ((S,U) -TruthEval mm) as Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by Lm10; f . I is Element of PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN) ; hence (curry ((S,U) -TruthEval m)) . I is Element of PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN) ; ::_thesis: verum end; end; :: deftheorem defines -TruthEval FOMODEL2:def_22_:_ for S being Language for U being non empty set for m being Nat for I being Element of U -InterpretersOf S holds (I,m) -TruthEval = (curry ((S,U) -TruthEval m)) . I; Lm12: for m, n being Nat for S being Language for U being non empty set for I being Element of U -InterpretersOf S holds (I,m) -TruthEval c= (I,(m + n)) -TruthEval proof let m, n be Nat; ::_thesis: for S being Language for U being non empty set for I being Element of U -InterpretersOf S holds (I,m) -TruthEval c= (I,(m + n)) -TruthEval let S be Language; ::_thesis: for U being non empty set for I being Element of U -InterpretersOf S holds (I,m) -TruthEval c= (I,(m + n)) -TruthEval let U be non empty set ; ::_thesis: for I being Element of U -InterpretersOf S holds (I,m) -TruthEval c= (I,(m + n)) -TruthEval set UI = U -InterpretersOf S; set SS = AllSymbolsOf S; let I be Element of U -InterpretersOf S; ::_thesis: (I,m) -TruthEval c= (I,(m + n)) -TruthEval set IT1 = (I,m) -TruthEval ; set IT2 = (I,(m + n)) -TruthEval ; set f = (S,U) -TruthEval m; set g = (S,U) -TruthEval (m + n); reconsider F = curry ((S,U) -TruthEval m), G = curry ((S,U) -TruthEval (m + n)) as Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by Lm11; A1: ( (I,m) -TruthEval = F . I & (I,(m + n)) -TruthEval = G . I & dom F = U -InterpretersOf S ) by FUNCT_2:def_1; A2: for x being set st x in dom ((I,m) -TruthEval) holds ( x in dom ((I,(m + n)) -TruthEval) & ((I,m) -TruthEval) . x = ((I,(m + n)) -TruthEval) . x ) proof let x be set ; ::_thesis: ( x in dom ((I,m) -TruthEval) implies ( x in dom ((I,(m + n)) -TruthEval) & ((I,m) -TruthEval) . x = ((I,(m + n)) -TruthEval) . x ) ) assume A3: x in dom ((I,m) -TruthEval) ; ::_thesis: ( x in dom ((I,(m + n)) -TruthEval) & ((I,m) -TruthEval) . x = ((I,(m + n)) -TruthEval) . x ) then A4: [I,x] in dom ((S,U) -TruthEval m) by A1, FUNCT_5:31; then A5: ( [I,x] in dom ((S,U) -TruthEval (m + n)) & ((S,U) -TruthEval (m + n)) . [I,x] = ((S,U) -TruthEval m) . [I,x] ) by Lm7; then ( x in dom ((I,(m + n)) -TruthEval) & ((I,(m + n)) -TruthEval) . x = ((S,U) -TruthEval (m + n)) . (I,x) ) by FUNCT_5:20; then ((I,(m + n)) -TruthEval) . x = ((S,U) -TruthEval m) . (I,x) by A4, Lm7 .= ((I,m) -TruthEval) . x by A3, A1, FUNCT_5:31 ; hence ( x in dom ((I,(m + n)) -TruthEval) & ((I,m) -TruthEval) . x = ((I,(m + n)) -TruthEval) . x ) by A5, FUNCT_5:20; ::_thesis: verum end; A6: ( ( for x being set st x in dom ((I,m) -TruthEval) holds x in dom ((I,(m + n)) -TruthEval) ) & ( for x being set st x in dom ((I,m) -TruthEval) holds ((I,m) -TruthEval) . x = ((I,(m + n)) -TruthEval) . x ) ) by A2; then dom ((I,m) -TruthEval) c= dom ((I,(m + n)) -TruthEval) by TARSKI:def_3; hence (I,m) -TruthEval c= (I,(m + n)) -TruthEval by A6, GRFUNC_1:2; ::_thesis: verum end; Lm13: for m being Nat for S being Language for U1, U2 being non empty set for I1 being Element of U1 -InterpretersOf S for I2 being Element of U2 -InterpretersOf S holds dom ((I1,m) -TruthEval) c= dom ((I2,m) -TruthEval) proof let m be Nat; ::_thesis: for S being Language for U1, U2 being non empty set for I1 being Element of U1 -InterpretersOf S for I2 being Element of U2 -InterpretersOf S holds dom ((I1,m) -TruthEval) c= dom ((I2,m) -TruthEval) let S be Language; ::_thesis: for U1, U2 being non empty set for I1 being Element of U1 -InterpretersOf S for I2 being Element of U2 -InterpretersOf S holds dom ((I1,m) -TruthEval) c= dom ((I2,m) -TruthEval) let U1, U2 be non empty set ; ::_thesis: for I1 being Element of U1 -InterpretersOf S for I2 being Element of U2 -InterpretersOf S holds dom ((I1,m) -TruthEval) c= dom ((I2,m) -TruthEval) reconsider mm = m as Element of NAT by ORDINAL1:def_12; set II1 = U1 -InterpretersOf S; set II2 = U2 -InterpretersOf S; set f = ((S,U1) -TruthEval) . mm; set SS = AllSymbolsOf S; set ff1 = (S,U1) -TruthEval mm; set ff2 = (S,U2) -TruthEval mm; set g = ((S,U2) -TruthEval) . mm; let I1 be Element of U1 -InterpretersOf S; ::_thesis: for I2 being Element of U2 -InterpretersOf S holds dom ((I1,m) -TruthEval) c= dom ((I2,m) -TruthEval) let I2 be Element of U2 -InterpretersOf S; ::_thesis: dom ((I1,m) -TruthEval) c= dom ((I2,m) -TruthEval) A1: ( ((S,U1) -TruthEval) . mm = (S,U1) -TruthEval mm & ((S,U2) -TruthEval) . mm = (S,U2) -TruthEval mm ) by Def21; set F1 = (I1,m) -TruthEval ; set F2 = (I2,m) -TruthEval ; A2: ( (curry (((S,U1) -TruthEval) . mm)) . I1 = (I1,m) -TruthEval & (curry (((S,U2) -TruthEval) . mm)) . I2 = (I2,m) -TruthEval ) by Def21; then reconsider f1 = (curry (((S,U1) -TruthEval) . mm)) . I1, f2 = (curry (((S,U2) -TruthEval) . mm)) . I2 as Element of PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN) ; reconsider F = curry (((S,U1) -TruthEval) . mm) as Function of (U1 -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by Lm10; A3: I1 in U1 -InterpretersOf S ; ((S,U1) -TruthEval) . mm is Element of PFuncs ([:(U1 -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ; then dom (((S,U1) -TruthEval) . mm) c= [:(U1 -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] by RELAT_1:def_18; then A4: uncurry F = ((S,U1) -TruthEval) . mm by FUNCT_5:50; now__::_thesis:_for_ww_being_set_st_ww_in_dom_f1_holds_ ww_in_dom_f2 let ww be set ; ::_thesis: ( ww in dom f1 implies ww in dom f2 ) assume A5: ww in dom f1 ; ::_thesis: ww in dom f2 then reconsider w = ww as Element of ((AllSymbolsOf S) *) \ {{}} ; ( I1 in dom F & f1 = F . I1 & ww in dom f1 ) by A3, A5, FUNCT_2:def_1; then [I1,w] in dom ((S,U1) -TruthEval mm) by A1, A4, FUNCT_5:38; then [I2,ww] in dom (((S,U2) -TruthEval) . mm) by A1, Lm9; hence ww in dom f2 by FUNCT_5:20; ::_thesis: verum end; hence dom ((I1,m) -TruthEval) c= dom ((I2,m) -TruthEval) by A2, TARSKI:def_3; ::_thesis: verum end; Lm14: for mm being Element of NAT for S being Language for U1, U2 being non empty set for I1 being Element of U1 -InterpretersOf S for I2 being Element of U2 -InterpretersOf S holds dom ((I1,mm) -TruthEval) = dom ((I2,mm) -TruthEval) proof let mm be Element of NAT ; ::_thesis: for S being Language for U1, U2 being non empty set for I1 being Element of U1 -InterpretersOf S for I2 being Element of U2 -InterpretersOf S holds dom ((I1,mm) -TruthEval) = dom ((I2,mm) -TruthEval) let S be Language; ::_thesis: for U1, U2 being non empty set for I1 being Element of U1 -InterpretersOf S for I2 being Element of U2 -InterpretersOf S holds dom ((I1,mm) -TruthEval) = dom ((I2,mm) -TruthEval) let U1, U2 be non empty set ; ::_thesis: for I1 being Element of U1 -InterpretersOf S for I2 being Element of U2 -InterpretersOf S holds dom ((I1,mm) -TruthEval) = dom ((I2,mm) -TruthEval) set II1 = U1 -InterpretersOf S; set II2 = U2 -InterpretersOf S; let I1 be Element of U1 -InterpretersOf S; ::_thesis: for I2 being Element of U2 -InterpretersOf S holds dom ((I1,mm) -TruthEval) = dom ((I2,mm) -TruthEval) let I2 be Element of U2 -InterpretersOf S; ::_thesis: dom ((I1,mm) -TruthEval) = dom ((I2,mm) -TruthEval) set f1 = (I1,mm) -TruthEval ; set f2 = (I2,mm) -TruthEval ; ( dom ((I1,mm) -TruthEval) c= dom ((I2,mm) -TruthEval) & dom ((I2,mm) -TruthEval) c= dom ((I1,mm) -TruthEval) ) by Lm13; hence dom ((I1,mm) -TruthEval) = dom ((I2,mm) -TruthEval) by XBOOLE_0:def_10; ::_thesis: verum end; definition let S be Language; let m be Nat; funcS -formulasOfMaxDepth m -> Subset of (((AllSymbolsOf S) *) \ {{}}) means :Def23: :: FOMODEL2:def 23 for U being non empty set for I being Element of U -InterpretersOf S for mm being Element of NAT st m = mm holds it = dom ((I,mm) -TruthEval); existence ex b1 being Subset of (((AllSymbolsOf S) *) \ {{}}) st for U being non empty set for I being Element of U -InterpretersOf S for mm being Element of NAT st m = mm holds b1 = dom ((I,mm) -TruthEval) proof set SS = AllSymbolsOf S; set UU = the non empty set ; set II = the Element of the non empty set -InterpretersOf S; reconsider nn = m as Element of NAT by ORDINAL1:def_12; reconsider IT = dom (( the Element of the non empty set -InterpretersOf S,nn) -TruthEval) as Subset of (((AllSymbolsOf S) *) \ {{}}) ; take IT ; ::_thesis: for U being non empty set for I being Element of U -InterpretersOf S for mm being Element of NAT st m = mm holds IT = dom ((I,mm) -TruthEval) let U be non empty set ; ::_thesis: for I being Element of U -InterpretersOf S for mm being Element of NAT st m = mm holds IT = dom ((I,mm) -TruthEval) set III = U -InterpretersOf S; let I be Element of U -InterpretersOf S; ::_thesis: for mm being Element of NAT st m = mm holds IT = dom ((I,mm) -TruthEval) let mm be Element of NAT ; ::_thesis: ( m = mm implies IT = dom ((I,mm) -TruthEval) ) assume m = mm ; ::_thesis: IT = dom ((I,mm) -TruthEval) hence IT = dom ((I,mm) -TruthEval) by Lm14; ::_thesis: verum end; uniqueness for b1, b2 being Subset of (((AllSymbolsOf S) *) \ {{}}) st ( for U being non empty set for I being Element of U -InterpretersOf S for mm being Element of NAT st m = mm holds b1 = dom ((I,mm) -TruthEval) ) & ( for U being non empty set for I being Element of U -InterpretersOf S for mm being Element of NAT st m = mm holds b2 = dom ((I,mm) -TruthEval) ) holds b1 = b2 proof set SS = AllSymbolsOf S; let IT1, IT2 be Subset of (((AllSymbolsOf S) *) \ {{}}); ::_thesis: ( ( for U being non empty set for I being Element of U -InterpretersOf S for mm being Element of NAT st m = mm holds IT1 = dom ((I,mm) -TruthEval) ) & ( for U being non empty set for I being Element of U -InterpretersOf S for mm being Element of NAT st m = mm holds IT2 = dom ((I,mm) -TruthEval) ) implies IT1 = IT2 ) assume that A1: for U being non empty set for I being Element of U -InterpretersOf S for mm being Element of NAT st m = mm holds IT1 = dom ((I,mm) -TruthEval) and A2: for U being non empty set for I being Element of U -InterpretersOf S for mm being Element of NAT st m = mm holds IT2 = dom ((I,mm) -TruthEval) ; ::_thesis: IT1 = IT2 set U = the non empty set ; set I = the Element of the non empty set -InterpretersOf S; reconsider nn = m as Element of NAT by ORDINAL1:def_12; thus IT1 = dom (( the Element of the non empty set -InterpretersOf S,nn) -TruthEval) by A1 .= IT2 by A2 ; ::_thesis: verum end; end; :: deftheorem Def23 defines -formulasOfMaxDepth FOMODEL2:def_23_:_ for S being Language for m being Nat for b3 being Subset of (((AllSymbolsOf S) *) \ {{}}) holds ( b3 = S -formulasOfMaxDepth m iff for U being non empty set for I being Element of U -InterpretersOf S for mm being Element of NAT st m = mm holds b3 = dom ((I,mm) -TruthEval) ); Lm15: for m, n being Nat for S being Language holds S -formulasOfMaxDepth m c= S -formulasOfMaxDepth (m + n) proof let m, n be Nat; ::_thesis: for S being Language holds S -formulasOfMaxDepth m c= S -formulasOfMaxDepth (m + n) let S be Language; ::_thesis: S -formulasOfMaxDepth m c= S -formulasOfMaxDepth (m + n) set U = the non empty set ; set X = S -formulasOfMaxDepth m; set Y = S -formulasOfMaxDepth (m + n); set II = the non empty set -InterpretersOf S; set I = the Element of the non empty set -InterpretersOf S; reconsider mm = m, NN = m + n as Element of NAT by ORDINAL1:def_12; set f = ( the Element of the non empty set -InterpretersOf S,mm) -TruthEval ; set g = ( the Element of the non empty set -InterpretersOf S,NN) -TruthEval ; A1: ( S -formulasOfMaxDepth m = dom (( the Element of the non empty set -InterpretersOf S,mm) -TruthEval) & S -formulasOfMaxDepth (m + n) = dom (( the Element of the non empty set -InterpretersOf S,NN) -TruthEval) ) by Def23; ( the Element of the non empty set -InterpretersOf S,mm) -TruthEval c= ( the Element of the non empty set -InterpretersOf S,NN) -TruthEval by Lm12; hence S -formulasOfMaxDepth m c= S -formulasOfMaxDepth (m + n) by A1, GRFUNC_1:2; ::_thesis: verum end; Lm16: for S being Language holds S -formulasOfMaxDepth 0 = AtomicFormulasOf S proof let S be Language; ::_thesis: S -formulasOfMaxDepth 0 = AtomicFormulasOf S set U = the non empty set ; set AF = AtomicFormulasOf S; set II = the non empty set -InterpretersOf S; set I = the Element of the non empty set -InterpretersOf S; reconsider z = 0 as Element of NAT ; A1: [:( the non empty set -InterpretersOf S),(AtomicFormulasOf S):] = dom (S -TruthEval the non empty set ) by FUNCT_2:def_1 .= dom (((S, the non empty set ) -TruthEval) . z) by Def20 .= dom ((S, the non empty set ) -TruthEval 0) by Def21 ; now__::_thesis:_for_x_being_set_st_x_in_AtomicFormulasOf_S_holds_ x_in_S_-formulasOfMaxDepth_0 let x be set ; ::_thesis: ( x in AtomicFormulasOf S implies x in S -formulasOfMaxDepth 0 ) assume x in AtomicFormulasOf S ; ::_thesis: x in S -formulasOfMaxDepth 0 then [ the Element of the non empty set -InterpretersOf S,x] in dom ((S, the non empty set ) -TruthEval 0) by A1, ZFMISC_1:def_2; then x in dom (( the Element of the non empty set -InterpretersOf S,z) -TruthEval) by FUNCT_5:20; hence x in S -formulasOfMaxDepth 0 by Def23; ::_thesis: verum end; then A2: AtomicFormulasOf S c= S -formulasOfMaxDepth 0 by TARSKI:def_3; now__::_thesis:_for_x_being_set_st_x_in_S_-formulasOfMaxDepth_0_holds_ x_in_AtomicFormulasOf_S let x be set ; ::_thesis: ( x in S -formulasOfMaxDepth 0 implies x in AtomicFormulasOf S ) assume x in S -formulasOfMaxDepth 0 ; ::_thesis: x in AtomicFormulasOf S then A3: x in dom (( the Element of the non empty set -InterpretersOf S,z) -TruthEval) by Def23; set f = (S, the non empty set ) -TruthEval z; set g = ( the Element of the non empty set -InterpretersOf S,z) -TruthEval ; (S, the non empty set ) -TruthEval z = ((S, the non empty set ) -TruthEval) . z by Def21; then reconsider gg = curry ((S, the non empty set ) -TruthEval z) as Function of ( the non empty set -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by Lm10; dom gg = the non empty set -InterpretersOf S by FUNCT_2:def_1; then [ the Element of the non empty set -InterpretersOf S,x] in [:( the non empty set -InterpretersOf S),(AtomicFormulasOf S):] by A1, A3, FUNCT_5:31; then [ the Element of the non empty set -InterpretersOf S,x] `2 in AtomicFormulasOf S by MCART_1:10; hence x in AtomicFormulasOf S ; ::_thesis: verum end; then S -formulasOfMaxDepth 0 c= AtomicFormulasOf S by TARSKI:def_3; hence S -formulasOfMaxDepth 0 = AtomicFormulasOf S by A2, XBOOLE_0:def_10; ::_thesis: verum end; definition let S be Language; let m be Nat; let w be string of S; attrw is m -wff means :Def24: :: FOMODEL2:def 24 w in S -formulasOfMaxDepth m; end; :: deftheorem Def24 defines -wff FOMODEL2:def_24_:_ for S being Language for m being Nat for w being string of S holds ( w is m -wff iff w in S -formulasOfMaxDepth m ); definition let S be Language; let w be string of S; attrw is wff means :Def25: :: FOMODEL2:def 25 ex m being Nat st w is m -wff ; end; :: deftheorem Def25 defines wff FOMODEL2:def_25_:_ for S being Language for w being string of S holds ( w is wff iff ex m being Nat st w is m -wff ); registration let S be Language; cluster 0 -wff -> 0wff for Element of ((AllSymbolsOf S) *) \ {{}}; coherence for b1 being string of S st b1 is 0 -wff holds b1 is 0wff proof set AF = AtomicFormulasOf S; set Z = S -formulasOfMaxDepth 0; let w be string of S; ::_thesis: ( w is 0 -wff implies w is 0wff ) assume w is 0 -wff ; ::_thesis: w is 0wff then w in S -formulasOfMaxDepth 0 by Def24; then w in AtomicFormulasOf S by Lm16; hence w is 0wff ; ::_thesis: verum end; cluster 0wff -> 0 -wff for Element of ((AllSymbolsOf S) *) \ {{}}; coherence for b1 being string of S st b1 is 0wff holds b1 is 0 -wff proof set AF = AtomicFormulasOf S; let w be string of S; ::_thesis: ( w is 0wff implies w is 0 -wff ) assume w is 0wff ; ::_thesis: w is 0 -wff then w in AtomicFormulasOf S ; then w in S -formulasOfMaxDepth 0 by Lm16; hence w is 0 -wff by Def24; ::_thesis: verum end; let m be Nat; clusterm -wff -> wff for Element of ((AllSymbolsOf S) *) \ {{}}; coherence for b1 being string of S st b1 is m -wff holds b1 is wff by Def25; let n be Nat; clusterm + (0 * n) -wff -> m + n -wff for Element of ((AllSymbolsOf S) *) \ {{}}; coherence for b1 being string of S st b1 is m + (0 * n) -wff holds b1 is m + n -wff proof set X = S -formulasOfMaxDepth m; set Y = S -formulasOfMaxDepth (m + n); A1: S -formulasOfMaxDepth m c= S -formulasOfMaxDepth (m + n) by Lm15; let w be string of S; ::_thesis: ( w is m + (0 * n) -wff implies w is m + n -wff ) assume w is m + (0 * n) -wff ; ::_thesis: w is m + n -wff then w in S -formulasOfMaxDepth m by Def24; hence w is m + n -wff by Def24, A1; ::_thesis: verum end; end; registration let S be Language; let m be Nat; cluster non empty Relation-like NAT -defined Function-like finite FinSequence-like FinSubsequence-like V199() m -wff for Element of ((AllSymbolsOf S) *) \ {{}}; existence ex b1 being string of S st b1 is m -wff proof set w = the 0wff string of S; the 0wff string of S is 0 + (0 * m) -wff ; then the 0wff string of S is 0 + m -wff ; hence ex b1 being string of S st b1 is m -wff ; ::_thesis: verum end; end; registration let S be Language; let m be Nat; clusterS -formulasOfMaxDepth m -> non empty ; coherence not S -formulasOfMaxDepth m is empty proof set X = S -formulasOfMaxDepth m; set phi = the m -wff string of S; the m -wff string of S in S -formulasOfMaxDepth m by Def24; hence not S -formulasOfMaxDepth m is empty ; ::_thesis: verum end; end; registration let S be Language; cluster non empty Relation-like NAT -defined Function-like finite FinSequence-like FinSubsequence-like V199() wff for Element of ((AllSymbolsOf S) *) \ {{}}; existence ex b1 being string of S st b1 is wff proof take the 0 -wff string of S ; ::_thesis: the 0 -wff string of S is wff thus the 0 -wff string of S is wff ; ::_thesis: verum end; end; definition let S be Language; let U be non empty set ; let I be Element of U -InterpretersOf S; let w be wff string of S; funcI -TruthEval w -> Element of BOOLEAN means :Def26: :: FOMODEL2:def 26 for m being Nat st w is m -wff holds it = ((I,m) -TruthEval) . w; existence ex b1 being Element of BOOLEAN st for m being Nat st w is m -wff holds b1 = ((I,m) -TruthEval) . w proof set IU = U -InterpretersOf S; set SS = AllSymbolsOf S; set III = I; set II = I; consider n being Nat such that A1: w is n -wff by Def25; reconsider nn = n as Element of NAT by ORDINAL1:def_12; set fn = (I,n) -TruthEval ; reconsider ww = w as n -wff string of S by A1; A2: S -formulasOfMaxDepth nn = dom ((I,nn) -TruthEval) by Def23; ww in dom ((I,n) -TruthEval) by A2, Def24; then ((I,n) -TruthEval) . ww = ((I,n) -TruthEval) /. ww by PARTFUN1:def_6; then reconsider IT = ((I,n) -TruthEval) . ww as Element of BOOLEAN ; take IT ; ::_thesis: for m being Nat st w is m -wff holds IT = ((I,m) -TruthEval) . w let m be Nat; ::_thesis: ( w is m -wff implies IT = ((I,m) -TruthEval) . w ) set fm = (I,m) -TruthEval ; set f = (I,(m + n)) -TruthEval ; set g = (I,(n + m)) -TruthEval ; reconsider mm = m, nn = n as Element of NAT by ORDINAL1:def_12; A3: ( S -formulasOfMaxDepth m = dom ((I,mm) -TruthEval) & S -formulasOfMaxDepth nn = dom ((I,nn) -TruthEval) ) by Def23; A4: ( (I,m) -TruthEval c= (I,(m + n)) -TruthEval & (I,n) -TruthEval c= (I,(n + m)) -TruthEval & (I,(m + n)) -TruthEval = (I,(n + m)) -TruthEval ) by Lm12; assume w is m -wff ; ::_thesis: IT = ((I,m) -TruthEval) . w then w in dom ((I,m) -TruthEval) by A3, Def24; then A5: ((I,m) -TruthEval) . w = ((I,(m + n)) -TruthEval) . w by A4, GRFUNC_1:2; ww in dom ((I,n) -TruthEval) by A2, Def24; hence IT = ((I,m) -TruthEval) . w by A5, A4, GRFUNC_1:2; ::_thesis: verum end; uniqueness for b1, b2 being Element of BOOLEAN st ( for m being Nat st w is m -wff holds b1 = ((I,m) -TruthEval) . w ) & ( for m being Nat st w is m -wff holds b2 = ((I,m) -TruthEval) . w ) holds b1 = b2 proof let IT1, IT2 be Element of BOOLEAN ; ::_thesis: ( ( for m being Nat st w is m -wff holds IT1 = ((I,m) -TruthEval) . w ) & ( for m being Nat st w is m -wff holds IT2 = ((I,m) -TruthEval) . w ) implies IT1 = IT2 ) assume A6: for m being Nat st w is m -wff holds IT1 = ((I,m) -TruthEval) . w ; ::_thesis: ( ex m being Nat st ( w is m -wff & not IT2 = ((I,m) -TruthEval) . w ) or IT1 = IT2 ) assume A7: for m being Nat st w is m -wff holds IT2 = ((I,m) -TruthEval) . w ; ::_thesis: IT1 = IT2 consider m being Nat such that A8: w is m -wff by Def25; thus IT1 = ((I,m) -TruthEval) . w by A6, A8 .= IT2 by A7, A8 ; ::_thesis: verum end; end; :: deftheorem Def26 defines -TruthEval FOMODEL2:def_26_:_ for S being Language for U being non empty set for I being Element of U -InterpretersOf S for w being wff string of S for b5 being Element of BOOLEAN holds ( b5 = I -TruthEval w iff for m being Nat st w is m -wff holds b5 = ((I,m) -TruthEval) . w ); definition let S be Language; func AllFormulasOf S -> set equals :: FOMODEL2:def 27 { w where w is string of S : ex m being Nat st w is m -wff } ; coherence { w where w is string of S : ex m being Nat st w is m -wff } is set ; end; :: deftheorem defines AllFormulasOf FOMODEL2:def_27_:_ for S being Language holds AllFormulasOf S = { w where w is string of S : ex m being Nat st w is m -wff } ; registration let S be Language; cluster AllFormulasOf S -> non empty ; coherence not AllFormulasOf S is empty proof set w = the 0 -wff string of S; the 0 -wff string of S in AllFormulasOf S ; hence not AllFormulasOf S is empty ; ::_thesis: verum end; end; theorem Th3: :: FOMODEL2:3 for m being Nat for S being Language for U being non empty set for u being Element of U for t being termal string of S for I being b2,b3 -interpreter-like Function holds ( (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . m) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) proof let m be Nat; ::_thesis: for S being Language for U being non empty set for u being Element of U for t being termal string of S for I being b1,b2 -interpreter-like Function holds ( (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . m) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) let S be Language; ::_thesis: for U being non empty set for u being Element of U for t being termal string of S for I being S,b1 -interpreter-like Function holds ( (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . m) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) let U be non empty set ; ::_thesis: for u being Element of U for t being termal string of S for I being S,U -interpreter-like Function holds ( (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . m) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) let u be Element of U; ::_thesis: for t being termal string of S for I being S,U -interpreter-like Function holds ( (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . m) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) let t be termal string of S; ::_thesis: for I being S,U -interpreter-like Function holds ( (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . m) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) let I be S,U -interpreter-like Function; ::_thesis: ( (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . m) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) reconsider mm = m as Element of NAT by ORDINAL1:def_12; ( (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) by Lm5; hence ( (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . m) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) ; ::_thesis: verum end; theorem :: FOMODEL2:4 for m, n being Nat for S being Language for U being non empty set for u1, u2 being Element of U for I being b3,b4 -interpreter-like Function for t being b1 -termal string of S holds (((I,u1) -TermEval) . (m + 1)) . t = (((I,u2) -TermEval) . ((m + 1) + n)) . t by Lm6; theorem :: FOMODEL2:5 for m being Nat for S being Language for U being non empty set holds curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by Lm11; theorem :: FOMODEL2:6 for x, X, Y, Z being set holds ( x in (X \/ Y) \/ Z iff ( x in X or x in Y or x in Z ) ) by Lm8; theorem :: FOMODEL2:7 for S being Language holds S -formulasOfMaxDepth 0 = AtomicFormulasOf S by Lm16; definition let S be Language; let m be Nat; redefine func S -formulasOfMaxDepth m means :Def28: :: FOMODEL2:def 28 for U being non empty set for I being Element of U -InterpretersOf S holds it = dom ((I,m) -TruthEval); compatibility for b1 being Subset of (((AllSymbolsOf S) *) \ {{}}) holds ( b1 = S -formulasOfMaxDepth m iff for U being non empty set for I being Element of U -InterpretersOf S holds b1 = dom ((I,m) -TruthEval) ) proof reconsider mm = m as Element of NAT by ORDINAL1:def_12; set SS = AllSymbolsOf S; set Phim = S -formulasOfMaxDepth m; defpred S1[ set ] means for U being non empty set for I being Element of U -InterpretersOf S holds $1 = dom ((I,m) -TruthEval); let x be Subset of (((AllSymbolsOf S) *) \ {{}}); ::_thesis: ( x = S -formulasOfMaxDepth m iff for U being non empty set for I being Element of U -InterpretersOf S holds x = dom ((I,m) -TruthEval) ) thus ( x = S -formulasOfMaxDepth m implies S1[x] ) ::_thesis: ( ( for U being non empty set for I being Element of U -InterpretersOf S holds x = dom ((I,m) -TruthEval) ) implies x = S -formulasOfMaxDepth m ) proof assume A1: x = S -formulasOfMaxDepth m ; ::_thesis: S1[x] thus for U being non empty set for I being Element of U -InterpretersOf S holds x = dom ((I,m) -TruthEval) ::_thesis: verum proof let U be non empty set ; ::_thesis: for I being Element of U -InterpretersOf S holds x = dom ((I,m) -TruthEval) set II = U -InterpretersOf S; let I be Element of U -InterpretersOf S; ::_thesis: x = dom ((I,m) -TruthEval) S -formulasOfMaxDepth m = dom ((I,mm) -TruthEval) by Def23; hence x = dom ((I,m) -TruthEval) by A1; ::_thesis: verum end; end; assume A2: S1[x] ; ::_thesis: x = S -formulasOfMaxDepth m for U being non empty set for I being Element of U -InterpretersOf S for nn being Element of NAT st m = nn holds x = dom ((I,nn) -TruthEval) by A2; hence x = S -formulasOfMaxDepth m by Def23; ::_thesis: verum end; end; :: deftheorem Def28 defines -formulasOfMaxDepth FOMODEL2:def_28_:_ for S being Language for m being Nat for b3 being Subset of (((AllSymbolsOf S) *) \ {{}}) holds ( b3 = S -formulasOfMaxDepth m iff for U being non empty set for I being Element of U -InterpretersOf S holds b3 = dom ((I,m) -TruthEval) ); Lm17: for m being Nat for S being Language for U being non empty set holds curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(Funcs ((S -formulasOfMaxDepth m),BOOLEAN)) proof let m be Nat; ::_thesis: for S being Language for U being non empty set holds curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(Funcs ((S -formulasOfMaxDepth m),BOOLEAN)) let S be Language; ::_thesis: for U being non empty set holds curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(Funcs ((S -formulasOfMaxDepth m),BOOLEAN)) let U be non empty set ; ::_thesis: curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(Funcs ((S -formulasOfMaxDepth m),BOOLEAN)) reconsider mm = m as Element of NAT by ORDINAL1:def_12; set Fm = (S,U) -TruthEval m; set II = U -InterpretersOf S; set SS = AllSymbolsOf S; set Phim = S -formulasOfMaxDepth m; reconsider f = curry ((S,U) -TruthEval m) as Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by Lm11; A1: dom f = U -InterpretersOf S by FUNCT_2:def_1; now__::_thesis:_for_x_being_set_st_x_in_U_-InterpretersOf_S_holds_ f_._x_in_Funcs_((S_-formulasOfMaxDepth_m),BOOLEAN) let x be set ; ::_thesis: ( x in U -InterpretersOf S implies f . x in Funcs ((S -formulasOfMaxDepth m),BOOLEAN) ) assume x in U -InterpretersOf S ; ::_thesis: f . x in Funcs ((S -formulasOfMaxDepth m),BOOLEAN) then reconsider Ix = x as Element of U -InterpretersOf S ; reconsider g = f . Ix as Element of PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN) ; ( g is BOOLEAN -valued & g = (Ix,m) -TruthEval ) ; then ( g = g & dom g = S -formulasOfMaxDepth m & rng g c= BOOLEAN ) by Def28; hence f . x in Funcs ((S -formulasOfMaxDepth m),BOOLEAN) by FUNCT_2:def_2; ::_thesis: verum end; hence curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(Funcs ((S -formulasOfMaxDepth m),BOOLEAN)) by A1, FUNCT_2:3; ::_thesis: verum end; theorem Th8: :: FOMODEL2:8 for m being Nat for S being Language for U being non empty set holds ( (S,U) -TruthEval m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) & ((S,U) -TruthEval) . m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) ) proof let m be Nat; ::_thesis: for S being Language for U being non empty set holds ( (S,U) -TruthEval m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) & ((S,U) -TruthEval) . m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) ) let S be Language; ::_thesis: for U being non empty set holds ( (S,U) -TruthEval m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) & ((S,U) -TruthEval) . m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) ) let U be non empty set ; ::_thesis: ( (S,U) -TruthEval m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) & ((S,U) -TruthEval) . m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) ) set Fm = (S,U) -TruthEval m; set II = U -InterpretersOf S; set Phim = S -formulasOfMaxDepth m; set SS = AllSymbolsOf S; reconsider mm = m as Element of NAT by ORDINAL1:def_12; reconsider Fmm = (S,U) -TruthEval m as PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN ; dom ((S,U) -TruthEval m) c= [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ; then A1: uncurry (curry ((S,U) -TruthEval m)) = (S,U) -TruthEval m by FUNCT_5:50; reconsider f = curry ((S,U) -TruthEval m) as Function of (U -InterpretersOf S),(Funcs ((S -formulasOfMaxDepth m),BOOLEAN)) by Lm17; ( rng f c= Funcs ((S -formulasOfMaxDepth m),BOOLEAN) & dom f = U -InterpretersOf S ) by FUNCT_2:def_1; then ( (S,U) -TruthEval m = (S,U) -TruthEval m & dom ((S,U) -TruthEval m) = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & rng ((S,U) -TruthEval m) c= BOOLEAN ) by A1, FUNCT_5:26; hence (S,U) -TruthEval m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) by FUNCT_2:def_2; ::_thesis: ((S,U) -TruthEval) . m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) then ((S,U) -TruthEval) . mm in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) by Def21; hence ((S,U) -TruthEval) . m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) ; ::_thesis: verum end; definition let S be Language; let m be Nat; funcm -ExFormulasOf S -> set equals :: FOMODEL2:def 29 { (<*v*> ^ phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : verum } ; coherence { (<*v*> ^ phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : verum } is set ; funcm -NorFormulasOf S -> set equals :: FOMODEL2:def 30 { ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : verum } ; coherence { ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : verum } is set ; end; :: deftheorem defines -ExFormulasOf FOMODEL2:def_29_:_ for S being Language for m being Nat holds m -ExFormulasOf S = { (<*v*> ^ phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : verum } ; :: deftheorem defines -NorFormulasOf FOMODEL2:def_30_:_ for S being Language for m being Nat holds m -NorFormulasOf S = { ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : verum } ; definition let S be Language; let w1, w2 be string of S; :: original: ^ redefine funcw1 ^ w2 -> string of S; coherence w1 ^ w2 is string of S proof set SS = AllSymbolsOf S; reconsider w11 = w1, w22 = w2 as non empty FinSequence of AllSymbolsOf S by FOMODEL0:5; w11 ^ w22 is non empty FinSequence of AllSymbolsOf S ; hence w1 ^ w2 is string of S by FOMODEL0:5; ::_thesis: verum end; end; definition let S be Language; let s be Element of S; :: original: <* redefine func<*s*> -> string of S; coherence <*s*> is string of S proof set SS = AllSymbolsOf S; <*s*> is non empty FinSequence of AllSymbolsOf S ; hence <*s*> is string of S by FOMODEL0:5; ::_thesis: verum end; end; Lm18: for m being Nat for S being Language for U being non empty set holds dom (NorIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -NorFormulasOf S):] proof let m be Nat; ::_thesis: for S being Language for U being non empty set holds dom (NorIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -NorFormulasOf S):] let S be Language; ::_thesis: for U being non empty set holds dom (NorIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -NorFormulasOf S):] let U be non empty set ; ::_thesis: dom (NorIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -NorFormulasOf S):] set mm = m; set II = U -InterpretersOf S; set SS = AllSymbolsOf S; set N = TheNorSymbOf S; set Fm = (S,U) -TruthEval m; set Phim = S -formulasOfMaxDepth m; set IT = NorIterator ((S,U) -TruthEval m); deffunc H1( FinSequence, FinSequence) -> set = (<*(TheNorSymbOf S)*> ^ $1) ^ $2; defpred S1[] means verum; set A = { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } ; set LH = dom (NorIterator ((S,U) -TruthEval m)); set RH = [:(U -InterpretersOf S), { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } :]; (S,U) -TruthEval m is Element of Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) by Th8; then reconsider Fmm = (S,U) -TruthEval m as Function of [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN ; A1: dom Fmm = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] by FUNCT_2:def_1; reconsider ITT = NorIterator ((S,U) -TruthEval m) as PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN ; A2: [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] = { [x,y] where x is Element of U -InterpretersOf S, y is Element of ((AllSymbolsOf S) *) \ {{}} : verum } by DOMAIN_1:19; now__::_thesis:_for_z_being_set_st_z_in_dom_(NorIterator_((S,U)_-TruthEval_m))_holds_ z_in_[:(U_-InterpretersOf_S),_{__H1(phi1,phi2)_where_phi1,_phi2_is_Element_of_S_-formulasOfMaxDepth_m_:_S1[]__}__:] let z be set ; ::_thesis: ( z in dom (NorIterator ((S,U) -TruthEval m)) implies z in [:(U -InterpretersOf S), { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } :] ) assume A3: z in dom (NorIterator ((S,U) -TruthEval m)) ; ::_thesis: z in [:(U -InterpretersOf S), { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } :] then z in [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ; then consider x being Element of U -InterpretersOf S, y being Element of ((AllSymbolsOf S) *) \ {{}} such that A4: z = [x,y] by A2; consider phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} such that A5: ( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom ((S,U) -TruthEval m) & [x,phi2] in dom ((S,U) -TruthEval m) ) by Def19, A3, A4; reconsider phi11 = phi1, phi22 = phi2 as Element of S -formulasOfMaxDepth m by A5, A1, ZFMISC_1:87; set yy = H1(phi11,phi22); ( x in U -InterpretersOf S & H1(phi11,phi22) in { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } & z = [x,H1(phi11,phi22)] ) by A4, A5; hence z in [:(U -InterpretersOf S), { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } :] by ZFMISC_1:def_2; ::_thesis: verum end; then A6: dom (NorIterator ((S,U) -TruthEval m)) c= [:(U -InterpretersOf S), { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } :] by TARSKI:def_3; now__::_thesis:_for_z_being_set_st_z_in_[:(U_-InterpretersOf_S),_{__H1(phi1,phi2)_where_phi1,_phi2_is_Element_of_S_-formulasOfMaxDepth_m_:_S1[]__}__:]_holds_ z_in_dom_(NorIterator_((S,U)_-TruthEval_m)) let z be set ; ::_thesis: ( z in [:(U -InterpretersOf S), { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } :] implies z in dom (NorIterator ((S,U) -TruthEval m)) ) assume z in [:(U -InterpretersOf S), { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } :] ; ::_thesis: z in dom (NorIterator ((S,U) -TruthEval m)) then consider xx, yy being set such that A7: ( xx in U -InterpretersOf S & yy in { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } & z = [xx,yy] ) by ZFMISC_1:def_2; reconsider x = xx as Element of U -InterpretersOf S by A7; consider phi1, phi2 being Element of S -formulasOfMaxDepth m such that A8: yy = H1(phi1,phi2) by A7; reconsider phi11 = phi1, phi22 = phi2 as string of S ; (<*(TheNorSymbOf S)*> ^ phi11) ^ phi22 is string of S ; then reconsider y = yy as string of S by A8; ( [x,phi1] in dom Fmm & [x,phi2] in dom Fmm ) by A1; then [x,y] in dom (NorIterator ((S,U) -TruthEval m)) by A8, Def19; hence z in dom (NorIterator ((S,U) -TruthEval m)) by A7; ::_thesis: verum end; then [:(U -InterpretersOf S), { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } :] c= dom (NorIterator ((S,U) -TruthEval m)) by TARSKI:def_3; hence dom (NorIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -NorFormulasOf S):] by A6, XBOOLE_0:def_10; ::_thesis: verum end; Lm19: for m being Nat for S being Language for U being non empty set holds dom (ExIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -ExFormulasOf S):] proof let m be Nat; ::_thesis: for S being Language for U being non empty set holds dom (ExIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -ExFormulasOf S):] let S be Language; ::_thesis: for U being non empty set holds dom (ExIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -ExFormulasOf S):] let U be non empty set ; ::_thesis: dom (ExIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -ExFormulasOf S):] set mm = m; set II = U -InterpretersOf S; set SS = AllSymbolsOf S; set N = TheNorSymbOf S; set Fm = (S,U) -TruthEval m; set Phim = S -formulasOfMaxDepth m; set IT = ExIterator ((S,U) -TruthEval m); set L = LettersOf S; deffunc H1( set , FinSequence) -> set = <*$1*> ^ $2; defpred S1[] means verum; set A = { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } ; set LH = dom (ExIterator ((S,U) -TruthEval m)); set RH = [:(U -InterpretersOf S), { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } :]; (S,U) -TruthEval m is Element of Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) by Th8; then reconsider Fmm = (S,U) -TruthEval m as Function of [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN ; A1: dom Fmm = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] by FUNCT_2:def_1; reconsider ITT = ExIterator ((S,U) -TruthEval m) as PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN ; A2: [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] = { [x,y] where x is Element of U -InterpretersOf S, y is Element of ((AllSymbolsOf S) *) \ {{}} : verum } by DOMAIN_1:19; now__::_thesis:_for_z_being_set_st_z_in_dom_(ExIterator_((S,U)_-TruthEval_m))_holds_ z_in_[:(U_-InterpretersOf_S),_{__H1(v,phi)_where_v_is_Element_of_LettersOf_S,_phi_is_Element_of_S_-formulasOfMaxDepth_m_:_S1[]__}__:] let z be set ; ::_thesis: ( z in dom (ExIterator ((S,U) -TruthEval m)) implies z in [:(U -InterpretersOf S), { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } :] ) assume A3: z in dom (ExIterator ((S,U) -TruthEval m)) ; ::_thesis: z in [:(U -InterpretersOf S), { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } :] then z in [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ; then consider x being Element of U -InterpretersOf S, y being Element of ((AllSymbolsOf S) *) \ {{}} such that A4: z = [x,y] by A2; consider v being literal Element of S, w being string of S such that A5: ( [x,w] in dom ((S,U) -TruthEval m) & y = <*v*> ^ w ) by Def17, A3, A4; reconsider phi = w as Element of S -formulasOfMaxDepth m by A1, A5, ZFMISC_1:87; reconsider vv = v as Element of LettersOf S by FOMODEL1:def_14; y = <*vv*> ^ phi by A5; then y in { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } ; hence z in [:(U -InterpretersOf S), { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } :] by A4, ZFMISC_1:def_2; ::_thesis: verum end; then A6: dom (ExIterator ((S,U) -TruthEval m)) c= [:(U -InterpretersOf S), { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } :] by TARSKI:def_3; now__::_thesis:_for_z_being_set_st_z_in_[:(U_-InterpretersOf_S),_{__H1(v,phi)_where_v_is_Element_of_LettersOf_S,_phi_is_Element_of_S_-formulasOfMaxDepth_m_:_S1[]__}__:]_holds_ z_in_dom_(ExIterator_((S,U)_-TruthEval_m)) let z be set ; ::_thesis: ( z in [:(U -InterpretersOf S), { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } :] implies z in dom (ExIterator ((S,U) -TruthEval m)) ) assume z in [:(U -InterpretersOf S), { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } :] ; ::_thesis: z in dom (ExIterator ((S,U) -TruthEval m)) then consider xx, yy being set such that A7: ( xx in U -InterpretersOf S & yy in { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } & z = [xx,yy] ) by ZFMISC_1:def_2; reconsider x = xx as Element of U -InterpretersOf S by A7; consider vv being Element of LettersOf S, phi being Element of S -formulasOfMaxDepth m such that A8: yy = H1(vv,phi) by A7; reconsider v = vv as literal Element of S ; reconsider w = phi as string of S ; ( [x,phi] in dom ((S,U) -TruthEval m) & yy = <*v*> ^ w ) by A8, A1; hence z in dom (ExIterator ((S,U) -TruthEval m)) by A7, Def17; ::_thesis: verum end; then [:(U -InterpretersOf S), { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } :] c= dom (ExIterator ((S,U) -TruthEval m)) by TARSKI:def_3; hence dom (ExIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -ExFormulasOf S):] by A6, XBOOLE_0:def_10; ::_thesis: verum end; theorem Th9: :: FOMODEL2:9 for m being Nat for S being Language holds S -formulasOfMaxDepth (m + 1) = ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m) proof let m be Nat; ::_thesis: for S being Language holds S -formulasOfMaxDepth (m + 1) = ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m) let S be Language; ::_thesis: S -formulasOfMaxDepth (m + 1) = ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m) set U = the non empty set ; set n = m + 1; set II = the non empty set -InterpretersOf S; set SS = AllSymbolsOf S; set N = TheNorSymbOf S; set I = the Element of the non empty set -InterpretersOf S; reconsider mm = m, nn = m + 1 as Element of NAT by ORDINAL1:def_12; set F = (S, the non empty set ) -TruthEval ; set Fn = ((S, the non empty set ) -TruthEval) . nn; set Fc = curry (((S, the non empty set ) -TruthEval) . nn); set Dm = S -formulasOfMaxDepth m; set Dn = S -formulasOfMaxDepth (m + 1); ((S, the non empty set ) -TruthEval) . mm is Element of PFuncs ([:( the non empty set -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ; then reconsider Fm = ((S, the non empty set ) -TruthEval) . mm as PartFunc of [:( the non empty set -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN ; A1: ( (S, the non empty set ) -TruthEval (m + 1) = ((S, the non empty set ) -TruthEval) . nn & (S, the non empty set ) -TruthEval m = Fm ) by Def21; reconsider Fcc = curry (((S, the non empty set ) -TruthEval) . nn) as Function of ( the non empty set -InterpretersOf S),(Funcs ((S -formulasOfMaxDepth (m + 1)),BOOLEAN)) by Lm17, A1; reconsider fn = Fcc . the Element of the non empty set -InterpretersOf S as Function of (S -formulasOfMaxDepth (m + 1)),BOOLEAN ; Fm is Element of Funcs ([:( the non empty set -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) by Th8; then reconsider Fmm = Fm as Function of [:( the non empty set -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN ; ( dom fn = S -formulasOfMaxDepth (m + 1) & dom Fcc = the non empty set -InterpretersOf S ) by FUNCT_2:def_1; then A2: S -formulasOfMaxDepth (m + 1) = proj2 ((dom (((S, the non empty set ) -TruthEval) . nn)) /\ [:{ the Element of the non empty set -InterpretersOf S},(proj2 (dom (((S, the non empty set ) -TruthEval) . nn))):]) by FUNCT_5:31; A3: ((S, the non empty set ) -TruthEval) . nn = ((ExIterator (((S, the non empty set ) -TruthEval) . mm)) +* (NorIterator (((S, the non empty set ) -TruthEval) . mm))) +* Fm by Def20; reconsider Em = ExIterator (((S, the non empty set ) -TruthEval) . mm) as PartFunc of [:( the non empty set -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN ; reconsider dEm = dom Em as Relation of ( the non empty set -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}) ; reconsider dNm = dom (NorIterator (((S, the non empty set ) -TruthEval) . mm)), dFm = dom Fm as Relation of ( the non empty set -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}) ; A4: dFm = dom Fmm .= [:( the non empty set -InterpretersOf S),(S -formulasOfMaxDepth m):] by FUNCT_2:def_1 ; A5: dom (((S, the non empty set ) -TruthEval) . nn) = (dom ((ExIterator (((S, the non empty set ) -TruthEval) . mm)) +* (NorIterator (((S, the non empty set ) -TruthEval) . mm)))) \/ (dom Fm) by A3, FUNCT_4:def_1 .= (dEm \/ dNm) \/ dFm by FUNCT_4:def_1 ; set RNNN = m -NorFormulasOf S; set REEE = m -ExFormulasOf S; (S, the non empty set ) -TruthEval m = Fm by Def21; then ( dNm = [:( the non empty set -InterpretersOf S),(m -NorFormulasOf S):] & dEm = [:( the non empty set -InterpretersOf S),(m -ExFormulasOf S):] ) by Lm18, Lm19; then A6: (dEm \/ dNm) \/ dFm = [:( the non empty set -InterpretersOf S),((m -ExFormulasOf S) \/ (m -NorFormulasOf S)):] \/ [:( the non empty set -InterpretersOf S),(S -formulasOfMaxDepth m):] by A4, ZFMISC_1:97 .= [:( the non empty set -InterpretersOf S),(((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m)):] by ZFMISC_1:97 ; reconsider sub = [:{ the Element of the non empty set -InterpretersOf S},(((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m)):] as Subset of [:( the non empty set -InterpretersOf S),(((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m)):] by ZFMISC_1:96; S -formulasOfMaxDepth (m + 1) = rng ([:( the non empty set -InterpretersOf S),(((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m)):] /\ sub) by A6, A2, A5, RELAT_1:160 .= ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m) by RELAT_1:160 ; hence S -formulasOfMaxDepth (m + 1) = ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m) ; ::_thesis: verum end; theorem Th10: :: FOMODEL2:10 for S being Language holds AtomicFormulasOf S is S -prefix proof let S be Language; ::_thesis: AtomicFormulasOf S is S -prefix set AF = AtomicFormulasOf S; set SS = AllSymbolsOf S; set TT = AllTermsOf S; set C = S -multiCat ; now__::_thesis:_for_p1,_q1,_p2,_q2_being_AllSymbolsOf_S_-valued_FinSequence_st_p1_in_AtomicFormulasOf_S_&_p2_in_AtomicFormulasOf_S_&_p1_^_q1_=_p2_^_q2_holds_ (_p1_=_p2_&_q1_=_q2_) let p1, q1, p2, q2 be AllSymbolsOf S -valued FinSequence; ::_thesis: ( p1 in AtomicFormulasOf S & p2 in AtomicFormulasOf S & p1 ^ q1 = p2 ^ q2 implies ( p1 = p2 & q1 = q2 ) ) assume p1 in AtomicFormulasOf S ; ::_thesis: ( p2 in AtomicFormulasOf S & p1 ^ q1 = p2 ^ q2 implies ( p1 = p2 & q1 = q2 ) ) then consider phi1 being string of S such that A1: ( p1 = phi1 & phi1 is 0wff ) ; assume p2 in AtomicFormulasOf S ; ::_thesis: ( p1 ^ q1 = p2 ^ q2 implies ( p1 = p2 & q1 = q2 ) ) then consider phi2 being string of S such that A2: ( p2 = phi2 & phi2 is 0wff ) ; consider r1 being relational Element of S, T1 being abs (ar r1) -element Element of (AllTermsOf S) * such that A3: phi1 = <*r1*> ^ ((S -multiCat) . T1) by A1, FOMODEL1:def_35; consider r2 being relational Element of S, T2 being abs (ar r2) -element Element of (AllTermsOf S) * such that A4: phi2 = <*r2*> ^ ((S -multiCat) . T2) by A2, FOMODEL1:def_35; assume p1 ^ q1 = p2 ^ q2 ; ::_thesis: ( p1 = p2 & q1 = q2 ) then A5: <*r1*> ^ (((S -multiCat) . T1) ^ q1) = (<*r2*> ^ ((S -multiCat) . T2)) ^ q2 by A1, A2, A3, A4, FINSEQ_1:32 .= <*r2*> ^ (((S -multiCat) . T2) ^ q2) by FINSEQ_1:32 ; then A6: r1 = (<*r2*> ^ (((S -multiCat) . T2) ^ q2)) . 1 by FINSEQ_1:41 .= r2 by FINSEQ_1:41 ; set n = abs (ar r1); set nT = (abs (ar r1)) -tuples_on (AllTermsOf S); reconsider T11 = T1, T22 = T2 as Element of (abs (ar r1)) -tuples_on (AllTermsOf S) by A6, FOMODEL0:16; reconsider P = (S -multiCat) .: ((abs (ar r1)) -tuples_on (AllTermsOf S)) as AllSymbolsOf S -prefix set ; A7: ( (((AllSymbolsOf S) *) \ {{}}) * c= ((AllSymbolsOf S) *) * & (AllTermsOf S) * c= (((AllSymbolsOf S) *) \ {{}}) * ) ; then ( T1 in ((AllSymbolsOf S) *) * & T2 in ((AllSymbolsOf S) *) * & dom (S -multiCat) = ((AllSymbolsOf S) *) * ) by FUNCT_2:def_1, TARSKI:def_3; then A8: ( (S -multiCat) . T11 in P & (S -multiCat) . T22 in P ) by FUNCT_1:def_6; reconsider T111 = T1, T222 = T2 as Element of ((AllSymbolsOf S) *) * by A7, TARSKI:def_3; ((S -multiCat) . T111) ^ q1 = ((S -multiCat) . T222) ^ q2 by A6, A5, FINSEQ_1:33; hence ( p1 = p2 & q1 = q2 ) by A1, A2, A8, A3, A4, A6, FOMODEL0:def_20; ::_thesis: verum end; then AtomicFormulasOf S is AllSymbolsOf S -prefix by FOMODEL0:def_20; hence AtomicFormulasOf S is S -prefix ; ::_thesis: verum end; registration let S be Language; cluster AtomicFormulasOf S -> S -prefix for set ; coherence for b1 being set st b1 = AtomicFormulasOf S holds b1 is S -prefix by Th10; end; registration let S be Language; clusterS -formulasOfMaxDepth 0 -> S -prefix for set ; coherence for b1 being set st b1 = S -formulasOfMaxDepth 0 holds b1 is S -prefix proof S -formulasOfMaxDepth 0 = AtomicFormulasOf S by Lm16; hence for b1 being set st b1 = S -formulasOfMaxDepth 0 holds b1 is S -prefix ; ::_thesis: verum end; end; definition let S be Language; let phi be wff string of S; func Depth phi -> Nat means :Def31: :: FOMODEL2:def 31 ( phi is it -wff & ( for n being Nat st phi is n -wff holds it <= n ) ); existence ex b1 being Nat st ( phi is b1 -wff & ( for n being Nat st phi is n -wff holds b1 <= n ) ) proof defpred S1[ Nat] means phi is $1 -wff ; consider m being Nat such that A1: phi is m -wff by Def25; A2: ex n being Nat st S1[n] by A1; consider IT being Nat such that A3: ( S1[IT] & ( for n being Nat st S1[n] holds IT <= n ) ) from NAT_1:sch_5(A2); take IT ; ::_thesis: ( phi is IT -wff & ( for n being Nat st phi is n -wff holds IT <= n ) ) thus ( phi is IT -wff & ( for n being Nat st phi is n -wff holds IT <= n ) ) by A3; ::_thesis: verum end; uniqueness for b1, b2 being Nat st phi is b1 -wff & ( for n being Nat st phi is n -wff holds b1 <= n ) & phi is b2 -wff & ( for n being Nat st phi is n -wff holds b2 <= n ) holds b1 = b2 proof let IT1, IT2 be Nat; ::_thesis: ( phi is IT1 -wff & ( for n being Nat st phi is n -wff holds IT1 <= n ) & phi is IT2 -wff & ( for n being Nat st phi is n -wff holds IT2 <= n ) implies IT1 = IT2 ) assume A4: ( phi is IT1 -wff & ( for n being Nat st phi is n -wff holds IT1 <= n ) ) ; ::_thesis: ( not phi is IT2 -wff or ex n being Nat st ( phi is n -wff & not IT2 <= n ) or IT1 = IT2 ) assume A5: ( phi is IT2 -wff & ( for n being Nat st phi is n -wff holds IT2 <= n ) ) ; ::_thesis: IT1 = IT2 A6: IT2 <= IT1 by A5, A4; IT1 <= IT2 by A4, A5; hence IT1 = IT2 by A6, XXREAL_0:1; ::_thesis: verum end; end; :: deftheorem Def31 defines Depth FOMODEL2:def_31_:_ for S being Language for phi being wff string of S for b3 being Nat holds ( b3 = Depth phi iff ( phi is b3 -wff & ( for n being Nat st phi is n -wff holds b3 <= n ) ) ); Lm20: for m being Nat for S being Language for phi being wff string of S st phi in (S -formulasOfMaxDepth m) \ (S -formulasOfMaxDepth 0) holds ex n being Nat st ( phi is n + 1 -wff & not phi is n -wff & n + 1 <= m ) proof let m be Nat; ::_thesis: for S being Language for phi being wff string of S st phi in (S -formulasOfMaxDepth m) \ (S -formulasOfMaxDepth 0) holds ex n being Nat st ( phi is n + 1 -wff & not phi is n -wff & n + 1 <= m ) let S be Language; ::_thesis: for phi being wff string of S st phi in (S -formulasOfMaxDepth m) \ (S -formulasOfMaxDepth 0) holds ex n being Nat st ( phi is n + 1 -wff & not phi is n -wff & n + 1 <= m ) let phi be wff string of S; ::_thesis: ( phi in (S -formulasOfMaxDepth m) \ (S -formulasOfMaxDepth 0) implies ex n being Nat st ( phi is n + 1 -wff & not phi is n -wff & n + 1 <= m ) ) set Phim = S -formulasOfMaxDepth m; set Phi0 = S -formulasOfMaxDepth 0; assume phi in (S -formulasOfMaxDepth m) \ (S -formulasOfMaxDepth 0) ; ::_thesis: ex n being Nat st ( phi is n + 1 -wff & not phi is n -wff & n + 1 <= m ) then not phi in S -formulasOfMaxDepth 0 by XBOOLE_0:def_5; then not phi is 0 -wff by Def24; then Depth phi <> 0 by Def31; then consider n being Nat such that A2: Depth phi = n + 1 by NAT_1:6; take n ; ::_thesis: ( phi is n + 1 -wff & not phi is n -wff & n + 1 <= m ) thus ( phi is n + 1 -wff & not phi is n -wff ) by Def31, A2; ::_thesis: n + 1 <= m thus n + 1 <= m by A2, Def31; ::_thesis: verum end; Lm21: for m being Nat for S being Language for w being string of S st w is m + 1 -wff & not w is m -wff & ( for v being literal Element of S for phi being b1 -wff string of S holds not w = <*v*> ^ phi ) holds ex phi1, phi2 being b1 -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 proof let m be Nat; ::_thesis: for S being Language for w being string of S st w is m + 1 -wff & not w is m -wff & ( for v being literal Element of S for phi being m -wff string of S holds not w = <*v*> ^ phi ) holds ex phi1, phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 let S be Language; ::_thesis: for w being string of S st w is m + 1 -wff & not w is m -wff & ( for v being literal Element of S for phi being m -wff string of S holds not w = <*v*> ^ phi ) holds ex phi1, phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 let w be string of S; ::_thesis: ( w is m + 1 -wff & not w is m -wff & ( for v being literal Element of S for phi being m -wff string of S holds not w = <*v*> ^ phi ) implies ex phi1, phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 ) set Phim = S -formulasOfMaxDepth m; set PhiM = S -formulasOfMaxDepth (m + 1); set L = LettersOf S; set N = TheNorSymbOf S; set EF = m -ExFormulasOf S; set NF = m -NorFormulasOf S; assume w is m + 1 -wff ; ::_thesis: ( w is m -wff or ex v being literal Element of S ex phi being m -wff string of S st w = <*v*> ^ phi or ex phi1, phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 ) then w in S -formulasOfMaxDepth (m + 1) by Def24; then w in ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m) by Th9; then A1: ( w in m -ExFormulasOf S or w in m -NorFormulasOf S or w in S -formulasOfMaxDepth m ) by Lm8; assume A2: not w is m -wff ; ::_thesis: ( ex v being literal Element of S ex phi being m -wff string of S st w = <*v*> ^ phi or ex phi1, phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 ) assume A3: for v being literal Element of S for phi being m -wff string of S holds not w = <*v*> ^ phi ; ::_thesis: ex phi1, phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 ( w in m -ExFormulasOf S implies ex v being literal Element of S ex phi being m -wff string of S st w = <*v*> ^ phi ) proof assume w in m -ExFormulasOf S ; ::_thesis: ex v being literal Element of S ex phi being m -wff string of S st w = <*v*> ^ phi then consider vv being Element of LettersOf S, phi being Element of S -formulasOfMaxDepth m such that A4: w = <*vv*> ^ phi ; reconsider phii = phi as m -wff string of S by Def24; reconsider v = vv as literal Element of S ; take v ; ::_thesis: ex phi being m -wff string of S st w = <*v*> ^ phi take phii ; ::_thesis: w = <*v*> ^ phii thus w = <*v*> ^ phii by A4; ::_thesis: verum end; then consider phi1, phi2 being Element of S -formulasOfMaxDepth m such that A5: w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 by A3, A2, A1, Def24; reconsider phi11 = phi1, phi22 = phi2 as m -wff string of S by Def24; take phi11 ; ::_thesis: ex phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi11) ^ phi2 take phi22 ; ::_thesis: w = (<*(TheNorSymbOf S)*> ^ phi11) ^ phi22 thus w = (<*(TheNorSymbOf S)*> ^ phi11) ^ phi22 by A5; ::_thesis: verum end; registration let S be Language; let m be Nat; let phi1, phi2 be m -wff string of S; cluster(<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 -> m + 1 -wff for string of S; coherence for b1 being string of S st b1 = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 holds b1 is m + 1 -wff proof set N = TheNorSymbOf S; set Phim = S -formulasOfMaxDepth m; set NF = m -NorFormulasOf S; set PhiM = S -formulasOfMaxDepth (m + 1); set EF = m -ExFormulasOf S; set IT = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2; reconsider phi11 = phi1, phi22 = phi2 as Element of S -formulasOfMaxDepth m by Def24; (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 = (<*(TheNorSymbOf S)*> ^ phi11) ^ phi22 ; then (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 in m -NorFormulasOf S ; then (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 in ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m) by Lm8; then reconsider ITT = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 as Element of S -formulasOfMaxDepth (m + 1) by Th9; ITT is m + 1 -wff by Def24; hence for b1 being string of S st b1 = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 holds b1 is m + 1 -wff ; ::_thesis: verum end; end; registration let S be Language; let phi1, phi2 be wff string of S; cluster(<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 -> wff for string of S; coherence for b1 being string of S st b1 = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 holds b1 is wff proof set N = TheNorSymbOf S; set IT = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2; consider m being Nat such that A1: phi1 is m -wff by Def25; consider n being Nat such that A2: phi2 is n -wff by Def25; reconsider phi11 = phi1 as m + (0 * n) -wff string of S by A1; reconsider phi22 = phi2 as n + (0 * m) -wff string of S by A2; reconsider phi111 = phi11 as m + n -wff string of S ; reconsider phi222 = phi22 as m + n -wff string of S ; (<*(TheNorSymbOf S)*> ^ phi111) ^ phi222 is (m + n) + 1 -wff string of S ; hence for b1 being string of S st b1 = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 holds b1 is wff ; ::_thesis: verum end; end; registration let S be Language; let m be Nat; let phi be m -wff string of S; let v be literal Element of S; cluster<*v*> ^ phi -> m + 1 -wff for string of S; coherence for b1 being string of S st b1 = <*v*> ^ phi holds b1 is m + 1 -wff proof set L = LettersOf S; set Phim = S -formulasOfMaxDepth m; set NF = m -NorFormulasOf S; set PhiM = S -formulasOfMaxDepth (m + 1); set EF = m -ExFormulasOf S; set IT = <*v*> ^ phi; reconsider vv = v as Element of LettersOf S by FOMODEL1:def_14; reconsider phii = phi as Element of S -formulasOfMaxDepth m by Def24; <*v*> ^ phi = <*vv*> ^ phii ; then <*v*> ^ phi in m -ExFormulasOf S ; then <*v*> ^ phi in ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m) by Lm8; then reconsider ITT = <*v*> ^ phi as Element of S -formulasOfMaxDepth (m + 1) by Th9; ITT is m + 1 -wff by Def24; hence for b1 being string of S st b1 = <*v*> ^ phi holds b1 is m + 1 -wff ; ::_thesis: verum end; end; registration let S be Language; let l be literal Element of S; let phi be wff string of S; cluster<*l*> ^ phi -> wff for string of S; coherence for b1 being string of S st b1 = <*l*> ^ phi holds b1 is wff proof consider m being Nat such that A1: phi is m -wff by Def25; reconsider phii = phi as m -wff string of S by A1; set IT = <*l*> ^ phii; <*l*> ^ phii is m + 1 -wff ; hence for b1 being string of S st b1 = <*l*> ^ phi holds b1 is wff ; ::_thesis: verum end; end; registration let S be Language; let w be string of S; let s be non relational Element of S; cluster<*s*> ^ w -> non 0wff for string of S; coherence for b1 being string of S st b1 = <*s*> ^ w holds not b1 is 0wff proof set FC = S -firstChar ; set IT = <*s*> ^ w; set SS = AllSymbolsOf S; (S -firstChar) . (<*s*> ^ w) = (<*s*> ^ w) . 1 by FOMODEL0:6 .= s by FINSEQ_1:41 ; hence for b1 being string of S st b1 = <*s*> ^ w holds not b1 is 0wff ; ::_thesis: verum end; end; registration let S be Language; let w1, w2 be string of S; let s be non relational Element of S; cluster(<*s*> ^ w1) ^ w2 -> non 0wff for string of S; coherence for b1 being string of S st b1 = (<*s*> ^ w1) ^ w2 holds not b1 is 0wff proof (<*s*> ^ w1) ^ w2 = <*s*> ^ (w1 ^ w2) by FINSEQ_1:32; hence for b1 being string of S st b1 = (<*s*> ^ w1) ^ w2 holds not b1 is 0wff ; ::_thesis: verum end; end; registration let S be Language; cluster TheNorSymbOf S -> non relational for Element of S; coherence for b1 being Element of S st b1 = TheNorSymbOf S holds not b1 is relational ; end; registration let S be Language; let w be string of S; cluster<*(TheNorSymbOf S)*> ^ w -> non 0wff for string of S; coherence for b1 being string of S st b1 = <*(TheNorSymbOf S)*> ^ w holds not b1 is 0wff ; end; registration let S be Language; let l be literal Element of S; let w be string of S; cluster<*l*> ^ w -> non 0wff for string of S; coherence for b1 being string of S st b1 = <*l*> ^ w holds not b1 is 0wff ; end; definition let S be Language; let w be string of S; attrw is exal means :Def32: :: FOMODEL2:def 32 (S -firstChar) . w is literal ; end; :: deftheorem Def32 defines exal FOMODEL2:def_32_:_ for S being Language for w being string of S holds ( w is exal iff (S -firstChar) . w is literal ); registration let S be Language; let w be string of S; let l be literal Element of S; cluster<*l*> ^ w -> exal for string of S; coherence for b1 being string of S st b1 = <*l*> ^ w holds b1 is exal proof set ww = <*l*> ^ w; set F = S -firstChar ; (S -firstChar) . (<*l*> ^ w) = (<*l*> ^ w) . 1 by FOMODEL0:6 .= l by FINSEQ_1:41 ; hence for b1 being string of S st b1 = <*l*> ^ w holds b1 is exal by Def32; ::_thesis: verum end; end; registration let S be Language; let m1 be non zero Nat; cluster non empty Relation-like NAT -defined Function-like finite FinSequence-like FinSubsequence-like V199() m1 -wff wff exal for Element of ((AllSymbolsOf S) *) \ {{}}; existence ex b1 being m1 -wff string of S st b1 is exal proof consider m being Nat such that A1: m1 = m + 1 by NAT_1:6; set phi = the m -wff string of S; set l = the literal Element of S; set psi = <* the literal Element of S*> ^ the m -wff string of S; reconsider psii = <* the literal Element of S*> ^ the m -wff string of S as m1 -wff string of S by A1; take psii ; ::_thesis: psii is exal thus psii is exal ; ::_thesis: verum end; end; registration let S be Language; cluster exal -> non 0wff for Element of ((AllSymbolsOf S) *) \ {{}}; coherence for b1 being string of S st b1 is exal holds not b1 is 0wff proof set F = S -firstChar ; let w be string of S; ::_thesis: ( w is exal implies not w is 0wff ) assume w is exal ; ::_thesis: not w is 0wff then (S -firstChar) . w is literal by Def32; hence not w is 0wff ; ::_thesis: verum end; end; registration let S be Language; let m1 be non zero Nat; cluster non empty Relation-like NAT -defined Function-like finite FinSequence-like FinSubsequence-like V199() non 0wff m1 -wff wff exal for Element of ((AllSymbolsOf S) *) \ {{}}; existence not for b1 being m1 -wff exal string of S holds b1 is 0wff proof set l = the literal Element of S; consider m being Nat such that A1: m1 = m + 1 by NAT_1:6; set phi = the m -wff string of S; reconsider psi = <* the literal Element of S*> ^ the m -wff string of S as m1 -wff exal string of S by A1; take psi ; ::_thesis: not psi is 0wff thus not psi is 0wff ; ::_thesis: verum end; end; registration let S be Language; cluster non empty Relation-like NAT -defined Function-like finite FinSequence-like FinSubsequence-like V199() non 0wff wff exal for Element of ((AllSymbolsOf S) *) \ {{}}; existence not for b1 being wff exal string of S holds b1 is 0wff proof set m1 = the non zero Nat; set phi = the non 0wff the non zero Nat -wff exal string of S; take the non 0wff the non zero Nat -wff exal string of S ; ::_thesis: not the non 0wff the non zero Nat -wff exal string of S is 0wff thus not the non 0wff the non zero Nat -wff exal string of S is 0wff ; ::_thesis: verum end; end; Lm22: for S being Language for phi being wff string of S st not phi is 0wff holds Depth phi <> 0 proof let S be Language; ::_thesis: for phi being wff string of S st not phi is 0wff holds Depth phi <> 0 let phi be wff string of S; ::_thesis: ( not phi is 0wff implies Depth phi <> 0 ) assume not phi is 0wff ; ::_thesis: Depth phi <> 0 then not phi is 0 -wff ; hence Depth phi <> 0 by Def31; ::_thesis: verum end; registration let S be Language; let phi be non 0wff wff string of S; cluster Depth phi -> non zero for Nat; coherence for b1 being Nat st b1 = Depth phi holds not b1 is empty by Lm22; end; Lm23: for S being Language for w being string of S st w is wff & not w is 0wff & not w . 1 in LettersOf S holds w . 1 = TheNorSymbOf S proof let S be Language; ::_thesis: for w being string of S st w is wff & not w is 0wff & not w . 1 in LettersOf S holds w . 1 = TheNorSymbOf S let w be string of S; ::_thesis: ( w is wff & not w is 0wff & not w . 1 in LettersOf S implies w . 1 = TheNorSymbOf S ) set L = LettersOf S; set N = TheNorSymbOf S; set SS = AllSymbolsOf S; assume w is wff ; ::_thesis: ( w is 0wff or w . 1 in LettersOf S or w . 1 = TheNorSymbOf S ) then reconsider ww = w as wff string of S ; set n = Depth ww; assume not w is 0wff ; ::_thesis: ( w . 1 in LettersOf S or w . 1 = TheNorSymbOf S ) then consider m being Nat such that A1: Depth ww = m + 1 by NAT_1:6; A2: ( ww is m + 1 -wff & not ww is m -wff ) by Def31, A1; percases ( ex v being literal Element of S ex phi being m -wff string of S st w = <*v*> ^ phi or ex phi1, phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 ) by A2, Lm21; suppose ex v being literal Element of S ex phi being m -wff string of S st w = <*v*> ^ phi ; ::_thesis: ( w . 1 in LettersOf S or w . 1 = TheNorSymbOf S ) then consider v being literal Element of S, phi being m -wff string of S such that A3: w = <*v*> ^ phi ; v = w . 1 by A3, FINSEQ_1:41; hence ( w . 1 in LettersOf S or w . 1 = TheNorSymbOf S ) by FOMODEL1:def_14; ::_thesis: verum end; suppose ex phi1, phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 ; ::_thesis: ( w . 1 in LettersOf S or w . 1 = TheNorSymbOf S ) then consider phi1, phi2 being m -wff string of S such that A4: w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 ; w . 1 = (<*(TheNorSymbOf S)*> ^ (phi1 ^ phi2)) . 1 by A4, FINSEQ_1:32 .= TheNorSymbOf S by FINSEQ_1:41 ; hence ( w . 1 in LettersOf S or w . 1 = TheNorSymbOf S ) ; ::_thesis: verum end; end; end; registration let S be Language; let w be non 0wff wff string of S; cluster(S -firstChar) . w -> non relational for Element of S; coherence for b1 being Element of S st b1 = (S -firstChar) . w holds not b1 is relational proof set F = S -firstChar ; set L = LettersOf S; set N = TheNorSymbOf S; set SS = AllSymbolsOf S; percases ( w . 1 in LettersOf S or w . 1 = TheNorSymbOf S ) by Lm23; suppose w . 1 in LettersOf S ; ::_thesis: for b1 being Element of S st b1 = (S -firstChar) . w holds not b1 is relational then reconsider IT = (S -firstChar) . w as Element of LettersOf S by FOMODEL0:6; not IT is relational ; hence for b1 being Element of S st b1 = (S -firstChar) . w holds not b1 is relational ; ::_thesis: verum end; suppose w . 1 = TheNorSymbOf S ; ::_thesis: for b1 being Element of S st b1 = (S -firstChar) . w holds not b1 is relational hence for b1 being Element of S st b1 = (S -firstChar) . w holds not b1 is relational by FOMODEL0:6; ::_thesis: verum end; end; end; end; Lm24: for m being Nat for S being Language holds S -formulasOfMaxDepth m is S -prefix proof let m be Nat; ::_thesis: for S being Language holds S -formulasOfMaxDepth m is S -prefix let S be Language; ::_thesis: S -formulasOfMaxDepth m is S -prefix set SS = AllSymbolsOf S; set AF = AtomicFormulasOf S; set Nor = TheNorSymbOf S; set Phi0 = S -formulasOfMaxDepth 0; set F = S -firstChar ; defpred S1[ Nat] means S -formulasOfMaxDepth $1 is AllSymbolsOf S -prefix ; A1: S1[ 0 ] ; 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] set N = n + 1; set PhiN = S -formulasOfMaxDepth (n + 1); set Phin = S -formulasOfMaxDepth n; A4: (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) is AllSymbolsOf S -prefix proof now__::_thesis:_for_p1,_q1,_p2,_q2_being_AllSymbolsOf_S_-valued_FinSequence_st_p1_in_(S_-formulasOfMaxDepth_(n_+_1))_\_(S_-formulasOfMaxDepth_0)_&_p2_in_(S_-formulasOfMaxDepth_(n_+_1))_\_(S_-formulasOfMaxDepth_0)_&_p1_^_q1_=_p2_^_q2_holds_ (_p1_=_p2_&_q1_=_q2_) let p1, q1, p2, q2 be AllSymbolsOf S -valued FinSequence; ::_thesis: ( p1 in (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) & p2 in (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) & p1 ^ q1 = p2 ^ q2 implies ( b1 = b3 & b2 = b4 ) ) assume A5: p1 in (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) ; ::_thesis: ( p2 in (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) & p1 ^ q1 = p2 ^ q2 implies ( b1 = b3 & b2 = b4 ) ) then reconsider phi1 = p1 as n + 1 -wff string of S by Def24; consider m1 being Nat such that A6: ( phi1 is m1 + 1 -wff & not phi1 is m1 -wff & m1 + 1 <= n + 1 ) by Lm20, A5; assume A7: p2 in (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) ; ::_thesis: ( p1 ^ q1 = p2 ^ q2 implies ( b1 = b3 & b2 = b4 ) ) then reconsider phi2 = p2 as n + 1 -wff string of S by Def24; consider m2 being Nat such that A8: ( phi2 is m2 + 1 -wff & not phi2 is m2 -wff & m2 + 1 <= n + 1 ) by Lm20, A7; A9: ( m1 <= n & m2 <= n ) by A6, A8, XREAL_1:6; then consider k1 being Nat such that A10: n = m1 + k1 by NAT_1:10; consider k2 being Nat such that A11: n = m2 + k2 by A9, NAT_1:10; assume A12: p1 ^ q1 = p2 ^ q2 ; ::_thesis: ( b1 = b3 & b2 = b4 ) percases ( ex v1 being literal Element of S ex phi11 being m1 -wff string of S st phi1 = <*v1*> ^ phi11 or ex r1, s1 being m1 -wff string of S st phi1 = (<*(TheNorSymbOf S)*> ^ r1) ^ s1 ) by Lm21, A6; suppose ex v1 being literal Element of S ex phi11 being m1 -wff string of S st phi1 = <*v1*> ^ phi11 ; ::_thesis: ( b1 = b3 & b2 = b4 ) then consider v1 being literal Element of S, phi11 being m1 -wff string of S such that A13: phi1 = <*v1*> ^ phi11 ; percases ( ex v2 being literal Element of S ex phi22 being m2 -wff string of S st phi2 = <*v2*> ^ phi22 or ex r2, s2 being m2 -wff string of S st phi2 = (<*(TheNorSymbOf S)*> ^ r2) ^ s2 ) by Lm21, A8; suppose ex v2 being literal Element of S ex phi22 being m2 -wff string of S st phi2 = <*v2*> ^ phi22 ; ::_thesis: ( b1 = b3 & b2 = b4 ) then consider v2 being literal Element of S, phi22 being m2 -wff string of S such that A14: phi2 = <*v2*> ^ phi22 ; (<*v2*> ^ phi22) ^ q2 = <*v1*> ^ (phi11 ^ q1) by A14, A12, A13, FINSEQ_1:32; then A15: <*v2*> ^ (phi22 ^ q2) = <*v1*> ^ (phi11 ^ q1) by FINSEQ_1:32; then A16: (<*v2*> ^ (phi22 ^ q2)) . 1 = v1 by FINSEQ_1:41; then A17: v2 = v1 by FINSEQ_1:41; <*v1*> ^ (phi22 ^ q2) = <*v1*> ^ (phi11 ^ q1) by A15, A16, FINSEQ_1:41; then A18: phi22 ^ q2 = phi11 ^ q1 by FINSEQ_1:33; ( phi11 is m1 + (0 * k1) -wff & phi22 is m2 + (0 * k2) -wff ) ; then ( phi11 in S -formulasOfMaxDepth n & phi22 in S -formulasOfMaxDepth n ) by A10, A11, Def24; hence ( p1 = p2 & q1 = q2 ) by A13, A17, A14, A3, A18, FOMODEL0:def_20; ::_thesis: verum end; suppose ex r2, s2 being m2 -wff string of S st phi2 = (<*(TheNorSymbOf S)*> ^ r2) ^ s2 ; ::_thesis: ( b1 = b3 & b2 = b4 ) then consider r2, s2 being m2 -wff string of S such that A19: phi2 = (<*(TheNorSymbOf S)*> ^ r2) ^ s2 ; phi1 . 1 = (phi2 ^ q2) . 1 by A12, FOMODEL0:28 .= phi2 . 1 by FOMODEL0:28 .= (<*(TheNorSymbOf S)*> ^ (r2 ^ s2)) . 1 by A19, FINSEQ_1:32 .= TheNorSymbOf S by FINSEQ_1:41 ; hence ( p1 = p2 & q1 = q2 ) by A13, FINSEQ_1:41; ::_thesis: verum end; end; end; suppose ex r1, s1 being m1 -wff string of S st phi1 = (<*(TheNorSymbOf S)*> ^ r1) ^ s1 ; ::_thesis: ( b1 = b3 & b2 = b4 ) then consider r1, s1 being m1 -wff string of S such that A20: phi1 = (<*(TheNorSymbOf S)*> ^ r1) ^ s1 ; A21: phi1 . 1 = (<*(TheNorSymbOf S)*> ^ (r1 ^ s1)) . 1 by A20, FINSEQ_1:32 .= TheNorSymbOf S by FINSEQ_1:41 ; percases ( ex v2 being literal Element of S ex phi22 being m2 -wff string of S st phi2 = <*v2*> ^ phi22 or ex r2, s2 being m2 -wff string of S st phi2 = (<*(TheNorSymbOf S)*> ^ r2) ^ s2 ) by A8, Lm21; suppose ex v2 being literal Element of S ex phi22 being m2 -wff string of S st phi2 = <*v2*> ^ phi22 ; ::_thesis: ( b1 = b3 & b2 = b4 ) then consider v2 being literal Element of S, phi22 being m2 -wff string of S such that A22: phi2 = <*v2*> ^ phi22 ; phi1 . 1 = (phi2 ^ q2) . 1 by A12, FOMODEL0:28 .= (<*v2*> ^ phi22) . 1 by A22, FOMODEL0:28 .= v2 by FINSEQ_1:41 ; hence ( p1 = p2 & q1 = q2 ) by A21; ::_thesis: verum end; suppose ex r2, s2 being m2 -wff string of S st phi2 = (<*(TheNorSymbOf S)*> ^ r2) ^ s2 ; ::_thesis: ( b1 = b3 & b2 = b4 ) then consider r2, s2 being m2 -wff string of S such that A23: phi2 = (<*(TheNorSymbOf S)*> ^ r2) ^ s2 ; ( r1 is m1 + (0 * k1) -wff & r2 is m2 + (0 * k2) -wff ) ; then A24: ( r1 in S -formulasOfMaxDepth n & r2 in S -formulasOfMaxDepth n & s1 in S -formulasOfMaxDepth n & s2 in S -formulasOfMaxDepth n ) by A10, A11, Def24; <*(TheNorSymbOf S)*> ^ ((r1 ^ s1) ^ q1) = (<*(TheNorSymbOf S)*> ^ (r1 ^ s1)) ^ q1 by FINSEQ_1:32 .= ((<*(TheNorSymbOf S)*> ^ r2) ^ s2) ^ q2 by A20, A23, A12, FINSEQ_1:32 .= (<*(TheNorSymbOf S)*> ^ (r2 ^ s2)) ^ q2 by FINSEQ_1:32 .= <*(TheNorSymbOf S)*> ^ ((r2 ^ s2) ^ q2) by FINSEQ_1:32 ; then (r1 ^ s1) ^ q1 = (r2 ^ s2) ^ q2 by FINSEQ_1:33 .= r2 ^ (s2 ^ q2) by FINSEQ_1:32 ; then r1 ^ (s1 ^ q1) = r2 ^ (s2 ^ q2) by FINSEQ_1:32; then ( r1 = r2 & s1 ^ q1 = s2 ^ q2 ) by A3, A24, FOMODEL0:def_20; hence ( p1 = p2 & q1 = q2 ) by A20, A23, A3, A24, FOMODEL0:def_20; ::_thesis: verum end; end; end; end; end; hence (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) is AllSymbolsOf S -prefix by FOMODEL0:def_20; ::_thesis: verum end; now__::_thesis:_for_p1,_q1,_p2,_q2_being_AllSymbolsOf_S_-valued_FinSequence_st_p1_in_S_-formulasOfMaxDepth_(n_+_1)_&_p2_in_S_-formulasOfMaxDepth_(n_+_1)_&_p1_^_q1_=_p2_^_q2_holds_ (_p1_=_p2_&_q1_=_q2_) let p1, q1, p2, q2 be AllSymbolsOf S -valued FinSequence; ::_thesis: ( p1 in S -formulasOfMaxDepth (n + 1) & p2 in S -formulasOfMaxDepth (n + 1) & p1 ^ q1 = p2 ^ q2 implies ( b1 = b3 & b2 = b4 ) ) assume A25: ( p1 in S -formulasOfMaxDepth (n + 1) & p2 in S -formulasOfMaxDepth (n + 1) & p1 ^ q1 = p2 ^ q2 ) ; ::_thesis: ( b1 = b3 & b2 = b4 ) then reconsider phi1 = p1, phi2 = p2 as n + 1 -wff string of S by Def24; percases ( phi1 in S -formulasOfMaxDepth 0 or not phi1 in S -formulasOfMaxDepth 0 ) ; supposeA26: phi1 in S -formulasOfMaxDepth 0 ; ::_thesis: ( b1 = b3 & b2 = b4 ) then phi1 is 0 -wff by Def24; then reconsider phi11 = phi1 as 0wff string of S ; (S -firstChar) . phi11 is relational Element of S ; then phi1 . 1 is relational Element of S by FOMODEL0:6; then (phi2 ^ q2) . 1 is relational Element of S by A25, FOMODEL0:28; then phi2 . 1 is relational Element of S by FOMODEL0:28; then (S -firstChar) . phi2 is relational by FOMODEL0:6; then phi2 is 0wff ; then phi2 is 0 -wff ; then ( phi2 in S -formulasOfMaxDepth 0 & phi1 in S -formulasOfMaxDepth 0 ) by A26, Def24; hence ( p1 = p2 & q1 = q2 ) by A25, FOMODEL0:def_20; ::_thesis: verum end; supposeA27: not phi1 in S -formulasOfMaxDepth 0 ; ::_thesis: ( b1 = b3 & b2 = b4 ) then not phi1 is 0 -wff by Def24; then reconsider phi11 = phi1 as non 0wff wff string of S ; (S -firstChar) . phi2 = phi2 . 1 by FOMODEL0:6 .= (phi1 ^ q1) . 1 by A25, FOMODEL0:28 .= phi1 . 1 by FOMODEL0:28 .= (S -firstChar) . phi11 by FOMODEL0:6 ; then not phi2 is 0 -wff ; then not phi2 in S -formulasOfMaxDepth 0 by Def24; then ( phi1 in (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) & phi2 in (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) ) by A25, A27, XBOOLE_0:def_5; hence ( p1 = p2 & q1 = q2 ) by A25, A4, FOMODEL0:def_20; ::_thesis: verum end; end; end; hence S1[n + 1] by FOMODEL0:def_20; ::_thesis: verum end; for n being Nat holds S1[n] from NAT_1:sch_2(A1, A2); then S -formulasOfMaxDepth m is AllSymbolsOf S -prefix ; hence S -formulasOfMaxDepth m is S -prefix ; ::_thesis: verum end; registration let S be Language; let m be Nat; clusterS -formulasOfMaxDepth m -> S -prefix for set ; coherence for b1 being set st b1 = S -formulasOfMaxDepth m holds b1 is S -prefix by Lm24; end; definition let S be Language; :: original: AllFormulasOf redefine func AllFormulasOf S -> Subset of (((AllSymbolsOf S) *) \ {{}}); coherence AllFormulasOf S is Subset of (((AllSymbolsOf S) *) \ {{}}) proof set FF = AllFormulasOf S; set SS = AllSymbolsOf S; set IT = ((AllSymbolsOf S) *) \ {{}}; now__::_thesis:_for_x_being_set_st_x_in_AllFormulasOf_S_holds_ x_in_((AllSymbolsOf_S)_*)_\_{{}} let x be set ; ::_thesis: ( x in AllFormulasOf S implies x in ((AllSymbolsOf S) *) \ {{}} ) assume x in AllFormulasOf S ; ::_thesis: x in ((AllSymbolsOf S) *) \ {{}} then consider phi being string of S such that A1: ( x = phi & ex m being Nat st phi is m -wff ) ; thus x in ((AllSymbolsOf S) *) \ {{}} by A1; ::_thesis: verum end; hence AllFormulasOf S is Subset of (((AllSymbolsOf S) *) \ {{}}) by TARSKI:def_3; ::_thesis: verum end; end; registration let S be Language; cluster -> wff for Element of AllFormulasOf S; coherence for b1 being Element of AllFormulasOf S holds b1 is wff proof set FF = AllFormulasOf S; let x be Element of AllFormulasOf S; ::_thesis: x is wff x in AllFormulasOf S ; then consider phi being string of S such that A1: ( x = phi & ex m being Nat st phi is m -wff ) ; thus x is wff by A1; ::_thesis: verum end; end; Lm25: for S being Language holds AllFormulasOf S is S -prefix proof let S be Language; ::_thesis: AllFormulasOf S is S -prefix set FF = AllFormulasOf S; set SS = AllSymbolsOf S; now__::_thesis:_for_p1,_q1,_p2,_q2_being_AllSymbolsOf_S_-valued_FinSequence_st_p1_in_AllFormulasOf_S_&_p2_in_AllFormulasOf_S_&_p1_^_q1_=_p2_^_q2_holds_ (_p1_=_p2_&_q1_=_q2_) let p1, q1, p2, q2 be AllSymbolsOf S -valued FinSequence; ::_thesis: ( p1 in AllFormulasOf S & p2 in AllFormulasOf S & p1 ^ q1 = p2 ^ q2 implies ( p1 = p2 & q1 = q2 ) ) assume A1: ( p1 in AllFormulasOf S & p2 in AllFormulasOf S & p1 ^ q1 = p2 ^ q2 ) ; ::_thesis: ( p1 = p2 & q1 = q2 ) then reconsider phi1 = p1, phi2 = p2 as wff string of S ; consider m1 being Nat such that A2: phi1 is m1 -wff by Def25; consider m2 being Nat such that A3: phi2 is m2 -wff by Def25; set N = m1 + m2; set PhiN = S -formulasOfMaxDepth (m1 + m2); ( phi1 is m1 + (0 * m2) -wff & phi2 is m2 + (0 * m1) -wff ) by A2, A3; then reconsider phi11 = phi1, phi22 = phi2 as m1 + m2 -wff string of S ; ( phi11 in S -formulasOfMaxDepth (m1 + m2) & phi22 in S -formulasOfMaxDepth (m1 + m2) ) by Def24; hence ( p1 = p2 & q1 = q2 ) by A1, FOMODEL0:def_20; ::_thesis: verum end; then AllFormulasOf S is AllSymbolsOf S -prefix by FOMODEL0:def_20; hence AllFormulasOf S is S -prefix ; ::_thesis: verum end; registration let S be Language; cluster AllFormulasOf S -> S -prefix for set ; coherence for b1 being set st b1 = AllFormulasOf S holds b1 is S -prefix by Lm25; end; theorem :: FOMODEL2:11 for m being Nat for S being Language for U being non empty set holds dom (NorIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -NorFormulasOf S):] by Lm18; theorem :: FOMODEL2:12 for m being Nat for S being Language for U being non empty set holds dom (ExIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -ExFormulasOf S):] by Lm19; Lm26: for U being non empty set holds (U -deltaInterpreter) " {1} = (U -concatenation) .: (id (1 -tuples_on U)) proof let U be non empty set ; ::_thesis: (U -deltaInterpreter) " {1} = (U -concatenation) .: (id (1 -tuples_on U)) set d = U -deltaInterpreter ; set f = U -concatenation ; set U1 = 1 -tuples_on U; set U2 = 2 -tuples_on U; set A = (U -concatenation) .: (id (1 -tuples_on U)); set B = 2 -tuples_on U; A1: (U -deltaInterpreter) " {1} = ((U -concatenation) .: (id (1 -tuples_on U))) /\ ((1 + 1) -tuples_on U) by FOMODEL0:24 .= ((U -concatenation) .: (id (1 -tuples_on U))) /\ ((U -concatenation) .: [:(1 -tuples_on U),(1 -tuples_on U):]) by FOMODEL0:22 ; reconsider O = (U -concatenation) .: (id (1 -tuples_on U)) as Subset of ((U -concatenation) .: [:(1 -tuples_on U),(1 -tuples_on U):]) by RELAT_1:123; O /\ ((U -concatenation) .: [:(1 -tuples_on U),(1 -tuples_on U):]) = O null ((U -concatenation) .: [:(1 -tuples_on U),(1 -tuples_on U):]) .= O ; hence (U -deltaInterpreter) " {1} = (U -concatenation) .: (id (1 -tuples_on U)) by A1; ::_thesis: verum end; theorem Th13: :: FOMODEL2:13 for U being non empty set holds (U -deltaInterpreter) " {1} = { <*u,u*> where u is Element of U : verum } proof let U be non empty set ; ::_thesis: (U -deltaInterpreter) " {1} = { <*u,u*> where u is Element of U : verum } set RH = { <*u,u*> where u is Element of U : verum } ; set LH = (U -deltaInterpreter) " {1}; set X = (U -concatenation) .: (id (1 -tuples_on U)); ( (U -deltaInterpreter) " {1} = (U -concatenation) .: (id (1 -tuples_on U)) & (U -concatenation) .: (id (1 -tuples_on U)) = { <*u,u*> where u is Element of U : verum } ) by Lm26, FOMODEL0:38; hence (U -deltaInterpreter) " {1} = { <*u,u*> where u is Element of U : verum } ; ::_thesis: verum end; definition let S be Language; :: original: TheEqSymbOf redefine func TheEqSymbOf S -> Element of S; coherence TheEqSymbOf S is Element of S ; end; registration let S be Language; cluster(ar (TheEqSymbOf S)) + 2 -> zero for number ; coherence for b1 being number st b1 = (ar (TheEqSymbOf S)) + 2 holds b1 is empty proof set E = TheEqSymbOf S; ar (TheEqSymbOf S) = - 2 by FOMODEL1:def_23; hence for b1 being number st b1 = (ar (TheEqSymbOf S)) + 2 holds b1 is empty ; ::_thesis: verum end; cluster(abs (ar (TheEqSymbOf S))) - 2 -> zero for number ; coherence for b1 being number st b1 = (abs (ar (TheEqSymbOf S))) - 2 holds b1 is empty proof set E = TheEqSymbOf S; A1: abs (- 2) = - (- 2) by ABSVALUE:def_1 .= 2 ; abs (ar (TheEqSymbOf S)) = 2 by A1, FOMODEL1:def_23; hence for b1 being number st b1 = (abs (ar (TheEqSymbOf S))) - 2 holds b1 is empty ; ::_thesis: verum end; end; theorem Th14: :: FOMODEL2:14 for S being Language for U being non empty set for phi being 0wff string of S for I being b1,b2 -interpreter-like Function holds ( ( (S -firstChar) . phi <> TheEqSymbOf S implies I -AtomicEval phi = (I . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)) ) & ( (S -firstChar) . phi = TheEqSymbOf S implies I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms phi)) ) ) proof let S be Language; ::_thesis: for U being non empty set for phi being 0wff string of S for I being S,b1 -interpreter-like Function holds ( ( (S -firstChar) . phi <> TheEqSymbOf S implies I -AtomicEval phi = (I . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)) ) & ( (S -firstChar) . phi = TheEqSymbOf S implies I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms phi)) ) ) let U be non empty set ; ::_thesis: for phi being 0wff string of S for I being S,U -interpreter-like Function holds ( ( (S -firstChar) . phi <> TheEqSymbOf S implies I -AtomicEval phi = (I . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)) ) & ( (S -firstChar) . phi = TheEqSymbOf S implies I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms phi)) ) ) let phi be 0wff string of S; ::_thesis: for I being S,U -interpreter-like Function holds ( ( (S -firstChar) . phi <> TheEqSymbOf S implies I -AtomicEval phi = (I . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)) ) & ( (S -firstChar) . phi = TheEqSymbOf S implies I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms phi)) ) ) let I be S,U -interpreter-like Function; ::_thesis: ( ( (S -firstChar) . phi <> TheEqSymbOf S implies I -AtomicEval phi = (I . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)) ) & ( (S -firstChar) . phi = TheEqSymbOf S implies I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms 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 AF = AtomicFormulasOf S; set d = U -deltaInterpreter ; set p = SubTerms phi; set V = I -AtomicEval phi; set f = (I ===) . ((S -firstChar) . phi); set UV = I -TermEval ; set G = I . ((S -firstChar) . phi); A1: (abs (ar (TheEqSymbOf S))) - 2 = 0 ; thus ( (S -firstChar) . phi <> TheEqSymbOf S implies I -AtomicEval phi = (I . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)) ) ::_thesis: ( (S -firstChar) . phi = TheEqSymbOf S implies I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms phi)) ) proof assume (S -firstChar) . phi <> TheEqSymbOf S ; ::_thesis: I -AtomicEval phi = (I . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)) then not (S -firstChar) . phi in {(TheEqSymbOf S)} by TARSKI:def_1; then not (S -firstChar) . phi in dom ((TheEqSymbOf S) .--> (U -deltaInterpreter)) ; hence I -AtomicEval phi = (I . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)) by FUNCT_4:11; ::_thesis: verum end; assume (S -firstChar) . phi = TheEqSymbOf S ; ::_thesis: I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms phi)) then A2: ( (S -firstChar) . phi in {(TheEqSymbOf S)} & abs (ar ((S -firstChar) . phi)) = 2 ) by A1, TARSKI:def_1; then (S -firstChar) . phi in dom ((TheEqSymbOf S) .--> (U -deltaInterpreter)) by FUNCOP_1:13; then (I ===) . ((S -firstChar) . phi) = ((TheEqSymbOf S) .--> (U -deltaInterpreter)) . ((S -firstChar) . phi) by FUNCT_4:13 .= U -deltaInterpreter by A2, FUNCOP_1:7 ; hence I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms phi)) ; ::_thesis: verum end; theorem :: FOMODEL2:15 for S being Language for U being non empty set for I being b1,b2 -interpreter-like Function for phi being 0wff string of S st (S -firstChar) . phi = TheEqSymbOf S holds ( I -AtomicEval phi = 1 iff (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) ) proof let S be Language; ::_thesis: for U being non empty set for I being S,b1 -interpreter-like Function for phi being 0wff string of S st (S -firstChar) . phi = TheEqSymbOf S holds ( I -AtomicEval phi = 1 iff (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) ) let U be non empty set ; ::_thesis: for I being S,U -interpreter-like Function for phi being 0wff string of S st (S -firstChar) . phi = TheEqSymbOf S holds ( I -AtomicEval phi = 1 iff (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) ) let I be S,U -interpreter-like Function; ::_thesis: for phi being 0wff string of S st (S -firstChar) . phi = TheEqSymbOf S holds ( I -AtomicEval phi = 1 iff (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) ) let phi be 0wff string of S; ::_thesis: ( (S -firstChar) . phi = TheEqSymbOf S implies ( I -AtomicEval phi = 1 iff (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) ) ) set E = TheEqSymbOf S; set p = SubTerms phi; set F = S -firstChar ; set s = (S -firstChar) . phi; set UV = I -TermEval ; set V = I -AtomicEval phi; set d = U -deltaInterpreter ; set U2 = 2 -tuples_on U; set TT = AllTermsOf S; set D = { <*u,u*> where u is Element of U : verum } ; set n = abs (ar ((S -firstChar) . phi)); A1: 2 -tuples_on U = { <*u1,u2*> where u1, u2 is Element of U : verum } by FINSEQ_2:99; A2: (abs (ar (TheEqSymbOf S))) - 2 = 0 ; reconsider r = (S -firstChar) . phi as relational Element of S ; set f = (I ===) . r; reconsider EE = TheEqSymbOf S as relational Element of S ; assume A3: (S -firstChar) . phi = TheEqSymbOf S ; ::_thesis: ( I -AtomicEval phi = 1 iff (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) ) then ( I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms phi)) & abs (ar ((S -firstChar) . phi)) = 2 ) by Th14, A2; then ( I -AtomicEval phi = 1 iff (I -TermEval) * (SubTerms phi) in (U -deltaInterpreter) " {1} ) by FOMODEL0:25; then A4: ( I -AtomicEval phi = 1 iff (I -TermEval) * (SubTerms phi) in { <*u,u*> where u is Element of U : verum } ) by Th13; reconsider pp = SubTerms phi as 2 -element FinSequence of AllTermsOf S by A3, A2, FINSEQ_1:def_11; reconsider q = (I -TermEval) * pp as FinSequence of U ; reconsider qq = q as Element of 2 -tuples_on U by FOMODEL0:16; qq in 2 -tuples_on U ; then consider u1, u2 being Element of U such that A5: qq = <*u1,u2*> by A1; A6: ( qq . 1 = u1 & qq . 2 = u2 ) by A5, FINSEQ_1:44; 1 <= 2 ; then ( 1 <= 1 & 1 <= len q & 1 <= 2 & 2 <= len q ) by CARD_1:def_7; then ( 1 in Seg (len q) & 2 in Seg (len q) ) ; then ( 1 in dom q & 2 in dom q ) by FINSEQ_1:def_3; then A7: ( q . 1 = (I -TermEval) . ((SubTerms phi) . 1) & q . 2 = (I -TermEval) . ((SubTerms phi) . 2) ) by FUNCT_1:12; ( q in { <*u,u*> where u is Element of U : verum } implies (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) ) proof assume q in { <*u,u*> where u is Element of U : verum } ; ::_thesis: (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) then consider u being Element of U such that A8: <*u,u*> = q ; ( q . 1 = u & q . 2 = u ) by A8, FINSEQ_1:44; hence (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) by A7; ::_thesis: verum end; hence ( I -AtomicEval phi = 1 iff (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) ) by A4, A7, A5, A6; ::_thesis: verum end; registration let S be Language; let m be Nat; clusterm -ExFormulasOf S -> non empty for set ; coherence for b1 being set st b1 = m -ExFormulasOf S holds not b1 is empty proof set IT = m -ExFormulasOf S; set L = LettersOf S; set Phim = S -formulasOfMaxDepth m; set l = the Element of LettersOf S; set phi = the Element of S -formulasOfMaxDepth m; set x = <* the Element of LettersOf S*> ^ the Element of S -formulasOfMaxDepth m; <* the Element of LettersOf S*> ^ the Element of S -formulasOfMaxDepth m in m -ExFormulasOf S ; hence for b1 being set st b1 = m -ExFormulasOf S holds not b1 is empty ; ::_thesis: verum end; end; registration let S be Language; let m be Nat; clusterm -NorFormulasOf S -> non empty for set ; coherence for b1 being set st b1 = m -NorFormulasOf S holds not b1 is empty proof set IT = m -NorFormulasOf S; set Phim = S -formulasOfMaxDepth m; set N = TheNorSymbOf S; set phi1 = the Element of S -formulasOfMaxDepth m; set phi2 = the Element of S -formulasOfMaxDepth m; (<*(TheNorSymbOf S)*> ^ the Element of S -formulasOfMaxDepth m) ^ the Element of S -formulasOfMaxDepth m in m -NorFormulasOf S ; hence for b1 being set st b1 = m -NorFormulasOf S holds not b1 is empty ; ::_thesis: verum end; end; definition let S be Language; let m be Nat; :: original: -NorFormulasOf redefine funcm -NorFormulasOf S -> Subset of (((AllSymbolsOf S) *) \ {{}}); coherence m -NorFormulasOf S is Subset of (((AllSymbolsOf S) *) \ {{}}) proof set IT = m -NorFormulasOf S; set Phim = S -formulasOfMaxDepth m; set N = TheNorSymbOf S; set SS = AllSymbolsOf S; now__::_thesis:_for_x_being_set_st_x_in_m_-NorFormulasOf_S_holds_ x_in_((AllSymbolsOf_S)_*)_\_{{}} let x be set ; ::_thesis: ( x in m -NorFormulasOf S implies x in ((AllSymbolsOf S) *) \ {{}} ) assume x in m -NorFormulasOf S ; ::_thesis: x in ((AllSymbolsOf S) *) \ {{}} then consider phi1, phi2 being Element of S -formulasOfMaxDepth m such that A1: x = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 ; thus x in ((AllSymbolsOf S) *) \ {{}} by A1; ::_thesis: verum end; hence m -NorFormulasOf S is Subset of (((AllSymbolsOf S) *) \ {{}}) by TARSKI:def_3; ::_thesis: verum end; end; registration let S be Language; let w be exal string of S; cluster(S -firstChar) . w -> literal for Element of S; coherence for b1 being Element of S st b1 = (S -firstChar) . w holds b1 is literal by Def32; end; registration let S be Language; let m be Nat; cluster -> non exal for Element of m -NorFormulasOf S; coherence for b1 being Element of m -NorFormulasOf S holds not b1 is exal proof set IT = m -NorFormulasOf S; set Phim = S -formulasOfMaxDepth m; set F = S -firstChar ; set N = TheNorSymbOf S; set SS = AllSymbolsOf S; let x be Element of m -NorFormulasOf S; ::_thesis: not x is exal x in m -NorFormulasOf S ; then consider phi1, phi2 being Element of S -formulasOfMaxDepth m such that A1: x = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 ; reconsider phi = x as string of S ; (S -firstChar) . phi = phi . 1 by FOMODEL0:6 .= (<*(TheNorSymbOf S)*> ^ (phi1 ^ phi2)) . 1 by A1, FINSEQ_1:32 .= TheNorSymbOf S by FINSEQ_1:41 ; hence not x is exal ; ::_thesis: verum end; end; Lm27: for m being Nat for S being Language for phi being wff string of S st Depth phi = m + 1 & phi is exal holds phi in m -ExFormulasOf S proof let m be Nat; ::_thesis: for S being Language for phi being wff string of S st Depth phi = m + 1 & phi is exal holds phi in m -ExFormulasOf S let S be Language; ::_thesis: for phi being wff string of S st Depth phi = m + 1 & phi is exal holds phi in m -ExFormulasOf S let phi be wff string of S; ::_thesis: ( Depth phi = m + 1 & phi is exal implies phi in m -ExFormulasOf S ) set p = Depth phi; set Phim = S -formulasOfMaxDepth m; set E = m -ExFormulasOf S; set PhiM = S -formulasOfMaxDepth (m + 1); set N = m -NorFormulasOf S; A1: (S -formulasOfMaxDepth (m + 1)) \ (S -formulasOfMaxDepth m) = (((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m)) \ (S -formulasOfMaxDepth m) by Th9 .= ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \ (S -formulasOfMaxDepth m) by XBOOLE_1:40 ; assume Depth phi = m + 1 ; ::_thesis: ( not phi is exal or phi in m -ExFormulasOf S ) then ( phi is m + 1 -wff & not phi is m -wff ) by Def31; then ( phi in S -formulasOfMaxDepth (m + 1) & not phi in S -formulasOfMaxDepth m ) by Def24; then A3: phi in (S -formulasOfMaxDepth (m + 1)) \ (S -formulasOfMaxDepth m) by XBOOLE_0:def_5; assume phi is exal ; ::_thesis: phi in m -ExFormulasOf S then not phi in m -NorFormulasOf S ; hence phi in m -ExFormulasOf S by A3, A1, XBOOLE_0:def_3; ::_thesis: verum end; Lm28: for S being Language for l being literal Element of S for phi1 being wff string of S holds Depth (<*l*> ^ phi1) > Depth phi1 proof let S be Language; ::_thesis: for l being literal Element of S for phi1 being wff string of S holds Depth (<*l*> ^ phi1) > Depth phi1 let l be literal Element of S; ::_thesis: for phi1 being wff string of S holds Depth (<*l*> ^ phi1) > Depth phi1 let phi1 be wff string of S; ::_thesis: Depth (<*l*> ^ phi1) > Depth phi1 set nor = TheNorSymbOf S; set phi = <*l*> ^ phi1; set m = Depth phi1; set M = Depth (<*l*> ^ phi1); set L = LettersOf S; consider n being Nat such that A1: Depth (<*l*> ^ phi1) = n + 1 by NAT_1:6; set Phin = S -formulasOfMaxDepth n; <*l*> ^ phi1 in n -ExFormulasOf S by Lm27, A1; then consider v being Element of LettersOf S, psi being Element of S -formulasOfMaxDepth n such that A2: <*l*> ^ phi1 = <*v*> ^ psi ; Depth phi1 <= n by Def31; then (Depth phi1) + 0 < n + 1 by XREAL_1:8; hence Depth (<*l*> ^ phi1) > Depth phi1 by A1; ::_thesis: verum end; definition let S be Language; let m be Nat; :: original: -ExFormulasOf redefine funcm -ExFormulasOf S -> Subset of (((AllSymbolsOf S) *) \ {{}}); coherence m -ExFormulasOf S is Subset of (((AllSymbolsOf S) *) \ {{}}) proof set IT = m -ExFormulasOf S; set SS = AllSymbolsOf S; set Phim = S -formulasOfMaxDepth m; set L = LettersOf S; now__::_thesis:_for_x_being_set_st_x_in_m_-ExFormulasOf_S_holds_ x_in_((AllSymbolsOf_S)_*)_\_{{}} let x be set ; ::_thesis: ( x in m -ExFormulasOf S implies x in ((AllSymbolsOf S) *) \ {{}} ) assume x in m -ExFormulasOf S ; ::_thesis: x in ((AllSymbolsOf S) *) \ {{}} then consider l being Element of LettersOf S, phi being Element of S -formulasOfMaxDepth m such that A1: x = <*l*> ^ phi ; thus x in ((AllSymbolsOf S) *) \ {{}} by A1; ::_thesis: verum end; hence m -ExFormulasOf S is Subset of (((AllSymbolsOf S) *) \ {{}}) by TARSKI:def_3; ::_thesis: verum end; end; registration let S be Language; let m be Nat; cluster -> exal for Element of m -ExFormulasOf S; coherence for b1 being Element of m -ExFormulasOf S holds b1 is exal proof set E = m -ExFormulasOf S; set L = LettersOf S; set Phim = S -formulasOfMaxDepth m; let x be Element of m -ExFormulasOf S; ::_thesis: x is exal x in m -ExFormulasOf S ; then consider l being Element of LettersOf S, phi being Element of S -formulasOfMaxDepth m such that A1: x = <*l*> ^ phi ; thus x is exal by A1; ::_thesis: verum end; end; Lm29: for m being Nat for S being Language for phi being wff string of S st Depth phi = m + 1 & not phi is exal holds phi in m -NorFormulasOf S proof let m be Nat; ::_thesis: for S being Language for phi being wff string of S st Depth phi = m + 1 & not phi is exal holds phi in m -NorFormulasOf S let S be Language; ::_thesis: for phi being wff string of S st Depth phi = m + 1 & not phi is exal holds phi in m -NorFormulasOf S let phi be wff string of S; ::_thesis: ( Depth phi = m + 1 & not phi is exal implies phi in m -NorFormulasOf S ) set p = Depth phi; set Phim = S -formulasOfMaxDepth m; set E = m -ExFormulasOf S; set PhiM = S -formulasOfMaxDepth (m + 1); set N = m -NorFormulasOf S; A1: (S -formulasOfMaxDepth (m + 1)) \ (S -formulasOfMaxDepth m) = (((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m)) \ (S -formulasOfMaxDepth m) by Th9 .= ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \ (S -formulasOfMaxDepth m) by XBOOLE_1:40 ; assume Depth phi = m + 1 ; ::_thesis: ( phi is exal or phi in m -NorFormulasOf S ) then ( phi is m + 1 -wff & not phi is m -wff ) by Def31; then ( phi in S -formulasOfMaxDepth (m + 1) & not phi in S -formulasOfMaxDepth m ) by Def24; then A3: phi in (S -formulasOfMaxDepth (m + 1)) \ (S -formulasOfMaxDepth m) by XBOOLE_0:def_5; assume not phi is exal ; ::_thesis: phi in m -NorFormulasOf S then not phi in m -ExFormulasOf S ; hence phi in m -NorFormulasOf S by A1, A3, XBOOLE_0:def_3; ::_thesis: verum end; registration let S be Language; cluster non literal for Element of AllSymbolsOf S; existence not for b1 being Element of S holds b1 is literal proof take TheNorSymbOf S ; ::_thesis: not TheNorSymbOf S is literal thus not TheNorSymbOf S is literal ; ::_thesis: verum end; end; registration let S be Language; let w be string of S; let s be non literal Element of S; cluster<*s*> ^ w -> non exal for string of S; coherence for b1 being string of S st b1 = <*s*> ^ w holds not b1 is exal proof set IT = <*s*> ^ w; set F = S -firstChar ; set SS = AllSymbolsOf S; (S -firstChar) . (<*s*> ^ w) = (<*s*> ^ w) . 1 by FOMODEL0:6 .= s by FINSEQ_1:41 ; hence for b1 being string of S st b1 = <*s*> ^ w holds not b1 is exal ; ::_thesis: verum end; end; registration let S be Language; let w1, w2 be string of S; let s be non literal Element of S; cluster(<*s*> ^ w1) ^ w2 -> non exal for string of S; coherence for b1 being string of S st b1 = (<*s*> ^ w1) ^ w2 holds not b1 is exal proof (<*s*> ^ w1) ^ w2 = <*s*> ^ (w1 ^ w2) by FINSEQ_1:32; hence for b1 being string of S st b1 = (<*s*> ^ w1) ^ w2 holds not b1 is exal ; ::_thesis: verum end; end; registration let S be Language; cluster TheNorSymbOf S -> non literal for Element of S; coherence for b1 being Element of S st b1 = TheNorSymbOf S holds not b1 is literal ; end; theorem Th16: :: FOMODEL2:16 for S being Language for phi being wff string of S holds phi in AllFormulasOf S proof let S be Language; ::_thesis: for phi being wff string of S holds phi in AllFormulasOf S let phi be wff string of S; ::_thesis: phi in AllFormulasOf S set AF = AllFormulasOf S; consider m being Nat such that A1: phi is m -wff by Def25; thus phi in AllFormulasOf S by A1; ::_thesis: verum end; Lm30: for S being Language for phi1, phi2 being wff string of S holds ( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi1 & Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi2 ) proof let S be Language; ::_thesis: for phi1, phi2 being wff string of S holds ( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi1 & Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi2 ) let phi1, phi2 be wff string of S; ::_thesis: ( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi1 & Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi2 ) set nor = TheNorSymbOf S; set phi = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2; set m1 = Depth phi1; set m2 = Depth phi2; set M = Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2); set L = LettersOf S; set FF = AllFormulasOf S; set SS = AllSymbolsOf S; consider n being Nat such that A1: Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = n + 1 by NAT_1:6; set Phin = S -formulasOfMaxDepth n; (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 in n -NorFormulasOf S by Lm29, A1; then consider phi11, phi22 being Element of S -formulasOfMaxDepth n such that A2: (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 = (<*(TheNorSymbOf S)*> ^ phi11) ^ phi22 ; reconsider phi111 = phi11, phi222 = phi22 as n -wff string of S by Def24; <*(TheNorSymbOf S)*> ^ (phi1 ^ phi2) = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 by FINSEQ_1:32 .= <*(TheNorSymbOf S)*> ^ (phi11 ^ phi22) by A2, FINSEQ_1:32 ; then A3: phi1 ^ phi2 = phi111 ^ phi222 by FINSEQ_1:33; ( Depth phi1 <= n & Depth phi2 <= n ) by Def31; then ( (Depth phi1) + 0 < n + 1 & (Depth phi2) + 0 < n + 1 ) by XREAL_1:8; hence ( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi1 & Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi2 ) by A1; ::_thesis: verum end; Lm31: for S being Language for phi1, phi2 being wff string of S holds Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = (max ((Depth phi1),(Depth phi2))) + 1 proof let S be Language; ::_thesis: for phi1, phi2 being wff string of S holds Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = (max ((Depth phi1),(Depth phi2))) + 1 let phi1, phi2 be wff string of S; ::_thesis: Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = (max ((Depth phi1),(Depth phi2))) + 1 set nor = TheNorSymbOf S; set phi = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2; set m1 = Depth phi1; set m2 = Depth phi2; set m = max ((Depth phi1),(Depth phi2)); set M = Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2); ( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) <= Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) & Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi1 & Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi2 ) by Lm30; then Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > max ((Depth phi1),(Depth phi2)) by XXREAL_0:def_10; then A1: (max ((Depth phi1),(Depth phi2))) + 1 <= Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) by NAT_1:13; reconsider d1 = (max ((Depth phi1),(Depth phi2))) - (Depth phi1), d2 = (max ((Depth phi1),(Depth phi2))) - (Depth phi2) as Nat ; ( phi1 is (Depth phi1) + (0 * d1) -wff & phi2 is (Depth phi2) + (0 * d2) -wff ) by Def31; then ( phi1 is (Depth phi1) + d1 -wff & phi2 is (Depth phi2) + d2 -wff ) ; then reconsider phi11 = phi1, phi22 = phi2 as max ((Depth phi1),(Depth phi2)) -wff string of S ; thus Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = (max ((Depth phi1),(Depth phi2))) + 1 by Def31; ::_thesis: verum end; notation let S be Language; let m be Nat; let w be string of S; antonym m -nonwff w for m -wff ; end; registration let m be Nat; let S be Language; cluster non m -wff -> m -nonwff for Element of ((AllSymbolsOf S) *) \ {{}}; coherence for b1 being string of S st not b1 is m -wff holds b1 is m -nonwff ; end; registration let S be Language; let phi1, phi2 be wff string of S; cluster(<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 -> max ((Depth phi1),(Depth phi2)) -nonwff for string of S; coherence for b1 being string of S st b1 = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 holds not b1 is max ((Depth phi1),(Depth phi2)) -wff proof set nor = TheNorSymbOf S; set phi = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2; set m1 = Depth phi1; set m2 = Depth phi2; set m = Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2); set M = max ((Depth phi1),(Depth phi2)); Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = (max ((Depth phi1),(Depth phi2))) + 1 by Lm31; then Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > (max ((Depth phi1),(Depth phi2))) + 0 by XREAL_1:8; hence for b1 being string of S st b1 = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 holds not b1 is max ((Depth phi1),(Depth phi2)) -wff by Def31; ::_thesis: verum end; end; registration let S be Language; let phi be wff string of S; let l be literal Element of S; cluster<*l*> ^ phi -> Depth phi -nonwff for string of S; coherence for b1 being string of S st b1 = <*l*> ^ phi holds not b1 is Depth phi -wff proof set m = Depth phi; set psi = <*l*> ^ phi; set M = Depth (<*l*> ^ phi); Depth phi < Depth (<*l*> ^ phi) by Lm28; hence for b1 being string of S st b1 = <*l*> ^ phi holds not b1 is Depth phi -wff by Def31; ::_thesis: verum end; end; registration let S be Language; let phi be wff string of S; let l be literal Element of S; cluster<*l*> ^ phi -> 1 + (Depth phi) -wff for string of S; coherence for b1 being string of S st b1 = <*l*> ^ phi holds b1 is 1 + (Depth phi) -wff proof set m = Depth phi; set psi = <*l*> ^ phi; set M = Depth (<*l*> ^ phi); reconsider phii = phi as Depth phi -wff string of S by Def31; <*l*> ^ phii is (Depth phi) + 1 -wff ; hence for b1 being string of S st b1 = <*l*> ^ phi holds b1 is 1 + (Depth phi) -wff ; ::_thesis: verum end; end; Lm32: for S being Language for U being non empty set for I being Relation st I in U -InterpretersOf S holds dom I = OwnSymbolsOf S proof let S be Language; ::_thesis: for U being non empty set for I being Relation st I in U -InterpretersOf S holds dom I = OwnSymbolsOf S let U be non empty set ; ::_thesis: for I being Relation st I in U -InterpretersOf S holds dom I = OwnSymbolsOf S set O = OwnSymbolsOf S; set II = U -InterpretersOf S; let I be Relation; ::_thesis: ( I in U -InterpretersOf S implies dom I = OwnSymbolsOf S ) assume I in U -InterpretersOf S ; ::_thesis: dom I = OwnSymbolsOf S then consider f being Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) such that A1: ( I = f & f is S,U -interpreter-like ) ; reconsider ff = f as Function of (OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN))) ; thus dom I = OwnSymbolsOf S by A1, FUNCT_2:def_1; ::_thesis: verum end; registration let S be Language; let U be non empty set ; cluster -> OwnSymbolsOf S -defined for Element of U -InterpretersOf S; coherence for b1 being Element of U -InterpretersOf S holds b1 is OwnSymbolsOf S -defined proof set O = OwnSymbolsOf S; set II = U -InterpretersOf S; let I be Element of U -InterpretersOf S; ::_thesis: I is OwnSymbolsOf S -defined dom I c= OwnSymbolsOf S by Lm32; hence I is OwnSymbolsOf S -defined by RELAT_1:def_18; ::_thesis: verum end; end; registration let S be Language; let U be non empty set ; cluster Relation-like OwnSymbolsOf S -defined Function-like Function-yielding V164() S,U -interpreter-like for Element of U -InterpretersOf S; existence ex b1 being Element of U -InterpretersOf S st b1 is OwnSymbolsOf S -defined proof set O = OwnSymbolsOf S; set II = U -InterpretersOf S; set I = the Element of U -InterpretersOf S; take the Element of U -InterpretersOf S ; ::_thesis: the Element of U -InterpretersOf S is OwnSymbolsOf S -defined thus the Element of U -InterpretersOf S is OwnSymbolsOf S -defined ; ::_thesis: verum end; end; registration let S be Language; let U be non empty set ; cluster OwnSymbolsOf S -defined -> OwnSymbolsOf S -defined total for Element of U -InterpretersOf S; coherence for b1 being OwnSymbolsOf S -defined Element of U -InterpretersOf S holds b1 is total proof set O = OwnSymbolsOf S; set II = U -InterpretersOf S; let I be OwnSymbolsOf S -defined Element of U -InterpretersOf S; ::_thesis: I is total dom I = OwnSymbolsOf S by Lm32; hence I is total by PARTFUN1:def_2; ::_thesis: verum end; end; definition let S be Language; let U be non empty set ; let I be Element of U -InterpretersOf S; let x be literal Element of S; let u be Element of U; :: original: ReassignIn redefine func(x,u) ReassignIn I -> Element of U -InterpretersOf S; coherence (x,u) ReassignIn I is Element of U -InterpretersOf S proof set II = U -InterpretersOf S; set IT = (x,u) ReassignIn I; set O = OwnSymbolsOf S; set new = {{}} --> u; set g = x .--> ({{}} --> u); reconsider xx = x as own Element of S ; xx in OwnSymbolsOf S by FOMODEL1:def_19; then ( {x} c= OwnSymbolsOf S & dom (x .--> ({{}} --> u)) = {x} ) by FUNCOP_1:13, ZFMISC_1:31; then reconsider G = dom (x .--> ({{}} --> u)) as Subset of (OwnSymbolsOf S) ; dom ((x,u) ReassignIn I) = (dom I) \/ G by FUNCT_4:def_1 .= (OwnSymbolsOf S) \/ G by PARTFUN1:def_2 .= OwnSymbolsOf S ; then reconsider ITT = (x,u) ReassignIn I as OwnSymbolsOf S -defined Function by RELAT_1:def_18; ITT | (OwnSymbolsOf S) = ITT ; hence (x,u) ReassignIn I is Element of U -InterpretersOf S by Th2; ::_thesis: verum end; end; Lm33: for m being Nat for S being Language for w being string of S for U being non empty set for I being Element of U -InterpretersOf S st w is m -wff holds ((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . [I,w] proof let m be Nat; ::_thesis: for S being Language for w being string of S for U being non empty set for I being Element of U -InterpretersOf S st w is m -wff holds ((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . [I,w] let S be Language; ::_thesis: for w being string of S for U being non empty set for I being Element of U -InterpretersOf S st w is m -wff holds ((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . [I,w] let w be string of S; ::_thesis: for U being non empty set for I being Element of U -InterpretersOf S st w is m -wff holds ((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . [I,w] let U be non empty set ; ::_thesis: for I being Element of U -InterpretersOf S st w is m -wff holds ((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . [I,w] set II = U -InterpretersOf S; let I be Element of U -InterpretersOf S; ::_thesis: ( w is m -wff implies ((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . [I,w] ) set g = (I,m) -TruthEval ; set f = (S,U) -TruthEval m; set Phim = S -formulasOfMaxDepth m; (S,U) -TruthEval m is Element of Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) by Th8; then reconsider ff = (S,U) -TruthEval m as Function of [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN ; A1: dom ff = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] by FUNCT_2:def_1; assume w is m -wff ; ::_thesis: ((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . [I,w] then w in S -formulasOfMaxDepth m by Def24; then ( [I,w] in dom ((S,U) -TruthEval m) & (I,m) -TruthEval = (curry ((S,U) -TruthEval m)) . I ) by A1, ZFMISC_1:87; then ( w in dom ((I,m) -TruthEval) & ((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . (I,w) ) by FUNCT_5:20; hence ((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . [I,w] ; ::_thesis: verum end; Lm34: for m being Nat for S being Language for U being non empty set for l being literal Element of S for phi1 being wff string of S for I being Element of U -InterpretersOf S for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds ( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE ) proof let m be Nat; ::_thesis: for S being Language for U being non empty set for l being literal Element of S for phi1 being wff string of S for I being Element of U -InterpretersOf S for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds ( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE ) let S be Language; ::_thesis: for U being non empty set for l being literal Element of S for phi1 being wff string of S for I being Element of U -InterpretersOf S for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds ( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE ) let U be non empty set ; ::_thesis: for l being literal Element of S for phi1 being wff string of S for I being Element of U -InterpretersOf S for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds ( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE ) let l be literal Element of S; ::_thesis: for phi1 being wff string of S for I being Element of U -InterpretersOf S for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds ( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE ) let phi1 be wff string of S; ::_thesis: for I being Element of U -InterpretersOf S for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds ( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE ) let I be Element of U -InterpretersOf S; ::_thesis: for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds ( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE ) set II = U -InterpretersOf S; set SS = AllSymbolsOf S; set N = TheNorSymbOf S; set psi = <*l*> ^ phi1; set FF = AllFormulasOf S; set Phim = S -formulasOfMaxDepth m; let f be PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN; ::_thesis: ( dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff implies ( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE ) ) assume ( dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff ) ; ::_thesis: ( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE ) set LH = f -ExFunctor (I,(<*l*> ^ phi1)); reconsider psii = <*l*> ^ phi1, phi11 = phi1 as FinSequence of AllSymbolsOf S by FOMODEL0:26; A1: (<*l*> ^ phi11) /^ 1 = phi11 by FINSEQ_6:45; hereby ::_thesis: ( ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE implies f -ExFunctor (I,(<*l*> ^ phi1)) = 1 ) assume f -ExFunctor (I,(<*l*> ^ phi1)) = 1 ; ::_thesis: ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE then consider u being Element of U, v being literal Element of S such that A2: ( (<*l*> ^ phi1) . 1 = v & f . (((v,u) ReassignIn I),((<*l*> ^ phi1) /^ 1)) = TRUE ) by Def16; take u = u; ::_thesis: f . (((l,u) ReassignIn I),phi1) = TRUE thus f . (((l,u) ReassignIn I),phi1) = TRUE by A2, A1, FINSEQ_1:41; ::_thesis: verum end; given u being Element of U such that A3: f . (((l,u) ReassignIn I),phi1) = TRUE ; ::_thesis: f -ExFunctor (I,(<*l*> ^ phi1)) = 1 ex u1 being Element of U ex l1 being literal Element of S st ( psii . 1 = l1 & f . (((l1,u1) ReassignIn I),(psii /^ 1)) = TRUE ) by A1, A3, FINSEQ_1:41; hence f -ExFunctor (I,(<*l*> ^ phi1)) = 1 by Def16; ::_thesis: verum end; Lm35: for S being Language for U being non empty set for l being literal Element of S for phi being wff string of S for I being Element of U -InterpretersOf S holds ( I -TruthEval (<*l*> ^ phi) = TRUE iff ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 ) proof let S be Language; ::_thesis: for U being non empty set for l being literal Element of S for phi being wff string of S for I being Element of U -InterpretersOf S holds ( I -TruthEval (<*l*> ^ phi) = TRUE iff ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 ) let U be non empty set ; ::_thesis: for l being literal Element of S for phi being wff string of S for I being Element of U -InterpretersOf S holds ( I -TruthEval (<*l*> ^ phi) = TRUE iff ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 ) let l be literal Element of S; ::_thesis: for phi being wff string of S for I being Element of U -InterpretersOf S holds ( I -TruthEval (<*l*> ^ phi) = TRUE iff ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 ) let phi be wff string of S; ::_thesis: for I being Element of U -InterpretersOf S holds ( I -TruthEval (<*l*> ^ phi) = TRUE iff ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 ) let I be Element of U -InterpretersOf S; ::_thesis: ( I -TruthEval (<*l*> ^ phi) = TRUE iff ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 ) set Nor = TheNorSymbOf S; set II = U -InterpretersOf S; set SS = AllSymbolsOf S; set D = PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN); set m = Depth phi; set M = (Depth phi) + 1; set L = LettersOf S; reconsider phii = phi as Depth phi -wff string of S by Def31; reconsider psi = <*l*> ^ phi as (Depth phi) + 1 -wff string of S ; deffunc H1( Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) -> PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN = ExIterator $1; deffunc H2( Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) -> PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN = NorIterator $1; set F = (S,U) -TruthEval ; reconsider mm = Depth phi, MM = (Depth phi) + 1 as Element of NAT by ORDINAL1:def_12; set Phim = S -formulasOfMaxDepth (Depth phi); set PhiM = S -formulasOfMaxDepth ((Depth phi) + 1); reconsider phiii = phii as Element of S -formulasOfMaxDepth (Depth phi) by Def24; reconsider ll = l as Element of LettersOf S by FOMODEL1:def_14; set FM = (S,U) -TruthEval ((Depth phi) + 1); set Fm = (S,U) -TruthEval (Depth phi); set mNF = (Depth phi) -NorFormulasOf S; set mEF = (Depth phi) -ExFormulasOf S; psi = <*ll*> ^ phiii ; then ( psi in (Depth phi) -ExFormulasOf S & not psi in (Depth phi) -NorFormulasOf S ) ; then ( [I,psi] in [:(U -InterpretersOf S),((Depth phi) -ExFormulasOf S):] & not [I,psi] in [:(U -InterpretersOf S),((Depth phi) -NorFormulasOf S):] ) by ZFMISC_1:87; then A1: ( [I,psi] in dom (ExIterator ((S,U) -TruthEval (Depth phi))) & not [I,psi] in dom (NorIterator ((S,U) -TruthEval (Depth phi))) ) by Lm18, Lm19; A2: ((S,U) -TruthEval) . MM = ((ExIterator (((S,U) -TruthEval) . mm)) +* (NorIterator (((S,U) -TruthEval) . mm))) +* (((S,U) -TruthEval) . mm) by Def20; (S,U) -TruthEval (Depth phi) is Element of Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth (Depth phi)):],BOOLEAN) by Th8; then reconsider Fmm = (S,U) -TruthEval (Depth phi) as Function of [:(U -InterpretersOf S),(S -formulasOfMaxDepth (Depth phi)):],BOOLEAN ; A3: not [I,psi] in dom (((S,U) -TruthEval) . mm) proof A4: not psi in S -formulasOfMaxDepth (Depth phi) by Def24; dom (((S,U) -TruthEval) . mm) = dom Fmm by Def21 .= [:(U -InterpretersOf S),(S -formulasOfMaxDepth (Depth phi)):] by FUNCT_2:def_1 ; hence not [I,psi] in dom (((S,U) -TruthEval) . mm) by A4, ZFMISC_1:87; ::_thesis: verum end; A5: dom Fmm = [:(U -InterpretersOf S),(S -formulasOfMaxDepth (Depth phi)):] by FUNCT_2:def_1; A6: I -TruthEval psi = ((I,((Depth phi) + 1)) -TruthEval) . psi by Def26 .= ((S,U) -TruthEval ((Depth phi) + 1)) . [I,psi] by Lm33 .= (((S,U) -TruthEval) . MM) . [I,psi] by Def21 .= ((ExIterator (((S,U) -TruthEval) . mm)) +* (NorIterator (((S,U) -TruthEval) . mm))) . [I,psi] by A2, A3, FUNCT_4:11 .= ((ExIterator (((S,U) -TruthEval) . mm)) +* (NorIterator ((S,U) -TruthEval (Depth phi)))) . [I,psi] by Def21 .= (ExIterator (((S,U) -TruthEval) . mm)) . [I,psi] by A1, FUNCT_4:11 .= H1((S,U) -TruthEval (Depth phi)) . (I,psi) by Def21 .= ((S,U) -TruthEval (Depth phi)) -ExFunctor (I,psi) by A1, Def17 ; A7: ( ex u being Element of U st ((S,U) -TruthEval (Depth phi)) . (((l,u) ReassignIn I),phii) = TRUE implies ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phii = TRUE ) proof given u being Element of U such that A8: ((S,U) -TruthEval (Depth phi)) . (((l,u) ReassignIn I),phii) = TRUE ; ::_thesis: ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phii = TRUE take u ; ::_thesis: ((l,u) ReassignIn I) -TruthEval phii = TRUE set J = (l,u) ReassignIn I; ((((l,u) ReassignIn I),(Depth phi)) -TruthEval) . phii = TRUE by A8, Lm33; hence ((l,u) ReassignIn I) -TruthEval phii = TRUE by Def26; ::_thesis: verum end; ( ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phii = TRUE implies ex u being Element of U st ((S,U) -TruthEval (Depth phi)) . (((l,u) ReassignIn I),phii) = TRUE ) proof given u being Element of U such that A9: ((l,u) ReassignIn I) -TruthEval phii = TRUE ; ::_thesis: ex u being Element of U st ((S,U) -TruthEval (Depth phi)) . (((l,u) ReassignIn I),phii) = TRUE take u ; ::_thesis: ((S,U) -TruthEval (Depth phi)) . (((l,u) ReassignIn I),phii) = TRUE set J = (l,u) ReassignIn I; ((((l,u) ReassignIn I),(Depth phi)) -TruthEval) . phii = TRUE by A9, Def26; hence ((S,U) -TruthEval (Depth phi)) . (((l,u) ReassignIn I),phii) = TRUE by Lm33; ::_thesis: verum end; hence ( I -TruthEval (<*l*> ^ phi) = TRUE iff ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 ) by A6, A5, Lm34, A7; ::_thesis: verum end; Lm36: for m being Nat for S being Language for w2 being string of S for U being non empty set for phi1 being wff string of S for I being Element of U -InterpretersOf S for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds ( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) ) proof let m be Nat; ::_thesis: for S being Language for w2 being string of S for U being non empty set for phi1 being wff string of S for I being Element of U -InterpretersOf S for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds ( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) ) let S be Language; ::_thesis: for w2 being string of S for U being non empty set for phi1 being wff string of S for I being Element of U -InterpretersOf S for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds ( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) ) let w2 be string of S; ::_thesis: for U being non empty set for phi1 being wff string of S for I being Element of U -InterpretersOf S for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds ( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) ) let U be non empty set ; ::_thesis: for phi1 being wff string of S for I being Element of U -InterpretersOf S for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds ( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) ) let phi1 be wff string of S; ::_thesis: for I being Element of U -InterpretersOf S for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds ( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) ) let I be Element of U -InterpretersOf S; ::_thesis: for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds ( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) ) set II = U -InterpretersOf S; set SS = AllSymbolsOf S; set N = TheNorSymbOf S; set phi2 = w2; set psi = (<*(TheNorSymbOf S)*> ^ phi1) ^ w2; set FF = AllFormulasOf S; set Phim = S -formulasOfMaxDepth m; let f be PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN; ::_thesis: ( dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff implies ( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) ) ) assume A1: ( dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff ) ; ::_thesis: ( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) ) then phi1 in S -formulasOfMaxDepth m by Def24; then A2: [I,phi1] in dom f by A1, ZFMISC_1:87; set LH = f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)); set RH1 = f . (I,phi1); set RH2 = f . (I,w2); hereby ::_thesis: ( f . (I,phi1) = 0 & f . (I,w2) = 0 implies f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 ) assume f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 ; ::_thesis: ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) then consider w, w1 being string of S such that A3: ( [I,w] in dom f & f . (I,w) = FALSE & f . (I,w1) = FALSE & (<*(TheNorSymbOf S)*> ^ phi1) ^ w2 = (<*(TheNorSymbOf S)*> ^ w) ^ w1 ) by Def18; A4: ( w in S -formulasOfMaxDepth m & phi1 in S -formulasOfMaxDepth m ) by A1, A3, Def24, ZFMISC_1:87; <*(TheNorSymbOf S)*> ^ (w ^ w1) = (<*(TheNorSymbOf S)*> ^ phi1) ^ w2 by A3, FINSEQ_1:32 .= <*(TheNorSymbOf S)*> ^ (phi1 ^ w2) by FINSEQ_1:32 ; then w ^ w1 = phi1 ^ w2 by FINSEQ_1:33; hence ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) by A3, A4, FOMODEL0:def_20; ::_thesis: verum end; assume ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) ; ::_thesis: f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 hence f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 by A2, Def18; ::_thesis: verum end; Lm37: for S being Language for U being non empty set for phi1, phi2 being wff string of S for I being Element of U -InterpretersOf S holds ( I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = TRUE iff ( I -TruthEval phi1 = FALSE & I -TruthEval phi2 = FALSE ) ) proof let S be Language; ::_thesis: for U being non empty set for phi1, phi2 being wff string of S for I being Element of U -InterpretersOf S holds ( I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = TRUE iff ( I -TruthEval phi1 = FALSE & I -TruthEval phi2 = FALSE ) ) let U be non empty set ; ::_thesis: for phi1, phi2 being wff string of S for I being Element of U -InterpretersOf S holds ( I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = TRUE iff ( I -TruthEval phi1 = FALSE & I -TruthEval phi2 = FALSE ) ) let phi1, phi2 be wff string of S; ::_thesis: for I being Element of U -InterpretersOf S holds ( I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = TRUE iff ( I -TruthEval phi1 = FALSE & I -TruthEval phi2 = FALSE ) ) let I be Element of U -InterpretersOf S; ::_thesis: ( I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = TRUE iff ( I -TruthEval phi1 = FALSE & I -TruthEval phi2 = FALSE ) ) set Nor = TheNorSymbOf S; set II = U -InterpretersOf S; set SS = AllSymbolsOf S; set B = BOOLEAN ; set D = PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN); set m1 = Depth phi1; set m2 = Depth phi2; deffunc H1( Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) -> PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN = ExIterator $1; deffunc H2( Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) -> PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN = NorIterator $1; set F = (S,U) -TruthEval ; set m = max ((Depth phi1),(Depth phi2)); set M = (max ((Depth phi1),(Depth phi2))) + 1; reconsider d1 = (max ((Depth phi1),(Depth phi2))) - (Depth phi1), d2 = (max ((Depth phi1),(Depth phi2))) - (Depth phi2) as Nat ; ( phi1 is (Depth phi1) + (0 * d1) -wff & phi2 is (Depth phi2) + (0 * d2) -wff ) by Def31; then ( phi1 is (Depth phi1) + d1 -wff & phi2 is (Depth phi2) + d2 -wff ) ; then reconsider phi11 = phi1, phi22 = phi2 as max ((Depth phi1),(Depth phi2)) -wff string of S ; reconsider phi = (<*(TheNorSymbOf S)*> ^ phi11) ^ phi22 as (max ((Depth phi1),(Depth phi2))) + 1 -wff string of S ; reconsider mm = max ((Depth phi1),(Depth phi2)), MM = (max ((Depth phi1),(Depth phi2))) + 1 as Element of NAT by ORDINAL1:def_12; set Phim = S -formulasOfMaxDepth (max ((Depth phi1),(Depth phi2))); set PhiM = S -formulasOfMaxDepth ((max ((Depth phi1),(Depth phi2))) + 1); set FM = (S,U) -TruthEval ((max ((Depth phi1),(Depth phi2))) + 1); set Fm = (S,U) -TruthEval (max ((Depth phi1),(Depth phi2))); set mNF = (max ((Depth phi1),(Depth phi2))) -NorFormulasOf S; A1: I -TruthEval phi1 = ((I,(max ((Depth phi1),(Depth phi2)))) -TruthEval) . phi11 by Def26 .= ((S,U) -TruthEval (max ((Depth phi1),(Depth phi2)))) . (I,phi1) by Lm33 ; A2: I -TruthEval phi22 = ((I,(max ((Depth phi1),(Depth phi2)))) -TruthEval) . phi22 by Def26 .= ((S,U) -TruthEval (max ((Depth phi1),(Depth phi2)))) . (I,phi2) by Lm33 ; reconsider phi111 = phi11, phi222 = phi22 as Element of S -formulasOfMaxDepth (max ((Depth phi1),(Depth phi2))) by Def24; phi = (<*(TheNorSymbOf S)*> ^ phi111) ^ phi222 ; then phi in (max ((Depth phi1),(Depth phi2))) -NorFormulasOf S ; then [I,phi] in [:(U -InterpretersOf S),((max ((Depth phi1),(Depth phi2))) -NorFormulasOf S):] by ZFMISC_1:87; then A3: [I,phi] in dom (NorIterator ((S,U) -TruthEval (max ((Depth phi1),(Depth phi2))))) by Lm18; A4: ((S,U) -TruthEval) . MM = ((ExIterator (((S,U) -TruthEval) . mm)) +* (NorIterator (((S,U) -TruthEval) . mm))) +* (((S,U) -TruthEval) . mm) by Def20; (S,U) -TruthEval (max ((Depth phi1),(Depth phi2))) is Element of Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth (max ((Depth phi1),(Depth phi2)))):],BOOLEAN) by Th8; then reconsider Fmm = (S,U) -TruthEval (max ((Depth phi1),(Depth phi2))) as Function of [:(U -InterpretersOf S),(S -formulasOfMaxDepth (max ((Depth phi1),(Depth phi2)))):],BOOLEAN ; A5: not [I,phi] in dom (((S,U) -TruthEval) . mm) proof A6: not phi in S -formulasOfMaxDepth (max ((Depth phi1),(Depth phi2))) by Def24; dom (((S,U) -TruthEval) . mm) = dom Fmm by Def21 .= [:(U -InterpretersOf S),(S -formulasOfMaxDepth (max ((Depth phi1),(Depth phi2)))):] by FUNCT_2:def_1 ; hence not [I,phi] in dom (((S,U) -TruthEval) . mm) by A6, ZFMISC_1:87; ::_thesis: verum end; A7: dom Fmm = [:(U -InterpretersOf S),(S -formulasOfMaxDepth (max ((Depth phi1),(Depth phi2)))):] by FUNCT_2:def_1; I -TruthEval phi = ((I,((max ((Depth phi1),(Depth phi2))) + 1)) -TruthEval) . phi by Def26 .= ((S,U) -TruthEval ((max ((Depth phi1),(Depth phi2))) + 1)) . [I,phi] by Lm33 .= (((S,U) -TruthEval) . MM) . [I,phi] by Def21 .= ((ExIterator (((S,U) -TruthEval) . mm)) +* (NorIterator (((S,U) -TruthEval) . mm))) . [I,phi] by A4, A5, FUNCT_4:11 .= ((ExIterator (((S,U) -TruthEval) . mm)) +* (NorIterator ((S,U) -TruthEval (max ((Depth phi1),(Depth phi2)))))) . [I,phi] by Def21 .= H2((S,U) -TruthEval (max ((Depth phi1),(Depth phi2)))) . (I,phi) by A3, FUNCT_4:13 .= ((S,U) -TruthEval (max ((Depth phi1),(Depth phi2)))) -NorFunctor (I,phi) by A3, Def19 ; hence ( I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = TRUE iff ( I -TruthEval phi1 = FALSE & I -TruthEval phi2 = FALSE ) ) by A7, Lm36, A2, A1; ::_thesis: verum end; definition let S be Language; let w be string of S; func xnot w -> string of S equals :: FOMODEL2:def 33 (<*(TheNorSymbOf S)*> ^ w) ^ w; coherence (<*(TheNorSymbOf S)*> ^ w) ^ w is string of S ; end; :: deftheorem defines xnot FOMODEL2:def_33_:_ for S being Language for w being string of S holds xnot w = (<*(TheNorSymbOf S)*> ^ w) ^ w; registration let S be Language; let m be Nat; let phi be m -wff string of S; cluster xnot phi -> m + 1 -wff for string of S; coherence for b1 being string of S st b1 = xnot phi holds b1 is m + 1 -wff ; end; registration let S be Language; let phi be wff string of S; cluster xnot phi -> wff for string of S; coherence for b1 being string of S st b1 = xnot phi holds b1 is wff ; end; registration let S be Language; cluster TheEqSymbOf S -> non own for Element of S; coherence for b1 being Element of S st b1 = TheEqSymbOf S holds not b1 is own proof set E = TheEqSymbOf S; set R = RelSymbolsOf S; set O = OwnSymbolsOf S; TheEqSymbOf S in {(TheEqSymbOf S)} by TARSKI:def_1; then TheEqSymbOf S in (RelSymbolsOf S) \ (OwnSymbolsOf S) by FOMODEL1:1; then not TheEqSymbOf S in OwnSymbolsOf S by XBOOLE_0:def_5; hence for b1 being Element of S st b1 = TheEqSymbOf S holds not b1 is own by FOMODEL1:def_19; ::_thesis: verum end; end; definition let S be Language; let X be set ; attrX is S -mincover means :Def34: :: FOMODEL2:def 34 for phi being wff string of S holds ( phi in X iff not xnot phi in X ); end; :: deftheorem Def34 defines -mincover FOMODEL2:def_34_:_ for S being Language for X being set holds ( X is S -mincover iff for phi being wff string of S holds ( phi in X iff not xnot phi in X ) ); theorem Th17: :: FOMODEL2:17 for S being Language for l being literal Element of S for phi1, phi2 being wff string of S holds ( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = 1 + (max ((Depth phi1),(Depth phi2))) & Depth (<*l*> ^ phi1) = (Depth phi1) + 1 ) proof let S be Language; ::_thesis: for l being literal Element of S for phi1, phi2 being wff string of S holds ( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = 1 + (max ((Depth phi1),(Depth phi2))) & Depth (<*l*> ^ phi1) = (Depth phi1) + 1 ) let l be literal Element of S; ::_thesis: for phi1, phi2 being wff string of S holds ( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = 1 + (max ((Depth phi1),(Depth phi2))) & Depth (<*l*> ^ phi1) = (Depth phi1) + 1 ) let phi1, phi2 be wff string of S; ::_thesis: ( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = 1 + (max ((Depth phi1),(Depth phi2))) & Depth (<*l*> ^ phi1) = (Depth phi1) + 1 ) set N = TheNorSymbOf S; set m1 = Depth phi1; set m2 = Depth phi2; set e = <*l*> ^ phi1; set n = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2; thus Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = 1 + (max ((Depth phi1),(Depth phi2))) by Lm31; ::_thesis: Depth (<*l*> ^ phi1) = (Depth phi1) + 1 thus Depth (<*l*> ^ phi1) = (Depth phi1) + 1 by Def31; ::_thesis: verum end; theorem :: FOMODEL2:18 for m being Nat for S being Language for phi being wff string of S st Depth phi = m + 1 holds ( ( phi is exal implies phi in m -ExFormulasOf S ) & ( phi in m -ExFormulasOf S implies phi is exal ) & ( not phi is exal implies phi in m -NorFormulasOf S ) & ( phi in m -NorFormulasOf S implies not phi is exal ) ) by Lm27, Lm29; theorem :: FOMODEL2:19 for S being Language for U being non empty set for l being literal Element of S for phi, phi1, phi2 being wff string of S for I being Element of U -InterpretersOf S holds ( ( I -TruthEval (<*l*> ^ phi) = TRUE implies ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 ) & ( ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 implies I -TruthEval (<*l*> ^ phi) = TRUE ) & ( I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = TRUE implies ( I -TruthEval phi1 = FALSE & I -TruthEval phi2 = FALSE ) ) & ( I -TruthEval phi1 = FALSE & I -TruthEval phi2 = FALSE implies I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = TRUE ) ) by Lm35, Lm37; theorem Th20: :: FOMODEL2:20 for m being Nat for S being Language for U being non empty set for u being Element of U for I being b2,b3 -interpreter-like Function holds (((I,u) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = (I -TermEval) | ((S -termsOfMaxDepth) . m) proof let m be Nat; ::_thesis: for S being Language for U being non empty set for u being Element of U for I being b1,b2 -interpreter-like Function holds (((I,u) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = (I -TermEval) | ((S -termsOfMaxDepth) . m) let S be Language; ::_thesis: for U being non empty set for u being Element of U for I being S,b1 -interpreter-like Function holds (((I,u) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = (I -TermEval) | ((S -termsOfMaxDepth) . m) let U be non empty set ; ::_thesis: for u being Element of U for I being S,U -interpreter-like Function holds (((I,u) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = (I -TermEval) | ((S -termsOfMaxDepth) . m) let u be Element of U; ::_thesis: for I being S,U -interpreter-like Function holds (((I,u) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = (I -TermEval) | ((S -termsOfMaxDepth) . m) let I be S,U -interpreter-like Function; ::_thesis: (((I,u) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = (I -TermEval) | ((S -termsOfMaxDepth) . m) reconsider mm = m, MM = m + 1 as Element of NAT by ORDINAL1:def_12; set T = S -termsOfMaxDepth ; set TI = I -TermEval ; set TII = (I,u) -TermEval ; set TT = AllTermsOf S; reconsider IM = ((I,u) -TermEval) . MM as Function of (AllTermsOf S),U ; reconsider Tm = (S -termsOfMaxDepth) . mm, TM = (S -termsOfMaxDepth) . MM as Subset of (AllTermsOf S) by FOMODEL1:2; set LH = IM | Tm; set RH = (I -TermEval) | Tm; A1: ( dom (IM | Tm) = Tm & dom ((I -TermEval) | Tm) = Tm ) by PARTFUN1:def_2; now__::_thesis:_for_x_being_set_st_x_in_dom_(IM_|_Tm)_holds_ (IM_|_Tm)_._x_=_((I_-TermEval)_|_Tm)_._x let x be set ; ::_thesis: ( x in dom (IM | Tm) implies (IM | Tm) . x = ((I -TermEval) | Tm) . x ) assume A2: x in dom (IM | Tm) ; ::_thesis: (IM | Tm) . x = ((I -TermEval) | Tm) . x then x in dom IM by RELAT_1:57; then reconsider tt = x as Element of AllTermsOf S ; reconsider ttt = x as Element of Tm by A2; ( ((IM | Tm) . ttt) \+\ (IM . ttt) = {} & (((I -TermEval) | Tm) . ttt) \+\ ((I -TermEval) . ttt) = {} ) ; then A3: ( (IM | Tm) . x = IM . tt & ((I -TermEval) | Tm) . x = (I -TermEval) . x ) by FOMODEL0:29; then (IM | Tm) . x = I -TermEval tt by A2, Def9 .= ((I -TermEval) | Tm) . x by A3, Def10 ; hence (IM | Tm) . x = ((I -TermEval) | Tm) . x ; ::_thesis: verum end; hence (((I,u) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = (I -TermEval) | ((S -termsOfMaxDepth) . m) by A1, FUNCT_1:2; ::_thesis: verum end; theorem Th21: :: FOMODEL2:21 for S being Language for U being non empty set for t being termal string of S for I being b1,b2 -interpreter-like Function holds (I -TermEval) . t = (I . ((S -firstChar) . t)) . ((I -TermEval) * (SubTerms t)) proof let S be Language; ::_thesis: for U being non empty set for t being termal string of S for I being S,b1 -interpreter-like Function holds (I -TermEval) . t = (I . ((S -firstChar) . t)) . ((I -TermEval) * (SubTerms t)) let U be non empty set ; ::_thesis: for t being termal string of S for I being S,U -interpreter-like Function holds (I -TermEval) . t = (I . ((S -firstChar) . t)) . ((I -TermEval) * (SubTerms t)) let t be termal string of S; ::_thesis: for I being S,U -interpreter-like Function holds (I -TermEval) . t = (I . ((S -firstChar) . t)) . ((I -TermEval) * (SubTerms t)) let I be S,U -interpreter-like Function; ::_thesis: (I -TermEval) . t = (I . ((S -firstChar) . t)) . ((I -TermEval) * (SubTerms t)) set u = the Element of U; set TI = I -TermEval ; set TII = (I, the Element of U) -TermEval ; set TT = AllTermsOf S; set F = S -firstChar ; set s = (S -firstChar) . t; set m = Depth t; set T = S -termsOfMaxDepth ; set ST = SubTerms t; reconsider mm = Depth t, MM = (Depth t) + 1 as Element of NAT by ORDINAL1:def_12; A1: t is (Depth t) + (0 * 1) -termal by FOMODEL1:def_40; reconsider tm = t as Depth t -termal string of S by FOMODEL1:def_40; reconsider tM = t as mm + 1 -termal string of S by A1; reconsider Tm = (S -termsOfMaxDepth) . mm, TM = (S -termsOfMaxDepth) . MM as Subset of (AllTermsOf S) by FOMODEL1:2; reconsider ttt = tm as Element of (S -termsOfMaxDepth) . mm by FOMODEL1:def_33; reconsider tt = t as Element of AllTermsOf S by FOMODEL1:def_32; set V = I -TermEval tt; reconsider IM = ((I, the Element of U) -TermEval) . MM as Function of (AllTermsOf S),U ; SubTerms tM is Tm -valued ; then A2: ( dom ((I -TermEval) | Tm) = Tm & dom (IM | Tm) = Tm & rng (SubTerms t) c= Tm ) by PARTFUN1:def_2, RELAT_1:def_19; (I -TermEval) . t = I -TermEval tt by Def10 .= (((I, the Element of U) -TermEval) . MM) . ttt by Def9 .= (((I, the Element of U) -TermEval) . (((Depth t) + 1) + 1)) . tm by Lm6 .= (I . ((S -firstChar) . t)) . ((((I, the Element of U) -TermEval) . MM) * (SubTerms t)) by Th3 .= (I . ((S -firstChar) . t)) . (((((I, the Element of U) -TermEval) . MM) | Tm) * (SubTerms t)) by A2, RELAT_1:165 .= (I . ((S -firstChar) . t)) . (((I -TermEval) | Tm) * (SubTerms t)) by Th20 .= (I . ((S -firstChar) . t)) . ((I -TermEval) * (SubTerms t)) by A2, RELAT_1:165 ; hence (I -TermEval) . t = (I . ((S -firstChar) . t)) . ((I -TermEval) * (SubTerms t)) ; ::_thesis: verum end; definition let S be Language; let phi be wff string of S; set F = S -firstChar ; set d = Depth phi; set s = (S -firstChar) . phi; set L = LettersOf S; set N = TheNorSymbOf S; set FF = AllFormulasOf S; set SS = AllSymbolsOf S; defpred S1[ set ] means ex phi1 being wff string of S ex p being FinSequence st ( p is AllSymbolsOf S -valued & $1 = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ); func SubWffsOf phi -> set means :Def35: :: FOMODEL2:def 35 ex phi1 being wff string of S ex p being FinSequence st ( p is AllSymbolsOf S -valued & it = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) if not phi is 0wff otherwise it = [phi,{}]; existence ( ( not phi is 0wff implies ex b1 being set ex phi1 being wff string of S ex p being FinSequence st ( p is AllSymbolsOf S -valued & b1 = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) ) & ( phi is 0wff implies ex b1 being set st b1 = [phi,{}] ) ) proof thus ( not phi is 0wff implies ex IT being set st S1[IT] ) ::_thesis: ( phi is 0wff implies ex b1 being set st b1 = [phi,{}] ) proof assume not phi is 0wff ; ::_thesis: ex IT being set st S1[IT] then consider m being Nat such that A1: Depth phi = m + 1 by NAT_1:6; percases ( phi is exal or not phi is exal ) ; suppose phi is exal ; ::_thesis: ex IT being set st S1[IT] then phi in m -ExFormulasOf S by A1, Lm27; then consider ll being Element of LettersOf S, phi0 being Element of S -formulasOfMaxDepth m such that A2: phi = <*ll*> ^ phi0 ; A3: ll = phi . 1 by A2, FINSEQ_1:41 .= (S -firstChar) . phi by FOMODEL0:6 ; reconsider l = ll as literal Element of S ; reconsider phi1 = phi0 as m -wff string of S by Def24; take IT = [phi1,{}]; ::_thesis: S1[IT] take phi1 ; ::_thesis: ex p being FinSequence st ( p is AllSymbolsOf S -valued & IT = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) take p = {} null (AllSymbolsOf S); ::_thesis: ( p is AllSymbolsOf S -valued & IT = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) thus p is AllSymbolsOf S -valued ; ::_thesis: ( IT = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) thus IT = [phi1,p] ; ::_thesis: phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p thus phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p by A2, A3; ::_thesis: verum end; suppose not phi is exal ; ::_thesis: ex IT being set st S1[IT] then phi in m -NorFormulasOf S by A1, Lm29; then consider phi0, psi0 being Element of S -formulasOfMaxDepth m such that A4: phi = (<*(TheNorSymbOf S)*> ^ phi0) ^ psi0 ; A5: (S -firstChar) . phi = phi . 1 by FOMODEL0:6 .= (<*(TheNorSymbOf S)*> ^ (phi0 ^ psi0)) . 1 by A4, FINSEQ_1:32 .= TheNorSymbOf S by FINSEQ_1:41 ; reconsider phi1 = phi0, psi1 = psi0 as m -wff string of S by Def24; take IT = [phi1,psi0]; ::_thesis: S1[IT] take phi1 ; ::_thesis: ex p being FinSequence st ( p is AllSymbolsOf S -valued & IT = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) take p = psi1; ::_thesis: ( p is AllSymbolsOf S -valued & IT = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) thus p is AllSymbolsOf S -valued ; ::_thesis: ( IT = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) thus IT = [phi1,p] ; ::_thesis: phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p thus phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p by A4, A5; ::_thesis: verum end; end; end; assume phi is 0wff ; ::_thesis: ex b1 being set st b1 = [phi,{}] take IT = [phi,{}]; ::_thesis: IT = [phi,{}] thus IT = [phi,{}] ; ::_thesis: verum end; uniqueness for b1, b2 being set holds ( ( not phi is 0wff & ex phi1 being wff string of S ex p being FinSequence st ( p is AllSymbolsOf S -valued & b1 = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) & ex phi1 being wff string of S ex p being FinSequence st ( p is AllSymbolsOf S -valued & b2 = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) implies b1 = b2 ) & ( phi is 0wff & b1 = [phi,{}] & b2 = [phi,{}] implies b1 = b2 ) ) proof let IT1, IT2 be set ; ::_thesis: ( ( not phi is 0wff & ex phi1 being wff string of S ex p being FinSequence st ( p is AllSymbolsOf S -valued & IT1 = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) & ex phi1 being wff string of S ex p being FinSequence st ( p is AllSymbolsOf S -valued & IT2 = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) implies IT1 = IT2 ) & ( phi is 0wff & IT1 = [phi,{}] & IT2 = [phi,{}] implies IT1 = IT2 ) ) thus ( not phi is 0wff & S1[IT1] & S1[IT2] implies IT1 = IT2 ) ::_thesis: ( phi is 0wff & IT1 = [phi,{}] & IT2 = [phi,{}] implies IT1 = IT2 ) proof assume not phi is 0wff ; ::_thesis: ( not S1[IT1] or not S1[IT2] or IT1 = IT2 ) then reconsider phi = phi as non 0wff string of S ; assume A6: ( S1[IT1] & S1[IT2] ) ; ::_thesis: IT1 = IT2 consider phi1 being wff string of S, p1 being FinSequence such that A7: ( p1 is AllSymbolsOf S -valued & IT1 = [phi1,p1] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p1 ) by A6; consider phi2 being wff string of S, p2 being FinSequence such that A8: ( p2 is AllSymbolsOf S -valued & IT2 = [phi2,p2] & phi = (<*((S -firstChar) . phi)*> ^ phi2) ^ p2 ) by A6; reconsider q1 = p1, q2 = p2 as AllSymbolsOf S -valued FinSequence by A7, A8; <*((S -firstChar) . phi)*> ^ (phi1 ^ p1) = phi by A7, FINSEQ_1:32 .= <*((S -firstChar) . phi)*> ^ (phi2 ^ p2) by A8, FINSEQ_1:32 ; then ( phi1 ^ q1 = phi2 ^ q2 & phi1 in AllFormulasOf S & phi2 in AllFormulasOf S ) by Th16, FINSEQ_1:33; then ( phi1 = phi2 & q1 = q2 ) by FOMODEL0:def_20; hence IT1 = IT2 by A7, A8; ::_thesis: verum end; thus ( phi is 0wff & IT1 = [phi,{}] & IT2 = [phi,{}] implies IT1 = IT2 ) ; ::_thesis: verum end; consistency for b1 being set holds verum ; end; :: deftheorem Def35 defines SubWffsOf FOMODEL2:def_35_:_ for S being Language for phi being wff string of S for b3 being set holds ( ( not phi is 0wff implies ( b3 = SubWffsOf phi iff ex phi1 being wff string of S ex p being FinSequence st ( p is AllSymbolsOf S -valued & b3 = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) ) ) & ( phi is 0wff implies ( b3 = SubWffsOf phi iff b3 = [phi,{}] ) ) ); definition let S be Language; let phi be wff string of S; set IT = SubWffsOf phi; set SS = AllSymbolsOf S; set F = S -firstChar ; func head phi -> wff string of S equals :: FOMODEL2:def 36 (SubWffsOf phi) `1 ; coherence (SubWffsOf phi) `1 is wff string of S proof percases ( not phi is 0wff or phi is 0wff ) ; suppose not phi is 0wff ; ::_thesis: (SubWffsOf phi) `1 is wff string of S then consider phi1 being wff string of S, p being FinSequence such that A1: ( p is AllSymbolsOf S -valued & SubWffsOf phi = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) by Def35; ((SubWffsOf phi) `1) \+\ phi1 = {} by A1; hence (SubWffsOf phi) `1 is wff string of S by FOMODEL0:29; ::_thesis: verum end; suppose phi is 0wff ; ::_thesis: (SubWffsOf phi) `1 is wff string of S then SubWffsOf phi = [phi,{}] by Def35; then ((SubWffsOf phi) `1) \+\ phi = {} ; hence (SubWffsOf phi) `1 is wff string of S by FOMODEL0:29; ::_thesis: verum end; end; end; func tail phi -> Element of (AllSymbolsOf S) * equals :: FOMODEL2:def 37 (SubWffsOf phi) `2 ; coherence (SubWffsOf phi) `2 is Element of (AllSymbolsOf S) * proof percases ( not phi is 0wff or phi is 0wff ) ; suppose not phi is 0wff ; ::_thesis: (SubWffsOf phi) `2 is Element of (AllSymbolsOf S) * then consider phi1 being wff string of S, p being FinSequence such that A2: ( p is AllSymbolsOf S -valued & SubWffsOf phi = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) by Def35; ((SubWffsOf phi) `2) \+\ p = {} by A2; then ( (SubWffsOf phi) `2 = p & p is FinSequence of AllSymbolsOf S ) by A2, FOMODEL0:26, FOMODEL0:29; hence (SubWffsOf phi) `2 is Element of (AllSymbolsOf S) * by FINSEQ_1:def_11; ::_thesis: verum end; suppose phi is 0wff ; ::_thesis: (SubWffsOf phi) `2 is Element of (AllSymbolsOf S) * then SubWffsOf phi = [phi,{}] by Def35; then ((SubWffsOf phi) `2) \+\ {} = {} null (AllSymbolsOf S) ; then reconsider ITT = (SubWffsOf phi) `2 as AllSymbolsOf S -valued FinSequence ; ITT is FinSequence of AllSymbolsOf S by FOMODEL0:26; hence (SubWffsOf phi) `2 is Element of (AllSymbolsOf S) * by FINSEQ_1:def_11; ::_thesis: verum end; end; end; end; :: deftheorem defines head FOMODEL2:def_36_:_ for S being Language for phi being wff string of S holds head phi = (SubWffsOf phi) `1 ; :: deftheorem defines tail FOMODEL2:def_37_:_ for S being Language for phi being wff string of S holds tail phi = (SubWffsOf phi) `2 ; registration let S be Language; let m be Nat; cluster(S -formulasOfMaxDepth m) \ (AllFormulasOf S) -> empty for set ; coherence for b1 being set st b1 = (S -formulasOfMaxDepth m) \ (AllFormulasOf S) holds b1 is empty proof set Fm = S -formulasOfMaxDepth m; set FF = AllFormulasOf S; now__::_thesis:_for_x_being_set_st_x_in_S_-formulasOfMaxDepth_m_holds_ x_in_AllFormulasOf_S let x be set ; ::_thesis: ( x in S -formulasOfMaxDepth m implies x in AllFormulasOf S ) assume x in S -formulasOfMaxDepth m ; ::_thesis: x in AllFormulasOf S then reconsider phi = x as m -wff string of S by Def24; phi in AllFormulasOf S ; hence x in AllFormulasOf S ; ::_thesis: verum end; then S -formulasOfMaxDepth m c= AllFormulasOf S by TARSKI:def_3; hence for b1 being set st b1 = (S -formulasOfMaxDepth m) \ (AllFormulasOf S) holds b1 is empty ; ::_thesis: verum end; end; registration let S be Language; cluster(AtomicFormulasOf S) \ (AllFormulasOf S) -> empty for set ; coherence for b1 being set st b1 = (AtomicFormulasOf S) \ (AllFormulasOf S) holds b1 is empty proof (S -formulasOfMaxDepth 0) \ (AllFormulasOf S) = {} ; hence for b1 being set st b1 = (AtomicFormulasOf S) \ (AllFormulasOf S) holds b1 is empty by Lm16; ::_thesis: verum end; end; theorem :: FOMODEL2:22 for S being Language for l being literal Element of S for phi1, phi2 being wff string of S holds ( Depth (<*l*> ^ phi1) > Depth phi1 & Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi1 & Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi2 ) by Lm28, Lm30; theorem Th23: :: FOMODEL2:23 for x being set for S being Language for p2 being FinSequence for phi, phi2 being wff string of S st not phi is 0wff holds ( phi = (<*x*> ^ phi2) ^ p2 iff ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi ) ) proof let x be set ; ::_thesis: for S being Language for p2 being FinSequence for phi, phi2 being wff string of S st not phi is 0wff holds ( phi = (<*x*> ^ phi2) ^ p2 iff ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi ) ) let S be Language; ::_thesis: for p2 being FinSequence for phi, phi2 being wff string of S st not phi is 0wff holds ( phi = (<*x*> ^ phi2) ^ p2 iff ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi ) ) let p2 be FinSequence; ::_thesis: for phi, phi2 being wff string of S st not phi is 0wff holds ( phi = (<*x*> ^ phi2) ^ p2 iff ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi ) ) let phi, phi2 be wff string of S; ::_thesis: ( not phi is 0wff implies ( phi = (<*x*> ^ phi2) ^ p2 iff ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi ) ) ) set Phi = SubWffsOf phi; set F = S -firstChar ; set s = (S -firstChar) . phi; set SS = AllSymbolsOf S; assume A1: not phi is 0wff ; ::_thesis: ( phi = (<*x*> ^ phi2) ^ p2 iff ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi ) ) then consider phi1 being wff string of S, p being FinSequence such that A2: ( p is AllSymbolsOf S -valued & SubWffsOf phi = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) by Def35; ( ((SubWffsOf phi) `1) \+\ phi1 = {} & ((SubWffsOf phi) `2) \+\ p = {} ) by A2; then A3: ( (SubWffsOf phi) `1 = phi1 & (SubWffsOf phi) `2 = p ) by FOMODEL0:29; hereby ::_thesis: ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi implies phi = (<*x*> ^ phi2) ^ p2 ) assume A4: phi = (<*x*> ^ phi2) ^ p2 ; ::_thesis: ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi ) then A5: phi . 1 = (<*x*> ^ (phi2 ^ p2)) . 1 by FINSEQ_1:32 .= x by FINSEQ_1:41 ; hence x = (S -firstChar) . phi by FOMODEL0:6; ::_thesis: ( phi2 = head phi & p2 = tail phi ) ( rng p2 c= rng phi & rng phi c= AllSymbolsOf S ) by A4, FINSEQ_1:30, RELAT_1:def_19; then rng p2 c= AllSymbolsOf S by XBOOLE_1:1; then ( p2 is AllSymbolsOf S -valued & [phi2,p2] = [phi2,p2] & phi = (<*((S -firstChar) . phi)*> ^ phi2) ^ p2 ) by A5, A4, FOMODEL0:6, RELAT_1:def_19; then SubWffsOf phi = [phi2,p2] by A1, Def35; hence ( phi2 = head phi & p2 = tail phi ) by MCART_1:7; ::_thesis: verum end; assume ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi ) ; ::_thesis: phi = (<*x*> ^ phi2) ^ p2 hence phi = (<*x*> ^ phi2) ^ p2 by A3, A2; ::_thesis: verum end; registration let S be Language; let m1 be non zero Nat; cluster non empty Relation-like NAT -defined Function-like finite FinSequence-like FinSubsequence-like V199() non 0wff m1 -wff wff non exal for Element of ((AllSymbolsOf S) *) \ {{}}; existence not for b1 being non 0wff m1 -wff string of S holds b1 is exal proof set phi = the 0 -wff string of S; set N = TheNorSymbOf S; set phi1 = (<*(TheNorSymbOf S)*> ^ the 0 -wff string of S) ^ the 0 -wff string of S; consider m being Nat such that A1: m1 = m + 1 by NAT_1:6; (<*(TheNorSymbOf S)*> ^ the 0 -wff string of S) ^ the 0 -wff string of S is non 0wff 1 + (0 * m) -wff string of S ; then reconsider phi11 = (<*(TheNorSymbOf S)*> ^ the 0 -wff string of S) ^ the 0 -wff string of S as non 0wff m1 -wff string of S by A1; take phi11 ; ::_thesis: not phi11 is exal thus not phi11 is exal ; ::_thesis: verum end; end; registration let S be Language; let phi be wff exal string of S; cluster tail phi -> empty for set ; coherence for b1 being set st b1 = tail phi holds b1 is empty proof set d = Depth phi; set L = LettersOf S; set h = head phi; set t = tail phi; set F = S -firstChar ; set FF = AllFormulasOf S; set SS = AllSymbolsOf S; set s = (S -firstChar) . phi; consider m being Nat such that A1: Depth phi = m + 1 by NAT_1:6; set Phim = S -formulasOfMaxDepth m; phi in m -ExFormulasOf S by A1, Lm27; then consider ll being Element of LettersOf S, phim being Element of S -formulasOfMaxDepth m such that A2: phi = <*ll*> ^ phim ; reconsider phimm = phim as m -wff string of S by Def24; phi = (<*ll*> ^ phimm) ^ {} by A2; hence for b1 being set st b1 = tail phi holds b1 is empty by Th23; ::_thesis: verum end; end; Lm38: for m being Nat for S being Language for phi being wff string of S st Depth phi = m + 1 & not phi is exal holds ex phi2 being b1 -wff string of S st tail phi = phi2 proof let m be Nat; ::_thesis: for S being Language for phi being wff string of S st Depth phi = m + 1 & not phi is exal holds ex phi2 being m -wff string of S st tail phi = phi2 let S be Language; ::_thesis: for phi being wff string of S st Depth phi = m + 1 & not phi is exal holds ex phi2 being m -wff string of S st tail phi = phi2 let phi be wff string of S; ::_thesis: ( Depth phi = m + 1 & not phi is exal implies ex phi2 being m -wff string of S st tail phi = phi2 ) set d = Depth phi; set Phim = S -formulasOfMaxDepth m; set N = TheNorSymbOf S; assume ( Depth phi = m + 1 & not phi is exal ) ; ::_thesis: ex phi2 being m -wff string of S st tail phi = phi2 then phi in m -NorFormulasOf S by Lm29; then consider phi1, phi2 being Element of S -formulasOfMaxDepth m such that A1: phi = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 ; reconsider phi11 = phi1, phi22 = phi2 as m -wff string of S by Def24; set d1 = Depth phi11; set d2 = Depth phi22; take phi22 ; ::_thesis: tail phi = phi22 phi = (<*(TheNorSymbOf S)*> ^ phi11) ^ phi22 by A1; hence phi22 = tail phi by Th23; ::_thesis: verum thus verum ; ::_thesis: verum end; definition let S be Language; let phi be non 0wff wff non exal string of S; :: original: tail redefine func tail phi -> wff string of S; coherence tail phi is wff string of S proof consider m being Nat such that A1: Depth phi = m + 1 by NAT_1:6; consider phi2 being m -wff string of S such that A2: tail phi = phi2 by A1, Lm38; thus tail phi is wff string of S by A2; ::_thesis: verum end; end; registration let S be Language; let phi be non 0wff wff non exal string of S; cluster tail phi -> wff for string of S; coherence for b1 being string of S st b1 = tail phi holds b1 is wff ; end; registration let S be Language; let phi0 be 0wff string of S; identify head phi0 with phi0 null ; compatibility head phi0 = phi0 null proof ( phi0 = [phi0,{}] `1 & SubWffsOf phi0 = [phi0,{}] ) by Def35; hence head phi0 = phi0 null ; ::_thesis: verum end; end; registration let S be Language; let phi be non 0wff wff non exal string of S; cluster((S -firstChar) . phi) \+\ (TheNorSymbOf S) -> empty for set ; coherence for b1 being set st b1 = ((S -firstChar) . phi) \+\ (TheNorSymbOf S) holds b1 is empty proof set F = S -firstChar ; set N = TheNorSymbOf S; set s = (S -firstChar) . phi; consider m being Nat such that A1: Depth phi = m + 1 by NAT_1:6; phi in m -NorFormulasOf S by A1, Lm29; then consider phi11, phi22 being Element of S -formulasOfMaxDepth m such that A2: phi = (<*(TheNorSymbOf S)*> ^ phi11) ^ phi22 ; (S -firstChar) . phi = phi . 1 by FOMODEL0:6 .= (<*(TheNorSymbOf S)*> ^ (phi11 ^ phi22)) . 1 by A2, FINSEQ_1:32 .= TheNorSymbOf S by FINSEQ_1:41 ; hence for b1 being set st b1 = ((S -firstChar) . phi) \+\ (TheNorSymbOf S) holds b1 is empty ; ::_thesis: verum end; end; Lm39: for m being Nat for S being Language for phi being wff string of S st not phi is 0wff & not phi is exal & phi is m + 1 -wff holds ( head phi is b1 -wff string of S & tail phi is b1 -wff string of S ) proof let m be Nat; ::_thesis: for S being Language for phi being wff string of S st not phi is 0wff & not phi is exal & phi is m + 1 -wff holds ( head phi is m -wff string of S & tail phi is m -wff string of S ) let S be Language; ::_thesis: for phi being wff string of S st not phi is 0wff & not phi is exal & phi is m + 1 -wff holds ( head phi is m -wff string of S & tail phi is m -wff string of S ) let phi be wff string of S; ::_thesis: ( not phi is 0wff & not phi is exal & phi is m + 1 -wff implies ( head phi is m -wff string of S & tail phi is m -wff string of S ) ) assume ( not phi is 0wff & not phi is exal & phi is m + 1 -wff ) ; ::_thesis: ( head phi is m -wff string of S & tail phi is m -wff string of S ) then reconsider phii = phi as non 0wff m + 1 -wff non exal string of S ; set N = TheNorSymbOf S; set F = S -firstChar ; set s = (S -firstChar) . phii; set dh = Depth (head phii); set dt = Depth (tail phii); set M = max ((Depth (head phii)),(Depth (tail phii))); set d = Depth phii; reconsider h = head phii as Depth (head phii) -wff string of S by Def31; reconsider t = tail phii as Depth (tail phii) -wff string of S by Def31; A1: Depth phii <= m + 1 by Def31; ((S -firstChar) . phii) \+\ (TheNorSymbOf S) = {} ; then (S -firstChar) . phii = TheNorSymbOf S by FOMODEL0:29; then phii = (<*(TheNorSymbOf S)*> ^ h) ^ t by Th23; then (max ((Depth (head phii)),(Depth (tail phii)))) + 1 <= m + 1 by A1, Th17; then ((max ((Depth (head phii)),(Depth (tail phii)))) + 1) - 1 <= (m + 1) - 1 by XREAL_1:6; then ( (max ((Depth (head phii)),(Depth (tail phii)))) + (- (Depth (head phii))) <= m + (- (Depth (head phii))) & (max ((Depth (head phii)),(Depth (tail phii)))) + (- (Depth (tail phii))) <= m + (- (Depth (tail phii))) ) by XREAL_1:6; then ( (max ((Depth (head phii)),(Depth (tail phii)))) - (Depth (head phii)) <= m - (Depth (head phii)) & (max ((Depth (head phii)),(Depth (tail phii)))) - (Depth (tail phii)) <= m - (Depth (tail phii)) ) ; then ( 0 <= m - (Depth (head phii)) & 0 <= m - (Depth (tail phii)) ) ; then reconsider nh = m - (Depth (head phii)), nt = m - (Depth (tail phii)) as Nat ; ( h is (Depth (head phii)) + (0 * nh) -wff & t is (Depth (tail phii)) + (0 * nt) -wff ) ; then ( h is (Depth (head phii)) + nh -wff & t is (Depth (tail phii)) + nt -wff ) ; hence ( head phi is m -wff string of S & tail phi is m -wff string of S ) ; ::_thesis: verum end; registration let m be Nat; let S be Language; let phi be m + 1 -wff string of S; cluster head phi -> m -wff for string of S; coherence for b1 being string of S st b1 = head phi holds b1 is m -wff proof set d = Depth phi; set F = S -firstChar ; set s = (S -firstChar) . phi; set N = TheNorSymbOf S; set dh = Depth (head phi); reconsider h = head phi as Depth (head phi) -wff string of S by Def31; A1: Depth phi <= m + 1 by Def31; percases ( phi is 0wff or ( not phi is 0wff & not phi is exal ) or ( not phi is 0wff & phi is exal ) ) ; suppose phi is 0wff ; ::_thesis: for b1 being string of S st b1 = head phi holds b1 is m -wff then reconsider phi0 = phi as 0 -wff string of S ; phi0 is 0 + (0 * m) -wff ; then phi0 null phi0 is 0 + m -wff string of S ; then head phi0 is m -wff ; hence for b1 being string of S st b1 = head phi holds b1 is m -wff ; ::_thesis: verum end; suppose ( not phi is 0wff & not phi is exal ) ; ::_thesis: for b1 being string of S st b1 = head phi holds b1 is m -wff then reconsider phii = phi as non 0wff m + 1 -wff non exal string of S ; head phii is m -wff string of S by Lm39; hence for b1 being string of S st b1 = head phi holds b1 is m -wff ; ::_thesis: verum end; suppose ( not phi is 0wff & phi is exal ) ; ::_thesis: for b1 being string of S st b1 = head phi holds b1 is m -wff then reconsider phii = phi as non 0wff m + 1 -wff exal string of S ; set t = tail phii; phii = (<*((S -firstChar) . phi)*> ^ h) ^ (tail phii) by Th23 .= <*((S -firstChar) . phi)*> ^ h ; then (Depth (head phi)) + 1 <= m + 1 by A1, Th17; then Depth (head phi) <= m by XREAL_1:6; then (Depth (head phi)) + (- (Depth (head phi))) <= m + (- (Depth (head phi))) by XREAL_1:6; then reconsider n = m - (Depth (head phi)) as Nat ; h is (Depth (head phi)) + (0 * n) -wff ; then h is (Depth (head phi)) + n -wff ; hence for b1 being string of S st b1 = head phi holds b1 is m -wff ; ::_thesis: verum end; end; end; end; registration let m be Nat; let S be Language; let phi be non 0wff m + 1 -wff non exal string of S; cluster tail phi -> m -wff for string of S; coherence for b1 being string of S st b1 = tail phi holds b1 is m -wff by Lm39; end; theorem Th24: :: FOMODEL2:24 for m being Nat for S being Language for U being non empty set for I being Element of U -InterpretersOf S holds (I,m) -TruthEval in Funcs ((S -formulasOfMaxDepth m),BOOLEAN) proof let m be Nat; ::_thesis: for S being Language for U being non empty set for I being Element of U -InterpretersOf S holds (I,m) -TruthEval in Funcs ((S -formulasOfMaxDepth m),BOOLEAN) let S be Language; ::_thesis: for U being non empty set for I being Element of U -InterpretersOf S holds (I,m) -TruthEval in Funcs ((S -formulasOfMaxDepth m),BOOLEAN) let U be non empty set ; ::_thesis: for I being Element of U -InterpretersOf S holds (I,m) -TruthEval in Funcs ((S -formulasOfMaxDepth m),BOOLEAN) set Phim = S -formulasOfMaxDepth m; set II = U -InterpretersOf S; let I be Element of U -InterpretersOf S; ::_thesis: (I,m) -TruthEval in Funcs ((S -formulasOfMaxDepth m),BOOLEAN) reconsider F = curry ((S,U) -TruthEval m) as Function of (U -InterpretersOf S),(Funcs ((S -formulasOfMaxDepth m),BOOLEAN)) by Lm17; F . I in Funcs ((S -formulasOfMaxDepth m),BOOLEAN) ; hence (I,m) -TruthEval in Funcs ((S -formulasOfMaxDepth m),BOOLEAN) ; ::_thesis: verum end; Lm40: for S being Language for U being non empty set for phi0 being 0wff string of S for I being Element of U -InterpretersOf S holds I -TruthEval phi0 = I -AtomicEval phi0 proof let S be Language; ::_thesis: for U being non empty set for phi0 being 0wff string of S for I being Element of U -InterpretersOf S holds I -TruthEval phi0 = I -AtomicEval phi0 let U be non empty set ; ::_thesis: for phi0 being 0wff string of S for I being Element of U -InterpretersOf S holds I -TruthEval phi0 = I -AtomicEval phi0 let phi0 be 0wff string of S; ::_thesis: for I being Element of U -InterpretersOf S holds I -TruthEval phi0 = I -AtomicEval phi0 set II = U -InterpretersOf S; let I be Element of U -InterpretersOf S; ::_thesis: I -TruthEval phi0 = I -AtomicEval phi0 set LH = I -TruthEval phi0; set RH = I -AtomicEval phi0; set f = (S,U) -TruthEval 0; set Phi0 = S -formulasOfMaxDepth 0; set AF = AtomicFormulasOf S; set SS = AllSymbolsOf S; reconsider phi000 = phi0 as Element of S -formulasOfMaxDepth 0 by Def24; reconsider phi00 = phi000 as Element of AtomicFormulasOf S by Lm16; reconsider z = 0 as Element of NAT ; (I,0) -TruthEval is Element of Funcs ((S -formulasOfMaxDepth 0),BOOLEAN) by Th24; then reconsider g = (I,0) -TruthEval as Function of (S -formulasOfMaxDepth 0),BOOLEAN ; set F = curry ((S,U) -TruthEval 0); reconsider F = curry ((S,U) -TruthEval 0) as Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by Lm11; ( dom F = U -InterpretersOf S & dom g = S -formulasOfMaxDepth 0 ) by FUNCT_2:def_1; then ( I in dom F & g = F . I & phi000 in dom g ) ; then A1: ( g . phi0 = ((S,U) -TruthEval 0) . (I,phi0) & [I,phi0] in dom ((S,U) -TruthEval 0) ) by FUNCT_5:31; I -TruthEval phi0 = g . phi0 by Def26 .= (((S,U) -TruthEval) . z) . [I,phi0] by A1, Def21 .= (S -TruthEval U) . (I,phi00) by Def20 .= I -AtomicEval phi0 by Def15 ; hence I -TruthEval phi0 = I -AtomicEval phi0 ; ::_thesis: verum end; registration let S be Language; let U be non empty set ; let I be Element of U -InterpretersOf S; let phi0 be 0wff string of S; identifyI -TruthEval phi0 with I -AtomicEval phi0; compatibility I -TruthEval phi0 = I -AtomicEval phi0 by Lm40; identifyI -AtomicEval phi0 with I -TruthEval phi0; compatibility I -AtomicEval phi0 = I -TruthEval phi0 ; end; registration let S be Language; cluster non literal ofAtomicFormula for Element of AllSymbolsOf S; existence not for b1 being ofAtomicFormula Element of S holds b1 is literal proof take TheEqSymbOf S ; ::_thesis: not TheEqSymbOf S is literal thus not TheEqSymbOf S is literal ; ::_thesis: verum end; end; Lm41: for X being set for S being Language for U being non empty set for I1, I2 being b2,b3 -interpreter-like Function st I1 | X = I2 | X holds (I1 -TermEval) | (X *) = (I2 -TermEval) | (X *) proof let X be set ; ::_thesis: for S being Language for U being non empty set for I1, I2 being b1,b2 -interpreter-like Function st I1 | X = I2 | X holds (I1 -TermEval) | (X *) = (I2 -TermEval) | (X *) let S be Language; ::_thesis: for U being non empty set for I1, I2 being S,b1 -interpreter-like Function st I1 | X = I2 | X holds (I1 -TermEval) | (X *) = (I2 -TermEval) | (X *) let U be non empty set ; ::_thesis: for I1, I2 being S,U -interpreter-like Function st I1 | X = I2 | X holds (I1 -TermEval) | (X *) = (I2 -TermEval) | (X *) set T = S -termsOfMaxDepth ; set O = OwnSymbolsOf S; set TT = AllTermsOf S; set SS = AllSymbolsOf S; set L = LettersOf S; set F = S -firstChar ; set C = S -multiCat ; let I1, I2 be S,U -interpreter-like Function; ::_thesis: ( I1 | X = I2 | X implies (I1 -TermEval) | (X *) = (I2 -TermEval) | (X *) ) set E1 = I1 -TermEval ; set E2 = I2 -TermEval ; set I11 = I1 | X; set I22 = I2 | X; assume A1: I1 | X = I2 | X ; ::_thesis: (I1 -TermEval) | (X *) = (I2 -TermEval) | (X *) then A2: ( dom (I1 -TermEval) = AllTermsOf S & dom (I2 -TermEval) = AllTermsOf S & I1 | X = I2 | X ) by FUNCT_2:def_1; defpred S1[ Nat] means (I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . $1)) = (I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . $1)); A3: S1[ 0 ] proof set d = (X *) /\ ((S -termsOfMaxDepth) . 0); ( (S -termsOfMaxDepth) . 0 c= AllTermsOf S & (X *) /\ ((S -termsOfMaxDepth) . 0) c= (S -termsOfMaxDepth) . 0 ) by FOMODEL1:2; then reconsider dd = (X *) /\ ((S -termsOfMaxDepth) . 0) as Subset of (AllTermsOf S) by XBOOLE_1:1; A4: ( dom ((I1 -TermEval) | dd) = (X *) /\ ((S -termsOfMaxDepth) . 0) & dom ((I2 -TermEval) | dd) = (X *) /\ ((S -termsOfMaxDepth) . 0) ) by PARTFUN1:def_2; now__::_thesis:_for_x_being_set_st_x_in_dom_((I1_-TermEval)_|_((X_*)_/\_((S_-termsOfMaxDepth)_._0)))_holds_ ((I1_-TermEval)_|_((X_*)_/\_((S_-termsOfMaxDepth)_._0)))_._x_=_((I2_-TermEval)_|_((X_*)_/\_((S_-termsOfMaxDepth)_._0)))_._x let x be set ; ::_thesis: ( x in dom ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) implies ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) . x = ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) . x ) assume A5: x in dom ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) ; ::_thesis: ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) . x = ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) . x reconsider dd = dd as non empty Subset of (AllTermsOf S) by A5; reconsider xd = x as Element of dd by A5; reconsider t = x as 0 -termal string of S by A5, A4, FOMODEL1:def_33; set o = (S -firstChar) . t; set ST = SubTerms t; reconsider XX = X as non empty set by A5; reconsider tx = x as non empty Element of XX * by A5, A4; {(tx . 1)} \ XX = {} ; then tx . 1 in XX by ZFMISC_1:60; then reconsider oo = (S -firstChar) . t as Element of XX by FOMODEL0:6; ( ((I1 | X) . oo) \+\ (I1 . oo) = {} & ((I2 | X) . oo) \+\ (I2 . oo) = {} & (((I1 -TermEval) | dd) . xd) \+\ ((I1 -TermEval) . xd) = {} & (((I2 -TermEval) | dd) . xd) \+\ ((I2 -TermEval) . xd) = {} ) ; then A6: ( (I1 | X) . ((S -firstChar) . t) = I1 . ((S -firstChar) . t) & (I2 | X) . ((S -firstChar) . t) = I2 . ((S -firstChar) . t) & ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) . x = (I1 -TermEval) . x & ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) . x = (I2 -TermEval) . x ) by FOMODEL0:29; hence ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) . x = (I1 . ((S -firstChar) . t)) . ((I1 -TermEval) * (SubTerms t)) by Th21 .= (I2 . ((S -firstChar) . t)) . ((I2 -TermEval) * (SubTerms t)) by A1, A6 .= ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) . x by A6, Th21 ; ::_thesis: verum end; hence S1[ 0 ] by A4, FUNCT_1:2; ::_thesis: verum end; A7: for n being Nat st S1[n] holds S1[n + 1] proof let n be Nat; ::_thesis: ( S1[n] implies S1[n + 1] ) set d = (X *) /\ ((S -termsOfMaxDepth) . n); set D = (X *) /\ ((S -termsOfMaxDepth) . (n + 1)); reconsider nn = n, NN = n + 1 as Element of NAT by ORDINAL1:def_12; assume A8: S1[n] ; ::_thesis: S1[n + 1] ( (X *) /\ ((S -termsOfMaxDepth) . (n + 1)) c= (S -termsOfMaxDepth) . NN & (X *) /\ ((S -termsOfMaxDepth) . n) c= (S -termsOfMaxDepth) . nn & (S -termsOfMaxDepth) . nn c= AllTermsOf S & (S -termsOfMaxDepth) . NN c= AllTermsOf S ) by FOMODEL1:2; then reconsider DD = (X *) /\ ((S -termsOfMaxDepth) . (n + 1)), dd = (X *) /\ ((S -termsOfMaxDepth) . n) as Subset of (AllTermsOf S) by XBOOLE_1:1; A9: ( dom ((I1 -TermEval) | dd) = (X *) /\ ((S -termsOfMaxDepth) . n) & dom ((I2 -TermEval) | dd) = (X *) /\ ((S -termsOfMaxDepth) . n) & dom ((I1 -TermEval) | DD) = (X *) /\ ((S -termsOfMaxDepth) . (n + 1)) & dom ((I2 -TermEval) | DD) = (X *) /\ ((S -termsOfMaxDepth) . (n + 1)) ) by PARTFUN1:def_2; now__::_thesis:_for_x_being_set_st_x_in_dom_((I1_-TermEval)_|_((X_*)_/\_((S_-termsOfMaxDepth)_._(n_+_1))))_holds_ ((I1_-TermEval)_|_((X_*)_/\_((S_-termsOfMaxDepth)_._(n_+_1))))_._x_=_((I2_-TermEval)_|_((X_*)_/\_((S_-termsOfMaxDepth)_._(n_+_1))))_._x let x be set ; ::_thesis: ( x in dom ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) implies ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x = ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x ) assume A10: x in dom ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) ; ::_thesis: ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x = ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x reconsider t = x as nn + 1 -termal string of S by A10, A9, FOMODEL1:def_33; reconsider XX = X as non empty set by A10; reconsider DD = DD as non empty Subset of (AllTermsOf S) by A10; reconsider tx = x as non empty Element of XX * by A10, A9; reconsider dx = x as Element of DD by A10; set o = (S -firstChar) . t; set m = abs (ar ((S -firstChar) . t)); {(tx . 1)} \ XX = {} ; then tx . 1 in XX by ZFMISC_1:60; then reconsider oo = (S -firstChar) . t as Element of XX by FOMODEL0:6; reconsider r = rng t as Subset of X by A10, A9, RELAT_1:def_19; r * c= X * ; then reconsider newords = (rng t) * as non empty Subset of (X *) ; reconsider ST = SubTerms t as newords -valued abs (ar ((S -firstChar) . t)) -element FinSequence ; ( ((I1 | X) . oo) \+\ (I1 . oo) = {} & ((I2 | X) . oo) \+\ (I2 . oo) = {} ) ; then A11: ( (I1 | X) . oo = I1 . oo & (I2 | X) . oo = I2 . oo ) by FOMODEL0:29; ( (((I1 -TermEval) | DD) . dx) \+\ ((I1 -TermEval) . dx) = {} & (((I2 -TermEval) | DD) . dx) \+\ ((I2 -TermEval) . dx) = {} ) ; then A12: ( ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x = (I1 -TermEval) . x & ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x = (I2 -TermEval) . x ) by FOMODEL0:29; ( rng ST c= (S -termsOfMaxDepth) . nn & rng ST c= X * ) by RELAT_1:def_19; then A13: ( ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . n))) * ST = (I1 -TermEval) * ST & ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . n))) * ST = (I2 -TermEval) * ST ) by A9, RELAT_1:165, XBOOLE_1:19; then (I1 . ((S -firstChar) . t)) . (((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . n))) * ST) = (I1 -TermEval) . t by Th21; hence ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x = ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x by A12, A8, A1, A11, A13, Th21; ::_thesis: verum end; hence S1[n + 1] by A9, FUNCT_1:2; ::_thesis: verum end; A14: for m being Nat holds S1[m] from NAT_1:sch_2(A3, A7); set f1 = (I1 -TermEval) | (X *); set f2 = (I2 -TermEval) | (X *); A15: ( dom ((I1 -TermEval) | (X *)) = (X *) /\ (AllTermsOf S) & dom ((I2 -TermEval) | (X *)) = (X *) /\ (AllTermsOf S) ) by A2, RELAT_1:61; now__::_thesis:_for_x_being_set_st_x_in_dom_((I1_-TermEval)_|_(X_*))_holds_ ((I1_-TermEval)_|_(X_*))_._x_=_((I2_-TermEval)_|_(X_*))_._x let x be set ; ::_thesis: ( x in dom ((I1 -TermEval) | (X *)) implies ((I1 -TermEval) | (X *)) . x = ((I2 -TermEval) | (X *)) . x ) assume A16: x in dom ((I1 -TermEval) | (X *)) ; ::_thesis: ((I1 -TermEval) | (X *)) . x = ((I2 -TermEval) | (X *)) . x reconsider D = (X *) /\ (AllTermsOf S) as non empty Subset of (AllTermsOf S) by A16, A2, RELAT_1:61; reconsider t = x as termal string of S by A16, A15; set m = Depth t; reconsider t = t as Depth t -termal string of S by FOMODEL1:def_40; A17: ( t in X * & t in (S -termsOfMaxDepth) . (Depth t) ) by A16, FOMODEL1:def_33; reconsider Dm = (X *) /\ ((S -termsOfMaxDepth) . (Depth t)) as non empty set by A17, XBOOLE_0:def_4; reconsider tt = t as Element of Dm by A17, XBOOLE_0:def_4; reconsider xx = x as Element of X * by A16; set g1 = (I1 -TermEval) | Dm; set g2 = (I2 -TermEval) | Dm; ( (((I1 -TermEval) | (X *)) . xx) \+\ ((I1 -TermEval) . xx) = {} & (((I2 -TermEval) | (X *)) . xx) \+\ ((I2 -TermEval) . xx) = {} & (((I1 -TermEval) | Dm) . tt) \+\ ((I1 -TermEval) . tt) = {} & (((I2 -TermEval) | Dm) . tt) \+\ ((I2 -TermEval) . tt) = {} ) ; then ( ((I1 -TermEval) | (X *)) . x = (I1 -TermEval) . x & ((I2 -TermEval) | (X *)) . x = (I2 -TermEval) . x & ((I1 -TermEval) | Dm) . x = (I1 -TermEval) . x & ((I2 -TermEval) | Dm) . x = (I2 -TermEval) . x ) by FOMODEL0:29; hence ((I1 -TermEval) | (X *)) . x = ((I2 -TermEval) | (X *)) . x by A14; ::_thesis: verum end; hence (I1 -TermEval) | (X *) = (I2 -TermEval) | (X *) by A15, FUNCT_1:2; ::_thesis: verum end; theorem :: FOMODEL2:25 for S being Language for U being non empty set for p being FinSequence for u being Element of U for l2 being literal Element of S for I being b1,b2 -interpreter-like Function st not l2 in rng p holds (((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p proof let S be Language; ::_thesis: for U being non empty set for p being FinSequence for u being Element of U for l2 being literal Element of S for I being S,b1 -interpreter-like Function st not l2 in rng p holds (((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p let U be non empty set ; ::_thesis: for p being FinSequence for u being Element of U for l2 being literal Element of S for I being S,U -interpreter-like Function st not l2 in rng p holds (((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p let p be FinSequence; ::_thesis: for u being Element of U for l2 being literal Element of S for I being S,U -interpreter-like Function st not l2 in rng p holds (((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p let u be Element of U; ::_thesis: for l2 being literal Element of S for I being S,U -interpreter-like Function st not l2 in rng p holds (((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p let l2 be literal Element of S; ::_thesis: for I being S,U -interpreter-like Function st not l2 in rng p holds (((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p let I be S,U -interpreter-like Function; ::_thesis: ( not l2 in rng p implies (((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p ) set tt = p; set II = U -InterpretersOf S; set I2 = (l2,u) ReassignIn I; set f2 = l2 .--> ({} .--> u); p null {} is {} \/ (rng p) -valued FinSequence ; then p is FinSequence of rng p by FOMODEL0:26; then reconsider ttt = p as Element of (rng p) * by FINSEQ_1:def_11; ( (((((l2,u) ReassignIn I) -TermEval) | ((rng p) *)) . ttt) \+\ ((((l2,u) ReassignIn I) -TermEval) . ttt) = {} & (((I -TermEval) | ((rng p) *)) . ttt) \+\ ((I -TermEval) . ttt) = {} ) ; then A1: ( ((((l2,u) ReassignIn I) -TermEval) | ((rng p) *)) . p = (((l2,u) ReassignIn I) -TermEval) . p & ((I -TermEval) | ((rng p) *)) . p = (I -TermEval) . p ) by FOMODEL0:29; assume not l2 in rng p ; ::_thesis: (((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p then {l2} misses rng p by ZFMISC_1:50; then dom (l2 .--> ({} .--> u)) misses rng p by FUNCOP_1:13; then ((l2,u) ReassignIn I) | (rng p) = I | (rng p) by FUNCT_4:72; hence (((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p by A1, Lm41; ::_thesis: verum end; definition let X be set ; let S be Language; let s be Element of S; attrs is X -occurring means :Def38: :: FOMODEL2:def 38 s in SymbolsOf ((((AllSymbolsOf S) *) \ {{}}) /\ X); end; :: deftheorem Def38 defines -occurring FOMODEL2:def_38_:_ for X being set for S being Language for s being Element of S holds ( s is X -occurring iff s in SymbolsOf ((((AllSymbolsOf S) *) \ {{}}) /\ X) ); definition let S be Language; let s be Element of S; let X be set ; attrX is s -containing means :: FOMODEL2:def 39 s in SymbolsOf (((AllSymbolsOf S) *) \ ({{}} /\ X)); end; :: deftheorem defines -containing FOMODEL2:def_39_:_ for S being Language for s being Element of S for X being set holds ( X is s -containing iff s in SymbolsOf (((AllSymbolsOf S) *) \ ({{}} /\ X)) ); notation let X be set ; let S be Language; let s be Element of S; antonym X -absent s for X -occurring ; end; notation let S be Language; let s be Element of S; let X be set ; antonym s -free X for s -containing ; end; registration let X be finite set ; let S be Language; cluster literal non operational non relational termal own ofAtomicFormula X -absent for Element of AllSymbolsOf S; existence ex b1 being literal Element of S st b1 is X -absent proof set L = LettersOf S; set SS = AllSymbolsOf S; reconsider Y = (((AllSymbolsOf S) *) \ {{}}) /\ X as FinSequence-membered Subset of X ; reconsider Z = SymbolsOf Y as finite set ; reconsider free = (LettersOf S) \ Z as infinite Subset of (LettersOf S) ; set ll = the Element of free; reconsider l = the Element of free as literal Element of S by TARSKI:def_3; take l ; ::_thesis: l is X -absent not l in Z by XBOOLE_0:def_5; hence l is X -absent by Def38; ::_thesis: verum end; end; Lm42: for S being Language for w being string of S st w is termal holds (rng w) /\ (LettersOf S) <> {} proof let S be Language; ::_thesis: for w being string of S st w is termal holds (rng w) /\ (LettersOf S) <> {} let w be string of S; ::_thesis: ( w is termal implies (rng w) /\ (LettersOf S) <> {} ) set L = LettersOf S; set F = S -firstChar ; set TT = AllTermsOf S; set C = S -multiCat ; set SS = AllSymbolsOf S; set CC = (AllSymbolsOf S) -multiCat ; set T = S -termsOfMaxDepth ; reconsider TTT = AllTermsOf S as Subset of ((AllSymbolsOf S) *) by XBOOLE_1:1; defpred S1[ Nat] means for w being string of S st w is $1 -termal holds (rng w) /\ (LettersOf S) <> {} ; A1: S1[ 0 ] proof let w be string of S; ::_thesis: ( w is 0 -termal implies (rng w) /\ (LettersOf S) <> {} ) assume w is 0 -termal ; ::_thesis: (rng w) /\ (LettersOf S) <> {} then reconsider t0 = w as 0 -termal string of S ; reconsider l = (S -firstChar) . t0 as literal Element of S ; reconsider ll = l as Element of LettersOf S by FOMODEL1:def_14; t0 = <*l*> ^ ((S -multiCat) . (SubTerms t0)) by FOMODEL1:def_37 .= <*l*> ^ {} .= <*l*> ; then (rng t0) /\ (LettersOf S) = {ll} null (LettersOf S) by FINSEQ_1:38; hence (rng w) /\ (LettersOf S) <> {} ; ::_thesis: verum end; A2: for k being Nat st S1[k] holds S1[k + 1] proof let k be Nat; ::_thesis: ( S1[k] implies S1[k + 1] ) reconsider kk = k as Element of NAT by ORDINAL1:def_12; assume A3: S1[k] ; ::_thesis: S1[k + 1] let w be string of S; ::_thesis: ( w is k + 1 -termal implies (rng w) /\ (LettersOf S) <> {} ) assume w is k + 1 -termal ; ::_thesis: (rng w) /\ (LettersOf S) <> {} then reconsider t = w as k + 1 -termal string of S ; percases ( not t is 0 -termal or t is 0 -termal ) ; suppose not t is 0 -termal ; ::_thesis: (rng w) /\ (LettersOf S) <> {} then (S -firstChar) . t is operational by FOMODEL1:16; then reconsider n = abs (ar ((S -firstChar) . t)) as non zero Nat ; consider m being Nat such that A4: n = m + 1 by NAT_1:6; reconsider mm = m, nn = n as Element of NAT by ORDINAL1:def_12; reconsider tt = t as kk + 1 -termal string of S ; reconsider ST = SubTerms t as m + 1 -element Element of (AllTermsOf S) * by A4; ST is (m + 1) + 0 -element ; then {(ST . (m + 1))} \ (AllTermsOf S) = {} ; then reconsider q = ST . (m + 1) as Element of TTT by ZFMISC_1:60; q is Element of (AllSymbolsOf S) * by TARSKI:def_3; then reconsider qq = q as AllSymbolsOf S -valued FinSequence ; reconsider p = ST | (Seg m) as TTT -valued FinSequence ; ((ST | (Seg m)) ^ <*(ST . (m + 1))*>) \+\ ST = {} ; then A5: ST = p ^ <*qq*> by FOMODEL0:29; A6: (S -multiCat) . ST = ((S -multiCat) . p) ^ qq by A5, FOMODEL0:33; t = <*((S -firstChar) . t)*> ^ (((S -multiCat) . p) ^ qq) by A6, FOMODEL1:def_37; then rng t = (rng <*((S -firstChar) . t)*>) \/ (rng (((S -multiCat) . p) ^ qq)) by FINSEQ_1:31 .= {((S -firstChar) . t)} \/ (rng (((S -multiCat) . p) ^ qq)) by FINSEQ_1:38 .= {((S -firstChar) . t)} \/ ((rng ((S -multiCat) . p)) \/ (rng qq)) by FINSEQ_1:31 .= (rng qq) \/ ({((S -firstChar) . t)} \/ (rng ((S -multiCat) . p))) by XBOOLE_1:4 ; then (rng qq) null ({((S -firstChar) . t)} \/ (rng ((S -multiCat) . p))) c= rng t ; then A7: (rng q) /\ (LettersOf S) c= (rng t) /\ (LettersOf S) by XBOOLE_1:26; SubTerms tt is (S -termsOfMaxDepth) . kk -valued ; then reconsider STT = ST as (S -termsOfMaxDepth) . kk -valued (m + 1) + 0 -element FinSequence ; {(STT . (m + 1))} \ ((S -termsOfMaxDepth) . kk) = {} ; then reconsider qqq = q as Element of (S -termsOfMaxDepth) . kk by ZFMISC_1:60; reconsider tq = qqq as k -termal string of S by FOMODEL1:def_33; (rng tq) /\ (LettersOf S) <> {} by A3; hence (rng w) /\ (LettersOf S) <> {} by A7; ::_thesis: verum end; suppose t is 0 -termal ; ::_thesis: (rng w) /\ (LettersOf S) <> {} hence (rng w) /\ (LettersOf S) <> {} by A1; ::_thesis: verum end; end; end; A8: for m being Nat holds S1[m] from NAT_1:sch_2(A1, A2); assume w is termal ; ::_thesis: (rng w) /\ (LettersOf S) <> {} then reconsider t = w as termal string of S ; t is Depth t -termal by FOMODEL1:def_40; hence (rng w) /\ (LettersOf S) <> {} by A8; ::_thesis: verum end; registration let S be Language; let t be termal string of S; cluster(rng t) /\ (LettersOf S) -> non empty for set ; coherence for b1 being set st b1 = (rng t) /\ (LettersOf S) holds not b1 is empty by Lm42; end; Lm43: for S being Language for w being string of S st w is wff holds (rng w) /\ (LettersOf S) <> {} proof let S be Language; ::_thesis: for w being string of S st w is wff holds (rng w) /\ (LettersOf S) <> {} let w be string of S; ::_thesis: ( w is wff implies (rng w) /\ (LettersOf S) <> {} ) set L = LettersOf S; set F = S -firstChar ; set TT = AllTermsOf S; set C = S -multiCat ; set SS = AllSymbolsOf S; set CC = (AllSymbolsOf S) -multiCat ; set T = S -termsOfMaxDepth ; reconsider TTT = AllTermsOf S as Subset of ((AllSymbolsOf S) *) by XBOOLE_1:1; defpred S1[ Nat] means for w being string of S st w is $1 -wff holds (rng w) /\ (LettersOf S) <> {} ; A1: S1[ 0 ] proof let w be string of S; ::_thesis: ( w is 0 -wff implies (rng w) /\ (LettersOf S) <> {} ) assume w is 0 -wff ; ::_thesis: (rng w) /\ (LettersOf S) <> {} then reconsider phi0 = w as 0wff string of S ; reconsider r = (S -firstChar) . phi0 as relational Element of S ; reconsider n = abs (ar r) as non zero Nat ; consider m being Nat such that A2: n = m + 1 by NAT_1:6; reconsider ST = SubTerms phi0 as (m + 1) + 0 -element Element of (AllTermsOf S) * by A2; reconsider p = ST | (Seg m) as (AllSymbolsOf S) * -valued FinSequence ; {(ST . (m + 1))} \ (AllTermsOf S) = {} ; then reconsider q = ST . (m + 1) as Element of AllTermsOf S by ZFMISC_1:60; reconsider t = q as termal string of S ; ((ST | (Seg m)) ^ <*q*>) \+\ ST = {} ; then A3: ST = (ST | (Seg m)) ^ <*q*> by FOMODEL0:29; reconsider qq = q as AllSymbolsOf S -valued FinSequence ; phi0 = <*r*> ^ ((S -multiCat) . ST) by FOMODEL1:def_38 .= <*r*> ^ (((S -multiCat) . p) ^ qq) by A3, FOMODEL0:33 ; then rng phi0 = (rng <*r*>) \/ (rng (((S -multiCat) . p) ^ q)) by FINSEQ_1:31 .= (rng <*r*>) \/ ((rng ((S -multiCat) . p)) \/ (rng q)) by FINSEQ_1:31 .= (rng q) \/ ((rng <*r*>) \/ (rng ((S -multiCat) . p))) by XBOOLE_1:4 ; then (rng t) null ((rng <*r*>) \/ (rng ((S -multiCat) . p))) c= rng phi0 ; then (rng t) /\ (LettersOf S) c= (rng phi0) /\ (LettersOf S) by XBOOLE_1:26; hence (rng w) /\ (LettersOf S) <> {} ; ::_thesis: verum end; A4: for k being Nat st S1[k] holds S1[k + 1] proof let k be Nat; ::_thesis: ( S1[k] implies S1[k + 1] ) assume A5: S1[k] ; ::_thesis: S1[k + 1] let w be string of S; ::_thesis: ( w is k + 1 -wff implies (rng w) /\ (LettersOf S) <> {} ) assume w is k + 1 -wff ; ::_thesis: (rng w) /\ (LettersOf S) <> {} then reconsider phi = w as k + 1 -wff string of S ; percases ( not phi is 0wff or phi is 0wff ) ; suppose not phi is 0wff ; ::_thesis: (rng w) /\ (LettersOf S) <> {} then reconsider phii = phi as non 0wff wff string of S ; reconsider phi1 = head phii as k -wff string of S ; phii = (<*((S -firstChar) . phii)*> ^ phi1) ^ (tail phi) by Th23; then rng phii = (rng (<*((S -firstChar) . phii)*> ^ phi1)) \/ (rng (tail phi)) by FINSEQ_1:31 .= ((rng phi1) \/ (rng <*((S -firstChar) . phii)*>)) \/ (rng (tail phi)) by FINSEQ_1:31 .= (rng phi1) \/ ((rng <*((S -firstChar) . phii)*>) \/ (rng (tail phi))) by XBOOLE_1:4 ; then (rng phi1) null ((rng <*((S -firstChar) . phii)*>) \/ (rng (tail phi))) c= rng phii ; then (rng phi1) /\ (LettersOf S) c= (rng phii) /\ (LettersOf S) by XBOOLE_1:26; hence (rng w) /\ (LettersOf S) <> {} by A5, XBOOLE_1:3; ::_thesis: verum end; suppose phi is 0wff ; ::_thesis: (rng w) /\ (LettersOf S) <> {} hence (rng w) /\ (LettersOf S) <> {} by A1; ::_thesis: verum end; end; end; A6: for m being Nat holds S1[m] from NAT_1:sch_2(A1, A4); assume w is wff ; ::_thesis: (rng w) /\ (LettersOf S) <> {} then reconsider phi = w as wff string of S ; phi is Depth phi -wff by Def31; hence (rng w) /\ (LettersOf S) <> {} by A6; ::_thesis: verum end; registration let S be Language; let phi be wff string of S; cluster(rng phi) /\ (LettersOf S) -> non empty for set ; coherence for b1 being set st b1 = (rng phi) /\ (LettersOf S) holds not b1 is empty by Lm43; end; registration let B be set ; let S be Language; let A be Subset of B; clusterA -occurring -> B -occurring for Element of AllSymbolsOf S; coherence for b1 being Element of S st b1 is A -occurring holds b1 is B -occurring proof set SS = AllSymbolsOf S; set DA = A /\ (((AllSymbolsOf S) *) \ {{}}); set DB = B /\ (((AllSymbolsOf S) *) \ {{}}); reconsider Y = B /\ (((AllSymbolsOf S) *) \ {{}}) as functional set ; reconsider X = A /\ (((AllSymbolsOf S) *) \ {{}}) as Subset of Y by XBOOLE_1:26; A1: SymbolsOf X c= SymbolsOf Y by FOMODEL0:46; let s be Element of S; ::_thesis: ( s is A -occurring implies s is B -occurring ) assume s is A -occurring ; ::_thesis: s is B -occurring then s in SymbolsOf X by Def38; hence s is B -occurring by Def38, A1; ::_thesis: verum end; end; registration let A, B be set ; let S be Language; clusterA null B -absent -> A /\ B -absent for Element of AllSymbolsOf S; coherence for b1 being Element of S st b1 is A null B -absent holds b1 is A /\ B -absent ; end; registration let F be finite set ; let A be set ; let S be Language; clusterF -absent A -absent -> F -absent A \/ F -absent for Element of AllSymbolsOf S; coherence for b1 being F -absent Element of S st b1 is A -absent holds b1 is A \/ F -absent proof set SS = AllSymbolsOf S; set strings = ((AllSymbolsOf S) *) \ {{}}; reconsider DA = (((AllSymbolsOf S) *) \ {{}}) /\ A, DF = (((AllSymbolsOf S) *) \ {{}}) /\ F as Subset of (((AllSymbolsOf S) *) \ {{}}) ; reconsider D = DA \/ DF as Subset of (((AllSymbolsOf S) *) \ {{}}) ; A1: D = (((AllSymbolsOf S) *) \ {{}}) /\ (A \/ F) by XBOOLE_1:23; let s be F -absent Element of S; ::_thesis: ( s is A -absent implies s is A \/ F -absent ) assume s is A -absent ; ::_thesis: s is A \/ F -absent then ( not s in SymbolsOf DA & not s in SymbolsOf DF ) by Def38; then not s in (SymbolsOf DA) \/ (SymbolsOf DF) by XBOOLE_0:def_3; then not s in SymbolsOf D by FOMODEL0:47; hence s is A \/ F -absent by A1, Def38; ::_thesis: verum end; end; registration let S be Language; let U be non empty set ; let I be S,U -interpreter-like Function; cluster(OwnSymbolsOf S) \ (dom I) -> empty for set ; coherence for b1 being set st b1 = (OwnSymbolsOf S) \ (dom I) holds b1 is empty proof OwnSymbolsOf S c= dom I by Lm2; hence for b1 being set st b1 = (OwnSymbolsOf S) \ (dom I) holds b1 is empty ; ::_thesis: verum end; end; theorem :: FOMODEL2:26 for S being Language for U being non empty set for l being literal Element of S for I being b1,b2 -interpreter-like Function ex u being Element of U st ( u = (I . l) . {} & (l,u) ReassignIn I = I ) proof let S be Language; ::_thesis: for U being non empty set for l being literal Element of S for I being S,b1 -interpreter-like Function ex u being Element of U st ( u = (I . l) . {} & (l,u) ReassignIn I = I ) let U be non empty set ; ::_thesis: for l being literal Element of S for I being S,U -interpreter-like Function ex u being Element of U st ( u = (I . l) . {} & (l,u) ReassignIn I = I ) let l be literal Element of S; ::_thesis: for I being S,U -interpreter-like Function ex u being Element of U st ( u = (I . l) . {} & (l,u) ReassignIn I = I ) let I be S,U -interpreter-like Function; ::_thesis: ex u being Element of U st ( u = (I . l) . {} & (l,u) ReassignIn I = I ) set O = OwnSymbolsOf S; (OwnSymbolsOf S) \ (dom I) = {} ; then A1: ( OwnSymbolsOf S c= dom I & {{}} = {{}} ) by XBOOLE_1:37; reconsider lo = l as Element of OwnSymbolsOf S by FOMODEL1:def_19; reconsider i = I . l as Interpreter of l,U ; ( i is Function of (0 -tuples_on U),U & 0 -tuples_on U = {{}} ) by Def2, FOMODEL0:10; then reconsider ii = i as Function of {{}},U ; reconsider e = {} as Element of {{}} by TARSKI:def_1; reconsider u = ii . e as Element of U ; take u ; ::_thesis: ( u = (I . l) . {} & (l,u) ReassignIn I = I ) thus u = (I . l) . {} ; ::_thesis: (l,u) ReassignIn I = I set h = {} .--> u; set H = l .--> ({} .--> u); set J = (l,u) ReassignIn I; {} .--> u = {{}} --> u ; then reconsider hh = {} .--> u as Function of {{}},U ; A2: dom (l .--> ({} .--> u)) = {lo} by FUNCOP_1:13; then A3: dom (l .--> ({} .--> u)) c= dom I by A1, XBOOLE_1:1; now__::_thesis:_for_z_being_Element_of_{{}}_holds_ii_._z_=_hh_._z let z be Element of {{}}; ::_thesis: ii . z = hh . z ( ii . z = u & hh . z = u ) by FUNCOP_1:7; hence ii . z = hh . z ; ::_thesis: verum end; then A4: ii = hh by FUNCT_2:63; now__::_thesis:_for_z_being_set_st_z_in_dom_(l_.-->_({}_.-->_u))_holds_ (l_.-->_({}_.-->_u))_._z_=_I_._z let z be set ; ::_thesis: ( z in dom (l .--> ({} .--> u)) implies (l .--> ({} .--> u)) . z = I . z ) assume z in dom (l .--> ({} .--> u)) ; ::_thesis: (l .--> ({} .--> u)) . z = I . z then A5: z in {l} ; hence (l .--> ({} .--> u)) . z = {} .--> u by FUNCOP_1:7 .= I . z by A4, A5, TARSKI:def_1 ; ::_thesis: verum end; then l .--> ({} .--> u) tolerates I by A3, PARTFUN1:53; then (l,u) ReassignIn I = (l .--> ({} .--> u)) +* I by FUNCT_4:34 .= I by A2, A1, FUNCT_4:19, XBOOLE_1:1 ; hence (l,u) ReassignIn I = I ; ::_thesis: verum end; definition let S be Language; let X be set ; attrX is S -covering means :: FOMODEL2:def 40 for phi being wff string of S holds ( phi in X or xnot phi in X ); end; :: deftheorem defines -covering FOMODEL2:def_40_:_ for S being Language for X being set holds ( X is S -covering iff for phi being wff string of S holds ( phi in X or xnot phi in X ) ); registration let S be Language; clusterS -mincover -> S -covering for set ; coherence for b1 being set st b1 is S -mincover holds b1 is S -covering proof let X be set ; ::_thesis: ( X is S -mincover implies X is S -covering ) assume A1: X is S -mincover ; ::_thesis: X is S -covering thus for phi being wff string of S st not phi in X holds xnot phi in X by A1, Def34; :: according to FOMODEL2:def_40 ::_thesis: verum thus verum ; ::_thesis: verum end; end; registration let U be non empty set ; let S be Language; let phi be non 0wff wff non exal string of S; let I be Element of U -InterpretersOf S; cluster(I -TruthEval phi) \+\ ((I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi))) -> empty for set ; coherence for b1 being set st b1 = (I -TruthEval phi) \+\ ((I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi))) holds b1 is empty proof set h = head phi; set t = tail phi; set A = I -TruthEval phi; set B = I -TruthEval (head phi); set C = I -TruthEval (tail phi); set RH = (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)); set F = S -firstChar ; set l = (S -firstChar) . phi; set N = TheNorSymbOf S; ((S -firstChar) . phi) \+\ (TheNorSymbOf S) = {} ; then (S -firstChar) . phi = TheNorSymbOf S by FOMODEL0:29; then A1: phi = (<*(TheNorSymbOf S)*> ^ (head phi)) ^ (tail phi) by Th23; (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = I -TruthEval phi proof percases ( not (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = 0 or (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = 0 ) ; supposeA2: not (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = 0 ; ::_thesis: (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = I -TruthEval phi ( not I -TruthEval (head phi) = 1 & not I -TruthEval (tail phi) = 1 ) by A2; then ( I -TruthEval (head phi) = 0 & I -TruthEval (tail phi) = 0 ) by FOMODEL0:39; hence (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = I -TruthEval phi by A1, Lm37; ::_thesis: verum end; supposeA3: (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = 0 ; ::_thesis: (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = I -TruthEval phi then ( 1 - (I -TruthEval (head phi)) = 0 or 1 - (I -TruthEval (tail phi)) = 0 ) ; then not I -TruthEval phi = 1 by A1, Lm37; hence (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = I -TruthEval phi by A3, FOMODEL0:39; ::_thesis: verum end; end; end; hence for b1 being set st b1 = (I -TruthEval phi) \+\ ((I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi))) holds b1 is empty ; ::_thesis: verum end; end; definition let S be Language; func ExFormulasOf S -> Subset of (((AllSymbolsOf S) *) \ {{}}) equals :: FOMODEL2:def 41 { phi where phi is string of S : ( phi is wff & phi is exal ) } ; coherence { phi where phi is string of S : ( phi is wff & phi is exal ) } is Subset of (((AllSymbolsOf S) *) \ {{}}) proof set SS = AllSymbolsOf S; set strings = ((AllSymbolsOf S) *) \ {{}}; defpred S1[ string of S] means ( $1 is wff & $1 is exal ); defpred S2[ set ] means verum; deffunc H1( set ) -> set = $1; A1: for w being string of S st S1[w] holds S2[w] ; set IT = { H1(w) where w is string of S : S1[w] } ; { H1(w) where w is string of S : S1[w] } c= { H1(w) where w is string of S : S2[w] } from FRAENKEL:sch_1(A1); hence { phi where phi is string of S : ( phi is wff & phi is exal ) } is Subset of (((AllSymbolsOf S) *) \ {{}}) by DOMAIN_1:18; ::_thesis: verum end; end; :: deftheorem defines ExFormulasOf FOMODEL2:def_41_:_ for S being Language holds ExFormulasOf S = { phi where phi is string of S : ( phi is wff & phi is exal ) } ; registration let S be Language; cluster ExFormulasOf S -> non empty for set ; coherence for b1 being set st b1 = ExFormulasOf S holds not b1 is empty proof the wff exal string of S in ExFormulasOf S ; hence for b1 being set st b1 = ExFormulasOf S holds not b1 is empty ; ::_thesis: verum end; end; registration let S be Language; cluster -> wff exal for Element of ExFormulasOf S; coherence for b1 being Element of ExFormulasOf S holds ( b1 is exal & b1 is wff ) proof set EF = ExFormulasOf S; let x be Element of ExFormulasOf S; ::_thesis: ( x is exal & x is wff ) x in ExFormulasOf S ; then consider w being string of S such that A1: ( x = w & w is wff & w is exal ) ; reconsider phi = x as wff exal string of S by A1; phi is wff exal string of S ; hence ( x is exal & x is wff ) ; ::_thesis: verum end; end; registration let S be Language; cluster -> wff for Element of ExFormulasOf S; coherence for b1 being Element of ExFormulasOf S holds b1 is wff ; end; registration let S be Language; cluster -> exal for Element of ExFormulasOf S; coherence for b1 being Element of ExFormulasOf S holds b1 is exal ; end; registration let S be Language; cluster(ExFormulasOf S) \ (AllFormulasOf S) -> empty for set ; coherence for b1 being set st b1 = (ExFormulasOf S) \ (AllFormulasOf S) holds b1 is empty proof set EF = ExFormulasOf S; set FF = AllFormulasOf S; for x being set st x in ExFormulasOf S holds x in AllFormulasOf S by Th16; then ExFormulasOf S c= AllFormulasOf S by TARSKI:def_3; hence for b1 being set st b1 = (ExFormulasOf S) \ (AllFormulasOf S) holds b1 is empty ; ::_thesis: verum end; end; registration let U be non empty set ; let S1 be Language; let S2 be S1 -extending Language; cluster Relation-like Function-like S2,U -interpreter-like -> S1,U -interpreter-like for set ; coherence for b1 being Function st b1 is S2,U -interpreter-like holds b1 is S1,U -interpreter-like proof set O1 = OwnSymbolsOf S1; set O2 = OwnSymbolsOf S2; set a1 = the adicity of S1; set a2 = the adicity of S2; set AS1 = AtomicFormulaSymbolsOf S1; set E2 = TheEqSymbOf S2; set AS2 = AtomicFormulaSymbolsOf S2; set E1 = TheEqSymbOf S1; let I2 be Function; ::_thesis: ( I2 is S2,U -interpreter-like implies I2 is S1,U -interpreter-like ) assume I2 is S2,U -interpreter-like ; ::_thesis: I2 is S1,U -interpreter-like then reconsider I222 = I2 as S2,U -interpreter-like Function ; reconsider I22 = I222 as Interpreter of S2,U by Def4; (OwnSymbolsOf S1) \ (OwnSymbolsOf S2) = {} ; then A1: ( OwnSymbolsOf S1 c= OwnSymbolsOf S2 & dom the adicity of S1 = AtomicFormulaSymbolsOf S1 & dom the adicity of S2 = AtomicFormulaSymbolsOf S2 ) by FUNCT_2:def_1, XBOOLE_1:37; the adicity of S1 c= the adicity of S2 by FOMODEL1:def_41; then A2: dom the adicity of S1 c= dom the adicity of S2 by RELAT_1:11; now__::_thesis:_for_s1_being_own_Element_of_S1_holds_I2_._s1_is_Interpreter_of_s1,U let s1 be own Element of S1; ::_thesis: I2 . b1 is Interpreter of b1,U A3: s1 in AtomicFormulaSymbolsOf S1 by FOMODEL1:def_20; then A4: s1 in dom the adicity of S1 by FUNCT_2:def_1; s1 in AtomicFormulaSymbolsOf S2 by A3, A2, A1; then reconsider s2 = s1 as ofAtomicFormula Element of S2 by FOMODEL1:def_20; s1 <> TheEqSymbOf S1 ; then ( s2 <> TheEqSymbOf S2 & s2 <> TheNorSymbOf S2 ) by FOMODEL1:def_41; then s2 is Element of OwnSymbolsOf S2 by FOMODEL1:15; then reconsider s2 = s2 as own Element of S2 by FOMODEL1:def_19; reconsider i2 = I22 . s2 as Interpreter of s2,U by Def3; set m2 = ar s2; set m1 = ar s1; the adicity of S1 c= the adicity of S2 by FOMODEL1:def_41; then the adicity of S2 . s2 = ( the adicity of S2 +* the adicity of S1) . s2 by FUNCT_4:98 .= the adicity of S1 . s2 by A4, FUNCT_4:13 ; then A5: ar s1 = ar s2 ; percases ( s2 is relational or not s2 is relational ) ; suppose s2 is relational ; ::_thesis: I2 . b1 is Interpreter of b1,U then ( s1 is relational & i2 is Function of ((abs (ar s1)) -tuples_on U),BOOLEAN ) by A5, Def2; hence I2 . s1 is Interpreter of s1,U by Def2; ::_thesis: verum end; suppose not s2 is relational ; ::_thesis: I2 . b1 is Interpreter of b1,U then ( i2 is Function of ((abs (ar s1)) -tuples_on U),U & not s1 is relational ) by A5, Def2; hence I2 . s1 is Interpreter of s1,U by Def2; ::_thesis: verum end; end; end; then ( I2 is Interpreter of S1,U & I222 is Function-yielding ) by Def3; hence I2 is S1,U -interpreter-like by Def4; ::_thesis: verum end; end; registration let U be non empty set ; let S1 be Language; let S2 be S1 -extending Language; let I be S2,U -interpreter-like Function; clusterI | (OwnSymbolsOf S1) -> S1,U -interpreter-like for Function; coherence for b1 being Function st b1 = I | (OwnSymbolsOf S1) holds b1 is S1,U -interpreter-like ; end; registration let U be non empty set ; let S1 be Language; let S2 be S1 -extending Language; let I1 be Element of U -InterpretersOf S1; let I2 be S2,U -interpreter-like Function; clusterI2 +* I1 -> S2,U -interpreter-like ; coherence I2 +* I1 is S2,U -interpreter-like proof set IT = I2 +* I1; set O1 = OwnSymbolsOf S1; set O2 = OwnSymbolsOf S2; set a1 = the adicity of S1; set a2 = the adicity of S2; set AS1 = AtomicFormulaSymbolsOf S1; now__::_thesis:_for_s2_being_own_Element_of_S2_holds_(I2_+*_I1)_._s2_is_Interpreter_of_s2,U let s2 be own Element of S2; ::_thesis: (I2 +* I1) . b1 is Interpreter of b1,U percases ( s2 in dom I1 or not s2 in dom I1 ) ; suppose s2 in dom I1 ; ::_thesis: (I2 +* I1) . b1 is Interpreter of b1,U then A1: ( s2 in OwnSymbolsOf S1 & (I2 +* I1) . s2 = I1 . s2 ) by FUNCT_4:13; then reconsider s1 = s2 as own Element of S1 by FOMODEL1:def_19; s1 in AtomicFormulaSymbolsOf S1 by FOMODEL1:def_20; then A2: s1 in dom the adicity of S1 by FUNCT_2:def_1; reconsider i1 = I1 . s1 as Interpreter of s1,U ; set m2 = ar s2; set m1 = ar s1; the adicity of S1 c= the adicity of S2 by FOMODEL1:def_41; then the adicity of S2 . s2 = ( the adicity of S2 +* the adicity of S1) . s2 by FUNCT_4:98 .= the adicity of S1 . s2 by A2, FUNCT_4:13 ; then A3: ar s1 = ar s2 ; percases ( s1 is relational or not s1 is relational ) ; suppose s1 is relational ; ::_thesis: (I2 +* I1) . b1 is Interpreter of b1,U then ( s2 is relational & i1 is Function of ((abs (ar s2)) -tuples_on U),BOOLEAN ) by A3, Def2; hence (I2 +* I1) . s2 is Interpreter of s2,U by A1, Def2; ::_thesis: verum end; suppose not s1 is relational ; ::_thesis: (I2 +* I1) . b1 is Interpreter of b1,U then ( i1 is Function of ((abs (ar s2)) -tuples_on U),U & not s2 is relational ) by A3, Def2; hence (I2 +* I1) . s2 is Interpreter of s2,U by Def2, A1; ::_thesis: verum end; end; end; suppose not s2 in dom I1 ; ::_thesis: (I2 +* I1) . b1 is Interpreter of b1,U then (I2 +* I1) . s2 = I2 . s2 by FUNCT_4:11; hence (I2 +* I1) . s2 is Interpreter of s2,U ; ::_thesis: verum end; end; end; then I2 +* I1 is Interpreter of S2,U by Def3; hence I2 +* I1 is S2,U -interpreter-like by Def4; ::_thesis: verum end; end; definition let U be non empty set ; let S be Language; let I be Element of U -InterpretersOf S; let X be set ; attrX is I -satisfied means :Def42: :: FOMODEL2:def 42 for phi being wff string of S st phi in X holds I -TruthEval phi = 1; end; :: deftheorem Def42 defines -satisfied FOMODEL2:def_42_:_ for U being non empty set for S being Language for I being Element of U -InterpretersOf S for X being set holds ( X is I -satisfied iff for phi being wff string of S st phi in X holds I -TruthEval phi = 1 ); definition let S be Language; let U be non empty set ; let X be set ; let I be Element of U -InterpretersOf S; attrI is X -satisfying means :Def43: :: FOMODEL2:def 43 X is I -satisfied ; end; :: deftheorem Def43 defines -satisfying FOMODEL2:def_43_:_ for S being Language for U being non empty set for X being set for I being Element of U -InterpretersOf S holds ( I is X -satisfying iff X is I -satisfied ); registration let U be non empty set ; let S be Language; let e be empty set ; let I be Element of U -InterpretersOf S; clustere null I -> I -satisfied ; coherence e null I is I -satisfied proof for phi being wff string of S st phi in e null I holds I -TruthEval phi = 1 ; hence e null I is I -satisfied by Def42; ::_thesis: verum end; end; registration let X be set ; let U be non empty set ; let S be Language; let I be Element of U -InterpretersOf S; clusterI -satisfied for Element of bool X; existence ex b1 being Subset of X st b1 is I -satisfied proof reconsider e = {} null I as Subset of X by XBOOLE_1:2; take e ; ::_thesis: e is I -satisfied thus e is I -satisfied ; ::_thesis: verum end; end; registration let U be non empty set ; let S be Language; let I be Element of U -InterpretersOf S; clusterI -satisfied for set ; existence ex b1 being set st b1 is I -satisfied proof take the I -satisfied Subset of 1 ; ::_thesis: the I -satisfied Subset of 1 is I -satisfied thus the I -satisfied Subset of 1 is I -satisfied ; ::_thesis: verum end; end; registration let U be non empty set ; let S be Language; let I be Element of U -InterpretersOf S; let X be I -satisfied set ; cluster -> I -satisfied for Element of bool X; coherence for b1 being Subset of X holds b1 is I -satisfied proof let Y be Subset of X; ::_thesis: Y is I -satisfied for phi being wff string of S st phi in Y holds I -TruthEval phi = 1 by Def42; hence Y is I -satisfied by Def42; ::_thesis: verum end; end; registration let U be non empty set ; let S be Language; let I be Element of U -InterpretersOf S; let X, Y be I -satisfied set ; clusterX \/ Y -> I -satisfied ; coherence X \/ Y is I -satisfied proof now__::_thesis:_for_phi_being_wff_string_of_S_st_phi_in_X_\/_Y_holds_ I_-TruthEval_phi_=_1 let phi be wff string of S; ::_thesis: ( phi in X \/ Y implies I -TruthEval phi = 1 ) assume phi in X \/ Y ; ::_thesis: I -TruthEval phi = 1 then ( phi in X or phi in Y ) by XBOOLE_0:def_3; hence I -TruthEval phi = 1 by Def42; ::_thesis: verum end; hence X \/ Y is I -satisfied by Def42; ::_thesis: verum end; end; registration let U be non empty set ; let S be Language; let I be Element of U -InterpretersOf S; let X be I -satisfied set ; clusterI null X -> X -satisfying for Element of U -InterpretersOf S; coherence for b1 being Element of U -InterpretersOf S st b1 = I null X holds b1 is X -satisfying by Def43; end; definition let S be Language; let X be set ; attrX is S -correct means :Def44: :: FOMODEL2:def 44 for U being non empty set for I being Element of U -InterpretersOf S for x being b2 -satisfied set for phi being wff string of S st [x,phi] in X holds I -TruthEval phi = 1; end; :: deftheorem Def44 defines -correct FOMODEL2:def_44_:_ for S being Language for X being set holds ( X is S -correct iff for U being non empty set for I being Element of U -InterpretersOf S for x being b4 -satisfied set for phi being wff string of S st [x,phi] in X holds I -TruthEval phi = 1 ); registration let S be Language; cluster{} null S -> S -correct ; coherence {} null S is S -correct proof for U being non empty set for I being Element of U -InterpretersOf S for x being b2 -satisfied set for phi being wff string of S st [x,phi] in {} null S holds I -TruthEval phi = 1 ; hence {} null S is S -correct by Def44; ::_thesis: verum end; end; registration let S be Language; let X be set ; clusterS -correct for Element of bool X; existence ex b1 being Subset of X st b1 is S -correct proof reconsider IT = {} null S as Subset of X by XBOOLE_1:2; take IT ; ::_thesis: IT is S -correct thus IT is S -correct ; ::_thesis: verum end; end; theorem :: FOMODEL2:27 for S being Language for U being non empty set for phi being wff string of S for I being Element of U -InterpretersOf S holds ( I -TruthEval phi = 1 iff {phi} is I -satisfied ) proof let S be Language; ::_thesis: for U being non empty set for phi being wff string of S for I being Element of U -InterpretersOf S holds ( I -TruthEval phi = 1 iff {phi} is I -satisfied ) let U be non empty set ; ::_thesis: for phi being wff string of S for I being Element of U -InterpretersOf S holds ( I -TruthEval phi = 1 iff {phi} is I -satisfied ) let phi be wff string of S; ::_thesis: for I being Element of U -InterpretersOf S holds ( I -TruthEval phi = 1 iff {phi} is I -satisfied ) let I be Element of U -InterpretersOf S; ::_thesis: ( I -TruthEval phi = 1 iff {phi} is I -satisfied ) hereby ::_thesis: ( {phi} is I -satisfied implies I -TruthEval phi = 1 ) assume A1: I -TruthEval phi = 1 ; ::_thesis: {phi} is I -satisfied for psi being wff string of S st psi in {phi} holds I -TruthEval psi = 1 by A1, TARSKI:def_1; hence {phi} is I -satisfied by Def42; ::_thesis: verum end; assume {phi} is I -satisfied ; ::_thesis: I -TruthEval phi = 1 then reconsider X = {phi} as I -satisfied set ; phi in X by TARSKI:def_1; hence I -TruthEval phi = 1 by Def42; ::_thesis: verum end; theorem :: FOMODEL2:28 for S being Language for s being Element of S for w being string of S holds ( s is {w} -occurring iff s in rng w ) proof let S be Language; ::_thesis: for s being Element of S for w being string of S holds ( s is {w} -occurring iff s in rng w ) let s be Element of S; ::_thesis: for w being string of S holds ( s is {w} -occurring iff s in rng w ) let w be string of S; ::_thesis: ( s is {w} -occurring iff s in rng w ) set SS = AllSymbolsOf S; set strings = ((AllSymbolsOf S) *) \ {{}}; reconsider X = {w} as non empty Subset of (((AllSymbolsOf S) *) \ {{}}) ; SymbolsOf ((((AllSymbolsOf S) *) \ {{}}) /\ X) = rng w by FOMODEL0:45; hence ( s is {w} -occurring iff s in rng w ) by Def38; ::_thesis: verum end; registration let U be non empty set ; let S be Language; let phi1, phi2 be wff string of S; let I be Element of U -InterpretersOf S; cluster(I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2)) \+\ ((I -TruthEval phi1) 'nor' (I -TruthEval phi2)) -> empty for set ; coherence for b1 being set st b1 = (I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2)) \+\ ((I -TruthEval phi1) 'nor' (I -TruthEval phi2)) holds b1 is empty proof set F = S -firstChar ; set N = TheNorSymbOf S; set phi = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2; set A = I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2); set A1 = I -TruthEval phi1; set A2 = I -TruthEval phi2; set h = head ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2); set t = tail ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2); set H = I -TruthEval (head ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2)); set T = I -TruthEval (tail ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2)); A1: ( phi1 = head ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) & phi2 = tail ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) ) by Th23; thus for b1 being set st b1 = (I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2)) \+\ ((I -TruthEval phi1) 'nor' (I -TruthEval phi2)) holds b1 is empty by A1; ::_thesis: verum end; end; registration let S be Language; let phi be wff string of S; let U be non empty set ; let I be Element of U -InterpretersOf S; cluster(I -TruthEval (xnot phi)) \+\ ('not' (I -TruthEval phi)) -> empty for set ; coherence for b1 being set st b1 = (I -TruthEval (xnot phi)) \+\ ('not' (I -TruthEval phi)) holds b1 is empty proof set N = TheNorSymbOf S; set v1 = I -TruthEval phi; set psi = xnot phi; (I -TruthEval (xnot phi)) \+\ ((I -TruthEval phi) 'nor' (I -TruthEval phi)) = {} ; hence for b1 being set st b1 = (I -TruthEval (xnot phi)) \+\ ('not' (I -TruthEval phi)) holds b1 is empty ; ::_thesis: verum end; end; definition let X be set ; let S be Language; let phi be wff string of S; attrphi is X -implied means :: FOMODEL2:def 45 for U being non empty set for I being Element of U -InterpretersOf S st X is I -satisfied holds I -TruthEval phi = 1; end; :: deftheorem defines -implied FOMODEL2:def_45_:_ for X being set for S being Language for phi being wff string of S holds ( phi is X -implied iff for U being non empty set for I being Element of U -InterpretersOf S st X is I -satisfied holds I -TruthEval phi = 1 );