:: FOMODEL1 semantic presentation begin registration let z be zero integer number ; clusterK334(z) -> zero integer for integer number ; coherence for b1 being integer number st b1 = abs z holds b1 is empty by COMPLEX1:47; end; registration cluster complex ext-real negative real integer for set ; existence ex b1 being real number st ( b1 is negative & b1 is integer ) proof take - 1 ; ::_thesis: ( - 1 is negative & - 1 is integer ) thus ( - 1 is negative & - 1 is integer ) ; ::_thesis: verum end; cluster positive integer -> natural integer for set ; coherence for b1 being integer number st b1 is positive holds b1 is natural ; end; registration let S be non degenerated ZeroOneStr ; cluster the carrier of S \ { the OneF of S} -> non empty ; coherence not the carrier of S \ { the OneF of S} is empty proof set z = the ZeroF of S; set o = the OneF of S; ( the ZeroF of S = 0. S & 1. S <> 0. S & 1. S = the OneF of S ) ; then the ZeroF of S <> the OneF of S ; then ( the ZeroF of S in the carrier of S & not the ZeroF of S in { the OneF of S} ) by TARSKI:def_1; hence not the carrier of S \ { the OneF of S} is empty by XBOOLE_0:def_5; ::_thesis: verum end; end; definition attrc1 is strict ; struct Language-like -> ZeroOneStr ; aggrLanguage-like(# carrier, ZeroF, OneF, adicity #) -> Language-like ; sel adicity c1 -> Function of ( the carrier of c1 \ { the OneF of c1}),INT; end; definition let S be Language-like ; func AllSymbolsOf S -> set equals :: FOMODEL1:def 1 the carrier of S; coherence the carrier of S is set ; func LettersOf S -> set equals :: FOMODEL1:def 2 the adicity of S " {0}; coherence the adicity of S " {0} is set ; func OpSymbolsOf S -> set equals :: FOMODEL1:def 3 the adicity of S " (NAT \ {0}); coherence the adicity of S " (NAT \ {0}) is set ; func RelSymbolsOf S -> set equals :: FOMODEL1:def 4 the adicity of S " (INT \ NAT); coherence the adicity of S " (INT \ NAT) is set ; func TermSymbolsOf S -> set equals :: FOMODEL1:def 5 the adicity of S " NAT; coherence the adicity of S " NAT is set ; func LowerCompoundersOf S -> set equals :: FOMODEL1:def 6 the adicity of S " (INT \ {0}); coherence the adicity of S " (INT \ {0}) is set ; func TheEqSymbOf S -> set equals :: FOMODEL1:def 7 the ZeroF of S; coherence the ZeroF of S is set ; func TheNorSymbOf S -> set equals :: FOMODEL1:def 8 the OneF of S; coherence the OneF of S is set ; func OwnSymbolsOf S -> set equals :: FOMODEL1:def 9 the carrier of S \ { the ZeroF of S, the OneF of S}; coherence the carrier of S \ { the ZeroF of S, the OneF of S} is set ; end; :: deftheorem defines AllSymbolsOf FOMODEL1:def_1_:_ for S being Language-like holds AllSymbolsOf S = the carrier of S; :: deftheorem defines LettersOf FOMODEL1:def_2_:_ for S being Language-like holds LettersOf S = the adicity of S " {0}; :: deftheorem defines OpSymbolsOf FOMODEL1:def_3_:_ for S being Language-like holds OpSymbolsOf S = the adicity of S " (NAT \ {0}); :: deftheorem defines RelSymbolsOf FOMODEL1:def_4_:_ for S being Language-like holds RelSymbolsOf S = the adicity of S " (INT \ NAT); :: deftheorem defines TermSymbolsOf FOMODEL1:def_5_:_ for S being Language-like holds TermSymbolsOf S = the adicity of S " NAT; :: deftheorem defines LowerCompoundersOf FOMODEL1:def_6_:_ for S being Language-like holds LowerCompoundersOf S = the adicity of S " (INT \ {0}); :: deftheorem defines TheEqSymbOf FOMODEL1:def_7_:_ for S being Language-like holds TheEqSymbOf S = the ZeroF of S; :: deftheorem defines TheNorSymbOf FOMODEL1:def_8_:_ for S being Language-like holds TheNorSymbOf S = the OneF of S; :: deftheorem defines OwnSymbolsOf FOMODEL1:def_9_:_ for S being Language-like holds OwnSymbolsOf S = the carrier of S \ { the ZeroF of S, the OneF of S}; definition let S be Language-like ; mode Element of S is Element of AllSymbolsOf S; func AtomicFormulaSymbolsOf S -> set equals :: FOMODEL1:def 10 (AllSymbolsOf S) \ {(TheNorSymbOf S)}; coherence (AllSymbolsOf S) \ {(TheNorSymbOf S)} is set ; func AtomicTermsOf S -> set equals :: FOMODEL1:def 11 1 -tuples_on (LettersOf S); coherence 1 -tuples_on (LettersOf S) is set ; attrS is operational means :: FOMODEL1:def 12 not OpSymbolsOf S is empty ; attrS is relational means :: FOMODEL1:def 13 not (RelSymbolsOf S) \ {(TheEqSymbOf S)} is empty ; end; :: deftheorem defines AtomicFormulaSymbolsOf FOMODEL1:def_10_:_ for S being Language-like holds AtomicFormulaSymbolsOf S = (AllSymbolsOf S) \ {(TheNorSymbOf S)}; :: deftheorem defines AtomicTermsOf FOMODEL1:def_11_:_ for S being Language-like holds AtomicTermsOf S = 1 -tuples_on (LettersOf S); :: deftheorem defines operational FOMODEL1:def_12_:_ for S being Language-like holds ( S is operational iff not OpSymbolsOf S is empty ); :: deftheorem defines relational FOMODEL1:def_13_:_ for S being Language-like holds ( S is relational iff not (RelSymbolsOf S) \ {(TheEqSymbOf S)} is empty ); definition let S be Language-like ; let s be Element of S; attrs is literal means :Def14: :: FOMODEL1:def 14 s in LettersOf S; attrs is low-compounding means :Def15: :: FOMODEL1:def 15 s in LowerCompoundersOf S; attrs is operational means :Def16: :: FOMODEL1:def 16 s in OpSymbolsOf S; attrs is relational means :Def17: :: FOMODEL1:def 17 s in RelSymbolsOf S; attrs is termal means :Def18: :: FOMODEL1:def 18 s in TermSymbolsOf S; attrs is own means :Def19: :: FOMODEL1:def 19 s in OwnSymbolsOf S; attrs is ofAtomicFormula means :Def20: :: FOMODEL1:def 20 s in AtomicFormulaSymbolsOf S; end; :: deftheorem Def14 defines literal FOMODEL1:def_14_:_ for S being Language-like for s being Element of S holds ( s is literal iff s in LettersOf S ); :: deftheorem Def15 defines low-compounding FOMODEL1:def_15_:_ for S being Language-like for s being Element of S holds ( s is low-compounding iff s in LowerCompoundersOf S ); :: deftheorem Def16 defines operational FOMODEL1:def_16_:_ for S being Language-like for s being Element of S holds ( s is operational iff s in OpSymbolsOf S ); :: deftheorem Def17 defines relational FOMODEL1:def_17_:_ for S being Language-like for s being Element of S holds ( s is relational iff s in RelSymbolsOf S ); :: deftheorem Def18 defines termal FOMODEL1:def_18_:_ for S being Language-like for s being Element of S holds ( s is termal iff s in TermSymbolsOf S ); :: deftheorem Def19 defines own FOMODEL1:def_19_:_ for S being Language-like for s being Element of S holds ( s is own iff s in OwnSymbolsOf S ); :: deftheorem Def20 defines ofAtomicFormula FOMODEL1:def_20_:_ for S being Language-like for s being Element of S holds ( s is ofAtomicFormula iff s in AtomicFormulaSymbolsOf S ); definition let S be ZeroOneStr ; let s be Element of the carrier of S \ { the OneF of S}; func TrivialArity s -> integer number equals :Def21: :: FOMODEL1:def 21 - 2 if s = the ZeroF of S otherwise 0 ; coherence ( ( s = the ZeroF of S implies - 2 is integer number ) & ( not s = the ZeroF of S implies 0 is integer number ) ) ; consistency for b1 being integer number holds verum ; end; :: deftheorem Def21 defines TrivialArity FOMODEL1:def_21_:_ for S being ZeroOneStr for s being Element of the carrier of S \ { the OneF of S} holds ( ( s = the ZeroF of S implies TrivialArity s = - 2 ) & ( not s = the ZeroF of S implies TrivialArity s = 0 ) ); definition let S be ZeroOneStr ; let s be Element of the carrier of S \ { the OneF of S}; :: original: TrivialArity redefine func TrivialArity s -> Element of INT ; coherence TrivialArity s is Element of INT by INT_1:def_2; end; definition let S be non degenerated ZeroOneStr ; funcS TrivialArity -> Function of ( the carrier of S \ { the OneF of S}),INT means :Def22: :: FOMODEL1:def 22 for s being Element of the carrier of S \ { the OneF of S} holds it . s = TrivialArity s; existence ex b1 being Function of ( the carrier of S \ { the OneF of S}),INT st for s being Element of the carrier of S \ { the OneF of S} holds b1 . s = TrivialArity s proof set D = the carrier of S \ { the OneF of S}; deffunc H1( Element of the carrier of S \ { the OneF of S}) -> Element of INT = TrivialArity $1; consider f being Function of ( the carrier of S \ { the OneF of S}),INT such that A1: for x being Element of the carrier of S \ { the OneF of S} holds f . x = H1(x) from FUNCT_2:sch_4(); take f ; ::_thesis: for s being Element of the carrier of S \ { the OneF of S} holds f . s = TrivialArity s thus for s being Element of the carrier of S \ { the OneF of S} holds f . s = TrivialArity s by A1; ::_thesis: verum end; uniqueness for b1, b2 being Function of ( the carrier of S \ { the OneF of S}),INT st ( for s being Element of the carrier of S \ { the OneF of S} holds b1 . s = TrivialArity s ) & ( for s being Element of the carrier of S \ { the OneF of S} holds b2 . s = TrivialArity s ) holds b1 = b2 proof set D = the carrier of S \ { the OneF of S}; let IT1, IT2 be Function of ( the carrier of S \ { the OneF of S}),INT; ::_thesis: ( ( for s being Element of the carrier of S \ { the OneF of S} holds IT1 . s = TrivialArity s ) & ( for s being Element of the carrier of S \ { the OneF of S} holds IT2 . s = TrivialArity s ) implies IT1 = IT2 ) A2: ( dom IT1 = the carrier of S \ { the OneF of S} & dom IT2 = the carrier of S \ { the OneF of S} ) by FUNCT_2:def_1; assume A3: for s being Element of the carrier of S \ { the OneF of S} holds IT1 . s = TrivialArity s ; ::_thesis: ( ex s being Element of the carrier of S \ { the OneF of S} st not IT2 . s = TrivialArity s or IT1 = IT2 ) assume A4: for s being Element of the carrier of S \ { the OneF of S} holds IT2 . s = TrivialArity s ; ::_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 reconsider s = x as Element of the carrier of S \ { the OneF of S} ; IT1 . s = TrivialArity s by A3 .= IT2 . s by A4 ; hence IT1 . x = IT2 . x ; ::_thesis: verum end; hence IT1 = IT2 by A2, FUNCT_1:2; ::_thesis: verum end; end; :: deftheorem Def22 defines TrivialArity FOMODEL1:def_22_:_ for S being non degenerated ZeroOneStr for b2 being Function of ( the carrier of S \ { the OneF of S}),INT holds ( b2 = S TrivialArity iff for s being Element of the carrier of S \ { the OneF of S} holds b2 . s = TrivialArity s ); registration cluster non empty non degenerated non trivial infinite for ZeroOneStr ; existence ex b1 being non degenerated ZeroOneStr st b1 is infinite proof set X = the infinite set ; set Z = the Element of the infinite set ; set O = the Element of the infinite set \ { the Element of the infinite set }; reconsider Y = the infinite set \ { the Element of the infinite set } as infinite set ; not the Element of the infinite set \ { the Element of the infinite set } in { the Element of the infinite set } by XBOOLE_0:def_5; then A1: the Element of the infinite set \ { the Element of the infinite set } <> the Element of the infinite set by TARSKI:def_1; reconsider OO = the Element of the infinite set \ { the Element of the infinite set } as Element of the infinite set ; set S = ZeroOneStr(# the infinite set , the Element of the infinite set ,OO #); ( 1. ZeroOneStr(# the infinite set , the Element of the infinite set ,OO #) = OO & 0. ZeroOneStr(# the infinite set , the Element of the infinite set ,OO #) = the Element of the infinite set ) ; then reconsider SS = ZeroOneStr(# the infinite set , the Element of the infinite set ,OO #) as non degenerated ZeroOneStr by A1, STRUCT_0:def_8; take SS ; ::_thesis: SS is infinite thus SS is infinite ; ::_thesis: verum end; end; registration let S be non degenerated infinite ZeroOneStr ; cluster(S TrivialArity) " {0} -> infinite ; coherence not (S TrivialArity) " {0} is finite proof set I = the carrier of S; set F0 = { the ZeroF of S}; set F1 = { the OneF of S}; set D1 = the carrier of S \ { the OneF of S}; set D0 = ( the carrier of S \ { the OneF of S}) \ { the ZeroF of S}; set f = S TrivialArity ; A1: dom (S TrivialArity) = the carrier of S \ { the OneF of S} by FUNCT_2:def_1; for x being set st x in ( the carrier of S \ { the OneF of S}) \ { the ZeroF of S} holds x in (S TrivialArity) " {0} proof let x be set ; ::_thesis: ( x in ( the carrier of S \ { the OneF of S}) \ { the ZeroF of S} implies x in (S TrivialArity) " {0} ) assume A2: x in ( the carrier of S \ { the OneF of S}) \ { the ZeroF of S} ; ::_thesis: x in (S TrivialArity) " {0} then reconsider xx = x as Element of the carrier of S \ { the OneF of S} ; not xx in { the ZeroF of S} by A2, XBOOLE_0:def_5; then xx <> the ZeroF of S by TARSKI:def_1; then ( TrivialArity xx = 0 & (S TrivialArity) . xx = TrivialArity xx ) by Def21, Def22; then ( xx in dom (S TrivialArity) & (S TrivialArity) . xx in {0} ) by A1, TARSKI:def_1; hence x in (S TrivialArity) " {0} by FUNCT_1:def_7; ::_thesis: verum end; then A3: ( the carrier of S \ { the OneF of S}) \ { the ZeroF of S} c= (S TrivialArity) " {0} by TARSKI:def_3; reconsider D11 = the carrier of S \ { the OneF of S} as infinite set ; thus not (S TrivialArity) " {0} is finite by A3; ::_thesis: verum end; end; Lm1: for S being non degenerated ZeroOneStr holds (S TrivialArity) . the ZeroF of S = - 2 proof let S be non degenerated ZeroOneStr ; ::_thesis: (S TrivialArity) . the ZeroF of S = - 2 set f = S TrivialArity ; set x0 = the ZeroF of S; set x1 = the OneF of S; ( the ZeroF of S = 0. S & the OneF of S = 1. S & 0. S <> 1. S ) ; then not the ZeroF of S in { the OneF of S} by TARSKI:def_1; then reconsider x = the ZeroF of S as Element of the carrier of S \ { the OneF of S} by XBOOLE_0:def_5; (S TrivialArity) . x = TrivialArity x by Def22 .= - 2 by Def21 ; hence (S TrivialArity) . the ZeroF of S = - 2 ; ::_thesis: verum end; definition let S be Language-like ; attrS is eligible means :Def23: :: FOMODEL1:def 23 ( LettersOf S is infinite & the adicity of S . (TheEqSymbOf S) = - 2 ); end; :: deftheorem Def23 defines eligible FOMODEL1:def_23_:_ for S being Language-like holds ( S is eligible iff ( LettersOf S is infinite & the adicity of S . (TheEqSymbOf S) = - 2 ) ); Lm2: ex S being Language-like st ( not S is degenerated & S is eligible ) proof set SS = the non degenerated infinite ZeroOneStr ; A1: 0. the non degenerated infinite ZeroOneStr <> 1. the non degenerated infinite ZeroOneStr ; set f = the non degenerated infinite ZeroOneStr TrivialArity ; take S = Language-like(# the carrier of the non degenerated infinite ZeroOneStr , the ZeroF of the non degenerated infinite ZeroOneStr , the OneF of the non degenerated infinite ZeroOneStr ,( the non degenerated infinite ZeroOneStr TrivialArity) #); ::_thesis: ( not S is degenerated & S is eligible ) 0. S <> 1. S by A1; hence not S is degenerated by STRUCT_0:def_8; ::_thesis: S is eligible set g = the adicity of S; thus LettersOf S is infinite ; :: according to FOMODEL1:def_23 ::_thesis: the adicity of S . (TheEqSymbOf S) = - 2 thus the adicity of S . (TheEqSymbOf S) = - 2 by Lm1; ::_thesis: verum end; registration cluster non degenerated for Language-like ; existence not for b1 being Language-like holds b1 is degenerated by Lm2; end; registration cluster non empty non degenerated non trivial eligible for Language-like ; existence ex b1 being non degenerated Language-like st b1 is eligible by Lm2; end; definition mode Language is non degenerated eligible Language-like ; end; definition let S be non empty Language-like ; :: original: AllSymbolsOf redefine func AllSymbolsOf S -> non empty set ; coherence AllSymbolsOf S is non empty set ; end; registration let S be eligible Language-like ; cluster LettersOf S -> infinite ; coherence not LettersOf S is finite by Def23; end; definition let S be Language; :: original: LettersOf redefine func LettersOf S -> non empty Subset of (AllSymbolsOf S); coherence LettersOf S is non empty Subset of (AllSymbolsOf S) by XBOOLE_1:1; end; Lm3: for S being non degenerated Language-like holds TheEqSymbOf S in (AllSymbolsOf S) \ {(TheNorSymbOf S)} proof let S be non degenerated Language-like ; ::_thesis: TheEqSymbOf S in (AllSymbolsOf S) \ {(TheNorSymbOf S)} set EQ = TheEqSymbOf S; set NOR = TheNorSymbOf S; set SS = AllSymbolsOf S; ( 1. S <> 0. S & TheEqSymbOf S = 0. S & TheNorSymbOf S = 1. S ) ; then ( TheEqSymbOf S in AllSymbolsOf S & not TheEqSymbOf S in {(TheNorSymbOf S)} ) by TARSKI:def_1; hence TheEqSymbOf S in (AllSymbolsOf S) \ {(TheNorSymbOf S)} by XBOOLE_0:def_5; ::_thesis: verum end; registration let S be Language; cluster TheEqSymbOf S -> relational for Element of S; coherence for b1 being Element of S st b1 = TheEqSymbOf S holds b1 is relational proof set E = TheEqSymbOf S; set R = RelSymbolsOf S; set a = the adicity of S; set D = (AllSymbolsOf S) \ {(TheNorSymbOf S)}; ( - 2 in INT & not - 2 in NAT ) by INT_1:def_2; then A1: - 2 in INT \ NAT by XBOOLE_0:def_5; ( TheEqSymbOf S in (AllSymbolsOf S) \ {(TheNorSymbOf S)} & dom the adicity of S = (AllSymbolsOf S) \ {(TheNorSymbOf S)} ) by Lm3, FUNCT_2:def_1; then ( TheEqSymbOf S in dom the adicity of S & the adicity of S . (TheEqSymbOf S) in INT \ NAT ) by A1, Def23; then TheEqSymbOf S in RelSymbolsOf S by FUNCT_1:def_7; hence for b1 being Element of S st b1 = TheEqSymbOf S holds b1 is relational by Def17; ::_thesis: verum end; end; definition let S be non degenerated Language-like ; :: original: AtomicFormulaSymbolsOf redefine func AtomicFormulaSymbolsOf S -> non empty Subset of (AllSymbolsOf S); coherence AtomicFormulaSymbolsOf S is non empty Subset of (AllSymbolsOf S) ; end; definition let S be non degenerated Language-like ; :: original: TheEqSymbOf redefine func TheEqSymbOf S -> Element of AtomicFormulaSymbolsOf S; coherence TheEqSymbOf S is Element of AtomicFormulaSymbolsOf S by Lm3; end; theorem Th1: :: FOMODEL1:1 for S being Language holds ( (LettersOf S) /\ (OpSymbolsOf S) = {} & (TermSymbolsOf S) /\ (LowerCompoundersOf S) = OpSymbolsOf S & (RelSymbolsOf S) \ (OwnSymbolsOf S) = {(TheEqSymbOf S)} & OwnSymbolsOf S c= AtomicFormulaSymbolsOf S & RelSymbolsOf S c= LowerCompoundersOf S & OpSymbolsOf S c= TermSymbolsOf S & LettersOf S c= TermSymbolsOf S & TermSymbolsOf S c= OwnSymbolsOf S & OpSymbolsOf S c= LowerCompoundersOf S & LowerCompoundersOf S c= AtomicFormulaSymbolsOf S ) proof let S be Language; ::_thesis: ( (LettersOf S) /\ (OpSymbolsOf S) = {} & (TermSymbolsOf S) /\ (LowerCompoundersOf S) = OpSymbolsOf S & (RelSymbolsOf S) \ (OwnSymbolsOf S) = {(TheEqSymbOf S)} & OwnSymbolsOf S c= AtomicFormulaSymbolsOf S & RelSymbolsOf S c= LowerCompoundersOf S & OpSymbolsOf S c= TermSymbolsOf S & LettersOf S c= TermSymbolsOf S & TermSymbolsOf S c= OwnSymbolsOf S & OpSymbolsOf S c= LowerCompoundersOf S & LowerCompoundersOf S c= AtomicFormulaSymbolsOf S ) set o = the OneF of S; set z = the ZeroF of S; set f = the adicity of S; set R = RelSymbolsOf S; set O = OwnSymbolsOf S; set SS = AllSymbolsOf S; set e = TheEqSymbOf S; set n = TheNorSymbOf S; set A = AtomicFormulaSymbolsOf S; set D = the carrier of S \ { the OneF of S}; set L = LowerCompoundersOf S; set T = TermSymbolsOf S; set OP = OpSymbolsOf S; set B = LettersOf S; A1: {0} misses NAT \ {0} by XBOOLE_1:79; thus (LettersOf S) /\ (OpSymbolsOf S) = the adicity of S " ({0} /\ (NAT \ {0})) by FUNCT_1:68 .= the adicity of S " {} by A1, XBOOLE_0:def_7 .= {} ; ::_thesis: ( (TermSymbolsOf S) /\ (LowerCompoundersOf S) = OpSymbolsOf S & (RelSymbolsOf S) \ (OwnSymbolsOf S) = {(TheEqSymbOf S)} & OwnSymbolsOf S c= AtomicFormulaSymbolsOf S & RelSymbolsOf S c= LowerCompoundersOf S & OpSymbolsOf S c= TermSymbolsOf S & LettersOf S c= TermSymbolsOf S & TermSymbolsOf S c= OwnSymbolsOf S & OpSymbolsOf S c= LowerCompoundersOf S & LowerCompoundersOf S c= AtomicFormulaSymbolsOf S ) thus (TermSymbolsOf S) /\ (LowerCompoundersOf S) = the adicity of S " (NAT /\ (INT \ {0})) by FUNCT_1:68 .= the adicity of S " ((NAT /\ INT) \ {0}) by XBOOLE_1:49 .= OpSymbolsOf S by XBOOLE_1:7, XBOOLE_1:28 ; ::_thesis: ( (RelSymbolsOf S) \ (OwnSymbolsOf S) = {(TheEqSymbOf S)} & OwnSymbolsOf S c= AtomicFormulaSymbolsOf S & RelSymbolsOf S c= LowerCompoundersOf S & OpSymbolsOf S c= TermSymbolsOf S & LettersOf S c= TermSymbolsOf S & TermSymbolsOf S c= OwnSymbolsOf S & OpSymbolsOf S c= LowerCompoundersOf S & LowerCompoundersOf S c= AtomicFormulaSymbolsOf S ) A2: TheEqSymbOf S in RelSymbolsOf S by Def17; OwnSymbolsOf S = (AllSymbolsOf S) \ ({ the ZeroF of S} \/ { the OneF of S}) by ENUMSET1:1 .= ( the carrier of S \ { the OneF of S}) \ { the ZeroF of S} by XBOOLE_1:41 ; then (RelSymbolsOf S) \ (OwnSymbolsOf S) = ((RelSymbolsOf S) \ ( the carrier of S \ { the OneF of S})) \/ ((RelSymbolsOf S) /\ { the ZeroF of S}) by XBOOLE_1:52 .= {} \/ ((RelSymbolsOf S) /\ { the ZeroF of S}) .= { the ZeroF of S} by A2, ZFMISC_1:46 ; hence (RelSymbolsOf S) \ (OwnSymbolsOf S) = {(TheEqSymbOf S)} ; ::_thesis: ( OwnSymbolsOf S c= AtomicFormulaSymbolsOf S & RelSymbolsOf S c= LowerCompoundersOf S & OpSymbolsOf S c= TermSymbolsOf S & LettersOf S c= TermSymbolsOf S & TermSymbolsOf S c= OwnSymbolsOf S & OpSymbolsOf S c= LowerCompoundersOf S & LowerCompoundersOf S c= AtomicFormulaSymbolsOf S ) thus OwnSymbolsOf S c= AtomicFormulaSymbolsOf S by XBOOLE_1:34, ZFMISC_1:7; ::_thesis: ( RelSymbolsOf S c= LowerCompoundersOf S & OpSymbolsOf S c= TermSymbolsOf S & LettersOf S c= TermSymbolsOf S & TermSymbolsOf S c= OwnSymbolsOf S & OpSymbolsOf S c= LowerCompoundersOf S & LowerCompoundersOf S c= AtomicFormulaSymbolsOf S ) ( the adicity of S " {0} c= the adicity of S " NAT & RelSymbolsOf S = ( the adicity of S " INT) \ ( the adicity of S " NAT) & LowerCompoundersOf S = ( the adicity of S " INT) \ ( the adicity of S " {0}) ) by FUNCT_1:69, RELAT_1:143; hence RelSymbolsOf S c= LowerCompoundersOf S by XBOOLE_1:34; ::_thesis: ( OpSymbolsOf S c= TermSymbolsOf S & LettersOf S c= TermSymbolsOf S & TermSymbolsOf S c= OwnSymbolsOf S & OpSymbolsOf S c= LowerCompoundersOf S & LowerCompoundersOf S c= AtomicFormulaSymbolsOf S ) OpSymbolsOf S = ( the adicity of S " NAT) \ ( the adicity of S " {0}) by FUNCT_1:69; hence OpSymbolsOf S c= TermSymbolsOf S ; ::_thesis: ( LettersOf S c= TermSymbolsOf S & TermSymbolsOf S c= OwnSymbolsOf S & OpSymbolsOf S c= LowerCompoundersOf S & LowerCompoundersOf S c= AtomicFormulaSymbolsOf S ) thus LettersOf S c= TermSymbolsOf S by RELAT_1:143; ::_thesis: ( TermSymbolsOf S c= OwnSymbolsOf S & OpSymbolsOf S c= LowerCompoundersOf S & LowerCompoundersOf S c= AtomicFormulaSymbolsOf S ) - 2 = the adicity of S . (TheEqSymbOf S) by Def23 .= the adicity of S . the ZeroF of S ; then not the adicity of S . the ZeroF of S in NAT ; then not the ZeroF of S in the adicity of S " NAT by FUNCT_1:def_7; then ( the adicity of S " NAT misses { the ZeroF of S} & the adicity of S " NAT c= the carrier of S \ { the OneF of S} ) by ZFMISC_1:50; then the adicity of S " NAT c= ( the carrier of S \ { the OneF of S}) \ { the ZeroF of S} by XBOOLE_1:86; then TermSymbolsOf S c= the carrier of S \ ({ the OneF of S} \/ { the ZeroF of S}) by XBOOLE_1:41; hence TermSymbolsOf S c= OwnSymbolsOf S by ENUMSET1:1; ::_thesis: ( OpSymbolsOf S c= LowerCompoundersOf S & LowerCompoundersOf S c= AtomicFormulaSymbolsOf S ) for x being set st x in NAT holds x in INT by INT_1:def_2; then NAT c= INT by TARSKI:def_3; then NAT \ {0} c= INT \ {0} by XBOOLE_1:33; hence OpSymbolsOf S c= LowerCompoundersOf S by RELAT_1:143; ::_thesis: LowerCompoundersOf S c= AtomicFormulaSymbolsOf S thus LowerCompoundersOf S c= AtomicFormulaSymbolsOf S ; ::_thesis: verum end; registration let S be Language; cluster TermSymbolsOf S -> non empty for set ; coherence for b1 being set st b1 = TermSymbolsOf S holds not b1 is empty proof LettersOf S c= TermSymbolsOf S by Th1; hence for b1 being set st b1 = TermSymbolsOf S holds not b1 is empty ; ::_thesis: verum end; cluster own -> ofAtomicFormula for Element of AllSymbolsOf S; coherence for b1 being Element of S st b1 is own holds b1 is ofAtomicFormula proof let s be Element of S; ::_thesis: ( s is own implies s is ofAtomicFormula ) assume s is own ; ::_thesis: s is ofAtomicFormula then ( s in OwnSymbolsOf S & OwnSymbolsOf S c= AtomicFormulaSymbolsOf S ) by Th1, Def19; hence s is ofAtomicFormula by Def20; ::_thesis: verum end; cluster relational -> low-compounding for Element of AllSymbolsOf S; coherence for b1 being Element of S st b1 is relational holds b1 is low-compounding proof let s be Element of S; ::_thesis: ( s is relational implies s is low-compounding ) assume s is relational ; ::_thesis: s is low-compounding then ( s in RelSymbolsOf S & RelSymbolsOf S c= LowerCompoundersOf S ) by Def17, Th1; hence s is low-compounding by Def15; ::_thesis: verum end; cluster operational -> termal for Element of AllSymbolsOf S; coherence for b1 being Element of S st b1 is operational holds b1 is termal proof let s be Element of S; ::_thesis: ( s is operational implies s is termal ) assume s is operational ; ::_thesis: s is termal then ( s in OpSymbolsOf S & OpSymbolsOf S c= TermSymbolsOf S ) by Th1, Def16; hence s is termal by Def18; ::_thesis: verum end; cluster literal -> termal for Element of AllSymbolsOf S; coherence for b1 being Element of S st b1 is literal holds b1 is termal proof let s be Element of S; ::_thesis: ( s is literal implies s is termal ) assume s is literal ; ::_thesis: s is termal then ( LettersOf S c= TermSymbolsOf S & s in LettersOf S ) by Def14, Th1; hence s is termal by Def18; ::_thesis: verum end; cluster termal -> own for Element of AllSymbolsOf S; coherence for b1 being Element of S st b1 is termal holds b1 is own proof let s be Element of S; ::_thesis: ( s is termal implies s is own ) assume s is termal ; ::_thesis: s is own then ( TermSymbolsOf S c= OwnSymbolsOf S & s in TermSymbolsOf S ) by Def18, Th1; hence s is own by Def19; ::_thesis: verum end; cluster operational -> low-compounding for Element of AllSymbolsOf S; coherence for b1 being Element of S st b1 is operational holds b1 is low-compounding proof let s be Element of S; ::_thesis: ( s is operational implies s is low-compounding ) assume s is operational ; ::_thesis: s is low-compounding then ( s in OpSymbolsOf S & OpSymbolsOf S c= LowerCompoundersOf S ) by Def16, Th1; hence s is low-compounding by Def15; ::_thesis: verum end; cluster low-compounding -> ofAtomicFormula for Element of AllSymbolsOf S; coherence for b1 being Element of S st b1 is low-compounding holds b1 is ofAtomicFormula proof let s be Element of S; ::_thesis: ( s is low-compounding implies s is ofAtomicFormula ) assume s is low-compounding ; ::_thesis: s is ofAtomicFormula then ( s in LowerCompoundersOf S & LowerCompoundersOf S c= AtomicFormulaSymbolsOf S ) by Def15; hence s is ofAtomicFormula by Def20; ::_thesis: verum end; cluster termal -> non relational for Element of AllSymbolsOf S; coherence for b1 being Element of S st b1 is termal holds not b1 is relational proof set T = TermSymbolsOf S; set R = RelSymbolsOf S; set f = the adicity of S; (TermSymbolsOf S) /\ (RelSymbolsOf S) = the adicity of S " (NAT /\ (INT \ NAT)) by FUNCT_1:68 .= the adicity of S " ((NAT /\ INT) \ (NAT /\ NAT)) .= the adicity of S " {} .= {} ; then TermSymbolsOf S misses RelSymbolsOf S by XBOOLE_0:def_7; then A1: (TermSymbolsOf S) \ (RelSymbolsOf S) = TermSymbolsOf S by XBOOLE_1:83; let s be Element of S; ::_thesis: ( s is termal implies not s is relational ) assume s is termal ; ::_thesis: not s is relational then s in (TermSymbolsOf S) \ (RelSymbolsOf S) by A1, Def18; then not s in RelSymbolsOf S by XBOOLE_0:def_5; hence not s is relational by Def17; ::_thesis: verum end; cluster literal -> non relational for Element of AllSymbolsOf S; coherence for b1 being Element of S st b1 is literal holds not b1 is relational ; cluster literal -> non operational for Element of AllSymbolsOf S; coherence for b1 being Element of S st b1 is literal holds not b1 is operational proof set L = LettersOf S; set P = OpSymbolsOf S; let s be Element of S; ::_thesis: ( s is literal implies not s is operational ) assume A2: s is literal ; ::_thesis: not s is operational assume s is operational ; ::_thesis: contradiction then ( s in LettersOf S & s in OpSymbolsOf S ) by A2, Def14, Def16; then s in (LettersOf S) /\ (OpSymbolsOf S) by XBOOLE_0:def_4; hence contradiction by Th1; ::_thesis: verum end; end; registration let S be Language; cluster relational for Element of AllSymbolsOf S; existence ex b1 being Element of S st b1 is relational proof take s = TheEqSymbOf S; ::_thesis: s is relational thus s is relational ; ::_thesis: verum end; cluster literal for Element of AllSymbolsOf S; existence ex b1 being Element of S st b1 is literal proof take the Element of LettersOf S ; ::_thesis: the Element of LettersOf S is literal thus the Element of LettersOf S is literal by Def14; ::_thesis: verum end; end; registration let S be Language; cluster low-compounding termal -> low-compounding operational for Element of AllSymbolsOf S; coherence for b1 being low-compounding Element of S st b1 is termal holds b1 is operational proof set L = LowerCompoundersOf S; set T = TermSymbolsOf S; set OP = OpSymbolsOf S; let s be low-compounding Element of S; ::_thesis: ( s is termal implies s is operational ) A1: s in LowerCompoundersOf S by Def15; assume s is termal ; ::_thesis: s is operational then s in TermSymbolsOf S by Def18; then s in (LowerCompoundersOf S) /\ (TermSymbolsOf S) by A1, XBOOLE_0:def_4; then s in OpSymbolsOf S by Th1; hence s is operational by Def16; ::_thesis: verum end; end; registration let S be Language; cluster ofAtomicFormula for Element of AllSymbolsOf S; existence ex b1 being Element of S st b1 is ofAtomicFormula proof take the literal Element of S ; ::_thesis: the literal Element of S is ofAtomicFormula thus the literal Element of S is ofAtomicFormula ; ::_thesis: verum end; end; definition let S be Language; let s be ofAtomicFormula Element of S; func ar s -> Element of INT equals :: FOMODEL1:def 24 the adicity of S . s; coherence the adicity of S . s is Element of INT proof set f = the adicity of S; reconsider g = the adicity of S as Function of (AtomicFormulaSymbolsOf S),INT ; reconsider ss = s as Element of AtomicFormulaSymbolsOf S by Def20; g . ss in INT ; hence the adicity of S . s is Element of INT ; ::_thesis: verum end; end; :: deftheorem defines ar FOMODEL1:def_24_:_ for S being Language for s being ofAtomicFormula Element of S holds ar s = the adicity of S . s; registration let S be Language; let s be literal Element of S; cluster ar s -> zero for number ; coherence for b1 being number st b1 = ar s holds b1 is empty proof set f = the adicity of S; s in LettersOf S by Def14; then the adicity of S . s in {0} by FUNCT_1:def_7; hence for b1 being number st b1 = ar s holds b1 is empty ; ::_thesis: verum end; end; definition let S be Language; funcS -cons -> BinOp of ((AllSymbolsOf S) *) equals :: FOMODEL1:def 25 (AllSymbolsOf S) -concatenation ; coherence (AllSymbolsOf S) -concatenation is BinOp of ((AllSymbolsOf S) *) ; end; :: deftheorem defines -cons FOMODEL1:def_25_:_ for S being Language holds S -cons = (AllSymbolsOf S) -concatenation ; definition let S be Language; funcS -multiCat -> Function of (((AllSymbolsOf S) *) *),((AllSymbolsOf S) *) equals :: FOMODEL1:def 26 (AllSymbolsOf S) -multiCat ; coherence (AllSymbolsOf S) -multiCat is Function of (((AllSymbolsOf S) *) *),((AllSymbolsOf S) *) ; end; :: deftheorem defines -multiCat FOMODEL1:def_26_:_ for S being Language holds S -multiCat = (AllSymbolsOf S) -multiCat ; definition let S be Language; funcS -firstChar -> Function of (((AllSymbolsOf S) *) \ {{}}),(AllSymbolsOf S) equals :: FOMODEL1:def 27 (AllSymbolsOf S) -firstChar ; coherence (AllSymbolsOf S) -firstChar is Function of (((AllSymbolsOf S) *) \ {{}}),(AllSymbolsOf S) ; end; :: deftheorem defines -firstChar FOMODEL1:def_27_:_ for S being Language holds S -firstChar = (AllSymbolsOf S) -firstChar ; definition let S be Language; let X be set ; attrX is S -prefix means :Def28: :: FOMODEL1:def 28 X is AllSymbolsOf S -prefix ; end; :: deftheorem Def28 defines -prefix FOMODEL1:def_28_:_ for S being Language for X being set holds ( X is S -prefix iff X is AllSymbolsOf S -prefix ); registration let S be Language; clusterS -prefix -> AllSymbolsOf S -prefix for set ; coherence for b1 being set st b1 is S -prefix holds b1 is AllSymbolsOf S -prefix by Def28; cluster AllSymbolsOf S -prefix -> S -prefix for set ; coherence for b1 being set st b1 is AllSymbolsOf S -prefix holds b1 is S -prefix by Def28; end; definition let S be Language; mode string of S is Element of ((AllSymbolsOf S) *) \ {{}}; end; registration let S be Language; cluster((AllSymbolsOf S) *) \ {{}} -> non empty for set ; coherence for b1 being set st b1 = ((AllSymbolsOf S) *) \ {{}} holds not b1 is empty ; end; registration let S be Language; cluster -> non empty for Element of ((AllSymbolsOf S) *) \ {{}}; coherence for b1 being string of S holds not b1 is empty by FOMODEL0:5; end; registration cluster non degenerated eligible -> infinite for Language-like ; coherence for b1 being Language holds b1 is infinite proof let S be Language; ::_thesis: S is infinite set SS = AllSymbolsOf S; set L = LettersOf S; reconsider S0 = S as 1-sorted ; (LettersOf S) \/ (AllSymbolsOf S) = AllSymbolsOf S by XBOOLE_1:12; hence S is infinite ; ::_thesis: verum end; end; registration let S be Language; cluster AllSymbolsOf S -> infinite ; coherence not AllSymbolsOf S is finite ; end; definition let S be Language; let s be ofAtomicFormula Element of S; let Strings be set ; func Compound (s,Strings) -> set equals :: FOMODEL1:def 29 { (<*s*> ^ ((S -multiCat) . StringTuple)) where StringTuple is Element of ((AllSymbolsOf S) *) * : ( rng StringTuple c= Strings & StringTuple is abs (ar s) -element ) } ; coherence { (<*s*> ^ ((S -multiCat) . StringTuple)) where StringTuple is Element of ((AllSymbolsOf S) *) * : ( rng StringTuple c= Strings & StringTuple is abs (ar s) -element ) } is set ; end; :: deftheorem defines Compound FOMODEL1:def_29_:_ for S being Language for s being ofAtomicFormula Element of S for Strings being set holds Compound (s,Strings) = { (<*s*> ^ ((S -multiCat) . StringTuple)) where StringTuple is Element of ((AllSymbolsOf S) *) * : ( rng StringTuple c= Strings & StringTuple is abs (ar s) -element ) } ; definition let S be Language; let s be ofAtomicFormula Element of S; let Strings be set ; :: original: Compound redefine func Compound (s,Strings) -> Element of bool (((AllSymbolsOf S) *) \ {{}}); coherence Compound (s,Strings) is Element of bool (((AllSymbolsOf S) *) \ {{}}) proof set Y = Compound (s,Strings); set SS = AllSymbolsOf S; reconsider ss = s as Element of AllSymbolsOf S ; now__::_thesis:_for_x_being_set_st_x_in_Compound_(s,Strings)_holds_ x_in_((AllSymbolsOf_S)_*)_\_{{}} let x be set ; ::_thesis: ( x in Compound (s,Strings) implies x in ((AllSymbolsOf S) *) \ {{}} ) assume x in Compound (s,Strings) ; ::_thesis: x in ((AllSymbolsOf S) *) \ {{}} then consider StringTuple being Element of ((AllSymbolsOf S) *) * such that A1: ( x = <*s*> ^ ((S -multiCat) . StringTuple) & rng StringTuple c= Strings & StringTuple is abs (ar s) -element ) ; reconsider head = <*ss*> as non empty FinSequence of AllSymbolsOf S ; reconsider tail = (S -multiCat) . StringTuple as FinSequence of AllSymbolsOf S by FINSEQ_1:def_11; ( head ^ tail is non empty FinSequence of AllSymbolsOf S & x = head ^ tail ) by A1; hence x in ((AllSymbolsOf S) *) \ {{}} by FOMODEL0:5; ::_thesis: verum end; hence Compound (s,Strings) is Element of bool (((AllSymbolsOf S) *) \ {{}}) by TARSKI:def_3; ::_thesis: verum end; end; definition let S be Language; funcS -termsOfMaxDepth -> Function means :Def30: :: FOMODEL1:def 30 ( dom it = NAT & it . 0 = AtomicTermsOf S & ( for n being Nat holds it . (n + 1) = (union { (Compound (s,(it . n))) where s is ofAtomicFormula Element of S : s is operational } ) \/ (it . n) ) ); existence ex b1 being Function st ( dom b1 = NAT & b1 . 0 = AtomicTermsOf S & ( for n being Nat holds b1 . (n + 1) = (union { (Compound (s,(b1 . n))) where s is ofAtomicFormula Element of S : s is operational } ) \/ (b1 . n) ) ) proof deffunc H1( set , set ) -> set = (union { (Compound (s,$2)) where s is ofAtomicFormula Element of S : s is operational } ) \/ $2; ex f being Function st ( dom f = NAT & f . 0 = AtomicTermsOf S & ( for n being Nat holds f . (n + 1) = H1(n,f . n) ) ) from NAT_1:sch_11(); hence ex b1 being Function st ( dom b1 = NAT & b1 . 0 = AtomicTermsOf S & ( for n being Nat holds b1 . (n + 1) = (union { (Compound (s,(b1 . n))) where s is ofAtomicFormula Element of S : s is operational } ) \/ (b1 . n) ) ) ; ::_thesis: verum end; uniqueness for b1, b2 being Function st dom b1 = NAT & b1 . 0 = AtomicTermsOf S & ( for n being Nat holds b1 . (n + 1) = (union { (Compound (s,(b1 . n))) where s is ofAtomicFormula Element of S : s is operational } ) \/ (b1 . n) ) & dom b2 = NAT & b2 . 0 = AtomicTermsOf S & ( for n being Nat holds b2 . (n + 1) = (union { (Compound (s,(b2 . n))) where s is ofAtomicFormula Element of S : s is operational } ) \/ (b2 . n) ) holds b1 = b2 proof deffunc H1( set , set ) -> set = (union { (Compound (s,$2)) where s is ofAtomicFormula Element of S : s is operational } ) \/ $2; let IT1, IT2 be Function; ::_thesis: ( dom IT1 = NAT & IT1 . 0 = AtomicTermsOf S & ( for n being Nat holds IT1 . (n + 1) = (union { (Compound (s,(IT1 . n))) where s is ofAtomicFormula Element of S : s is operational } ) \/ (IT1 . n) ) & dom IT2 = NAT & IT2 . 0 = AtomicTermsOf S & ( for n being Nat holds IT2 . (n + 1) = (union { (Compound (s,(IT2 . n))) where s is ofAtomicFormula Element of S : s is operational } ) \/ (IT2 . n) ) implies IT1 = IT2 ) assume A1: ( dom IT1 = NAT & IT1 . 0 = AtomicTermsOf S & ( for n being Nat holds IT1 . (n + 1) = H1(n,IT1 . n) ) ) ; ::_thesis: ( not dom IT2 = NAT or not IT2 . 0 = AtomicTermsOf S or ex n being Nat st not IT2 . (n + 1) = (union { (Compound (s,(IT2 . n))) where s is ofAtomicFormula Element of S : s is operational } ) \/ (IT2 . n) or IT1 = IT2 ) A2: dom IT1 = NAT by A1; A3: IT1 . 0 = AtomicTermsOf S by A1; A4: for n being Nat holds IT1 . (n + 1) = H1(n,IT1 . n) by A1; assume A5: ( dom IT2 = NAT & IT2 . 0 = AtomicTermsOf S & ( for n being Nat holds IT2 . (n + 1) = H1(n,IT2 . n) ) ) ; ::_thesis: IT1 = IT2 A6: dom IT2 = NAT by A5; A7: IT2 . 0 = AtomicTermsOf S by A5; A8: for n being Nat holds IT2 . (n + 1) = H1(n,IT2 . n) by A5; thus IT1 = IT2 from NAT_1:sch_15(A2, A3, A4, A6, A7, A8); ::_thesis: verum end; end; :: deftheorem Def30 defines -termsOfMaxDepth FOMODEL1:def_30_:_ for S being Language for b2 being Function holds ( b2 = S -termsOfMaxDepth iff ( dom b2 = NAT & b2 . 0 = AtomicTermsOf S & ( for n being Nat holds b2 . (n + 1) = (union { (Compound (s,(b2 . n))) where s is ofAtomicFormula Element of S : s is operational } ) \/ (b2 . n) ) ) ); definition let S be Language; :: original: AtomicTermsOf redefine func AtomicTermsOf S -> Subset of ((AllSymbolsOf S) *); coherence AtomicTermsOf S is Subset of ((AllSymbolsOf S) *) proof set SS = AllSymbolsOf S; set A = AtomicTermsOf S; reconsider L = LettersOf S as Subset of (AllSymbolsOf S) ; AtomicTermsOf S c= L * by FINSEQ_2:134; hence AtomicTermsOf S is Subset of ((AllSymbolsOf S) *) by XBOOLE_1:1; ::_thesis: verum end; end; Lm4: for m being Nat for S being Language holds (S -termsOfMaxDepth) . m c= ((AllSymbolsOf S) *) \ {{}} proof let m be Nat; ::_thesis: for S being Language holds (S -termsOfMaxDepth) . m c= ((AllSymbolsOf S) *) \ {{}} let S be Language; ::_thesis: (S -termsOfMaxDepth) . m c= ((AllSymbolsOf S) *) \ {{}} set T = S -termsOfMaxDepth ; set SS = AllSymbolsOf S; set L = LettersOf S; defpred S1[ Nat] means (S -termsOfMaxDepth) . $1 c= ((AllSymbolsOf S) *) \ {{}}; A1: S1[ 0 ] proof (S -termsOfMaxDepth) . 0 = AtomicTermsOf S by Def30 .= (0 + 1) -tuples_on (LettersOf S) ; then A2: (S -termsOfMaxDepth) . 0 c= ((LettersOf S) *) \ {{}} by FOMODEL0:9; ((LettersOf S) *) \ {{}} c= ((AllSymbolsOf S) *) \ {{}} by XBOOLE_1:33; hence S1[ 0 ] by A2, XBOOLE_1:1; ::_thesis: verum end; A3: for n being Nat st S1[n] holds S1[n + 1] proof let n be Nat; ::_thesis: ( S1[n] implies S1[n + 1] ) assume A4: S1[n] ; ::_thesis: S1[n + 1] set TM1 = { (Compound (s,((S -termsOfMaxDepth) . n))) where s is ofAtomicFormula Element of S : s is operational } ; now__::_thesis:_for_X_being_set_st_X_in__{__(Compound_(s,((S_-termsOfMaxDepth)_._n)))_where_s_is_ofAtomicFormula_Element_of_S_:_s_is_operational__}__holds_ X_c=_((AllSymbolsOf_S)_*)_\_{{}} let X be set ; ::_thesis: ( X in { (Compound (s,((S -termsOfMaxDepth) . n))) where s is ofAtomicFormula Element of S : s is operational } implies X c= ((AllSymbolsOf S) *) \ {{}} ) assume X in { (Compound (s,((S -termsOfMaxDepth) . n))) where s is ofAtomicFormula Element of S : s is operational } ; ::_thesis: X c= ((AllSymbolsOf S) *) \ {{}} then consider s being ofAtomicFormula Element of S such that A5: ( X = Compound (s,((S -termsOfMaxDepth) . n)) & s is operational ) ; thus X c= ((AllSymbolsOf S) *) \ {{}} by A5; ::_thesis: verum end; then ( union { (Compound (s,((S -termsOfMaxDepth) . n))) where s is ofAtomicFormula Element of S : s is operational } c= ((AllSymbolsOf S) *) \ {{}} & (S -termsOfMaxDepth) . (n + 1) = (union { (Compound (s,((S -termsOfMaxDepth) . n))) where s is ofAtomicFormula Element of S : s is operational } ) \/ ((S -termsOfMaxDepth) . n) ) by Def30, ZFMISC_1:76; hence S1[n + 1] by A4, XBOOLE_1:8; ::_thesis: verum end; for n being Nat holds S1[n] from NAT_1:sch_2(A1, A3); hence (S -termsOfMaxDepth) . m c= ((AllSymbolsOf S) *) \ {{}} ; ::_thesis: verum end; Lm5: for m, n being Nat for S being Language holds (S -termsOfMaxDepth) . m c= (S -termsOfMaxDepth) . (m + n) proof let m, n be Nat; ::_thesis: for S being Language holds (S -termsOfMaxDepth) . m c= (S -termsOfMaxDepth) . (m + n) let S be Language; ::_thesis: (S -termsOfMaxDepth) . m c= (S -termsOfMaxDepth) . (m + n) set T = S -termsOfMaxDepth ; defpred S1[ Nat] means (S -termsOfMaxDepth) . m c= (S -termsOfMaxDepth) . (m + $1); 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] (S -termsOfMaxDepth) . ((m + n) + 1) = ((S -termsOfMaxDepth) . (m + n)) \/ (union { (Compound (s,((S -termsOfMaxDepth) . (m + n)))) where s is ofAtomicFormula Element of S : s is operational } ) by Def30; then (S -termsOfMaxDepth) . (m + n) c= (S -termsOfMaxDepth) . ((m + n) + 1) by XBOOLE_1:7; hence S1[n + 1] by A3, XBOOLE_1:1; ::_thesis: verum end; for n being Nat holds S1[n] from NAT_1:sch_2(A1, A2); hence (S -termsOfMaxDepth) . m c= (S -termsOfMaxDepth) . (m + n) ; ::_thesis: verum end; definition let S be Language; func AllTermsOf S -> set equals :: FOMODEL1:def 31 union (rng (S -termsOfMaxDepth)); coherence union (rng (S -termsOfMaxDepth)) is set ; end; :: deftheorem defines AllTermsOf FOMODEL1:def_31_:_ for S being Language holds AllTermsOf S = union (rng (S -termsOfMaxDepth)); theorem Th2: :: FOMODEL1:2 for mm being Element of NAT for S being Language holds (S -termsOfMaxDepth) . mm c= AllTermsOf S proof let mm be Element of NAT ; ::_thesis: for S being Language holds (S -termsOfMaxDepth) . mm c= AllTermsOf S let S be Language; ::_thesis: (S -termsOfMaxDepth) . mm c= AllTermsOf S set T = S -termsOfMaxDepth ; dom (S -termsOfMaxDepth) = NAT by Def30; hence (S -termsOfMaxDepth) . mm c= AllTermsOf S by FUNCT_1:3, ZFMISC_1:74; ::_thesis: verum end; Lm6: for x being set for S being Language st x in AllTermsOf S holds ex nn being Element of NAT st x in (S -termsOfMaxDepth) . nn proof let x be set ; ::_thesis: for S being Language st x in AllTermsOf S holds ex nn being Element of NAT st x in (S -termsOfMaxDepth) . nn let S be Language; ::_thesis: ( x in AllTermsOf S implies ex nn being Element of NAT st x in (S -termsOfMaxDepth) . nn ) set T = S -termsOfMaxDepth ; assume x in AllTermsOf S ; ::_thesis: ex nn being Element of NAT st x in (S -termsOfMaxDepth) . nn then consider Y being set such that A1: ( x in Y & Y in rng (S -termsOfMaxDepth) ) by TARSKI:def_4; consider mmm being set such that A2: ( mmm in dom (S -termsOfMaxDepth) & Y = (S -termsOfMaxDepth) . mmm ) by A1, FUNCT_1:def_3; reconsider mm = mmm as Element of NAT by A2, Def30; take nn = mm; ::_thesis: x in (S -termsOfMaxDepth) . nn thus x in (S -termsOfMaxDepth) . nn by A1, A2; ::_thesis: verum end; definition let S be Language; let w be string of S; attrw is termal means :Def32: :: FOMODEL1:def 32 w in AllTermsOf S; end; :: deftheorem Def32 defines termal FOMODEL1:def_32_:_ for S being Language for w being string of S holds ( w is termal iff w in AllTermsOf S ); definition let m be Nat; let S be Language; let w be string of S; attrw is m -termal means :Def33: :: FOMODEL1:def 33 w in (S -termsOfMaxDepth) . m; end; :: deftheorem Def33 defines -termal FOMODEL1:def_33_:_ for m being Nat for S being Language for w being string of S holds ( w is m -termal iff w in (S -termsOfMaxDepth) . m ); registration let m be Nat; let S be Language; clusterm -termal -> termal for Element of ((AllSymbolsOf S) *) \ {{}}; coherence for b1 being string of S st b1 is m -termal holds b1 is termal proof reconsider mm = m as Element of NAT by ORDINAL1:def_12; let w be string of S; ::_thesis: ( w is m -termal implies w is termal ) assume w is m -termal ; ::_thesis: w is termal then ( w in (S -termsOfMaxDepth) . m & (S -termsOfMaxDepth) . mm c= AllTermsOf S ) by Th2, Def33; hence w is termal by Def32; ::_thesis: verum end; end; definition let S be Language; :: original: -termsOfMaxDepth redefine funcS -termsOfMaxDepth -> Function of NAT,(bool ((AllSymbolsOf S) *)); coherence S -termsOfMaxDepth is Function of NAT,(bool ((AllSymbolsOf S) *)) proof set SS = AllSymbolsOf S; set T = S -termsOfMaxDepth ; A1: dom (S -termsOfMaxDepth) = NAT by Def30; now__::_thesis:_for_y_being_set_st_y_in_rng_(S_-termsOfMaxDepth)_holds_ y_in_bool_((AllSymbolsOf_S)_*) let y be set ; ::_thesis: ( y in rng (S -termsOfMaxDepth) implies y in bool ((AllSymbolsOf S) *) ) assume y in rng (S -termsOfMaxDepth) ; ::_thesis: y in bool ((AllSymbolsOf S) *) then consider x being set such that A2: ( x in dom (S -termsOfMaxDepth) & y = (S -termsOfMaxDepth) . x ) by FUNCT_1:def_3; reconsider m = x as Element of NAT by Def30, A2; y = (S -termsOfMaxDepth) . m by A2; then ( y c= ((AllSymbolsOf S) *) \ {{}} & ((AllSymbolsOf S) *) \ {{}} c= (AllSymbolsOf S) * ) by Lm4; then y c= (AllSymbolsOf S) * by XBOOLE_1:1; hence y in bool ((AllSymbolsOf S) *) ; ::_thesis: verum end; then rng (S -termsOfMaxDepth) c= bool ((AllSymbolsOf S) *) by TARSKI:def_3; hence S -termsOfMaxDepth is Function of NAT,(bool ((AllSymbolsOf S) *)) by A1, FUNCT_2:67, RELSET_1:4; ::_thesis: verum end; end; definition let S be Language; :: original: AllTermsOf redefine func AllTermsOf S -> non empty Subset of ((AllSymbolsOf S) *); coherence AllTermsOf S is non empty Subset of ((AllSymbolsOf S) *) proof set A = AllTermsOf S; set T = S -termsOfMaxDepth ; set SS = AllSymbolsOf S; A1: now__::_thesis:_for_x_being_set_st_x_in_AllTermsOf_S_holds_ x_in_(AllSymbolsOf_S)_* let x be set ; ::_thesis: ( x in AllTermsOf S implies x in (AllSymbolsOf S) * ) assume x in AllTermsOf S ; ::_thesis: x in (AllSymbolsOf S) * then consider mm being Element of NAT such that A2: x in (S -termsOfMaxDepth) . mm by Lm6; thus x in (AllSymbolsOf S) * by A2; ::_thesis: verum end; AllTermsOf S = ((S -termsOfMaxDepth) . 0) \/ (AllTermsOf S) by Th2, XBOOLE_1:12 .= (AtomicTermsOf S) \/ (AllTermsOf S) by Def30 ; hence AllTermsOf S is non empty Subset of ((AllSymbolsOf S) *) by A1, TARSKI:def_3; ::_thesis: verum end; end; registration let S be Language; cluster AllTermsOf S -> non empty ; coherence not AllTermsOf S is empty ; end; registration let S be Language; let m be Nat; cluster(S -termsOfMaxDepth) . m -> non empty ; coherence not (S -termsOfMaxDepth) . m is empty proof set T = S -termsOfMaxDepth ; set Z = AtomicTermsOf S; set SS = AllSymbolsOf S; set x = the Element of AtomicTermsOf S; ( the Element of AtomicTermsOf S in AtomicTermsOf S & AtomicTermsOf S = (S -termsOfMaxDepth) . 0 ) by Def30; then ( the Element of AtomicTermsOf S in (S -termsOfMaxDepth) . 0 & (S -termsOfMaxDepth) . 0 c= (S -termsOfMaxDepth) . (0 + m) ) by Lm5; hence not (S -termsOfMaxDepth) . m is empty ; ::_thesis: verum end; end; registration let S be Language; let m be Nat; cluster -> non empty for Element of (S -termsOfMaxDepth) . m; coherence for b1 being Element of (S -termsOfMaxDepth) . m holds not b1 is empty proof set T = S -termsOfMaxDepth ; set SS = AllSymbolsOf S; set A = AtomicTermsOf S; A1: (S -termsOfMaxDepth) . m c= ((AllSymbolsOf S) *) \ {{}} by Lm4; let w be Element of (S -termsOfMaxDepth) . m; ::_thesis: not w is empty w in ((AllSymbolsOf S) *) \ {{}} by A1, TARSKI:def_3; hence not w is empty ; ::_thesis: verum end; end; registration let S be Language; cluster -> non empty for Element of AllTermsOf S; coherence for b1 being Element of AllTermsOf S holds not b1 is empty proof set T = S -termsOfMaxDepth ; set SS = AllSymbolsOf S; set A = AtomicTermsOf S; set AA = AllTermsOf S; let t be Element of AllTermsOf S; ::_thesis: not t is empty consider mm being Element of NAT such that A1: t in (S -termsOfMaxDepth) . mm by Lm6; reconsider tt = t as Element of (S -termsOfMaxDepth) . mm by A1; not tt is empty ; hence not t is empty ; ::_thesis: verum end; end; registration let m be Nat; let S be Language; cluster non empty Relation-like NAT -defined Function-like finite FinSequence-like FinSubsequence-like countable finite-support m -termal for Element of ((AllSymbolsOf S) *) \ {{}}; existence ex b1 being string of S st b1 is m -termal proof set T = S -termsOfMaxDepth ; set SS = AllSymbolsOf S; set A = AtomicTermsOf S; set w = the Element of AtomicTermsOf S; A1: the Element of AtomicTermsOf S in AtomicTermsOf S ; then ( the Element of AtomicTermsOf S in (S -termsOfMaxDepth) . 0 & (S -termsOfMaxDepth) . 0 c= ((AllSymbolsOf S) *) \ {{}} ) by Lm4, Def30; then reconsider ww = the Element of AtomicTermsOf S as string of S ; take ww ; ::_thesis: ww is m -termal ( ww in (S -termsOfMaxDepth) . 0 & (S -termsOfMaxDepth) . 0 c= (S -termsOfMaxDepth) . (0 + m) ) by Lm5, A1, Def30; hence ww is m -termal by Def33; ::_thesis: verum end; end; registration let S be Language; cluster 0 -termal -> 1 -element for Element of ((AllSymbolsOf S) *) \ {{}}; coherence for b1 being string of S st b1 is 0 -termal holds b1 is 1 -element proof set A = AtomicTermsOf S; set L = LettersOf S; set T = S -termsOfMaxDepth ; let w be string of S; ::_thesis: ( w is 0 -termal implies w is 1 -element ) assume w is 0 -termal ; ::_thesis: w is 1 -element then w in (S -termsOfMaxDepth) . 0 by Def33; then w in AtomicTermsOf S by Def30; then reconsider ww = w as Element of 1 -tuples_on (LettersOf S) ; ww is 1 -element ; hence w is 1 -element ; ::_thesis: verum end; end; registration let S be Language; let w be 0 -termal 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 proof set A = AllTermsOf S; set T = S -termsOfMaxDepth ; set Z = AtomicTermsOf S; set SS = AllSymbolsOf S; set s = (S -firstChar) . w; set ss = ((AllSymbolsOf S) -firstChar) . w; set L = LettersOf S; reconsider ww = w as non empty FinSequence of AllSymbolsOf S by FOMODEL0:5; A1: ((AllSymbolsOf S) -firstChar) . w = ww . 1 by FOMODEL0:6; w in (S -termsOfMaxDepth) . 0 by Def33; then w in AtomicTermsOf S by Def30; then consider x being set such that A2: ( x in LettersOf S & w = <*x*> ) by FINSEQ_2:135; w = <*x*> ^ {} by A2; then ((AllSymbolsOf S) -firstChar) . w in LettersOf S by A2, A1, FINSEQ_1:41; hence for b1 being Element of S st b1 = (S -firstChar) . w holds b1 is literal by Def14; ::_thesis: verum end; end; Lm7: for mm being Element of NAT for S being Language for w being b1 + 1 -termal string of S st not w is mm -termal holds ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . mm) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) proof let mm be Element of NAT ; ::_thesis: for S being Language for w being mm + 1 -termal string of S st not w is mm -termal holds ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . mm) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) let S be Language; ::_thesis: for w being mm + 1 -termal string of S st not w is mm -termal holds ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . mm) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) set fam = { (Compound (s,((S -termsOfMaxDepth) . mm))) where s is ofAtomicFormula Element of S : s is operational } ; let w be mm + 1 -termal string of S; ::_thesis: ( not w is mm -termal implies ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . mm) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) ) assume not w is mm -termal ; ::_thesis: ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . mm) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) then ( w in (S -termsOfMaxDepth) . (mm + 1) & not w in (S -termsOfMaxDepth) . mm ) by Def33; then ( w in (union { (Compound (s,((S -termsOfMaxDepth) . mm))) where s is ofAtomicFormula Element of S : s is operational } ) \/ ((S -termsOfMaxDepth) . mm) & not w in (S -termsOfMaxDepth) . mm ) by Def30; then w in union { (Compound (s,((S -termsOfMaxDepth) . mm))) where s is ofAtomicFormula Element of S : s is operational } by XBOOLE_0:def_3; then consider C being set such that A1: ( w in C & C in { (Compound (s,((S -termsOfMaxDepth) . mm))) where s is ofAtomicFormula Element of S : s is operational } ) by TARSKI:def_4; consider sss being ofAtomicFormula Element of S such that A2: ( C = Compound (sss,((S -termsOfMaxDepth) . mm)) & sss is operational ) by A1; reconsider ss = sss as termal Element of S by A2; take s = ss; ::_thesis: ex T being Element of ((S -termsOfMaxDepth) . mm) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) consider StringTuple being Element of ((AllSymbolsOf S) *) * such that A3: ( w = <*s*> ^ ((S -multiCat) . StringTuple) & rng StringTuple c= (S -termsOfMaxDepth) . mm & StringTuple is abs (ar ss) -element ) by A1, A2; reconsider TT = StringTuple as FinSequence of (S -termsOfMaxDepth) . mm by A3, FINSEQ_1:def_4; reconsider TTT = TT as Element of ((S -termsOfMaxDepth) . mm) * by FINSEQ_1:def_11; take T = TTT; ::_thesis: ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) thus T is abs (ar s) -element by A3; ::_thesis: w = <*s*> ^ ((S -multiCat) . T) thus w = <*s*> ^ ((S -multiCat) . T) by A3; ::_thesis: verum end; Lm8: for mm being Element of NAT for S being Language for w being b1 + 1 -termal string of S ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . mm) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) proof let mm be Element of NAT ; ::_thesis: for S being Language for w being mm + 1 -termal string of S ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . mm) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) let S be Language; ::_thesis: for w being mm + 1 -termal string of S ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . mm) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) set TS = TermSymbolsOf S; set T = S -termsOfMaxDepth ; set C = S -multiCat ; set L = LettersOf S; defpred S1[ Element of NAT ] means for w being $1 + 1 -termal string of S ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . $1) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ); defpred S2[ Nat] means ex mm being Element of NAT st ( mm = $1 & S1[mm] ); A1: S2[ 0 ] proof take 0 ; ::_thesis: ( 0 = 0 & S1[ 0 ] ) thus 0 = 0 ; ::_thesis: S1[ 0 ] thus S1[ 0 ] ::_thesis: verum proof let w be 0 + 1 -termal string of S; ::_thesis: ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . 0) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) percases ( w is 0 -termal or not w is 0 -termal ) ; suppose w is 0 -termal ; ::_thesis: ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . 0) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) then w in (S -termsOfMaxDepth) . 0 by Def33; then w in AtomicTermsOf S by Def30; then w in { <*ss*> where ss is Element of LettersOf S : verum } by FINSEQ_2:96; then consider ss being Element of LettersOf S such that A2: w = <*ss*> ; reconsider sss = ss as literal Element of S by Def14; reconsider TT = {} as FinSequence ; rng TT = {} ; then rng TT c= (S -termsOfMaxDepth) . 0 by XBOOLE_1:2; then reconsider TTT = TT as FinSequence of (S -termsOfMaxDepth) . 0 by FINSEQ_1:def_4; reconsider TTTT = TTT as Element of ((S -termsOfMaxDepth) . 0) * by FINSEQ_1:def_11; take s = sss; ::_thesis: ex T being Element of ((S -termsOfMaxDepth) . 0) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) take T = TTTT; ::_thesis: ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) thus T is abs (ar s) -element ; ::_thesis: w = <*s*> ^ ((S -multiCat) . T) reconsider s = sss as Element of TermSymbolsOf S by Def18; ( (S -multiCat) . {} = {} & <*sss*> ^ {} = <*sss*> ) ; hence w = <*s*> ^ ((S -multiCat) . T) by A2; ::_thesis: verum end; suppose not w is 0 -termal ; ::_thesis: ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . 0) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) hence ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . 0) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) by Lm7; ::_thesis: verum end; end; end; end; A3: for m being Nat st S2[m] holds S2[m + 1] proof let m be Nat; ::_thesis: ( S2[m] implies S2[m + 1] ) reconsider mm = m, mmm = m + 1 as Element of NAT by ORDINAL1:def_12; assume A4: S2[m] ; ::_thesis: S2[m + 1] take mmm ; ::_thesis: ( mmm = m + 1 & S1[mmm] ) thus mmm = m + 1 ; ::_thesis: S1[mmm] let w be mmm + 1 -termal string of S; ::_thesis: ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . mmm) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) percases ( not w is mmm -termal or w is mmm -termal ) ; suppose not w is mmm -termal ; ::_thesis: ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . mmm) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) hence ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . mmm) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) by Lm7; ::_thesis: verum end; suppose w is mmm -termal ; ::_thesis: ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . mmm) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) then consider s being termal Element of S, T being Element of ((S -termsOfMaxDepth) . mm) * such that A5: ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) by A4; set high = (S -termsOfMaxDepth) . mmm; reconsider low = (S -termsOfMaxDepth) . mm as Subset of ((S -termsOfMaxDepth) . mmm) by Lm5; ( T in low * & low * is Subset of (((S -termsOfMaxDepth) . mmm) *) ) ; then reconsider TT = T as Element of ((S -termsOfMaxDepth) . mmm) * ; take s ; ::_thesis: ex T being Element of ((S -termsOfMaxDepth) . mmm) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) take TT ; ::_thesis: ( TT is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . TT) ) thus ( TT is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . TT) ) by A5; ::_thesis: verum end; end; end; A6: for m being Nat holds S2[m] from NAT_1:sch_2(A1, A3); now__::_thesis:_for_mm_being_Element_of_NAT_holds_S1[mm] let mm be Element of NAT ; ::_thesis: S1[mm] reconsider m = mm as Nat ; consider nn being Element of NAT such that A7: ( nn = m & S1[nn] ) by A6; thus S1[mm] by A7; ::_thesis: verum end; hence for w being mm + 1 -termal string of S ex s being termal Element of S ex T being Element of ((S -termsOfMaxDepth) . mm) * st ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) ; ::_thesis: verum end; registration let S be Language; let w be termal string of S; cluster(S -firstChar) . w -> termal for Element of S; coherence for b1 being Element of S st b1 = (S -firstChar) . w holds b1 is termal proof set A = AllTermsOf S; set T = S -termsOfMaxDepth ; set Z = AtomicTermsOf S; set SS = AllSymbolsOf S; set s = (S -firstChar) . w; set ss = ((AllSymbolsOf S) -firstChar) . w; set L = LettersOf S; w in AllTermsOf S by Def32; then consider mm being Element of NAT such that A1: w in (S -termsOfMaxDepth) . mm by Lm6; reconsider ww = w as non empty FinSequence of AllSymbolsOf S by FOMODEL0:5; A2: ((AllSymbolsOf S) -firstChar) . w = ww . 1 by FOMODEL0:6; percases ( mm = 0 or mm <> 0 ) ; suppose mm = 0 ; ::_thesis: for b1 being Element of S st b1 = (S -firstChar) . w holds b1 is termal then reconsider www = w as 0 -termal string of S by Def33, A1; (S -firstChar) . www is literal ; hence for b1 being Element of S st b1 = (S -firstChar) . w holds b1 is termal ; ::_thesis: verum end; suppose mm <> 0 ; ::_thesis: for b1 being Element of S st b1 = (S -firstChar) . w holds b1 is termal then consider n being Nat such that A3: mm = n + 1 by NAT_1:6; reconsider nn = n as Element of NAT by ORDINAL1:def_12; reconsider www = w as nn + 1 -termal string of S by A3, A1, Def33; consider s1 being termal Element of S, T1 being Element of ((S -termsOfMaxDepth) . nn) * such that A4: ( T1 is abs (ar s1) -element & www = <*s1*> ^ ((S -multiCat) . T1) ) by Lm8; thus for b1 being Element of S st b1 = (S -firstChar) . w holds b1 is termal by A4, A2, FINSEQ_1:41; ::_thesis: verum end; end; end; end; definition let S be Language; let t be termal string of S; func ar t -> Element of INT equals :: FOMODEL1:def 34 ar ((S -firstChar) . t); coherence ar ((S -firstChar) . t) is Element of INT ; end; :: deftheorem defines ar FOMODEL1:def_34_:_ for S being Language for t being termal string of S holds ar t = ar ((S -firstChar) . t); theorem Th3: :: FOMODEL1:3 for mm being Element of NAT for S being Language for w being b1 + 1 -termal string of S ex T being Element of ((S -termsOfMaxDepth) . mm) * st ( T is abs (ar ((S -firstChar) . w)) -element & w = <*((S -firstChar) . w)*> ^ ((S -multiCat) . T) ) proof let mm be Element of NAT ; ::_thesis: for S being Language for w being mm + 1 -termal string of S ex T being Element of ((S -termsOfMaxDepth) . mm) * st ( T is abs (ar ((S -firstChar) . w)) -element & w = <*((S -firstChar) . w)*> ^ ((S -multiCat) . T) ) let S be Language; ::_thesis: for w being mm + 1 -termal string of S ex T being Element of ((S -termsOfMaxDepth) . mm) * st ( T is abs (ar ((S -firstChar) . w)) -element & w = <*((S -firstChar) . w)*> ^ ((S -multiCat) . T) ) let w be mm + 1 -termal string of S; ::_thesis: ex T being Element of ((S -termsOfMaxDepth) . mm) * st ( T is abs (ar ((S -firstChar) . w)) -element & w = <*((S -firstChar) . w)*> ^ ((S -multiCat) . T) ) consider s being termal Element of S, T being Element of ((S -termsOfMaxDepth) . mm) * such that A1: ( T is abs (ar s) -element & w = <*s*> ^ ((S -multiCat) . T) ) by Lm8; reconsider ww = w as non empty FinSequence of AllSymbolsOf S by FINSEQ_1:def_11; s = w . 1 by A1, FINSEQ_1:41 .= (S -firstChar) . w by FOMODEL0:6 ; hence ex T being Element of ((S -termsOfMaxDepth) . mm) * st ( T is abs (ar ((S -firstChar) . w)) -element & w = <*((S -firstChar) . w)*> ^ ((S -multiCat) . T) ) by A1; ::_thesis: verum end; Lm9: for m being Nat for S being Language holds (S -termsOfMaxDepth) . m is S -prefix proof let m be Nat; ::_thesis: for S being Language holds (S -termsOfMaxDepth) . m is S -prefix let S be Language; ::_thesis: (S -termsOfMaxDepth) . m is S -prefix set T = S -termsOfMaxDepth ; set SS = AllSymbolsOf S; set L = LettersOf S; set S1 = 1 -tuples_on (AllSymbolsOf S); set f = S -cons ; set F = S -multiCat ; set ff = (AllSymbolsOf S) -concatenation ; set FF = (AllSymbolsOf S) -multiCat ; A1: dom ((AllSymbolsOf S) -multiCat) = ((AllSymbolsOf S) *) * by FUNCT_2:def_1; reconsider LS = LettersOf S as non empty Subset of (AllSymbolsOf S) ; set L1 = 1 -tuples_on LS; defpred S1[ Nat] means (S -termsOfMaxDepth) . $1 is S -prefix ; A2: S1[ 0 ] proof (1 -tuples_on LS) /\ (1 -tuples_on (AllSymbolsOf S)) = 1 -tuples_on (LS /\ (AllSymbolsOf S)) by FOMODEL0:3 .= 1 -tuples_on LS by XBOOLE_1:28 ; then reconsider L11 = 1 -tuples_on LS as Subset of (1 -tuples_on (AllSymbolsOf S)) ; (S -termsOfMaxDepth) . 0 = AtomicTermsOf S by Def30 .= L11 ; hence S1[ 0 ] ; ::_thesis: verum end; A3: for m being Nat st S1[m] holds S1[m + 1] proof let m be Nat; ::_thesis: ( S1[m] implies S1[m + 1] ) assume A4: S1[m] ; ::_thesis: S1[m + 1] reconsider mm = m, mm1 = m + 1 as Element of NAT by ORDINAL1:def_12; now__::_thesis:_for_t1,_t2,_w1,_w2_being_set_st_t1_in_((S_-termsOfMaxDepth)_._(m_+_1))_/\_((AllSymbolsOf_S)_*)_&_t2_in_((S_-termsOfMaxDepth)_._(m_+_1))_/\_((AllSymbolsOf_S)_*)_&_w1_in_(AllSymbolsOf_S)_*_&_w2_in_(AllSymbolsOf_S)_*_&_(S_-cons)_._(t1,w1)_=_(S_-cons)_._(t2,w2)_holds_ (_t1_=_t2_&_w1_=_w2_) let t1, t2, w1, w2 be set ; ::_thesis: ( t1 in ((S -termsOfMaxDepth) . (m + 1)) /\ ((AllSymbolsOf S) *) & t2 in ((S -termsOfMaxDepth) . (m + 1)) /\ ((AllSymbolsOf S) *) & w1 in (AllSymbolsOf S) * & w2 in (AllSymbolsOf S) * & (S -cons) . (t1,w1) = (S -cons) . (t2,w2) implies ( t1 = t2 & w1 = w2 ) ) assume A5: ( t1 in ((S -termsOfMaxDepth) . (m + 1)) /\ ((AllSymbolsOf S) *) & t2 in ((S -termsOfMaxDepth) . (m + 1)) /\ ((AllSymbolsOf S) *) & w1 in (AllSymbolsOf S) * & w2 in (AllSymbolsOf S) * ) ; ::_thesis: ( (S -cons) . (t1,w1) = (S -cons) . (t2,w2) implies ( t1 = t2 & w1 = w2 ) ) ( t1 in (S -termsOfMaxDepth) . mm1 & not t1 in {{}} & t2 in (S -termsOfMaxDepth) . mm1 & not t2 in {{}} ) by A5; then reconsider t11 = t1, t22 = t2 as mm + 1 -termal string of S by Def33, XBOOLE_0:def_5; reconsider t111 = t11, t222 = t22 as FinSequence of AllSymbolsOf S by FINSEQ_1:def_11; consider T1 being Element of ((S -termsOfMaxDepth) . mm) * such that A6: ( T1 is abs (ar ((S -firstChar) . t11)) -element & t11 = <*((S -firstChar) . t11)*> ^ ((S -multiCat) . T1) ) by Th3; consider T2 being Element of ((S -termsOfMaxDepth) . mm) * such that A7: ( T2 is abs (ar ((S -firstChar) . t22)) -element & t22 = <*((S -firstChar) . t22)*> ^ ((S -multiCat) . T2) ) by Th3; reconsider T11 = T1, T22 = T2 as FinSequence of (S -termsOfMaxDepth) . mm by FINSEQ_1:def_11; reconsider w11 = w1, w22 = w2 as Element of (AllSymbolsOf S) * by A5; reconsider head1 = (S -multiCat) . T1, head2 = (S -multiCat) . T2, tail1 = w11, tail2 = w22 as FinSequence of AllSymbolsOf S by FINSEQ_1:def_11; assume (S -cons) . (t1,w1) = (S -cons) . (t2,w2) ; ::_thesis: ( t1 = t2 & w1 = w2 ) then t111 ^ w11 = (S -cons) . (t222,w22) by FOMODEL0:4; then (<*((S -firstChar) . t11)*> ^ ((S -multiCat) . T1)) ^ w11 = t222 ^ w22 by A6, FOMODEL0:4; then <*((S -firstChar) . t11)*> ^ (((S -multiCat) . T1) ^ w11) = (<*((S -firstChar) . t22)*> ^ ((S -multiCat) . T2)) ^ w22 by A7, FINSEQ_1:32; then <*((S -firstChar) . t11)*> ^ (head1 ^ tail1) = <*((S -firstChar) . t22)*> ^ (head2 ^ tail2) by FINSEQ_1:32; then A8: (S -cons) . (<*((S -firstChar) . t11)*>,(head1 ^ tail1)) = <*((S -firstChar) . t22)*> ^ (head2 ^ tail2) by FOMODEL0:4; 1 -tuples_on (AllSymbolsOf S) c= 1 -tuples_on (AllSymbolsOf S) ; then reconsider S1 = 1 -tuples_on (AllSymbolsOf S) as Subset of (1 -tuples_on (AllSymbolsOf S)) ; A9: S1 is S -cons -unambiguous by FOMODEL0:def_3; S1 /\ ((AllSymbolsOf S) *) = S1 by FINSEQ_2:134, XBOOLE_1:28; then ( <*((S -firstChar) . t11)*> in S1 /\ ((AllSymbolsOf S) *) & <*((S -firstChar) . t22)*> in S1 /\ ((AllSymbolsOf S) *) & head1 ^ tail1 in (AllSymbolsOf S) * & head2 ^ tail2 in (AllSymbolsOf S) * & (S -cons) . (<*((S -firstChar) . t11)*>,(head1 ^ tail1)) = (S -cons) . (<*((S -firstChar) . t22)*>,(head2 ^ tail2)) ) by A8, FOMODEL0:4; then A10: ( <*((S -firstChar) . t11)*> = <*((S -firstChar) . t22)*> & head1 ^ tail1 = head2 ^ tail2 & head1 ^ tail1 = ((AllSymbolsOf S) -concatenation) . (head1,tail1) ) by A9, FOMODEL0:4, FOMODEL0:def_9; A11: (S -firstChar) . t11 = (S -firstChar) . t22 by A10, FINSEQ_1:76; set n = abs (ar ((S -firstChar) . t11)); ( len T11 = abs (ar ((S -firstChar) . t11)) & len T22 = abs (ar ((S -firstChar) . t11)) ) by A6, A11, A7, CARD_1:def_7; then ( T11 in (abs (ar ((S -firstChar) . t11))) -tuples_on ((S -termsOfMaxDepth) . m) & T22 in (abs (ar ((S -firstChar) . t11))) -tuples_on ((S -termsOfMaxDepth) . m) & T11 in dom ((AllSymbolsOf S) -multiCat) & T22 in dom ((AllSymbolsOf S) -multiCat) ) by A1, FINSEQ_2:133; then ( ((AllSymbolsOf S) -multiCat) . T11 in ((AllSymbolsOf S) -multiCat) .: ((abs (ar ((S -firstChar) . t11))) -tuples_on ((S -termsOfMaxDepth) . m)) & ((AllSymbolsOf S) -multiCat) . T22 in ((AllSymbolsOf S) -multiCat) .: ((abs (ar ((S -firstChar) . t11))) -tuples_on ((S -termsOfMaxDepth) . m)) & ((AllSymbolsOf S) -multiCat) . T1 in (AllSymbolsOf S) * & ((AllSymbolsOf S) -multiCat) . T2 in (AllSymbolsOf S) * ) by FUNCT_1:def_6; then A12: ( ((AllSymbolsOf S) -multiCat) . T1 in (((AllSymbolsOf S) -multiCat) .: ((abs (ar ((S -firstChar) . t11))) -tuples_on ((S -termsOfMaxDepth) . m))) /\ ((AllSymbolsOf S) *) & ((AllSymbolsOf S) -multiCat) . T2 in (((AllSymbolsOf S) -multiCat) .: ((abs (ar ((S -firstChar) . t11))) -tuples_on ((S -termsOfMaxDepth) . m))) /\ ((AllSymbolsOf S) *) & w11 in (AllSymbolsOf S) * & w22 in (AllSymbolsOf S) * & ((AllSymbolsOf S) -concatenation) . ((((AllSymbolsOf S) -multiCat) . T1),w11) = ((AllSymbolsOf S) -concatenation) . ((((AllSymbolsOf S) -multiCat) . T2),w22) ) by A10, FOMODEL0:4, XBOOLE_0:def_4; ( (S -termsOfMaxDepth) . m is AllSymbolsOf S -prefix & ( (S -termsOfMaxDepth) . m is AllSymbolsOf S -prefix implies ((AllSymbolsOf S) -multiCat) .: ((abs (ar ((S -firstChar) . t11))) -tuples_on ((S -termsOfMaxDepth) . m)) is AllSymbolsOf S -prefix ) ) by A4, Def28; then ((AllSymbolsOf S) -multiCat) .: ((abs (ar ((S -firstChar) . t11))) -tuples_on ((S -termsOfMaxDepth) . m)) is (AllSymbolsOf S) -concatenation -unambiguous by FOMODEL0:def_3; hence ( t1 = t2 & w1 = w2 ) by A6, A7, A10, A12, FOMODEL0:def_9; ::_thesis: verum end; then (S -termsOfMaxDepth) . (m + 1) is (AllSymbolsOf S) -concatenation -unambiguous by FOMODEL0:def_9; then (S -termsOfMaxDepth) . (m + 1) is AllSymbolsOf S -prefix by FOMODEL0:def_3; hence S1[m + 1] ; ::_thesis: verum end; for m being Nat holds S1[m] from NAT_1:sch_2(A2, A3); hence (S -termsOfMaxDepth) . m is S -prefix ; ::_thesis: verum end; registration let S be Language; let m be Nat; cluster(S -termsOfMaxDepth) . m -> S -prefix ; coherence (S -termsOfMaxDepth) . m is S -prefix by Lm9; end; registration let S be Language; let V be Element of (AllTermsOf S) * ; cluster(S -multiCat) . V -> Relation-like ; coherence (S -multiCat) . V is Relation-like ; end; registration let S be Language; let V be Element of (AllTermsOf S) * ; cluster(S -multiCat) . V -> Function-like for Relation; coherence for b1 being Relation st b1 = (S -multiCat) . V holds b1 is Function-like ; end; definition let S be Language; let phi be string of S; attrphi is 0wff means :Def35: :: FOMODEL1:def 35 ex s being relational Element of S ex V being abs (ar b1) -element Element of (AllTermsOf S) * st phi = <*s*> ^ ((S -multiCat) . V); end; :: deftheorem Def35 defines 0wff FOMODEL1:def_35_:_ for S being Language for phi being string of S holds ( phi is 0wff iff ex s being relational Element of S ex V being abs (ar b3) -element Element of (AllTermsOf S) * st phi = <*s*> ^ ((S -multiCat) . V) ); registration let S be Language; cluster non empty Relation-like NAT -defined Function-like finite FinSequence-like FinSubsequence-like countable finite-support 0wff for Element of ((AllSymbolsOf S) *) \ {{}}; existence ex b1 being string of S st b1 is 0wff proof set SS = AllSymbolsOf S; set s = the relational Element of S; set V = the abs (ar the relational Element of S) -element Element of (AllTermsOf S) * ; reconsider ss = the relational Element of S as Element of AllSymbolsOf S ; reconsider tail = (S -multiCat) . the abs (ar the relational Element of S) -element Element of (AllTermsOf S) * as FinSequence of AllSymbolsOf S by FINSEQ_1:def_11; reconsider IT = <*ss*> ^ tail as Element of ((AllSymbolsOf S) *) \ {{}} by FOMODEL0:5; take IT ; ::_thesis: IT is 0wff thus IT is 0wff by Def35; ::_thesis: verum end; end; registration let S be Language; let phi be 0wff string of S; cluster(S -firstChar) . phi -> relational for Element of S; coherence for b1 being Element of S st b1 = (S -firstChar) . phi holds b1 is relational proof set SS = AllSymbolsOf S; set A = AllTermsOf S; set C = S -multiCat ; set F = S -firstChar ; consider s being relational Element of S, V being abs (ar s) -element Element of (AllTermsOf S) * such that A1: phi = <*s*> ^ ((S -multiCat) . V) by Def35; reconsider ss = s as Element of AllSymbolsOf S ; reconsider head = <*ss*> as FinSequence of AllSymbolsOf S ; reconsider tail = (S -multiCat) . V as FinSequence of AllSymbolsOf S by FINSEQ_1:def_11; (S -firstChar) . phi = (head ^ tail) . 1 by A1, FOMODEL0:6 .= s by FINSEQ_1:41 ; hence for b1 being Element of S st b1 = (S -firstChar) . phi holds b1 is relational ; ::_thesis: verum end; end; definition let S be Language; func AtomicFormulasOf S -> set equals :: FOMODEL1:def 36 { phi where phi is string of S : phi is 0wff } ; coherence { phi where phi is string of S : phi is 0wff } is set ; end; :: deftheorem defines AtomicFormulasOf FOMODEL1:def_36_:_ for S being Language holds AtomicFormulasOf S = { phi where phi is string of S : phi is 0wff } ; definition let S be Language; :: original: AtomicFormulasOf redefine func AtomicFormulasOf S -> Subset of (((AllSymbolsOf S) *) \ {{}}); coherence AtomicFormulasOf S is Subset of (((AllSymbolsOf S) *) \ {{}}) proof set SS = AllSymbolsOf S; set AF = AtomicFormulasOf S; defpred S1[ Element of ((AllSymbolsOf S) *) \ {{}}] means $1 is 0wff ; { phi where phi is Element of ((AllSymbolsOf S) *) \ {{}} : S1[phi] } is Subset of (((AllSymbolsOf S) *) \ {{}}) from DOMAIN_1:sch_7(); hence AtomicFormulasOf S is Subset of (((AllSymbolsOf S) *) \ {{}}) ; ::_thesis: verum end; end; registration let S be Language; cluster AtomicFormulasOf S -> non empty ; coherence not AtomicFormulasOf S is empty proof set AF = AtomicFormulasOf S; set phi = the 0wff string of S; the 0wff string of S in AtomicFormulasOf S ; hence not AtomicFormulasOf S is empty ; ::_thesis: verum end; end; registration let S be Language; cluster -> 0wff for Element of AtomicFormulasOf S; coherence for b1 being Element of AtomicFormulasOf S holds b1 is 0wff proof set AF = AtomicFormulasOf S; let phi be Element of AtomicFormulasOf S; ::_thesis: phi is 0wff phi in AtomicFormulasOf S ; then consider x being string of S such that A1: ( phi = x & x is 0wff ) ; thus phi is 0wff by A1; ::_thesis: verum end; end; Lm10: for S being Language holds AllTermsOf S is S -prefix proof let S be Language; ::_thesis: AllTermsOf S is S -prefix set SS = AllSymbolsOf S; set f = (AllSymbolsOf S) -concatenation ; set F = (AllSymbolsOf S) -multiCat ; set TT = AllTermsOf S; set T = S -termsOfMaxDepth ; now__::_thesis:_for_t1,_t2,_w1,_w2_being_set_st_t1_in_(AllTermsOf_S)_/\_((AllSymbolsOf_S)_*)_&_t2_in_(AllTermsOf_S)_/\_((AllSymbolsOf_S)_*)_&_w1_in_(AllSymbolsOf_S)_*_&_w2_in_(AllSymbolsOf_S)_*_&_((AllSymbolsOf_S)_-concatenation)_._(t1,w1)_=_((AllSymbolsOf_S)_-concatenation)_._(t2,w2)_holds_ (_t1_=_t2_&_w1_=_w2_) let t1, t2, w1, w2 be set ; ::_thesis: ( t1 in (AllTermsOf S) /\ ((AllSymbolsOf S) *) & t2 in (AllTermsOf S) /\ ((AllSymbolsOf S) *) & w1 in (AllSymbolsOf S) * & w2 in (AllSymbolsOf S) * & ((AllSymbolsOf S) -concatenation) . (t1,w1) = ((AllSymbolsOf S) -concatenation) . (t2,w2) implies ( t1 = t2 & w1 = w2 ) ) assume A1: ( t1 in (AllTermsOf S) /\ ((AllSymbolsOf S) *) & t2 in (AllTermsOf S) /\ ((AllSymbolsOf S) *) & w1 in (AllSymbolsOf S) * & w2 in (AllSymbolsOf S) * & ((AllSymbolsOf S) -concatenation) . (t1,w1) = ((AllSymbolsOf S) -concatenation) . (t2,w2) ) ; ::_thesis: ( t1 = t2 & w1 = w2 ) consider mm being Element of NAT such that A2: t1 in (S -termsOfMaxDepth) . mm by Lm6, A1; consider nn being Element of NAT such that A3: t2 in (S -termsOfMaxDepth) . nn by Lm6, A1; set p = mm + nn; A4: (S -termsOfMaxDepth) . (mm + nn) is (AllSymbolsOf S) -concatenation -unambiguous by FOMODEL0:def_3; ( (S -termsOfMaxDepth) . mm c= (S -termsOfMaxDepth) . (mm + nn) & (S -termsOfMaxDepth) . nn c= (S -termsOfMaxDepth) . (mm + nn) ) by Lm5; then ( t1 in ((S -termsOfMaxDepth) . (mm + nn)) /\ ((AllSymbolsOf S) *) & t2 in ((S -termsOfMaxDepth) . (mm + nn)) /\ ((AllSymbolsOf S) *) & w1 in (AllSymbolsOf S) * & w2 in (AllSymbolsOf S) * & ((AllSymbolsOf S) -concatenation) . (t1,w1) = ((AllSymbolsOf S) -concatenation) . (t2,w2) ) by A1, A2, A3, XBOOLE_0:def_4; hence ( t1 = t2 & w1 = w2 ) by A4, FOMODEL0:def_9; ::_thesis: verum end; then AllTermsOf S is (AllSymbolsOf S) -concatenation -unambiguous by FOMODEL0:def_9; then AllTermsOf S is AllSymbolsOf S -prefix by FOMODEL0:def_3; hence AllTermsOf S is S -prefix ; ::_thesis: verum end; registration let S be Language; cluster AllTermsOf S -> S -prefix ; coherence AllTermsOf S is S -prefix by Lm10; end; definition let S be Language; let t be termal string of S; func SubTerms t -> Element of (AllTermsOf S) * means :Def37: :: FOMODEL1:def 37 ( it is abs (ar ((S -firstChar) . t)) -element & t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . it) ); existence ex b1 being Element of (AllTermsOf S) * st ( b1 is abs (ar ((S -firstChar) . t)) -element & t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . b1) ) proof set SS = AllSymbolsOf S; set T = S -termsOfMaxDepth ; set TT = AllTermsOf S; set s = (S -firstChar) . t; set n = abs (ar ((S -firstChar) . t)); t in AllTermsOf S by Def32; then consider mmm being Element of NAT such that A1: t in (S -termsOfMaxDepth) . mmm by Lm6; reconsider tt = t as mmm -termal string of S by A1, Def33; reconsider tttt = t as non empty FinSequence of AllSymbolsOf S by FOMODEL0:5; percases ( mmm = 0 or mmm <> 0 ) ; suppose mmm = 0 ; ::_thesis: ex b1 being Element of (AllTermsOf S) * st ( b1 is abs (ar ((S -firstChar) . t)) -element & t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . b1) ) then reconsider ttt = tt as 0 -termal string of S ; reconsider e = {} as Element of (AllTermsOf S) * by FINSEQ_1:49; take e ; ::_thesis: ( e is abs (ar ((S -firstChar) . t)) -element & t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . e) ) abs (ar ((S -firstChar) . ttt)) is zero ; hence e is abs (ar ((S -firstChar) . t)) -element ; ::_thesis: t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . e) A2: len ttt = 1 by CARD_1:def_7; then tttt = <*(tttt /. 1)*> by FINSEQ_5:14 .= <*(tttt . 1)*> by A2, FINSEQ_4:15 .= <*(((AllSymbolsOf S) -firstChar) . t)*> ^ {} by FOMODEL0:6 .= <*(((AllSymbolsOf S) -firstChar) . t)*> ^ ((S -multiCat) . e) ; hence t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . e) ; ::_thesis: verum end; suppose mmm <> 0 ; ::_thesis: ex b1 being Element of (AllTermsOf S) * st ( b1 is abs (ar ((S -firstChar) . t)) -element & t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . b1) ) then consider m being Nat such that A3: mmm = m + 1 by NAT_1:6; reconsider mm = m as Element of NAT by ORDINAL1:def_12; reconsider ttt = tt as mm + 1 -termal string of S by A3; consider ST being Element of ((S -termsOfMaxDepth) . mm) * such that A4: ( ST is abs (ar ((S -firstChar) . t)) -element & ttt = <*((S -firstChar) . ttt)*> ^ ((S -multiCat) . ST) ) by Th3; reconsider TM = (S -termsOfMaxDepth) . mm as Subset of (AllTermsOf S) by Th2; ( ST in TM * & TM * c= (AllTermsOf S) * ) ; then reconsider STT = ST as Element of (AllTermsOf S) * ; take STT ; ::_thesis: ( STT is abs (ar ((S -firstChar) . t)) -element & t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . STT) ) thus ( STT is abs (ar ((S -firstChar) . t)) -element & t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . STT) ) by A4; ::_thesis: verum end; end; end; uniqueness for b1, b2 being Element of (AllTermsOf S) * st b1 is abs (ar ((S -firstChar) . t)) -element & t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . b1) & b2 is abs (ar ((S -firstChar) . t)) -element & t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . b2) holds b1 = b2 proof set SS = AllSymbolsOf S; set T = S -termsOfMaxDepth ; set TT = AllTermsOf S; set s = (S -firstChar) . t; set n = abs (ar ((S -firstChar) . t)); A5: (AllSymbolsOf S) -multiCat is (abs (ar ((S -firstChar) . t))) -tuples_on (AllTermsOf S) -one-to-one by FOMODEL0:8; A6: dom ((AllSymbolsOf S) -multiCat) = ((AllSymbolsOf S) *) * by FUNCT_2:def_1; let IT1, IT2 be Element of (AllTermsOf S) * ; ::_thesis: ( IT1 is abs (ar ((S -firstChar) . t)) -element & t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . IT1) & IT2 is abs (ar ((S -firstChar) . t)) -element & t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . IT2) implies IT1 = IT2 ) reconsider IT11 = IT1, IT22 = IT2 as FinSequence of AllTermsOf S by FINSEQ_1:def_11; assume A7: ( IT1 is abs (ar ((S -firstChar) . t)) -element & t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . IT1) ) ; ::_thesis: ( not IT2 is abs (ar ((S -firstChar) . t)) -element or not t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . IT2) or IT1 = IT2 ) then len IT11 = abs (ar ((S -firstChar) . t)) by CARD_1:def_7; then reconsider IT111 = IT11 as Element of (abs (ar ((S -firstChar) . t))) -tuples_on (AllTermsOf S) by FINSEQ_2:133; assume A8: ( IT2 is abs (ar ((S -firstChar) . t)) -element & t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . IT2) ) ; ::_thesis: IT1 = IT2 then len IT22 = abs (ar ((S -firstChar) . t)) by CARD_1:def_7; then reconsider IT222 = IT22 as Element of (abs (ar ((S -firstChar) . t))) -tuples_on (AllTermsOf S) by FINSEQ_2:133; A9: ((AllSymbolsOf S) -multiCat) . IT111 = ((AllSymbolsOf S) -multiCat) . IT222 by A7, A8, FINSEQ_1:33; ( IT111 in ((abs (ar ((S -firstChar) . t))) -tuples_on (AllTermsOf S)) /\ (dom ((AllSymbolsOf S) -multiCat)) & IT222 in ((abs (ar ((S -firstChar) . t))) -tuples_on (AllTermsOf S)) /\ (dom ((AllSymbolsOf S) -multiCat)) ) by A6, XBOOLE_0:def_4; hence IT1 = IT2 by A9, A5, FOMODEL0:def_5; ::_thesis: verum end; end; :: deftheorem Def37 defines SubTerms FOMODEL1:def_37_:_ for S being Language for t being termal string of S for b3 being Element of (AllTermsOf S) * holds ( b3 = SubTerms t iff ( b3 is abs (ar ((S -firstChar) . t)) -element & t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . b3) ) ); registration let S be Language; let t be termal string of S; cluster SubTerms t -> abs (ar t) -element for Element of (AllTermsOf S) * ; coherence for b1 being Element of (AllTermsOf S) * st b1 = SubTerms t holds b1 is abs (ar t) -element by Def37; end; registration let S be Language; let t0 be 0 -termal string of S; cluster SubTerms t0 -> empty for Element of (AllTermsOf S) * ; coherence for b1 being Element of (AllTermsOf S) * st b1 = SubTerms t0 holds b1 is empty proof abs (ar t0) = 0 ; hence for b1 being Element of (AllTermsOf S) * st b1 = SubTerms t0 holds b1 is empty ; ::_thesis: verum end; end; registration let mm be Element of NAT ; let S be Language; let t be mm + 1 -termal string of S; cluster SubTerms t -> (S -termsOfMaxDepth) . mm -valued for Element of (AllTermsOf S) * ; coherence for b1 being Element of (AllTermsOf S) * st b1 = SubTerms t holds b1 is (S -termsOfMaxDepth) . mm -valued proof set T = S -termsOfMaxDepth ; set F = S -firstChar ; set C = S -multiCat ; set A = AllTermsOf S; set SS = AllSymbolsOf S; consider TT being Element of ((S -termsOfMaxDepth) . mm) * such that A1: ( TT is abs (ar t) -element & t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . TT) ) by Th3; reconsider X = (S -termsOfMaxDepth) . mm as Subset of (AllTermsOf S) by Th2; reconsider Y = X * as non empty Subset of ((AllTermsOf S) *) ; reconsider TTTT = TT as Element of Y ; reconsider TTT = TTTT as Element of (AllTermsOf S) * ; TTT = SubTerms t by Def37, A1; hence for b1 being Element of (AllTermsOf S) * st b1 = SubTerms t holds b1 is (S -termsOfMaxDepth) . mm -valued ; ::_thesis: verum end; end; definition let S be Language; let phi be 0wff string of S; func SubTerms phi -> abs (ar ((S -firstChar) . phi)) -element Element of (AllTermsOf S) * means :Def38: :: FOMODEL1:def 38 phi = <*((S -firstChar) . phi)*> ^ ((S -multiCat) . it); existence ex b1 being abs (ar ((S -firstChar) . phi)) -element Element of (AllTermsOf S) * st phi = <*((S -firstChar) . phi)*> ^ ((S -multiCat) . b1) proof set SS = AllSymbolsOf S; set A = AllTermsOf S; set C = S -multiCat ; set F = S -firstChar ; consider s being relational Element of S, V being abs (ar s) -element Element of (AllTermsOf S) * such that A1: phi = <*s*> ^ ((S -multiCat) . V) by Def35; reconsider ss = s as Element of AllSymbolsOf S ; reconsider head = <*ss*> as FinSequence of AllSymbolsOf S ; reconsider tail = (S -multiCat) . V as FinSequence of AllSymbolsOf S by FINSEQ_1:def_11; A2: (S -firstChar) . phi = (head ^ tail) . 1 by A1, FOMODEL0:6 .= s by FINSEQ_1:41 ; reconsider VV = V as abs (ar ((S -firstChar) . phi)) -element Element of (AllTermsOf S) * by A2; take VV ; ::_thesis: phi = <*((S -firstChar) . phi)*> ^ ((S -multiCat) . VV) thus phi = <*((S -firstChar) . phi)*> ^ ((S -multiCat) . VV) by A2, A1; ::_thesis: verum end; uniqueness for b1, b2 being abs (ar ((S -firstChar) . phi)) -element Element of (AllTermsOf S) * st phi = <*((S -firstChar) . phi)*> ^ ((S -multiCat) . b1) & phi = <*((S -firstChar) . phi)*> ^ ((S -multiCat) . b2) holds b1 = b2 proof set SS = AllSymbolsOf S; set A = AllTermsOf S; set C = S -multiCat ; set F = S -firstChar ; set n = abs (ar ((S -firstChar) . phi)); A3: ( dom (S -multiCat) = ((AllSymbolsOf S) *) * & (AllTermsOf S) * c= ((AllSymbolsOf S) *) * ) by FUNCT_2:def_1; reconsider s = (S -firstChar) . phi as Element of AllSymbolsOf S ; reconsider head = <*s*> as FinSequence of AllSymbolsOf S ; let IT1, IT2 be abs (ar ((S -firstChar) . phi)) -element Element of (AllTermsOf S) * ; ::_thesis: ( phi = <*((S -firstChar) . phi)*> ^ ((S -multiCat) . IT1) & phi = <*((S -firstChar) . phi)*> ^ ((S -multiCat) . IT2) implies IT1 = IT2 ) reconsider I1 = IT1, I2 = IT2 as FinSequence of AllTermsOf S by FINSEQ_1:def_11; ( len IT1 = abs (ar ((S -firstChar) . phi)) & len IT2 = abs (ar ((S -firstChar) . phi)) ) by CARD_1:def_7; then reconsider I11 = I1, I22 = I2 as Element of (abs (ar ((S -firstChar) . phi))) -tuples_on (AllTermsOf S) by FINSEQ_2:133; reconsider tail1 = (S -multiCat) . IT1, tail2 = (S -multiCat) . IT2 as FinSequence of AllSymbolsOf S by FINSEQ_1:def_11; assume A4: ( phi = <*((S -firstChar) . phi)*> ^ ((S -multiCat) . IT1) & phi = <*((S -firstChar) . phi)*> ^ ((S -multiCat) . IT2) ) ; ::_thesis: IT1 = IT2 ( IT1 in dom (S -multiCat) & I11 in (abs (ar ((S -firstChar) . phi))) -tuples_on (AllTermsOf S) & IT2 in dom (S -multiCat) & I22 in (abs (ar ((S -firstChar) . phi))) -tuples_on (AllTermsOf S) ) by A3; then A5: ( IT1 in ((abs (ar ((S -firstChar) . phi))) -tuples_on (AllTermsOf S)) /\ (dom (S -multiCat)) & IT2 in ((abs (ar ((S -firstChar) . phi))) -tuples_on (AllTermsOf S)) /\ (dom (S -multiCat)) & (S -multiCat) . IT1 = (S -multiCat) . IT2 ) by A4, FINSEQ_1:33, XBOOLE_0:def_4; S -multiCat is (abs (ar ((S -firstChar) . phi))) -tuples_on (AllTermsOf S) -one-to-one by FOMODEL0:8; hence IT1 = IT2 by A5, FOMODEL0:def_5; ::_thesis: verum end; end; :: deftheorem Def38 defines SubTerms FOMODEL1:def_38_:_ for S being Language for phi being 0wff string of S for b3 being abs (ar ((b1 -firstChar) . b2)) -element Element of (AllTermsOf S) * holds ( b3 = SubTerms phi iff phi = <*((S -firstChar) . phi)*> ^ ((S -multiCat) . b3) ); registration let S be Language; let phi be 0wff string of S; cluster SubTerms phi -> abs (ar ((S -firstChar) . phi)) -element for FinSequence; coherence for b1 being FinSequence st b1 = SubTerms phi holds b1 is abs (ar ((S -firstChar) . phi)) -element ; end; definition let S be Language; :: original: AllTermsOf redefine func AllTermsOf S -> Element of bool (((AllSymbolsOf S) *) \ {{}}); coherence AllTermsOf S is Element of bool (((AllSymbolsOf S) *) \ {{}}) proof set SS = AllSymbolsOf S; set A = AllTermsOf S; now__::_thesis:_for_x_being_set_st_x_in_AllTermsOf_S_holds_ x_in_((AllSymbolsOf_S)_*)_\_{{}} let x be set ; ::_thesis: ( x in AllTermsOf S implies x in ((AllSymbolsOf S) *) \ {{}} ) assume A1: x in AllTermsOf S ; ::_thesis: x in ((AllSymbolsOf S) *) \ {{}} then reconsider t = x as Element of AllTermsOf S ; ( not x in {{}} & x in (AllSymbolsOf S) * ) by A1; hence x in ((AllSymbolsOf S) *) \ {{}} by XBOOLE_0:def_5; ::_thesis: verum end; hence AllTermsOf S is Element of bool (((AllSymbolsOf S) *) \ {{}}) by TARSKI:def_3; ::_thesis: verum end; end; registration let S be Language; cluster -> termal for Element of AllTermsOf S; coherence for b1 being Element of AllTermsOf S holds b1 is termal by Def32; end; definition let S be Language; funcS -subTerms -> Function of (AllTermsOf S),((AllTermsOf S) *) means :: FOMODEL1:def 39 for t being Element of AllTermsOf S holds it . t = SubTerms t; existence ex b1 being Function of (AllTermsOf S),((AllTermsOf S) *) st for t being Element of AllTermsOf S holds b1 . t = SubTerms t proof set SS = AllSymbolsOf S; set A = AllTermsOf S; deffunc H1( Element of AllTermsOf S) -> Element of (AllTermsOf S) * = SubTerms $1; consider f being Function of (AllTermsOf S),((AllTermsOf S) *) 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 = SubTerms t thus for t being Element of AllTermsOf S holds f . t = SubTerms t by A1; ::_thesis: verum end; uniqueness for b1, b2 being Function of (AllTermsOf S),((AllTermsOf S) *) st ( for t being Element of AllTermsOf S holds b1 . t = SubTerms t ) & ( for t being Element of AllTermsOf S holds b2 . t = SubTerms t ) holds b1 = b2 proof set A = AllTermsOf S; let IT1, IT2 be Function of (AllTermsOf S),((AllTermsOf S) *); ::_thesis: ( ( for t being Element of AllTermsOf S holds IT1 . t = SubTerms t ) & ( for t being Element of AllTermsOf S holds IT2 . t = SubTerms t ) implies IT1 = IT2 ) assume A2: for t being Element of AllTermsOf S holds IT1 . t = SubTerms t ; ::_thesis: ( ex t being Element of AllTermsOf S st not IT2 . t = SubTerms t or IT1 = IT2 ) assume A3: for t being Element of AllTermsOf S holds IT2 . t = SubTerms 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 = SubTerms t by A2 .= IT2 . t by A3 ; ::_thesis: verum end; hence IT1 = IT2 by FUNCT_2:63; ::_thesis: verum end; end; :: deftheorem defines -subTerms FOMODEL1:def_39_:_ for S being Language for b2 being Function of (AllTermsOf S),((AllTermsOf S) *) holds ( b2 = S -subTerms iff for t being Element of AllTermsOf S holds b2 . t = SubTerms t ); theorem :: FOMODEL1:4 for m, n being Nat for S being Language holds (S -termsOfMaxDepth) . m c= (S -termsOfMaxDepth) . (m + n) by Lm5; theorem :: FOMODEL1:5 for x being set for S being Language st x in AllTermsOf S holds ex nn being Element of NAT st x in (S -termsOfMaxDepth) . nn by Lm6; theorem :: FOMODEL1:6 for S being Language holds AllTermsOf S c= ((AllSymbolsOf S) *) \ {{}} ; theorem :: FOMODEL1:7 for S being Language holds AllTermsOf S is S -prefix ; theorem :: FOMODEL1:8 for x being set for S being Language st x in AllTermsOf S holds x is string of S ; theorem :: FOMODEL1:9 for S being Language holds (AtomicFormulaSymbolsOf S) \ (OwnSymbolsOf S) = {(TheEqSymbOf S)} proof let S be Language; ::_thesis: (AtomicFormulaSymbolsOf S) \ (OwnSymbolsOf S) = {(TheEqSymbOf S)} set o = the OneF of S; set z = the ZeroF of S; set f = the adicity of S; set R = RelSymbolsOf S; set O = OwnSymbolsOf S; set SS = AllSymbolsOf S; set e = TheEqSymbOf S; set n = TheNorSymbOf S; set A = AtomicFormulaSymbolsOf S; set D = the carrier of S \ { the OneF of S}; A1: TheEqSymbOf S in AtomicFormulaSymbolsOf S ; (AtomicFormulaSymbolsOf S) \ (OwnSymbolsOf S) = (AtomicFormulaSymbolsOf S) \ ((AllSymbolsOf S) \ ({ the ZeroF of S} \/ { the OneF of S})) by ENUMSET1:1 .= (AtomicFormulaSymbolsOf S) \ ((AtomicFormulaSymbolsOf S) \ { the ZeroF of S}) by XBOOLE_1:41 .= ((AtomicFormulaSymbolsOf S) \ (AtomicFormulaSymbolsOf S)) \/ ((AtomicFormulaSymbolsOf S) /\ { the ZeroF of S}) by XBOOLE_1:52 .= { the ZeroF of S} by A1, ZFMISC_1:46 ; hence (AtomicFormulaSymbolsOf S) \ (OwnSymbolsOf S) = {(TheEqSymbOf S)} ; ::_thesis: verum end; theorem :: FOMODEL1:10 for S being Language holds (TermSymbolsOf S) \ (LettersOf S) = OpSymbolsOf S by FUNCT_1:69; theorem Th11: :: FOMODEL1:11 for S being Language holds (AtomicFormulaSymbolsOf S) \ (RelSymbolsOf S) = TermSymbolsOf S proof let S be Language; ::_thesis: (AtomicFormulaSymbolsOf S) \ (RelSymbolsOf S) = TermSymbolsOf S set R = RelSymbolsOf S; set SSS = AtomicFormulaSymbolsOf S; set f = the adicity of S; the adicity of S " INT = AtomicFormulaSymbolsOf S by FUNCT_2:40; hence (AtomicFormulaSymbolsOf S) \ (RelSymbolsOf S) = the adicity of S " (INT \ (INT \ NAT)) by FUNCT_1:69 .= the adicity of S " ((INT \ INT) \/ (INT /\ NAT)) by XBOOLE_1:52 .= TermSymbolsOf S by XBOOLE_1:7, XBOOLE_1:28 ; ::_thesis: verum end; registration let S be Language; cluster non relational ofAtomicFormula -> termal ofAtomicFormula for Element of AllSymbolsOf S; coherence for b1 being ofAtomicFormula Element of S st not b1 is relational holds b1 is termal proof set R = RelSymbolsOf S; set SSS = AtomicFormulaSymbolsOf S; set T = TermSymbolsOf S; let s be ofAtomicFormula Element of S; ::_thesis: ( not s is relational implies s is termal ) assume not s is relational ; ::_thesis: s is termal then ( s in AtomicFormulaSymbolsOf S & not s in RelSymbolsOf S ) by Def17, Def20; then s in (AtomicFormulaSymbolsOf S) \ (RelSymbolsOf S) by XBOOLE_0:def_5; then s in TermSymbolsOf S by Th11; hence s is termal by Def18; ::_thesis: verum end; end; definition let S be Language; :: original: OwnSymbolsOf redefine func OwnSymbolsOf S -> Subset of (AllSymbolsOf S); coherence OwnSymbolsOf S is Subset of (AllSymbolsOf S) ; end; registration let S be Language; cluster non literal termal -> operational termal for Element of AllSymbolsOf S; coherence for b1 being termal Element of S st not b1 is literal holds b1 is operational proof set L = LettersOf S; set P = OpSymbolsOf S; set T = TermSymbolsOf S; set f = the adicity of S; let s be termal Element of S; ::_thesis: ( not s is literal implies s is operational ) A1: s in TermSymbolsOf S by Def18; assume not s is literal ; ::_thesis: s is operational then not s in LettersOf S by Def14; then ( s in (TermSymbolsOf S) \ (LettersOf S) & (TermSymbolsOf S) \ (LettersOf S) = OpSymbolsOf S ) by A1, FUNCT_1:69, XBOOLE_0:def_5; hence s is operational by Def16; ::_thesis: verum end; end; theorem Th12: :: FOMODEL1:12 for x being set for S being Language holds ( x is string of S iff x is non empty Element of (AllSymbolsOf S) * ) proof let x be set ; ::_thesis: for S being Language holds ( x is string of S iff x is non empty Element of (AllSymbolsOf S) * ) let S be Language; ::_thesis: ( x is string of S iff x is non empty Element of (AllSymbolsOf S) * ) set SS = AllSymbolsOf S; ( x is string of S iff ( x in (AllSymbolsOf S) * & not x in {{}} ) ) by XBOOLE_0:def_5; hence ( x is string of S iff x is non empty Element of (AllSymbolsOf S) * ) ; ::_thesis: verum end; theorem :: FOMODEL1:13 for x being set for S being Language holds ( x is string of S iff x is non empty FinSequence of AllSymbolsOf S ) proof let x be set ; ::_thesis: for S being Language holds ( x is string of S iff x is non empty FinSequence of AllSymbolsOf S ) let S be Language; ::_thesis: ( x is string of S iff x is non empty FinSequence of AllSymbolsOf S ) ( x is non empty FinSequence of AllSymbolsOf S iff x is non empty Element of (AllSymbolsOf S) * ) by FINSEQ_1:def_11; hence ( x is string of S iff x is non empty FinSequence of AllSymbolsOf S ) by Th12; ::_thesis: verum end; theorem :: FOMODEL1:14 for S being Language holds S -termsOfMaxDepth is Function of NAT,(bool ((AllSymbolsOf S) *)) ; registration let S be Language; cluster -> literal for Element of LettersOf S; coherence for b1 being Element of LettersOf S holds b1 is literal by Def14; end; registration let S be Language; cluster TheNorSymbOf S -> non low-compounding for Element of S; coherence for b1 being Element of S st b1 = TheNorSymbOf S holds not b1 is low-compounding proof set N = TheNorSymbOf S; set f = the adicity of S; set Low = LowerCompoundersOf S; set SS = AllSymbolsOf S; A1: ( dom the adicity of S = (AllSymbolsOf S) \ {(TheNorSymbOf S)} & TheNorSymbOf S in {(TheNorSymbOf S)} ) by FUNCT_2:def_1, TARSKI:def_1; not TheNorSymbOf S in LowerCompoundersOf S by A1, XBOOLE_0:def_5; hence for b1 being Element of S st b1 = TheNorSymbOf S holds not b1 is low-compounding by Def15; ::_thesis: verum end; end; registration let S be Language; cluster TheNorSymbOf S -> non own for Element of S; coherence for b1 being Element of S st b1 = TheNorSymbOf S holds not b1 is own proof set N = TheNorSymbOf S; set f = the adicity of S; set O = OwnSymbolsOf S; set SS = AllSymbolsOf S; TheNorSymbOf S in { the ZeroF of S,(TheNorSymbOf S)} by TARSKI:def_2; then not TheNorSymbOf S in OwnSymbolsOf S by XBOOLE_0:def_5; hence for b1 being Element of S st b1 = TheNorSymbOf S holds not b1 is own by Def19; ::_thesis: verum end; end; theorem :: FOMODEL1:15 for S being Language for s being Element of S st s <> TheNorSymbOf S & s <> TheEqSymbOf S holds s in OwnSymbolsOf S proof let S be Language; ::_thesis: for s being Element of S st s <> TheNorSymbOf S & s <> TheEqSymbOf S holds s in OwnSymbolsOf S let s be Element of S; ::_thesis: ( s <> TheNorSymbOf S & s <> TheEqSymbOf S implies s in OwnSymbolsOf S ) set O = OwnSymbolsOf S; set R = RelSymbolsOf S; set E = TheEqSymbOf S; set X = (RelSymbolsOf S) \ (OwnSymbolsOf S); set N = TheNorSymbOf S; set SS = AllSymbolsOf S; assume ( s <> TheNorSymbOf S & s <> TheEqSymbOf S ) ; ::_thesis: s in OwnSymbolsOf S then ( not s in {(TheNorSymbOf S)} & not s in {(TheEqSymbOf S)} ) by TARSKI:def_1; then not s in {(TheNorSymbOf S)} \/ {(TheEqSymbOf S)} by XBOOLE_0:def_3; then not s in {(TheNorSymbOf S),(TheEqSymbOf S)} by ENUMSET1:1; hence s in OwnSymbolsOf S by XBOOLE_0:def_5; ::_thesis: verum end; definition let S be Language; let t be termal string of S; func Depth t -> Nat means :Def40: :: FOMODEL1:def 40 ( t is it -termal & ( for n being Nat st t is n -termal holds it <= n ) ); existence ex b1 being Nat st ( t is b1 -termal & ( for n being Nat st t is n -termal holds b1 <= n ) ) proof defpred S1[ Nat] means t is $1 -termal ; set TT = AllTermsOf S; set T = S -termsOfMaxDepth ; reconsider TF = S -termsOfMaxDepth as Function ; t in AllTermsOf S by Def32; then consider mm being Element of NAT such that A1: t in TF . mm by Lm6; t is mm -termal by Def33, A1; then A2: ex n being Nat st S1[n] ; 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: ( t is IT -termal & ( for n being Nat st t is n -termal holds IT <= n ) ) thus ( t is IT -termal & ( for n being Nat st t is n -termal holds IT <= n ) ) by A3; ::_thesis: verum end; uniqueness for b1, b2 being Nat st t is b1 -termal & ( for n being Nat st t is n -termal holds b1 <= n ) & t is b2 -termal & ( for n being Nat st t is n -termal holds b2 <= n ) holds b1 = b2 proof let IT1, IT2 be Nat; ::_thesis: ( t is IT1 -termal & ( for n being Nat st t is n -termal holds IT1 <= n ) & t is IT2 -termal & ( for n being Nat st t is n -termal holds IT2 <= n ) implies IT1 = IT2 ) set phi = t; assume A4: ( t is IT1 -termal & ( for n being Nat st t is n -termal holds IT1 <= n ) ) ; ::_thesis: ( not t is IT2 -termal or ex n being Nat st ( t is n -termal & not IT2 <= n ) or IT1 = IT2 ) assume A5: ( t is IT2 -termal & ( for n being Nat st t is n -termal 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 Def40 defines Depth FOMODEL1:def_40_:_ for S being Language for t being termal string of S for b3 being Nat holds ( b3 = Depth t iff ( t is b3 -termal & ( for n being Nat st t is n -termal holds b3 <= n ) ) ); registration let S be Language; let m0 be zero number ; let t be m0 -termal string of S; cluster Depth t -> zero for number ; coherence for b1 being number st b1 = Depth t holds b1 is empty by Def40; end; registration let S be Language; let s be low-compounding Element of S; cluster ar s -> non zero for number ; coherence for b1 being number st b1 = ar s holds not b1 is empty proof set f = the adicity of S; set SS = AllSymbolsOf S; set N = TheNorSymbOf S; s in LowerCompoundersOf S by Def15; then ( s in dom the adicity of S & the adicity of S . s in INT \ {0} ) by FUNCT_1:def_7; then not the adicity of S . s in {0} by XBOOLE_0:def_5; hence for b1 being number st b1 = ar s holds not b1 is empty by TARSKI:def_1; ::_thesis: verum end; end; registration let S be Language; let s be termal Element of S; cluster ar s -> ext-real non negative ; coherence ( not ar s is negative & ar s is ext-real ) proof set f = the adicity of S; set T = TermSymbolsOf S; s in TermSymbolsOf S by Def18; then reconsider nn = ar s as Element of NAT by FUNCT_1:def_7; not nn is negative ; hence ( not ar s is negative & ar s is ext-real ) ; ::_thesis: verum end; end; registration let S be Language; let s be relational Element of S; cluster ar s -> ext-real negative ; coherence ( ar s is negative & ar s is ext-real ) proof set f = the adicity of S; set R = RelSymbolsOf S; s in RelSymbolsOf S by Def17; then ( s in dom the adicity of S & the adicity of S . s in INT \ NAT ) by FUNCT_1:def_7; then A1: ( ar s in INT & not ar s in NAT ) by XBOOLE_0:def_5; reconsider IT = ar s as Element of INT ; thus ( ar s is negative & ar s is ext-real ) by A1, INT_1:3; ::_thesis: verum end; end; theorem Th16: :: FOMODEL1:16 for S being Language for t being termal string of S st not t is 0 -termal holds ( (S -firstChar) . t is operational & SubTerms t <> {} ) proof let S be Language; ::_thesis: for t being termal string of S st not t is 0 -termal holds ( (S -firstChar) . t is operational & SubTerms t <> {} ) let t be termal string of S; ::_thesis: ( not t is 0 -termal implies ( (S -firstChar) . t is operational & SubTerms t <> {} ) ) set T = S -termsOfMaxDepth ; set m = Depth t; set ST = SubTerms t; set TT = AllTermsOf S; assume not t is 0 -termal ; ::_thesis: ( (S -firstChar) . t is operational & SubTerms t <> {} ) then Depth t <> 0 by Def40; then consider n being Nat such that A1: Depth t = n + 1 by NAT_1:6; set F = S -firstChar ; set C = S -multiCat ; set Fam = { (Compound (s,((S -termsOfMaxDepth) . n))) where s is ofAtomicFormula Element of S : s is operational } ; n < Depth t by A1, NAT_1:16; then ( not t is n -termal & t is Depth t -termal ) by Def40; then ( not t in (S -termsOfMaxDepth) . n & t in (S -termsOfMaxDepth) . (n + 1) ) by A1, Def33; then ( t in (union { (Compound (s,((S -termsOfMaxDepth) . n))) where s is ofAtomicFormula Element of S : s is operational } ) \/ ((S -termsOfMaxDepth) . n) & not t in (S -termsOfMaxDepth) . n ) by Def30; then t in union { (Compound (s,((S -termsOfMaxDepth) . n))) where s is ofAtomicFormula Element of S : s is operational } by XBOOLE_0:def_3; then consider x being set such that A2: ( t in x & x in { (Compound (s,((S -termsOfMaxDepth) . n))) where s is ofAtomicFormula Element of S : s is operational } ) by TARSKI:def_4; consider s being ofAtomicFormula Element of S such that A3: ( x = Compound (s,((S -termsOfMaxDepth) . n)) & s is operational ) by A2; set k = abs (ar s); consider StringTuple being Element of ((AllSymbolsOf S) *) * such that A4: ( t = <*s*> ^ ((S -multiCat) . StringTuple) & rng StringTuple c= (S -termsOfMaxDepth) . n & StringTuple is abs (ar s) -element ) by A2, A3; A5: (S -firstChar) . t = (<*s*> ^ ((S -multiCat) . StringTuple)) . 1 by A4, FOMODEL0:6 .= <*s*> . 1 by FOMODEL0:28 .= s by FINSEQ_1:40 ; hence (S -firstChar) . t is operational by A3; ::_thesis: SubTerms t <> {} reconsider k1 = abs (ar s) as non zero Nat by A3; reconsider STT = SubTerms t as k1 + 0 -element Element of (AllTermsOf S) * by A5; STT <> {} ; hence SubTerms t <> {} ; ::_thesis: verum end; registration let S be Language; clusterS -multiCat -> FinSequence-yielding for Function; coherence for b1 being Function st b1 = S -multiCat holds b1 is FinSequence-yielding ; end; registration let S be Language; let W be non empty ((AllSymbolsOf S) *) \ {{}} -valued FinSequence; cluster(S -multiCat) . W -> non empty for set ; coherence for b1 being set st b1 = (S -multiCat) . W holds not b1 is empty proof set C = S -multiCat ; set SS = AllSymbolsOf S; set g = (AllSymbolsOf S) -concatenation ; set G = MultPlace ((AllSymbolsOf S) -concatenation); consider m being Nat such that A1: m + 1 = len W by NAT_1:6; reconsider WW = W as (m + 1) + 0 -element FinSequence by A1, CARD_1:def_7; A2: {(WW . (m + 1))} \ (((AllSymbolsOf S) *) \ {{}}) = {} ; then A3: WW . (m + 1) in ((AllSymbolsOf S) *) \ {{}} by ZFMISC_1:60; reconsider last = WW . (m + 1) as string of S by A2, ZFMISC_1:60; reconsider lastt = WW . (m + 1) as Element of (AllSymbolsOf S) * by A3; set VV = WW | (Seg m); reconsider VVV = WW | (Seg m) as (AllSymbolsOf S) * -valued FinSequence ; ((WW | (Seg m)) ^ <*(WW . (m + 1))*>) \+\ WW = {} ; then A4: (MultPlace ((AllSymbolsOf S) -concatenation)) . W = (MultPlace ((AllSymbolsOf S) -concatenation)) . (VVV ^ <*lastt*>) by FOMODEL0:29; percases ( VVV is empty or not VVV is empty ) ; suppose VVV is empty ; ::_thesis: for b1 being set st b1 = (S -multiCat) . W holds not b1 is empty then (MultPlace ((AllSymbolsOf S) -concatenation)) . W = (MultPlace ((AllSymbolsOf S) -concatenation)) . <*lastt*> by A4, FINSEQ_1:34 .= last by FOMODEL0:31 ; hence for b1 being set st b1 = (S -multiCat) . W holds not b1 is empty by FOMODEL0:32; ::_thesis: verum end; supposeA5: not VVV is empty ; ::_thesis: for b1 being set st b1 = (S -multiCat) . W holds not b1 is empty then reconsider VVVV = VVV as Element of (((AllSymbolsOf S) *) *) \ {{}} by FOMODEL0:30; (MultPlace ((AllSymbolsOf S) -concatenation)) . W = ((AllSymbolsOf S) -concatenation) . (((MultPlace ((AllSymbolsOf S) -concatenation)) . VVV),lastt) by A5, A4, FOMODEL0:31 .= ((MultPlace ((AllSymbolsOf S) -concatenation)) . VVVV) ^ last by FOMODEL0:4 ; hence for b1 being set st b1 = (S -multiCat) . W holds not b1 is empty by FOMODEL0:32; ::_thesis: verum end; end; end; end; registration let S be Language; let l be literal Element of S; cluster<*l*> -> 0 -termal for string of S; coherence for b1 being string of S st b1 = <*l*> holds b1 is 0 -termal proof set w = <*l*>; set L = LettersOf S; set AT = AtomicTermsOf S; set T = S -termsOfMaxDepth ; reconsider ll = l as Element of LettersOf S by Def14; <*l*> = <*ll*> ; then <*l*> in AtomicTermsOf S ; then <*l*> in (S -termsOfMaxDepth) . 0 by Def30; hence for b1 being string of S st b1 = <*l*> holds b1 is 0 -termal by Def33; ::_thesis: verum end; end; registration let S be Language; let m, n be Nat; clusterm + (0 * n) -termal -> m + n -termal for Element of ((AllSymbolsOf S) *) \ {{}}; coherence for b1 being string of S st b1 is m + (0 * n) -termal holds b1 is m + n -termal proof set T = S -termsOfMaxDepth ; let t be string of S; ::_thesis: ( t is m + (0 * n) -termal implies t is m + n -termal ) assume t is m + (0 * n) -termal ; ::_thesis: t is m + n -termal then ( t in (S -termsOfMaxDepth) . m & (S -termsOfMaxDepth) . m c= (S -termsOfMaxDepth) . (m + n) ) by Def33, Lm5; hence t is m + n -termal by Def33; ::_thesis: verum end; end; registration let S be Language; cluster non low-compounding own -> literal own for Element of AllSymbolsOf S; coherence for b1 being own Element of S st not b1 is low-compounding holds b1 is literal proof set L = LettersOf S; set P = OpSymbolsOf S; set O = OwnSymbolsOf S; set T = TermSymbolsOf S; A1: (TermSymbolsOf S) \ (LettersOf S) = OpSymbolsOf S by FUNCT_1:69; let s be own Element of S; ::_thesis: ( not s is low-compounding implies s is literal ) reconsider ss = s as ofAtomicFormula Element of S ; assume A2: not s is low-compounding ; ::_thesis: s is literal then not ss is relational ; then reconsider sss = ss as termal ofAtomicFormula Element of S ; assume not s is literal ; ::_thesis: contradiction then ( sss in TermSymbolsOf S & not s in LettersOf S ) by Def18; then s in (TermSymbolsOf S) \ (LettersOf S) by XBOOLE_0:def_5; then ( s is operational & not s is operational ) by A2, A1, Def16; hence contradiction ; ::_thesis: verum end; end; registration let S be Language; let t be termal string of S; cluster SubTerms t -> (rng t) * -valued for Relation; coherence for b1 being Relation st b1 = SubTerms t holds b1 is (rng t) * -valued proof set SS = AllSymbolsOf S; set C = S -multiCat ; set F = S -firstChar ; set ST = SubTerms t; set T = S -termsOfMaxDepth ; set TT = AllTermsOf S; reconsider TTT = AllTermsOf S as Subset of ((AllSymbolsOf S) *) by XBOOLE_1:1; t = <*((S -firstChar) . t)*> ^ ((S -multiCat) . (SubTerms t)) by Def37; then rng ((S -multiCat) . (SubTerms t)) c= rng t by FINSEQ_1:30; then (S -multiCat) . (SubTerms t) is rng t -valued by RELAT_1:def_19; hence for b1 being Relation st b1 = SubTerms t holds b1 is (rng t) * -valued by FOMODEL0:42; ::_thesis: verum end; end; registration let S be Language; let phi0 be 0wff string of S; cluster SubTerms phi0 -> (rng phi0) * -valued for Relation; coherence for b1 being Relation st b1 = SubTerms phi0 holds b1 is (rng phi0) * -valued proof set SS = AllSymbolsOf S; set C = S -multiCat ; set F = S -firstChar ; set ST = SubTerms phi0; set T = S -termsOfMaxDepth ; set TT = AllTermsOf S; reconsider TTT = AllTermsOf S as non empty Subset of ((AllSymbolsOf S) *) by XBOOLE_1:1; phi0 = <*((S -firstChar) . phi0)*> ^ ((S -multiCat) . (SubTerms phi0)) by Def38; then rng ((S -multiCat) . (SubTerms phi0)) c= rng phi0 by FINSEQ_1:30; then (S -multiCat) . (SubTerms phi0) is rng phi0 -valued by RELAT_1:def_19; hence for b1 being Relation st b1 = SubTerms phi0 holds b1 is (rng phi0) * -valued by FOMODEL0:42; ::_thesis: verum end; end; definition let S be Language; :: original: -termsOfMaxDepth redefine funcS -termsOfMaxDepth -> Function of NAT,(bool (((AllSymbolsOf S) *) \ {{}})); coherence S -termsOfMaxDepth is Function of NAT,(bool (((AllSymbolsOf S) *) \ {{}})) proof set T = S -termsOfMaxDepth ; set SS = AllSymbolsOf S; now__::_thesis:_for_y_being_set_st_y_in_rng_(S_-termsOfMaxDepth)_holds_ y_in_bool_(((AllSymbolsOf_S)_*)_\_{{}}) let y be set ; ::_thesis: ( y in rng (S -termsOfMaxDepth) implies y in bool (((AllSymbolsOf S) *) \ {{}}) ) assume y in rng (S -termsOfMaxDepth) ; ::_thesis: y in bool (((AllSymbolsOf S) *) \ {{}}) then consider x being set such that A1: ( x in dom (S -termsOfMaxDepth) & (S -termsOfMaxDepth) . x = y ) by FUNCT_1:def_3; reconsider mm = x as Element of NAT by A1; (S -termsOfMaxDepth) . mm misses {{}} proof assume (S -termsOfMaxDepth) . mm meets {{}} ; ::_thesis: contradiction then ((S -termsOfMaxDepth) . mm) /\ {{}} <> {} by XBOOLE_0:def_7; then consider z being set such that A2: z in ((S -termsOfMaxDepth) . mm) /\ {{}} by XBOOLE_0:def_1; thus contradiction by A2; ::_thesis: verum end; then (S -termsOfMaxDepth) . mm c= ((AllSymbolsOf S) *) \ {{}} by XBOOLE_1:86; hence y in bool (((AllSymbolsOf S) *) \ {{}}) by A1; ::_thesis: verum end; then rng (S -termsOfMaxDepth) c= bool (((AllSymbolsOf S) *) \ {{}}) by TARSKI:def_3; hence S -termsOfMaxDepth is Function of NAT,(bool (((AllSymbolsOf S) *) \ {{}})) by FUNCT_2:6; ::_thesis: verum end; end; registration let S be Language; let mm be Element of NAT ; cluster(S -termsOfMaxDepth) . mm -> with_non-empty_elements ; coherence (S -termsOfMaxDepth) . mm is with_non-empty_elements ; end; Lm11: for m being Nat for S being Language holds (S -termsOfMaxDepth) . m c= (TermSymbolsOf S) * proof let m be Nat; ::_thesis: for S being Language holds (S -termsOfMaxDepth) . m c= (TermSymbolsOf S) * let S be Language; ::_thesis: (S -termsOfMaxDepth) . m c= (TermSymbolsOf S) * set TS = TermSymbolsOf S; set F = S -firstChar ; set C = S -multiCat ; set P = OpSymbolsOf S; set T = S -termsOfMaxDepth ; set SS = AllSymbolsOf S; set CC = (TermSymbolsOf S) -multiCat ; defpred S1[ Nat] means (S -termsOfMaxDepth) . $1 c= (TermSymbolsOf S) * ; A1: S1[ 0 ] proof now__::_thesis:_for_x_being_set_st_x_in_(S_-termsOfMaxDepth)_._0_holds_ x_in_(TermSymbolsOf_S)_* let x be set ; ::_thesis: ( x in (S -termsOfMaxDepth) . 0 implies x in (TermSymbolsOf S) * ) assume x in (S -termsOfMaxDepth) . 0 ; ::_thesis: x in (TermSymbolsOf S) * then reconsider t = x as 0 -termal string of S by Def33; reconsider s = (S -firstChar) . t as termal Element of S ; set sub = SubTerms t; reconsider ss = s as Element of TermSymbolsOf S by Def18; t = <*s*> ^ ((S -multiCat) . (SubTerms t)) by Def37 .= <*s*> ^ {} .= <*ss*> ; then t is FinSequence of TermSymbolsOf S ; hence x in (TermSymbolsOf S) * by FINSEQ_1:def_11; ::_thesis: verum end; hence S1[ 0 ] by TARSKI:def_3; ::_thesis: verum end; A2: for n being Nat st S1[n] holds S1[n + 1] proof let n be Nat; ::_thesis: ( S1[n] implies S1[n + 1] ) reconsider nn = n, NN = n + 1 as Element of NAT by ORDINAL1:def_12; assume S1[n] ; ::_thesis: S1[n + 1] then reconsider Tn = (S -termsOfMaxDepth) . nn as non empty Subset of ((TermSymbolsOf S) *) ; now__::_thesis:_for_x_being_set_st_x_in_(S_-termsOfMaxDepth)_._(n_+_1)_holds_ x_in_(TermSymbolsOf_S)_* let x be set ; ::_thesis: ( x in (S -termsOfMaxDepth) . (n + 1) implies b1 in (TermSymbolsOf S) * ) assume x in (S -termsOfMaxDepth) . (n + 1) ; ::_thesis: b1 in (TermSymbolsOf S) * then x in (S -termsOfMaxDepth) . NN ; then reconsider t = x as n + 1 -termal string of S by Def33; set s = (S -firstChar) . t; set m = abs (ar ((S -firstChar) . t)); reconsider tt = t as nn + 1 -termal string of S ; percases ( not t is 0 -termal or t is 0 -termal ) ; suppose not t is 0 -termal ; ::_thesis: b1 in (TermSymbolsOf S) * then A3: (S -firstChar) . t is operational by Th16; then ( (S -firstChar) . t in OpSymbolsOf S & OpSymbolsOf S c= TermSymbolsOf S ) by Def16, Th1; then reconsider ss = (S -firstChar) . t as Element of TermSymbolsOf S ; reconsider m1 = abs (ar ((S -firstChar) . t)) as non zero Nat by A3; SubTerms tt is (S -termsOfMaxDepth) . nn -valued ; then reconsider sub = SubTerms t as m1 + 0 -element FinSequence of Tn by FOMODEL0:26; ( sub in Tn * & Tn * c= ((TermSymbolsOf S) *) * ) by FINSEQ_1:def_11; then reconsider subb = sub as m1 + 0 -element Element of ((TermSymbolsOf S) *) * ; ( sub is Tn -valued & Tn c= (TermSymbolsOf S) * & TermSymbolsOf S c= AllSymbolsOf S ) by XBOOLE_1:1; then <*ss*> ^ (((TermSymbolsOf S) -multiCat) . subb) = <*((S -firstChar) . t)*> ^ ((S -multiCat) . (SubTerms t)) by FOMODEL0:53 .= t by Def37 ; then reconsider tt = t as FinSequence of TermSymbolsOf S by FOMODEL0:26; tt in (TermSymbolsOf S) * by FINSEQ_1:def_11; hence x in (TermSymbolsOf S) * ; ::_thesis: verum end; suppose t is 0 -termal ; ::_thesis: b1 in (TermSymbolsOf S) * then x in (S -termsOfMaxDepth) . 0 by Def33; hence x in (TermSymbolsOf S) * by A1; ::_thesis: verum end; end; end; hence S1[n + 1] by TARSKI:def_3; ::_thesis: verum end; for n being Nat holds S1[n] from NAT_1:sch_2(A1, A2); hence (S -termsOfMaxDepth) . m c= (TermSymbolsOf S) * ; ::_thesis: verum end; registration let S be Language; let m be Nat; let t be termal string of S; clustert null m -> (Depth t) + m -termal for string of S; coherence for b1 being string of S st b1 = t null m holds b1 is (Depth t) + m -termal proof set d = Depth t; t is (Depth t) + (0 * m) -termal by Def40; hence for b1 being string of S st b1 = t null m holds b1 is (Depth t) + m -termal ; ::_thesis: verum end; end; registration let S be Language; cluster termal -> TermSymbolsOf S -valued for Element of ((AllSymbolsOf S) *) \ {{}}; coherence for b1 being string of S st b1 is termal holds b1 is TermSymbolsOf S -valued proof set T = S -termsOfMaxDepth ; set TS = TermSymbolsOf S; let w be string of S; ::_thesis: ( w is termal implies w is TermSymbolsOf S -valued ) assume w is termal ; ::_thesis: w is TermSymbolsOf S -valued then reconsider tt = w as termal string of S ; set d = Depth tt; reconsider t = tt null 0 as (Depth tt) + 0 -termal string of S ; ( t in (S -termsOfMaxDepth) . (Depth tt) & (S -termsOfMaxDepth) . (Depth tt) c= (TermSymbolsOf S) * ) by Lm11, Def33; hence w is TermSymbolsOf S -valued ; ::_thesis: verum end; end; registration let S be Language; cluster(AllTermsOf S) \ ((TermSymbolsOf S) *) -> empty for set ; coherence for b1 being set st b1 = (AllTermsOf S) \ ((TermSymbolsOf S) *) holds b1 is empty proof set TT = AllTermsOf S; set TS = TermSymbolsOf S; now__::_thesis:_for_x_being_set_st_x_in_AllTermsOf_S_holds_ x_in_(TermSymbolsOf_S)_* let x be set ; ::_thesis: ( x in AllTermsOf S implies x in (TermSymbolsOf S) * ) assume x in AllTermsOf S ; ::_thesis: x in (TermSymbolsOf S) * then reconsider t = x as termal string of S ; t is FinSequence of TermSymbolsOf S by FOMODEL0:26; hence x in (TermSymbolsOf S) * by FINSEQ_1:def_11; ::_thesis: verum end; then AllTermsOf S c= (TermSymbolsOf S) * by TARSKI:def_3; hence for b1 being set st b1 = (AllTermsOf S) \ ((TermSymbolsOf S) *) holds b1 is empty ; ::_thesis: verum end; end; registration let S be Language; let phi0 be 0wff string of S; cluster SubTerms phi0 -> (TermSymbolsOf S) * -valued abs (ar ((S -firstChar) . phi0)) -element ; coherence SubTerms phi0 is (TermSymbolsOf S) * -valued proof set sub = SubTerms phi0; set TS = TermSymbolsOf S; set TT = AllTermsOf S; (AllTermsOf S) \ ((TermSymbolsOf S) *) = {} ; then reconsider TTT = AllTermsOf S as non empty Subset of ((TermSymbolsOf S) *) by XBOOLE_1:37; SubTerms phi0 is TTT -valued ; hence SubTerms phi0 is (TermSymbolsOf S) * -valued ; ::_thesis: verum end; end; registration let S be Language; cluster 0wff -> AtomicFormulaSymbolsOf S -valued for Element of ((AllSymbolsOf S) *) \ {{}}; coherence for b1 being string of S st b1 is 0wff holds b1 is AtomicFormulaSymbolsOf S -valued proof set TS = TermSymbolsOf S; set AS = AtomicFormulaSymbolsOf S; set F = S -firstChar ; set C = S -multiCat ; set TT = AllTermsOf S; set CC = (TermSymbolsOf S) -multiCat ; set SS = AllSymbolsOf S; let w be string of S; ::_thesis: ( w is 0wff implies w is AtomicFormulaSymbolsOf S -valued ) assume w is 0wff ; ::_thesis: w is AtomicFormulaSymbolsOf S -valued then reconsider phi = w as 0wff string of S ; reconsider r = (S -firstChar) . phi as relational Element of S ; set m = abs (ar r); reconsider rr = r as Element of AtomicFormulaSymbolsOf S by Def20; reconsider sub = SubTerms phi as (abs (ar r)) + 0 -element Element of (AllTermsOf S) * ; (AllTermsOf S) \ ((TermSymbolsOf S) *) = {} ; then ( TermSymbolsOf S c= AllSymbolsOf S & AllTermsOf S c= (TermSymbolsOf S) * & sub is AllTermsOf S -valued ) by XBOOLE_1:1, XBOOLE_1:37; then <*rr*> ^ (((TermSymbolsOf S) -multiCat) . sub) = <*r*> ^ ((S -multiCat) . sub) by FOMODEL0:53 .= phi by Def38 ; hence w is AtomicFormulaSymbolsOf S -valued ; ::_thesis: verum end; end; registration let S be Language; cluster OwnSymbolsOf S -> non empty for set ; coherence for b1 being set st b1 = OwnSymbolsOf S holds not b1 is empty ; end; theorem :: FOMODEL1:17 for S being Language for phi0 being 0wff string of S st (S -firstChar) . phi0 <> TheEqSymbOf S holds phi0 is OwnSymbolsOf S -valued proof let S be Language; ::_thesis: for phi0 being 0wff string of S st (S -firstChar) . phi0 <> TheEqSymbOf S holds phi0 is OwnSymbolsOf S -valued let phi0 be 0wff string of S; ::_thesis: ( (S -firstChar) . phi0 <> TheEqSymbOf S implies phi0 is OwnSymbolsOf S -valued ) set O = OwnSymbolsOf S; set F = S -firstChar ; set r = (S -firstChar) . phi0; set C = S -multiCat ; set sub = SubTerms phi0; set E = TheEqSymbOf S; set R = RelSymbolsOf S; reconsider TS = TermSymbolsOf S as non empty Subset of (OwnSymbolsOf S) by Th1; assume (S -firstChar) . phi0 <> TheEqSymbOf S ; ::_thesis: phi0 is OwnSymbolsOf S -valued then not (S -firstChar) . phi0 in {(TheEqSymbOf S)} by TARSKI:def_1; then not (S -firstChar) . phi0 in (RelSymbolsOf S) \ (OwnSymbolsOf S) by Th1; then ( (S -firstChar) . phi0 in OwnSymbolsOf S or not (S -firstChar) . phi0 in RelSymbolsOf S ) by XBOOLE_0:def_5; then reconsider rr = (S -firstChar) . phi0 as Element of OwnSymbolsOf S by Def17; (S -multiCat) . (SubTerms phi0) is TS -valued by FOMODEL0:54; then reconsider tail = (S -multiCat) . (SubTerms phi0) as OwnSymbolsOf S -valued FinSequence ; phi0 = <*rr*> ^ tail by Def38; hence phi0 is OwnSymbolsOf S -valued ; ::_thesis: verum end; registration cluster non empty strict for Language-like ; existence ex b1 being Language-like st ( b1 is strict & not b1 is empty ) proof set a = the Function of (NAT \ {0}),INT; take IT = Language-like(# NAT,0,0, the Function of (NAT \ {0}),INT #); ::_thesis: ( IT is strict & not IT is empty ) thus ( IT is strict & not IT is empty ) ; ::_thesis: verum end; end; definition let S1, S2 be Language-like ; attrS2 is S1 -extending means :Def41: :: FOMODEL1:def 41 ( the adicity of S1 c= the adicity of S2 & TheEqSymbOf S1 = TheEqSymbOf S2 & TheNorSymbOf S1 = TheNorSymbOf S2 ); end; :: deftheorem Def41 defines -extending FOMODEL1:def_41_:_ for S1, S2 being Language-like holds ( S2 is S1 -extending iff ( the adicity of S1 c= the adicity of S2 & TheEqSymbOf S1 = TheEqSymbOf S2 & TheNorSymbOf S1 = TheNorSymbOf S2 ) ); registration let S be Language; clusterS null -> S -extending for Language-like ; coherence for b1 being Language-like st b1 = S null holds b1 is S -extending proof set E = TheEqSymbOf S; set N = TheNorSymbOf S; set f = the adicity of S; ( the adicity of S c= the adicity of S & TheEqSymbOf S = TheEqSymbOf S & TheNorSymbOf S = TheNorSymbOf S ) ; hence for b1 being Language-like st b1 = S null holds b1 is S -extending by Def41; ::_thesis: verum end; end; registration let S be Language; cluster non empty non degenerated non trivial infinite eligible S -extending for Language-like ; existence ex b1 being Language st b1 is S -extending proof reconsider SS = S null as Language ; take SS ; ::_thesis: SS is S -extending thus SS is S -extending ; ::_thesis: verum end; end; registration let S1 be Language; let S2 be S1 -extending Language; cluster(OwnSymbolsOf S1) \ (OwnSymbolsOf S2) -> empty ; coherence (OwnSymbolsOf S1) \ (OwnSymbolsOf S2) is empty proof set O1 = OwnSymbolsOf S1; set O2 = OwnSymbolsOf S2; set f1 = the adicity of S1; set f2 = the adicity of S2; set A1 = AtomicFormulaSymbolsOf S1; set SS1 = AllSymbolsOf S1; set SS2 = AllSymbolsOf S2; set z1 = the ZeroF of S1; set o1 = the OneF of S1; set z2 = the ZeroF of S2; set o2 = the OneF of S2; set E1 = TheEqSymbOf S1; set E2 = TheEqSymbOf S2; set N1 = TheNorSymbOf S1; set N2 = TheNorSymbOf S2; A1: ( dom the adicity of S1 = (AllSymbolsOf S1) \ { the OneF of S1} & dom the adicity of S2 = (AllSymbolsOf S2) \ { the OneF of S2} ) by FUNCT_2:def_1; the adicity of S1 c= the adicity of S2 by Def41; then (AllSymbolsOf S1) \ { the OneF of S1} c= (AllSymbolsOf S2) \ { the OneF of S2} by A1, GRFUNC_1:2; then ((AllSymbolsOf S1) \ {(TheNorSymbOf S1)}) \ {(TheEqSymbOf S1)} c= ((AllSymbolsOf S2) \ {(TheNorSymbOf S2)}) \ {(TheEqSymbOf S1)} by XBOOLE_1:33; then (AllSymbolsOf S1) \ ({(TheNorSymbOf S1)} \/ {(TheEqSymbOf S1)}) c= ((AllSymbolsOf S2) \ {(TheNorSymbOf S2)}) \ {(TheEqSymbOf S1)} by XBOOLE_1:41; then (AllSymbolsOf S1) \ {(TheNorSymbOf S1),(TheEqSymbOf S1)} c= ((AllSymbolsOf S2) \ {(TheNorSymbOf S2)}) \ {(TheEqSymbOf S1)} by ENUMSET1:1; then (AllSymbolsOf S1) \ {(TheNorSymbOf S1),(TheEqSymbOf S1)} c= (AllSymbolsOf S2) \ ({(TheNorSymbOf S2)} \/ {(TheEqSymbOf S1)}) by XBOOLE_1:41; then (AllSymbolsOf S1) \ {(TheNorSymbOf S1),(TheEqSymbOf S1)} c= (AllSymbolsOf S2) \ ({(TheNorSymbOf S2)} \/ {(TheEqSymbOf S2)}) by Def41; then (AllSymbolsOf S1) \ {(TheNorSymbOf S1),(TheEqSymbOf S1)} c= (AllSymbolsOf S2) \ {(TheNorSymbOf S2),(TheEqSymbOf S2)} by ENUMSET1:1; hence (OwnSymbolsOf S1) \ (OwnSymbolsOf S2) is empty ; ::_thesis: verum end; end; definition let f be INT -valued Function; let L be non empty Language-like ; set C = the carrier of L; set z = the ZeroF of L; set o = the OneF of L; set a = the adicity of L; set X = dom f; set g = f | ((dom f) \ { the OneF of L}); set a1 = (f | ((dom f) \ { the OneF of L})) +* the adicity of L; set C1 = the carrier of L \/ (dom f); funcL extendWith f -> non empty strict Language-like means :Def42: :: FOMODEL1:def 42 ( the adicity of it = (f | ((dom f) \ { the OneF of L})) +* the adicity of L & the ZeroF of it = the ZeroF of L & the OneF of it = the OneF of L ); existence ex b1 being non empty strict Language-like st ( the adicity of b1 = (f | ((dom f) \ { the OneF of L})) +* the adicity of L & the ZeroF of b1 = the ZeroF of L & the OneF of b1 = the OneF of L ) proof the ZeroF of L is Element of the carrier of L null (dom f) ; then reconsider z1 = the ZeroF of L as Element of the carrier of L \/ (dom f) by TARSKI:def_3; the OneF of L is Element of the carrier of L null (dom f) ; then reconsider o1 = the OneF of L as Element of the carrier of L \/ (dom f) by TARSKI:def_3; A1: dom the adicity of L = the carrier of L \ { the OneF of L} by FUNCT_2:def_1; A2: dom (f | ((dom f) \ { the OneF of L})) = (dom f) /\ ((dom f) \ { the OneF of L}) by RELAT_1:61 .= (dom f) \ ({ the OneF of L} null (dom f)) ; dom ((f | ((dom f) \ { the OneF of L})) +* the adicity of L) = ((dom f) \ { the OneF of L}) \/ ( the carrier of L \ { the OneF of L}) by A1, A2, FUNCT_4:def_1 .= ((dom f) \/ the carrier of L) \ { the OneF of L} by XBOOLE_1:42 ; then ( dom ((f | ((dom f) \ { the OneF of L})) +* the adicity of L) = ( the carrier of L \/ (dom f)) \ {o1} & rng ((f | ((dom f) \ { the OneF of L})) +* the adicity of L) c= INT ) ; then (f | ((dom f) \ { the OneF of L})) +* the adicity of L is Element of Funcs ((( the carrier of L \/ (dom f)) \ {o1}),INT) by FUNCT_2:def_2; then reconsider a11 = (f | ((dom f) \ { the OneF of L})) +* the adicity of L as Function of (( the carrier of L \/ (dom f)) \ {o1}),INT ; set new = Language-like(# ( the carrier of L \/ (dom f)),z1,o1,a11 #); reconsider new = Language-like(# ( the carrier of L \/ (dom f)),z1,o1,a11 #) as non empty strict Language-like ; take new ; ::_thesis: ( the adicity of new = (f | ((dom f) \ { the OneF of L})) +* the adicity of L & the ZeroF of new = the ZeroF of L & the OneF of new = the OneF of L ) thus ( the adicity of new = (f | ((dom f) \ { the OneF of L})) +* the adicity of L & the ZeroF of new = the ZeroF of L & the OneF of new = the OneF of L ) ; ::_thesis: verum end; uniqueness for b1, b2 being non empty strict Language-like st the adicity of b1 = (f | ((dom f) \ { the OneF of L})) +* the adicity of L & the ZeroF of b1 = the ZeroF of L & the OneF of b1 = the OneF of L & the adicity of b2 = (f | ((dom f) \ { the OneF of L})) +* the adicity of L & the ZeroF of b2 = the ZeroF of L & the OneF of b2 = the OneF of L holds b1 = b2 proof let IT1, IT2 be non empty strict Language-like ; ::_thesis: ( the adicity of IT1 = (f | ((dom f) \ { the OneF of L})) +* the adicity of L & the ZeroF of IT1 = the ZeroF of L & the OneF of IT1 = the OneF of L & the adicity of IT2 = (f | ((dom f) \ { the OneF of L})) +* the adicity of L & the ZeroF of IT2 = the ZeroF of L & the OneF of IT2 = the OneF of L implies IT1 = IT2 ) set c1 = the carrier of IT1; set z1 = the ZeroF of IT1; set o1 = the OneF of IT1; set a1 = the adicity of IT1; set c2 = the carrier of IT2; set z2 = the ZeroF of IT2; set o2 = the OneF of IT2; set a2 = the adicity of IT2; set ITT1 = Language-like(# the carrier of IT1, the ZeroF of IT1, the OneF of IT1, the adicity of IT1 #); set ITT2 = Language-like(# the carrier of IT2, the ZeroF of IT2, the OneF of IT2, the adicity of IT2 #); reconsider ITT1 = Language-like(# the carrier of IT1, the ZeroF of IT1, the OneF of IT1, the adicity of IT1 #), ITT2 = Language-like(# the carrier of IT2, the ZeroF of IT2, the OneF of IT2, the adicity of IT2 #) as non empty Language-like ; defpred S1[ Language-like ] means ( the adicity of $1 = (f | ((dom f) \ { the OneF of L})) +* the adicity of L & the ZeroF of $1 = the ZeroF of L & the OneF of $1 = the OneF of L ); assume A3: ( S1[IT1] & S1[IT2] ) ; ::_thesis: IT1 = IT2 dom the adicity of IT1 = the carrier of IT2 \ { the OneF of IT1} by A3, FUNCT_2:def_1; then ( the carrier of IT1 \ { the OneF of IT1}) \/ ({ the OneF of IT1} null the carrier of IT1) = ( the carrier of IT2 \ { the OneF of IT2}) \/ ({ the OneF of IT2} null the carrier of IT2) by A3, FUNCT_2:def_1 .= the carrier of IT2 by FOMODEL0:48 ; hence IT1 = IT2 by A3, FOMODEL0:48; ::_thesis: verum end; end; :: deftheorem Def42 defines extendWith FOMODEL1:def_42_:_ for f being INT -valued Function for L being non empty Language-like for b3 being non empty strict Language-like holds ( b3 = L extendWith f iff ( the adicity of b3 = (f | ((dom f) \ { the OneF of L})) +* the adicity of L & the ZeroF of b3 = the ZeroF of L & the OneF of b3 = the OneF of L ) ); registration let S be non empty Language-like ; let f be INT -valued Function; clusterS extendWith f -> non empty strict S -extending ; coherence S extendWith f is S -extending proof set S1 = S; set S2 = S extendWith f; set a1 = the adicity of S; set a2 = the adicity of (S extendWith f); set o1 = the OneF of S; A1: ( TheEqSymbOf S = TheEqSymbOf (S extendWith f) & TheNorSymbOf S = TheNorSymbOf (S extendWith f) ) by Def42; the adicity of (S extendWith f) = (f | ((dom f) \ { the OneF of S})) +* the adicity of S by Def42; then the adicity of S c= the adicity of (S extendWith f) by FUNCT_4:25; hence S extendWith f is S -extending by A1, Def41; ::_thesis: verum end; end; registration let S be non degenerated Language-like ; clusterS -extending -> non degenerated for Language-like ; coherence for b1 being Language-like st b1 is S -extending holds not b1 is degenerated proof set S1 = S; let S2 be Language-like ; ::_thesis: ( S2 is S -extending implies not S2 is degenerated ) assume S2 is S -extending ; ::_thesis: not S2 is degenerated then ( TheEqSymbOf S = TheEqSymbOf S2 & TheNorSymbOf S = TheNorSymbOf S2 ) by Def41; then ( 0. S = 0. S2 & 1. S = 1. S2 ) ; hence not S2 is degenerated by STRUCT_0:def_8; ::_thesis: verum end; end; registration let S be eligible Language-like ; clusterS -extending -> eligible for Language-like ; coherence for b1 being Language-like st b1 is S -extending holds b1 is eligible proof set S1 = S; let S2 be Language-like ; ::_thesis: ( S2 is S -extending implies S2 is eligible ) set L1 = LettersOf S; set L2 = LettersOf S2; set AS1 = AtomicFormulaSymbolsOf S; set AS2 = AtomicFormulaSymbolsOf S2; set a1 = the adicity of S; set a2 = the adicity of S2; set E1 = TheEqSymbOf S; set E2 = TheEqSymbOf S2; assume A1: S2 is S -extending ; ::_thesis: S2 is eligible then A2: ( dom the adicity of S = AtomicFormulaSymbolsOf S & dom the adicity of S2 = AtomicFormulaSymbolsOf S2 & TheEqSymbOf S = TheEqSymbOf S2 & the adicity of S c= the adicity of S2 ) by Def41, FUNCT_2:def_1; reconsider a11 = the adicity of S as Subset of the adicity of S2 by A1, Def41; a11 " {0} c= the adicity of S2 " {0} by RELAT_1:144; then reconsider L11 = LettersOf S as Subset of (LettersOf S2) ; (LettersOf S2) null L11 is infinite ; hence LettersOf S2 is infinite ; :: according to FOMODEL1:def_23 ::_thesis: the adicity of S2 . (TheEqSymbOf S2) = - 2 the adicity of S . (TheEqSymbOf S) = - 2 by Def23; then TheEqSymbOf S in dom the adicity of S by FUNCT_1:def_2; then the adicity of S . (TheEqSymbOf S) = ( the adicity of S2 +* a11) . (TheEqSymbOf S) by FUNCT_4:13 .= the adicity of S2 . (TheEqSymbOf S2) by A2, FUNCT_4:98 ; hence the adicity of S2 . (TheEqSymbOf S2) = - 2 by Def23; ::_thesis: verum end; end; registration let E be empty Relation; let X be set ; clusterX |` E -> empty ; coherence X |` E is empty by RELAT_1:107; end; Lm12: for S1 being non empty Language-like for f being INT -valued Function holds ( LettersOf (S1 extendWith f) = ((f | ((dom f) \ (AllSymbolsOf S1))) " {0}) \/ (LettersOf S1) & the adicity of (S1 extendWith f) | (OwnSymbolsOf S1) = the adicity of S1 | (OwnSymbolsOf S1) ) proof let S1 be non empty Language-like ; ::_thesis: for f being INT -valued Function holds ( LettersOf (S1 extendWith f) = ((f | ((dom f) \ (AllSymbolsOf S1))) " {0}) \/ (LettersOf S1) & the adicity of (S1 extendWith f) | (OwnSymbolsOf S1) = the adicity of S1 | (OwnSymbolsOf S1) ) let f be INT -valued Function; ::_thesis: ( LettersOf (S1 extendWith f) = ((f | ((dom f) \ (AllSymbolsOf S1))) " {0}) \/ (LettersOf S1) & the adicity of (S1 extendWith f) | (OwnSymbolsOf S1) = the adicity of S1 | (OwnSymbolsOf S1) ) set S2 = S1 extendWith f; set L1 = LettersOf S1; set a1 = the adicity of S1; set a2 = the adicity of (S1 extendWith f); set z1 = the ZeroF of S1; set o1 = the OneF of S1; set X = (dom f) \ { the OneF of S1}; set C1 = the carrier of S1; set O1 = OwnSymbolsOf S1; set L2 = LettersOf (S1 extendWith f); set f1 = f | (((dom f) \ { the OneF of S1}) \ (dom the adicity of S1)); set SS1 = AllSymbolsOf S1; the carrier of S1 = ( the carrier of S1 \ { the OneF of S1}) \/ ({ the OneF of S1} null the carrier of S1) by FOMODEL0:48 .= (dom the adicity of S1) \/ { the OneF of S1} by FUNCT_2:def_1 ; then f | (((dom f) \ { the OneF of S1}) \ (dom the adicity of S1)) = f | ((dom f) \ the carrier of S1) by XBOOLE_1:41; then A1: (f | ((dom f) \ the carrier of S1)) \/ the adicity of S1 = (f | ((dom f) \ { the OneF of S1})) +* the adicity of S1 by FOMODEL0:57 .= the adicity of (S1 extendWith f) by Def42 ; hence LettersOf (S1 extendWith f) = ((f | ((dom f) \ (AllSymbolsOf S1))) " {0}) \/ (LettersOf S1) by FOMODEL0:23; ::_thesis: the adicity of (S1 extendWith f) | (OwnSymbolsOf S1) = the adicity of S1 | (OwnSymbolsOf S1) reconsider Y = (OwnSymbolsOf S1) /\ (dom f) as Subset of the carrier of S1 by XBOOLE_1:1; thus the adicity of (S1 extendWith f) | (OwnSymbolsOf S1) = ( the adicity of S1 | (OwnSymbolsOf S1)) \/ ((f | ((dom f) \ the carrier of S1)) | (OwnSymbolsOf S1)) by A1, FOMODEL0:56 .= ( the adicity of S1 | (OwnSymbolsOf S1)) \/ (f | ((OwnSymbolsOf S1) /\ ((dom f) \ the carrier of S1))) by RELAT_1:71 .= ( the adicity of S1 | (OwnSymbolsOf S1)) \/ (f | (((OwnSymbolsOf S1) /\ (dom f)) \ the carrier of S1)) by XBOOLE_1:49 .= ( the adicity of S1 | (OwnSymbolsOf S1)) \/ (f | (Y \ the carrier of S1)) .= the adicity of S1 | (OwnSymbolsOf S1) ; ::_thesis: verum end; registration let X be set ; let m be integer number ; clusterX --> m -> INT -valued ; coherence X --> m is INT -valued proof reconsider mm = m as Element of INT by INT_1:def_2; X --> m is {mm} -valued ; hence X --> m is INT -valued ; ::_thesis: verum end; end; definition let S be Language; let X be functional set ; funcS addLettersNotIn X -> S -extending Language equals :: FOMODEL1:def 43 S extendWith ((((AllSymbolsOf S) \/ (SymbolsOf X)) -freeCountableSet) --> 0); coherence S extendWith ((((AllSymbolsOf S) \/ (SymbolsOf X)) -freeCountableSet) --> 0) is S -extending Language ; end; :: deftheorem defines addLettersNotIn FOMODEL1:def_43_:_ for S being Language for X being functional set holds S addLettersNotIn X = S extendWith ((((AllSymbolsOf S) \/ (SymbolsOf X)) -freeCountableSet) --> 0); registration let S1 be Language; let X be functional set ; cluster(LettersOf (S1 addLettersNotIn X)) \ (SymbolsOf X) -> infinite ; coherence not (LettersOf (S1 addLettersNotIn X)) \ (SymbolsOf X) is finite proof set L1 = LettersOf S1; set S2 = S1 addLettersNotIn X; set no = SymbolsOf X; set L2 = LettersOf (S1 addLettersNotIn X); set IT = (LettersOf (S1 addLettersNotIn X)) \ (SymbolsOf X); set a1 = the adicity of S1; set a2 = the adicity of (S1 addLettersNotIn X); set SS1 = AllSymbolsOf S1; set fresh = ((AllSymbolsOf S1) \/ (SymbolsOf X)) -freeCountableSet ; reconsider f = (((AllSymbolsOf S1) \/ (SymbolsOf X)) -freeCountableSet) --> 0 as INT -valued Function ; A1: ( 0 in {0} & dom ((((AllSymbolsOf S1) \/ (SymbolsOf X)) -freeCountableSet) --> 0) = ((AllSymbolsOf S1) \/ (SymbolsOf X)) -freeCountableSet ) by FUNCT_2:def_1, TARSKI:def_1; (((AllSymbolsOf S1) \/ (SymbolsOf X)) -freeCountableSet) /\ ((AllSymbolsOf S1) \/ (SymbolsOf X)) = {} ; then ((AllSymbolsOf S1) \/ (SymbolsOf X)) -freeCountableSet misses (AllSymbolsOf S1) \/ (SymbolsOf X) by XBOOLE_0:def_7; then ( ((AllSymbolsOf S1) \/ (SymbolsOf X)) -freeCountableSet misses (AllSymbolsOf S1) null (SymbolsOf X) & ((AllSymbolsOf S1) \/ (SymbolsOf X)) -freeCountableSet misses (SymbolsOf X) null (AllSymbolsOf S1) ) by XBOOLE_1:63; then A2: ( (((AllSymbolsOf S1) \/ (SymbolsOf X)) -freeCountableSet) \ (AllSymbolsOf S1) = ((AllSymbolsOf S1) \/ (SymbolsOf X)) -freeCountableSet & (((AllSymbolsOf S1) \/ (SymbolsOf X)) -freeCountableSet) \ (SymbolsOf X) = ((AllSymbolsOf S1) \/ (SymbolsOf X)) -freeCountableSet ) by XBOOLE_1:83; LettersOf (S1 addLettersNotIn X) = ((f | ((dom f) \ (AllSymbolsOf S1))) " {0}) \/ (LettersOf S1) by Lm12; then (LettersOf (S1 addLettersNotIn X)) \ (SymbolsOf X) = ((((f null {}) | ({} \/ (dom f))) " {0}) \ (SymbolsOf X)) \/ ((LettersOf S1) \ (SymbolsOf X)) by A2, A1, XBOOLE_1:42 .= (((AllSymbolsOf S1) \/ (SymbolsOf X)) -freeCountableSet) \/ ((LettersOf S1) \ (SymbolsOf X)) by A1, A2, FUNCOP_1:14 ; hence not (LettersOf (S1 addLettersNotIn X)) \ (SymbolsOf X) is finite ; ::_thesis: verum end; end; registration cluster non empty non degenerated non trivial infinite countable eligible for Language-like ; existence ex b1 being Language st b1 is countable proof reconsider z = 0 , o = 1 as Element of NAT ; set D = NAT \ {o}; ( z in NAT & not z in {o} ) by TARSKI:def_1; then reconsider zz = z as Element of NAT \ {o} by XBOOLE_0:def_5; reconsider f = (NAT \ {o}) --> 0, g = zz .--> (- 2) as INT -valued Function ; set a = f +* g; A1: ( zz in {zz} & dom g = {zz} & dom f = NAT \ {o} ) by FUNCOP_1:13, TARSKI:def_1; then dom (f +* g) = (NAT \ {o}) null {zz} by FUNCT_4:def_1; then ( rng (f +* g) c= INT & dom (f +* g) = NAT \ {o} ) ; then f +* g is Element of Funcs ((NAT \ {o}),INT) by FUNCT_2:def_2; then reconsider aa = f +* g as Function of (NAT \ {o}),INT ; set IT = Language-like(# NAT,z,o,aa #); A2: 0. Language-like(# NAT,z,o,aa #) <> 1. Language-like(# NAT,z,o,aa #) ; aa . z = g . zz by A1, FUNCT_4:13 .= - 2 by A1, FUNCOP_1:7 ; then A3: aa . (TheEqSymbOf Language-like(# NAT,z,o,aa #)) = - 2 ; now__::_thesis:_for_x_being_set_st_x_in_(NAT_\_{o})_\_{z}_holds_ x_in_aa_"_{0} let x be set ; ::_thesis: ( x in (NAT \ {o}) \ {z} implies x in aa " {0} ) assume A4: x in (NAT \ {o}) \ {z} ; ::_thesis: x in aa " {0} then A5: ( x in NAT \ {o} & not x in {zz} ) by XBOOLE_0:def_5; then ( x in dom aa & not x in dom g ) by FUNCT_2:def_1; then aa . x = f . x by FUNCT_4:11 .= 0 by A4, FUNCOP_1:7 ; then ( x in dom aa & aa . x in {0} ) by A5, FUNCT_2:def_1, TARSKI:def_1; hence x in aa " {0} by FUNCT_1:def_7; ::_thesis: verum end; then reconsider E = (NAT \ {o}) \ {z} as Subset of (aa " {0}) by TARSKI:def_3; ( E is infinite & (aa " {0}) \/ E = (aa " {0}) null E ) ; then LettersOf Language-like(# NAT,z,o,aa #) is infinite ; then reconsider IT = Language-like(# NAT,z,o,aa #) as Language by A2, A3, Def23, STRUCT_0:def_8; take IT ; ::_thesis: IT is countable thus IT is countable by ORDERS_4:def_2; ::_thesis: verum end; end; registration let S be countable Language; cluster AllSymbolsOf S -> countable ; coherence AllSymbolsOf S is countable by ORDERS_4:def_2; end; registration let S be countable Language; cluster((AllSymbolsOf S) *) \ {{}} -> countable ; coherence ((AllSymbolsOf S) *) \ {{}} is countable proof set SS = AllSymbolsOf S; reconsider C = (AllSymbolsOf S) * as countable set by CARD_4:13; reconsider IT = C \ {{}} as Subset of C ; IT is countable ; hence ((AllSymbolsOf S) *) \ {{}} is countable ; ::_thesis: verum end; end; registration let L be non empty Language-like ; let f be INT -valued Function; cluster(AllSymbolsOf (L extendWith f)) \+\ ((dom f) \/ (AllSymbolsOf L)) -> empty for set ; coherence for b1 being set st b1 = (AllSymbolsOf (L extendWith f)) \+\ ((dom f) \/ (AllSymbolsOf L)) holds b1 is empty proof set L1 = L; set a1 = the adicity of L; set SS1 = AllSymbolsOf L; set L2 = L extendWith f; set SS2 = AllSymbolsOf (L extendWith f); set a2 = the adicity of (L extendWith f); set X = dom f; set E1 = TheEqSymbOf L; set N1 = TheNorSymbOf L; set E2 = TheEqSymbOf (L extendWith f); set N2 = TheNorSymbOf (L extendWith f); reconsider Y = (dom f) \ {(TheNorSymbOf L)} as Subset of (dom f) ; A1: dom (f | ((dom f) \ {(TheNorSymbOf L)})) = (dom f) /\ Y by RELAT_1:61 .= Y ; the adicity of (L extendWith f) = (f | ((dom f) \ {(TheNorSymbOf L)})) +* the adicity of L by Def42; then dom the adicity of (L extendWith f) = (dom (f | Y)) \/ (dom the adicity of L) by FUNCT_4:def_1; then A2: (AllSymbolsOf (L extendWith f)) \ {(TheNorSymbOf (L extendWith f))} = Y \/ (dom the adicity of L) by A1, FUNCT_2:def_1 .= Y \/ ((AllSymbolsOf L) \ {(TheNorSymbOf L)}) by FUNCT_2:def_1 ; reconsider NN1 = {(TheNorSymbOf L)} as non empty Subset of (AllSymbolsOf L) by ZFMISC_1:31; reconsider NN2 = {(TheNorSymbOf (L extendWith f))} as non empty Subset of (AllSymbolsOf (L extendWith f)) by ZFMISC_1:31; ( NN1 c= AllSymbolsOf L & (AllSymbolsOf L) null (dom f) c= (AllSymbolsOf L) \/ (dom f) ) ; then reconsider NN11 = NN1 as non empty Subset of ((AllSymbolsOf L) \/ (dom f)) by XBOOLE_1:1; ( AllSymbolsOf (L extendWith f) = NN2 \/ ((AllSymbolsOf (L extendWith f)) \ NN2) & AllSymbolsOf L = NN1 \/ ((AllSymbolsOf L) \ NN1) ) by XBOOLE_1:45; then AllSymbolsOf (L extendWith f) = (NN2 \/ ((AllSymbolsOf L) \ NN1)) \/ Y by A2, XBOOLE_1:4 .= (NN1 \/ ((AllSymbolsOf L) \ NN1)) \/ Y by Def41 .= NN1 \/ (((AllSymbolsOf L) \ NN1) \/ Y) by XBOOLE_1:4 .= NN11 \/ (((AllSymbolsOf L) \/ (dom f)) \ NN11) by XBOOLE_1:42 .= (AllSymbolsOf L) \/ (dom f) by XBOOLE_1:45 ; hence for b1 being set st b1 = (AllSymbolsOf (L extendWith f)) \+\ ((dom f) \/ (AllSymbolsOf L)) holds b1 is empty ; ::_thesis: verum end; end; registration let S be countable Language; let X be functional set ; clusterS addLettersNotIn X -> countable for 1-sorted ; coherence for b1 being 1-sorted st b1 = S addLettersNotIn X holds b1 is countable proof set S1 = S; set SS1 = AllSymbolsOf S; set SX = SymbolsOf X; set add = ((AllSymbolsOf S) \/ (SymbolsOf X)) -freeCountableSet ; set f = (((AllSymbolsOf S) \/ (SymbolsOf X)) -freeCountableSet) --> 0; set S2 = S extendWith ((((AllSymbolsOf S) \/ (SymbolsOf X)) -freeCountableSet) --> 0); set SS2 = AllSymbolsOf (S extendWith ((((AllSymbolsOf S) \/ (SymbolsOf X)) -freeCountableSet) --> 0)); (AllSymbolsOf (S extendWith ((((AllSymbolsOf S) \/ (SymbolsOf X)) -freeCountableSet) --> 0))) \+\ ((dom ((((AllSymbolsOf S) \/ (SymbolsOf X)) -freeCountableSet) --> 0)) \/ (AllSymbolsOf S)) = {} ; then AllSymbolsOf (S extendWith ((((AllSymbolsOf S) \/ (SymbolsOf X)) -freeCountableSet) --> 0)) = (dom ((((AllSymbolsOf S) \/ (SymbolsOf X)) -freeCountableSet) --> 0)) \/ (AllSymbolsOf S) by FOMODEL0:29 .= (((AllSymbolsOf S) \/ (SymbolsOf X)) -freeCountableSet) \/ (AllSymbolsOf S) by FUNCOP_1:13 ; then AllSymbolsOf (S extendWith ((((AllSymbolsOf S) \/ (SymbolsOf X)) -freeCountableSet) --> 0)) is countable by CARD_2:85; hence for b1 being 1-sorted st b1 = S addLettersNotIn X holds b1 is countable by ORDERS_4:def_2; ::_thesis: verum end; end;