:: FOMODEL2 semantic presentation
begin
definition
let S be Language;
:: original: TheNorSymbOf
redefine func TheNorSymbOf S -> Element of S;
coherence
TheNorSymbOf S is Element of S ;
end;
definition
let U be non empty set ;
funcU -deltaInterpreter -> Function of (2 -tuples_on U),BOOLEAN equals :: FOMODEL2:def 1
chi (((U -concatenation) .: (id (1 -tuples_on U))),(2 -tuples_on U));
coherence
chi (((U -concatenation) .: (id (1 -tuples_on U))),(2 -tuples_on U)) is Function of (2 -tuples_on U),BOOLEAN ;
end;
:: deftheorem defines -deltaInterpreter FOMODEL2:def_1_:_
for U being non empty set holds U -deltaInterpreter = chi (((U -concatenation) .: (id (1 -tuples_on U))),(2 -tuples_on U));
definition
let X be set ;
:: original: id
redefine func id X -> Equivalence_Relation of X;
coherence
id X is Equivalence_Relation of X by EQREL_1:3;
end;
definition
let S be Language;
let U be non empty set ;
let s be ofAtomicFormula Element of S;
mode Interpreter of s,U -> set means :Def2: :: FOMODEL2:def 2
it is Function of ((abs (ar s)) -tuples_on U),BOOLEAN if s is relational
otherwise it is Function of ((abs (ar s)) -tuples_on U),U;
existence
( ( s is relational implies ex b1 being set st b1 is Function of ((abs (ar s)) -tuples_on U),BOOLEAN ) & ( not s is relational implies ex b1 being set st b1 is Function of ((abs (ar s)) -tuples_on U),U ) )
proof
thus ( s is relational implies ex IT being set st IT is Function of ((abs (ar s)) -tuples_on U),BOOLEAN ) ::_thesis: ( not s is relational implies ex b1 being set st b1 is Function of ((abs (ar s)) -tuples_on U),U )
proof
assume s is relational ; ::_thesis: ex IT being set st IT is Function of ((abs (ar s)) -tuples_on U),BOOLEAN
take the Function of ((abs (ar s)) -tuples_on U),BOOLEAN ; ::_thesis: the Function of ((abs (ar s)) -tuples_on U),BOOLEAN is Function of ((abs (ar s)) -tuples_on U),BOOLEAN
thus the Function of ((abs (ar s)) -tuples_on U),BOOLEAN is Function of ((abs (ar s)) -tuples_on U),BOOLEAN ; ::_thesis: verum
end;
assume not s is relational ; ::_thesis: ex b1 being set st b1 is Function of ((abs (ar s)) -tuples_on U),U
take the Function of ((abs (ar s)) -tuples_on U),U ; ::_thesis: the Function of ((abs (ar s)) -tuples_on U),U is Function of ((abs (ar s)) -tuples_on U),U
thus the Function of ((abs (ar s)) -tuples_on U),U is Function of ((abs (ar s)) -tuples_on U),U ; ::_thesis: verum
end;
consistency
for b1 being set holds verum ;
end;
:: deftheorem Def2 defines Interpreter FOMODEL2:def_2_:_
for S being Language
for U being non empty set
for s being ofAtomicFormula Element of S
for b4 being set holds
( ( s is relational implies ( b4 is Interpreter of s,U iff b4 is Function of ((abs (ar s)) -tuples_on U),BOOLEAN ) ) & ( not s is relational implies ( b4 is Interpreter of s,U iff b4 is Function of ((abs (ar s)) -tuples_on U),U ) ) );
definition
let S be Language;
let U be non empty set ;
let s be ofAtomicFormula Element of S;
:: original: Interpreter
redefine mode Interpreter of s,U -> Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN);
coherence
for b1 being Interpreter of s,U holds b1 is Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN)
proof
let f be Interpreter of s,U; ::_thesis: f is Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN)
set n = abs (ar s);
set D = (abs (ar s)) -tuples_on U;
set C = U \/ BOOLEAN;
(abs (ar s)) -tuples_on U c= ((abs (ar s)) -tuples_on U) \/ {} ;
then reconsider DD = (abs (ar s)) -tuples_on U as Subset of ((abs (ar s)) -tuples_on U) ;
reconsider C1 = BOOLEAN , C2 = U as Subset of (U \/ BOOLEAN) by XBOOLE_1:7;
percases ( s is relational or not s is relational ) ;
suppose s is relational ; ::_thesis: f is Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN)
then reconsider ff = f as Function of DD,C1 by Def2;
[:DD,C1:] c= [:((abs (ar s)) -tuples_on U),(U \/ BOOLEAN):] ;
then reconsider fff = ff as Relation of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN) by XBOOLE_1:1;
fff is Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN) ;
hence f is Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN) ; ::_thesis: verum
end;
suppose not s is relational ; ::_thesis: f is Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN)
then reconsider ff = f as Function of DD,C2 by Def2;
[:DD,C2:] c= [:((abs (ar s)) -tuples_on U),(U \/ BOOLEAN):] ;
then reconsider fff = ff as Relation of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN) by XBOOLE_1:1;
fff is Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN) ;
hence f is Function of ((abs (ar s)) -tuples_on U),(U \/ BOOLEAN) ; ::_thesis: verum
end;
end;
end;
end;
registration
let S be Language;
let U be non empty set ;
let s be termal Element of S;
cluster -> U -valued for Interpreter of s,U;
coherence
for b1 being Interpreter of s,U holds b1 is U -valued by Def2;
end;
registration
let S be Language;
cluster literal -> own for Element of AllSymbolsOf S;
coherence
for b1 being Element of S st b1 is literal holds
b1 is own ;
end;
definition
let S be Language;
let U be non empty set ;
mode Interpreter of S,U -> Function means :Def3: :: FOMODEL2:def 3
for s being own Element of S holds it . s is Interpreter of s,U;
existence
ex b1 being Function st
for s being own Element of S holds b1 . s is Interpreter of s,U
proof
set O = OwnSymbolsOf S;
defpred S1[ set , set ] means ex s being own Element of S st
( $1 = s & $2 is Interpreter of s,U );
A1: for x being set st x in OwnSymbolsOf S holds
ex y being set st S1[x,y]
proof
let x be set ; ::_thesis: ( x in OwnSymbolsOf S implies ex y being set st S1[x,y] )
assume x in OwnSymbolsOf S ; ::_thesis: ex y being set st S1[x,y]
then reconsider s = x as own Element of S by FOMODEL1:def_19;
take y = the Interpreter of s,U; ::_thesis: S1[x,y]
take s ; ::_thesis: ( x = s & y is Interpreter of s,U )
thus ( x = s & y is Interpreter of s,U ) ; ::_thesis: verum
end;
consider f being Function such that
A2: ( dom f = OwnSymbolsOf S & ( for s being set st s in OwnSymbolsOf S holds
S1[s,f . s] ) ) from CLASSES1:sch_1(A1);
take f ; ::_thesis: for s being own Element of S holds f . s is Interpreter of s,U
thus for s being own Element of S holds f . s is Interpreter of s,U ::_thesis: verum
proof
let s be own Element of S; ::_thesis: f . s is Interpreter of s,U
s in OwnSymbolsOf S by FOMODEL1:def_19;
then consider s1 being own Element of S such that
A3: ( s = s1 & f . s is Interpreter of s1,U ) by A2;
thus f . s is Interpreter of s,U by A3; ::_thesis: verum
end;
end;
end;
:: deftheorem Def3 defines Interpreter FOMODEL2:def_3_:_
for S being Language
for U being non empty set
for b3 being Function holds
( b3 is Interpreter of S,U iff for s being own Element of S holds b3 . s is Interpreter of s,U );
definition
let S be Language;
let U be non empty set ;
let f be Function;
attrf is S,U -interpreter-like means :Def4: :: FOMODEL2:def 4
( f is Interpreter of S,U & f is Function-yielding );
end;
:: deftheorem Def4 defines -interpreter-like FOMODEL2:def_4_:_
for S being Language
for U being non empty set
for f being Function holds
( f is S,U -interpreter-like iff ( f is Interpreter of S,U & f is Function-yielding ) );
registration
let S be Language;
let U be non empty set ;
cluster Relation-like Function-like S,U -interpreter-like -> Function-yielding for set ;
coherence
for b1 being Function st b1 is S,U -interpreter-like holds
b1 is Function-yielding by Def4;
end;
registration
let S be Language;
let U be non empty set ;
let s be own Element of S;
cluster -> non empty for Interpreter of s,U;
coherence
for b1 being Interpreter of s,U holds not b1 is empty ;
end;
Lm1: for S being Language
for U being non empty set
for f being Interpreter of S,U holds OwnSymbolsOf S c= dom f
proof
let S be Language; ::_thesis: for U being non empty set
for f being Interpreter of S,U holds OwnSymbolsOf S c= dom f
let U be non empty set ; ::_thesis: for f being Interpreter of S,U holds OwnSymbolsOf S c= dom f
set SS = AllSymbolsOf S;
set A = AtomicFormulaSymbolsOf S;
set O = OwnSymbolsOf S;
let f be Interpreter of S,U; ::_thesis: OwnSymbolsOf S c= dom f
now__::_thesis:_for_x_being_set_st_x_in_OwnSymbolsOf_S_holds_
x_in_dom_f
let x be set ; ::_thesis: ( x in OwnSymbolsOf S implies x in dom f )
assume x in OwnSymbolsOf S ; ::_thesis: x in dom f
then reconsider s = x as own Element of S by FOMODEL1:def_19;
not f . s is empty by Def3;
hence x in dom f by FUNCT_1:def_2; ::_thesis: verum
end;
hence OwnSymbolsOf S c= dom f by TARSKI:def_3; ::_thesis: verum
end;
Lm2: for S being Language
for U being non empty set
for f being Function st f is S,U -interpreter-like holds
OwnSymbolsOf S c= dom f
proof
let S be Language; ::_thesis: for U being non empty set
for f being Function st f is S,U -interpreter-like holds
OwnSymbolsOf S c= dom f
let U be non empty set ; ::_thesis: for f being Function st f is S,U -interpreter-like holds
OwnSymbolsOf S c= dom f
let f be Function; ::_thesis: ( f is S,U -interpreter-like implies OwnSymbolsOf S c= dom f )
assume f is S,U -interpreter-like ; ::_thesis: OwnSymbolsOf S c= dom f
then f is Interpreter of S,U by Def4;
hence OwnSymbolsOf S c= dom f by Lm1; ::_thesis: verum
end;
registration
let S be Language;
let U be non empty set ;
cluster Relation-like Function-like S,U -interpreter-like for set ;
existence
ex b1 being Function st b1 is S,U -interpreter-like
proof
set O = OwnSymbolsOf S;
set SS = AllSymbolsOf S;
set I = the Interpreter of S,U;
reconsider f = the Interpreter of S,U | (OwnSymbolsOf S) as Function ;
A1: dom f = (OwnSymbolsOf S) /\ (dom the Interpreter of S,U) by RELAT_1:61
.= OwnSymbolsOf S by Lm1, XBOOLE_1:28 ;
take f ; ::_thesis: f is S,U -interpreter-like
A2: for s being own Element of S holds
( f . s is Interpreter of s,U & f . s is Function )
proof
let s be own Element of S; ::_thesis: ( f . s is Interpreter of s,U & f . s is Function )
s in dom f by A1, FOMODEL1:def_19;
then A3: f . s = the Interpreter of S,U . s by FUNCT_1:47;
hence f . s is Interpreter of s,U by Def3; ::_thesis: f . s is Function
thus f . s is Function by A3, Def3; ::_thesis: verum
end;
then reconsider ff = f as Interpreter of S,U by Def3;
now__::_thesis:_for_x_being_set_st_x_in_dom_f_holds_
ff_._x_is_Function
let x be set ; ::_thesis: ( x in dom f implies ff . x is Function )
assume x in dom f ; ::_thesis: ff . x is Function
then reconsider s = x as own Element of S by A1, FOMODEL1:def_19;
ff . s is Function by A2;
hence ff . x is Function ; ::_thesis: verum
end;
then ff is Function-yielding by FUNCOP_1:def_6;
hence f is S,U -interpreter-like by Def4; ::_thesis: verum
end;
end;
definition
let S be Language;
let U be non empty set ;
let I be S,U -interpreter-like Function;
let s be own Element of S;
:: original: .
redefine funcI . s -> Interpreter of s,U;
coherence
I . s is Interpreter of s,U
proof
reconsider I = I as Interpreter of S,U by Def4;
I . s is Interpreter of s,U by Def3;
hence I . s is Interpreter of s,U ; ::_thesis: verum
end;
end;
registration
let S be Language;
let U be non empty set ;
let I be S,U -interpreter-like Function;
let x be own Element of S;
let f be Interpreter of x,U;
clusterI +* (x .--> f) -> S,U -interpreter-like ;
coherence
I +* (x .--> f) is S,U -interpreter-like
proof
set g = x .--> f;
set O = OwnSymbolsOf S;
set h = I +* (x .--> f);
( OwnSymbolsOf S c= dom I & dom I c= (dom I) \/ (dom (x .--> f)) ) by Lm2, XBOOLE_1:7;
then A1: OwnSymbolsOf S c= (dom I) \/ (dom (x .--> f)) by XBOOLE_1:1;
reconsider I = I as Interpreter of S,U by Def4;
now__::_thesis:_for_s_being_own_Element_of_S_holds_(I_+*_(x_.-->_f))_._s_is_Interpreter_of_s,U
let s be own Element of S; ::_thesis: (I +* (x .--> f)) . b1 is Interpreter of b1,U
A2: s in OwnSymbolsOf S by FOMODEL1:def_19;
percases ( s in dom (x .--> f) or not s in dom (x .--> f) ) ;
supposeA3: s in dom (x .--> f) ; ::_thesis: (I +* (x .--> f)) . b1 is Interpreter of b1,U
then A4: (I +* (x .--> f)) . s = (x .--> f) . s by A2, A1, FUNCT_4:def_1
.= f by A3, FUNCOP_1:7 ;
thus (I +* (x .--> f)) . s is Interpreter of s,U by A4, A3, TARSKI:def_1; ::_thesis: verum
end;
suppose not s in dom (x .--> f) ; ::_thesis: (I +* (x .--> f)) . b1 is Interpreter of b1,U
then (I +* (x .--> f)) . s = I . s by A1, A2, FUNCT_4:def_1;
hence (I +* (x .--> f)) . s is Interpreter of s,U by Def3; ::_thesis: verum
end;
end;
end;
then ( I +* (x .--> f) is Interpreter of S,U & I +* (x .--> f) is Function-yielding ) by Def3;
hence I +* (x .--> f) is S,U -interpreter-like by Def4; ::_thesis: verum
end;
end;
definition
let f be Function;
let x, y be set ;
func(x,y) ReassignIn f -> Function equals :: FOMODEL2:def 5
f +* (x .--> ({} .--> y));
coherence
f +* (x .--> ({} .--> y)) is Function ;
end;
:: deftheorem defines ReassignIn FOMODEL2:def_5_:_
for f being Function
for x, y being set holds (x,y) ReassignIn f = f +* (x .--> ({} .--> y));
registration
let S be Language;
let U be non empty set ;
let I be S,U -interpreter-like Function;
let x be literal Element of S;
let u be Element of U;
cluster(x,u) ReassignIn I -> S,U -interpreter-like ;
coherence
(x,u) ReassignIn I is S,U -interpreter-like
proof
set h = (x,u) ReassignIn I;
set n = abs (ar x);
( abs (ar x) = 0 & {{}} = 0 -tuples_on U ) by FOMODEL0:10;
then reconsider f = {{}} --> u as Function of ((abs (ar x)) -tuples_on U),U ;
reconsider ff = f as Interpreter of x,U by Def2;
(x,u) ReassignIn I = I +* (x .--> ff) ;
hence (x,u) ReassignIn I is S,U -interpreter-like ; ::_thesis: verum
end;
end;
registration
let S be Language;
cluster AllSymbolsOf S -> non empty ;
coherence
not AllSymbolsOf S is empty ;
end;
registration
let Y be set ;
let X, Z be non empty set ;
cluster Function-like quasi_total -> Function-yielding for Element of bool [:X,(Funcs (Y,Z)):];
coherence
for b1 being Function of X,(Funcs (Y,Z)) holds b1 is Function-yielding ;
end;
registration
let X, Y, Z be non empty set ;
cluster non empty Relation-like X -defined Funcs (Y,Z) -valued Function-like total quasi_total Function-yielding V164() for Element of bool [:X,(Funcs (Y,Z)):];
existence
ex b1 being Function of X,(Funcs (Y,Z)) st b1 is Function-yielding
proof
take the Function of X,(Funcs (Y,Z)) ; ::_thesis: the Function of X,(Funcs (Y,Z)) is Function-yielding
thus the Function of X,(Funcs (Y,Z)) is Function-yielding ; ::_thesis: verum
end;
end;
definition
let f be Function-yielding Function;
let g be Function;
func^^^g,f__ -> Function means :Def6: :: FOMODEL2:def 6
( dom it = dom f & ( for x being set st x in dom f holds
it . x = g * (f . x) ) );
existence
ex b1 being Function st
( dom b1 = dom f & ( for x being set st x in dom f holds
b1 . x = g * (f . x) ) )
proof
deffunc H1( set ) -> set = g * (f . $1);
consider h being Function such that
A1: ( dom h = dom f & ( for x being set st x in dom f holds
h . x = H1(x) ) ) from FUNCT_1:sch_3();
take h ; ::_thesis: ( dom h = dom f & ( for x being set st x in dom f holds
h . x = g * (f . x) ) )
thus ( dom h = dom f & ( for x being set st x in dom f holds
h . x = g * (f . x) ) ) by A1; ::_thesis: verum
end;
uniqueness
for b1, b2 being Function st dom b1 = dom f & ( for x being set st x in dom f holds
b1 . x = g * (f . x) ) & dom b2 = dom f & ( for x being set st x in dom f holds
b2 . x = g * (f . x) ) holds
b1 = b2
proof
let IT1, IT2 be Function; ::_thesis: ( dom IT1 = dom f & ( for x being set st x in dom f holds
IT1 . x = g * (f . x) ) & dom IT2 = dom f & ( for x being set st x in dom f holds
IT2 . x = g * (f . x) ) implies IT1 = IT2 )
assume A2: ( dom IT1 = dom f & ( for x being set st x in dom f holds
IT1 . x = g * (f . x) ) ) ; ::_thesis: ( not dom IT2 = dom f or ex x being set st
( x in dom f & not IT2 . x = g * (f . x) ) or IT1 = IT2 )
assume A3: ( dom IT2 = dom f & ( for x being set st x in dom f holds
IT2 . x = g * (f . x) ) ) ; ::_thesis: IT1 = IT2
now__::_thesis:_for_x_being_set_st_x_in_dom_IT1_holds_
IT1_._x_=_IT2_._x
let x be set ; ::_thesis: ( x in dom IT1 implies IT1 . x = IT2 . x )
assume x in dom IT1 ; ::_thesis: IT1 . x = IT2 . x
then ( IT1 . x = g * (f . x) & IT2 . x = g * (f . x) ) by A2, A3;
hence IT1 . x = IT2 . x ; ::_thesis: verum
end;
hence IT1 = IT2 by A2, A3, FUNCT_1:2; ::_thesis: verum
end;
end;
:: deftheorem Def6 defines ^^^ FOMODEL2:def_6_:_
for f being Function-yielding Function
for g, b3 being Function holds
( b3 = ^^^g,f__ iff ( dom b3 = dom f & ( for x being set st x in dom f holds
b3 . x = g * (f . x) ) ) );
registration
let f be empty Function;
let g be Function;
cluster^^^g,f__ -> empty ;
coherence
^^^g,f__ is empty
proof
dom ^^^g,f__ = dom f by Def6
.= {} ;
hence ^^^g,f__ is empty ; ::_thesis: verum
end;
end;
definition
let f be Function-yielding Function;
let g be Function;
func^^^f,g__ -> Function means :Def7: :: FOMODEL2:def 7
( dom it = (dom f) /\ (dom g) & ( for x being set st x in dom it holds
it . x = (f . x) . (g . x) ) );
existence
ex b1 being Function st
( dom b1 = (dom f) /\ (dom g) & ( for x being set st x in dom b1 holds
b1 . x = (f . x) . (g . x) ) )
proof
set A = (dom f) /\ (dom g);
deffunc H1( set ) -> set = (f . $1) . (g . $1);
consider h being Function such that
A1: ( dom h = (dom f) /\ (dom g) & ( for x being set st x in (dom f) /\ (dom g) holds
h . x = H1(x) ) ) from FUNCT_1:sch_3();
take h ; ::_thesis: ( dom h = (dom f) /\ (dom g) & ( for x being set st x in dom h holds
h . x = (f . x) . (g . x) ) )
thus ( dom h = (dom f) /\ (dom g) & ( for x being set st x in dom h holds
h . x = (f . x) . (g . x) ) ) by A1; ::_thesis: verum
end;
uniqueness
for b1, b2 being Function st dom b1 = (dom f) /\ (dom g) & ( for x being set st x in dom b1 holds
b1 . x = (f . x) . (g . x) ) & dom b2 = (dom f) /\ (dom g) & ( for x being set st x in dom b2 holds
b2 . x = (f . x) . (g . x) ) holds
b1 = b2
proof
set A = (dom f) /\ (dom g);
let IT1, IT2 be Function; ::_thesis: ( dom IT1 = (dom f) /\ (dom g) & ( for x being set st x in dom IT1 holds
IT1 . x = (f . x) . (g . x) ) & dom IT2 = (dom f) /\ (dom g) & ( for x being set st x in dom IT2 holds
IT2 . x = (f . x) . (g . x) ) implies IT1 = IT2 )
assume A2: ( dom IT1 = (dom f) /\ (dom g) & ( for x being set st x in dom IT1 holds
IT1 . x = (f . x) . (g . x) ) ) ; ::_thesis: ( not dom IT2 = (dom f) /\ (dom g) or ex x being set st
( x in dom IT2 & not IT2 . x = (f . x) . (g . x) ) or IT1 = IT2 )
assume A3: ( dom IT2 = (dom f) /\ (dom g) & ( for x being set st x in dom IT2 holds
IT2 . x = (f . x) . (g . x) ) ) ; ::_thesis: IT1 = IT2
now__::_thesis:_for_x_being_set_st_x_in_dom_IT1_holds_
IT1_._x_=_IT2_._x
let x be set ; ::_thesis: ( x in dom IT1 implies IT1 . x = IT2 . x )
assume A4: x in dom IT1 ; ::_thesis: IT1 . x = IT2 . x
thus IT1 . x = (f . x) . (g . x) by A2, A4
.= IT2 . x by A3, A4, A2 ; ::_thesis: verum
end;
hence IT1 = IT2 by A2, A3, FUNCT_1:2; ::_thesis: verum
end;
end;
:: deftheorem Def7 defines ^^^ FOMODEL2:def_7_:_
for f being Function-yielding Function
for g, b3 being Function holds
( b3 = ^^^f,g__ iff ( dom b3 = (dom f) /\ (dom g) & ( for x being set st x in dom b3 holds
b3 . x = (f . x) . (g . x) ) ) );
registration
let f be Function-yielding Function;
let g be empty Function;
cluster^^^f,g__ -> empty ;
coherence
^^^f,g__ is empty
proof
dom ^^^f,g__ = (dom f) /\ (dom g) by Def7
.= {} ;
hence ^^^f,g__ is empty ; ::_thesis: verum
end;
end;
registration
let X be FinSequence-membered set ;
cluster Relation-like X -valued Function-like -> Function-yielding for set ;
coherence
for b1 being Function st b1 is X -valued holds
b1 is Function-yielding ;
end;
registration
let E, D be non empty set ;
let p be D -valued FinSequence;
let h be Function of D,E;
clusterh (*) p -> len p -element for FinSequence;
coherence
for b1 being FinSequence st b1 = h * p holds
b1 is len p -element
proof
reconsider pp = p as FinSequence of D by FOMODEL0:26;
len (h * pp) = len pp by FINSEQ_2:33;
hence for b1 being FinSequence st b1 = h * p holds
b1 is len p -element by CARD_1:def_7; ::_thesis: verum
end;
end;
registration
let X, Y be non empty set ;
let f be Function of X,Y;
let p be X -valued FinSequence;
clusterf (*) p -> FinSequence-like ;
coherence
f * p is FinSequence-like ;
end;
registration
let E, D be non empty set ;
let n be Nat;
let p be D -valued n -element FinSequence;
let h be Function of D,E;
clusterh (*) p -> n -element for FinSequence of E;
coherence
for b1 being FinSequence of E st b1 = h * p holds
b1 is n -element ;
end;
Lm3: for U being non empty set
for S being Language
for I being b2,b1 -interpreter-like Function
for t being termal string of S holds (abs (ar t)) -tuples_on U = dom (I . ((S -firstChar) . t))
by FUNCT_2:def_1;
theorem :: FOMODEL2:1
for S being Language
for t0 being 0 -termal string of S holds t0 = <*((S -firstChar) . t0)*>
proof
let S be Language; ::_thesis: for t0 being 0 -termal string of S holds t0 = <*((S -firstChar) . t0)*>
let t0 be 0 -termal string of S; ::_thesis: t0 = <*((S -firstChar) . t0)*>
reconsider e = (S -multiCat) . (SubTerms t0) as empty set ;
t0 = <*((S -firstChar) . t0)*> ^ e by FOMODEL1:def_37
.= <*((S -firstChar) . t0)*> ;
hence t0 = <*((S -firstChar) . t0)*> ; ::_thesis: verum
end;
Lm4: for S being Language
for U being non empty set
for I being b1,b2 -interpreter-like Function
for xx being Function of (AllTermsOf S),U holds
( ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ is Element of Funcs ((AllTermsOf S),U) & AllTermsOf S c= dom (I * (S -firstChar)) )
proof
let S be Language; ::_thesis: for U being non empty set
for I being S,b1 -interpreter-like Function
for xx being Function of (AllTermsOf S),U holds
( ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ is Element of Funcs ((AllTermsOf S),U) & AllTermsOf S c= dom (I * (S -firstChar)) )
let U be non empty set ; ::_thesis: for I being S,U -interpreter-like Function
for xx being Function of (AllTermsOf S),U holds
( ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ is Element of Funcs ((AllTermsOf S),U) & AllTermsOf S c= dom (I * (S -firstChar)) )
let I be S,U -interpreter-like Function; ::_thesis: for xx being Function of (AllTermsOf S),U holds
( ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ is Element of Funcs ((AllTermsOf S),U) & AllTermsOf S c= dom (I * (S -firstChar)) )
set A = AllTermsOf S;
set F = S -firstChar ;
set ST = S -subTerms ;
set SS = AllSymbolsOf S;
set Z = AtomicTermsOf S;
set T = S -termsOfMaxDepth ;
A1: dom (S -firstChar) = ((AllSymbolsOf S) *) \ {{}} by FUNCT_2:def_1;
let xx be Function of (AllTermsOf S),U; ::_thesis: ( ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ is Element of Funcs ((AllTermsOf S),U) & AllTermsOf S c= dom (I * (S -firstChar)) )
set f = ^^^xx,(S -subTerms)__;
set g = ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____;
A2: dom ^^^xx,(S -subTerms)__ = dom (S -subTerms) by Def6
.= AllTermsOf S by FUNCT_2:def_1 ;
A3: for a being set st a in AllTermsOf S holds
( a in dom (I * (S -firstChar)) & ( a in dom ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ implies ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ . a in U ) )
proof
let a be set ; ::_thesis: ( a in AllTermsOf S implies ( a in dom (I * (S -firstChar)) & ( a in dom ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ implies ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ . a in U ) ) )
assume A4: a in AllTermsOf S ; ::_thesis: ( a in dom (I * (S -firstChar)) & ( a in dom ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ implies ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ . a in U ) )
then reconsider t = a as termal string of S ;
set n = abs (ar t);
reconsider ss = (S -firstChar) . t as termal Element of S ;
reconsider s = ss as own Element of S ;
reconsider t1 = s as Element of OwnSymbolsOf S by FOMODEL1:def_19;
( t1 in OwnSymbolsOf S & OwnSymbolsOf S c= dom I ) by Lm2;
hence A5: a in dom (I * (S -firstChar)) by A1, FUNCT_1:11; ::_thesis: ( a in dom ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ implies ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ . a in U )
reconsider tt = a as Element of AllTermsOf S by A4;
reconsider i = I . s as Interpreter of s,U ;
(S -subTerms) . tt = SubTerms t by FOMODEL1:def_39;
then reconsider y = (S -subTerms) . tt as abs (ar t) -element FinSequence of AllTermsOf S by FINSEQ_1:def_11;
reconsider z = xx * y as abs (ar t) -element FinSequence of U ;
len z = abs (ar t) by CARD_1:def_7;
then reconsider zz = z as Element of (abs (ar t)) -tuples_on U by FINSEQ_2:133;
(abs (ar t)) -tuples_on U c= dom (I . t1) by Lm3;
then A6: zz in dom i by TARSKI:def_3;
tt in AllTermsOf S ;
then A7: tt in dom (S -subTerms) by FUNCT_2:def_1;
assume a in dom ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ ; ::_thesis: ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ . a in U
then ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ . t = ((I * (S -firstChar)) . t) . (^^^xx,(S -subTerms)__ . t) by Def7
.= (I . s) . (^^^xx,(S -subTerms)__ . t) by A5, FUNCT_1:12
.= i . zz by Def6, A7 ;
hence ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ . a in U by A6, FUNCT_1:102; ::_thesis: verum
end;
then A8: for a being set st a in AllTermsOf S holds
a in dom (I * (S -firstChar)) ;
then A9: AllTermsOf S c= dom (I * (S -firstChar)) by TARSKI:def_3;
A10: dom ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ = (dom (I * (S -firstChar))) /\ (AllTermsOf S) by A2, Def7
.= AllTermsOf S by A9, XBOOLE_1:28 ;
then for a being set st a in AllTermsOf S holds
^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ . a in U by A3;
then ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ is Function of (AllTermsOf S),U by A10, FUNCT_2:3;
hence ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ is Element of Funcs ((AllTermsOf S),U) by FUNCT_2:8; ::_thesis: AllTermsOf S c= dom (I * (S -firstChar))
thus AllTermsOf S c= dom (I * (S -firstChar)) by A8, TARSKI:def_3; ::_thesis: verum
end;
definition
let S be Language;
let U be non empty set ;
let u be Element of U;
let I be S,U -interpreter-like Function;
func(I,u) -TermEval -> Function of NAT,(Funcs ((AllTermsOf S),U)) means :Def8: :: FOMODEL2:def 8
( it . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds it . (mm + 1) = ^^^(I * (S -firstChar)),^^^(it . mm),(S -subTerms)____ ) );
existence
ex b1 being Function of NAT,(Funcs ((AllTermsOf S),U)) st
( b1 . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds b1 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(b1 . mm),(S -subTerms)____ ) )
proof
set A = AllTermsOf S;
set F = S -firstChar ;
set ST = S -subTerms ;
set SS = AllSymbolsOf S;
set Z = AtomicTermsOf S;
set T = S -termsOfMaxDepth ;
set fz = (AllTermsOf S) --> u;
defpred S1[ set , Element of Funcs ((AllTermsOf S),U), set ] means $3 = ^^^(I * (S -firstChar)),^^^$2,(S -subTerms)____;
reconsider fzz = (AllTermsOf S) --> u as Function of (AllTermsOf S),U ;
reconsider fzzz = fzz as Element of Funcs ((AllTermsOf S),U) by FUNCT_2:8;
A1: for mm being Element of NAT
for x being Element of Funcs ((AllTermsOf S),U) ex y being Element of Funcs ((AllTermsOf S),U) st S1[mm,x,y]
proof
let mm be Element of NAT ; ::_thesis: for x being Element of Funcs ((AllTermsOf S),U) ex y being Element of Funcs ((AllTermsOf S),U) st S1[mm,x,y]
let x be Element of Funcs ((AllTermsOf S),U); ::_thesis: ex y being Element of Funcs ((AllTermsOf S),U) st S1[mm,x,y]
reconsider xx = x as Function of (AllTermsOf S),U ;
reconsider yy = ^^^(I * (S -firstChar)),^^^xx,(S -subTerms)____ as Function of (AllTermsOf S),U by Lm4;
reconsider yyy = yy as Element of Funcs ((AllTermsOf S),U) by FUNCT_2:8;
take yyy ; ::_thesis: S1[mm,x,yyy]
thus S1[mm,x,yyy] ; ::_thesis: verum
end;
consider f being Function of NAT,(Funcs ((AllTermsOf S),U)) such that
A2: ( f . 0 = fzzz & ( for mm being Element of NAT holds S1[mm,f . mm,f . (mm + 1)] ) ) from RECDEF_1:sch_2(A1);
take f ; ::_thesis: ( f . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds f . (mm + 1) = ^^^(I * (S -firstChar)),^^^(f . mm),(S -subTerms)____ ) )
thus ( f . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds f . (mm + 1) = ^^^(I * (S -firstChar)),^^^(f . mm),(S -subTerms)____ ) ) by A2; ::_thesis: verum
end;
uniqueness
for b1, b2 being Function of NAT,(Funcs ((AllTermsOf S),U)) st b1 . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds b1 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(b1 . mm),(S -subTerms)____ ) & b2 . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds b2 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(b2 . mm),(S -subTerms)____ ) holds
b1 = b2
proof
set A = AllTermsOf S;
set F = S -firstChar ;
set ST = S -subTerms ;
set SS = AllSymbolsOf S;
set Z = AtomicTermsOf S;
set T = S -termsOfMaxDepth ;
set fz = (AllTermsOf S) --> u;
reconsider fzz = (AllTermsOf S) --> u as Element of Funcs ((AllTermsOf S),U) by FUNCT_2:8;
defpred S1[ set , set , set ] means for f being Element of Funcs ((AllTermsOf S),U) st $2 = f holds
$3 = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____;
let IT1, IT2 be Function of NAT,(Funcs ((AllTermsOf S),U)); ::_thesis: ( IT1 . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds IT1 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(IT1 . mm),(S -subTerms)____ ) & IT2 . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds IT2 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(IT2 . mm),(S -subTerms)____ ) implies IT1 = IT2 )
assume A3: ( IT1 . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds IT1 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(IT1 . mm),(S -subTerms)____ ) ) ; ::_thesis: ( not IT2 . 0 = (AllTermsOf S) --> u or ex mm being Element of NAT st not IT2 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(IT2 . mm),(S -subTerms)____ or IT1 = IT2 )
assume A4: ( IT2 . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds IT2 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(IT2 . mm),(S -subTerms)____ ) ) ; ::_thesis: IT1 = IT2
A5: IT1 . 0 = fzz by A3;
A6: for m being Nat holds S1[m,IT1 . m,IT1 . (m + 1)]
proof
let m be Nat; ::_thesis: S1[m,IT1 . m,IT1 . (m + 1)]
reconsider mm = m as Element of NAT by ORDINAL1:def_12;
let f be Element of Funcs ((AllTermsOf S),U); ::_thesis: ( IT1 . m = f implies IT1 . (m + 1) = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____ )
assume IT1 . m = f ; ::_thesis: IT1 . (m + 1) = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____
then IT1 . mm = f ;
hence IT1 . (m + 1) = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____ by A3; ::_thesis: verum
end;
A7: IT2 . 0 = fzz by A4;
A8: for m being Nat holds S1[m,IT2 . m,IT2 . (m + 1)]
proof
let m be Nat; ::_thesis: S1[m,IT2 . m,IT2 . (m + 1)]
reconsider mm = m as Element of NAT by ORDINAL1:def_12;
let f be Element of Funcs ((AllTermsOf S),U); ::_thesis: ( IT2 . m = f implies IT2 . (m + 1) = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____ )
assume IT2 . m = f ; ::_thesis: IT2 . (m + 1) = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____
then IT2 . mm = f ;
hence IT2 . (m + 1) = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____ by A4; ::_thesis: verum
end;
A9: for m being Nat
for x, y1, y2 being Element of Funcs ((AllTermsOf S),U) st S1[m,x,y1] & S1[m,x,y2] holds
y1 = y2
proof
let m be Nat; ::_thesis: for x, y1, y2 being Element of Funcs ((AllTermsOf S),U) st S1[m,x,y1] & S1[m,x,y2] holds
y1 = y2
let x, y1, y2 be Element of Funcs ((AllTermsOf S),U); ::_thesis: ( S1[m,x,y1] & S1[m,x,y2] implies y1 = y2 )
assume for f being Element of Funcs ((AllTermsOf S),U) st x = f holds
y1 = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____ ; ::_thesis: ( not S1[m,x,y2] or y1 = y2 )
then A10: y1 = ^^^(I * (S -firstChar)),^^^x,(S -subTerms)____ ;
assume for f being Element of Funcs ((AllTermsOf S),U) st x = f holds
y2 = ^^^(I * (S -firstChar)),^^^f,(S -subTerms)____ ; ::_thesis: y1 = y2
hence y1 = y2 by A10; ::_thesis: verum
end;
IT1 = IT2 from NAT_1:sch_14(A5, A6, A7, A8, A9);
hence IT1 = IT2 ; ::_thesis: verum
end;
end;
:: deftheorem Def8 defines -TermEval FOMODEL2:def_8_:_
for S being Language
for U being non empty set
for u being Element of U
for I being b1,b2 -interpreter-like Function
for b5 being Function of NAT,(Funcs ((AllTermsOf S),U)) holds
( b5 = (I,u) -TermEval iff ( b5 . 0 = (AllTermsOf S) --> u & ( for mm being Element of NAT holds b5 . (mm + 1) = ^^^(I * (S -firstChar)),^^^(b5 . mm),(S -subTerms)____ ) ) );
Lm5: for S being Language
for U being non empty set
for u being Element of U
for I being b1,b2 -interpreter-like Function
for t being termal string of S
for mm being Element of NAT holds
( (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ) )
proof
let S be Language; ::_thesis: for U being non empty set
for u being Element of U
for I being S,b1 -interpreter-like Function
for t being termal string of S
for mm being Element of NAT holds
( (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ) )
let U be non empty set ; ::_thesis: for u being Element of U
for I being S,U -interpreter-like Function
for t being termal string of S
for mm being Element of NAT holds
( (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ) )
let u be Element of U; ::_thesis: for I being S,U -interpreter-like Function
for t being termal string of S
for mm being Element of NAT holds
( (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ) )
let I be S,U -interpreter-like Function; ::_thesis: for t being termal string of S
for mm being Element of NAT holds
( (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ) )
let t be termal string of S; ::_thesis: for mm being Element of NAT holds
( (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ) )
let mm be Element of NAT ; ::_thesis: ( (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ) )
set TE = (I,u) -TermEval ;
set F = S -firstChar ;
set ST = S -subTerms ;
set A = AllTermsOf S;
A1: ( t in AllTermsOf S & AllTermsOf S c= dom (I * (S -firstChar)) ) by Lm4, FOMODEL1:def_32;
reconsider tt = t as Element of AllTermsOf S by FOMODEL1:def_32;
set G = ^^^(I * (S -firstChar)),^^^(((I,u) -TermEval) . mm),(S -subTerms)____;
A2: dom (S -subTerms) = AllTermsOf S by FUNCT_2:def_1;
^^^(I * (S -firstChar)),^^^(((I,u) -TermEval) . mm),(S -subTerms)____ is Function of (AllTermsOf S),U by Lm4;
then A3: dom ^^^(I * (S -firstChar)),^^^(((I,u) -TermEval) . mm),(S -subTerms)____ = AllTermsOf S by FUNCT_2:def_1;
A4: (((I,u) -TermEval) . (mm + 1)) . t = ^^^(I * (S -firstChar)),^^^(((I,u) -TermEval) . mm),(S -subTerms)____ . t by Def8
.= ((I * (S -firstChar)) . t) . (^^^(((I,u) -TermEval) . mm),(S -subTerms)__ . t) by A1, Def7, A3
.= ((I * (S -firstChar)) . t) . ((((I,u) -TermEval) . mm) * ((S -subTerms) . tt)) by Def6, A2
.= ((I * (S -firstChar)) . t) . ((((I,u) -TermEval) . mm) * (SubTerms t)) by FOMODEL1:def_39
.= (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) by A1, FUNCT_1:12 ;
hence (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) ; ::_thesis: ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} )
assume t is 0 -termal ; ::_thesis: (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {}
then reconsider tt = t as 0 -termal string of S ;
reconsider s = (S -firstChar) . tt as literal Element of S ;
reconsider v = I . s as Interpreter of s,U ;
(((I,u) -TermEval) . (mm + 1)) . t = v . {} by A4;
hence (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ; ::_thesis: verum
end;
Lm6: for S being Language
for U being non empty set
for I being b1,b2 -interpreter-like Function
for u1, u2 being Element of U
for m being Nat
for t being b6 -termal string of S
for n being Nat holds (((I,u1) -TermEval) . (m + 1)) . t = (((I,u2) -TermEval) . ((m + 1) + n)) . t
proof
let S be Language; ::_thesis: for U being non empty set
for I being S,b1 -interpreter-like Function
for u1, u2 being Element of U
for m being Nat
for t being b5 -termal string of S
for n being Nat holds (((I,u1) -TermEval) . (m + 1)) . t = (((I,u2) -TermEval) . ((m + 1) + n)) . t
let U be non empty set ; ::_thesis: for I being S,U -interpreter-like Function
for u1, u2 being Element of U
for m being Nat
for t being b4 -termal string of S
for n being Nat holds (((I,u1) -TermEval) . (m + 1)) . t = (((I,u2) -TermEval) . ((m + 1) + n)) . t
let I be S,U -interpreter-like Function; ::_thesis: for u1, u2 being Element of U
for m being Nat
for t being b3 -termal string of S
for n being Nat holds (((I,u1) -TermEval) . (m + 1)) . t = (((I,u2) -TermEval) . ((m + 1) + n)) . t
let u1, u2 be Element of U; ::_thesis: for m being Nat
for t being b1 -termal string of S
for n being Nat holds (((I,u1) -TermEval) . (m + 1)) . t = (((I,u2) -TermEval) . ((m + 1) + n)) . t
set F = S -firstChar ;
set ST = S -subTerms ;
set A = AllTermsOf S;
set T = S -termsOfMaxDepth ;
set U1 = (I,u1) -TermEval ;
set U2 = (I,u2) -TermEval ;
set SS = AllSymbolsOf S;
defpred S1[ Nat] means for t being $1 -termal string of S
for n being Nat holds (((I,u1) -TermEval) . ($1 + 1)) . t = (((I,u2) -TermEval) . (($1 + 1) + n)) . t;
A1: S1[ 0 ]
proof
let t be 0 -termal string of S; ::_thesis: for n being Nat holds (((I,u1) -TermEval) . (0 + 1)) . t = (((I,u2) -TermEval) . ((0 + 1) + n)) . t
let n be Nat; ::_thesis: (((I,u1) -TermEval) . (0 + 1)) . t = (((I,u2) -TermEval) . ((0 + 1) + n)) . t
reconsider nn = n as Element of NAT by ORDINAL1:def_12;
(((I,u1) -TermEval) . (0 + 1)) . t = (I . ((S -firstChar) . t)) . {} by Lm5
.= (((I,u2) -TermEval) . ((0 + 1) + nn)) . t by Lm5 ;
hence (((I,u1) -TermEval) . (0 + 1)) . t = (((I,u2) -TermEval) . ((0 + 1) + n)) . t ; ::_thesis: verum
end;
A2: for k being Element of NAT st S1[k] holds
S1[k + 1]
proof
let k be Element of NAT ; ::_thesis: ( S1[k] implies S1[k + 1] )
assume A3: S1[k] ; ::_thesis: S1[k + 1]
reconsider K = k + 1 as Element of NAT ;
let t be k + 1 -termal string of S; ::_thesis: for n being Nat holds (((I,u1) -TermEval) . ((k + 1) + 1)) . t = (((I,u2) -TermEval) . (((k + 1) + 1) + n)) . t
let n be Nat; ::_thesis: (((I,u1) -TermEval) . ((k + 1) + 1)) . t = (((I,u2) -TermEval) . (((k + 1) + 1) + n)) . t
reconsider KK = K + n as Element of NAT ;
reconsider tt = t as termal string of S ;
A4: (((I,u1) -TermEval) . K) * (SubTerms t) = (((I,u2) -TermEval) . (K + n)) * (SubTerms t)
proof
set V = SubTerms t;
set l = abs (ar t);
reconsider VV = SubTerms t as abs (ar t) -element FinSequence of AllTermsOf S by FINSEQ_1:def_11;
reconsider VVV = SubTerms t as (S -termsOfMaxDepth) . k -valued Function ;
len VV = abs (ar t) by CARD_1:def_7;
then A5: dom VVV = Seg (abs (ar t)) by FINSEQ_1:def_3;
reconsider U1K = ((I,u1) -TermEval) . K, U2K = ((I,u2) -TermEval) . KK as Function of (AllTermsOf S),U ;
reconsider p = U1K * VV, q = U2K * VV as abs (ar t) -element FinSequence of U ;
( len p = abs (ar t) & len q = abs (ar t) ) by CARD_1:def_7;
then A6: ( dom p = Seg (abs (ar t)) & dom q = Seg (abs (ar t)) ) by FINSEQ_1:def_3;
for i being set st i in Seg (abs (ar t)) holds
p . i = q . i
proof
let i be set ; ::_thesis: ( i in Seg (abs (ar t)) implies p . i = q . i )
assume A7: i in Seg (abs (ar t)) ; ::_thesis: p . i = q . i
then ( VVV . i in ((AllSymbolsOf S) *) \ {{}} & VVV . i in (S -termsOfMaxDepth) . k ) by A5, FUNCT_1:102;
then reconsider t1 = VVV . i as k -termal string of S by FOMODEL1:def_33;
p . i = (((I,u1) -TermEval) . K) . t1 by A7, A6, FUNCT_1:12
.= U2K . (VVV . i) by A3
.= q . i by A7, A6, FUNCT_1:12 ;
hence p . i = q . i ; ::_thesis: verum
end;
hence (((I,u1) -TermEval) . K) * (SubTerms t) = (((I,u2) -TermEval) . (K + n)) * (SubTerms t) by A6, FUNCT_1:2; ::_thesis: verum
end;
(((I,u1) -TermEval) . (K + 1)) . tt = (I . ((S -firstChar) . tt)) . ((((I,u2) -TermEval) . KK) * (SubTerms t)) by Lm5, A4
.= (((I,u2) -TermEval) . (KK + 1)) . tt by Lm5 ;
hence (((I,u1) -TermEval) . ((k + 1) + 1)) . t = (((I,u2) -TermEval) . (((k + 1) + 1) + n)) . t ; ::_thesis: verum
end;
A8: for mm being Element of NAT holds S1[mm] from NAT_1:sch_1(A1, A2);
now__::_thesis:_for_m_being_Nat_holds_S1[m]
let m be Nat; ::_thesis: S1[m]
reconsider mm = m as Element of NAT by ORDINAL1:def_12;
S1[mm] by A8;
hence S1[m] ; ::_thesis: verum
end;
hence for m being Nat
for t being b1 -termal string of S
for n being Nat holds (((I,u1) -TermEval) . (m + 1)) . t = (((I,u2) -TermEval) . ((m + 1) + n)) . t ; ::_thesis: verum
end;
definition
let S be Language;
let U be non empty set ;
let I be S,U -interpreter-like Function;
let t be Element of AllTermsOf S;
funcI -TermEval t -> Element of U means :Def9: :: FOMODEL2:def 9
for u1 being Element of U
for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds
it = (((I,u1) -TermEval) . (mm + 1)) . t;
existence
ex b1 being Element of U st
for u1 being Element of U
for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds
b1 = (((I,u1) -TermEval) . (mm + 1)) . t
proof
set T = S -termsOfMaxDepth ;
set A = AllTermsOf S;
consider mm being Element of NAT such that
A1: t in (S -termsOfMaxDepth) . mm by FOMODEL1:5;
set u1 = the Element of U;
reconsider t0 = t as string of S ;
reconsider t1 = t0 as mm -termal string of S by A1, FOMODEL1:def_33;
reconsider mmm = mm + 1 as Element of NAT ;
reconsider f1 = ((I, the Element of U) -TermEval) . mmm as Function of (AllTermsOf S),U ;
reconsider IT = f1 . t as Element of U ;
take IT ; ::_thesis: for u1 being Element of U
for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds
IT = (((I,u1) -TermEval) . (mm + 1)) . t
let u2 be Element of U; ::_thesis: for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds
IT = (((I,u2) -TermEval) . (mm + 1)) . t
let nn be Element of NAT ; ::_thesis: ( t in (S -termsOfMaxDepth) . nn implies IT = (((I,u2) -TermEval) . (nn + 1)) . t )
assume t in (S -termsOfMaxDepth) . nn ; ::_thesis: IT = (((I,u2) -TermEval) . (nn + 1)) . t
then reconsider t2 = t0 as nn -termal string of S by FOMODEL1:def_33;
IT = (((I,u2) -TermEval) . ((mm + 1) + nn)) . t1 by Lm6
.= (((I,u2) -TermEval) . ((nn + 1) + mm)) . t2
.= (((I,u2) -TermEval) . (nn + 1)) . t2 by Lm6 ;
hence IT = (((I,u2) -TermEval) . (nn + 1)) . t ; ::_thesis: verum
end;
uniqueness
for b1, b2 being Element of U st ( for u1 being Element of U
for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds
b1 = (((I,u1) -TermEval) . (mm + 1)) . t ) & ( for u1 being Element of U
for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds
b2 = (((I,u1) -TermEval) . (mm + 1)) . t ) holds
b1 = b2
proof
set T = S -termsOfMaxDepth ;
set A = AllTermsOf S;
let IT1, IT2 be Element of U; ::_thesis: ( ( for u1 being Element of U
for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds
IT1 = (((I,u1) -TermEval) . (mm + 1)) . t ) & ( for u1 being Element of U
for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds
IT2 = (((I,u1) -TermEval) . (mm + 1)) . t ) implies IT1 = IT2 )
assume A2: for u1 being Element of U
for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds
IT1 = (((I,u1) -TermEval) . (mm + 1)) . t ; ::_thesis: ( ex u1 being Element of U ex mm being Element of NAT st
( t in (S -termsOfMaxDepth) . mm & not IT2 = (((I,u1) -TermEval) . (mm + 1)) . t ) or IT1 = IT2 )
assume A3: for u2 being Element of U
for nn being Element of NAT st t in (S -termsOfMaxDepth) . nn holds
IT2 = (((I,u2) -TermEval) . (nn + 1)) . t ; ::_thesis: IT1 = IT2
consider mm being Element of NAT such that
A4: t in (S -termsOfMaxDepth) . mm by FOMODEL1:5;
set u = the Element of U;
IT1 = (((I, the Element of U) -TermEval) . (mm + 1)) . t by A2, A4
.= IT2 by A3, A4 ;
hence IT1 = IT2 ; ::_thesis: verum
end;
end;
:: deftheorem Def9 defines -TermEval FOMODEL2:def_9_:_
for S being Language
for U being non empty set
for I being b1,b2 -interpreter-like Function
for t being Element of AllTermsOf S
for b5 being Element of U holds
( b5 = I -TermEval t iff for u1 being Element of U
for mm being Element of NAT st t in (S -termsOfMaxDepth) . mm holds
b5 = (((I,u1) -TermEval) . (mm + 1)) . t );
definition
let S be Language;
let U be non empty set ;
let I be S,U -interpreter-like Function;
funcI -TermEval -> Function of (AllTermsOf S),U means :Def10: :: FOMODEL2:def 10
for t being Element of AllTermsOf S holds it . t = I -TermEval t;
existence
ex b1 being Function of (AllTermsOf S),U st
for t being Element of AllTermsOf S holds b1 . t = I -TermEval t
proof
set A = AllTermsOf S;
deffunc H1( Element of AllTermsOf S) -> Element of U = I -TermEval $1;
consider f being Function of (AllTermsOf S),U such that
A1: for t being Element of AllTermsOf S holds f . t = H1(t) from FUNCT_2:sch_4();
take f ; ::_thesis: for t being Element of AllTermsOf S holds f . t = I -TermEval t
thus for t being Element of AllTermsOf S holds f . t = I -TermEval t by A1; ::_thesis: verum
end;
uniqueness
for b1, b2 being Function of (AllTermsOf S),U st ( for t being Element of AllTermsOf S holds b1 . t = I -TermEval t ) & ( for t being Element of AllTermsOf S holds b2 . t = I -TermEval t ) holds
b1 = b2
proof
set A = AllTermsOf S;
let IT1, IT2 be Function of (AllTermsOf S),U; ::_thesis: ( ( for t being Element of AllTermsOf S holds IT1 . t = I -TermEval t ) & ( for t being Element of AllTermsOf S holds IT2 . t = I -TermEval t ) implies IT1 = IT2 )
assume A2: for t being Element of AllTermsOf S holds IT1 . t = I -TermEval t ; ::_thesis: ( ex t being Element of AllTermsOf S st not IT2 . t = I -TermEval t or IT1 = IT2 )
assume A3: for t being Element of AllTermsOf S holds IT2 . t = I -TermEval t ; ::_thesis: IT1 = IT2
now__::_thesis:_for_t_being_Element_of_AllTermsOf_S_holds_IT1_._t_=_IT2_._t
let t be Element of AllTermsOf S; ::_thesis: IT1 . t = IT2 . t
thus IT1 . t = I -TermEval t by A2
.= IT2 . t by A3 ; ::_thesis: verum
end;
hence IT1 = IT2 by FUNCT_2:63; ::_thesis: verum
end;
end;
:: deftheorem Def10 defines -TermEval FOMODEL2:def_10_:_
for S being Language
for U being non empty set
for I being b1,b2 -interpreter-like Function
for b4 being Function of (AllTermsOf S),U holds
( b4 = I -TermEval iff for t being Element of AllTermsOf S holds b4 . t = I -TermEval t );
definition
let S be Language;
let U be non empty set ;
let I be S,U -interpreter-like Function;
funcI === -> Function equals :: FOMODEL2:def 11
I +* ((TheEqSymbOf S) .--> (U -deltaInterpreter));
coherence
I +* ((TheEqSymbOf S) .--> (U -deltaInterpreter)) is Function ;
end;
:: deftheorem defines === FOMODEL2:def_11_:_
for S being Language
for U being non empty set
for I being b1,b2 -interpreter-like Function holds I === = I +* ((TheEqSymbOf S) .--> (U -deltaInterpreter));
definition
let S be Language;
let U be non empty set ;
let I be S,U -interpreter-like Function;
let x be set ;
attrx is I -extension means :Def12: :: FOMODEL2:def 12
x = I === ;
end;
:: deftheorem Def12 defines -extension FOMODEL2:def_12_:_
for S being Language
for U being non empty set
for I being b1,b2 -interpreter-like Function
for x being set holds
( x is I -extension iff x = I === );
registration
let S be Language;
let U be non empty set ;
let I be S,U -interpreter-like Function;
clusterI === -> I -extension for Function;
coherence
for b1 being Function st b1 = I === holds
b1 is I -extension by Def12;
clusterI -extension -> Function-like for set ;
coherence
for b1 being set st b1 is I -extension holds
b1 is Function-like
proof
let x be set ; ::_thesis: ( x is I -extension implies x is Function-like )
assume x is I -extension ; ::_thesis: x is Function-like
then x = I === by Def12;
hence x is Function-like ; ::_thesis: verum
end;
end;
registration
let S be Language;
let U be non empty set ;
let I be S,U -interpreter-like Function;
cluster Relation-like Function-like I -extension for set ;
existence
ex b1 being Function st b1 is I -extension
proof
take f = I === ; ::_thesis: f is I -extension
thus f is I -extension ; ::_thesis: verum
end;
end;
registration
let S be Language;
let U be non empty set ;
let I be S,U -interpreter-like Function;
clusterI === -> S,U -interpreter-like ;
coherence
I === is S,U -interpreter-like
proof
set EQ = TheEqSymbOf S;
set g = (TheEqSymbOf S) .--> (U -deltaInterpreter);
set O = OwnSymbolsOf S;
set A = AtomicFormulaSymbolsOf S;
now__::_thesis:_for_s_being_own_Element_of_S_holds_(I_===)_._s_is_Interpreter_of_s,U
let s be own Element of S; ::_thesis: (I ===) . s is Interpreter of s,U
s in OwnSymbolsOf S by FOMODEL1:def_19;
then not s in (AtomicFormulaSymbolsOf S) \ (OwnSymbolsOf S) by XBOOLE_0:def_5;
then not s in {(TheEqSymbOf S)} by FOMODEL1:9;
then not s in dom ((TheEqSymbOf S) .--> (U -deltaInterpreter)) ;
then (I ===) . s = I . s by FUNCT_4:11;
hence (I ===) . s is Interpreter of s,U ; ::_thesis: verum
end;
hence I === is Interpreter of S,U by Def3; :: according to FOMODEL2:def_4 ::_thesis: I === is Function-yielding
thus I === is Function-yielding ; ::_thesis: verum
end;
end;
definition
let S be Language;
let U be non empty set ;
let I be S,U -interpreter-like Function;
let f be I -extension Function;
let s be ofAtomicFormula Element of S;
:: original: .
redefine funcf . s -> Interpreter of s,U;
coherence
f . s is Interpreter of s,U
proof
set a = the adicity of S;
set EQ = TheEqSymbOf S;
set d = U -deltaInterpreter ;
set g = (TheEqSymbOf S) .--> (U -deltaInterpreter);
set n = ar s;
set A = AtomicFormulaSymbolsOf S;
set O = OwnSymbolsOf S;
reconsider sss = s as Element of AtomicFormulaSymbolsOf S by FOMODEL1:def_20;
reconsider EQQ = TheEqSymbOf S as ofAtomicFormula Element of S ;
ar EQQ = - 2 by FOMODEL1:def_23;
then A1: abs (ar EQQ) = - (- 2) by ABSVALUE:def_1
.= 2 ;
A2: f = I === by Def12;
percases ( s is own or not s is own ) ;
suppose s is own ; ::_thesis: f . s is Interpreter of s,U
then reconsider ss = s as own Element of S ;
(I ===) . ss is Interpreter of s,U ;
hence f . s is Interpreter of s,U by Def12; ::_thesis: verum
end;
suppose not s is own ; ::_thesis: f . s is Interpreter of s,U
then not sss in OwnSymbolsOf S by FOMODEL1:def_19;
then sss in (AtomicFormulaSymbolsOf S) \ (OwnSymbolsOf S) by XBOOLE_0:def_5;
then sss in {(TheEqSymbOf S)} by FOMODEL1:9;
then s = TheEqSymbOf S by TARSKI:def_1;
then ( f . s is Function of ((abs (ar s)) -tuples_on U),BOOLEAN & s is relational ) by A1, A2, FUNCT_7:94;
hence f . s is Interpreter of s,U by Def2; ::_thesis: verum
end;
end;
end;
end;
definition
let S be Language;
let U be non empty set ;
let I be S,U -interpreter-like Function;
let phi be 0wff string of S;
funcI -AtomicEval phi -> set equals :: FOMODEL2:def 13
((I ===) . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi));
coherence
((I ===) . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)) is set ;
end;
:: deftheorem defines -AtomicEval FOMODEL2:def_13_:_
for S being Language
for U being non empty set
for I being b1,b2 -interpreter-like Function
for phi being 0wff string of S holds I -AtomicEval phi = ((I ===) . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi));
definition
let S be Language;
let U be non empty set ;
let I be S,U -interpreter-like Function;
let phi be 0wff string of S;
:: original: -AtomicEval
redefine funcI -AtomicEval phi -> Element of BOOLEAN ;
coherence
I -AtomicEval phi is Element of BOOLEAN
proof
set F = S -firstChar ;
set i = I -TermEval ;
set A = AllTermsOf S;
reconsider s = (S -firstChar) . phi as relational Element of S ;
set n = abs (ar s);
reconsider f = (I ===) . s as Interpreter of s,U ;
reconsider ff = f as Function of ((abs (ar s)) -tuples_on U),BOOLEAN by Def2;
reconsider V = SubTerms phi as abs (ar s) -element FinSequence of AllTermsOf S by FINSEQ_1:def_11;
reconsider iV = (I -TermEval) * V as abs (ar s) -element FinSequence of U ;
len iV = abs (ar s) by CARD_1:def_7;
then reconsider iVV = iV as Element of (abs (ar s)) -tuples_on U by FINSEQ_2:133;
ff . iVV is Element of BOOLEAN ;
hence I -AtomicEval phi is Element of BOOLEAN ; ::_thesis: verum
end;
end;
registration
let S be Language;
let U be non empty set ;
let I be S,U -interpreter-like Function;
clusterI | (OwnSymbolsOf S) -> PFuncs ((U *),(U \/ BOOLEAN)) -valued for Function;
coherence
for b1 being Function st b1 = I | (OwnSymbolsOf S) holds
b1 is PFuncs ((U *),(U \/ BOOLEAN)) -valued
proof
set O = OwnSymbolsOf S;
set f = I | (OwnSymbolsOf S);
set D = dom (I | (OwnSymbolsOf S));
set C = U \/ BOOLEAN;
now__::_thesis:_for_y_being_set_st_y_in_rng_(I_|_(OwnSymbolsOf_S))_holds_
y_in_PFuncs_((U_*),(U_\/_BOOLEAN))
let y be set ; ::_thesis: ( y in rng (I | (OwnSymbolsOf S)) implies y in PFuncs ((U *),(U \/ BOOLEAN)) )
assume y in rng (I | (OwnSymbolsOf S)) ; ::_thesis: y in PFuncs ((U *),(U \/ BOOLEAN))
then y in (I | (OwnSymbolsOf S)) .: (dom (I | (OwnSymbolsOf S))) by RELAT_1:113;
then consider x being set such that
A1: ( x in dom (I | (OwnSymbolsOf S)) & x in dom (I | (OwnSymbolsOf S)) & y = (I | (OwnSymbolsOf S)) . x ) by FUNCT_1:def_6;
x in OwnSymbolsOf S by A1;
then reconsider s = x as own Element of S by FOMODEL1:def_19;
reconsider n = abs (ar s) as Element of NAT ;
reconsider DD = n -tuples_on U as Subset of (U *) by FINSEQ_2:134;
U \/ BOOLEAN c= U \/ BOOLEAN ;
then reconsider CC = U \/ BOOLEAN as Subset of (U \/ BOOLEAN) ;
(I | (OwnSymbolsOf S)) . x = I . s by A1, FUNCT_1:49;
then reconsider g = (I | (OwnSymbolsOf S)) . x as Function of DD,CC ;
[:DD,CC:] c= [:(U *),(U \/ BOOLEAN):] ;
then reconsider gg = g as Relation of (U *),(U \/ BOOLEAN) by XBOOLE_1:1;
gg is PartFunc of (U *),(U \/ BOOLEAN) ;
hence y in PFuncs ((U *),(U \/ BOOLEAN)) by A1, PARTFUN1:45; ::_thesis: verum
end;
then rng (I | (OwnSymbolsOf S)) c= PFuncs ((U *),(U \/ BOOLEAN)) by TARSKI:def_3;
hence for b1 being Function st b1 = I | (OwnSymbolsOf S) holds
b1 is PFuncs ((U *),(U \/ BOOLEAN)) -valued by RELAT_1:def_19; ::_thesis: verum
end;
clusterI | (OwnSymbolsOf S) -> S,U -interpreter-like for Function;
coherence
for b1 being Function st b1 = I | (OwnSymbolsOf S) holds
b1 is S,U -interpreter-like
proof
set O = OwnSymbolsOf S;
set f = I | (OwnSymbolsOf S);
set D = dom (I | (OwnSymbolsOf S));
set C = U \/ BOOLEAN;
now__::_thesis:_for_s_being_own_Element_of_S_holds_(I_|_(OwnSymbolsOf_S))_._s_is_Interpreter_of_s,U
let s be own Element of S; ::_thesis: (I | (OwnSymbolsOf S)) . s is Interpreter of s,U
s in OwnSymbolsOf S by FOMODEL1:def_19;
then (I | (OwnSymbolsOf S)) . s = I . s by FUNCT_1:49;
hence (I | (OwnSymbolsOf S)) . s is Interpreter of s,U ; ::_thesis: verum
end;
then I | (OwnSymbolsOf S) is Interpreter of S,U by Def3;
hence for b1 being Function st b1 = I | (OwnSymbolsOf S) holds
b1 is S,U -interpreter-like by Def4; ::_thesis: verum
end;
end;
registration
let S be Language;
let U be non empty set ;
let I be S,U -interpreter-like Function;
clusterI | (OwnSymbolsOf S) -> OwnSymbolsOf S -defined total for OwnSymbolsOf S -defined Relation;
coherence
for b1 being OwnSymbolsOf S -defined Relation st b1 = I | (OwnSymbolsOf S) holds
b1 is total
proof
set O = OwnSymbolsOf S;
set f = I | (OwnSymbolsOf S);
set D = dom (I | (OwnSymbolsOf S));
set C = U \/ BOOLEAN;
( OwnSymbolsOf S c= dom (I | (OwnSymbolsOf S)) & dom (I | (OwnSymbolsOf S)) c= OwnSymbolsOf S ) by Lm2;
then dom (I | (OwnSymbolsOf S)) = OwnSymbolsOf S by XBOOLE_0:def_10;
hence for b1 being OwnSymbolsOf S -defined Relation st b1 = I | (OwnSymbolsOf S) holds
b1 is total by PARTFUN1:def_2; ::_thesis: verum
end;
end;
definition
let S be Language;
let U be non empty set ;
funcU -InterpretersOf S -> set equals :: FOMODEL2:def 14
{ f where f is Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) : f is S,U -interpreter-like } ;
coherence
{ f where f is Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) : f is S,U -interpreter-like } is set ;
end;
:: deftheorem defines -InterpretersOf FOMODEL2:def_14_:_
for S being Language
for U being non empty set holds U -InterpretersOf S = { f where f is Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) : f is S,U -interpreter-like } ;
definition
let S be Language;
let U be non empty set ;
:: original: -InterpretersOf
redefine funcU -InterpretersOf S -> Subset of (Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))));
coherence
U -InterpretersOf S is Subset of (Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))))
proof
set I = U -InterpretersOf S;
set O = OwnSymbolsOf S;
set C = PFuncs ((U *),(U \/ BOOLEAN));
defpred S1[ Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN))))] means $1 is S,U -interpreter-like ;
{ f where f is Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) : S1[f] } is Subset of (Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN))))) from DOMAIN_1:sch_7();
hence U -InterpretersOf S is Subset of (Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN))))) ; ::_thesis: verum
end;
end;
registration
let S be Language;
let U be non empty set ;
clusterU -InterpretersOf S -> non empty ;
coherence
not U -InterpretersOf S is empty
proof
set I = the S,U -interpreter-like Function;
set O = OwnSymbolsOf S;
set f = the S,U -interpreter-like Function | (OwnSymbolsOf S);
set C = PFuncs ((U *),(U \/ BOOLEAN));
( dom ( the S,U -interpreter-like Function | (OwnSymbolsOf S)) c= OwnSymbolsOf S & rng ( the S,U -interpreter-like Function | (OwnSymbolsOf S)) c= PFuncs ((U *),(U \/ BOOLEAN)) ) ;
then reconsider ff = the S,U -interpreter-like Function | (OwnSymbolsOf S) as Relation of (OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN))) by RELSET_1:4;
reconsider fff = ff as Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) by FUNCT_2:8;
ex g being Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) st
( the S,U -interpreter-like Function | (OwnSymbolsOf S) = g & g is S,U -interpreter-like )
proof
take fff ; ::_thesis: ( the S,U -interpreter-like Function | (OwnSymbolsOf S) = fff & fff is S,U -interpreter-like )
thus ( the S,U -interpreter-like Function | (OwnSymbolsOf S) = fff & fff is S,U -interpreter-like ) ; ::_thesis: verum
end;
then the S,U -interpreter-like Function | (OwnSymbolsOf S) in U -InterpretersOf S ;
hence not U -InterpretersOf S is empty ; ::_thesis: verum
end;
end;
registration
let S be Language;
let U be non empty set ;
cluster -> S,U -interpreter-like for Element of U -InterpretersOf S;
coherence
for b1 being Element of U -InterpretersOf S holds b1 is S,U -interpreter-like
proof
set SUI = U -InterpretersOf S;
set O = OwnSymbolsOf S;
set C = PFuncs ((U *),(U \/ BOOLEAN));
let x be Element of U -InterpretersOf S; ::_thesis: x is S,U -interpreter-like
x in U -InterpretersOf S ;
then consider f being Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) such that
A1: ( x = f & f is S,U -interpreter-like ) ;
thus x is S,U -interpreter-like by A1; ::_thesis: verum
end;
end;
definition
let S be Language;
let U be non empty set ;
funcS -TruthEval U -> Function of [:(U -InterpretersOf S),(AtomicFormulasOf S):],BOOLEAN means :Def15: :: FOMODEL2:def 15
for I being Element of U -InterpretersOf S
for phi being Element of AtomicFormulasOf S holds it . (I,phi) = I -AtomicEval phi;
existence
ex b1 being Function of [:(U -InterpretersOf S),(AtomicFormulasOf S):],BOOLEAN st
for I being Element of U -InterpretersOf S
for phi being Element of AtomicFormulasOf S holds b1 . (I,phi) = I -AtomicEval phi
proof
set II = U -InterpretersOf S;
set AF = AtomicFormulasOf S;
deffunc H1( Element of U -InterpretersOf S, Element of AtomicFormulasOf S) -> Element of BOOLEAN = $1 -AtomicEval $2;
consider f being Function of [:(U -InterpretersOf S),(AtomicFormulasOf S):],BOOLEAN such that
A1: for I being Element of U -InterpretersOf S
for phi being Element of AtomicFormulasOf S holds f . (I,phi) = H1(I,phi) from BINOP_1:sch_4();
take f ; ::_thesis: for I being Element of U -InterpretersOf S
for phi being Element of AtomicFormulasOf S holds f . (I,phi) = I -AtomicEval phi
thus for I being Element of U -InterpretersOf S
for phi being Element of AtomicFormulasOf S holds f . (I,phi) = I -AtomicEval phi by A1; ::_thesis: verum
end;
uniqueness
for b1, b2 being Function of [:(U -InterpretersOf S),(AtomicFormulasOf S):],BOOLEAN st ( for I being Element of U -InterpretersOf S
for phi being Element of AtomicFormulasOf S holds b1 . (I,phi) = I -AtomicEval phi ) & ( for I being Element of U -InterpretersOf S
for phi being Element of AtomicFormulasOf S holds b2 . (I,phi) = I -AtomicEval phi ) holds
b1 = b2
proof
set II = U -InterpretersOf S;
set AF = AtomicFormulasOf S;
set B = BOOLEAN ;
let IT1, IT2 be Function of [:(U -InterpretersOf S),(AtomicFormulasOf S):],BOOLEAN; ::_thesis: ( ( for I being Element of U -InterpretersOf S
for phi being Element of AtomicFormulasOf S holds IT1 . (I,phi) = I -AtomicEval phi ) & ( for I being Element of U -InterpretersOf S
for phi being Element of AtomicFormulasOf S holds IT2 . (I,phi) = I -AtomicEval phi ) implies IT1 = IT2 )
deffunc H1( Element of U -InterpretersOf S, Element of AtomicFormulasOf S) -> Element of BOOLEAN = $1 -AtomicEval $2;
assume that
A2: for I being Element of U -InterpretersOf S
for phi being Element of AtomicFormulasOf S holds IT1 . (I,phi) = H1(I,phi) and
A3: for I being Element of U -InterpretersOf S
for phi being Element of AtomicFormulasOf S holds IT2 . (I,phi) = H1(I,phi) ; ::_thesis: IT1 = IT2
now__::_thesis:_for_a_being_Element_of_U_-InterpretersOf_S
for_b_being_Element_of_AtomicFormulasOf_S_holds_IT1_._(a,b)_=_IT2_._(a,b)
let a be Element of U -InterpretersOf S; ::_thesis: for b being Element of AtomicFormulasOf S holds IT1 . (a,b) = IT2 . (a,b)
let b be Element of AtomicFormulasOf S; ::_thesis: IT1 . (a,b) = IT2 . (a,b)
thus IT1 . (a,b) = H1(a,b) by A2
.= IT2 . (a,b) by A3 ; ::_thesis: verum
end;
hence IT1 = IT2 by BINOP_1:2; ::_thesis: verum
end;
end;
:: deftheorem Def15 defines -TruthEval FOMODEL2:def_15_:_
for S being Language
for U being non empty set
for b3 being Function of [:(U -InterpretersOf S),(AtomicFormulasOf S):],BOOLEAN holds
( b3 = S -TruthEval U iff for I being Element of U -InterpretersOf S
for phi being Element of AtomicFormulasOf S holds b3 . (I,phi) = I -AtomicEval phi );
definition
let S be Language;
let U be non empty set ;
let I be Element of U -InterpretersOf S;
let f be PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN;
let phi be Element of ((AllSymbolsOf S) *) \ {{}};
funcf -ExFunctor (I,phi) -> Element of BOOLEAN equals :Def16: :: FOMODEL2:def 16
TRUE if ex u being Element of U ex v being literal Element of S st
( phi . 1 = v & f . (((v,u) ReassignIn I),(phi /^ 1)) = TRUE )
otherwise FALSE ;
coherence
( ( ex u being Element of U ex v being literal Element of S st
( phi . 1 = v & f . (((v,u) ReassignIn I),(phi /^ 1)) = TRUE ) implies TRUE is Element of BOOLEAN ) & ( ( for u being Element of U
for v being literal Element of S holds
( not phi . 1 = v or not f . (((v,u) ReassignIn I),(phi /^ 1)) = TRUE ) ) implies FALSE is Element of BOOLEAN ) ) ;
consistency
for b1 being Element of BOOLEAN holds verum ;
end;
:: deftheorem Def16 defines -ExFunctor FOMODEL2:def_16_:_
for S being Language
for U being non empty set
for I being Element of U -InterpretersOf S
for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN
for phi being Element of ((AllSymbolsOf S) *) \ {{}} holds
( ( ex u being Element of U ex v being literal Element of S st
( phi . 1 = v & f . (((v,u) ReassignIn I),(phi /^ 1)) = TRUE ) implies f -ExFunctor (I,phi) = TRUE ) & ( ( for u being Element of U
for v being literal Element of S holds
( not phi . 1 = v or not f . (((v,u) ReassignIn I),(phi /^ 1)) = TRUE ) ) implies f -ExFunctor (I,phi) = FALSE ) );
definition
let S be Language;
let U be non empty set ;
let g be Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN);
func ExIterator g -> PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN means :Def17: :: FOMODEL2:def 17
( ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom it iff ex v being literal Element of S ex w being string of S st
( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom it holds
it . (x,y) = g -ExFunctor (x,y) ) );
existence
ex b1 being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st
( ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom b1 iff ex v being literal Element of S ex w being string of S st
( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom b1 holds
b1 . (x,y) = g -ExFunctor (x,y) ) )
proof
set SS = AllSymbolsOf S;
set II = U -InterpretersOf S;
set Strings = ((AllSymbolsOf S) *) \ {{}};
deffunc H1( Element of U -InterpretersOf S, Element of ((AllSymbolsOf S) *) \ {{}}) -> Element of BOOLEAN = g -ExFunctor ($1,$2);
defpred S1[ Element of U -InterpretersOf S, Element of ((AllSymbolsOf S) *) \ {{}}] means ex v being literal Element of S ex w being string of S st
( [$1,w] in dom g & $2 = <*v*> ^ w );
A1: for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st S1[x,y] holds
H1(x,y) in BOOLEAN ;
consider f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN such that
A2: ( ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom f iff S1[x,y] ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom f holds
f . (x,y) = H1(x,y) ) ) from BINOP_1:sch_8(A1);
take f ; ::_thesis: ( ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom f iff ex v being literal Element of S ex w being string of S st
( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom f holds
f . (x,y) = g -ExFunctor (x,y) ) )
thus ( ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom f iff ex v being literal Element of S ex w being string of S st
( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom f holds
f . (x,y) = g -ExFunctor (x,y) ) ) by A2; ::_thesis: verum
end;
uniqueness
for b1, b2 being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom b1 iff ex v being literal Element of S ex w being string of S st
( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom b1 holds
b1 . (x,y) = g -ExFunctor (x,y) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom b2 iff ex v being literal Element of S ex w being string of S st
( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom b2 holds
b2 . (x,y) = g -ExFunctor (x,y) ) holds
b1 = b2
proof
set SS = AllSymbolsOf S;
set II = U -InterpretersOf S;
set Strings = ((AllSymbolsOf S) *) \ {{}};
set D = [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):];
let IT1, IT2 be PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN; ::_thesis: ( ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom IT1 iff ex v being literal Element of S ex w being string of S st
( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom IT1 holds
IT1 . (x,y) = g -ExFunctor (x,y) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom IT2 iff ex v being literal Element of S ex w being string of S st
( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom IT2 holds
IT2 . (x,y) = g -ExFunctor (x,y) ) implies IT1 = IT2 )
defpred S1[ Element of U -InterpretersOf S, Element of ((AllSymbolsOf S) *) \ {{}}] means ex v being literal Element of S ex w being string of S st
( [$1,w] in dom g & $2 = <*v*> ^ w );
assume that
A3: for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom IT1 iff S1[x,y] ) and
A4: for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom IT1 holds
IT1 . (x,y) = g -ExFunctor (x,y) ; ::_thesis: ( ex x being Element of U -InterpretersOf S ex y being Element of ((AllSymbolsOf S) *) \ {{}} st
( ( [x,y] in dom IT2 implies ex v being literal Element of S ex w being string of S st
( [x,w] in dom g & y = <*v*> ^ w ) ) implies ( ex v being literal Element of S ex w being string of S st
( [x,w] in dom g & y = <*v*> ^ w ) & not [x,y] in dom IT2 ) ) or ex x being Element of U -InterpretersOf S ex y being Element of ((AllSymbolsOf S) *) \ {{}} st
( [x,y] in dom IT2 & not IT2 . (x,y) = g -ExFunctor (x,y) ) or IT1 = IT2 )
assume that
A5: for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom IT2 iff S1[x,y] ) and
A6: for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom IT2 holds
IT2 . (x,y) = g -ExFunctor (x,y) ; ::_thesis: IT1 = IT2
now__::_thesis:_for_x_being_set_st_x_in_dom_IT1_holds_
x_in_dom_IT2
let x be set ; ::_thesis: ( x in dom IT1 implies x in dom IT2 )
assume A7: x in dom IT1 ; ::_thesis: x in dom IT2
then reconsider xx = x as Element of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ;
consider x1, x2 being set such that
A8: ( x1 in U -InterpretersOf S & x2 in ((AllSymbolsOf S) *) \ {{}} & xx = [x1,x2] ) by ZFMISC_1:def_2;
reconsider I = x1 as Element of U -InterpretersOf S by A8;
reconsider phi = x2 as Element of ((AllSymbolsOf S) *) \ {{}} by A8;
S1[I,phi] by A3, A7, A8;
hence x in dom IT2 by A5, A8; ::_thesis: verum
end;
then A9: dom IT1 c= dom IT2 by TARSKI:def_3;
now__::_thesis:_for_x_being_set_st_x_in_dom_IT2_holds_
x_in_dom_IT1
let x be set ; ::_thesis: ( x in dom IT2 implies x in dom IT1 )
assume A10: x in dom IT2 ; ::_thesis: x in dom IT1
then reconsider xx = x as Element of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ;
consider x1, x2 being set such that
A11: ( x1 in U -InterpretersOf S & x2 in ((AllSymbolsOf S) *) \ {{}} & xx = [x1,x2] ) by ZFMISC_1:def_2;
reconsider I = x1 as Element of U -InterpretersOf S by A11;
reconsider phi = x2 as Element of ((AllSymbolsOf S) *) \ {{}} by A11;
S1[I,phi] by A5, A10, A11;
hence x in dom IT1 by A3, A11; ::_thesis: verum
end;
then dom IT2 c= dom IT1 by TARSKI:def_3;
then A12: dom IT2 = dom IT1 by A9, XBOOLE_0:def_10;
now__::_thesis:_for_x_being_set_st_x_in_dom_IT1_holds_
IT1_._x_=_IT2_._x
let x be set ; ::_thesis: ( x in dom IT1 implies IT1 . x = IT2 . x )
assume A13: x in dom IT1 ; ::_thesis: IT1 . x = IT2 . x
then reconsider xx = x as Element of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ;
consider x1, x2 being set such that
A14: ( x1 in U -InterpretersOf S & x2 in ((AllSymbolsOf S) *) \ {{}} & xx = [x1,x2] ) by ZFMISC_1:def_2;
reconsider I = x1 as Element of U -InterpretersOf S by A14;
reconsider phi = x2 as Element of ((AllSymbolsOf S) *) \ {{}} by A14;
IT1 . x = IT1 . (I,phi) by A14
.= g -ExFunctor (I,phi) by A4, A14, A13
.= IT2 . (I,phi) by A6, A14, A13, A9
.= IT2 . x by A14 ;
hence IT1 . x = IT2 . x ; ::_thesis: verum
end;
hence IT1 = IT2 by A12, FUNCT_1:2; ::_thesis: verum
end;
end;
:: deftheorem Def17 defines ExIterator FOMODEL2:def_17_:_
for S being Language
for U being non empty set
for g being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)
for b4 being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN holds
( b4 = ExIterator g iff ( ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom b4 iff ex v being literal Element of S ex w being string of S st
( [x,w] in dom g & y = <*v*> ^ w ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom b4 holds
b4 . (x,y) = g -ExFunctor (x,y) ) ) );
definition
let S be Language;
let U be non empty set ;
let f be PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN;
let I be Element of U -InterpretersOf S;
let phi be Element of ((AllSymbolsOf S) *) \ {{}};
funcf -NorFunctor (I,phi) -> Element of BOOLEAN equals :Def18: :: FOMODEL2:def 18
TRUE if ex w1, w2 being Element of ((AllSymbolsOf S) *) \ {{}} st
( [I,w1] in dom f & f . (I,w1) = FALSE & f . (I,w2) = FALSE & phi = (<*(TheNorSymbOf S)*> ^ w1) ^ w2 )
otherwise FALSE ;
coherence
( ( ex w1, w2 being Element of ((AllSymbolsOf S) *) \ {{}} st
( [I,w1] in dom f & f . (I,w1) = FALSE & f . (I,w2) = FALSE & phi = (<*(TheNorSymbOf S)*> ^ w1) ^ w2 ) implies TRUE is Element of BOOLEAN ) & ( ( for w1, w2 being Element of ((AllSymbolsOf S) *) \ {{}} holds
( not [I,w1] in dom f or not f . (I,w1) = FALSE or not f . (I,w2) = FALSE or not phi = (<*(TheNorSymbOf S)*> ^ w1) ^ w2 ) ) implies FALSE is Element of BOOLEAN ) ) ;
consistency
for b1 being Element of BOOLEAN holds verum ;
end;
:: deftheorem Def18 defines -NorFunctor FOMODEL2:def_18_:_
for S being Language
for U being non empty set
for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN
for I being Element of U -InterpretersOf S
for phi being Element of ((AllSymbolsOf S) *) \ {{}} holds
( ( ex w1, w2 being Element of ((AllSymbolsOf S) *) \ {{}} st
( [I,w1] in dom f & f . (I,w1) = FALSE & f . (I,w2) = FALSE & phi = (<*(TheNorSymbOf S)*> ^ w1) ^ w2 ) implies f -NorFunctor (I,phi) = TRUE ) & ( ( for w1, w2 being Element of ((AllSymbolsOf S) *) \ {{}} holds
( not [I,w1] in dom f or not f . (I,w1) = FALSE or not f . (I,w2) = FALSE or not phi = (<*(TheNorSymbOf S)*> ^ w1) ^ w2 ) ) implies f -NorFunctor (I,phi) = FALSE ) );
definition
let S be Language;
let U be non empty set ;
let g be Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN);
func NorIterator g -> PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN means :Def19: :: FOMODEL2:def 19
( ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom it iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st
( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom it holds
it . (x,y) = g -NorFunctor (x,y) ) );
existence
ex b1 being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st
( ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom b1 iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st
( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom b1 holds
b1 . (x,y) = g -NorFunctor (x,y) ) )
proof
set SS = AllSymbolsOf S;
set II = U -InterpretersOf S;
set Strings = ((AllSymbolsOf S) *) \ {{}};
reconsider g = g as PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN ;
deffunc H1( Element of U -InterpretersOf S, Element of ((AllSymbolsOf S) *) \ {{}}) -> Element of BOOLEAN = g -NorFunctor ($1,$2);
defpred S1[ Element of U -InterpretersOf S, Element of ((AllSymbolsOf S) *) \ {{}}] means ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st
( $2 = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [$1,phi1] in dom g & [$1,phi2] in dom g );
A1: for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st S1[x,y] holds
H1(x,y) in BOOLEAN ;
consider f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN such that
A2: ( ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom f iff S1[x,y] ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom f holds
f . (x,y) = H1(x,y) ) ) from BINOP_1:sch_8(A1);
take f ; ::_thesis: ( ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom f iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st
( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom f holds
f . (x,y) = g -NorFunctor (x,y) ) )
thus ( ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom f iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st
( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom f holds
f . (x,y) = g -NorFunctor (x,y) ) ) by A2; ::_thesis: verum
end;
uniqueness
for b1, b2 being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom b1 iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st
( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom b1 holds
b1 . (x,y) = g -NorFunctor (x,y) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom b2 iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st
( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom b2 holds
b2 . (x,y) = g -NorFunctor (x,y) ) holds
b1 = b2
proof
set SS = AllSymbolsOf S;
set II = U -InterpretersOf S;
set Strings = ((AllSymbolsOf S) *) \ {{}};
set D = [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):];
deffunc H1( Element of U -InterpretersOf S, Element of ((AllSymbolsOf S) *) \ {{}}) -> Element of BOOLEAN = g -NorFunctor ($1,$2);
defpred S1[ Element of U -InterpretersOf S, Element of ((AllSymbolsOf S) *) \ {{}}] means ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st
( $2 = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [$1,phi1] in dom g & [$1,phi2] in dom g );
let IT1, IT2 be PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN; ::_thesis: ( ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom IT1 iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st
( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom IT1 holds
IT1 . (x,y) = g -NorFunctor (x,y) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom IT2 iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st
( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom IT2 holds
IT2 . (x,y) = g -NorFunctor (x,y) ) implies IT1 = IT2 )
assume that
A3: for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom IT1 iff S1[x,y] ) and
A4: for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom IT1 holds
IT1 . (x,y) = H1(x,y) ; ::_thesis: ( ex x being Element of U -InterpretersOf S ex y being Element of ((AllSymbolsOf S) *) \ {{}} st
( ( [x,y] in dom IT2 implies ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st
( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) implies ( ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st
( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) & not [x,y] in dom IT2 ) ) or ex x being Element of U -InterpretersOf S ex y being Element of ((AllSymbolsOf S) *) \ {{}} st
( [x,y] in dom IT2 & not IT2 . (x,y) = g -NorFunctor (x,y) ) or IT1 = IT2 )
assume that
A5: for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom IT2 iff S1[x,y] ) and
A6: for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom IT2 holds
IT2 . (x,y) = H1(x,y) ; ::_thesis: IT1 = IT2
now__::_thesis:_for_x_being_set_st_x_in_dom_IT1_holds_
x_in_dom_IT2
let x be set ; ::_thesis: ( x in dom IT1 implies x in dom IT2 )
assume A7: x in dom IT1 ; ::_thesis: x in dom IT2
then reconsider xx = x as Element of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ;
consider x1, x2 being set such that
A8: ( x1 in U -InterpretersOf S & x2 in ((AllSymbolsOf S) *) \ {{}} & xx = [x1,x2] ) by ZFMISC_1:def_2;
reconsider I = x1 as Element of U -InterpretersOf S by A8;
reconsider phi = x2 as Element of ((AllSymbolsOf S) *) \ {{}} by A8;
S1[I,phi] by A3, A7, A8;
hence x in dom IT2 by A5, A8; ::_thesis: verum
end;
then A9: dom IT1 c= dom IT2 by TARSKI:def_3;
now__::_thesis:_for_x_being_set_st_x_in_dom_IT2_holds_
x_in_dom_IT1
let x be set ; ::_thesis: ( x in dom IT2 implies x in dom IT1 )
assume A10: x in dom IT2 ; ::_thesis: x in dom IT1
then reconsider xx = x as Element of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ;
consider x1, x2 being set such that
A11: ( x1 in U -InterpretersOf S & x2 in ((AllSymbolsOf S) *) \ {{}} & xx = [x1,x2] ) by ZFMISC_1:def_2;
reconsider I = x1 as Element of U -InterpretersOf S by A11;
reconsider phi = x2 as Element of ((AllSymbolsOf S) *) \ {{}} by A11;
S1[I,phi] by A5, A10, A11;
hence x in dom IT1 by A3, A11; ::_thesis: verum
end;
then dom IT2 c= dom IT1 by TARSKI:def_3;
then A12: dom IT2 = dom IT1 by A9, XBOOLE_0:def_10;
now__::_thesis:_for_x_being_set_st_x_in_dom_IT1_holds_
IT1_._x_=_IT2_._x
let x be set ; ::_thesis: ( x in dom IT1 implies IT1 . x = IT2 . x )
assume A13: x in dom IT1 ; ::_thesis: IT1 . x = IT2 . x
then reconsider xx = x as Element of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ;
consider x1, x2 being set such that
A14: ( x1 in U -InterpretersOf S & x2 in ((AllSymbolsOf S) *) \ {{}} & xx = [x1,x2] ) by ZFMISC_1:def_2;
reconsider I = x1 as Element of U -InterpretersOf S by A14;
reconsider phi = x2 as Element of ((AllSymbolsOf S) *) \ {{}} by A14;
IT1 . x = IT1 . (I,phi) by A14
.= H1(I,phi) by A4, A14, A13
.= IT2 . (I,phi) by A6, A14, A13, A9
.= IT2 . x by A14 ;
hence IT1 . x = IT2 . x ; ::_thesis: verum
end;
hence IT1 = IT2 by A12, FUNCT_1:2; ::_thesis: verum
end;
end;
:: deftheorem Def19 defines NorIterator FOMODEL2:def_19_:_
for S being Language
for U being non empty set
for g being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)
for b4 being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN holds
( b4 = NorIterator g iff ( ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} holds
( [x,y] in dom b4 iff ex phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} st
( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom g & [x,phi2] in dom g ) ) ) & ( for x being Element of U -InterpretersOf S
for y being Element of ((AllSymbolsOf S) *) \ {{}} st [x,y] in dom b4 holds
b4 . (x,y) = g -NorFunctor (x,y) ) ) );
definition
let S be Language;
let U be non empty set ;
func(S,U) -TruthEval -> Function of NAT,(PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) means :Def20: :: FOMODEL2:def 20
( it . 0 = S -TruthEval U & ( for mm being Element of NAT holds it . (mm + 1) = ((ExIterator (it . mm)) +* (NorIterator (it . mm))) +* (it . mm) ) );
existence
ex b1 being Function of NAT,(PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) st
( b1 . 0 = S -TruthEval U & ( for mm being Element of NAT holds b1 . (mm + 1) = ((ExIterator (b1 . mm)) +* (NorIterator (b1 . mm))) +* (b1 . mm) ) )
proof
set SS = AllSymbolsOf S;
set II = U -InterpretersOf S;
set AF = AtomicFormulasOf S;
set Strings = ((AllSymbolsOf S) *) \ {{}};
set D = [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):];
reconsider ii = U -InterpretersOf S as Subset of (U -InterpretersOf S) by XBOOLE_0:def_10;
reconsider subboolean = BOOLEAN as Subset of BOOLEAN by XBOOLE_0:def_10;
reconsider sub = [:ii,(AtomicFormulasOf S):] as Subset of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ;
[:sub,subboolean:] c= [:[:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN:] ;
then S -TruthEval U is PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN by XBOOLE_1:1;
then reconsider Z = S -TruthEval U as Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) by PARTFUN1:45;
deffunc H1( Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) -> Element of bool [:[:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN:] = ((ExIterator $1) +* (NorIterator $1)) +* $1;
defpred S1[ set , Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN), set ] means $3 = H1($2);
A1: for n being Element of NAT
for x being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ex y being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) st S1[n,x,y]
proof
let n be Element of NAT ; ::_thesis: for x being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ex y being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) st S1[n,x,y]
let x be Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN); ::_thesis: ex y being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) st S1[n,x,y]
reconsider yy = H1(x) as Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) by PARTFUN1:45;
take y = yy; ::_thesis: S1[n,x,y]
thus S1[n,x,y] ; ::_thesis: verum
end;
consider f being Function of NAT,(PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) such that
A2: ( f . 0 = Z & ( for n being Element of NAT holds S1[n,f . n,f . (n + 1)] ) ) from RECDEF_1:sch_2(A1);
take f ; ::_thesis: ( f . 0 = S -TruthEval U & ( for mm being Element of NAT holds f . (mm + 1) = ((ExIterator (f . mm)) +* (NorIterator (f . mm))) +* (f . mm) ) )
thus f . 0 = S -TruthEval U by A2; ::_thesis: for mm being Element of NAT holds f . (mm + 1) = ((ExIterator (f . mm)) +* (NorIterator (f . mm))) +* (f . mm)
thus for mm being Element of NAT holds f . (mm + 1) = ((ExIterator (f . mm)) +* (NorIterator (f . mm))) +* (f . mm) by A2; ::_thesis: verum
end;
uniqueness
for b1, b2 being Function of NAT,(PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) st b1 . 0 = S -TruthEval U & ( for mm being Element of NAT holds b1 . (mm + 1) = ((ExIterator (b1 . mm)) +* (NorIterator (b1 . mm))) +* (b1 . mm) ) & b2 . 0 = S -TruthEval U & ( for mm being Element of NAT holds b2 . (mm + 1) = ((ExIterator (b2 . mm)) +* (NorIterator (b2 . mm))) +* (b2 . mm) ) holds
b1 = b2
proof
set SS = AllSymbolsOf S;
set II = U -InterpretersOf S;
set AF = AtomicFormulasOf S;
set Strings = ((AllSymbolsOf S) *) \ {{}};
set D = [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):];
set Z = S -TruthEval U;
( [:(U -InterpretersOf S),(AtomicFormulasOf S):] c= [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] & BOOLEAN c= BOOLEAN ) by ZFMISC_1:96;
then ( dom (S -TruthEval U) c= [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] & rng (S -TruthEval U) c= BOOLEAN ) by XBOOLE_1:1;
then S -TruthEval U is Relation of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN by RELSET_1:4;
then reconsider ZZ = S -TruthEval U as Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) by PARTFUN1:45;
deffunc H1( set , Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) -> Element of bool [:[:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN:] = ((ExIterator $2) +* (NorIterator $2)) +* $2;
defpred S1[ set , set , set ] means for f being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) st $2 = f holds
$3 = H1($1,f);
let IT1, IT2 be Function of NAT,(PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)); ::_thesis: ( IT1 . 0 = S -TruthEval U & ( for mm being Element of NAT holds IT1 . (mm + 1) = ((ExIterator (IT1 . mm)) +* (NorIterator (IT1 . mm))) +* (IT1 . mm) ) & IT2 . 0 = S -TruthEval U & ( for mm being Element of NAT holds IT2 . (mm + 1) = ((ExIterator (IT2 . mm)) +* (NorIterator (IT2 . mm))) +* (IT2 . mm) ) implies IT1 = IT2 )
assume A3: ( IT1 . 0 = S -TruthEval U & ( for mm being Element of NAT holds IT1 . (mm + 1) = ((ExIterator (IT1 . mm)) +* (NorIterator (IT1 . mm))) +* (IT1 . mm) ) ) ; ::_thesis: ( not IT2 . 0 = S -TruthEval U or ex mm being Element of NAT st not IT2 . (mm + 1) = ((ExIterator (IT2 . mm)) +* (NorIterator (IT2 . mm))) +* (IT2 . mm) or IT1 = IT2 )
assume A4: ( IT2 . 0 = S -TruthEval U & ( for mm being Element of NAT holds IT2 . (mm + 1) = ((ExIterator (IT2 . mm)) +* (NorIterator (IT2 . mm))) +* (IT2 . mm) ) ) ; ::_thesis: IT1 = IT2
A5: IT1 . 0 = ZZ by A3;
A6: for m being Nat holds S1[m,IT1 . m,IT1 . (m + 1)]
proof
let m be Nat; ::_thesis: S1[m,IT1 . m,IT1 . (m + 1)]
reconsider mm = m as Element of NAT by ORDINAL1:def_12;
let f be Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN); ::_thesis: ( IT1 . m = f implies IT1 . (m + 1) = H1(m,f) )
assume f = IT1 . m ; ::_thesis: IT1 . (m + 1) = H1(m,f)
then IT1 . (mm + 1) = H1(m,f) by A3;
hence IT1 . (m + 1) = H1(m,f) ; ::_thesis: verum
end;
A7: IT2 . 0 = ZZ by A4;
A8: for m being Nat holds S1[m,IT2 . m,IT2 . (m + 1)]
proof
let m be Nat; ::_thesis: S1[m,IT2 . m,IT2 . (m + 1)]
reconsider mm = m as Element of NAT by ORDINAL1:def_12;
let f be Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN); ::_thesis: ( IT2 . m = f implies IT2 . (m + 1) = H1(m,f) )
assume f = IT2 . m ; ::_thesis: IT2 . (m + 1) = H1(m,f)
then IT2 . (mm + 1) = H1(m,f) by A4;
hence IT2 . (m + 1) = H1(m,f) ; ::_thesis: verum
end;
A9: for n being Nat
for x, y1, y2 being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) st S1[n,x,y1] & S1[n,x,y2] holds
y1 = y2
proof
let n be Nat; ::_thesis: for x, y1, y2 being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) st S1[n,x,y1] & S1[n,x,y2] holds
y1 = y2
let x, y1, y2 be Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN); ::_thesis: ( S1[n,x,y1] & S1[n,x,y2] implies y1 = y2 )
assume that
A10: S1[n,x,y1] and
A11: S1[n,x,y2] ; ::_thesis: y1 = y2
A12: y2 = H1(n,x) by A11;
thus y1 = y2 by A10, A12; ::_thesis: verum
end;
thus IT1 = IT2 from NAT_1:sch_14(A5, A6, A7, A8, A9); ::_thesis: verum
end;
end;
:: deftheorem Def20 defines -TruthEval FOMODEL2:def_20_:_
for S being Language
for U being non empty set
for b3 being Function of NAT,(PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) holds
( b3 = (S,U) -TruthEval iff ( b3 . 0 = S -TruthEval U & ( for mm being Element of NAT holds b3 . (mm + 1) = ((ExIterator (b3 . mm)) +* (NorIterator (b3 . mm))) +* (b3 . mm) ) ) );
theorem Th2: :: FOMODEL2:2
for S being Language
for U being non empty set
for I being b1,b2 -interpreter-like Function holds I | (OwnSymbolsOf S) in U -InterpretersOf S
proof
let S be Language; ::_thesis: for U being non empty set
for I being S,b1 -interpreter-like Function holds I | (OwnSymbolsOf S) in U -InterpretersOf S
let U be non empty set ; ::_thesis: for I being S,U -interpreter-like Function holds I | (OwnSymbolsOf S) in U -InterpretersOf S
let I be S,U -interpreter-like Function; ::_thesis: I | (OwnSymbolsOf S) in U -InterpretersOf S
set O = OwnSymbolsOf S;
set C = PFuncs ((U *),(U \/ BOOLEAN));
( dom (I | (OwnSymbolsOf S)) c= OwnSymbolsOf S & rng (I | (OwnSymbolsOf S)) c= PFuncs ((U *),(U \/ BOOLEAN)) ) ;
then I | (OwnSymbolsOf S) is Function of (OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN))) by RELSET_1:4;
then ( I | (OwnSymbolsOf S) is S,U -interpreter-like & I | (OwnSymbolsOf S) is Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) ) by FUNCT_2:8;
hence I | (OwnSymbolsOf S) in U -InterpretersOf S ; ::_thesis: verum
end;
definition
let S be Language;
let m be Nat;
let U be non empty set ;
func(S,U) -TruthEval m -> Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) means :Def21: :: FOMODEL2:def 21
for mm being Element of NAT st m = mm holds
it = ((S,U) -TruthEval) . mm;
existence
ex b1 being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) st
for mm being Element of NAT st m = mm holds
b1 = ((S,U) -TruthEval) . mm
proof
set f = (S,U) -TruthEval ;
reconsider nn = m as Element of NAT by ORDINAL1:def_12;
take ((S,U) -TruthEval) . nn ; ::_thesis: for mm being Element of NAT st m = mm holds
((S,U) -TruthEval) . nn = ((S,U) -TruthEval) . mm
let mm be Element of NAT ; ::_thesis: ( m = mm implies ((S,U) -TruthEval) . nn = ((S,U) -TruthEval) . mm )
assume m = mm ; ::_thesis: ((S,U) -TruthEval) . nn = ((S,U) -TruthEval) . mm
hence ((S,U) -TruthEval) . nn = ((S,U) -TruthEval) . mm ; ::_thesis: verum
end;
uniqueness
for b1, b2 being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) st ( for mm being Element of NAT st m = mm holds
b1 = ((S,U) -TruthEval) . mm ) & ( for mm being Element of NAT st m = mm holds
b2 = ((S,U) -TruthEval) . mm ) holds
b1 = b2
proof
set II = U -InterpretersOf S;
set SS = AllSymbolsOf S;
set f = (S,U) -TruthEval ;
let IT1, IT2 be Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN); ::_thesis: ( ( for mm being Element of NAT st m = mm holds
IT1 = ((S,U) -TruthEval) . mm ) & ( for mm being Element of NAT st m = mm holds
IT2 = ((S,U) -TruthEval) . mm ) implies IT1 = IT2 )
assume that
A1: for mm being Element of NAT st m = mm holds
IT1 = ((S,U) -TruthEval) . mm and
A2: for mm being Element of NAT st m = mm holds
IT2 = ((S,U) -TruthEval) . mm ; ::_thesis: IT1 = IT2
reconsider mm = m as Element of NAT by ORDINAL1:def_12;
thus IT1 = ((S,U) -TruthEval) . mm by A1
.= IT2 by A2 ; ::_thesis: verum
end;
end;
:: deftheorem Def21 defines -TruthEval FOMODEL2:def_21_:_
for S being Language
for m being Nat
for U being non empty set
for b4 being Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) holds
( b4 = (S,U) -TruthEval m iff for mm being Element of NAT st m = mm holds
b4 = ((S,U) -TruthEval) . mm );
Lm7: for m being Nat
for x being set
for S being Language
for U being non empty set
for n being Nat st x in dom ((S,U) -TruthEval m) holds
( x in dom ((S,U) -TruthEval (m + n)) & ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + n)) . x )
proof
let m be Nat; ::_thesis: for x being set
for S being Language
for U being non empty set
for n being Nat st x in dom ((S,U) -TruthEval m) holds
( x in dom ((S,U) -TruthEval (m + n)) & ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + n)) . x )
let x be set ; ::_thesis: for S being Language
for U being non empty set
for n being Nat st x in dom ((S,U) -TruthEval m) holds
( x in dom ((S,U) -TruthEval (m + n)) & ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + n)) . x )
let S be Language; ::_thesis: for U being non empty set
for n being Nat st x in dom ((S,U) -TruthEval m) holds
( x in dom ((S,U) -TruthEval (m + n)) & ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + n)) . x )
let U be non empty set ; ::_thesis: for n being Nat st x in dom ((S,U) -TruthEval m) holds
( x in dom ((S,U) -TruthEval (m + n)) & ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + n)) . x )
set f = (S,U) -TruthEval ;
defpred S1[ Nat] means ( x in dom ((S,U) -TruthEval m) implies ( x in dom ((S,U) -TruthEval (m + $1)) & ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + $1)) . x ) );
A1: S1[ 0 ] ;
A2: for n being Nat st S1[n] holds
S1[n + 1]
proof
let n be Nat; ::_thesis: ( S1[n] implies S1[n + 1] )
reconsider k = m + n, K = (m + n) + 1 as Element of NAT by ORDINAL1:def_12;
assume A3: S1[n] ; ::_thesis: S1[n + 1]
set g = (S,U) -TruthEval m;
set g0 = (S,U) -TruthEval (m + n);
set g1 = (S,U) -TruthEval ((m + n) + 1);
A4: ( ((S,U) -TruthEval) . k = (S,U) -TruthEval (m + n) & ((S,U) -TruthEval) . K = (S,U) -TruthEval ((m + n) + 1) ) by Def21;
A5: ((S,U) -TruthEval) . K = ((ExIterator (((S,U) -TruthEval) . k)) +* (NorIterator (((S,U) -TruthEval) . k))) +* (((S,U) -TruthEval) . k) by Def20;
then dom (((S,U) -TruthEval) . K) = (dom ((ExIterator (((S,U) -TruthEval) . k)) +* (NorIterator (((S,U) -TruthEval) . k)))) \/ (dom (((S,U) -TruthEval) . k)) by FUNCT_4:def_1;
then A6: dom (((S,U) -TruthEval) . k) c= dom (((S,U) -TruthEval) . K) by XBOOLE_1:7;
assume A7: x in dom ((S,U) -TruthEval m) ; ::_thesis: ( x in dom ((S,U) -TruthEval (m + (n + 1))) & ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + (n + 1))) . x )
then x in dom (((S,U) -TruthEval) . k) by A3, Def21;
then A8: x in dom (((S,U) -TruthEval) . K) by A6;
thus x in dom ((S,U) -TruthEval (m + (n + 1))) by A4, A7, A3, A6; ::_thesis: ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + (n + 1))) . x
x in (dom ((ExIterator (((S,U) -TruthEval) . k)) +* (NorIterator (((S,U) -TruthEval) . k)))) \/ (dom (((S,U) -TruthEval) . k)) by A8, A5, FUNCT_4:def_1;
hence ((S,U) -TruthEval m) . x = ((S,U) -TruthEval (m + (n + 1))) . x by A3, A4, A7, A5, FUNCT_4:def_1; ::_thesis: verum
end;
thus for n being Nat holds S1[n] from NAT_1:sch_2(A1, A2); ::_thesis: verum
end;
Lm8: for x, X, Y, Z being set holds
( x in (X \/ Y) \/ Z iff ( x in X or x in Y or x in Z ) )
proof
let x, X, Y, Z be set ; ::_thesis: ( x in (X \/ Y) \/ Z iff ( x in X or x in Y or x in Z ) )
set W = (X \/ Y) \/ Z;
( x in (X \/ Y) \/ Z iff ( x in X \/ Y or x in Z ) ) by XBOOLE_0:def_3;
hence ( x in (X \/ Y) \/ Z iff ( x in X or x in Y or x in Z ) ) by XBOOLE_0:def_3; ::_thesis: verum
end;
Lm9: for S being Language
for U1, U2 being non empty set
for m being Nat
for I1 being Element of U1 -InterpretersOf S
for I2 being Element of U2 -InterpretersOf S
for w being string of S st [I1,w] in dom ((S,U1) -TruthEval m) holds
[I2,w] in dom ((S,U2) -TruthEval m)
proof
let S be Language; ::_thesis: for U1, U2 being non empty set
for m being Nat
for I1 being Element of U1 -InterpretersOf S
for I2 being Element of U2 -InterpretersOf S
for w being string of S st [I1,w] in dom ((S,U1) -TruthEval m) holds
[I2,w] in dom ((S,U2) -TruthEval m)
let U1, U2 be non empty set ; ::_thesis: for m being Nat
for I1 being Element of U1 -InterpretersOf S
for I2 being Element of U2 -InterpretersOf S
for w being string of S st [I1,w] in dom ((S,U1) -TruthEval m) holds
[I2,w] in dom ((S,U2) -TruthEval m)
set SS = AllSymbolsOf S;
set N = TheNorSymbOf S;
set II1 = U1 -InterpretersOf S;
set II2 = U2 -InterpretersOf S;
set AF = AtomicFormulasOf S;
defpred S1[ Nat] means for I1 being Element of U1 -InterpretersOf S
for I2 being Element of U2 -InterpretersOf S
for w being string of S st [I1,w] in dom ((S,U1) -TruthEval $1) holds
[I2,w] in dom ((S,U2) -TruthEval $1);
A1: S1[ 0 ]
proof
set f1 = (S,U1) -TruthEval 0;
set f2 = (S,U2) -TruthEval 0;
reconsider Z = 0 as Element of NAT ;
reconsider g1 = ((S,U1) -TruthEval) . Z as Element of PFuncs ([:(U1 -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ;
reconsider g2 = ((S,U2) -TruthEval) . Z as Element of PFuncs ([:(U2 -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ;
A2: ( (S,U1) -TruthEval 0 = g1 & (S,U2) -TruthEval 0 = g2 ) by Def21;
A3: ( g1 = S -TruthEval U1 & g2 = S -TruthEval U2 ) by Def20;
A4: dom ((S,U1) -TruthEval 0) = [:(U1 -InterpretersOf S),(AtomicFormulasOf S):] by A2, A3, FUNCT_2:def_1;
A5: dom ((S,U2) -TruthEval 0) = [:(U2 -InterpretersOf S),(AtomicFormulasOf S):] by A2, A3, FUNCT_2:def_1;
let I1 be Element of U1 -InterpretersOf S; ::_thesis: for I2 being Element of U2 -InterpretersOf S
for w being string of S st [I1,w] in dom ((S,U1) -TruthEval 0) holds
[I2,w] in dom ((S,U2) -TruthEval 0)
let I2 be Element of U2 -InterpretersOf S; ::_thesis: for w being string of S st [I1,w] in dom ((S,U1) -TruthEval 0) holds
[I2,w] in dom ((S,U2) -TruthEval 0)
let w be string of S; ::_thesis: ( [I1,w] in dom ((S,U1) -TruthEval 0) implies [I2,w] in dom ((S,U2) -TruthEval 0) )
assume [I1,w] in dom ((S,U1) -TruthEval 0) ; ::_thesis: [I2,w] in dom ((S,U2) -TruthEval 0)
then ( I1 in U1 -InterpretersOf S & w in AtomicFormulasOf S ) by A4, ZFMISC_1:87;
hence [I2,w] in dom ((S,U2) -TruthEval 0) by A5, ZFMISC_1:87; ::_thesis: verum
end;
A6: for n being Nat st S1[n] holds
S1[n + 1]
proof
let n be Nat; ::_thesis: ( S1[n] implies S1[n + 1] )
reconsider nn = n, NN = n + 1 as Element of NAT by ORDINAL1:def_12;
assume A7: S1[n] ; ::_thesis: S1[n + 1]
let I1 be Element of U1 -InterpretersOf S; ::_thesis: for I2 being Element of U2 -InterpretersOf S
for w being string of S st [I1,w] in dom ((S,U1) -TruthEval (n + 1)) holds
[I2,w] in dom ((S,U2) -TruthEval (n + 1))
let I2 be Element of U2 -InterpretersOf S; ::_thesis: for w being string of S st [I1,w] in dom ((S,U1) -TruthEval (n + 1)) holds
[I2,w] in dom ((S,U2) -TruthEval (n + 1))
set f1n = (S,U1) -TruthEval n;
set f1N = (S,U1) -TruthEval (n + 1);
set f2n = (S,U2) -TruthEval n;
set f2N = (S,U2) -TruthEval (n + 1);
A8: dom ((S,U1) -TruthEval (n + 1)) = ((dom (ExIterator ((S,U1) -TruthEval n))) \/ (dom (NorIterator ((S,U1) -TruthEval n)))) \/ (dom ((S,U1) -TruthEval n))
proof
reconsider g1N = ((S,U1) -TruthEval) . NN as Element of PFuncs ([:(U1 -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ;
reconsider g1n = ((S,U1) -TruthEval) . nn as Element of PFuncs ([:(U1 -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ;
A9: ( (S,U1) -TruthEval n = g1n & (S,U1) -TruthEval (n + 1) = g1N ) by Def21;
then (S,U1) -TruthEval (n + 1) = ((ExIterator g1n) +* (NorIterator g1n)) +* g1n by Def20;
then dom ((S,U1) -TruthEval (n + 1)) = (dom ((ExIterator g1n) +* (NorIterator g1n))) \/ (dom g1n) by FUNCT_4:def_1
.= ((dom (ExIterator g1n)) \/ (dom (NorIterator g1n))) \/ (dom g1n) by FUNCT_4:def_1 ;
hence dom ((S,U1) -TruthEval (n + 1)) = ((dom (ExIterator ((S,U1) -TruthEval n))) \/ (dom (NorIterator ((S,U1) -TruthEval n)))) \/ (dom ((S,U1) -TruthEval n)) by A9; ::_thesis: verum
end;
A10: dom ((S,U2) -TruthEval (n + 1)) = ((dom (ExIterator ((S,U2) -TruthEval n))) \/ (dom (NorIterator ((S,U2) -TruthEval n)))) \/ (dom ((S,U2) -TruthEval n))
proof
reconsider g2N = ((S,U2) -TruthEval) . NN as Element of PFuncs ([:(U2 -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ;
reconsider g2n = ((S,U2) -TruthEval) . nn as Element of PFuncs ([:(U2 -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ;
A11: ( (S,U2) -TruthEval n = g2n & (S,U2) -TruthEval (n + 1) = g2N ) by Def21;
then (S,U2) -TruthEval (n + 1) = ((ExIterator g2n) +* (NorIterator g2n)) +* g2n by Def20;
then dom ((S,U2) -TruthEval (n + 1)) = (dom ((ExIterator g2n) +* (NorIterator g2n))) \/ (dom g2n) by FUNCT_4:def_1
.= ((dom (ExIterator g2n)) \/ (dom (NorIterator g2n))) \/ (dom g2n) by FUNCT_4:def_1 ;
hence dom ((S,U2) -TruthEval (n + 1)) = ((dom (ExIterator ((S,U2) -TruthEval n))) \/ (dom (NorIterator ((S,U2) -TruthEval n)))) \/ (dom ((S,U2) -TruthEval n)) by A11; ::_thesis: verum
end;
let w be string of S; ::_thesis: ( [I1,w] in dom ((S,U1) -TruthEval (n + 1)) implies [I2,w] in dom ((S,U2) -TruthEval (n + 1)) )
set x = [I1,w];
assume A12: [I1,w] in dom ((S,U1) -TruthEval (n + 1)) ; ::_thesis: [I2,w] in dom ((S,U2) -TruthEval (n + 1))
percases ( [I1,w] in dom (ExIterator ((S,U1) -TruthEval n)) or [I1,w] in dom (NorIterator ((S,U1) -TruthEval n)) or [I1,w] in dom ((S,U1) -TruthEval n) ) by A12, Lm8, A8;
suppose [I1,w] in dom (ExIterator ((S,U1) -TruthEval n)) ; ::_thesis: [I2,w] in dom ((S,U2) -TruthEval (n + 1))
then consider v being literal Element of S, ww being string of S such that
A13: ( [I1,ww] in dom ((S,U1) -TruthEval n) & w = <*v*> ^ ww ) by Def17;
( [I2,ww] in dom ((S,U2) -TruthEval n) & w = <*v*> ^ ww ) by A13, A7;
then [I2,w] in dom (ExIterator ((S,U2) -TruthEval n)) by Def17;
hence [I2,w] in dom ((S,U2) -TruthEval (n + 1)) by Lm8, A10; ::_thesis: verum
end;
suppose [I1,w] in dom (NorIterator ((S,U1) -TruthEval n)) ; ::_thesis: [I2,w] in dom ((S,U2) -TruthEval (n + 1))
then consider phi1, phi2 being string of S such that
A14: ( w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [I1,phi1] in dom ((S,U1) -TruthEval n) & [I1,phi2] in dom ((S,U1) -TruthEval n) ) by Def19;
( w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [I2,phi1] in dom ((S,U2) -TruthEval n) & [I2,phi2] in dom ((S,U2) -TruthEval n) ) by A14, A7;
then [I2,w] in dom (NorIterator ((S,U2) -TruthEval n)) by Def19;
hence [I2,w] in dom ((S,U2) -TruthEval (n + 1)) by Lm8, A10; ::_thesis: verum
end;
suppose [I1,w] in dom ((S,U1) -TruthEval n) ; ::_thesis: [I2,w] in dom ((S,U2) -TruthEval (n + 1))
then [I2,w] in dom ((S,U2) -TruthEval n) by A7;
hence [I2,w] in dom ((S,U2) -TruthEval (n + 1)) by Lm8, A10; ::_thesis: verum
end;
end;
end;
thus for m being Nat holds S1[m] from NAT_1:sch_2(A1, A6); ::_thesis: verum
end;
Lm10: for mm being Element of NAT
for S being Language
for U being non empty set holds curry (((S,U) -TruthEval) . mm) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN))
proof
let mm be Element of NAT ; ::_thesis: for S being Language
for U being non empty set holds curry (((S,U) -TruthEval) . mm) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN))
let S be Language; ::_thesis: for U being non empty set holds curry (((S,U) -TruthEval) . mm) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN))
let U be non empty set ; ::_thesis: curry (((S,U) -TruthEval) . mm) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN))
set II = U -InterpretersOf S;
set AF = AtomicFormulasOf S;
set f = ((S,U) -TruthEval) . mm;
set SS = AllSymbolsOf S;
set F = (S,U) -TruthEval ;
reconsider g = curry (((S,U) -TruthEval) . mm) as Element of PFuncs ((U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN))) by FUNCT_6:14;
set y = the Element of AtomicFormulasOf S;
reconsider Z = 0 as Element of NAT ;
dom (S -TruthEval U) = [:(U -InterpretersOf S),(AtomicFormulasOf S):] by FUNCT_2:def_1;
then A1: dom (((S,U) -TruthEval) . 0) = [:(U -InterpretersOf S),(AtomicFormulasOf S):] by Def20;
now__::_thesis:_for_x_being_set_st_x_in_U_-InterpretersOf_S_holds_
x_in_dom_g
let x be set ; ::_thesis: ( x in U -InterpretersOf S implies x in dom g )
assume x in U -InterpretersOf S ; ::_thesis: x in dom g
then [x, the Element of AtomicFormulasOf S] in dom (((S,U) -TruthEval) . 0) by A1, ZFMISC_1:87;
then [x, the Element of AtomicFormulasOf S] in dom ((S,U) -TruthEval 0) by Def21;
then [x, the Element of AtomicFormulasOf S] in dom ((S,U) -TruthEval (0 + mm)) by Lm7;
then [x, the Element of AtomicFormulasOf S] in dom (((S,U) -TruthEval) . mm) by Def21;
hence x in dom g by FUNCT_5:19; ::_thesis: verum
end;
then ( U -InterpretersOf S c= dom g & dom g c= U -InterpretersOf S ) by TARSKI:def_3;
then dom g = U -InterpretersOf S by XBOOLE_0:def_10;
then reconsider gg = g as total PartFunc of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by PARTFUN1:def_2;
curry (((S,U) -TruthEval) . mm) = gg ;
hence curry (((S,U) -TruthEval) . mm) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) ; ::_thesis: verum
end;
Lm11: for m being Nat
for S being Language
for U being non empty set holds curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN))
proof
let m be Nat; ::_thesis: for S being Language
for U being non empty set holds curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN))
let S be Language; ::_thesis: for U being non empty set holds curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN))
let U be non empty set ; ::_thesis: curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN))
reconsider mm = m as Element of NAT by ORDINAL1:def_12;
set f = (S,U) -TruthEval mm;
set g = ((S,U) -TruthEval) . mm;
curry ((S,U) -TruthEval mm) = curry (((S,U) -TruthEval) . mm) by Def21;
hence curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by Lm10; ::_thesis: verum
end;
definition
let S be Language;
let U be non empty set ;
let m be Nat;
let I be Element of U -InterpretersOf S;
func(I,m) -TruthEval -> Element of PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN) equals :: FOMODEL2:def 22
(curry ((S,U) -TruthEval m)) . I;
coherence
(curry ((S,U) -TruthEval m)) . I is Element of PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)
proof
set II = U -InterpretersOf S;
set SS = AllSymbolsOf S;
reconsider mm = m as Element of NAT by ORDINAL1:def_12;
curry ((S,U) -TruthEval mm) = curry (((S,U) -TruthEval) . mm) by Def21;
then reconsider f = curry ((S,U) -TruthEval mm) as Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by Lm10;
f . I is Element of PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN) ;
hence (curry ((S,U) -TruthEval m)) . I is Element of PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN) ; ::_thesis: verum
end;
end;
:: deftheorem defines -TruthEval FOMODEL2:def_22_:_
for S being Language
for U being non empty set
for m being Nat
for I being Element of U -InterpretersOf S holds (I,m) -TruthEval = (curry ((S,U) -TruthEval m)) . I;
Lm12: for m, n being Nat
for S being Language
for U being non empty set
for I being Element of U -InterpretersOf S holds (I,m) -TruthEval c= (I,(m + n)) -TruthEval
proof
let m, n be Nat; ::_thesis: for S being Language
for U being non empty set
for I being Element of U -InterpretersOf S holds (I,m) -TruthEval c= (I,(m + n)) -TruthEval
let S be Language; ::_thesis: for U being non empty set
for I being Element of U -InterpretersOf S holds (I,m) -TruthEval c= (I,(m + n)) -TruthEval
let U be non empty set ; ::_thesis: for I being Element of U -InterpretersOf S holds (I,m) -TruthEval c= (I,(m + n)) -TruthEval
set UI = U -InterpretersOf S;
set SS = AllSymbolsOf S;
let I be Element of U -InterpretersOf S; ::_thesis: (I,m) -TruthEval c= (I,(m + n)) -TruthEval
set IT1 = (I,m) -TruthEval ;
set IT2 = (I,(m + n)) -TruthEval ;
set f = (S,U) -TruthEval m;
set g = (S,U) -TruthEval (m + n);
reconsider F = curry ((S,U) -TruthEval m), G = curry ((S,U) -TruthEval (m + n)) as Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by Lm11;
A1: ( (I,m) -TruthEval = F . I & (I,(m + n)) -TruthEval = G . I & dom F = U -InterpretersOf S ) by FUNCT_2:def_1;
A2: for x being set st x in dom ((I,m) -TruthEval) holds
( x in dom ((I,(m + n)) -TruthEval) & ((I,m) -TruthEval) . x = ((I,(m + n)) -TruthEval) . x )
proof
let x be set ; ::_thesis: ( x in dom ((I,m) -TruthEval) implies ( x in dom ((I,(m + n)) -TruthEval) & ((I,m) -TruthEval) . x = ((I,(m + n)) -TruthEval) . x ) )
assume A3: x in dom ((I,m) -TruthEval) ; ::_thesis: ( x in dom ((I,(m + n)) -TruthEval) & ((I,m) -TruthEval) . x = ((I,(m + n)) -TruthEval) . x )
then A4: [I,x] in dom ((S,U) -TruthEval m) by A1, FUNCT_5:31;
then A5: ( [I,x] in dom ((S,U) -TruthEval (m + n)) & ((S,U) -TruthEval (m + n)) . [I,x] = ((S,U) -TruthEval m) . [I,x] ) by Lm7;
then ( x in dom ((I,(m + n)) -TruthEval) & ((I,(m + n)) -TruthEval) . x = ((S,U) -TruthEval (m + n)) . (I,x) ) by FUNCT_5:20;
then ((I,(m + n)) -TruthEval) . x = ((S,U) -TruthEval m) . (I,x) by A4, Lm7
.= ((I,m) -TruthEval) . x by A3, A1, FUNCT_5:31 ;
hence ( x in dom ((I,(m + n)) -TruthEval) & ((I,m) -TruthEval) . x = ((I,(m + n)) -TruthEval) . x ) by A5, FUNCT_5:20; ::_thesis: verum
end;
A6: ( ( for x being set st x in dom ((I,m) -TruthEval) holds
x in dom ((I,(m + n)) -TruthEval) ) & ( for x being set st x in dom ((I,m) -TruthEval) holds
((I,m) -TruthEval) . x = ((I,(m + n)) -TruthEval) . x ) ) by A2;
then dom ((I,m) -TruthEval) c= dom ((I,(m + n)) -TruthEval) by TARSKI:def_3;
hence (I,m) -TruthEval c= (I,(m + n)) -TruthEval by A6, GRFUNC_1:2; ::_thesis: verum
end;
Lm13: for m being Nat
for S being Language
for U1, U2 being non empty set
for I1 being Element of U1 -InterpretersOf S
for I2 being Element of U2 -InterpretersOf S holds dom ((I1,m) -TruthEval) c= dom ((I2,m) -TruthEval)
proof
let m be Nat; ::_thesis: for S being Language
for U1, U2 being non empty set
for I1 being Element of U1 -InterpretersOf S
for I2 being Element of U2 -InterpretersOf S holds dom ((I1,m) -TruthEval) c= dom ((I2,m) -TruthEval)
let S be Language; ::_thesis: for U1, U2 being non empty set
for I1 being Element of U1 -InterpretersOf S
for I2 being Element of U2 -InterpretersOf S holds dom ((I1,m) -TruthEval) c= dom ((I2,m) -TruthEval)
let U1, U2 be non empty set ; ::_thesis: for I1 being Element of U1 -InterpretersOf S
for I2 being Element of U2 -InterpretersOf S holds dom ((I1,m) -TruthEval) c= dom ((I2,m) -TruthEval)
reconsider mm = m as Element of NAT by ORDINAL1:def_12;
set II1 = U1 -InterpretersOf S;
set II2 = U2 -InterpretersOf S;
set f = ((S,U1) -TruthEval) . mm;
set SS = AllSymbolsOf S;
set ff1 = (S,U1) -TruthEval mm;
set ff2 = (S,U2) -TruthEval mm;
set g = ((S,U2) -TruthEval) . mm;
let I1 be Element of U1 -InterpretersOf S; ::_thesis: for I2 being Element of U2 -InterpretersOf S holds dom ((I1,m) -TruthEval) c= dom ((I2,m) -TruthEval)
let I2 be Element of U2 -InterpretersOf S; ::_thesis: dom ((I1,m) -TruthEval) c= dom ((I2,m) -TruthEval)
A1: ( ((S,U1) -TruthEval) . mm = (S,U1) -TruthEval mm & ((S,U2) -TruthEval) . mm = (S,U2) -TruthEval mm ) by Def21;
set F1 = (I1,m) -TruthEval ;
set F2 = (I2,m) -TruthEval ;
A2: ( (curry (((S,U1) -TruthEval) . mm)) . I1 = (I1,m) -TruthEval & (curry (((S,U2) -TruthEval) . mm)) . I2 = (I2,m) -TruthEval ) by Def21;
then reconsider f1 = (curry (((S,U1) -TruthEval) . mm)) . I1, f2 = (curry (((S,U2) -TruthEval) . mm)) . I2 as Element of PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN) ;
reconsider F = curry (((S,U1) -TruthEval) . mm) as Function of (U1 -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by Lm10;
A3: I1 in U1 -InterpretersOf S ;
((S,U1) -TruthEval) . mm is Element of PFuncs ([:(U1 -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ;
then dom (((S,U1) -TruthEval) . mm) c= [:(U1 -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] by RELAT_1:def_18;
then A4: uncurry F = ((S,U1) -TruthEval) . mm by FUNCT_5:50;
now__::_thesis:_for_ww_being_set_st_ww_in_dom_f1_holds_
ww_in_dom_f2
let ww be set ; ::_thesis: ( ww in dom f1 implies ww in dom f2 )
assume A5: ww in dom f1 ; ::_thesis: ww in dom f2
then reconsider w = ww as Element of ((AllSymbolsOf S) *) \ {{}} ;
( I1 in dom F & f1 = F . I1 & ww in dom f1 ) by A3, A5, FUNCT_2:def_1;
then [I1,w] in dom ((S,U1) -TruthEval mm) by A1, A4, FUNCT_5:38;
then [I2,ww] in dom (((S,U2) -TruthEval) . mm) by A1, Lm9;
hence ww in dom f2 by FUNCT_5:20; ::_thesis: verum
end;
hence dom ((I1,m) -TruthEval) c= dom ((I2,m) -TruthEval) by A2, TARSKI:def_3; ::_thesis: verum
end;
Lm14: for mm being Element of NAT
for S being Language
for U1, U2 being non empty set
for I1 being Element of U1 -InterpretersOf S
for I2 being Element of U2 -InterpretersOf S holds dom ((I1,mm) -TruthEval) = dom ((I2,mm) -TruthEval)
proof
let mm be Element of NAT ; ::_thesis: for S being Language
for U1, U2 being non empty set
for I1 being Element of U1 -InterpretersOf S
for I2 being Element of U2 -InterpretersOf S holds dom ((I1,mm) -TruthEval) = dom ((I2,mm) -TruthEval)
let S be Language; ::_thesis: for U1, U2 being non empty set
for I1 being Element of U1 -InterpretersOf S
for I2 being Element of U2 -InterpretersOf S holds dom ((I1,mm) -TruthEval) = dom ((I2,mm) -TruthEval)
let U1, U2 be non empty set ; ::_thesis: for I1 being Element of U1 -InterpretersOf S
for I2 being Element of U2 -InterpretersOf S holds dom ((I1,mm) -TruthEval) = dom ((I2,mm) -TruthEval)
set II1 = U1 -InterpretersOf S;
set II2 = U2 -InterpretersOf S;
let I1 be Element of U1 -InterpretersOf S; ::_thesis: for I2 being Element of U2 -InterpretersOf S holds dom ((I1,mm) -TruthEval) = dom ((I2,mm) -TruthEval)
let I2 be Element of U2 -InterpretersOf S; ::_thesis: dom ((I1,mm) -TruthEval) = dom ((I2,mm) -TruthEval)
set f1 = (I1,mm) -TruthEval ;
set f2 = (I2,mm) -TruthEval ;
( dom ((I1,mm) -TruthEval) c= dom ((I2,mm) -TruthEval) & dom ((I2,mm) -TruthEval) c= dom ((I1,mm) -TruthEval) ) by Lm13;
hence dom ((I1,mm) -TruthEval) = dom ((I2,mm) -TruthEval) by XBOOLE_0:def_10; ::_thesis: verum
end;
definition
let S be Language;
let m be Nat;
funcS -formulasOfMaxDepth m -> Subset of (((AllSymbolsOf S) *) \ {{}}) means :Def23: :: FOMODEL2:def 23
for U being non empty set
for I being Element of U -InterpretersOf S
for mm being Element of NAT st m = mm holds
it = dom ((I,mm) -TruthEval);
existence
ex b1 being Subset of (((AllSymbolsOf S) *) \ {{}}) st
for U being non empty set
for I being Element of U -InterpretersOf S
for mm being Element of NAT st m = mm holds
b1 = dom ((I,mm) -TruthEval)
proof
set SS = AllSymbolsOf S;
set UU = the non empty set ;
set II = the Element of the non empty set -InterpretersOf S;
reconsider nn = m as Element of NAT by ORDINAL1:def_12;
reconsider IT = dom (( the Element of the non empty set -InterpretersOf S,nn) -TruthEval) as Subset of (((AllSymbolsOf S) *) \ {{}}) ;
take IT ; ::_thesis: for U being non empty set
for I being Element of U -InterpretersOf S
for mm being Element of NAT st m = mm holds
IT = dom ((I,mm) -TruthEval)
let U be non empty set ; ::_thesis: for I being Element of U -InterpretersOf S
for mm being Element of NAT st m = mm holds
IT = dom ((I,mm) -TruthEval)
set III = U -InterpretersOf S;
let I be Element of U -InterpretersOf S; ::_thesis: for mm being Element of NAT st m = mm holds
IT = dom ((I,mm) -TruthEval)
let mm be Element of NAT ; ::_thesis: ( m = mm implies IT = dom ((I,mm) -TruthEval) )
assume m = mm ; ::_thesis: IT = dom ((I,mm) -TruthEval)
hence IT = dom ((I,mm) -TruthEval) by Lm14; ::_thesis: verum
end;
uniqueness
for b1, b2 being Subset of (((AllSymbolsOf S) *) \ {{}}) st ( for U being non empty set
for I being Element of U -InterpretersOf S
for mm being Element of NAT st m = mm holds
b1 = dom ((I,mm) -TruthEval) ) & ( for U being non empty set
for I being Element of U -InterpretersOf S
for mm being Element of NAT st m = mm holds
b2 = dom ((I,mm) -TruthEval) ) holds
b1 = b2
proof
set SS = AllSymbolsOf S;
let IT1, IT2 be Subset of (((AllSymbolsOf S) *) \ {{}}); ::_thesis: ( ( for U being non empty set
for I being Element of U -InterpretersOf S
for mm being Element of NAT st m = mm holds
IT1 = dom ((I,mm) -TruthEval) ) & ( for U being non empty set
for I being Element of U -InterpretersOf S
for mm being Element of NAT st m = mm holds
IT2 = dom ((I,mm) -TruthEval) ) implies IT1 = IT2 )
assume that
A1: for U being non empty set
for I being Element of U -InterpretersOf S
for mm being Element of NAT st m = mm holds
IT1 = dom ((I,mm) -TruthEval) and
A2: for U being non empty set
for I being Element of U -InterpretersOf S
for mm being Element of NAT st m = mm holds
IT2 = dom ((I,mm) -TruthEval) ; ::_thesis: IT1 = IT2
set U = the non empty set ;
set I = the Element of the non empty set -InterpretersOf S;
reconsider nn = m as Element of NAT by ORDINAL1:def_12;
thus IT1 = dom (( the Element of the non empty set -InterpretersOf S,nn) -TruthEval) by A1
.= IT2 by A2 ; ::_thesis: verum
end;
end;
:: deftheorem Def23 defines -formulasOfMaxDepth FOMODEL2:def_23_:_
for S being Language
for m being Nat
for b3 being Subset of (((AllSymbolsOf S) *) \ {{}}) holds
( b3 = S -formulasOfMaxDepth m iff for U being non empty set
for I being Element of U -InterpretersOf S
for mm being Element of NAT st m = mm holds
b3 = dom ((I,mm) -TruthEval) );
Lm15: for m, n being Nat
for S being Language holds S -formulasOfMaxDepth m c= S -formulasOfMaxDepth (m + n)
proof
let m, n be Nat; ::_thesis: for S being Language holds S -formulasOfMaxDepth m c= S -formulasOfMaxDepth (m + n)
let S be Language; ::_thesis: S -formulasOfMaxDepth m c= S -formulasOfMaxDepth (m + n)
set U = the non empty set ;
set X = S -formulasOfMaxDepth m;
set Y = S -formulasOfMaxDepth (m + n);
set II = the non empty set -InterpretersOf S;
set I = the Element of the non empty set -InterpretersOf S;
reconsider mm = m, NN = m + n as Element of NAT by ORDINAL1:def_12;
set f = ( the Element of the non empty set -InterpretersOf S,mm) -TruthEval ;
set g = ( the Element of the non empty set -InterpretersOf S,NN) -TruthEval ;
A1: ( S -formulasOfMaxDepth m = dom (( the Element of the non empty set -InterpretersOf S,mm) -TruthEval) & S -formulasOfMaxDepth (m + n) = dom (( the Element of the non empty set -InterpretersOf S,NN) -TruthEval) ) by Def23;
( the Element of the non empty set -InterpretersOf S,mm) -TruthEval c= ( the Element of the non empty set -InterpretersOf S,NN) -TruthEval by Lm12;
hence S -formulasOfMaxDepth m c= S -formulasOfMaxDepth (m + n) by A1, GRFUNC_1:2; ::_thesis: verum
end;
Lm16: for S being Language holds S -formulasOfMaxDepth 0 = AtomicFormulasOf S
proof
let S be Language; ::_thesis: S -formulasOfMaxDepth 0 = AtomicFormulasOf S
set U = the non empty set ;
set AF = AtomicFormulasOf S;
set II = the non empty set -InterpretersOf S;
set I = the Element of the non empty set -InterpretersOf S;
reconsider z = 0 as Element of NAT ;
A1: [:( the non empty set -InterpretersOf S),(AtomicFormulasOf S):] = dom (S -TruthEval the non empty set ) by FUNCT_2:def_1
.= dom (((S, the non empty set ) -TruthEval) . z) by Def20
.= dom ((S, the non empty set ) -TruthEval 0) by Def21 ;
now__::_thesis:_for_x_being_set_st_x_in_AtomicFormulasOf_S_holds_
x_in_S_-formulasOfMaxDepth_0
let x be set ; ::_thesis: ( x in AtomicFormulasOf S implies x in S -formulasOfMaxDepth 0 )
assume x in AtomicFormulasOf S ; ::_thesis: x in S -formulasOfMaxDepth 0
then [ the Element of the non empty set -InterpretersOf S,x] in dom ((S, the non empty set ) -TruthEval 0) by A1, ZFMISC_1:def_2;
then x in dom (( the Element of the non empty set -InterpretersOf S,z) -TruthEval) by FUNCT_5:20;
hence x in S -formulasOfMaxDepth 0 by Def23; ::_thesis: verum
end;
then A2: AtomicFormulasOf S c= S -formulasOfMaxDepth 0 by TARSKI:def_3;
now__::_thesis:_for_x_being_set_st_x_in_S_-formulasOfMaxDepth_0_holds_
x_in_AtomicFormulasOf_S
let x be set ; ::_thesis: ( x in S -formulasOfMaxDepth 0 implies x in AtomicFormulasOf S )
assume x in S -formulasOfMaxDepth 0 ; ::_thesis: x in AtomicFormulasOf S
then A3: x in dom (( the Element of the non empty set -InterpretersOf S,z) -TruthEval) by Def23;
set f = (S, the non empty set ) -TruthEval z;
set g = ( the Element of the non empty set -InterpretersOf S,z) -TruthEval ;
(S, the non empty set ) -TruthEval z = ((S, the non empty set ) -TruthEval) . z by Def21;
then reconsider gg = curry ((S, the non empty set ) -TruthEval z) as Function of ( the non empty set -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by Lm10;
dom gg = the non empty set -InterpretersOf S by FUNCT_2:def_1;
then [ the Element of the non empty set -InterpretersOf S,x] in [:( the non empty set -InterpretersOf S),(AtomicFormulasOf S):] by A1, A3, FUNCT_5:31;
then [ the Element of the non empty set -InterpretersOf S,x] `2 in AtomicFormulasOf S by MCART_1:10;
hence x in AtomicFormulasOf S ; ::_thesis: verum
end;
then S -formulasOfMaxDepth 0 c= AtomicFormulasOf S by TARSKI:def_3;
hence S -formulasOfMaxDepth 0 = AtomicFormulasOf S by A2, XBOOLE_0:def_10; ::_thesis: verum
end;
definition
let S be Language;
let m be Nat;
let w be string of S;
attrw is m -wff means :Def24: :: FOMODEL2:def 24
w in S -formulasOfMaxDepth m;
end;
:: deftheorem Def24 defines -wff FOMODEL2:def_24_:_
for S being Language
for m being Nat
for w being string of S holds
( w is m -wff iff w in S -formulasOfMaxDepth m );
definition
let S be Language;
let w be string of S;
attrw is wff means :Def25: :: FOMODEL2:def 25
ex m being Nat st w is m -wff ;
end;
:: deftheorem Def25 defines wff FOMODEL2:def_25_:_
for S being Language
for w being string of S holds
( w is wff iff ex m being Nat st w is m -wff );
registration
let S be Language;
cluster 0 -wff -> 0wff for Element of ((AllSymbolsOf S) *) \ {{}};
coherence
for b1 being string of S st b1 is 0 -wff holds
b1 is 0wff
proof
set AF = AtomicFormulasOf S;
set Z = S -formulasOfMaxDepth 0;
let w be string of S; ::_thesis: ( w is 0 -wff implies w is 0wff )
assume w is 0 -wff ; ::_thesis: w is 0wff
then w in S -formulasOfMaxDepth 0 by Def24;
then w in AtomicFormulasOf S by Lm16;
hence w is 0wff ; ::_thesis: verum
end;
cluster 0wff -> 0 -wff for Element of ((AllSymbolsOf S) *) \ {{}};
coherence
for b1 being string of S st b1 is 0wff holds
b1 is 0 -wff
proof
set AF = AtomicFormulasOf S;
let w be string of S; ::_thesis: ( w is 0wff implies w is 0 -wff )
assume w is 0wff ; ::_thesis: w is 0 -wff
then w in AtomicFormulasOf S ;
then w in S -formulasOfMaxDepth 0 by Lm16;
hence w is 0 -wff by Def24; ::_thesis: verum
end;
let m be Nat;
clusterm -wff -> wff for Element of ((AllSymbolsOf S) *) \ {{}};
coherence
for b1 being string of S st b1 is m -wff holds
b1 is wff by Def25;
let n be Nat;
clusterm + (0 * n) -wff -> m + n -wff for Element of ((AllSymbolsOf S) *) \ {{}};
coherence
for b1 being string of S st b1 is m + (0 * n) -wff holds
b1 is m + n -wff
proof
set X = S -formulasOfMaxDepth m;
set Y = S -formulasOfMaxDepth (m + n);
A1: S -formulasOfMaxDepth m c= S -formulasOfMaxDepth (m + n) by Lm15;
let w be string of S; ::_thesis: ( w is m + (0 * n) -wff implies w is m + n -wff )
assume w is m + (0 * n) -wff ; ::_thesis: w is m + n -wff
then w in S -formulasOfMaxDepth m by Def24;
hence w is m + n -wff by Def24, A1; ::_thesis: verum
end;
end;
registration
let S be Language;
let m be Nat;
cluster non empty Relation-like NAT -defined Function-like finite FinSequence-like FinSubsequence-like V199() m -wff for Element of ((AllSymbolsOf S) *) \ {{}};
existence
ex b1 being string of S st b1 is m -wff
proof
set w = the 0wff string of S;
the 0wff string of S is 0 + (0 * m) -wff ;
then the 0wff string of S is 0 + m -wff ;
hence ex b1 being string of S st b1 is m -wff ; ::_thesis: verum
end;
end;
registration
let S be Language;
let m be Nat;
clusterS -formulasOfMaxDepth m -> non empty ;
coherence
not S -formulasOfMaxDepth m is empty
proof
set X = S -formulasOfMaxDepth m;
set phi = the m -wff string of S;
the m -wff string of S in S -formulasOfMaxDepth m by Def24;
hence not S -formulasOfMaxDepth m is empty ; ::_thesis: verum
end;
end;
registration
let S be Language;
cluster non empty Relation-like NAT -defined Function-like finite FinSequence-like FinSubsequence-like V199() wff for Element of ((AllSymbolsOf S) *) \ {{}};
existence
ex b1 being string of S st b1 is wff
proof
take the 0 -wff string of S ; ::_thesis: the 0 -wff string of S is wff
thus the 0 -wff string of S is wff ; ::_thesis: verum
end;
end;
definition
let S be Language;
let U be non empty set ;
let I be Element of U -InterpretersOf S;
let w be wff string of S;
funcI -TruthEval w -> Element of BOOLEAN means :Def26: :: FOMODEL2:def 26
for m being Nat st w is m -wff holds
it = ((I,m) -TruthEval) . w;
existence
ex b1 being Element of BOOLEAN st
for m being Nat st w is m -wff holds
b1 = ((I,m) -TruthEval) . w
proof
set IU = U -InterpretersOf S;
set SS = AllSymbolsOf S;
set III = I;
set II = I;
consider n being Nat such that
A1: w is n -wff by Def25;
reconsider nn = n as Element of NAT by ORDINAL1:def_12;
set fn = (I,n) -TruthEval ;
reconsider ww = w as n -wff string of S by A1;
A2: S -formulasOfMaxDepth nn = dom ((I,nn) -TruthEval) by Def23;
ww in dom ((I,n) -TruthEval) by A2, Def24;
then ((I,n) -TruthEval) . ww = ((I,n) -TruthEval) /. ww by PARTFUN1:def_6;
then reconsider IT = ((I,n) -TruthEval) . ww as Element of BOOLEAN ;
take IT ; ::_thesis: for m being Nat st w is m -wff holds
IT = ((I,m) -TruthEval) . w
let m be Nat; ::_thesis: ( w is m -wff implies IT = ((I,m) -TruthEval) . w )
set fm = (I,m) -TruthEval ;
set f = (I,(m + n)) -TruthEval ;
set g = (I,(n + m)) -TruthEval ;
reconsider mm = m, nn = n as Element of NAT by ORDINAL1:def_12;
A3: ( S -formulasOfMaxDepth m = dom ((I,mm) -TruthEval) & S -formulasOfMaxDepth nn = dom ((I,nn) -TruthEval) ) by Def23;
A4: ( (I,m) -TruthEval c= (I,(m + n)) -TruthEval & (I,n) -TruthEval c= (I,(n + m)) -TruthEval & (I,(m + n)) -TruthEval = (I,(n + m)) -TruthEval ) by Lm12;
assume w is m -wff ; ::_thesis: IT = ((I,m) -TruthEval) . w
then w in dom ((I,m) -TruthEval) by A3, Def24;
then A5: ((I,m) -TruthEval) . w = ((I,(m + n)) -TruthEval) . w by A4, GRFUNC_1:2;
ww in dom ((I,n) -TruthEval) by A2, Def24;
hence IT = ((I,m) -TruthEval) . w by A5, A4, GRFUNC_1:2; ::_thesis: verum
end;
uniqueness
for b1, b2 being Element of BOOLEAN st ( for m being Nat st w is m -wff holds
b1 = ((I,m) -TruthEval) . w ) & ( for m being Nat st w is m -wff holds
b2 = ((I,m) -TruthEval) . w ) holds
b1 = b2
proof
let IT1, IT2 be Element of BOOLEAN ; ::_thesis: ( ( for m being Nat st w is m -wff holds
IT1 = ((I,m) -TruthEval) . w ) & ( for m being Nat st w is m -wff holds
IT2 = ((I,m) -TruthEval) . w ) implies IT1 = IT2 )
assume A6: for m being Nat st w is m -wff holds
IT1 = ((I,m) -TruthEval) . w ; ::_thesis: ( ex m being Nat st
( w is m -wff & not IT2 = ((I,m) -TruthEval) . w ) or IT1 = IT2 )
assume A7: for m being Nat st w is m -wff holds
IT2 = ((I,m) -TruthEval) . w ; ::_thesis: IT1 = IT2
consider m being Nat such that
A8: w is m -wff by Def25;
thus IT1 = ((I,m) -TruthEval) . w by A6, A8
.= IT2 by A7, A8 ; ::_thesis: verum
end;
end;
:: deftheorem Def26 defines -TruthEval FOMODEL2:def_26_:_
for S being Language
for U being non empty set
for I being Element of U -InterpretersOf S
for w being wff string of S
for b5 being Element of BOOLEAN holds
( b5 = I -TruthEval w iff for m being Nat st w is m -wff holds
b5 = ((I,m) -TruthEval) . w );
definition
let S be Language;
func AllFormulasOf S -> set equals :: FOMODEL2:def 27
{ w where w is string of S : ex m being Nat st w is m -wff } ;
coherence
{ w where w is string of S : ex m being Nat st w is m -wff } is set ;
end;
:: deftheorem defines AllFormulasOf FOMODEL2:def_27_:_
for S being Language holds AllFormulasOf S = { w where w is string of S : ex m being Nat st w is m -wff } ;
registration
let S be Language;
cluster AllFormulasOf S -> non empty ;
coherence
not AllFormulasOf S is empty
proof
set w = the 0 -wff string of S;
the 0 -wff string of S in AllFormulasOf S ;
hence not AllFormulasOf S is empty ; ::_thesis: verum
end;
end;
theorem Th3: :: FOMODEL2:3
for m being Nat
for S being Language
for U being non empty set
for u being Element of U
for t being termal string of S
for I being b2,b3 -interpreter-like Function holds
( (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . m) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . {} ) )
proof
let m be Nat; ::_thesis: for S being Language
for U being non empty set
for u being Element of U
for t being termal string of S
for I being b1,b2 -interpreter-like Function holds
( (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . m) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . {} ) )
let S be Language; ::_thesis: for U being non empty set
for u being Element of U
for t being termal string of S
for I being S,b1 -interpreter-like Function holds
( (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . m) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . {} ) )
let U be non empty set ; ::_thesis: for u being Element of U
for t being termal string of S
for I being S,U -interpreter-like Function holds
( (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . m) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . {} ) )
let u be Element of U; ::_thesis: for t being termal string of S
for I being S,U -interpreter-like Function holds
( (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . m) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . {} ) )
let t be termal string of S; ::_thesis: for I being S,U -interpreter-like Function holds
( (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . m) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . {} ) )
let I be S,U -interpreter-like Function; ::_thesis: ( (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . m) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . {} ) )
reconsider mm = m as Element of NAT by ORDINAL1:def_12;
( (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . mm) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (mm + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) by Lm5;
hence ( (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . ((((I,u) -TermEval) . m) * (SubTerms t)) & ( t is 0 -termal implies (((I,u) -TermEval) . (m + 1)) . t = (I . ((S -firstChar) . t)) . {} ) ) ; ::_thesis: verum
end;
theorem :: FOMODEL2:4
for m, n being Nat
for S being Language
for U being non empty set
for u1, u2 being Element of U
for I being b3,b4 -interpreter-like Function
for t being b1 -termal string of S holds (((I,u1) -TermEval) . (m + 1)) . t = (((I,u2) -TermEval) . ((m + 1) + n)) . t by Lm6;
theorem :: FOMODEL2:5
for m being Nat
for S being Language
for U being non empty set holds curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by Lm11;
theorem :: FOMODEL2:6
for x, X, Y, Z being set holds
( x in (X \/ Y) \/ Z iff ( x in X or x in Y or x in Z ) ) by Lm8;
theorem :: FOMODEL2:7
for S being Language holds S -formulasOfMaxDepth 0 = AtomicFormulasOf S by Lm16;
definition
let S be Language;
let m be Nat;
redefine func S -formulasOfMaxDepth m means :Def28: :: FOMODEL2:def 28
for U being non empty set
for I being Element of U -InterpretersOf S holds it = dom ((I,m) -TruthEval);
compatibility
for b1 being Subset of (((AllSymbolsOf S) *) \ {{}}) holds
( b1 = S -formulasOfMaxDepth m iff for U being non empty set
for I being Element of U -InterpretersOf S holds b1 = dom ((I,m) -TruthEval) )
proof
reconsider mm = m as Element of NAT by ORDINAL1:def_12;
set SS = AllSymbolsOf S;
set Phim = S -formulasOfMaxDepth m;
defpred S1[ set ] means for U being non empty set
for I being Element of U -InterpretersOf S holds $1 = dom ((I,m) -TruthEval);
let x be Subset of (((AllSymbolsOf S) *) \ {{}}); ::_thesis: ( x = S -formulasOfMaxDepth m iff for U being non empty set
for I being Element of U -InterpretersOf S holds x = dom ((I,m) -TruthEval) )
thus ( x = S -formulasOfMaxDepth m implies S1[x] ) ::_thesis: ( ( for U being non empty set
for I being Element of U -InterpretersOf S holds x = dom ((I,m) -TruthEval) ) implies x = S -formulasOfMaxDepth m )
proof
assume A1: x = S -formulasOfMaxDepth m ; ::_thesis: S1[x]
thus for U being non empty set
for I being Element of U -InterpretersOf S holds x = dom ((I,m) -TruthEval) ::_thesis: verum
proof
let U be non empty set ; ::_thesis: for I being Element of U -InterpretersOf S holds x = dom ((I,m) -TruthEval)
set II = U -InterpretersOf S;
let I be Element of U -InterpretersOf S; ::_thesis: x = dom ((I,m) -TruthEval)
S -formulasOfMaxDepth m = dom ((I,mm) -TruthEval) by Def23;
hence x = dom ((I,m) -TruthEval) by A1; ::_thesis: verum
end;
end;
assume A2: S1[x] ; ::_thesis: x = S -formulasOfMaxDepth m
for U being non empty set
for I being Element of U -InterpretersOf S
for nn being Element of NAT st m = nn holds
x = dom ((I,nn) -TruthEval) by A2;
hence x = S -formulasOfMaxDepth m by Def23; ::_thesis: verum
end;
end;
:: deftheorem Def28 defines -formulasOfMaxDepth FOMODEL2:def_28_:_
for S being Language
for m being Nat
for b3 being Subset of (((AllSymbolsOf S) *) \ {{}}) holds
( b3 = S -formulasOfMaxDepth m iff for U being non empty set
for I being Element of U -InterpretersOf S holds b3 = dom ((I,m) -TruthEval) );
Lm17: for m being Nat
for S being Language
for U being non empty set holds curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(Funcs ((S -formulasOfMaxDepth m),BOOLEAN))
proof
let m be Nat; ::_thesis: for S being Language
for U being non empty set holds curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(Funcs ((S -formulasOfMaxDepth m),BOOLEAN))
let S be Language; ::_thesis: for U being non empty set holds curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(Funcs ((S -formulasOfMaxDepth m),BOOLEAN))
let U be non empty set ; ::_thesis: curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(Funcs ((S -formulasOfMaxDepth m),BOOLEAN))
reconsider mm = m as Element of NAT by ORDINAL1:def_12;
set Fm = (S,U) -TruthEval m;
set II = U -InterpretersOf S;
set SS = AllSymbolsOf S;
set Phim = S -formulasOfMaxDepth m;
reconsider f = curry ((S,U) -TruthEval m) as Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by Lm11;
A1: dom f = U -InterpretersOf S by FUNCT_2:def_1;
now__::_thesis:_for_x_being_set_st_x_in_U_-InterpretersOf_S_holds_
f_._x_in_Funcs_((S_-formulasOfMaxDepth_m),BOOLEAN)
let x be set ; ::_thesis: ( x in U -InterpretersOf S implies f . x in Funcs ((S -formulasOfMaxDepth m),BOOLEAN) )
assume x in U -InterpretersOf S ; ::_thesis: f . x in Funcs ((S -formulasOfMaxDepth m),BOOLEAN)
then reconsider Ix = x as Element of U -InterpretersOf S ;
reconsider g = f . Ix as Element of PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN) ;
( g is BOOLEAN -valued & g = (Ix,m) -TruthEval ) ;
then ( g = g & dom g = S -formulasOfMaxDepth m & rng g c= BOOLEAN ) by Def28;
hence f . x in Funcs ((S -formulasOfMaxDepth m),BOOLEAN) by FUNCT_2:def_2; ::_thesis: verum
end;
hence curry ((S,U) -TruthEval m) is Function of (U -InterpretersOf S),(Funcs ((S -formulasOfMaxDepth m),BOOLEAN)) by A1, FUNCT_2:3; ::_thesis: verum
end;
theorem Th8: :: FOMODEL2:8
for m being Nat
for S being Language
for U being non empty set holds
( (S,U) -TruthEval m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) & ((S,U) -TruthEval) . m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) )
proof
let m be Nat; ::_thesis: for S being Language
for U being non empty set holds
( (S,U) -TruthEval m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) & ((S,U) -TruthEval) . m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) )
let S be Language; ::_thesis: for U being non empty set holds
( (S,U) -TruthEval m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) & ((S,U) -TruthEval) . m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) )
let U be non empty set ; ::_thesis: ( (S,U) -TruthEval m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) & ((S,U) -TruthEval) . m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) )
set Fm = (S,U) -TruthEval m;
set II = U -InterpretersOf S;
set Phim = S -formulasOfMaxDepth m;
set SS = AllSymbolsOf S;
reconsider mm = m as Element of NAT by ORDINAL1:def_12;
reconsider Fmm = (S,U) -TruthEval m as PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN ;
dom ((S,U) -TruthEval m) c= [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ;
then A1: uncurry (curry ((S,U) -TruthEval m)) = (S,U) -TruthEval m by FUNCT_5:50;
reconsider f = curry ((S,U) -TruthEval m) as Function of (U -InterpretersOf S),(Funcs ((S -formulasOfMaxDepth m),BOOLEAN)) by Lm17;
( rng f c= Funcs ((S -formulasOfMaxDepth m),BOOLEAN) & dom f = U -InterpretersOf S ) by FUNCT_2:def_1;
then ( (S,U) -TruthEval m = (S,U) -TruthEval m & dom ((S,U) -TruthEval m) = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & rng ((S,U) -TruthEval m) c= BOOLEAN ) by A1, FUNCT_5:26;
hence (S,U) -TruthEval m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) by FUNCT_2:def_2; ::_thesis: ((S,U) -TruthEval) . m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN)
then ((S,U) -TruthEval) . mm in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) by Def21;
hence ((S,U) -TruthEval) . m in Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) ; ::_thesis: verum
end;
definition
let S be Language;
let m be Nat;
funcm -ExFormulasOf S -> set equals :: FOMODEL2:def 29
{ (<*v*> ^ phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : verum } ;
coherence
{ (<*v*> ^ phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : verum } is set ;
funcm -NorFormulasOf S -> set equals :: FOMODEL2:def 30
{ ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : verum } ;
coherence
{ ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : verum } is set ;
end;
:: deftheorem defines -ExFormulasOf FOMODEL2:def_29_:_
for S being Language
for m being Nat holds m -ExFormulasOf S = { (<*v*> ^ phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : verum } ;
:: deftheorem defines -NorFormulasOf FOMODEL2:def_30_:_
for S being Language
for m being Nat holds m -NorFormulasOf S = { ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : verum } ;
definition
let S be Language;
let w1, w2 be string of S;
:: original: ^
redefine funcw1 ^ w2 -> string of S;
coherence
w1 ^ w2 is string of S
proof
set SS = AllSymbolsOf S;
reconsider w11 = w1, w22 = w2 as non empty FinSequence of AllSymbolsOf S by FOMODEL0:5;
w11 ^ w22 is non empty FinSequence of AllSymbolsOf S ;
hence w1 ^ w2 is string of S by FOMODEL0:5; ::_thesis: verum
end;
end;
definition
let S be Language;
let s be Element of S;
:: original: <*
redefine func<*s*> -> string of S;
coherence
<*s*> is string of S
proof
set SS = AllSymbolsOf S;
<*s*> is non empty FinSequence of AllSymbolsOf S ;
hence <*s*> is string of S by FOMODEL0:5; ::_thesis: verum
end;
end;
Lm18: for m being Nat
for S being Language
for U being non empty set holds dom (NorIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -NorFormulasOf S):]
proof
let m be Nat; ::_thesis: for S being Language
for U being non empty set holds dom (NorIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -NorFormulasOf S):]
let S be Language; ::_thesis: for U being non empty set holds dom (NorIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -NorFormulasOf S):]
let U be non empty set ; ::_thesis: dom (NorIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -NorFormulasOf S):]
set mm = m;
set II = U -InterpretersOf S;
set SS = AllSymbolsOf S;
set N = TheNorSymbOf S;
set Fm = (S,U) -TruthEval m;
set Phim = S -formulasOfMaxDepth m;
set IT = NorIterator ((S,U) -TruthEval m);
deffunc H1( FinSequence, FinSequence) -> set = (<*(TheNorSymbOf S)*> ^ $1) ^ $2;
defpred S1[] means verum;
set A = { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } ;
set LH = dom (NorIterator ((S,U) -TruthEval m));
set RH = [:(U -InterpretersOf S), { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } :];
(S,U) -TruthEval m is Element of Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) by Th8;
then reconsider Fmm = (S,U) -TruthEval m as Function of [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN ;
A1: dom Fmm = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] by FUNCT_2:def_1;
reconsider ITT = NorIterator ((S,U) -TruthEval m) as PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN ;
A2: [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] = { [x,y] where x is Element of U -InterpretersOf S, y is Element of ((AllSymbolsOf S) *) \ {{}} : verum } by DOMAIN_1:19;
now__::_thesis:_for_z_being_set_st_z_in_dom_(NorIterator_((S,U)_-TruthEval_m))_holds_
z_in_[:(U_-InterpretersOf_S),_{__H1(phi1,phi2)_where_phi1,_phi2_is_Element_of_S_-formulasOfMaxDepth_m_:_S1[]__}__:]
let z be set ; ::_thesis: ( z in dom (NorIterator ((S,U) -TruthEval m)) implies z in [:(U -InterpretersOf S), { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } :] )
assume A3: z in dom (NorIterator ((S,U) -TruthEval m)) ; ::_thesis: z in [:(U -InterpretersOf S), { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } :]
then z in [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ;
then consider x being Element of U -InterpretersOf S, y being Element of ((AllSymbolsOf S) *) \ {{}} such that
A4: z = [x,y] by A2;
consider phi1, phi2 being Element of ((AllSymbolsOf S) *) \ {{}} such that
A5: ( y = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 & [x,phi1] in dom ((S,U) -TruthEval m) & [x,phi2] in dom ((S,U) -TruthEval m) ) by Def19, A3, A4;
reconsider phi11 = phi1, phi22 = phi2 as Element of S -formulasOfMaxDepth m by A5, A1, ZFMISC_1:87;
set yy = H1(phi11,phi22);
( x in U -InterpretersOf S & H1(phi11,phi22) in { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } & z = [x,H1(phi11,phi22)] ) by A4, A5;
hence z in [:(U -InterpretersOf S), { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } :] by ZFMISC_1:def_2; ::_thesis: verum
end;
then A6: dom (NorIterator ((S,U) -TruthEval m)) c= [:(U -InterpretersOf S), { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } :] by TARSKI:def_3;
now__::_thesis:_for_z_being_set_st_z_in_[:(U_-InterpretersOf_S),_{__H1(phi1,phi2)_where_phi1,_phi2_is_Element_of_S_-formulasOfMaxDepth_m_:_S1[]__}__:]_holds_
z_in_dom_(NorIterator_((S,U)_-TruthEval_m))
let z be set ; ::_thesis: ( z in [:(U -InterpretersOf S), { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } :] implies z in dom (NorIterator ((S,U) -TruthEval m)) )
assume z in [:(U -InterpretersOf S), { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } :] ; ::_thesis: z in dom (NorIterator ((S,U) -TruthEval m))
then consider xx, yy being set such that
A7: ( xx in U -InterpretersOf S & yy in { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } & z = [xx,yy] ) by ZFMISC_1:def_2;
reconsider x = xx as Element of U -InterpretersOf S by A7;
consider phi1, phi2 being Element of S -formulasOfMaxDepth m such that
A8: yy = H1(phi1,phi2) by A7;
reconsider phi11 = phi1, phi22 = phi2 as string of S ;
(<*(TheNorSymbOf S)*> ^ phi11) ^ phi22 is string of S ;
then reconsider y = yy as string of S by A8;
( [x,phi1] in dom Fmm & [x,phi2] in dom Fmm ) by A1;
then [x,y] in dom (NorIterator ((S,U) -TruthEval m)) by A8, Def19;
hence z in dom (NorIterator ((S,U) -TruthEval m)) by A7; ::_thesis: verum
end;
then [:(U -InterpretersOf S), { H1(phi1,phi2) where phi1, phi2 is Element of S -formulasOfMaxDepth m : S1[] } :] c= dom (NorIterator ((S,U) -TruthEval m)) by TARSKI:def_3;
hence dom (NorIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -NorFormulasOf S):] by A6, XBOOLE_0:def_10; ::_thesis: verum
end;
Lm19: for m being Nat
for S being Language
for U being non empty set holds dom (ExIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -ExFormulasOf S):]
proof
let m be Nat; ::_thesis: for S being Language
for U being non empty set holds dom (ExIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -ExFormulasOf S):]
let S be Language; ::_thesis: for U being non empty set holds dom (ExIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -ExFormulasOf S):]
let U be non empty set ; ::_thesis: dom (ExIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -ExFormulasOf S):]
set mm = m;
set II = U -InterpretersOf S;
set SS = AllSymbolsOf S;
set N = TheNorSymbOf S;
set Fm = (S,U) -TruthEval m;
set Phim = S -formulasOfMaxDepth m;
set IT = ExIterator ((S,U) -TruthEval m);
set L = LettersOf S;
deffunc H1( set , FinSequence) -> set = <*$1*> ^ $2;
defpred S1[] means verum;
set A = { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } ;
set LH = dom (ExIterator ((S,U) -TruthEval m));
set RH = [:(U -InterpretersOf S), { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } :];
(S,U) -TruthEval m is Element of Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) by Th8;
then reconsider Fmm = (S,U) -TruthEval m as Function of [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN ;
A1: dom Fmm = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] by FUNCT_2:def_1;
reconsider ITT = ExIterator ((S,U) -TruthEval m) as PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN ;
A2: [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] = { [x,y] where x is Element of U -InterpretersOf S, y is Element of ((AllSymbolsOf S) *) \ {{}} : verum } by DOMAIN_1:19;
now__::_thesis:_for_z_being_set_st_z_in_dom_(ExIterator_((S,U)_-TruthEval_m))_holds_
z_in_[:(U_-InterpretersOf_S),_{__H1(v,phi)_where_v_is_Element_of_LettersOf_S,_phi_is_Element_of_S_-formulasOfMaxDepth_m_:_S1[]__}__:]
let z be set ; ::_thesis: ( z in dom (ExIterator ((S,U) -TruthEval m)) implies z in [:(U -InterpretersOf S), { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } :] )
assume A3: z in dom (ExIterator ((S,U) -TruthEval m)) ; ::_thesis: z in [:(U -InterpretersOf S), { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } :]
then z in [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):] ;
then consider x being Element of U -InterpretersOf S, y being Element of ((AllSymbolsOf S) *) \ {{}} such that
A4: z = [x,y] by A2;
consider v being literal Element of S, w being string of S such that
A5: ( [x,w] in dom ((S,U) -TruthEval m) & y = <*v*> ^ w ) by Def17, A3, A4;
reconsider phi = w as Element of S -formulasOfMaxDepth m by A1, A5, ZFMISC_1:87;
reconsider vv = v as Element of LettersOf S by FOMODEL1:def_14;
y = <*vv*> ^ phi by A5;
then y in { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } ;
hence z in [:(U -InterpretersOf S), { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } :] by A4, ZFMISC_1:def_2; ::_thesis: verum
end;
then A6: dom (ExIterator ((S,U) -TruthEval m)) c= [:(U -InterpretersOf S), { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } :] by TARSKI:def_3;
now__::_thesis:_for_z_being_set_st_z_in_[:(U_-InterpretersOf_S),_{__H1(v,phi)_where_v_is_Element_of_LettersOf_S,_phi_is_Element_of_S_-formulasOfMaxDepth_m_:_S1[]__}__:]_holds_
z_in_dom_(ExIterator_((S,U)_-TruthEval_m))
let z be set ; ::_thesis: ( z in [:(U -InterpretersOf S), { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } :] implies z in dom (ExIterator ((S,U) -TruthEval m)) )
assume z in [:(U -InterpretersOf S), { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } :] ; ::_thesis: z in dom (ExIterator ((S,U) -TruthEval m))
then consider xx, yy being set such that
A7: ( xx in U -InterpretersOf S & yy in { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } & z = [xx,yy] ) by ZFMISC_1:def_2;
reconsider x = xx as Element of U -InterpretersOf S by A7;
consider vv being Element of LettersOf S, phi being Element of S -formulasOfMaxDepth m such that
A8: yy = H1(vv,phi) by A7;
reconsider v = vv as literal Element of S ;
reconsider w = phi as string of S ;
( [x,phi] in dom ((S,U) -TruthEval m) & yy = <*v*> ^ w ) by A8, A1;
hence z in dom (ExIterator ((S,U) -TruthEval m)) by A7, Def17; ::_thesis: verum
end;
then [:(U -InterpretersOf S), { H1(v,phi) where v is Element of LettersOf S, phi is Element of S -formulasOfMaxDepth m : S1[] } :] c= dom (ExIterator ((S,U) -TruthEval m)) by TARSKI:def_3;
hence dom (ExIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -ExFormulasOf S):] by A6, XBOOLE_0:def_10; ::_thesis: verum
end;
theorem Th9: :: FOMODEL2:9
for m being Nat
for S being Language holds S -formulasOfMaxDepth (m + 1) = ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m)
proof
let m be Nat; ::_thesis: for S being Language holds S -formulasOfMaxDepth (m + 1) = ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m)
let S be Language; ::_thesis: S -formulasOfMaxDepth (m + 1) = ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m)
set U = the non empty set ;
set n = m + 1;
set II = the non empty set -InterpretersOf S;
set SS = AllSymbolsOf S;
set N = TheNorSymbOf S;
set I = the Element of the non empty set -InterpretersOf S;
reconsider mm = m, nn = m + 1 as Element of NAT by ORDINAL1:def_12;
set F = (S, the non empty set ) -TruthEval ;
set Fn = ((S, the non empty set ) -TruthEval) . nn;
set Fc = curry (((S, the non empty set ) -TruthEval) . nn);
set Dm = S -formulasOfMaxDepth m;
set Dn = S -formulasOfMaxDepth (m + 1);
((S, the non empty set ) -TruthEval) . mm is Element of PFuncs ([:( the non empty set -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN) ;
then reconsider Fm = ((S, the non empty set ) -TruthEval) . mm as PartFunc of [:( the non empty set -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN ;
A1: ( (S, the non empty set ) -TruthEval (m + 1) = ((S, the non empty set ) -TruthEval) . nn & (S, the non empty set ) -TruthEval m = Fm ) by Def21;
reconsider Fcc = curry (((S, the non empty set ) -TruthEval) . nn) as Function of ( the non empty set -InterpretersOf S),(Funcs ((S -formulasOfMaxDepth (m + 1)),BOOLEAN)) by Lm17, A1;
reconsider fn = Fcc . the Element of the non empty set -InterpretersOf S as Function of (S -formulasOfMaxDepth (m + 1)),BOOLEAN ;
Fm is Element of Funcs ([:( the non empty set -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) by Th8;
then reconsider Fmm = Fm as Function of [:( the non empty set -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN ;
( dom fn = S -formulasOfMaxDepth (m + 1) & dom Fcc = the non empty set -InterpretersOf S ) by FUNCT_2:def_1;
then A2: S -formulasOfMaxDepth (m + 1) = proj2 ((dom (((S, the non empty set ) -TruthEval) . nn)) /\ [:{ the Element of the non empty set -InterpretersOf S},(proj2 (dom (((S, the non empty set ) -TruthEval) . nn))):]) by FUNCT_5:31;
A3: ((S, the non empty set ) -TruthEval) . nn = ((ExIterator (((S, the non empty set ) -TruthEval) . mm)) +* (NorIterator (((S, the non empty set ) -TruthEval) . mm))) +* Fm by Def20;
reconsider Em = ExIterator (((S, the non empty set ) -TruthEval) . mm) as PartFunc of [:( the non empty set -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN ;
reconsider dEm = dom Em as Relation of ( the non empty set -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}) ;
reconsider dNm = dom (NorIterator (((S, the non empty set ) -TruthEval) . mm)), dFm = dom Fm as Relation of ( the non empty set -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}) ;
A4: dFm = dom Fmm
.= [:( the non empty set -InterpretersOf S),(S -formulasOfMaxDepth m):] by FUNCT_2:def_1 ;
A5: dom (((S, the non empty set ) -TruthEval) . nn) = (dom ((ExIterator (((S, the non empty set ) -TruthEval) . mm)) +* (NorIterator (((S, the non empty set ) -TruthEval) . mm)))) \/ (dom Fm) by A3, FUNCT_4:def_1
.= (dEm \/ dNm) \/ dFm by FUNCT_4:def_1 ;
set RNNN = m -NorFormulasOf S;
set REEE = m -ExFormulasOf S;
(S, the non empty set ) -TruthEval m = Fm by Def21;
then ( dNm = [:( the non empty set -InterpretersOf S),(m -NorFormulasOf S):] & dEm = [:( the non empty set -InterpretersOf S),(m -ExFormulasOf S):] ) by Lm18, Lm19;
then A6: (dEm \/ dNm) \/ dFm = [:( the non empty set -InterpretersOf S),((m -ExFormulasOf S) \/ (m -NorFormulasOf S)):] \/ [:( the non empty set -InterpretersOf S),(S -formulasOfMaxDepth m):] by A4, ZFMISC_1:97
.= [:( the non empty set -InterpretersOf S),(((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m)):] by ZFMISC_1:97 ;
reconsider sub = [:{ the Element of the non empty set -InterpretersOf S},(((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m)):] as Subset of [:( the non empty set -InterpretersOf S),(((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m)):] by ZFMISC_1:96;
S -formulasOfMaxDepth (m + 1) = rng ([:( the non empty set -InterpretersOf S),(((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m)):] /\ sub) by A6, A2, A5, RELAT_1:160
.= ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m) by RELAT_1:160 ;
hence S -formulasOfMaxDepth (m + 1) = ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m) ; ::_thesis: verum
end;
theorem Th10: :: FOMODEL2:10
for S being Language holds AtomicFormulasOf S is S -prefix
proof
let S be Language; ::_thesis: AtomicFormulasOf S is S -prefix
set AF = AtomicFormulasOf S;
set SS = AllSymbolsOf S;
set TT = AllTermsOf S;
set C = S -multiCat ;
now__::_thesis:_for_p1,_q1,_p2,_q2_being_AllSymbolsOf_S_-valued_FinSequence_st_p1_in_AtomicFormulasOf_S_&_p2_in_AtomicFormulasOf_S_&_p1_^_q1_=_p2_^_q2_holds_
(_p1_=_p2_&_q1_=_q2_)
let p1, q1, p2, q2 be AllSymbolsOf S -valued FinSequence; ::_thesis: ( p1 in AtomicFormulasOf S & p2 in AtomicFormulasOf S & p1 ^ q1 = p2 ^ q2 implies ( p1 = p2 & q1 = q2 ) )
assume p1 in AtomicFormulasOf S ; ::_thesis: ( p2 in AtomicFormulasOf S & p1 ^ q1 = p2 ^ q2 implies ( p1 = p2 & q1 = q2 ) )
then consider phi1 being string of S such that
A1: ( p1 = phi1 & phi1 is 0wff ) ;
assume p2 in AtomicFormulasOf S ; ::_thesis: ( p1 ^ q1 = p2 ^ q2 implies ( p1 = p2 & q1 = q2 ) )
then consider phi2 being string of S such that
A2: ( p2 = phi2 & phi2 is 0wff ) ;
consider r1 being relational Element of S, T1 being abs (ar r1) -element Element of (AllTermsOf S) * such that
A3: phi1 = <*r1*> ^ ((S -multiCat) . T1) by A1, FOMODEL1:def_35;
consider r2 being relational Element of S, T2 being abs (ar r2) -element Element of (AllTermsOf S) * such that
A4: phi2 = <*r2*> ^ ((S -multiCat) . T2) by A2, FOMODEL1:def_35;
assume p1 ^ q1 = p2 ^ q2 ; ::_thesis: ( p1 = p2 & q1 = q2 )
then A5: <*r1*> ^ (((S -multiCat) . T1) ^ q1) = (<*r2*> ^ ((S -multiCat) . T2)) ^ q2 by A1, A2, A3, A4, FINSEQ_1:32
.= <*r2*> ^ (((S -multiCat) . T2) ^ q2) by FINSEQ_1:32 ;
then A6: r1 = (<*r2*> ^ (((S -multiCat) . T2) ^ q2)) . 1 by FINSEQ_1:41
.= r2 by FINSEQ_1:41 ;
set n = abs (ar r1);
set nT = (abs (ar r1)) -tuples_on (AllTermsOf S);
reconsider T11 = T1, T22 = T2 as Element of (abs (ar r1)) -tuples_on (AllTermsOf S) by A6, FOMODEL0:16;
reconsider P = (S -multiCat) .: ((abs (ar r1)) -tuples_on (AllTermsOf S)) as AllSymbolsOf S -prefix set ;
A7: ( (((AllSymbolsOf S) *) \ {{}}) * c= ((AllSymbolsOf S) *) * & (AllTermsOf S) * c= (((AllSymbolsOf S) *) \ {{}}) * ) ;
then ( T1 in ((AllSymbolsOf S) *) * & T2 in ((AllSymbolsOf S) *) * & dom (S -multiCat) = ((AllSymbolsOf S) *) * ) by FUNCT_2:def_1, TARSKI:def_3;
then A8: ( (S -multiCat) . T11 in P & (S -multiCat) . T22 in P ) by FUNCT_1:def_6;
reconsider T111 = T1, T222 = T2 as Element of ((AllSymbolsOf S) *) * by A7, TARSKI:def_3;
((S -multiCat) . T111) ^ q1 = ((S -multiCat) . T222) ^ q2 by A6, A5, FINSEQ_1:33;
hence ( p1 = p2 & q1 = q2 ) by A1, A2, A8, A3, A4, A6, FOMODEL0:def_20; ::_thesis: verum
end;
then AtomicFormulasOf S is AllSymbolsOf S -prefix by FOMODEL0:def_20;
hence AtomicFormulasOf S is S -prefix ; ::_thesis: verum
end;
registration
let S be Language;
cluster AtomicFormulasOf S -> S -prefix for set ;
coherence
for b1 being set st b1 = AtomicFormulasOf S holds
b1 is S -prefix by Th10;
end;
registration
let S be Language;
clusterS -formulasOfMaxDepth 0 -> S -prefix for set ;
coherence
for b1 being set st b1 = S -formulasOfMaxDepth 0 holds
b1 is S -prefix
proof
S -formulasOfMaxDepth 0 = AtomicFormulasOf S by Lm16;
hence for b1 being set st b1 = S -formulasOfMaxDepth 0 holds
b1 is S -prefix ; ::_thesis: verum
end;
end;
definition
let S be Language;
let phi be wff string of S;
func Depth phi -> Nat means :Def31: :: FOMODEL2:def 31
( phi is it -wff & ( for n being Nat st phi is n -wff holds
it <= n ) );
existence
ex b1 being Nat st
( phi is b1 -wff & ( for n being Nat st phi is n -wff holds
b1 <= n ) )
proof
defpred S1[ Nat] means phi is $1 -wff ;
consider m being Nat such that
A1: phi is m -wff by Def25;
A2: ex n being Nat st S1[n] by A1;
consider IT being Nat such that
A3: ( S1[IT] & ( for n being Nat st S1[n] holds
IT <= n ) ) from NAT_1:sch_5(A2);
take IT ; ::_thesis: ( phi is IT -wff & ( for n being Nat st phi is n -wff holds
IT <= n ) )
thus ( phi is IT -wff & ( for n being Nat st phi is n -wff holds
IT <= n ) ) by A3; ::_thesis: verum
end;
uniqueness
for b1, b2 being Nat st phi is b1 -wff & ( for n being Nat st phi is n -wff holds
b1 <= n ) & phi is b2 -wff & ( for n being Nat st phi is n -wff holds
b2 <= n ) holds
b1 = b2
proof
let IT1, IT2 be Nat; ::_thesis: ( phi is IT1 -wff & ( for n being Nat st phi is n -wff holds
IT1 <= n ) & phi is IT2 -wff & ( for n being Nat st phi is n -wff holds
IT2 <= n ) implies IT1 = IT2 )
assume A4: ( phi is IT1 -wff & ( for n being Nat st phi is n -wff holds
IT1 <= n ) ) ; ::_thesis: ( not phi is IT2 -wff or ex n being Nat st
( phi is n -wff & not IT2 <= n ) or IT1 = IT2 )
assume A5: ( phi is IT2 -wff & ( for n being Nat st phi is n -wff holds
IT2 <= n ) ) ; ::_thesis: IT1 = IT2
A6: IT2 <= IT1 by A5, A4;
IT1 <= IT2 by A4, A5;
hence IT1 = IT2 by A6, XXREAL_0:1; ::_thesis: verum
end;
end;
:: deftheorem Def31 defines Depth FOMODEL2:def_31_:_
for S being Language
for phi being wff string of S
for b3 being Nat holds
( b3 = Depth phi iff ( phi is b3 -wff & ( for n being Nat st phi is n -wff holds
b3 <= n ) ) );
Lm20: for m being Nat
for S being Language
for phi being wff string of S st phi in (S -formulasOfMaxDepth m) \ (S -formulasOfMaxDepth 0) holds
ex n being Nat st
( phi is n + 1 -wff & not phi is n -wff & n + 1 <= m )
proof
let m be Nat; ::_thesis: for S being Language
for phi being wff string of S st phi in (S -formulasOfMaxDepth m) \ (S -formulasOfMaxDepth 0) holds
ex n being Nat st
( phi is n + 1 -wff & not phi is n -wff & n + 1 <= m )
let S be Language; ::_thesis: for phi being wff string of S st phi in (S -formulasOfMaxDepth m) \ (S -formulasOfMaxDepth 0) holds
ex n being Nat st
( phi is n + 1 -wff & not phi is n -wff & n + 1 <= m )
let phi be wff string of S; ::_thesis: ( phi in (S -formulasOfMaxDepth m) \ (S -formulasOfMaxDepth 0) implies ex n being Nat st
( phi is n + 1 -wff & not phi is n -wff & n + 1 <= m ) )
set Phim = S -formulasOfMaxDepth m;
set Phi0 = S -formulasOfMaxDepth 0;
assume phi in (S -formulasOfMaxDepth m) \ (S -formulasOfMaxDepth 0) ; ::_thesis: ex n being Nat st
( phi is n + 1 -wff & not phi is n -wff & n + 1 <= m )
then not phi in S -formulasOfMaxDepth 0 by XBOOLE_0:def_5;
then not phi is 0 -wff by Def24;
then Depth phi <> 0 by Def31;
then consider n being Nat such that
A2: Depth phi = n + 1 by NAT_1:6;
take n ; ::_thesis: ( phi is n + 1 -wff & not phi is n -wff & n + 1 <= m )
thus ( phi is n + 1 -wff & not phi is n -wff ) by Def31, A2; ::_thesis: n + 1 <= m
thus n + 1 <= m by A2, Def31; ::_thesis: verum
end;
Lm21: for m being Nat
for S being Language
for w being string of S st w is m + 1 -wff & not w is m -wff & ( for v being literal Element of S
for phi being b1 -wff string of S holds not w = <*v*> ^ phi ) holds
ex phi1, phi2 being b1 -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2
proof
let m be Nat; ::_thesis: for S being Language
for w being string of S st w is m + 1 -wff & not w is m -wff & ( for v being literal Element of S
for phi being m -wff string of S holds not w = <*v*> ^ phi ) holds
ex phi1, phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2
let S be Language; ::_thesis: for w being string of S st w is m + 1 -wff & not w is m -wff & ( for v being literal Element of S
for phi being m -wff string of S holds not w = <*v*> ^ phi ) holds
ex phi1, phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2
let w be string of S; ::_thesis: ( w is m + 1 -wff & not w is m -wff & ( for v being literal Element of S
for phi being m -wff string of S holds not w = <*v*> ^ phi ) implies ex phi1, phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 )
set Phim = S -formulasOfMaxDepth m;
set PhiM = S -formulasOfMaxDepth (m + 1);
set L = LettersOf S;
set N = TheNorSymbOf S;
set EF = m -ExFormulasOf S;
set NF = m -NorFormulasOf S;
assume w is m + 1 -wff ; ::_thesis: ( w is m -wff or ex v being literal Element of S ex phi being m -wff string of S st w = <*v*> ^ phi or ex phi1, phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 )
then w in S -formulasOfMaxDepth (m + 1) by Def24;
then w in ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m) by Th9;
then A1: ( w in m -ExFormulasOf S or w in m -NorFormulasOf S or w in S -formulasOfMaxDepth m ) by Lm8;
assume A2: not w is m -wff ; ::_thesis: ( ex v being literal Element of S ex phi being m -wff string of S st w = <*v*> ^ phi or ex phi1, phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 )
assume A3: for v being literal Element of S
for phi being m -wff string of S holds not w = <*v*> ^ phi ; ::_thesis: ex phi1, phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2
( w in m -ExFormulasOf S implies ex v being literal Element of S ex phi being m -wff string of S st w = <*v*> ^ phi )
proof
assume w in m -ExFormulasOf S ; ::_thesis: ex v being literal Element of S ex phi being m -wff string of S st w = <*v*> ^ phi
then consider vv being Element of LettersOf S, phi being Element of S -formulasOfMaxDepth m such that
A4: w = <*vv*> ^ phi ;
reconsider phii = phi as m -wff string of S by Def24;
reconsider v = vv as literal Element of S ;
take v ; ::_thesis: ex phi being m -wff string of S st w = <*v*> ^ phi
take phii ; ::_thesis: w = <*v*> ^ phii
thus w = <*v*> ^ phii by A4; ::_thesis: verum
end;
then consider phi1, phi2 being Element of S -formulasOfMaxDepth m such that
A5: w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 by A3, A2, A1, Def24;
reconsider phi11 = phi1, phi22 = phi2 as m -wff string of S by Def24;
take phi11 ; ::_thesis: ex phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi11) ^ phi2
take phi22 ; ::_thesis: w = (<*(TheNorSymbOf S)*> ^ phi11) ^ phi22
thus w = (<*(TheNorSymbOf S)*> ^ phi11) ^ phi22 by A5; ::_thesis: verum
end;
registration
let S be Language;
let m be Nat;
let phi1, phi2 be m -wff string of S;
cluster(<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 -> m + 1 -wff for string of S;
coherence
for b1 being string of S st b1 = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 holds
b1 is m + 1 -wff
proof
set N = TheNorSymbOf S;
set Phim = S -formulasOfMaxDepth m;
set NF = m -NorFormulasOf S;
set PhiM = S -formulasOfMaxDepth (m + 1);
set EF = m -ExFormulasOf S;
set IT = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2;
reconsider phi11 = phi1, phi22 = phi2 as Element of S -formulasOfMaxDepth m by Def24;
(<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 = (<*(TheNorSymbOf S)*> ^ phi11) ^ phi22 ;
then (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 in m -NorFormulasOf S ;
then (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 in ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m) by Lm8;
then reconsider ITT = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 as Element of S -formulasOfMaxDepth (m + 1) by Th9;
ITT is m + 1 -wff by Def24;
hence for b1 being string of S st b1 = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 holds
b1 is m + 1 -wff ; ::_thesis: verum
end;
end;
registration
let S be Language;
let phi1, phi2 be wff string of S;
cluster(<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 -> wff for string of S;
coherence
for b1 being string of S st b1 = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 holds
b1 is wff
proof
set N = TheNorSymbOf S;
set IT = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2;
consider m being Nat such that
A1: phi1 is m -wff by Def25;
consider n being Nat such that
A2: phi2 is n -wff by Def25;
reconsider phi11 = phi1 as m + (0 * n) -wff string of S by A1;
reconsider phi22 = phi2 as n + (0 * m) -wff string of S by A2;
reconsider phi111 = phi11 as m + n -wff string of S ;
reconsider phi222 = phi22 as m + n -wff string of S ;
(<*(TheNorSymbOf S)*> ^ phi111) ^ phi222 is (m + n) + 1 -wff string of S ;
hence for b1 being string of S st b1 = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 holds
b1 is wff ; ::_thesis: verum
end;
end;
registration
let S be Language;
let m be Nat;
let phi be m -wff string of S;
let v be literal Element of S;
cluster<*v*> ^ phi -> m + 1 -wff for string of S;
coherence
for b1 being string of S st b1 = <*v*> ^ phi holds
b1 is m + 1 -wff
proof
set L = LettersOf S;
set Phim = S -formulasOfMaxDepth m;
set NF = m -NorFormulasOf S;
set PhiM = S -formulasOfMaxDepth (m + 1);
set EF = m -ExFormulasOf S;
set IT = <*v*> ^ phi;
reconsider vv = v as Element of LettersOf S by FOMODEL1:def_14;
reconsider phii = phi as Element of S -formulasOfMaxDepth m by Def24;
<*v*> ^ phi = <*vv*> ^ phii ;
then <*v*> ^ phi in m -ExFormulasOf S ;
then <*v*> ^ phi in ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m) by Lm8;
then reconsider ITT = <*v*> ^ phi as Element of S -formulasOfMaxDepth (m + 1) by Th9;
ITT is m + 1 -wff by Def24;
hence for b1 being string of S st b1 = <*v*> ^ phi holds
b1 is m + 1 -wff ; ::_thesis: verum
end;
end;
registration
let S be Language;
let l be literal Element of S;
let phi be wff string of S;
cluster<*l*> ^ phi -> wff for string of S;
coherence
for b1 being string of S st b1 = <*l*> ^ phi holds
b1 is wff
proof
consider m being Nat such that
A1: phi is m -wff by Def25;
reconsider phii = phi as m -wff string of S by A1;
set IT = <*l*> ^ phii;
<*l*> ^ phii is m + 1 -wff ;
hence for b1 being string of S st b1 = <*l*> ^ phi holds
b1 is wff ; ::_thesis: verum
end;
end;
registration
let S be Language;
let w be string of S;
let s be non relational Element of S;
cluster<*s*> ^ w -> non 0wff for string of S;
coherence
for b1 being string of S st b1 = <*s*> ^ w holds
not b1 is 0wff
proof
set FC = S -firstChar ;
set IT = <*s*> ^ w;
set SS = AllSymbolsOf S;
(S -firstChar) . (<*s*> ^ w) = (<*s*> ^ w) . 1 by FOMODEL0:6
.= s by FINSEQ_1:41 ;
hence for b1 being string of S st b1 = <*s*> ^ w holds
not b1 is 0wff ; ::_thesis: verum
end;
end;
registration
let S be Language;
let w1, w2 be string of S;
let s be non relational Element of S;
cluster(<*s*> ^ w1) ^ w2 -> non 0wff for string of S;
coherence
for b1 being string of S st b1 = (<*s*> ^ w1) ^ w2 holds
not b1 is 0wff
proof
(<*s*> ^ w1) ^ w2 = <*s*> ^ (w1 ^ w2) by FINSEQ_1:32;
hence for b1 being string of S st b1 = (<*s*> ^ w1) ^ w2 holds
not b1 is 0wff ; ::_thesis: verum
end;
end;
registration
let S be Language;
cluster TheNorSymbOf S -> non relational for Element of S;
coherence
for b1 being Element of S st b1 = TheNorSymbOf S holds
not b1 is relational ;
end;
registration
let S be Language;
let w be string of S;
cluster<*(TheNorSymbOf S)*> ^ w -> non 0wff for string of S;
coherence
for b1 being string of S st b1 = <*(TheNorSymbOf S)*> ^ w holds
not b1 is 0wff ;
end;
registration
let S be Language;
let l be literal Element of S;
let w be string of S;
cluster<*l*> ^ w -> non 0wff for string of S;
coherence
for b1 being string of S st b1 = <*l*> ^ w holds
not b1 is 0wff ;
end;
definition
let S be Language;
let w be string of S;
attrw is exal means :Def32: :: FOMODEL2:def 32
(S -firstChar) . w is literal ;
end;
:: deftheorem Def32 defines exal FOMODEL2:def_32_:_
for S being Language
for w being string of S holds
( w is exal iff (S -firstChar) . w is literal );
registration
let S be Language;
let w be string of S;
let l be literal Element of S;
cluster<*l*> ^ w -> exal for string of S;
coherence
for b1 being string of S st b1 = <*l*> ^ w holds
b1 is exal
proof
set ww = <*l*> ^ w;
set F = S -firstChar ;
(S -firstChar) . (<*l*> ^ w) = (<*l*> ^ w) . 1 by FOMODEL0:6
.= l by FINSEQ_1:41 ;
hence for b1 being string of S st b1 = <*l*> ^ w holds
b1 is exal by Def32; ::_thesis: verum
end;
end;
registration
let S be Language;
let m1 be non zero Nat;
cluster non empty Relation-like NAT -defined Function-like finite FinSequence-like FinSubsequence-like V199() m1 -wff wff exal for Element of ((AllSymbolsOf S) *) \ {{}};
existence
ex b1 being m1 -wff string of S st b1 is exal
proof
consider m being Nat such that
A1: m1 = m + 1 by NAT_1:6;
set phi = the m -wff string of S;
set l = the literal Element of S;
set psi = <* the literal Element of S*> ^ the m -wff string of S;
reconsider psii = <* the literal Element of S*> ^ the m -wff string of S as m1 -wff string of S by A1;
take psii ; ::_thesis: psii is exal
thus psii is exal ; ::_thesis: verum
end;
end;
registration
let S be Language;
cluster exal -> non 0wff for Element of ((AllSymbolsOf S) *) \ {{}};
coherence
for b1 being string of S st b1 is exal holds
not b1 is 0wff
proof
set F = S -firstChar ;
let w be string of S; ::_thesis: ( w is exal implies not w is 0wff )
assume w is exal ; ::_thesis: not w is 0wff
then (S -firstChar) . w is literal by Def32;
hence not w is 0wff ; ::_thesis: verum
end;
end;
registration
let S be Language;
let m1 be non zero Nat;
cluster non empty Relation-like NAT -defined Function-like finite FinSequence-like FinSubsequence-like V199() non 0wff m1 -wff wff exal for Element of ((AllSymbolsOf S) *) \ {{}};
existence
not for b1 being m1 -wff exal string of S holds b1 is 0wff
proof
set l = the literal Element of S;
consider m being Nat such that
A1: m1 = m + 1 by NAT_1:6;
set phi = the m -wff string of S;
reconsider psi = <* the literal Element of S*> ^ the m -wff string of S as m1 -wff exal string of S by A1;
take psi ; ::_thesis: not psi is 0wff
thus not psi is 0wff ; ::_thesis: verum
end;
end;
registration
let S be Language;
cluster non empty Relation-like NAT -defined Function-like finite FinSequence-like FinSubsequence-like V199() non 0wff wff exal for Element of ((AllSymbolsOf S) *) \ {{}};
existence
not for b1 being wff exal string of S holds b1 is 0wff
proof
set m1 = the non zero Nat;
set phi = the non 0wff the non zero Nat -wff exal string of S;
take the non 0wff the non zero Nat -wff exal string of S ; ::_thesis: not the non 0wff the non zero Nat -wff exal string of S is 0wff
thus not the non 0wff the non zero Nat -wff exal string of S is 0wff ; ::_thesis: verum
end;
end;
Lm22: for S being Language
for phi being wff string of S st not phi is 0wff holds
Depth phi <> 0
proof
let S be Language; ::_thesis: for phi being wff string of S st not phi is 0wff holds
Depth phi <> 0
let phi be wff string of S; ::_thesis: ( not phi is 0wff implies Depth phi <> 0 )
assume not phi is 0wff ; ::_thesis: Depth phi <> 0
then not phi is 0 -wff ;
hence Depth phi <> 0 by Def31; ::_thesis: verum
end;
registration
let S be Language;
let phi be non 0wff wff string of S;
cluster Depth phi -> non zero for Nat;
coherence
for b1 being Nat st b1 = Depth phi holds
not b1 is empty by Lm22;
end;
Lm23: for S being Language
for w being string of S st w is wff & not w is 0wff & not w . 1 in LettersOf S holds
w . 1 = TheNorSymbOf S
proof
let S be Language; ::_thesis: for w being string of S st w is wff & not w is 0wff & not w . 1 in LettersOf S holds
w . 1 = TheNorSymbOf S
let w be string of S; ::_thesis: ( w is wff & not w is 0wff & not w . 1 in LettersOf S implies w . 1 = TheNorSymbOf S )
set L = LettersOf S;
set N = TheNorSymbOf S;
set SS = AllSymbolsOf S;
assume w is wff ; ::_thesis: ( w is 0wff or w . 1 in LettersOf S or w . 1 = TheNorSymbOf S )
then reconsider ww = w as wff string of S ;
set n = Depth ww;
assume not w is 0wff ; ::_thesis: ( w . 1 in LettersOf S or w . 1 = TheNorSymbOf S )
then consider m being Nat such that
A1: Depth ww = m + 1 by NAT_1:6;
A2: ( ww is m + 1 -wff & not ww is m -wff ) by Def31, A1;
percases ( ex v being literal Element of S ex phi being m -wff string of S st w = <*v*> ^ phi or ex phi1, phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 ) by A2, Lm21;
suppose ex v being literal Element of S ex phi being m -wff string of S st w = <*v*> ^ phi ; ::_thesis: ( w . 1 in LettersOf S or w . 1 = TheNorSymbOf S )
then consider v being literal Element of S, phi being m -wff string of S such that
A3: w = <*v*> ^ phi ;
v = w . 1 by A3, FINSEQ_1:41;
hence ( w . 1 in LettersOf S or w . 1 = TheNorSymbOf S ) by FOMODEL1:def_14; ::_thesis: verum
end;
suppose ex phi1, phi2 being m -wff string of S st w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 ; ::_thesis: ( w . 1 in LettersOf S or w . 1 = TheNorSymbOf S )
then consider phi1, phi2 being m -wff string of S such that
A4: w = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 ;
w . 1 = (<*(TheNorSymbOf S)*> ^ (phi1 ^ phi2)) . 1 by A4, FINSEQ_1:32
.= TheNorSymbOf S by FINSEQ_1:41 ;
hence ( w . 1 in LettersOf S or w . 1 = TheNorSymbOf S ) ; ::_thesis: verum
end;
end;
end;
registration
let S be Language;
let w be non 0wff wff string of S;
cluster(S -firstChar) . w -> non relational for Element of S;
coherence
for b1 being Element of S st b1 = (S -firstChar) . w holds
not b1 is relational
proof
set F = S -firstChar ;
set L = LettersOf S;
set N = TheNorSymbOf S;
set SS = AllSymbolsOf S;
percases ( w . 1 in LettersOf S or w . 1 = TheNorSymbOf S ) by Lm23;
suppose w . 1 in LettersOf S ; ::_thesis: for b1 being Element of S st b1 = (S -firstChar) . w holds
not b1 is relational
then reconsider IT = (S -firstChar) . w as Element of LettersOf S by FOMODEL0:6;
not IT is relational ;
hence for b1 being Element of S st b1 = (S -firstChar) . w holds
not b1 is relational ; ::_thesis: verum
end;
suppose w . 1 = TheNorSymbOf S ; ::_thesis: for b1 being Element of S st b1 = (S -firstChar) . w holds
not b1 is relational
hence for b1 being Element of S st b1 = (S -firstChar) . w holds
not b1 is relational by FOMODEL0:6; ::_thesis: verum
end;
end;
end;
end;
Lm24: for m being Nat
for S being Language holds S -formulasOfMaxDepth m is S -prefix
proof
let m be Nat; ::_thesis: for S being Language holds S -formulasOfMaxDepth m is S -prefix
let S be Language; ::_thesis: S -formulasOfMaxDepth m is S -prefix
set SS = AllSymbolsOf S;
set AF = AtomicFormulasOf S;
set Nor = TheNorSymbOf S;
set Phi0 = S -formulasOfMaxDepth 0;
set F = S -firstChar ;
defpred S1[ Nat] means S -formulasOfMaxDepth $1 is AllSymbolsOf S -prefix ;
A1: S1[ 0 ] ;
A2: for n being Nat st S1[n] holds
S1[n + 1]
proof
let n be Nat; ::_thesis: ( S1[n] implies S1[n + 1] )
assume A3: S1[n] ; ::_thesis: S1[n + 1]
set N = n + 1;
set PhiN = S -formulasOfMaxDepth (n + 1);
set Phin = S -formulasOfMaxDepth n;
A4: (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) is AllSymbolsOf S -prefix
proof
now__::_thesis:_for_p1,_q1,_p2,_q2_being_AllSymbolsOf_S_-valued_FinSequence_st_p1_in_(S_-formulasOfMaxDepth_(n_+_1))_\_(S_-formulasOfMaxDepth_0)_&_p2_in_(S_-formulasOfMaxDepth_(n_+_1))_\_(S_-formulasOfMaxDepth_0)_&_p1_^_q1_=_p2_^_q2_holds_
(_p1_=_p2_&_q1_=_q2_)
let p1, q1, p2, q2 be AllSymbolsOf S -valued FinSequence; ::_thesis: ( p1 in (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) & p2 in (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) & p1 ^ q1 = p2 ^ q2 implies ( b1 = b3 & b2 = b4 ) )
assume A5: p1 in (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) ; ::_thesis: ( p2 in (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) & p1 ^ q1 = p2 ^ q2 implies ( b1 = b3 & b2 = b4 ) )
then reconsider phi1 = p1 as n + 1 -wff string of S by Def24;
consider m1 being Nat such that
A6: ( phi1 is m1 + 1 -wff & not phi1 is m1 -wff & m1 + 1 <= n + 1 ) by Lm20, A5;
assume A7: p2 in (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) ; ::_thesis: ( p1 ^ q1 = p2 ^ q2 implies ( b1 = b3 & b2 = b4 ) )
then reconsider phi2 = p2 as n + 1 -wff string of S by Def24;
consider m2 being Nat such that
A8: ( phi2 is m2 + 1 -wff & not phi2 is m2 -wff & m2 + 1 <= n + 1 ) by Lm20, A7;
A9: ( m1 <= n & m2 <= n ) by A6, A8, XREAL_1:6;
then consider k1 being Nat such that
A10: n = m1 + k1 by NAT_1:10;
consider k2 being Nat such that
A11: n = m2 + k2 by A9, NAT_1:10;
assume A12: p1 ^ q1 = p2 ^ q2 ; ::_thesis: ( b1 = b3 & b2 = b4 )
percases ( ex v1 being literal Element of S ex phi11 being m1 -wff string of S st phi1 = <*v1*> ^ phi11 or ex r1, s1 being m1 -wff string of S st phi1 = (<*(TheNorSymbOf S)*> ^ r1) ^ s1 ) by Lm21, A6;
suppose ex v1 being literal Element of S ex phi11 being m1 -wff string of S st phi1 = <*v1*> ^ phi11 ; ::_thesis: ( b1 = b3 & b2 = b4 )
then consider v1 being literal Element of S, phi11 being m1 -wff string of S such that
A13: phi1 = <*v1*> ^ phi11 ;
percases ( ex v2 being literal Element of S ex phi22 being m2 -wff string of S st phi2 = <*v2*> ^ phi22 or ex r2, s2 being m2 -wff string of S st phi2 = (<*(TheNorSymbOf S)*> ^ r2) ^ s2 ) by Lm21, A8;
suppose ex v2 being literal Element of S ex phi22 being m2 -wff string of S st phi2 = <*v2*> ^ phi22 ; ::_thesis: ( b1 = b3 & b2 = b4 )
then consider v2 being literal Element of S, phi22 being m2 -wff string of S such that
A14: phi2 = <*v2*> ^ phi22 ;
(<*v2*> ^ phi22) ^ q2 = <*v1*> ^ (phi11 ^ q1) by A14, A12, A13, FINSEQ_1:32;
then A15: <*v2*> ^ (phi22 ^ q2) = <*v1*> ^ (phi11 ^ q1) by FINSEQ_1:32;
then A16: (<*v2*> ^ (phi22 ^ q2)) . 1 = v1 by FINSEQ_1:41;
then A17: v2 = v1 by FINSEQ_1:41;
<*v1*> ^ (phi22 ^ q2) = <*v1*> ^ (phi11 ^ q1) by A15, A16, FINSEQ_1:41;
then A18: phi22 ^ q2 = phi11 ^ q1 by FINSEQ_1:33;
( phi11 is m1 + (0 * k1) -wff & phi22 is m2 + (0 * k2) -wff ) ;
then ( phi11 in S -formulasOfMaxDepth n & phi22 in S -formulasOfMaxDepth n ) by A10, A11, Def24;
hence ( p1 = p2 & q1 = q2 ) by A13, A17, A14, A3, A18, FOMODEL0:def_20; ::_thesis: verum
end;
suppose ex r2, s2 being m2 -wff string of S st phi2 = (<*(TheNorSymbOf S)*> ^ r2) ^ s2 ; ::_thesis: ( b1 = b3 & b2 = b4 )
then consider r2, s2 being m2 -wff string of S such that
A19: phi2 = (<*(TheNorSymbOf S)*> ^ r2) ^ s2 ;
phi1 . 1 = (phi2 ^ q2) . 1 by A12, FOMODEL0:28
.= phi2 . 1 by FOMODEL0:28
.= (<*(TheNorSymbOf S)*> ^ (r2 ^ s2)) . 1 by A19, FINSEQ_1:32
.= TheNorSymbOf S by FINSEQ_1:41 ;
hence ( p1 = p2 & q1 = q2 ) by A13, FINSEQ_1:41; ::_thesis: verum
end;
end;
end;
suppose ex r1, s1 being m1 -wff string of S st phi1 = (<*(TheNorSymbOf S)*> ^ r1) ^ s1 ; ::_thesis: ( b1 = b3 & b2 = b4 )
then consider r1, s1 being m1 -wff string of S such that
A20: phi1 = (<*(TheNorSymbOf S)*> ^ r1) ^ s1 ;
A21: phi1 . 1 = (<*(TheNorSymbOf S)*> ^ (r1 ^ s1)) . 1 by A20, FINSEQ_1:32
.= TheNorSymbOf S by FINSEQ_1:41 ;
percases ( ex v2 being literal Element of S ex phi22 being m2 -wff string of S st phi2 = <*v2*> ^ phi22 or ex r2, s2 being m2 -wff string of S st phi2 = (<*(TheNorSymbOf S)*> ^ r2) ^ s2 ) by A8, Lm21;
suppose ex v2 being literal Element of S ex phi22 being m2 -wff string of S st phi2 = <*v2*> ^ phi22 ; ::_thesis: ( b1 = b3 & b2 = b4 )
then consider v2 being literal Element of S, phi22 being m2 -wff string of S such that
A22: phi2 = <*v2*> ^ phi22 ;
phi1 . 1 = (phi2 ^ q2) . 1 by A12, FOMODEL0:28
.= (<*v2*> ^ phi22) . 1 by A22, FOMODEL0:28
.= v2 by FINSEQ_1:41 ;
hence ( p1 = p2 & q1 = q2 ) by A21; ::_thesis: verum
end;
suppose ex r2, s2 being m2 -wff string of S st phi2 = (<*(TheNorSymbOf S)*> ^ r2) ^ s2 ; ::_thesis: ( b1 = b3 & b2 = b4 )
then consider r2, s2 being m2 -wff string of S such that
A23: phi2 = (<*(TheNorSymbOf S)*> ^ r2) ^ s2 ;
( r1 is m1 + (0 * k1) -wff & r2 is m2 + (0 * k2) -wff ) ;
then A24: ( r1 in S -formulasOfMaxDepth n & r2 in S -formulasOfMaxDepth n & s1 in S -formulasOfMaxDepth n & s2 in S -formulasOfMaxDepth n ) by A10, A11, Def24;
<*(TheNorSymbOf S)*> ^ ((r1 ^ s1) ^ q1) = (<*(TheNorSymbOf S)*> ^ (r1 ^ s1)) ^ q1 by FINSEQ_1:32
.= ((<*(TheNorSymbOf S)*> ^ r2) ^ s2) ^ q2 by A20, A23, A12, FINSEQ_1:32
.= (<*(TheNorSymbOf S)*> ^ (r2 ^ s2)) ^ q2 by FINSEQ_1:32
.= <*(TheNorSymbOf S)*> ^ ((r2 ^ s2) ^ q2) by FINSEQ_1:32 ;
then (r1 ^ s1) ^ q1 = (r2 ^ s2) ^ q2 by FINSEQ_1:33
.= r2 ^ (s2 ^ q2) by FINSEQ_1:32 ;
then r1 ^ (s1 ^ q1) = r2 ^ (s2 ^ q2) by FINSEQ_1:32;
then ( r1 = r2 & s1 ^ q1 = s2 ^ q2 ) by A3, A24, FOMODEL0:def_20;
hence ( p1 = p2 & q1 = q2 ) by A20, A23, A3, A24, FOMODEL0:def_20; ::_thesis: verum
end;
end;
end;
end;
end;
hence (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) is AllSymbolsOf S -prefix by FOMODEL0:def_20; ::_thesis: verum
end;
now__::_thesis:_for_p1,_q1,_p2,_q2_being_AllSymbolsOf_S_-valued_FinSequence_st_p1_in_S_-formulasOfMaxDepth_(n_+_1)_&_p2_in_S_-formulasOfMaxDepth_(n_+_1)_&_p1_^_q1_=_p2_^_q2_holds_
(_p1_=_p2_&_q1_=_q2_)
let p1, q1, p2, q2 be AllSymbolsOf S -valued FinSequence; ::_thesis: ( p1 in S -formulasOfMaxDepth (n + 1) & p2 in S -formulasOfMaxDepth (n + 1) & p1 ^ q1 = p2 ^ q2 implies ( b1 = b3 & b2 = b4 ) )
assume A25: ( p1 in S -formulasOfMaxDepth (n + 1) & p2 in S -formulasOfMaxDepth (n + 1) & p1 ^ q1 = p2 ^ q2 ) ; ::_thesis: ( b1 = b3 & b2 = b4 )
then reconsider phi1 = p1, phi2 = p2 as n + 1 -wff string of S by Def24;
percases ( phi1 in S -formulasOfMaxDepth 0 or not phi1 in S -formulasOfMaxDepth 0 ) ;
supposeA26: phi1 in S -formulasOfMaxDepth 0 ; ::_thesis: ( b1 = b3 & b2 = b4 )
then phi1 is 0 -wff by Def24;
then reconsider phi11 = phi1 as 0wff string of S ;
(S -firstChar) . phi11 is relational Element of S ;
then phi1 . 1 is relational Element of S by FOMODEL0:6;
then (phi2 ^ q2) . 1 is relational Element of S by A25, FOMODEL0:28;
then phi2 . 1 is relational Element of S by FOMODEL0:28;
then (S -firstChar) . phi2 is relational by FOMODEL0:6;
then phi2 is 0wff ;
then phi2 is 0 -wff ;
then ( phi2 in S -formulasOfMaxDepth 0 & phi1 in S -formulasOfMaxDepth 0 ) by A26, Def24;
hence ( p1 = p2 & q1 = q2 ) by A25, FOMODEL0:def_20; ::_thesis: verum
end;
supposeA27: not phi1 in S -formulasOfMaxDepth 0 ; ::_thesis: ( b1 = b3 & b2 = b4 )
then not phi1 is 0 -wff by Def24;
then reconsider phi11 = phi1 as non 0wff wff string of S ;
(S -firstChar) . phi2 = phi2 . 1 by FOMODEL0:6
.= (phi1 ^ q1) . 1 by A25, FOMODEL0:28
.= phi1 . 1 by FOMODEL0:28
.= (S -firstChar) . phi11 by FOMODEL0:6 ;
then not phi2 is 0 -wff ;
then not phi2 in S -formulasOfMaxDepth 0 by Def24;
then ( phi1 in (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) & phi2 in (S -formulasOfMaxDepth (n + 1)) \ (S -formulasOfMaxDepth 0) ) by A25, A27, XBOOLE_0:def_5;
hence ( p1 = p2 & q1 = q2 ) by A25, A4, FOMODEL0:def_20; ::_thesis: verum
end;
end;
end;
hence S1[n + 1] by FOMODEL0:def_20; ::_thesis: verum
end;
for n being Nat holds S1[n] from NAT_1:sch_2(A1, A2);
then S -formulasOfMaxDepth m is AllSymbolsOf S -prefix ;
hence S -formulasOfMaxDepth m is S -prefix ; ::_thesis: verum
end;
registration
let S be Language;
let m be Nat;
clusterS -formulasOfMaxDepth m -> S -prefix for set ;
coherence
for b1 being set st b1 = S -formulasOfMaxDepth m holds
b1 is S -prefix by Lm24;
end;
definition
let S be Language;
:: original: AllFormulasOf
redefine func AllFormulasOf S -> Subset of (((AllSymbolsOf S) *) \ {{}});
coherence
AllFormulasOf S is Subset of (((AllSymbolsOf S) *) \ {{}})
proof
set FF = AllFormulasOf S;
set SS = AllSymbolsOf S;
set IT = ((AllSymbolsOf S) *) \ {{}};
now__::_thesis:_for_x_being_set_st_x_in_AllFormulasOf_S_holds_
x_in_((AllSymbolsOf_S)_*)_\_{{}}
let x be set ; ::_thesis: ( x in AllFormulasOf S implies x in ((AllSymbolsOf S) *) \ {{}} )
assume x in AllFormulasOf S ; ::_thesis: x in ((AllSymbolsOf S) *) \ {{}}
then consider phi being string of S such that
A1: ( x = phi & ex m being Nat st phi is m -wff ) ;
thus x in ((AllSymbolsOf S) *) \ {{}} by A1; ::_thesis: verum
end;
hence AllFormulasOf S is Subset of (((AllSymbolsOf S) *) \ {{}}) by TARSKI:def_3; ::_thesis: verum
end;
end;
registration
let S be Language;
cluster -> wff for Element of AllFormulasOf S;
coherence
for b1 being Element of AllFormulasOf S holds b1 is wff
proof
set FF = AllFormulasOf S;
let x be Element of AllFormulasOf S; ::_thesis: x is wff
x in AllFormulasOf S ;
then consider phi being string of S such that
A1: ( x = phi & ex m being Nat st phi is m -wff ) ;
thus x is wff by A1; ::_thesis: verum
end;
end;
Lm25: for S being Language holds AllFormulasOf S is S -prefix
proof
let S be Language; ::_thesis: AllFormulasOf S is S -prefix
set FF = AllFormulasOf S;
set SS = AllSymbolsOf S;
now__::_thesis:_for_p1,_q1,_p2,_q2_being_AllSymbolsOf_S_-valued_FinSequence_st_p1_in_AllFormulasOf_S_&_p2_in_AllFormulasOf_S_&_p1_^_q1_=_p2_^_q2_holds_
(_p1_=_p2_&_q1_=_q2_)
let p1, q1, p2, q2 be AllSymbolsOf S -valued FinSequence; ::_thesis: ( p1 in AllFormulasOf S & p2 in AllFormulasOf S & p1 ^ q1 = p2 ^ q2 implies ( p1 = p2 & q1 = q2 ) )
assume A1: ( p1 in AllFormulasOf S & p2 in AllFormulasOf S & p1 ^ q1 = p2 ^ q2 ) ; ::_thesis: ( p1 = p2 & q1 = q2 )
then reconsider phi1 = p1, phi2 = p2 as wff string of S ;
consider m1 being Nat such that
A2: phi1 is m1 -wff by Def25;
consider m2 being Nat such that
A3: phi2 is m2 -wff by Def25;
set N = m1 + m2;
set PhiN = S -formulasOfMaxDepth (m1 + m2);
( phi1 is m1 + (0 * m2) -wff & phi2 is m2 + (0 * m1) -wff ) by A2, A3;
then reconsider phi11 = phi1, phi22 = phi2 as m1 + m2 -wff string of S ;
( phi11 in S -formulasOfMaxDepth (m1 + m2) & phi22 in S -formulasOfMaxDepth (m1 + m2) ) by Def24;
hence ( p1 = p2 & q1 = q2 ) by A1, FOMODEL0:def_20; ::_thesis: verum
end;
then AllFormulasOf S is AllSymbolsOf S -prefix by FOMODEL0:def_20;
hence AllFormulasOf S is S -prefix ; ::_thesis: verum
end;
registration
let S be Language;
cluster AllFormulasOf S -> S -prefix for set ;
coherence
for b1 being set st b1 = AllFormulasOf S holds
b1 is S -prefix by Lm25;
end;
theorem :: FOMODEL2:11
for m being Nat
for S being Language
for U being non empty set holds dom (NorIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -NorFormulasOf S):] by Lm18;
theorem :: FOMODEL2:12
for m being Nat
for S being Language
for U being non empty set holds dom (ExIterator ((S,U) -TruthEval m)) = [:(U -InterpretersOf S),(m -ExFormulasOf S):] by Lm19;
Lm26: for U being non empty set holds (U -deltaInterpreter) " {1} = (U -concatenation) .: (id (1 -tuples_on U))
proof
let U be non empty set ; ::_thesis: (U -deltaInterpreter) " {1} = (U -concatenation) .: (id (1 -tuples_on U))
set d = U -deltaInterpreter ;
set f = U -concatenation ;
set U1 = 1 -tuples_on U;
set U2 = 2 -tuples_on U;
set A = (U -concatenation) .: (id (1 -tuples_on U));
set B = 2 -tuples_on U;
A1: (U -deltaInterpreter) " {1} = ((U -concatenation) .: (id (1 -tuples_on U))) /\ ((1 + 1) -tuples_on U) by FOMODEL0:24
.= ((U -concatenation) .: (id (1 -tuples_on U))) /\ ((U -concatenation) .: [:(1 -tuples_on U),(1 -tuples_on U):]) by FOMODEL0:22 ;
reconsider O = (U -concatenation) .: (id (1 -tuples_on U)) as Subset of ((U -concatenation) .: [:(1 -tuples_on U),(1 -tuples_on U):]) by RELAT_1:123;
O /\ ((U -concatenation) .: [:(1 -tuples_on U),(1 -tuples_on U):]) = O null ((U -concatenation) .: [:(1 -tuples_on U),(1 -tuples_on U):])
.= O ;
hence (U -deltaInterpreter) " {1} = (U -concatenation) .: (id (1 -tuples_on U)) by A1; ::_thesis: verum
end;
theorem Th13: :: FOMODEL2:13
for U being non empty set holds (U -deltaInterpreter) " {1} = { <*u,u*> where u is Element of U : verum }
proof
let U be non empty set ; ::_thesis: (U -deltaInterpreter) " {1} = { <*u,u*> where u is Element of U : verum }
set RH = { <*u,u*> where u is Element of U : verum } ;
set LH = (U -deltaInterpreter) " {1};
set X = (U -concatenation) .: (id (1 -tuples_on U));
( (U -deltaInterpreter) " {1} = (U -concatenation) .: (id (1 -tuples_on U)) & (U -concatenation) .: (id (1 -tuples_on U)) = { <*u,u*> where u is Element of U : verum } ) by Lm26, FOMODEL0:38;
hence (U -deltaInterpreter) " {1} = { <*u,u*> where u is Element of U : verum } ; ::_thesis: verum
end;
definition
let S be Language;
:: original: TheEqSymbOf
redefine func TheEqSymbOf S -> Element of S;
coherence
TheEqSymbOf S is Element of S ;
end;
registration
let S be Language;
cluster(ar (TheEqSymbOf S)) + 2 -> zero for number ;
coherence
for b1 being number st b1 = (ar (TheEqSymbOf S)) + 2 holds
b1 is empty
proof
set E = TheEqSymbOf S;
ar (TheEqSymbOf S) = - 2 by FOMODEL1:def_23;
hence for b1 being number st b1 = (ar (TheEqSymbOf S)) + 2 holds
b1 is empty ; ::_thesis: verum
end;
cluster(abs (ar (TheEqSymbOf S))) - 2 -> zero for number ;
coherence
for b1 being number st b1 = (abs (ar (TheEqSymbOf S))) - 2 holds
b1 is empty
proof
set E = TheEqSymbOf S;
A1: abs (- 2) = - (- 2) by ABSVALUE:def_1
.= 2 ;
abs (ar (TheEqSymbOf S)) = 2 by A1, FOMODEL1:def_23;
hence for b1 being number st b1 = (abs (ar (TheEqSymbOf S))) - 2 holds
b1 is empty ; ::_thesis: verum
end;
end;
theorem Th14: :: FOMODEL2:14
for S being Language
for U being non empty set
for phi being 0wff string of S
for I being b1,b2 -interpreter-like Function holds
( ( (S -firstChar) . phi <> TheEqSymbOf S implies I -AtomicEval phi = (I . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)) ) & ( (S -firstChar) . phi = TheEqSymbOf S implies I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms phi)) ) )
proof
let S be Language; ::_thesis: for U being non empty set
for phi being 0wff string of S
for I being S,b1 -interpreter-like Function holds
( ( (S -firstChar) . phi <> TheEqSymbOf S implies I -AtomicEval phi = (I . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)) ) & ( (S -firstChar) . phi = TheEqSymbOf S implies I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms phi)) ) )
let U be non empty set ; ::_thesis: for phi being 0wff string of S
for I being S,U -interpreter-like Function holds
( ( (S -firstChar) . phi <> TheEqSymbOf S implies I -AtomicEval phi = (I . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)) ) & ( (S -firstChar) . phi = TheEqSymbOf S implies I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms phi)) ) )
let phi be 0wff string of S; ::_thesis: for I being S,U -interpreter-like Function holds
( ( (S -firstChar) . phi <> TheEqSymbOf S implies I -AtomicEval phi = (I . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)) ) & ( (S -firstChar) . phi = TheEqSymbOf S implies I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms phi)) ) )
let I be S,U -interpreter-like Function; ::_thesis: ( ( (S -firstChar) . phi <> TheEqSymbOf S implies I -AtomicEval phi = (I . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)) ) & ( (S -firstChar) . phi = TheEqSymbOf S implies I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms phi)) ) )
set TT = AllTermsOf S;
set E = TheEqSymbOf S;
set p = SubTerms phi;
set F = S -firstChar ;
set r = (S -firstChar) . phi;
set n = abs (ar ((S -firstChar) . phi));
set AF = AtomicFormulasOf S;
set d = U -deltaInterpreter ;
set p = SubTerms phi;
set V = I -AtomicEval phi;
set f = (I ===) . ((S -firstChar) . phi);
set UV = I -TermEval ;
set G = I . ((S -firstChar) . phi);
A1: (abs (ar (TheEqSymbOf S))) - 2 = 0 ;
thus ( (S -firstChar) . phi <> TheEqSymbOf S implies I -AtomicEval phi = (I . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)) ) ::_thesis: ( (S -firstChar) . phi = TheEqSymbOf S implies I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms phi)) )
proof
assume (S -firstChar) . phi <> TheEqSymbOf S ; ::_thesis: I -AtomicEval phi = (I . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi))
then not (S -firstChar) . phi in {(TheEqSymbOf S)} by TARSKI:def_1;
then not (S -firstChar) . phi in dom ((TheEqSymbOf S) .--> (U -deltaInterpreter)) ;
hence I -AtomicEval phi = (I . ((S -firstChar) . phi)) . ((I -TermEval) * (SubTerms phi)) by FUNCT_4:11; ::_thesis: verum
end;
assume (S -firstChar) . phi = TheEqSymbOf S ; ::_thesis: I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms phi))
then A2: ( (S -firstChar) . phi in {(TheEqSymbOf S)} & abs (ar ((S -firstChar) . phi)) = 2 ) by A1, TARSKI:def_1;
then (S -firstChar) . phi in dom ((TheEqSymbOf S) .--> (U -deltaInterpreter)) by FUNCOP_1:13;
then (I ===) . ((S -firstChar) . phi) = ((TheEqSymbOf S) .--> (U -deltaInterpreter)) . ((S -firstChar) . phi) by FUNCT_4:13
.= U -deltaInterpreter by A2, FUNCOP_1:7 ;
hence I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms phi)) ; ::_thesis: verum
end;
theorem :: FOMODEL2:15
for S being Language
for U being non empty set
for I being b1,b2 -interpreter-like Function
for phi being 0wff string of S st (S -firstChar) . phi = TheEqSymbOf S holds
( I -AtomicEval phi = 1 iff (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) )
proof
let S be Language; ::_thesis: for U being non empty set
for I being S,b1 -interpreter-like Function
for phi being 0wff string of S st (S -firstChar) . phi = TheEqSymbOf S holds
( I -AtomicEval phi = 1 iff (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) )
let U be non empty set ; ::_thesis: for I being S,U -interpreter-like Function
for phi being 0wff string of S st (S -firstChar) . phi = TheEqSymbOf S holds
( I -AtomicEval phi = 1 iff (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) )
let I be S,U -interpreter-like Function; ::_thesis: for phi being 0wff string of S st (S -firstChar) . phi = TheEqSymbOf S holds
( I -AtomicEval phi = 1 iff (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) )
let phi be 0wff string of S; ::_thesis: ( (S -firstChar) . phi = TheEqSymbOf S implies ( I -AtomicEval phi = 1 iff (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) ) )
set E = TheEqSymbOf S;
set p = SubTerms phi;
set F = S -firstChar ;
set s = (S -firstChar) . phi;
set UV = I -TermEval ;
set V = I -AtomicEval phi;
set d = U -deltaInterpreter ;
set U2 = 2 -tuples_on U;
set TT = AllTermsOf S;
set D = { <*u,u*> where u is Element of U : verum } ;
set n = abs (ar ((S -firstChar) . phi));
A1: 2 -tuples_on U = { <*u1,u2*> where u1, u2 is Element of U : verum } by FINSEQ_2:99;
A2: (abs (ar (TheEqSymbOf S))) - 2 = 0 ;
reconsider r = (S -firstChar) . phi as relational Element of S ;
set f = (I ===) . r;
reconsider EE = TheEqSymbOf S as relational Element of S ;
assume A3: (S -firstChar) . phi = TheEqSymbOf S ; ::_thesis: ( I -AtomicEval phi = 1 iff (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) )
then ( I -AtomicEval phi = (U -deltaInterpreter) . ((I -TermEval) * (SubTerms phi)) & abs (ar ((S -firstChar) . phi)) = 2 ) by Th14, A2;
then ( I -AtomicEval phi = 1 iff (I -TermEval) * (SubTerms phi) in (U -deltaInterpreter) " {1} ) by FOMODEL0:25;
then A4: ( I -AtomicEval phi = 1 iff (I -TermEval) * (SubTerms phi) in { <*u,u*> where u is Element of U : verum } ) by Th13;
reconsider pp = SubTerms phi as 2 -element FinSequence of AllTermsOf S by A3, A2, FINSEQ_1:def_11;
reconsider q = (I -TermEval) * pp as FinSequence of U ;
reconsider qq = q as Element of 2 -tuples_on U by FOMODEL0:16;
qq in 2 -tuples_on U ;
then consider u1, u2 being Element of U such that
A5: qq = <*u1,u2*> by A1;
A6: ( qq . 1 = u1 & qq . 2 = u2 ) by A5, FINSEQ_1:44;
1 <= 2 ;
then ( 1 <= 1 & 1 <= len q & 1 <= 2 & 2 <= len q ) by CARD_1:def_7;
then ( 1 in Seg (len q) & 2 in Seg (len q) ) ;
then ( 1 in dom q & 2 in dom q ) by FINSEQ_1:def_3;
then A7: ( q . 1 = (I -TermEval) . ((SubTerms phi) . 1) & q . 2 = (I -TermEval) . ((SubTerms phi) . 2) ) by FUNCT_1:12;
( q in { <*u,u*> where u is Element of U : verum } implies (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) )
proof
assume q in { <*u,u*> where u is Element of U : verum } ; ::_thesis: (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2)
then consider u being Element of U such that
A8: <*u,u*> = q ;
( q . 1 = u & q . 2 = u ) by A8, FINSEQ_1:44;
hence (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) by A7; ::_thesis: verum
end;
hence ( I -AtomicEval phi = 1 iff (I -TermEval) . ((SubTerms phi) . 1) = (I -TermEval) . ((SubTerms phi) . 2) ) by A4, A7, A5, A6; ::_thesis: verum
end;
registration
let S be Language;
let m be Nat;
clusterm -ExFormulasOf S -> non empty for set ;
coherence
for b1 being set st b1 = m -ExFormulasOf S holds
not b1 is empty
proof
set IT = m -ExFormulasOf S;
set L = LettersOf S;
set Phim = S -formulasOfMaxDepth m;
set l = the Element of LettersOf S;
set phi = the Element of S -formulasOfMaxDepth m;
set x = <* the Element of LettersOf S*> ^ the Element of S -formulasOfMaxDepth m;
<* the Element of LettersOf S*> ^ the Element of S -formulasOfMaxDepth m in m -ExFormulasOf S ;
hence for b1 being set st b1 = m -ExFormulasOf S holds
not b1 is empty ; ::_thesis: verum
end;
end;
registration
let S be Language;
let m be Nat;
clusterm -NorFormulasOf S -> non empty for set ;
coherence
for b1 being set st b1 = m -NorFormulasOf S holds
not b1 is empty
proof
set IT = m -NorFormulasOf S;
set Phim = S -formulasOfMaxDepth m;
set N = TheNorSymbOf S;
set phi1 = the Element of S -formulasOfMaxDepth m;
set phi2 = the Element of S -formulasOfMaxDepth m;
(<*(TheNorSymbOf S)*> ^ the Element of S -formulasOfMaxDepth m) ^ the Element of S -formulasOfMaxDepth m in m -NorFormulasOf S ;
hence for b1 being set st b1 = m -NorFormulasOf S holds
not b1 is empty ; ::_thesis: verum
end;
end;
definition
let S be Language;
let m be Nat;
:: original: -NorFormulasOf
redefine funcm -NorFormulasOf S -> Subset of (((AllSymbolsOf S) *) \ {{}});
coherence
m -NorFormulasOf S is Subset of (((AllSymbolsOf S) *) \ {{}})
proof
set IT = m -NorFormulasOf S;
set Phim = S -formulasOfMaxDepth m;
set N = TheNorSymbOf S;
set SS = AllSymbolsOf S;
now__::_thesis:_for_x_being_set_st_x_in_m_-NorFormulasOf_S_holds_
x_in_((AllSymbolsOf_S)_*)_\_{{}}
let x be set ; ::_thesis: ( x in m -NorFormulasOf S implies x in ((AllSymbolsOf S) *) \ {{}} )
assume x in m -NorFormulasOf S ; ::_thesis: x in ((AllSymbolsOf S) *) \ {{}}
then consider phi1, phi2 being Element of S -formulasOfMaxDepth m such that
A1: x = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 ;
thus x in ((AllSymbolsOf S) *) \ {{}} by A1; ::_thesis: verum
end;
hence m -NorFormulasOf S is Subset of (((AllSymbolsOf S) *) \ {{}}) by TARSKI:def_3; ::_thesis: verum
end;
end;
registration
let S be Language;
let w be exal string of S;
cluster(S -firstChar) . w -> literal for Element of S;
coherence
for b1 being Element of S st b1 = (S -firstChar) . w holds
b1 is literal by Def32;
end;
registration
let S be Language;
let m be Nat;
cluster -> non exal for Element of m -NorFormulasOf S;
coherence
for b1 being Element of m -NorFormulasOf S holds not b1 is exal
proof
set IT = m -NorFormulasOf S;
set Phim = S -formulasOfMaxDepth m;
set F = S -firstChar ;
set N = TheNorSymbOf S;
set SS = AllSymbolsOf S;
let x be Element of m -NorFormulasOf S; ::_thesis: not x is exal
x in m -NorFormulasOf S ;
then consider phi1, phi2 being Element of S -formulasOfMaxDepth m such that
A1: x = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 ;
reconsider phi = x as string of S ;
(S -firstChar) . phi = phi . 1 by FOMODEL0:6
.= (<*(TheNorSymbOf S)*> ^ (phi1 ^ phi2)) . 1 by A1, FINSEQ_1:32
.= TheNorSymbOf S by FINSEQ_1:41 ;
hence not x is exal ; ::_thesis: verum
end;
end;
Lm27: for m being Nat
for S being Language
for phi being wff string of S st Depth phi = m + 1 & phi is exal holds
phi in m -ExFormulasOf S
proof
let m be Nat; ::_thesis: for S being Language
for phi being wff string of S st Depth phi = m + 1 & phi is exal holds
phi in m -ExFormulasOf S
let S be Language; ::_thesis: for phi being wff string of S st Depth phi = m + 1 & phi is exal holds
phi in m -ExFormulasOf S
let phi be wff string of S; ::_thesis: ( Depth phi = m + 1 & phi is exal implies phi in m -ExFormulasOf S )
set p = Depth phi;
set Phim = S -formulasOfMaxDepth m;
set E = m -ExFormulasOf S;
set PhiM = S -formulasOfMaxDepth (m + 1);
set N = m -NorFormulasOf S;
A1: (S -formulasOfMaxDepth (m + 1)) \ (S -formulasOfMaxDepth m) = (((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m)) \ (S -formulasOfMaxDepth m) by Th9
.= ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \ (S -formulasOfMaxDepth m) by XBOOLE_1:40 ;
assume Depth phi = m + 1 ; ::_thesis: ( not phi is exal or phi in m -ExFormulasOf S )
then ( phi is m + 1 -wff & not phi is m -wff ) by Def31;
then ( phi in S -formulasOfMaxDepth (m + 1) & not phi in S -formulasOfMaxDepth m ) by Def24;
then A3: phi in (S -formulasOfMaxDepth (m + 1)) \ (S -formulasOfMaxDepth m) by XBOOLE_0:def_5;
assume phi is exal ; ::_thesis: phi in m -ExFormulasOf S
then not phi in m -NorFormulasOf S ;
hence phi in m -ExFormulasOf S by A3, A1, XBOOLE_0:def_3; ::_thesis: verum
end;
Lm28: for S being Language
for l being literal Element of S
for phi1 being wff string of S holds Depth (<*l*> ^ phi1) > Depth phi1
proof
let S be Language; ::_thesis: for l being literal Element of S
for phi1 being wff string of S holds Depth (<*l*> ^ phi1) > Depth phi1
let l be literal Element of S; ::_thesis: for phi1 being wff string of S holds Depth (<*l*> ^ phi1) > Depth phi1
let phi1 be wff string of S; ::_thesis: Depth (<*l*> ^ phi1) > Depth phi1
set nor = TheNorSymbOf S;
set phi = <*l*> ^ phi1;
set m = Depth phi1;
set M = Depth (<*l*> ^ phi1);
set L = LettersOf S;
consider n being Nat such that
A1: Depth (<*l*> ^ phi1) = n + 1 by NAT_1:6;
set Phin = S -formulasOfMaxDepth n;
<*l*> ^ phi1 in n -ExFormulasOf S by Lm27, A1;
then consider v being Element of LettersOf S, psi being Element of S -formulasOfMaxDepth n such that
A2: <*l*> ^ phi1 = <*v*> ^ psi ;
Depth phi1 <= n by Def31;
then (Depth phi1) + 0 < n + 1 by XREAL_1:8;
hence Depth (<*l*> ^ phi1) > Depth phi1 by A1; ::_thesis: verum
end;
definition
let S be Language;
let m be Nat;
:: original: -ExFormulasOf
redefine funcm -ExFormulasOf S -> Subset of (((AllSymbolsOf S) *) \ {{}});
coherence
m -ExFormulasOf S is Subset of (((AllSymbolsOf S) *) \ {{}})
proof
set IT = m -ExFormulasOf S;
set SS = AllSymbolsOf S;
set Phim = S -formulasOfMaxDepth m;
set L = LettersOf S;
now__::_thesis:_for_x_being_set_st_x_in_m_-ExFormulasOf_S_holds_
x_in_((AllSymbolsOf_S)_*)_\_{{}}
let x be set ; ::_thesis: ( x in m -ExFormulasOf S implies x in ((AllSymbolsOf S) *) \ {{}} )
assume x in m -ExFormulasOf S ; ::_thesis: x in ((AllSymbolsOf S) *) \ {{}}
then consider l being Element of LettersOf S, phi being Element of S -formulasOfMaxDepth m such that
A1: x = <*l*> ^ phi ;
thus x in ((AllSymbolsOf S) *) \ {{}} by A1; ::_thesis: verum
end;
hence m -ExFormulasOf S is Subset of (((AllSymbolsOf S) *) \ {{}}) by TARSKI:def_3; ::_thesis: verum
end;
end;
registration
let S be Language;
let m be Nat;
cluster -> exal for Element of m -ExFormulasOf S;
coherence
for b1 being Element of m -ExFormulasOf S holds b1 is exal
proof
set E = m -ExFormulasOf S;
set L = LettersOf S;
set Phim = S -formulasOfMaxDepth m;
let x be Element of m -ExFormulasOf S; ::_thesis: x is exal
x in m -ExFormulasOf S ;
then consider l being Element of LettersOf S, phi being Element of S -formulasOfMaxDepth m such that
A1: x = <*l*> ^ phi ;
thus x is exal by A1; ::_thesis: verum
end;
end;
Lm29: for m being Nat
for S being Language
for phi being wff string of S st Depth phi = m + 1 & not phi is exal holds
phi in m -NorFormulasOf S
proof
let m be Nat; ::_thesis: for S being Language
for phi being wff string of S st Depth phi = m + 1 & not phi is exal holds
phi in m -NorFormulasOf S
let S be Language; ::_thesis: for phi being wff string of S st Depth phi = m + 1 & not phi is exal holds
phi in m -NorFormulasOf S
let phi be wff string of S; ::_thesis: ( Depth phi = m + 1 & not phi is exal implies phi in m -NorFormulasOf S )
set p = Depth phi;
set Phim = S -formulasOfMaxDepth m;
set E = m -ExFormulasOf S;
set PhiM = S -formulasOfMaxDepth (m + 1);
set N = m -NorFormulasOf S;
A1: (S -formulasOfMaxDepth (m + 1)) \ (S -formulasOfMaxDepth m) = (((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \/ (S -formulasOfMaxDepth m)) \ (S -formulasOfMaxDepth m) by Th9
.= ((m -ExFormulasOf S) \/ (m -NorFormulasOf S)) \ (S -formulasOfMaxDepth m) by XBOOLE_1:40 ;
assume Depth phi = m + 1 ; ::_thesis: ( phi is exal or phi in m -NorFormulasOf S )
then ( phi is m + 1 -wff & not phi is m -wff ) by Def31;
then ( phi in S -formulasOfMaxDepth (m + 1) & not phi in S -formulasOfMaxDepth m ) by Def24;
then A3: phi in (S -formulasOfMaxDepth (m + 1)) \ (S -formulasOfMaxDepth m) by XBOOLE_0:def_5;
assume not phi is exal ; ::_thesis: phi in m -NorFormulasOf S
then not phi in m -ExFormulasOf S ;
hence phi in m -NorFormulasOf S by A1, A3, XBOOLE_0:def_3; ::_thesis: verum
end;
registration
let S be Language;
cluster non literal for Element of AllSymbolsOf S;
existence
not for b1 being Element of S holds b1 is literal
proof
take TheNorSymbOf S ; ::_thesis: not TheNorSymbOf S is literal
thus not TheNorSymbOf S is literal ; ::_thesis: verum
end;
end;
registration
let S be Language;
let w be string of S;
let s be non literal Element of S;
cluster<*s*> ^ w -> non exal for string of S;
coherence
for b1 being string of S st b1 = <*s*> ^ w holds
not b1 is exal
proof
set IT = <*s*> ^ w;
set F = S -firstChar ;
set SS = AllSymbolsOf S;
(S -firstChar) . (<*s*> ^ w) = (<*s*> ^ w) . 1 by FOMODEL0:6
.= s by FINSEQ_1:41 ;
hence for b1 being string of S st b1 = <*s*> ^ w holds
not b1 is exal ; ::_thesis: verum
end;
end;
registration
let S be Language;
let w1, w2 be string of S;
let s be non literal Element of S;
cluster(<*s*> ^ w1) ^ w2 -> non exal for string of S;
coherence
for b1 being string of S st b1 = (<*s*> ^ w1) ^ w2 holds
not b1 is exal
proof
(<*s*> ^ w1) ^ w2 = <*s*> ^ (w1 ^ w2) by FINSEQ_1:32;
hence for b1 being string of S st b1 = (<*s*> ^ w1) ^ w2 holds
not b1 is exal ; ::_thesis: verum
end;
end;
registration
let S be Language;
cluster TheNorSymbOf S -> non literal for Element of S;
coherence
for b1 being Element of S st b1 = TheNorSymbOf S holds
not b1 is literal ;
end;
theorem Th16: :: FOMODEL2:16
for S being Language
for phi being wff string of S holds phi in AllFormulasOf S
proof
let S be Language; ::_thesis: for phi being wff string of S holds phi in AllFormulasOf S
let phi be wff string of S; ::_thesis: phi in AllFormulasOf S
set AF = AllFormulasOf S;
consider m being Nat such that
A1: phi is m -wff by Def25;
thus phi in AllFormulasOf S by A1; ::_thesis: verum
end;
Lm30: for S being Language
for phi1, phi2 being wff string of S holds
( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi1 & Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi2 )
proof
let S be Language; ::_thesis: for phi1, phi2 being wff string of S holds
( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi1 & Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi2 )
let phi1, phi2 be wff string of S; ::_thesis: ( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi1 & Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi2 )
set nor = TheNorSymbOf S;
set phi = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2;
set m1 = Depth phi1;
set m2 = Depth phi2;
set M = Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2);
set L = LettersOf S;
set FF = AllFormulasOf S;
set SS = AllSymbolsOf S;
consider n being Nat such that
A1: Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = n + 1 by NAT_1:6;
set Phin = S -formulasOfMaxDepth n;
(<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 in n -NorFormulasOf S by Lm29, A1;
then consider phi11, phi22 being Element of S -formulasOfMaxDepth n such that
A2: (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 = (<*(TheNorSymbOf S)*> ^ phi11) ^ phi22 ;
reconsider phi111 = phi11, phi222 = phi22 as n -wff string of S by Def24;
<*(TheNorSymbOf S)*> ^ (phi1 ^ phi2) = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 by FINSEQ_1:32
.= <*(TheNorSymbOf S)*> ^ (phi11 ^ phi22) by A2, FINSEQ_1:32 ;
then A3: phi1 ^ phi2 = phi111 ^ phi222 by FINSEQ_1:33;
( Depth phi1 <= n & Depth phi2 <= n ) by Def31;
then ( (Depth phi1) + 0 < n + 1 & (Depth phi2) + 0 < n + 1 ) by XREAL_1:8;
hence ( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi1 & Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi2 ) by A1; ::_thesis: verum
end;
Lm31: for S being Language
for phi1, phi2 being wff string of S holds Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = (max ((Depth phi1),(Depth phi2))) + 1
proof
let S be Language; ::_thesis: for phi1, phi2 being wff string of S holds Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = (max ((Depth phi1),(Depth phi2))) + 1
let phi1, phi2 be wff string of S; ::_thesis: Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = (max ((Depth phi1),(Depth phi2))) + 1
set nor = TheNorSymbOf S;
set phi = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2;
set m1 = Depth phi1;
set m2 = Depth phi2;
set m = max ((Depth phi1),(Depth phi2));
set M = Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2);
( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) <= Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) & Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi1 & Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi2 ) by Lm30;
then Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > max ((Depth phi1),(Depth phi2)) by XXREAL_0:def_10;
then A1: (max ((Depth phi1),(Depth phi2))) + 1 <= Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) by NAT_1:13;
reconsider d1 = (max ((Depth phi1),(Depth phi2))) - (Depth phi1), d2 = (max ((Depth phi1),(Depth phi2))) - (Depth phi2) as Nat ;
( phi1 is (Depth phi1) + (0 * d1) -wff & phi2 is (Depth phi2) + (0 * d2) -wff ) by Def31;
then ( phi1 is (Depth phi1) + d1 -wff & phi2 is (Depth phi2) + d2 -wff ) ;
then reconsider phi11 = phi1, phi22 = phi2 as max ((Depth phi1),(Depth phi2)) -wff string of S ;
thus Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = (max ((Depth phi1),(Depth phi2))) + 1 by Def31; ::_thesis: verum
end;
notation
let S be Language;
let m be Nat;
let w be string of S;
antonym m -nonwff w for m -wff ;
end;
registration
let m be Nat;
let S be Language;
cluster non m -wff -> m -nonwff for Element of ((AllSymbolsOf S) *) \ {{}};
coherence
for b1 being string of S st not b1 is m -wff holds
b1 is m -nonwff ;
end;
registration
let S be Language;
let phi1, phi2 be wff string of S;
cluster(<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 -> max ((Depth phi1),(Depth phi2)) -nonwff for string of S;
coherence
for b1 being string of S st b1 = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 holds
not b1 is max ((Depth phi1),(Depth phi2)) -wff
proof
set nor = TheNorSymbOf S;
set phi = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2;
set m1 = Depth phi1;
set m2 = Depth phi2;
set m = Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2);
set M = max ((Depth phi1),(Depth phi2));
Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = (max ((Depth phi1),(Depth phi2))) + 1 by Lm31;
then Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > (max ((Depth phi1),(Depth phi2))) + 0 by XREAL_1:8;
hence for b1 being string of S st b1 = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 holds
not b1 is max ((Depth phi1),(Depth phi2)) -wff by Def31; ::_thesis: verum
end;
end;
registration
let S be Language;
let phi be wff string of S;
let l be literal Element of S;
cluster<*l*> ^ phi -> Depth phi -nonwff for string of S;
coherence
for b1 being string of S st b1 = <*l*> ^ phi holds
not b1 is Depth phi -wff
proof
set m = Depth phi;
set psi = <*l*> ^ phi;
set M = Depth (<*l*> ^ phi);
Depth phi < Depth (<*l*> ^ phi) by Lm28;
hence for b1 being string of S st b1 = <*l*> ^ phi holds
not b1 is Depth phi -wff by Def31; ::_thesis: verum
end;
end;
registration
let S be Language;
let phi be wff string of S;
let l be literal Element of S;
cluster<*l*> ^ phi -> 1 + (Depth phi) -wff for string of S;
coherence
for b1 being string of S st b1 = <*l*> ^ phi holds
b1 is 1 + (Depth phi) -wff
proof
set m = Depth phi;
set psi = <*l*> ^ phi;
set M = Depth (<*l*> ^ phi);
reconsider phii = phi as Depth phi -wff string of S by Def31;
<*l*> ^ phii is (Depth phi) + 1 -wff ;
hence for b1 being string of S st b1 = <*l*> ^ phi holds
b1 is 1 + (Depth phi) -wff ; ::_thesis: verum
end;
end;
Lm32: for S being Language
for U being non empty set
for I being Relation st I in U -InterpretersOf S holds
dom I = OwnSymbolsOf S
proof
let S be Language; ::_thesis: for U being non empty set
for I being Relation st I in U -InterpretersOf S holds
dom I = OwnSymbolsOf S
let U be non empty set ; ::_thesis: for I being Relation st I in U -InterpretersOf S holds
dom I = OwnSymbolsOf S
set O = OwnSymbolsOf S;
set II = U -InterpretersOf S;
let I be Relation; ::_thesis: ( I in U -InterpretersOf S implies dom I = OwnSymbolsOf S )
assume I in U -InterpretersOf S ; ::_thesis: dom I = OwnSymbolsOf S
then consider f being Element of Funcs ((OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN)))) such that
A1: ( I = f & f is S,U -interpreter-like ) ;
reconsider ff = f as Function of (OwnSymbolsOf S),(PFuncs ((U *),(U \/ BOOLEAN))) ;
thus dom I = OwnSymbolsOf S by A1, FUNCT_2:def_1; ::_thesis: verum
end;
registration
let S be Language;
let U be non empty set ;
cluster -> OwnSymbolsOf S -defined for Element of U -InterpretersOf S;
coherence
for b1 being Element of U -InterpretersOf S holds b1 is OwnSymbolsOf S -defined
proof
set O = OwnSymbolsOf S;
set II = U -InterpretersOf S;
let I be Element of U -InterpretersOf S; ::_thesis: I is OwnSymbolsOf S -defined
dom I c= OwnSymbolsOf S by Lm32;
hence I is OwnSymbolsOf S -defined by RELAT_1:def_18; ::_thesis: verum
end;
end;
registration
let S be Language;
let U be non empty set ;
cluster Relation-like OwnSymbolsOf S -defined Function-like Function-yielding V164() S,U -interpreter-like for Element of U -InterpretersOf S;
existence
ex b1 being Element of U -InterpretersOf S st b1 is OwnSymbolsOf S -defined
proof
set O = OwnSymbolsOf S;
set II = U -InterpretersOf S;
set I = the Element of U -InterpretersOf S;
take the Element of U -InterpretersOf S ; ::_thesis: the Element of U -InterpretersOf S is OwnSymbolsOf S -defined
thus the Element of U -InterpretersOf S is OwnSymbolsOf S -defined ; ::_thesis: verum
end;
end;
registration
let S be Language;
let U be non empty set ;
cluster OwnSymbolsOf S -defined -> OwnSymbolsOf S -defined total for Element of U -InterpretersOf S;
coherence
for b1 being OwnSymbolsOf S -defined Element of U -InterpretersOf S holds b1 is total
proof
set O = OwnSymbolsOf S;
set II = U -InterpretersOf S;
let I be OwnSymbolsOf S -defined Element of U -InterpretersOf S; ::_thesis: I is total
dom I = OwnSymbolsOf S by Lm32;
hence I is total by PARTFUN1:def_2; ::_thesis: verum
end;
end;
definition
let S be Language;
let U be non empty set ;
let I be Element of U -InterpretersOf S;
let x be literal Element of S;
let u be Element of U;
:: original: ReassignIn
redefine func(x,u) ReassignIn I -> Element of U -InterpretersOf S;
coherence
(x,u) ReassignIn I is Element of U -InterpretersOf S
proof
set II = U -InterpretersOf S;
set IT = (x,u) ReassignIn I;
set O = OwnSymbolsOf S;
set new = {{}} --> u;
set g = x .--> ({{}} --> u);
reconsider xx = x as own Element of S ;
xx in OwnSymbolsOf S by FOMODEL1:def_19;
then ( {x} c= OwnSymbolsOf S & dom (x .--> ({{}} --> u)) = {x} ) by FUNCOP_1:13, ZFMISC_1:31;
then reconsider G = dom (x .--> ({{}} --> u)) as Subset of (OwnSymbolsOf S) ;
dom ((x,u) ReassignIn I) = (dom I) \/ G by FUNCT_4:def_1
.= (OwnSymbolsOf S) \/ G by PARTFUN1:def_2
.= OwnSymbolsOf S ;
then reconsider ITT = (x,u) ReassignIn I as OwnSymbolsOf S -defined Function by RELAT_1:def_18;
ITT | (OwnSymbolsOf S) = ITT ;
hence (x,u) ReassignIn I is Element of U -InterpretersOf S by Th2; ::_thesis: verum
end;
end;
Lm33: for m being Nat
for S being Language
for w being string of S
for U being non empty set
for I being Element of U -InterpretersOf S st w is m -wff holds
((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . [I,w]
proof
let m be Nat; ::_thesis: for S being Language
for w being string of S
for U being non empty set
for I being Element of U -InterpretersOf S st w is m -wff holds
((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . [I,w]
let S be Language; ::_thesis: for w being string of S
for U being non empty set
for I being Element of U -InterpretersOf S st w is m -wff holds
((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . [I,w]
let w be string of S; ::_thesis: for U being non empty set
for I being Element of U -InterpretersOf S st w is m -wff holds
((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . [I,w]
let U be non empty set ; ::_thesis: for I being Element of U -InterpretersOf S st w is m -wff holds
((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . [I,w]
set II = U -InterpretersOf S;
let I be Element of U -InterpretersOf S; ::_thesis: ( w is m -wff implies ((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . [I,w] )
set g = (I,m) -TruthEval ;
set f = (S,U) -TruthEval m;
set Phim = S -formulasOfMaxDepth m;
(S,U) -TruthEval m is Element of Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN) by Th8;
then reconsider ff = (S,U) -TruthEval m as Function of [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):],BOOLEAN ;
A1: dom ff = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] by FUNCT_2:def_1;
assume w is m -wff ; ::_thesis: ((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . [I,w]
then w in S -formulasOfMaxDepth m by Def24;
then ( [I,w] in dom ((S,U) -TruthEval m) & (I,m) -TruthEval = (curry ((S,U) -TruthEval m)) . I ) by A1, ZFMISC_1:87;
then ( w in dom ((I,m) -TruthEval) & ((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . (I,w) ) by FUNCT_5:20;
hence ((I,m) -TruthEval) . w = ((S,U) -TruthEval m) . [I,w] ; ::_thesis: verum
end;
Lm34: for m being Nat
for S being Language
for U being non empty set
for l being literal Element of S
for phi1 being wff string of S
for I being Element of U -InterpretersOf S
for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds
( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE )
proof
let m be Nat; ::_thesis: for S being Language
for U being non empty set
for l being literal Element of S
for phi1 being wff string of S
for I being Element of U -InterpretersOf S
for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds
( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE )
let S be Language; ::_thesis: for U being non empty set
for l being literal Element of S
for phi1 being wff string of S
for I being Element of U -InterpretersOf S
for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds
( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE )
let U be non empty set ; ::_thesis: for l being literal Element of S
for phi1 being wff string of S
for I being Element of U -InterpretersOf S
for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds
( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE )
let l be literal Element of S; ::_thesis: for phi1 being wff string of S
for I being Element of U -InterpretersOf S
for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds
( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE )
let phi1 be wff string of S; ::_thesis: for I being Element of U -InterpretersOf S
for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds
( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE )
let I be Element of U -InterpretersOf S; ::_thesis: for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds
( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE )
set II = U -InterpretersOf S;
set SS = AllSymbolsOf S;
set N = TheNorSymbOf S;
set psi = <*l*> ^ phi1;
set FF = AllFormulasOf S;
set Phim = S -formulasOfMaxDepth m;
let f be PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN; ::_thesis: ( dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff implies ( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE ) )
assume ( dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff ) ; ::_thesis: ( f -ExFunctor (I,(<*l*> ^ phi1)) = 1 iff ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE )
set LH = f -ExFunctor (I,(<*l*> ^ phi1));
reconsider psii = <*l*> ^ phi1, phi11 = phi1 as FinSequence of AllSymbolsOf S by FOMODEL0:26;
A1: (<*l*> ^ phi11) /^ 1 = phi11 by FINSEQ_6:45;
hereby ::_thesis: ( ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE implies f -ExFunctor (I,(<*l*> ^ phi1)) = 1 )
assume f -ExFunctor (I,(<*l*> ^ phi1)) = 1 ; ::_thesis: ex u being Element of U st f . (((l,u) ReassignIn I),phi1) = TRUE
then consider u being Element of U, v being literal Element of S such that
A2: ( (<*l*> ^ phi1) . 1 = v & f . (((v,u) ReassignIn I),((<*l*> ^ phi1) /^ 1)) = TRUE ) by Def16;
take u = u; ::_thesis: f . (((l,u) ReassignIn I),phi1) = TRUE
thus f . (((l,u) ReassignIn I),phi1) = TRUE by A2, A1, FINSEQ_1:41; ::_thesis: verum
end;
given u being Element of U such that A3: f . (((l,u) ReassignIn I),phi1) = TRUE ; ::_thesis: f -ExFunctor (I,(<*l*> ^ phi1)) = 1
ex u1 being Element of U ex l1 being literal Element of S st
( psii . 1 = l1 & f . (((l1,u1) ReassignIn I),(psii /^ 1)) = TRUE ) by A1, A3, FINSEQ_1:41;
hence f -ExFunctor (I,(<*l*> ^ phi1)) = 1 by Def16; ::_thesis: verum
end;
Lm35: for S being Language
for U being non empty set
for l being literal Element of S
for phi being wff string of S
for I being Element of U -InterpretersOf S holds
( I -TruthEval (<*l*> ^ phi) = TRUE iff ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 )
proof
let S be Language; ::_thesis: for U being non empty set
for l being literal Element of S
for phi being wff string of S
for I being Element of U -InterpretersOf S holds
( I -TruthEval (<*l*> ^ phi) = TRUE iff ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 )
let U be non empty set ; ::_thesis: for l being literal Element of S
for phi being wff string of S
for I being Element of U -InterpretersOf S holds
( I -TruthEval (<*l*> ^ phi) = TRUE iff ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 )
let l be literal Element of S; ::_thesis: for phi being wff string of S
for I being Element of U -InterpretersOf S holds
( I -TruthEval (<*l*> ^ phi) = TRUE iff ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 )
let phi be wff string of S; ::_thesis: for I being Element of U -InterpretersOf S holds
( I -TruthEval (<*l*> ^ phi) = TRUE iff ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 )
let I be Element of U -InterpretersOf S; ::_thesis: ( I -TruthEval (<*l*> ^ phi) = TRUE iff ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 )
set Nor = TheNorSymbOf S;
set II = U -InterpretersOf S;
set SS = AllSymbolsOf S;
set D = PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN);
set m = Depth phi;
set M = (Depth phi) + 1;
set L = LettersOf S;
reconsider phii = phi as Depth phi -wff string of S by Def31;
reconsider psi = <*l*> ^ phi as (Depth phi) + 1 -wff string of S ;
deffunc H1( Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) -> PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN = ExIterator $1;
deffunc H2( Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) -> PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN = NorIterator $1;
set F = (S,U) -TruthEval ;
reconsider mm = Depth phi, MM = (Depth phi) + 1 as Element of NAT by ORDINAL1:def_12;
set Phim = S -formulasOfMaxDepth (Depth phi);
set PhiM = S -formulasOfMaxDepth ((Depth phi) + 1);
reconsider phiii = phii as Element of S -formulasOfMaxDepth (Depth phi) by Def24;
reconsider ll = l as Element of LettersOf S by FOMODEL1:def_14;
set FM = (S,U) -TruthEval ((Depth phi) + 1);
set Fm = (S,U) -TruthEval (Depth phi);
set mNF = (Depth phi) -NorFormulasOf S;
set mEF = (Depth phi) -ExFormulasOf S;
psi = <*ll*> ^ phiii ;
then ( psi in (Depth phi) -ExFormulasOf S & not psi in (Depth phi) -NorFormulasOf S ) ;
then ( [I,psi] in [:(U -InterpretersOf S),((Depth phi) -ExFormulasOf S):] & not [I,psi] in [:(U -InterpretersOf S),((Depth phi) -NorFormulasOf S):] ) by ZFMISC_1:87;
then A1: ( [I,psi] in dom (ExIterator ((S,U) -TruthEval (Depth phi))) & not [I,psi] in dom (NorIterator ((S,U) -TruthEval (Depth phi))) ) by Lm18, Lm19;
A2: ((S,U) -TruthEval) . MM = ((ExIterator (((S,U) -TruthEval) . mm)) +* (NorIterator (((S,U) -TruthEval) . mm))) +* (((S,U) -TruthEval) . mm) by Def20;
(S,U) -TruthEval (Depth phi) is Element of Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth (Depth phi)):],BOOLEAN) by Th8;
then reconsider Fmm = (S,U) -TruthEval (Depth phi) as Function of [:(U -InterpretersOf S),(S -formulasOfMaxDepth (Depth phi)):],BOOLEAN ;
A3: not [I,psi] in dom (((S,U) -TruthEval) . mm)
proof
A4: not psi in S -formulasOfMaxDepth (Depth phi) by Def24;
dom (((S,U) -TruthEval) . mm) = dom Fmm by Def21
.= [:(U -InterpretersOf S),(S -formulasOfMaxDepth (Depth phi)):] by FUNCT_2:def_1 ;
hence not [I,psi] in dom (((S,U) -TruthEval) . mm) by A4, ZFMISC_1:87; ::_thesis: verum
end;
A5: dom Fmm = [:(U -InterpretersOf S),(S -formulasOfMaxDepth (Depth phi)):] by FUNCT_2:def_1;
A6: I -TruthEval psi = ((I,((Depth phi) + 1)) -TruthEval) . psi by Def26
.= ((S,U) -TruthEval ((Depth phi) + 1)) . [I,psi] by Lm33
.= (((S,U) -TruthEval) . MM) . [I,psi] by Def21
.= ((ExIterator (((S,U) -TruthEval) . mm)) +* (NorIterator (((S,U) -TruthEval) . mm))) . [I,psi] by A2, A3, FUNCT_4:11
.= ((ExIterator (((S,U) -TruthEval) . mm)) +* (NorIterator ((S,U) -TruthEval (Depth phi)))) . [I,psi] by Def21
.= (ExIterator (((S,U) -TruthEval) . mm)) . [I,psi] by A1, FUNCT_4:11
.= H1((S,U) -TruthEval (Depth phi)) . (I,psi) by Def21
.= ((S,U) -TruthEval (Depth phi)) -ExFunctor (I,psi) by A1, Def17 ;
A7: ( ex u being Element of U st ((S,U) -TruthEval (Depth phi)) . (((l,u) ReassignIn I),phii) = TRUE implies ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phii = TRUE )
proof
given u being Element of U such that A8: ((S,U) -TruthEval (Depth phi)) . (((l,u) ReassignIn I),phii) = TRUE ; ::_thesis: ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phii = TRUE
take u ; ::_thesis: ((l,u) ReassignIn I) -TruthEval phii = TRUE
set J = (l,u) ReassignIn I;
((((l,u) ReassignIn I),(Depth phi)) -TruthEval) . phii = TRUE by A8, Lm33;
hence ((l,u) ReassignIn I) -TruthEval phii = TRUE by Def26; ::_thesis: verum
end;
( ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phii = TRUE implies ex u being Element of U st ((S,U) -TruthEval (Depth phi)) . (((l,u) ReassignIn I),phii) = TRUE )
proof
given u being Element of U such that A9: ((l,u) ReassignIn I) -TruthEval phii = TRUE ; ::_thesis: ex u being Element of U st ((S,U) -TruthEval (Depth phi)) . (((l,u) ReassignIn I),phii) = TRUE
take u ; ::_thesis: ((S,U) -TruthEval (Depth phi)) . (((l,u) ReassignIn I),phii) = TRUE
set J = (l,u) ReassignIn I;
((((l,u) ReassignIn I),(Depth phi)) -TruthEval) . phii = TRUE by A9, Def26;
hence ((S,U) -TruthEval (Depth phi)) . (((l,u) ReassignIn I),phii) = TRUE by Lm33; ::_thesis: verum
end;
hence ( I -TruthEval (<*l*> ^ phi) = TRUE iff ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 ) by A6, A5, Lm34, A7; ::_thesis: verum
end;
Lm36: for m being Nat
for S being Language
for w2 being string of S
for U being non empty set
for phi1 being wff string of S
for I being Element of U -InterpretersOf S
for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds
( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) )
proof
let m be Nat; ::_thesis: for S being Language
for w2 being string of S
for U being non empty set
for phi1 being wff string of S
for I being Element of U -InterpretersOf S
for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds
( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) )
let S be Language; ::_thesis: for w2 being string of S
for U being non empty set
for phi1 being wff string of S
for I being Element of U -InterpretersOf S
for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds
( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) )
let w2 be string of S; ::_thesis: for U being non empty set
for phi1 being wff string of S
for I being Element of U -InterpretersOf S
for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds
( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) )
let U be non empty set ; ::_thesis: for phi1 being wff string of S
for I being Element of U -InterpretersOf S
for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds
( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) )
let phi1 be wff string of S; ::_thesis: for I being Element of U -InterpretersOf S
for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds
( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) )
let I be Element of U -InterpretersOf S; ::_thesis: for f being PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN st dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff holds
( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) )
set II = U -InterpretersOf S;
set SS = AllSymbolsOf S;
set N = TheNorSymbOf S;
set phi2 = w2;
set psi = (<*(TheNorSymbOf S)*> ^ phi1) ^ w2;
set FF = AllFormulasOf S;
set Phim = S -formulasOfMaxDepth m;
let f be PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN; ::_thesis: ( dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff implies ( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) ) )
assume A1: ( dom f = [:(U -InterpretersOf S),(S -formulasOfMaxDepth m):] & phi1 is m -wff ) ; ::_thesis: ( f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 iff ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) )
then phi1 in S -formulasOfMaxDepth m by Def24;
then A2: [I,phi1] in dom f by A1, ZFMISC_1:87;
set LH = f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2));
set RH1 = f . (I,phi1);
set RH2 = f . (I,w2);
hereby ::_thesis: ( f . (I,phi1) = 0 & f . (I,w2) = 0 implies f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 )
assume f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 ; ::_thesis: ( f . (I,phi1) = 0 & f . (I,w2) = 0 )
then consider w, w1 being string of S such that
A3: ( [I,w] in dom f & f . (I,w) = FALSE & f . (I,w1) = FALSE & (<*(TheNorSymbOf S)*> ^ phi1) ^ w2 = (<*(TheNorSymbOf S)*> ^ w) ^ w1 ) by Def18;
A4: ( w in S -formulasOfMaxDepth m & phi1 in S -formulasOfMaxDepth m ) by A1, A3, Def24, ZFMISC_1:87;
<*(TheNorSymbOf S)*> ^ (w ^ w1) = (<*(TheNorSymbOf S)*> ^ phi1) ^ w2 by A3, FINSEQ_1:32
.= <*(TheNorSymbOf S)*> ^ (phi1 ^ w2) by FINSEQ_1:32 ;
then w ^ w1 = phi1 ^ w2 by FINSEQ_1:33;
hence ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) by A3, A4, FOMODEL0:def_20; ::_thesis: verum
end;
assume ( f . (I,phi1) = 0 & f . (I,w2) = 0 ) ; ::_thesis: f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1
hence f -NorFunctor (I,((<*(TheNorSymbOf S)*> ^ phi1) ^ w2)) = 1 by A2, Def18; ::_thesis: verum
end;
Lm37: for S being Language
for U being non empty set
for phi1, phi2 being wff string of S
for I being Element of U -InterpretersOf S holds
( I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = TRUE iff ( I -TruthEval phi1 = FALSE & I -TruthEval phi2 = FALSE ) )
proof
let S be Language; ::_thesis: for U being non empty set
for phi1, phi2 being wff string of S
for I being Element of U -InterpretersOf S holds
( I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = TRUE iff ( I -TruthEval phi1 = FALSE & I -TruthEval phi2 = FALSE ) )
let U be non empty set ; ::_thesis: for phi1, phi2 being wff string of S
for I being Element of U -InterpretersOf S holds
( I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = TRUE iff ( I -TruthEval phi1 = FALSE & I -TruthEval phi2 = FALSE ) )
let phi1, phi2 be wff string of S; ::_thesis: for I being Element of U -InterpretersOf S holds
( I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = TRUE iff ( I -TruthEval phi1 = FALSE & I -TruthEval phi2 = FALSE ) )
let I be Element of U -InterpretersOf S; ::_thesis: ( I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = TRUE iff ( I -TruthEval phi1 = FALSE & I -TruthEval phi2 = FALSE ) )
set Nor = TheNorSymbOf S;
set II = U -InterpretersOf S;
set SS = AllSymbolsOf S;
set B = BOOLEAN ;
set D = PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN);
set m1 = Depth phi1;
set m2 = Depth phi2;
deffunc H1( Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) -> PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN = ExIterator $1;
deffunc H2( Element of PFuncs ([:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN)) -> PartFunc of [:(U -InterpretersOf S),(((AllSymbolsOf S) *) \ {{}}):],BOOLEAN = NorIterator $1;
set F = (S,U) -TruthEval ;
set m = max ((Depth phi1),(Depth phi2));
set M = (max ((Depth phi1),(Depth phi2))) + 1;
reconsider d1 = (max ((Depth phi1),(Depth phi2))) - (Depth phi1), d2 = (max ((Depth phi1),(Depth phi2))) - (Depth phi2) as Nat ;
( phi1 is (Depth phi1) + (0 * d1) -wff & phi2 is (Depth phi2) + (0 * d2) -wff ) by Def31;
then ( phi1 is (Depth phi1) + d1 -wff & phi2 is (Depth phi2) + d2 -wff ) ;
then reconsider phi11 = phi1, phi22 = phi2 as max ((Depth phi1),(Depth phi2)) -wff string of S ;
reconsider phi = (<*(TheNorSymbOf S)*> ^ phi11) ^ phi22 as (max ((Depth phi1),(Depth phi2))) + 1 -wff string of S ;
reconsider mm = max ((Depth phi1),(Depth phi2)), MM = (max ((Depth phi1),(Depth phi2))) + 1 as Element of NAT by ORDINAL1:def_12;
set Phim = S -formulasOfMaxDepth (max ((Depth phi1),(Depth phi2)));
set PhiM = S -formulasOfMaxDepth ((max ((Depth phi1),(Depth phi2))) + 1);
set FM = (S,U) -TruthEval ((max ((Depth phi1),(Depth phi2))) + 1);
set Fm = (S,U) -TruthEval (max ((Depth phi1),(Depth phi2)));
set mNF = (max ((Depth phi1),(Depth phi2))) -NorFormulasOf S;
A1: I -TruthEval phi1 = ((I,(max ((Depth phi1),(Depth phi2)))) -TruthEval) . phi11 by Def26
.= ((S,U) -TruthEval (max ((Depth phi1),(Depth phi2)))) . (I,phi1) by Lm33 ;
A2: I -TruthEval phi22 = ((I,(max ((Depth phi1),(Depth phi2)))) -TruthEval) . phi22 by Def26
.= ((S,U) -TruthEval (max ((Depth phi1),(Depth phi2)))) . (I,phi2) by Lm33 ;
reconsider phi111 = phi11, phi222 = phi22 as Element of S -formulasOfMaxDepth (max ((Depth phi1),(Depth phi2))) by Def24;
phi = (<*(TheNorSymbOf S)*> ^ phi111) ^ phi222 ;
then phi in (max ((Depth phi1),(Depth phi2))) -NorFormulasOf S ;
then [I,phi] in [:(U -InterpretersOf S),((max ((Depth phi1),(Depth phi2))) -NorFormulasOf S):] by ZFMISC_1:87;
then A3: [I,phi] in dom (NorIterator ((S,U) -TruthEval (max ((Depth phi1),(Depth phi2))))) by Lm18;
A4: ((S,U) -TruthEval) . MM = ((ExIterator (((S,U) -TruthEval) . mm)) +* (NorIterator (((S,U) -TruthEval) . mm))) +* (((S,U) -TruthEval) . mm) by Def20;
(S,U) -TruthEval (max ((Depth phi1),(Depth phi2))) is Element of Funcs ([:(U -InterpretersOf S),(S -formulasOfMaxDepth (max ((Depth phi1),(Depth phi2)))):],BOOLEAN) by Th8;
then reconsider Fmm = (S,U) -TruthEval (max ((Depth phi1),(Depth phi2))) as Function of [:(U -InterpretersOf S),(S -formulasOfMaxDepth (max ((Depth phi1),(Depth phi2)))):],BOOLEAN ;
A5: not [I,phi] in dom (((S,U) -TruthEval) . mm)
proof
A6: not phi in S -formulasOfMaxDepth (max ((Depth phi1),(Depth phi2))) by Def24;
dom (((S,U) -TruthEval) . mm) = dom Fmm by Def21
.= [:(U -InterpretersOf S),(S -formulasOfMaxDepth (max ((Depth phi1),(Depth phi2)))):] by FUNCT_2:def_1 ;
hence not [I,phi] in dom (((S,U) -TruthEval) . mm) by A6, ZFMISC_1:87; ::_thesis: verum
end;
A7: dom Fmm = [:(U -InterpretersOf S),(S -formulasOfMaxDepth (max ((Depth phi1),(Depth phi2)))):] by FUNCT_2:def_1;
I -TruthEval phi = ((I,((max ((Depth phi1),(Depth phi2))) + 1)) -TruthEval) . phi by Def26
.= ((S,U) -TruthEval ((max ((Depth phi1),(Depth phi2))) + 1)) . [I,phi] by Lm33
.= (((S,U) -TruthEval) . MM) . [I,phi] by Def21
.= ((ExIterator (((S,U) -TruthEval) . mm)) +* (NorIterator (((S,U) -TruthEval) . mm))) . [I,phi] by A4, A5, FUNCT_4:11
.= ((ExIterator (((S,U) -TruthEval) . mm)) +* (NorIterator ((S,U) -TruthEval (max ((Depth phi1),(Depth phi2)))))) . [I,phi] by Def21
.= H2((S,U) -TruthEval (max ((Depth phi1),(Depth phi2)))) . (I,phi) by A3, FUNCT_4:13
.= ((S,U) -TruthEval (max ((Depth phi1),(Depth phi2)))) -NorFunctor (I,phi) by A3, Def19 ;
hence ( I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = TRUE iff ( I -TruthEval phi1 = FALSE & I -TruthEval phi2 = FALSE ) ) by A7, Lm36, A2, A1; ::_thesis: verum
end;
definition
let S be Language;
let w be string of S;
func xnot w -> string of S equals :: FOMODEL2:def 33
(<*(TheNorSymbOf S)*> ^ w) ^ w;
coherence
(<*(TheNorSymbOf S)*> ^ w) ^ w is string of S ;
end;
:: deftheorem defines xnot FOMODEL2:def_33_:_
for S being Language
for w being string of S holds xnot w = (<*(TheNorSymbOf S)*> ^ w) ^ w;
registration
let S be Language;
let m be Nat;
let phi be m -wff string of S;
cluster xnot phi -> m + 1 -wff for string of S;
coherence
for b1 being string of S st b1 = xnot phi holds
b1 is m + 1 -wff ;
end;
registration
let S be Language;
let phi be wff string of S;
cluster xnot phi -> wff for string of S;
coherence
for b1 being string of S st b1 = xnot phi holds
b1 is wff ;
end;
registration
let S be Language;
cluster TheEqSymbOf S -> non own for Element of S;
coherence
for b1 being Element of S st b1 = TheEqSymbOf S holds
not b1 is own
proof
set E = TheEqSymbOf S;
set R = RelSymbolsOf S;
set O = OwnSymbolsOf S;
TheEqSymbOf S in {(TheEqSymbOf S)} by TARSKI:def_1;
then TheEqSymbOf S in (RelSymbolsOf S) \ (OwnSymbolsOf S) by FOMODEL1:1;
then not TheEqSymbOf S in OwnSymbolsOf S by XBOOLE_0:def_5;
hence for b1 being Element of S st b1 = TheEqSymbOf S holds
not b1 is own by FOMODEL1:def_19; ::_thesis: verum
end;
end;
definition
let S be Language;
let X be set ;
attrX is S -mincover means :Def34: :: FOMODEL2:def 34
for phi being wff string of S holds
( phi in X iff not xnot phi in X );
end;
:: deftheorem Def34 defines -mincover FOMODEL2:def_34_:_
for S being Language
for X being set holds
( X is S -mincover iff for phi being wff string of S holds
( phi in X iff not xnot phi in X ) );
theorem Th17: :: FOMODEL2:17
for S being Language
for l being literal Element of S
for phi1, phi2 being wff string of S holds
( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = 1 + (max ((Depth phi1),(Depth phi2))) & Depth (<*l*> ^ phi1) = (Depth phi1) + 1 )
proof
let S be Language; ::_thesis: for l being literal Element of S
for phi1, phi2 being wff string of S holds
( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = 1 + (max ((Depth phi1),(Depth phi2))) & Depth (<*l*> ^ phi1) = (Depth phi1) + 1 )
let l be literal Element of S; ::_thesis: for phi1, phi2 being wff string of S holds
( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = 1 + (max ((Depth phi1),(Depth phi2))) & Depth (<*l*> ^ phi1) = (Depth phi1) + 1 )
let phi1, phi2 be wff string of S; ::_thesis: ( Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = 1 + (max ((Depth phi1),(Depth phi2))) & Depth (<*l*> ^ phi1) = (Depth phi1) + 1 )
set N = TheNorSymbOf S;
set m1 = Depth phi1;
set m2 = Depth phi2;
set e = <*l*> ^ phi1;
set n = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2;
thus Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = 1 + (max ((Depth phi1),(Depth phi2))) by Lm31; ::_thesis: Depth (<*l*> ^ phi1) = (Depth phi1) + 1
thus Depth (<*l*> ^ phi1) = (Depth phi1) + 1 by Def31; ::_thesis: verum
end;
theorem :: FOMODEL2:18
for m being Nat
for S being Language
for phi being wff string of S st Depth phi = m + 1 holds
( ( phi is exal implies phi in m -ExFormulasOf S ) & ( phi in m -ExFormulasOf S implies phi is exal ) & ( not phi is exal implies phi in m -NorFormulasOf S ) & ( phi in m -NorFormulasOf S implies not phi is exal ) ) by Lm27, Lm29;
theorem :: FOMODEL2:19
for S being Language
for U being non empty set
for l being literal Element of S
for phi, phi1, phi2 being wff string of S
for I being Element of U -InterpretersOf S holds
( ( I -TruthEval (<*l*> ^ phi) = TRUE implies ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 ) & ( ex u being Element of U st ((l,u) ReassignIn I) -TruthEval phi = 1 implies I -TruthEval (<*l*> ^ phi) = TRUE ) & ( I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = TRUE implies ( I -TruthEval phi1 = FALSE & I -TruthEval phi2 = FALSE ) ) & ( I -TruthEval phi1 = FALSE & I -TruthEval phi2 = FALSE implies I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) = TRUE ) ) by Lm35, Lm37;
theorem Th20: :: FOMODEL2:20
for m being Nat
for S being Language
for U being non empty set
for u being Element of U
for I being b2,b3 -interpreter-like Function holds (((I,u) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = (I -TermEval) | ((S -termsOfMaxDepth) . m)
proof
let m be Nat; ::_thesis: for S being Language
for U being non empty set
for u being Element of U
for I being b1,b2 -interpreter-like Function holds (((I,u) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = (I -TermEval) | ((S -termsOfMaxDepth) . m)
let S be Language; ::_thesis: for U being non empty set
for u being Element of U
for I being S,b1 -interpreter-like Function holds (((I,u) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = (I -TermEval) | ((S -termsOfMaxDepth) . m)
let U be non empty set ; ::_thesis: for u being Element of U
for I being S,U -interpreter-like Function holds (((I,u) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = (I -TermEval) | ((S -termsOfMaxDepth) . m)
let u be Element of U; ::_thesis: for I being S,U -interpreter-like Function holds (((I,u) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = (I -TermEval) | ((S -termsOfMaxDepth) . m)
let I be S,U -interpreter-like Function; ::_thesis: (((I,u) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = (I -TermEval) | ((S -termsOfMaxDepth) . m)
reconsider mm = m, MM = m + 1 as Element of NAT by ORDINAL1:def_12;
set T = S -termsOfMaxDepth ;
set TI = I -TermEval ;
set TII = (I,u) -TermEval ;
set TT = AllTermsOf S;
reconsider IM = ((I,u) -TermEval) . MM as Function of (AllTermsOf S),U ;
reconsider Tm = (S -termsOfMaxDepth) . mm, TM = (S -termsOfMaxDepth) . MM as Subset of (AllTermsOf S) by FOMODEL1:2;
set LH = IM | Tm;
set RH = (I -TermEval) | Tm;
A1: ( dom (IM | Tm) = Tm & dom ((I -TermEval) | Tm) = Tm ) by PARTFUN1:def_2;
now__::_thesis:_for_x_being_set_st_x_in_dom_(IM_|_Tm)_holds_
(IM_|_Tm)_._x_=_((I_-TermEval)_|_Tm)_._x
let x be set ; ::_thesis: ( x in dom (IM | Tm) implies (IM | Tm) . x = ((I -TermEval) | Tm) . x )
assume A2: x in dom (IM | Tm) ; ::_thesis: (IM | Tm) . x = ((I -TermEval) | Tm) . x
then x in dom IM by RELAT_1:57;
then reconsider tt = x as Element of AllTermsOf S ;
reconsider ttt = x as Element of Tm by A2;
( ((IM | Tm) . ttt) \+\ (IM . ttt) = {} & (((I -TermEval) | Tm) . ttt) \+\ ((I -TermEval) . ttt) = {} ) ;
then A3: ( (IM | Tm) . x = IM . tt & ((I -TermEval) | Tm) . x = (I -TermEval) . x ) by FOMODEL0:29;
then (IM | Tm) . x = I -TermEval tt by A2, Def9
.= ((I -TermEval) | Tm) . x by A3, Def10 ;
hence (IM | Tm) . x = ((I -TermEval) | Tm) . x ; ::_thesis: verum
end;
hence (((I,u) -TermEval) . (m + 1)) | ((S -termsOfMaxDepth) . m) = (I -TermEval) | ((S -termsOfMaxDepth) . m) by A1, FUNCT_1:2; ::_thesis: verum
end;
theorem Th21: :: FOMODEL2:21
for S being Language
for U being non empty set
for t being termal string of S
for I being b1,b2 -interpreter-like Function holds (I -TermEval) . t = (I . ((S -firstChar) . t)) . ((I -TermEval) * (SubTerms t))
proof
let S be Language; ::_thesis: for U being non empty set
for t being termal string of S
for I being S,b1 -interpreter-like Function holds (I -TermEval) . t = (I . ((S -firstChar) . t)) . ((I -TermEval) * (SubTerms t))
let U be non empty set ; ::_thesis: for t being termal string of S
for I being S,U -interpreter-like Function holds (I -TermEval) . t = (I . ((S -firstChar) . t)) . ((I -TermEval) * (SubTerms t))
let t be termal string of S; ::_thesis: for I being S,U -interpreter-like Function holds (I -TermEval) . t = (I . ((S -firstChar) . t)) . ((I -TermEval) * (SubTerms t))
let I be S,U -interpreter-like Function; ::_thesis: (I -TermEval) . t = (I . ((S -firstChar) . t)) . ((I -TermEval) * (SubTerms t))
set u = the Element of U;
set TI = I -TermEval ;
set TII = (I, the Element of U) -TermEval ;
set TT = AllTermsOf S;
set F = S -firstChar ;
set s = (S -firstChar) . t;
set m = Depth t;
set T = S -termsOfMaxDepth ;
set ST = SubTerms t;
reconsider mm = Depth t, MM = (Depth t) + 1 as Element of NAT by ORDINAL1:def_12;
A1: t is (Depth t) + (0 * 1) -termal by FOMODEL1:def_40;
reconsider tm = t as Depth t -termal string of S by FOMODEL1:def_40;
reconsider tM = t as mm + 1 -termal string of S by A1;
reconsider Tm = (S -termsOfMaxDepth) . mm, TM = (S -termsOfMaxDepth) . MM as Subset of (AllTermsOf S) by FOMODEL1:2;
reconsider ttt = tm as Element of (S -termsOfMaxDepth) . mm by FOMODEL1:def_33;
reconsider tt = t as Element of AllTermsOf S by FOMODEL1:def_32;
set V = I -TermEval tt;
reconsider IM = ((I, the Element of U) -TermEval) . MM as Function of (AllTermsOf S),U ;
SubTerms tM is Tm -valued ;
then A2: ( dom ((I -TermEval) | Tm) = Tm & dom (IM | Tm) = Tm & rng (SubTerms t) c= Tm ) by PARTFUN1:def_2, RELAT_1:def_19;
(I -TermEval) . t = I -TermEval tt by Def10
.= (((I, the Element of U) -TermEval) . MM) . ttt by Def9
.= (((I, the Element of U) -TermEval) . (((Depth t) + 1) + 1)) . tm by Lm6
.= (I . ((S -firstChar) . t)) . ((((I, the Element of U) -TermEval) . MM) * (SubTerms t)) by Th3
.= (I . ((S -firstChar) . t)) . (((((I, the Element of U) -TermEval) . MM) | Tm) * (SubTerms t)) by A2, RELAT_1:165
.= (I . ((S -firstChar) . t)) . (((I -TermEval) | Tm) * (SubTerms t)) by Th20
.= (I . ((S -firstChar) . t)) . ((I -TermEval) * (SubTerms t)) by A2, RELAT_1:165 ;
hence (I -TermEval) . t = (I . ((S -firstChar) . t)) . ((I -TermEval) * (SubTerms t)) ; ::_thesis: verum
end;
definition
let S be Language;
let phi be wff string of S;
set F = S -firstChar ;
set d = Depth phi;
set s = (S -firstChar) . phi;
set L = LettersOf S;
set N = TheNorSymbOf S;
set FF = AllFormulasOf S;
set SS = AllSymbolsOf S;
defpred S1[ set ] means ex phi1 being wff string of S ex p being FinSequence st
( p is AllSymbolsOf S -valued & $1 = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p );
func SubWffsOf phi -> set means :Def35: :: FOMODEL2:def 35
ex phi1 being wff string of S ex p being FinSequence st
( p is AllSymbolsOf S -valued & it = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) if not phi is 0wff
otherwise it = [phi,{}];
existence
( ( not phi is 0wff implies ex b1 being set ex phi1 being wff string of S ex p being FinSequence st
( p is AllSymbolsOf S -valued & b1 = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) ) & ( phi is 0wff implies ex b1 being set st b1 = [phi,{}] ) )
proof
thus ( not phi is 0wff implies ex IT being set st S1[IT] ) ::_thesis: ( phi is 0wff implies ex b1 being set st b1 = [phi,{}] )
proof
assume not phi is 0wff ; ::_thesis: ex IT being set st S1[IT]
then consider m being Nat such that
A1: Depth phi = m + 1 by NAT_1:6;
percases ( phi is exal or not phi is exal ) ;
suppose phi is exal ; ::_thesis: ex IT being set st S1[IT]
then phi in m -ExFormulasOf S by A1, Lm27;
then consider ll being Element of LettersOf S, phi0 being Element of S -formulasOfMaxDepth m such that
A2: phi = <*ll*> ^ phi0 ;
A3: ll = phi . 1 by A2, FINSEQ_1:41
.= (S -firstChar) . phi by FOMODEL0:6 ;
reconsider l = ll as literal Element of S ;
reconsider phi1 = phi0 as m -wff string of S by Def24;
take IT = [phi1,{}]; ::_thesis: S1[IT]
take phi1 ; ::_thesis: ex p being FinSequence st
( p is AllSymbolsOf S -valued & IT = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p )
take p = {} null (AllSymbolsOf S); ::_thesis: ( p is AllSymbolsOf S -valued & IT = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p )
thus p is AllSymbolsOf S -valued ; ::_thesis: ( IT = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p )
thus IT = [phi1,p] ; ::_thesis: phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p
thus phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p by A2, A3; ::_thesis: verum
end;
suppose not phi is exal ; ::_thesis: ex IT being set st S1[IT]
then phi in m -NorFormulasOf S by A1, Lm29;
then consider phi0, psi0 being Element of S -formulasOfMaxDepth m such that
A4: phi = (<*(TheNorSymbOf S)*> ^ phi0) ^ psi0 ;
A5: (S -firstChar) . phi = phi . 1 by FOMODEL0:6
.= (<*(TheNorSymbOf S)*> ^ (phi0 ^ psi0)) . 1 by A4, FINSEQ_1:32
.= TheNorSymbOf S by FINSEQ_1:41 ;
reconsider phi1 = phi0, psi1 = psi0 as m -wff string of S by Def24;
take IT = [phi1,psi0]; ::_thesis: S1[IT]
take phi1 ; ::_thesis: ex p being FinSequence st
( p is AllSymbolsOf S -valued & IT = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p )
take p = psi1; ::_thesis: ( p is AllSymbolsOf S -valued & IT = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p )
thus p is AllSymbolsOf S -valued ; ::_thesis: ( IT = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p )
thus IT = [phi1,p] ; ::_thesis: phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p
thus phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p by A4, A5; ::_thesis: verum
end;
end;
end;
assume phi is 0wff ; ::_thesis: ex b1 being set st b1 = [phi,{}]
take IT = [phi,{}]; ::_thesis: IT = [phi,{}]
thus IT = [phi,{}] ; ::_thesis: verum
end;
uniqueness
for b1, b2 being set holds
( ( not phi is 0wff & ex phi1 being wff string of S ex p being FinSequence st
( p is AllSymbolsOf S -valued & b1 = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) & ex phi1 being wff string of S ex p being FinSequence st
( p is AllSymbolsOf S -valued & b2 = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) implies b1 = b2 ) & ( phi is 0wff & b1 = [phi,{}] & b2 = [phi,{}] implies b1 = b2 ) )
proof
let IT1, IT2 be set ; ::_thesis: ( ( not phi is 0wff & ex phi1 being wff string of S ex p being FinSequence st
( p is AllSymbolsOf S -valued & IT1 = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) & ex phi1 being wff string of S ex p being FinSequence st
( p is AllSymbolsOf S -valued & IT2 = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) implies IT1 = IT2 ) & ( phi is 0wff & IT1 = [phi,{}] & IT2 = [phi,{}] implies IT1 = IT2 ) )
thus ( not phi is 0wff & S1[IT1] & S1[IT2] implies IT1 = IT2 ) ::_thesis: ( phi is 0wff & IT1 = [phi,{}] & IT2 = [phi,{}] implies IT1 = IT2 )
proof
assume not phi is 0wff ; ::_thesis: ( not S1[IT1] or not S1[IT2] or IT1 = IT2 )
then reconsider phi = phi as non 0wff string of S ;
assume A6: ( S1[IT1] & S1[IT2] ) ; ::_thesis: IT1 = IT2
consider phi1 being wff string of S, p1 being FinSequence such that
A7: ( p1 is AllSymbolsOf S -valued & IT1 = [phi1,p1] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p1 ) by A6;
consider phi2 being wff string of S, p2 being FinSequence such that
A8: ( p2 is AllSymbolsOf S -valued & IT2 = [phi2,p2] & phi = (<*((S -firstChar) . phi)*> ^ phi2) ^ p2 ) by A6;
reconsider q1 = p1, q2 = p2 as AllSymbolsOf S -valued FinSequence by A7, A8;
<*((S -firstChar) . phi)*> ^ (phi1 ^ p1) = phi by A7, FINSEQ_1:32
.= <*((S -firstChar) . phi)*> ^ (phi2 ^ p2) by A8, FINSEQ_1:32 ;
then ( phi1 ^ q1 = phi2 ^ q2 & phi1 in AllFormulasOf S & phi2 in AllFormulasOf S ) by Th16, FINSEQ_1:33;
then ( phi1 = phi2 & q1 = q2 ) by FOMODEL0:def_20;
hence IT1 = IT2 by A7, A8; ::_thesis: verum
end;
thus ( phi is 0wff & IT1 = [phi,{}] & IT2 = [phi,{}] implies IT1 = IT2 ) ; ::_thesis: verum
end;
consistency
for b1 being set holds verum ;
end;
:: deftheorem Def35 defines SubWffsOf FOMODEL2:def_35_:_
for S being Language
for phi being wff string of S
for b3 being set holds
( ( not phi is 0wff implies ( b3 = SubWffsOf phi iff ex phi1 being wff string of S ex p being FinSequence st
( p is AllSymbolsOf S -valued & b3 = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) ) ) & ( phi is 0wff implies ( b3 = SubWffsOf phi iff b3 = [phi,{}] ) ) );
definition
let S be Language;
let phi be wff string of S;
set IT = SubWffsOf phi;
set SS = AllSymbolsOf S;
set F = S -firstChar ;
func head phi -> wff string of S equals :: FOMODEL2:def 36
(SubWffsOf phi) `1 ;
coherence
(SubWffsOf phi) `1 is wff string of S
proof
percases ( not phi is 0wff or phi is 0wff ) ;
suppose not phi is 0wff ; ::_thesis: (SubWffsOf phi) `1 is wff string of S
then consider phi1 being wff string of S, p being FinSequence such that
A1: ( p is AllSymbolsOf S -valued & SubWffsOf phi = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) by Def35;
((SubWffsOf phi) `1) \+\ phi1 = {} by A1;
hence (SubWffsOf phi) `1 is wff string of S by FOMODEL0:29; ::_thesis: verum
end;
suppose phi is 0wff ; ::_thesis: (SubWffsOf phi) `1 is wff string of S
then SubWffsOf phi = [phi,{}] by Def35;
then ((SubWffsOf phi) `1) \+\ phi = {} ;
hence (SubWffsOf phi) `1 is wff string of S by FOMODEL0:29; ::_thesis: verum
end;
end;
end;
func tail phi -> Element of (AllSymbolsOf S) * equals :: FOMODEL2:def 37
(SubWffsOf phi) `2 ;
coherence
(SubWffsOf phi) `2 is Element of (AllSymbolsOf S) *
proof
percases ( not phi is 0wff or phi is 0wff ) ;
suppose not phi is 0wff ; ::_thesis: (SubWffsOf phi) `2 is Element of (AllSymbolsOf S) *
then consider phi1 being wff string of S, p being FinSequence such that
A2: ( p is AllSymbolsOf S -valued & SubWffsOf phi = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) by Def35;
((SubWffsOf phi) `2) \+\ p = {} by A2;
then ( (SubWffsOf phi) `2 = p & p is FinSequence of AllSymbolsOf S ) by A2, FOMODEL0:26, FOMODEL0:29;
hence (SubWffsOf phi) `2 is Element of (AllSymbolsOf S) * by FINSEQ_1:def_11; ::_thesis: verum
end;
suppose phi is 0wff ; ::_thesis: (SubWffsOf phi) `2 is Element of (AllSymbolsOf S) *
then SubWffsOf phi = [phi,{}] by Def35;
then ((SubWffsOf phi) `2) \+\ {} = {} null (AllSymbolsOf S) ;
then reconsider ITT = (SubWffsOf phi) `2 as AllSymbolsOf S -valued FinSequence ;
ITT is FinSequence of AllSymbolsOf S by FOMODEL0:26;
hence (SubWffsOf phi) `2 is Element of (AllSymbolsOf S) * by FINSEQ_1:def_11; ::_thesis: verum
end;
end;
end;
end;
:: deftheorem defines head FOMODEL2:def_36_:_
for S being Language
for phi being wff string of S holds head phi = (SubWffsOf phi) `1 ;
:: deftheorem defines tail FOMODEL2:def_37_:_
for S being Language
for phi being wff string of S holds tail phi = (SubWffsOf phi) `2 ;
registration
let S be Language;
let m be Nat;
cluster(S -formulasOfMaxDepth m) \ (AllFormulasOf S) -> empty for set ;
coherence
for b1 being set st b1 = (S -formulasOfMaxDepth m) \ (AllFormulasOf S) holds
b1 is empty
proof
set Fm = S -formulasOfMaxDepth m;
set FF = AllFormulasOf S;
now__::_thesis:_for_x_being_set_st_x_in_S_-formulasOfMaxDepth_m_holds_
x_in_AllFormulasOf_S
let x be set ; ::_thesis: ( x in S -formulasOfMaxDepth m implies x in AllFormulasOf S )
assume x in S -formulasOfMaxDepth m ; ::_thesis: x in AllFormulasOf S
then reconsider phi = x as m -wff string of S by Def24;
phi in AllFormulasOf S ;
hence x in AllFormulasOf S ; ::_thesis: verum
end;
then S -formulasOfMaxDepth m c= AllFormulasOf S by TARSKI:def_3;
hence for b1 being set st b1 = (S -formulasOfMaxDepth m) \ (AllFormulasOf S) holds
b1 is empty ; ::_thesis: verum
end;
end;
registration
let S be Language;
cluster(AtomicFormulasOf S) \ (AllFormulasOf S) -> empty for set ;
coherence
for b1 being set st b1 = (AtomicFormulasOf S) \ (AllFormulasOf S) holds
b1 is empty
proof
(S -formulasOfMaxDepth 0) \ (AllFormulasOf S) = {} ;
hence for b1 being set st b1 = (AtomicFormulasOf S) \ (AllFormulasOf S) holds
b1 is empty by Lm16; ::_thesis: verum
end;
end;
theorem :: FOMODEL2:22
for S being Language
for l being literal Element of S
for phi1, phi2 being wff string of S holds
( Depth (<*l*> ^ phi1) > Depth phi1 & Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi1 & Depth ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) > Depth phi2 ) by Lm28, Lm30;
theorem Th23: :: FOMODEL2:23
for x being set
for S being Language
for p2 being FinSequence
for phi, phi2 being wff string of S st not phi is 0wff holds
( phi = (<*x*> ^ phi2) ^ p2 iff ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi ) )
proof
let x be set ; ::_thesis: for S being Language
for p2 being FinSequence
for phi, phi2 being wff string of S st not phi is 0wff holds
( phi = (<*x*> ^ phi2) ^ p2 iff ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi ) )
let S be Language; ::_thesis: for p2 being FinSequence
for phi, phi2 being wff string of S st not phi is 0wff holds
( phi = (<*x*> ^ phi2) ^ p2 iff ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi ) )
let p2 be FinSequence; ::_thesis: for phi, phi2 being wff string of S st not phi is 0wff holds
( phi = (<*x*> ^ phi2) ^ p2 iff ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi ) )
let phi, phi2 be wff string of S; ::_thesis: ( not phi is 0wff implies ( phi = (<*x*> ^ phi2) ^ p2 iff ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi ) ) )
set Phi = SubWffsOf phi;
set F = S -firstChar ;
set s = (S -firstChar) . phi;
set SS = AllSymbolsOf S;
assume A1: not phi is 0wff ; ::_thesis: ( phi = (<*x*> ^ phi2) ^ p2 iff ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi ) )
then consider phi1 being wff string of S, p being FinSequence such that
A2: ( p is AllSymbolsOf S -valued & SubWffsOf phi = [phi1,p] & phi = (<*((S -firstChar) . phi)*> ^ phi1) ^ p ) by Def35;
( ((SubWffsOf phi) `1) \+\ phi1 = {} & ((SubWffsOf phi) `2) \+\ p = {} ) by A2;
then A3: ( (SubWffsOf phi) `1 = phi1 & (SubWffsOf phi) `2 = p ) by FOMODEL0:29;
hereby ::_thesis: ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi implies phi = (<*x*> ^ phi2) ^ p2 )
assume A4: phi = (<*x*> ^ phi2) ^ p2 ; ::_thesis: ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi )
then A5: phi . 1 = (<*x*> ^ (phi2 ^ p2)) . 1 by FINSEQ_1:32
.= x by FINSEQ_1:41 ;
hence x = (S -firstChar) . phi by FOMODEL0:6; ::_thesis: ( phi2 = head phi & p2 = tail phi )
( rng p2 c= rng phi & rng phi c= AllSymbolsOf S ) by A4, FINSEQ_1:30, RELAT_1:def_19;
then rng p2 c= AllSymbolsOf S by XBOOLE_1:1;
then ( p2 is AllSymbolsOf S -valued & [phi2,p2] = [phi2,p2] & phi = (<*((S -firstChar) . phi)*> ^ phi2) ^ p2 ) by A5, A4, FOMODEL0:6, RELAT_1:def_19;
then SubWffsOf phi = [phi2,p2] by A1, Def35;
hence ( phi2 = head phi & p2 = tail phi ) by MCART_1:7; ::_thesis: verum
end;
assume ( x = (S -firstChar) . phi & phi2 = head phi & p2 = tail phi ) ; ::_thesis: phi = (<*x*> ^ phi2) ^ p2
hence phi = (<*x*> ^ phi2) ^ p2 by A3, A2; ::_thesis: verum
end;
registration
let S be Language;
let m1 be non zero Nat;
cluster non empty Relation-like NAT -defined Function-like finite FinSequence-like FinSubsequence-like V199() non 0wff m1 -wff wff non exal for Element of ((AllSymbolsOf S) *) \ {{}};
existence
not for b1 being non 0wff m1 -wff string of S holds b1 is exal
proof
set phi = the 0 -wff string of S;
set N = TheNorSymbOf S;
set phi1 = (<*(TheNorSymbOf S)*> ^ the 0 -wff string of S) ^ the 0 -wff string of S;
consider m being Nat such that
A1: m1 = m + 1 by NAT_1:6;
(<*(TheNorSymbOf S)*> ^ the 0 -wff string of S) ^ the 0 -wff string of S is non 0wff 1 + (0 * m) -wff string of S ;
then reconsider phi11 = (<*(TheNorSymbOf S)*> ^ the 0 -wff string of S) ^ the 0 -wff string of S as non 0wff m1 -wff string of S by A1;
take phi11 ; ::_thesis: not phi11 is exal
thus not phi11 is exal ; ::_thesis: verum
end;
end;
registration
let S be Language;
let phi be wff exal string of S;
cluster tail phi -> empty for set ;
coherence
for b1 being set st b1 = tail phi holds
b1 is empty
proof
set d = Depth phi;
set L = LettersOf S;
set h = head phi;
set t = tail phi;
set F = S -firstChar ;
set FF = AllFormulasOf S;
set SS = AllSymbolsOf S;
set s = (S -firstChar) . phi;
consider m being Nat such that
A1: Depth phi = m + 1 by NAT_1:6;
set Phim = S -formulasOfMaxDepth m;
phi in m -ExFormulasOf S by A1, Lm27;
then consider ll being Element of LettersOf S, phim being Element of S -formulasOfMaxDepth m such that
A2: phi = <*ll*> ^ phim ;
reconsider phimm = phim as m -wff string of S by Def24;
phi = (<*ll*> ^ phimm) ^ {} by A2;
hence for b1 being set st b1 = tail phi holds
b1 is empty by Th23; ::_thesis: verum
end;
end;
Lm38: for m being Nat
for S being Language
for phi being wff string of S st Depth phi = m + 1 & not phi is exal holds
ex phi2 being b1 -wff string of S st tail phi = phi2
proof
let m be Nat; ::_thesis: for S being Language
for phi being wff string of S st Depth phi = m + 1 & not phi is exal holds
ex phi2 being m -wff string of S st tail phi = phi2
let S be Language; ::_thesis: for phi being wff string of S st Depth phi = m + 1 & not phi is exal holds
ex phi2 being m -wff string of S st tail phi = phi2
let phi be wff string of S; ::_thesis: ( Depth phi = m + 1 & not phi is exal implies ex phi2 being m -wff string of S st tail phi = phi2 )
set d = Depth phi;
set Phim = S -formulasOfMaxDepth m;
set N = TheNorSymbOf S;
assume ( Depth phi = m + 1 & not phi is exal ) ; ::_thesis: ex phi2 being m -wff string of S st tail phi = phi2
then phi in m -NorFormulasOf S by Lm29;
then consider phi1, phi2 being Element of S -formulasOfMaxDepth m such that
A1: phi = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2 ;
reconsider phi11 = phi1, phi22 = phi2 as m -wff string of S by Def24;
set d1 = Depth phi11;
set d2 = Depth phi22;
take phi22 ; ::_thesis: tail phi = phi22
phi = (<*(TheNorSymbOf S)*> ^ phi11) ^ phi22 by A1;
hence phi22 = tail phi by Th23; ::_thesis: verum
thus verum ; ::_thesis: verum
end;
definition
let S be Language;
let phi be non 0wff wff non exal string of S;
:: original: tail
redefine func tail phi -> wff string of S;
coherence
tail phi is wff string of S
proof
consider m being Nat such that
A1: Depth phi = m + 1 by NAT_1:6;
consider phi2 being m -wff string of S such that
A2: tail phi = phi2 by A1, Lm38;
thus tail phi is wff string of S by A2; ::_thesis: verum
end;
end;
registration
let S be Language;
let phi be non 0wff wff non exal string of S;
cluster tail phi -> wff for string of S;
coherence
for b1 being string of S st b1 = tail phi holds
b1 is wff ;
end;
registration
let S be Language;
let phi0 be 0wff string of S;
identify head phi0 with phi0 null ;
compatibility
head phi0 = phi0 null
proof
( phi0 = [phi0,{}] `1 & SubWffsOf phi0 = [phi0,{}] ) by Def35;
hence head phi0 = phi0 null ; ::_thesis: verum
end;
end;
registration
let S be Language;
let phi be non 0wff wff non exal string of S;
cluster((S -firstChar) . phi) \+\ (TheNorSymbOf S) -> empty for set ;
coherence
for b1 being set st b1 = ((S -firstChar) . phi) \+\ (TheNorSymbOf S) holds
b1 is empty
proof
set F = S -firstChar ;
set N = TheNorSymbOf S;
set s = (S -firstChar) . phi;
consider m being Nat such that
A1: Depth phi = m + 1 by NAT_1:6;
phi in m -NorFormulasOf S by A1, Lm29;
then consider phi11, phi22 being Element of S -formulasOfMaxDepth m such that
A2: phi = (<*(TheNorSymbOf S)*> ^ phi11) ^ phi22 ;
(S -firstChar) . phi = phi . 1 by FOMODEL0:6
.= (<*(TheNorSymbOf S)*> ^ (phi11 ^ phi22)) . 1 by A2, FINSEQ_1:32
.= TheNorSymbOf S by FINSEQ_1:41 ;
hence for b1 being set st b1 = ((S -firstChar) . phi) \+\ (TheNorSymbOf S) holds
b1 is empty ; ::_thesis: verum
end;
end;
Lm39: for m being Nat
for S being Language
for phi being wff string of S st not phi is 0wff & not phi is exal & phi is m + 1 -wff holds
( head phi is b1 -wff string of S & tail phi is b1 -wff string of S )
proof
let m be Nat; ::_thesis: for S being Language
for phi being wff string of S st not phi is 0wff & not phi is exal & phi is m + 1 -wff holds
( head phi is m -wff string of S & tail phi is m -wff string of S )
let S be Language; ::_thesis: for phi being wff string of S st not phi is 0wff & not phi is exal & phi is m + 1 -wff holds
( head phi is m -wff string of S & tail phi is m -wff string of S )
let phi be wff string of S; ::_thesis: ( not phi is 0wff & not phi is exal & phi is m + 1 -wff implies ( head phi is m -wff string of S & tail phi is m -wff string of S ) )
assume ( not phi is 0wff & not phi is exal & phi is m + 1 -wff ) ; ::_thesis: ( head phi is m -wff string of S & tail phi is m -wff string of S )
then reconsider phii = phi as non 0wff m + 1 -wff non exal string of S ;
set N = TheNorSymbOf S;
set F = S -firstChar ;
set s = (S -firstChar) . phii;
set dh = Depth (head phii);
set dt = Depth (tail phii);
set M = max ((Depth (head phii)),(Depth (tail phii)));
set d = Depth phii;
reconsider h = head phii as Depth (head phii) -wff string of S by Def31;
reconsider t = tail phii as Depth (tail phii) -wff string of S by Def31;
A1: Depth phii <= m + 1 by Def31;
((S -firstChar) . phii) \+\ (TheNorSymbOf S) = {} ;
then (S -firstChar) . phii = TheNorSymbOf S by FOMODEL0:29;
then phii = (<*(TheNorSymbOf S)*> ^ h) ^ t by Th23;
then (max ((Depth (head phii)),(Depth (tail phii)))) + 1 <= m + 1 by A1, Th17;
then ((max ((Depth (head phii)),(Depth (tail phii)))) + 1) - 1 <= (m + 1) - 1 by XREAL_1:6;
then ( (max ((Depth (head phii)),(Depth (tail phii)))) + (- (Depth (head phii))) <= m + (- (Depth (head phii))) & (max ((Depth (head phii)),(Depth (tail phii)))) + (- (Depth (tail phii))) <= m + (- (Depth (tail phii))) ) by XREAL_1:6;
then ( (max ((Depth (head phii)),(Depth (tail phii)))) - (Depth (head phii)) <= m - (Depth (head phii)) & (max ((Depth (head phii)),(Depth (tail phii)))) - (Depth (tail phii)) <= m - (Depth (tail phii)) ) ;
then ( 0 <= m - (Depth (head phii)) & 0 <= m - (Depth (tail phii)) ) ;
then reconsider nh = m - (Depth (head phii)), nt = m - (Depth (tail phii)) as Nat ;
( h is (Depth (head phii)) + (0 * nh) -wff & t is (Depth (tail phii)) + (0 * nt) -wff ) ;
then ( h is (Depth (head phii)) + nh -wff & t is (Depth (tail phii)) + nt -wff ) ;
hence ( head phi is m -wff string of S & tail phi is m -wff string of S ) ; ::_thesis: verum
end;
registration
let m be Nat;
let S be Language;
let phi be m + 1 -wff string of S;
cluster head phi -> m -wff for string of S;
coherence
for b1 being string of S st b1 = head phi holds
b1 is m -wff
proof
set d = Depth phi;
set F = S -firstChar ;
set s = (S -firstChar) . phi;
set N = TheNorSymbOf S;
set dh = Depth (head phi);
reconsider h = head phi as Depth (head phi) -wff string of S by Def31;
A1: Depth phi <= m + 1 by Def31;
percases ( phi is 0wff or ( not phi is 0wff & not phi is exal ) or ( not phi is 0wff & phi is exal ) ) ;
suppose phi is 0wff ; ::_thesis: for b1 being string of S st b1 = head phi holds
b1 is m -wff
then reconsider phi0 = phi as 0 -wff string of S ;
phi0 is 0 + (0 * m) -wff ;
then phi0 null phi0 is 0 + m -wff string of S ;
then head phi0 is m -wff ;
hence for b1 being string of S st b1 = head phi holds
b1 is m -wff ; ::_thesis: verum
end;
suppose ( not phi is 0wff & not phi is exal ) ; ::_thesis: for b1 being string of S st b1 = head phi holds
b1 is m -wff
then reconsider phii = phi as non 0wff m + 1 -wff non exal string of S ;
head phii is m -wff string of S by Lm39;
hence for b1 being string of S st b1 = head phi holds
b1 is m -wff ; ::_thesis: verum
end;
suppose ( not phi is 0wff & phi is exal ) ; ::_thesis: for b1 being string of S st b1 = head phi holds
b1 is m -wff
then reconsider phii = phi as non 0wff m + 1 -wff exal string of S ;
set t = tail phii;
phii = (<*((S -firstChar) . phi)*> ^ h) ^ (tail phii) by Th23
.= <*((S -firstChar) . phi)*> ^ h ;
then (Depth (head phi)) + 1 <= m + 1 by A1, Th17;
then Depth (head phi) <= m by XREAL_1:6;
then (Depth (head phi)) + (- (Depth (head phi))) <= m + (- (Depth (head phi))) by XREAL_1:6;
then reconsider n = m - (Depth (head phi)) as Nat ;
h is (Depth (head phi)) + (0 * n) -wff ;
then h is (Depth (head phi)) + n -wff ;
hence for b1 being string of S st b1 = head phi holds
b1 is m -wff ; ::_thesis: verum
end;
end;
end;
end;
registration
let m be Nat;
let S be Language;
let phi be non 0wff m + 1 -wff non exal string of S;
cluster tail phi -> m -wff for string of S;
coherence
for b1 being string of S st b1 = tail phi holds
b1 is m -wff by Lm39;
end;
theorem Th24: :: FOMODEL2:24
for m being Nat
for S being Language
for U being non empty set
for I being Element of U -InterpretersOf S holds (I,m) -TruthEval in Funcs ((S -formulasOfMaxDepth m),BOOLEAN)
proof
let m be Nat; ::_thesis: for S being Language
for U being non empty set
for I being Element of U -InterpretersOf S holds (I,m) -TruthEval in Funcs ((S -formulasOfMaxDepth m),BOOLEAN)
let S be Language; ::_thesis: for U being non empty set
for I being Element of U -InterpretersOf S holds (I,m) -TruthEval in Funcs ((S -formulasOfMaxDepth m),BOOLEAN)
let U be non empty set ; ::_thesis: for I being Element of U -InterpretersOf S holds (I,m) -TruthEval in Funcs ((S -formulasOfMaxDepth m),BOOLEAN)
set Phim = S -formulasOfMaxDepth m;
set II = U -InterpretersOf S;
let I be Element of U -InterpretersOf S; ::_thesis: (I,m) -TruthEval in Funcs ((S -formulasOfMaxDepth m),BOOLEAN)
reconsider F = curry ((S,U) -TruthEval m) as Function of (U -InterpretersOf S),(Funcs ((S -formulasOfMaxDepth m),BOOLEAN)) by Lm17;
F . I in Funcs ((S -formulasOfMaxDepth m),BOOLEAN) ;
hence (I,m) -TruthEval in Funcs ((S -formulasOfMaxDepth m),BOOLEAN) ; ::_thesis: verum
end;
Lm40: for S being Language
for U being non empty set
for phi0 being 0wff string of S
for I being Element of U -InterpretersOf S holds I -TruthEval phi0 = I -AtomicEval phi0
proof
let S be Language; ::_thesis: for U being non empty set
for phi0 being 0wff string of S
for I being Element of U -InterpretersOf S holds I -TruthEval phi0 = I -AtomicEval phi0
let U be non empty set ; ::_thesis: for phi0 being 0wff string of S
for I being Element of U -InterpretersOf S holds I -TruthEval phi0 = I -AtomicEval phi0
let phi0 be 0wff string of S; ::_thesis: for I being Element of U -InterpretersOf S holds I -TruthEval phi0 = I -AtomicEval phi0
set II = U -InterpretersOf S;
let I be Element of U -InterpretersOf S; ::_thesis: I -TruthEval phi0 = I -AtomicEval phi0
set LH = I -TruthEval phi0;
set RH = I -AtomicEval phi0;
set f = (S,U) -TruthEval 0;
set Phi0 = S -formulasOfMaxDepth 0;
set AF = AtomicFormulasOf S;
set SS = AllSymbolsOf S;
reconsider phi000 = phi0 as Element of S -formulasOfMaxDepth 0 by Def24;
reconsider phi00 = phi000 as Element of AtomicFormulasOf S by Lm16;
reconsider z = 0 as Element of NAT ;
(I,0) -TruthEval is Element of Funcs ((S -formulasOfMaxDepth 0),BOOLEAN) by Th24;
then reconsider g = (I,0) -TruthEval as Function of (S -formulasOfMaxDepth 0),BOOLEAN ;
set F = curry ((S,U) -TruthEval 0);
reconsider F = curry ((S,U) -TruthEval 0) as Function of (U -InterpretersOf S),(PFuncs ((((AllSymbolsOf S) *) \ {{}}),BOOLEAN)) by Lm11;
( dom F = U -InterpretersOf S & dom g = S -formulasOfMaxDepth 0 ) by FUNCT_2:def_1;
then ( I in dom F & g = F . I & phi000 in dom g ) ;
then A1: ( g . phi0 = ((S,U) -TruthEval 0) . (I,phi0) & [I,phi0] in dom ((S,U) -TruthEval 0) ) by FUNCT_5:31;
I -TruthEval phi0 = g . phi0 by Def26
.= (((S,U) -TruthEval) . z) . [I,phi0] by A1, Def21
.= (S -TruthEval U) . (I,phi00) by Def20
.= I -AtomicEval phi0 by Def15 ;
hence I -TruthEval phi0 = I -AtomicEval phi0 ; ::_thesis: verum
end;
registration
let S be Language;
let U be non empty set ;
let I be Element of U -InterpretersOf S;
let phi0 be 0wff string of S;
identifyI -TruthEval phi0 with I -AtomicEval phi0;
compatibility
I -TruthEval phi0 = I -AtomicEval phi0 by Lm40;
identifyI -AtomicEval phi0 with I -TruthEval phi0;
compatibility
I -AtomicEval phi0 = I -TruthEval phi0 ;
end;
registration
let S be Language;
cluster non literal ofAtomicFormula for Element of AllSymbolsOf S;
existence
not for b1 being ofAtomicFormula Element of S holds b1 is literal
proof
take TheEqSymbOf S ; ::_thesis: not TheEqSymbOf S is literal
thus not TheEqSymbOf S is literal ; ::_thesis: verum
end;
end;
Lm41: for X being set
for S being Language
for U being non empty set
for I1, I2 being b2,b3 -interpreter-like Function st I1 | X = I2 | X holds
(I1 -TermEval) | (X *) = (I2 -TermEval) | (X *)
proof
let X be set ; ::_thesis: for S being Language
for U being non empty set
for I1, I2 being b1,b2 -interpreter-like Function st I1 | X = I2 | X holds
(I1 -TermEval) | (X *) = (I2 -TermEval) | (X *)
let S be Language; ::_thesis: for U being non empty set
for I1, I2 being S,b1 -interpreter-like Function st I1 | X = I2 | X holds
(I1 -TermEval) | (X *) = (I2 -TermEval) | (X *)
let U be non empty set ; ::_thesis: for I1, I2 being S,U -interpreter-like Function st I1 | X = I2 | X holds
(I1 -TermEval) | (X *) = (I2 -TermEval) | (X *)
set T = S -termsOfMaxDepth ;
set O = OwnSymbolsOf S;
set TT = AllTermsOf S;
set SS = AllSymbolsOf S;
set L = LettersOf S;
set F = S -firstChar ;
set C = S -multiCat ;
let I1, I2 be S,U -interpreter-like Function; ::_thesis: ( I1 | X = I2 | X implies (I1 -TermEval) | (X *) = (I2 -TermEval) | (X *) )
set E1 = I1 -TermEval ;
set E2 = I2 -TermEval ;
set I11 = I1 | X;
set I22 = I2 | X;
assume A1: I1 | X = I2 | X ; ::_thesis: (I1 -TermEval) | (X *) = (I2 -TermEval) | (X *)
then A2: ( dom (I1 -TermEval) = AllTermsOf S & dom (I2 -TermEval) = AllTermsOf S & I1 | X = I2 | X ) by FUNCT_2:def_1;
defpred S1[ Nat] means (I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . $1)) = (I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . $1));
A3: S1[ 0 ]
proof
set d = (X *) /\ ((S -termsOfMaxDepth) . 0);
( (S -termsOfMaxDepth) . 0 c= AllTermsOf S & (X *) /\ ((S -termsOfMaxDepth) . 0) c= (S -termsOfMaxDepth) . 0 ) by FOMODEL1:2;
then reconsider dd = (X *) /\ ((S -termsOfMaxDepth) . 0) as Subset of (AllTermsOf S) by XBOOLE_1:1;
A4: ( dom ((I1 -TermEval) | dd) = (X *) /\ ((S -termsOfMaxDepth) . 0) & dom ((I2 -TermEval) | dd) = (X *) /\ ((S -termsOfMaxDepth) . 0) ) by PARTFUN1:def_2;
now__::_thesis:_for_x_being_set_st_x_in_dom_((I1_-TermEval)_|_((X_*)_/\_((S_-termsOfMaxDepth)_._0)))_holds_
((I1_-TermEval)_|_((X_*)_/\_((S_-termsOfMaxDepth)_._0)))_._x_=_((I2_-TermEval)_|_((X_*)_/\_((S_-termsOfMaxDepth)_._0)))_._x
let x be set ; ::_thesis: ( x in dom ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) implies ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) . x = ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) . x )
assume A5: x in dom ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) ; ::_thesis: ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) . x = ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) . x
reconsider dd = dd as non empty Subset of (AllTermsOf S) by A5;
reconsider xd = x as Element of dd by A5;
reconsider t = x as 0 -termal string of S by A5, A4, FOMODEL1:def_33;
set o = (S -firstChar) . t;
set ST = SubTerms t;
reconsider XX = X as non empty set by A5;
reconsider tx = x as non empty Element of XX * by A5, A4;
{(tx . 1)} \ XX = {} ;
then tx . 1 in XX by ZFMISC_1:60;
then reconsider oo = (S -firstChar) . t as Element of XX by FOMODEL0:6;
( ((I1 | X) . oo) \+\ (I1 . oo) = {} & ((I2 | X) . oo) \+\ (I2 . oo) = {} & (((I1 -TermEval) | dd) . xd) \+\ ((I1 -TermEval) . xd) = {} & (((I2 -TermEval) | dd) . xd) \+\ ((I2 -TermEval) . xd) = {} ) ;
then A6: ( (I1 | X) . ((S -firstChar) . t) = I1 . ((S -firstChar) . t) & (I2 | X) . ((S -firstChar) . t) = I2 . ((S -firstChar) . t) & ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) . x = (I1 -TermEval) . x & ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) . x = (I2 -TermEval) . x ) by FOMODEL0:29;
hence ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) . x = (I1 . ((S -firstChar) . t)) . ((I1 -TermEval) * (SubTerms t)) by Th21
.= (I2 . ((S -firstChar) . t)) . ((I2 -TermEval) * (SubTerms t)) by A1, A6
.= ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . 0))) . x by A6, Th21 ;
::_thesis: verum
end;
hence S1[ 0 ] by A4, FUNCT_1:2; ::_thesis: verum
end;
A7: for n being Nat st S1[n] holds
S1[n + 1]
proof
let n be Nat; ::_thesis: ( S1[n] implies S1[n + 1] )
set d = (X *) /\ ((S -termsOfMaxDepth) . n);
set D = (X *) /\ ((S -termsOfMaxDepth) . (n + 1));
reconsider nn = n, NN = n + 1 as Element of NAT by ORDINAL1:def_12;
assume A8: S1[n] ; ::_thesis: S1[n + 1]
( (X *) /\ ((S -termsOfMaxDepth) . (n + 1)) c= (S -termsOfMaxDepth) . NN & (X *) /\ ((S -termsOfMaxDepth) . n) c= (S -termsOfMaxDepth) . nn & (S -termsOfMaxDepth) . nn c= AllTermsOf S & (S -termsOfMaxDepth) . NN c= AllTermsOf S ) by FOMODEL1:2;
then reconsider DD = (X *) /\ ((S -termsOfMaxDepth) . (n + 1)), dd = (X *) /\ ((S -termsOfMaxDepth) . n) as Subset of (AllTermsOf S) by XBOOLE_1:1;
A9: ( dom ((I1 -TermEval) | dd) = (X *) /\ ((S -termsOfMaxDepth) . n) & dom ((I2 -TermEval) | dd) = (X *) /\ ((S -termsOfMaxDepth) . n) & dom ((I1 -TermEval) | DD) = (X *) /\ ((S -termsOfMaxDepth) . (n + 1)) & dom ((I2 -TermEval) | DD) = (X *) /\ ((S -termsOfMaxDepth) . (n + 1)) ) by PARTFUN1:def_2;
now__::_thesis:_for_x_being_set_st_x_in_dom_((I1_-TermEval)_|_((X_*)_/\_((S_-termsOfMaxDepth)_._(n_+_1))))_holds_
((I1_-TermEval)_|_((X_*)_/\_((S_-termsOfMaxDepth)_._(n_+_1))))_._x_=_((I2_-TermEval)_|_((X_*)_/\_((S_-termsOfMaxDepth)_._(n_+_1))))_._x
let x be set ; ::_thesis: ( x in dom ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) implies ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x = ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x )
assume A10: x in dom ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) ; ::_thesis: ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x = ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x
reconsider t = x as nn + 1 -termal string of S by A10, A9, FOMODEL1:def_33;
reconsider XX = X as non empty set by A10;
reconsider DD = DD as non empty Subset of (AllTermsOf S) by A10;
reconsider tx = x as non empty Element of XX * by A10, A9;
reconsider dx = x as Element of DD by A10;
set o = (S -firstChar) . t;
set m = abs (ar ((S -firstChar) . t));
{(tx . 1)} \ XX = {} ;
then tx . 1 in XX by ZFMISC_1:60;
then reconsider oo = (S -firstChar) . t as Element of XX by FOMODEL0:6;
reconsider r = rng t as Subset of X by A10, A9, RELAT_1:def_19;
r * c= X * ;
then reconsider newords = (rng t) * as non empty Subset of (X *) ;
reconsider ST = SubTerms t as newords -valued abs (ar ((S -firstChar) . t)) -element FinSequence ;
( ((I1 | X) . oo) \+\ (I1 . oo) = {} & ((I2 | X) . oo) \+\ (I2 . oo) = {} ) ;
then A11: ( (I1 | X) . oo = I1 . oo & (I2 | X) . oo = I2 . oo ) by FOMODEL0:29;
( (((I1 -TermEval) | DD) . dx) \+\ ((I1 -TermEval) . dx) = {} & (((I2 -TermEval) | DD) . dx) \+\ ((I2 -TermEval) . dx) = {} ) ;
then A12: ( ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x = (I1 -TermEval) . x & ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x = (I2 -TermEval) . x ) by FOMODEL0:29;
( rng ST c= (S -termsOfMaxDepth) . nn & rng ST c= X * ) by RELAT_1:def_19;
then A13: ( ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . n))) * ST = (I1 -TermEval) * ST & ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . n))) * ST = (I2 -TermEval) * ST ) by A9, RELAT_1:165, XBOOLE_1:19;
then (I1 . ((S -firstChar) . t)) . (((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . n))) * ST) = (I1 -TermEval) . t by Th21;
hence ((I1 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x = ((I2 -TermEval) | ((X *) /\ ((S -termsOfMaxDepth) . (n + 1)))) . x by A12, A8, A1, A11, A13, Th21; ::_thesis: verum
end;
hence S1[n + 1] by A9, FUNCT_1:2; ::_thesis: verum
end;
A14: for m being Nat holds S1[m] from NAT_1:sch_2(A3, A7);
set f1 = (I1 -TermEval) | (X *);
set f2 = (I2 -TermEval) | (X *);
A15: ( dom ((I1 -TermEval) | (X *)) = (X *) /\ (AllTermsOf S) & dom ((I2 -TermEval) | (X *)) = (X *) /\ (AllTermsOf S) ) by A2, RELAT_1:61;
now__::_thesis:_for_x_being_set_st_x_in_dom_((I1_-TermEval)_|_(X_*))_holds_
((I1_-TermEval)_|_(X_*))_._x_=_((I2_-TermEval)_|_(X_*))_._x
let x be set ; ::_thesis: ( x in dom ((I1 -TermEval) | (X *)) implies ((I1 -TermEval) | (X *)) . x = ((I2 -TermEval) | (X *)) . x )
assume A16: x in dom ((I1 -TermEval) | (X *)) ; ::_thesis: ((I1 -TermEval) | (X *)) . x = ((I2 -TermEval) | (X *)) . x
reconsider D = (X *) /\ (AllTermsOf S) as non empty Subset of (AllTermsOf S) by A16, A2, RELAT_1:61;
reconsider t = x as termal string of S by A16, A15;
set m = Depth t;
reconsider t = t as Depth t -termal string of S by FOMODEL1:def_40;
A17: ( t in X * & t in (S -termsOfMaxDepth) . (Depth t) ) by A16, FOMODEL1:def_33;
reconsider Dm = (X *) /\ ((S -termsOfMaxDepth) . (Depth t)) as non empty set by A17, XBOOLE_0:def_4;
reconsider tt = t as Element of Dm by A17, XBOOLE_0:def_4;
reconsider xx = x as Element of X * by A16;
set g1 = (I1 -TermEval) | Dm;
set g2 = (I2 -TermEval) | Dm;
( (((I1 -TermEval) | (X *)) . xx) \+\ ((I1 -TermEval) . xx) = {} & (((I2 -TermEval) | (X *)) . xx) \+\ ((I2 -TermEval) . xx) = {} & (((I1 -TermEval) | Dm) . tt) \+\ ((I1 -TermEval) . tt) = {} & (((I2 -TermEval) | Dm) . tt) \+\ ((I2 -TermEval) . tt) = {} ) ;
then ( ((I1 -TermEval) | (X *)) . x = (I1 -TermEval) . x & ((I2 -TermEval) | (X *)) . x = (I2 -TermEval) . x & ((I1 -TermEval) | Dm) . x = (I1 -TermEval) . x & ((I2 -TermEval) | Dm) . x = (I2 -TermEval) . x ) by FOMODEL0:29;
hence ((I1 -TermEval) | (X *)) . x = ((I2 -TermEval) | (X *)) . x by A14; ::_thesis: verum
end;
hence (I1 -TermEval) | (X *) = (I2 -TermEval) | (X *) by A15, FUNCT_1:2; ::_thesis: verum
end;
theorem :: FOMODEL2:25
for S being Language
for U being non empty set
for p being FinSequence
for u being Element of U
for l2 being literal Element of S
for I being b1,b2 -interpreter-like Function st not l2 in rng p holds
(((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p
proof
let S be Language; ::_thesis: for U being non empty set
for p being FinSequence
for u being Element of U
for l2 being literal Element of S
for I being S,b1 -interpreter-like Function st not l2 in rng p holds
(((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p
let U be non empty set ; ::_thesis: for p being FinSequence
for u being Element of U
for l2 being literal Element of S
for I being S,U -interpreter-like Function st not l2 in rng p holds
(((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p
let p be FinSequence; ::_thesis: for u being Element of U
for l2 being literal Element of S
for I being S,U -interpreter-like Function st not l2 in rng p holds
(((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p
let u be Element of U; ::_thesis: for l2 being literal Element of S
for I being S,U -interpreter-like Function st not l2 in rng p holds
(((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p
let l2 be literal Element of S; ::_thesis: for I being S,U -interpreter-like Function st not l2 in rng p holds
(((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p
let I be S,U -interpreter-like Function; ::_thesis: ( not l2 in rng p implies (((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p )
set tt = p;
set II = U -InterpretersOf S;
set I2 = (l2,u) ReassignIn I;
set f2 = l2 .--> ({} .--> u);
p null {} is {} \/ (rng p) -valued FinSequence ;
then p is FinSequence of rng p by FOMODEL0:26;
then reconsider ttt = p as Element of (rng p) * by FINSEQ_1:def_11;
( (((((l2,u) ReassignIn I) -TermEval) | ((rng p) *)) . ttt) \+\ ((((l2,u) ReassignIn I) -TermEval) . ttt) = {} & (((I -TermEval) | ((rng p) *)) . ttt) \+\ ((I -TermEval) . ttt) = {} ) ;
then A1: ( ((((l2,u) ReassignIn I) -TermEval) | ((rng p) *)) . p = (((l2,u) ReassignIn I) -TermEval) . p & ((I -TermEval) | ((rng p) *)) . p = (I -TermEval) . p ) by FOMODEL0:29;
assume not l2 in rng p ; ::_thesis: (((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p
then {l2} misses rng p by ZFMISC_1:50;
then dom (l2 .--> ({} .--> u)) misses rng p by FUNCOP_1:13;
then ((l2,u) ReassignIn I) | (rng p) = I | (rng p) by FUNCT_4:72;
hence (((l2,u) ReassignIn I) -TermEval) . p = (I -TermEval) . p by A1, Lm41; ::_thesis: verum
end;
definition
let X be set ;
let S be Language;
let s be Element of S;
attrs is X -occurring means :Def38: :: FOMODEL2:def 38
s in SymbolsOf ((((AllSymbolsOf S) *) \ {{}}) /\ X);
end;
:: deftheorem Def38 defines -occurring FOMODEL2:def_38_:_
for X being set
for S being Language
for s being Element of S holds
( s is X -occurring iff s in SymbolsOf ((((AllSymbolsOf S) *) \ {{}}) /\ X) );
definition
let S be Language;
let s be Element of S;
let X be set ;
attrX is s -containing means :: FOMODEL2:def 39
s in SymbolsOf (((AllSymbolsOf S) *) \ ({{}} /\ X));
end;
:: deftheorem defines -containing FOMODEL2:def_39_:_
for S being Language
for s being Element of S
for X being set holds
( X is s -containing iff s in SymbolsOf (((AllSymbolsOf S) *) \ ({{}} /\ X)) );
notation
let X be set ;
let S be Language;
let s be Element of S;
antonym X -absent s for X -occurring ;
end;
notation
let S be Language;
let s be Element of S;
let X be set ;
antonym s -free X for s -containing ;
end;
registration
let X be finite set ;
let S be Language;
cluster literal non operational non relational termal own ofAtomicFormula X -absent for Element of AllSymbolsOf S;
existence
ex b1 being literal Element of S st b1 is X -absent
proof
set L = LettersOf S;
set SS = AllSymbolsOf S;
reconsider Y = (((AllSymbolsOf S) *) \ {{}}) /\ X as FinSequence-membered Subset of X ;
reconsider Z = SymbolsOf Y as finite set ;
reconsider free = (LettersOf S) \ Z as infinite Subset of (LettersOf S) ;
set ll = the Element of free;
reconsider l = the Element of free as literal Element of S by TARSKI:def_3;
take l ; ::_thesis: l is X -absent
not l in Z by XBOOLE_0:def_5;
hence l is X -absent by Def38; ::_thesis: verum
end;
end;
Lm42: for S being Language
for w being string of S st w is termal holds
(rng w) /\ (LettersOf S) <> {}
proof
let S be Language; ::_thesis: for w being string of S st w is termal holds
(rng w) /\ (LettersOf S) <> {}
let w be string of S; ::_thesis: ( w is termal implies (rng w) /\ (LettersOf S) <> {} )
set L = LettersOf S;
set F = S -firstChar ;
set TT = AllTermsOf S;
set C = S -multiCat ;
set SS = AllSymbolsOf S;
set CC = (AllSymbolsOf S) -multiCat ;
set T = S -termsOfMaxDepth ;
reconsider TTT = AllTermsOf S as Subset of ((AllSymbolsOf S) *) by XBOOLE_1:1;
defpred S1[ Nat] means for w being string of S st w is $1 -termal holds
(rng w) /\ (LettersOf S) <> {} ;
A1: S1[ 0 ]
proof
let w be string of S; ::_thesis: ( w is 0 -termal implies (rng w) /\ (LettersOf S) <> {} )
assume w is 0 -termal ; ::_thesis: (rng w) /\ (LettersOf S) <> {}
then reconsider t0 = w as 0 -termal string of S ;
reconsider l = (S -firstChar) . t0 as literal Element of S ;
reconsider ll = l as Element of LettersOf S by FOMODEL1:def_14;
t0 = <*l*> ^ ((S -multiCat) . (SubTerms t0)) by FOMODEL1:def_37
.= <*l*> ^ {}
.= <*l*> ;
then (rng t0) /\ (LettersOf S) = {ll} null (LettersOf S) by FINSEQ_1:38;
hence (rng w) /\ (LettersOf S) <> {} ; ::_thesis: verum
end;
A2: for k being Nat st S1[k] holds
S1[k + 1]
proof
let k be Nat; ::_thesis: ( S1[k] implies S1[k + 1] )
reconsider kk = k as Element of NAT by ORDINAL1:def_12;
assume A3: S1[k] ; ::_thesis: S1[k + 1]
let w be string of S; ::_thesis: ( w is k + 1 -termal implies (rng w) /\ (LettersOf S) <> {} )
assume w is k + 1 -termal ; ::_thesis: (rng w) /\ (LettersOf S) <> {}
then reconsider t = w as k + 1 -termal string of S ;
percases ( not t is 0 -termal or t is 0 -termal ) ;
suppose not t is 0 -termal ; ::_thesis: (rng w) /\ (LettersOf S) <> {}
then (S -firstChar) . t is operational by FOMODEL1:16;
then reconsider n = abs (ar ((S -firstChar) . t)) as non zero Nat ;
consider m being Nat such that
A4: n = m + 1 by NAT_1:6;
reconsider mm = m, nn = n as Element of NAT by ORDINAL1:def_12;
reconsider tt = t as kk + 1 -termal string of S ;
reconsider ST = SubTerms t as m + 1 -element Element of (AllTermsOf S) * by A4;
ST is (m + 1) + 0 -element ;
then {(ST . (m + 1))} \ (AllTermsOf S) = {} ;
then reconsider q = ST . (m + 1) as Element of TTT by ZFMISC_1:60;
q is Element of (AllSymbolsOf S) * by TARSKI:def_3;
then reconsider qq = q as AllSymbolsOf S -valued FinSequence ;
reconsider p = ST | (Seg m) as TTT -valued FinSequence ;
((ST | (Seg m)) ^ <*(ST . (m + 1))*>) \+\ ST = {} ;
then A5: ST = p ^ <*qq*> by FOMODEL0:29;
A6: (S -multiCat) . ST = ((S -multiCat) . p) ^ qq by A5, FOMODEL0:33;
t = <*((S -firstChar) . t)*> ^ (((S -multiCat) . p) ^ qq) by A6, FOMODEL1:def_37;
then rng t = (rng <*((S -firstChar) . t)*>) \/ (rng (((S -multiCat) . p) ^ qq)) by FINSEQ_1:31
.= {((S -firstChar) . t)} \/ (rng (((S -multiCat) . p) ^ qq)) by FINSEQ_1:38
.= {((S -firstChar) . t)} \/ ((rng ((S -multiCat) . p)) \/ (rng qq)) by FINSEQ_1:31
.= (rng qq) \/ ({((S -firstChar) . t)} \/ (rng ((S -multiCat) . p))) by XBOOLE_1:4 ;
then (rng qq) null ({((S -firstChar) . t)} \/ (rng ((S -multiCat) . p))) c= rng t ;
then A7: (rng q) /\ (LettersOf S) c= (rng t) /\ (LettersOf S) by XBOOLE_1:26;
SubTerms tt is (S -termsOfMaxDepth) . kk -valued ;
then reconsider STT = ST as (S -termsOfMaxDepth) . kk -valued (m + 1) + 0 -element FinSequence ;
{(STT . (m + 1))} \ ((S -termsOfMaxDepth) . kk) = {} ;
then reconsider qqq = q as Element of (S -termsOfMaxDepth) . kk by ZFMISC_1:60;
reconsider tq = qqq as k -termal string of S by FOMODEL1:def_33;
(rng tq) /\ (LettersOf S) <> {} by A3;
hence (rng w) /\ (LettersOf S) <> {} by A7; ::_thesis: verum
end;
suppose t is 0 -termal ; ::_thesis: (rng w) /\ (LettersOf S) <> {}
hence (rng w) /\ (LettersOf S) <> {} by A1; ::_thesis: verum
end;
end;
end;
A8: for m being Nat holds S1[m] from NAT_1:sch_2(A1, A2);
assume w is termal ; ::_thesis: (rng w) /\ (LettersOf S) <> {}
then reconsider t = w as termal string of S ;
t is Depth t -termal by FOMODEL1:def_40;
hence (rng w) /\ (LettersOf S) <> {} by A8; ::_thesis: verum
end;
registration
let S be Language;
let t be termal string of S;
cluster(rng t) /\ (LettersOf S) -> non empty for set ;
coherence
for b1 being set st b1 = (rng t) /\ (LettersOf S) holds
not b1 is empty by Lm42;
end;
Lm43: for S being Language
for w being string of S st w is wff holds
(rng w) /\ (LettersOf S) <> {}
proof
let S be Language; ::_thesis: for w being string of S st w is wff holds
(rng w) /\ (LettersOf S) <> {}
let w be string of S; ::_thesis: ( w is wff implies (rng w) /\ (LettersOf S) <> {} )
set L = LettersOf S;
set F = S -firstChar ;
set TT = AllTermsOf S;
set C = S -multiCat ;
set SS = AllSymbolsOf S;
set CC = (AllSymbolsOf S) -multiCat ;
set T = S -termsOfMaxDepth ;
reconsider TTT = AllTermsOf S as Subset of ((AllSymbolsOf S) *) by XBOOLE_1:1;
defpred S1[ Nat] means for w being string of S st w is $1 -wff holds
(rng w) /\ (LettersOf S) <> {} ;
A1: S1[ 0 ]
proof
let w be string of S; ::_thesis: ( w is 0 -wff implies (rng w) /\ (LettersOf S) <> {} )
assume w is 0 -wff ; ::_thesis: (rng w) /\ (LettersOf S) <> {}
then reconsider phi0 = w as 0wff string of S ;
reconsider r = (S -firstChar) . phi0 as relational Element of S ;
reconsider n = abs (ar r) as non zero Nat ;
consider m being Nat such that
A2: n = m + 1 by NAT_1:6;
reconsider ST = SubTerms phi0 as (m + 1) + 0 -element Element of (AllTermsOf S) * by A2;
reconsider p = ST | (Seg m) as (AllSymbolsOf S) * -valued FinSequence ;
{(ST . (m + 1))} \ (AllTermsOf S) = {} ;
then reconsider q = ST . (m + 1) as Element of AllTermsOf S by ZFMISC_1:60;
reconsider t = q as termal string of S ;
((ST | (Seg m)) ^ <*q*>) \+\ ST = {} ;
then A3: ST = (ST | (Seg m)) ^ <*q*> by FOMODEL0:29;
reconsider qq = q as AllSymbolsOf S -valued FinSequence ;
phi0 = <*r*> ^ ((S -multiCat) . ST) by FOMODEL1:def_38
.= <*r*> ^ (((S -multiCat) . p) ^ qq) by A3, FOMODEL0:33 ;
then rng phi0 = (rng <*r*>) \/ (rng (((S -multiCat) . p) ^ q)) by FINSEQ_1:31
.= (rng <*r*>) \/ ((rng ((S -multiCat) . p)) \/ (rng q)) by FINSEQ_1:31
.= (rng q) \/ ((rng <*r*>) \/ (rng ((S -multiCat) . p))) by XBOOLE_1:4 ;
then (rng t) null ((rng <*r*>) \/ (rng ((S -multiCat) . p))) c= rng phi0 ;
then (rng t) /\ (LettersOf S) c= (rng phi0) /\ (LettersOf S) by XBOOLE_1:26;
hence (rng w) /\ (LettersOf S) <> {} ; ::_thesis: verum
end;
A4: for k being Nat st S1[k] holds
S1[k + 1]
proof
let k be Nat; ::_thesis: ( S1[k] implies S1[k + 1] )
assume A5: S1[k] ; ::_thesis: S1[k + 1]
let w be string of S; ::_thesis: ( w is k + 1 -wff implies (rng w) /\ (LettersOf S) <> {} )
assume w is k + 1 -wff ; ::_thesis: (rng w) /\ (LettersOf S) <> {}
then reconsider phi = w as k + 1 -wff string of S ;
percases ( not phi is 0wff or phi is 0wff ) ;
suppose not phi is 0wff ; ::_thesis: (rng w) /\ (LettersOf S) <> {}
then reconsider phii = phi as non 0wff wff string of S ;
reconsider phi1 = head phii as k -wff string of S ;
phii = (<*((S -firstChar) . phii)*> ^ phi1) ^ (tail phi) by Th23;
then rng phii = (rng (<*((S -firstChar) . phii)*> ^ phi1)) \/ (rng (tail phi)) by FINSEQ_1:31
.= ((rng phi1) \/ (rng <*((S -firstChar) . phii)*>)) \/ (rng (tail phi)) by FINSEQ_1:31
.= (rng phi1) \/ ((rng <*((S -firstChar) . phii)*>) \/ (rng (tail phi))) by XBOOLE_1:4 ;
then (rng phi1) null ((rng <*((S -firstChar) . phii)*>) \/ (rng (tail phi))) c= rng phii ;
then (rng phi1) /\ (LettersOf S) c= (rng phii) /\ (LettersOf S) by XBOOLE_1:26;
hence (rng w) /\ (LettersOf S) <> {} by A5, XBOOLE_1:3; ::_thesis: verum
end;
suppose phi is 0wff ; ::_thesis: (rng w) /\ (LettersOf S) <> {}
hence (rng w) /\ (LettersOf S) <> {} by A1; ::_thesis: verum
end;
end;
end;
A6: for m being Nat holds S1[m] from NAT_1:sch_2(A1, A4);
assume w is wff ; ::_thesis: (rng w) /\ (LettersOf S) <> {}
then reconsider phi = w as wff string of S ;
phi is Depth phi -wff by Def31;
hence (rng w) /\ (LettersOf S) <> {} by A6; ::_thesis: verum
end;
registration
let S be Language;
let phi be wff string of S;
cluster(rng phi) /\ (LettersOf S) -> non empty for set ;
coherence
for b1 being set st b1 = (rng phi) /\ (LettersOf S) holds
not b1 is empty by Lm43;
end;
registration
let B be set ;
let S be Language;
let A be Subset of B;
clusterA -occurring -> B -occurring for Element of AllSymbolsOf S;
coherence
for b1 being Element of S st b1 is A -occurring holds
b1 is B -occurring
proof
set SS = AllSymbolsOf S;
set DA = A /\ (((AllSymbolsOf S) *) \ {{}});
set DB = B /\ (((AllSymbolsOf S) *) \ {{}});
reconsider Y = B /\ (((AllSymbolsOf S) *) \ {{}}) as functional set ;
reconsider X = A /\ (((AllSymbolsOf S) *) \ {{}}) as Subset of Y by XBOOLE_1:26;
A1: SymbolsOf X c= SymbolsOf Y by FOMODEL0:46;
let s be Element of S; ::_thesis: ( s is A -occurring implies s is B -occurring )
assume s is A -occurring ; ::_thesis: s is B -occurring
then s in SymbolsOf X by Def38;
hence s is B -occurring by Def38, A1; ::_thesis: verum
end;
end;
registration
let A, B be set ;
let S be Language;
clusterA null B -absent -> A /\ B -absent for Element of AllSymbolsOf S;
coherence
for b1 being Element of S st b1 is A null B -absent holds
b1 is A /\ B -absent ;
end;
registration
let F be finite set ;
let A be set ;
let S be Language;
clusterF -absent A -absent -> F -absent A \/ F -absent for Element of AllSymbolsOf S;
coherence
for b1 being F -absent Element of S st b1 is A -absent holds
b1 is A \/ F -absent
proof
set SS = AllSymbolsOf S;
set strings = ((AllSymbolsOf S) *) \ {{}};
reconsider DA = (((AllSymbolsOf S) *) \ {{}}) /\ A, DF = (((AllSymbolsOf S) *) \ {{}}) /\ F as Subset of (((AllSymbolsOf S) *) \ {{}}) ;
reconsider D = DA \/ DF as Subset of (((AllSymbolsOf S) *) \ {{}}) ;
A1: D = (((AllSymbolsOf S) *) \ {{}}) /\ (A \/ F) by XBOOLE_1:23;
let s be F -absent Element of S; ::_thesis: ( s is A -absent implies s is A \/ F -absent )
assume s is A -absent ; ::_thesis: s is A \/ F -absent
then ( not s in SymbolsOf DA & not s in SymbolsOf DF ) by Def38;
then not s in (SymbolsOf DA) \/ (SymbolsOf DF) by XBOOLE_0:def_3;
then not s in SymbolsOf D by FOMODEL0:47;
hence s is A \/ F -absent by A1, Def38; ::_thesis: verum
end;
end;
registration
let S be Language;
let U be non empty set ;
let I be S,U -interpreter-like Function;
cluster(OwnSymbolsOf S) \ (dom I) -> empty for set ;
coherence
for b1 being set st b1 = (OwnSymbolsOf S) \ (dom I) holds
b1 is empty
proof
OwnSymbolsOf S c= dom I by Lm2;
hence for b1 being set st b1 = (OwnSymbolsOf S) \ (dom I) holds
b1 is empty ; ::_thesis: verum
end;
end;
theorem :: FOMODEL2:26
for S being Language
for U being non empty set
for l being literal Element of S
for I being b1,b2 -interpreter-like Function ex u being Element of U st
( u = (I . l) . {} & (l,u) ReassignIn I = I )
proof
let S be Language; ::_thesis: for U being non empty set
for l being literal Element of S
for I being S,b1 -interpreter-like Function ex u being Element of U st
( u = (I . l) . {} & (l,u) ReassignIn I = I )
let U be non empty set ; ::_thesis: for l being literal Element of S
for I being S,U -interpreter-like Function ex u being Element of U st
( u = (I . l) . {} & (l,u) ReassignIn I = I )
let l be literal Element of S; ::_thesis: for I being S,U -interpreter-like Function ex u being Element of U st
( u = (I . l) . {} & (l,u) ReassignIn I = I )
let I be S,U -interpreter-like Function; ::_thesis: ex u being Element of U st
( u = (I . l) . {} & (l,u) ReassignIn I = I )
set O = OwnSymbolsOf S;
(OwnSymbolsOf S) \ (dom I) = {} ;
then A1: ( OwnSymbolsOf S c= dom I & {{}} = {{}} ) by XBOOLE_1:37;
reconsider lo = l as Element of OwnSymbolsOf S by FOMODEL1:def_19;
reconsider i = I . l as Interpreter of l,U ;
( i is Function of (0 -tuples_on U),U & 0 -tuples_on U = {{}} ) by Def2, FOMODEL0:10;
then reconsider ii = i as Function of {{}},U ;
reconsider e = {} as Element of {{}} by TARSKI:def_1;
reconsider u = ii . e as Element of U ;
take u ; ::_thesis: ( u = (I . l) . {} & (l,u) ReassignIn I = I )
thus u = (I . l) . {} ; ::_thesis: (l,u) ReassignIn I = I
set h = {} .--> u;
set H = l .--> ({} .--> u);
set J = (l,u) ReassignIn I;
{} .--> u = {{}} --> u ;
then reconsider hh = {} .--> u as Function of {{}},U ;
A2: dom (l .--> ({} .--> u)) = {lo} by FUNCOP_1:13;
then A3: dom (l .--> ({} .--> u)) c= dom I by A1, XBOOLE_1:1;
now__::_thesis:_for_z_being_Element_of_{{}}_holds_ii_._z_=_hh_._z
let z be Element of {{}}; ::_thesis: ii . z = hh . z
( ii . z = u & hh . z = u ) by FUNCOP_1:7;
hence ii . z = hh . z ; ::_thesis: verum
end;
then A4: ii = hh by FUNCT_2:63;
now__::_thesis:_for_z_being_set_st_z_in_dom_(l_.-->_({}_.-->_u))_holds_
(l_.-->_({}_.-->_u))_._z_=_I_._z
let z be set ; ::_thesis: ( z in dom (l .--> ({} .--> u)) implies (l .--> ({} .--> u)) . z = I . z )
assume z in dom (l .--> ({} .--> u)) ; ::_thesis: (l .--> ({} .--> u)) . z = I . z
then A5: z in {l} ;
hence (l .--> ({} .--> u)) . z = {} .--> u by FUNCOP_1:7
.= I . z by A4, A5, TARSKI:def_1 ;
::_thesis: verum
end;
then l .--> ({} .--> u) tolerates I by A3, PARTFUN1:53;
then (l,u) ReassignIn I = (l .--> ({} .--> u)) +* I by FUNCT_4:34
.= I by A2, A1, FUNCT_4:19, XBOOLE_1:1 ;
hence (l,u) ReassignIn I = I ; ::_thesis: verum
end;
definition
let S be Language;
let X be set ;
attrX is S -covering means :: FOMODEL2:def 40
for phi being wff string of S holds
( phi in X or xnot phi in X );
end;
:: deftheorem defines -covering FOMODEL2:def_40_:_
for S being Language
for X being set holds
( X is S -covering iff for phi being wff string of S holds
( phi in X or xnot phi in X ) );
registration
let S be Language;
clusterS -mincover -> S -covering for set ;
coherence
for b1 being set st b1 is S -mincover holds
b1 is S -covering
proof
let X be set ; ::_thesis: ( X is S -mincover implies X is S -covering )
assume A1: X is S -mincover ; ::_thesis: X is S -covering
thus for phi being wff string of S st not phi in X holds
xnot phi in X by A1, Def34; :: according to FOMODEL2:def_40 ::_thesis: verum
thus verum ; ::_thesis: verum
end;
end;
registration
let U be non empty set ;
let S be Language;
let phi be non 0wff wff non exal string of S;
let I be Element of U -InterpretersOf S;
cluster(I -TruthEval phi) \+\ ((I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi))) -> empty for set ;
coherence
for b1 being set st b1 = (I -TruthEval phi) \+\ ((I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi))) holds
b1 is empty
proof
set h = head phi;
set t = tail phi;
set A = I -TruthEval phi;
set B = I -TruthEval (head phi);
set C = I -TruthEval (tail phi);
set RH = (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi));
set F = S -firstChar ;
set l = (S -firstChar) . phi;
set N = TheNorSymbOf S;
((S -firstChar) . phi) \+\ (TheNorSymbOf S) = {} ;
then (S -firstChar) . phi = TheNorSymbOf S by FOMODEL0:29;
then A1: phi = (<*(TheNorSymbOf S)*> ^ (head phi)) ^ (tail phi) by Th23;
(I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = I -TruthEval phi
proof
percases ( not (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = 0 or (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = 0 ) ;
supposeA2: not (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = 0 ; ::_thesis: (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = I -TruthEval phi
( not I -TruthEval (head phi) = 1 & not I -TruthEval (tail phi) = 1 ) by A2;
then ( I -TruthEval (head phi) = 0 & I -TruthEval (tail phi) = 0 ) by FOMODEL0:39;
hence (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = I -TruthEval phi by A1, Lm37; ::_thesis: verum
end;
supposeA3: (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = 0 ; ::_thesis: (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = I -TruthEval phi
then ( 1 - (I -TruthEval (head phi)) = 0 or 1 - (I -TruthEval (tail phi)) = 0 ) ;
then not I -TruthEval phi = 1 by A1, Lm37;
hence (I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi)) = I -TruthEval phi by A3, FOMODEL0:39; ::_thesis: verum
end;
end;
end;
hence for b1 being set st b1 = (I -TruthEval phi) \+\ ((I -TruthEval (head phi)) 'nor' (I -TruthEval (tail phi))) holds
b1 is empty ; ::_thesis: verum
end;
end;
definition
let S be Language;
func ExFormulasOf S -> Subset of (((AllSymbolsOf S) *) \ {{}}) equals :: FOMODEL2:def 41
{ phi where phi is string of S : ( phi is wff & phi is exal ) } ;
coherence
{ phi where phi is string of S : ( phi is wff & phi is exal ) } is Subset of (((AllSymbolsOf S) *) \ {{}})
proof
set SS = AllSymbolsOf S;
set strings = ((AllSymbolsOf S) *) \ {{}};
defpred S1[ string of S] means ( $1 is wff & $1 is exal );
defpred S2[ set ] means verum;
deffunc H1( set ) -> set = $1;
A1: for w being string of S st S1[w] holds
S2[w] ;
set IT = { H1(w) where w is string of S : S1[w] } ;
{ H1(w) where w is string of S : S1[w] } c= { H1(w) where w is string of S : S2[w] } from FRAENKEL:sch_1(A1);
hence { phi where phi is string of S : ( phi is wff & phi is exal ) } is Subset of (((AllSymbolsOf S) *) \ {{}}) by DOMAIN_1:18; ::_thesis: verum
end;
end;
:: deftheorem defines ExFormulasOf FOMODEL2:def_41_:_
for S being Language holds ExFormulasOf S = { phi where phi is string of S : ( phi is wff & phi is exal ) } ;
registration
let S be Language;
cluster ExFormulasOf S -> non empty for set ;
coherence
for b1 being set st b1 = ExFormulasOf S holds
not b1 is empty
proof
the wff exal string of S in ExFormulasOf S ;
hence for b1 being set st b1 = ExFormulasOf S holds
not b1 is empty ; ::_thesis: verum
end;
end;
registration
let S be Language;
cluster -> wff exal for Element of ExFormulasOf S;
coherence
for b1 being Element of ExFormulasOf S holds
( b1 is exal & b1 is wff )
proof
set EF = ExFormulasOf S;
let x be Element of ExFormulasOf S; ::_thesis: ( x is exal & x is wff )
x in ExFormulasOf S ;
then consider w being string of S such that
A1: ( x = w & w is wff & w is exal ) ;
reconsider phi = x as wff exal string of S by A1;
phi is wff exal string of S ;
hence ( x is exal & x is wff ) ; ::_thesis: verum
end;
end;
registration
let S be Language;
cluster -> wff for Element of ExFormulasOf S;
coherence
for b1 being Element of ExFormulasOf S holds b1 is wff ;
end;
registration
let S be Language;
cluster -> exal for Element of ExFormulasOf S;
coherence
for b1 being Element of ExFormulasOf S holds b1 is exal ;
end;
registration
let S be Language;
cluster(ExFormulasOf S) \ (AllFormulasOf S) -> empty for set ;
coherence
for b1 being set st b1 = (ExFormulasOf S) \ (AllFormulasOf S) holds
b1 is empty
proof
set EF = ExFormulasOf S;
set FF = AllFormulasOf S;
for x being set st x in ExFormulasOf S holds
x in AllFormulasOf S by Th16;
then ExFormulasOf S c= AllFormulasOf S by TARSKI:def_3;
hence for b1 being set st b1 = (ExFormulasOf S) \ (AllFormulasOf S) holds
b1 is empty ; ::_thesis: verum
end;
end;
registration
let U be non empty set ;
let S1 be Language;
let S2 be S1 -extending Language;
cluster Relation-like Function-like S2,U -interpreter-like -> S1,U -interpreter-like for set ;
coherence
for b1 being Function st b1 is S2,U -interpreter-like holds
b1 is S1,U -interpreter-like
proof
set O1 = OwnSymbolsOf S1;
set O2 = OwnSymbolsOf S2;
set a1 = the adicity of S1;
set a2 = the adicity of S2;
set AS1 = AtomicFormulaSymbolsOf S1;
set E2 = TheEqSymbOf S2;
set AS2 = AtomicFormulaSymbolsOf S2;
set E1 = TheEqSymbOf S1;
let I2 be Function; ::_thesis: ( I2 is S2,U -interpreter-like implies I2 is S1,U -interpreter-like )
assume I2 is S2,U -interpreter-like ; ::_thesis: I2 is S1,U -interpreter-like
then reconsider I222 = I2 as S2,U -interpreter-like Function ;
reconsider I22 = I222 as Interpreter of S2,U by Def4;
(OwnSymbolsOf S1) \ (OwnSymbolsOf S2) = {} ;
then A1: ( OwnSymbolsOf S1 c= OwnSymbolsOf S2 & dom the adicity of S1 = AtomicFormulaSymbolsOf S1 & dom the adicity of S2 = AtomicFormulaSymbolsOf S2 ) by FUNCT_2:def_1, XBOOLE_1:37;
the adicity of S1 c= the adicity of S2 by FOMODEL1:def_41;
then A2: dom the adicity of S1 c= dom the adicity of S2 by RELAT_1:11;
now__::_thesis:_for_s1_being_own_Element_of_S1_holds_I2_._s1_is_Interpreter_of_s1,U
let s1 be own Element of S1; ::_thesis: I2 . b1 is Interpreter of b1,U
A3: s1 in AtomicFormulaSymbolsOf S1 by FOMODEL1:def_20;
then A4: s1 in dom the adicity of S1 by FUNCT_2:def_1;
s1 in AtomicFormulaSymbolsOf S2 by A3, A2, A1;
then reconsider s2 = s1 as ofAtomicFormula Element of S2 by FOMODEL1:def_20;
s1 <> TheEqSymbOf S1 ;
then ( s2 <> TheEqSymbOf S2 & s2 <> TheNorSymbOf S2 ) by FOMODEL1:def_41;
then s2 is Element of OwnSymbolsOf S2 by FOMODEL1:15;
then reconsider s2 = s2 as own Element of S2 by FOMODEL1:def_19;
reconsider i2 = I22 . s2 as Interpreter of s2,U by Def3;
set m2 = ar s2;
set m1 = ar s1;
the adicity of S1 c= the adicity of S2 by FOMODEL1:def_41;
then the adicity of S2 . s2 = ( the adicity of S2 +* the adicity of S1) . s2 by FUNCT_4:98
.= the adicity of S1 . s2 by A4, FUNCT_4:13 ;
then A5: ar s1 = ar s2 ;
percases ( s2 is relational or not s2 is relational ) ;
suppose s2 is relational ; ::_thesis: I2 . b1 is Interpreter of b1,U
then ( s1 is relational & i2 is Function of ((abs (ar s1)) -tuples_on U),BOOLEAN ) by A5, Def2;
hence I2 . s1 is Interpreter of s1,U by Def2; ::_thesis: verum
end;
suppose not s2 is relational ; ::_thesis: I2 . b1 is Interpreter of b1,U
then ( i2 is Function of ((abs (ar s1)) -tuples_on U),U & not s1 is relational ) by A5, Def2;
hence I2 . s1 is Interpreter of s1,U by Def2; ::_thesis: verum
end;
end;
end;
then ( I2 is Interpreter of S1,U & I222 is Function-yielding ) by Def3;
hence I2 is S1,U -interpreter-like by Def4; ::_thesis: verum
end;
end;
registration
let U be non empty set ;
let S1 be Language;
let S2 be S1 -extending Language;
let I be S2,U -interpreter-like Function;
clusterI | (OwnSymbolsOf S1) -> S1,U -interpreter-like for Function;
coherence
for b1 being Function st b1 = I | (OwnSymbolsOf S1) holds
b1 is S1,U -interpreter-like ;
end;
registration
let U be non empty set ;
let S1 be Language;
let S2 be S1 -extending Language;
let I1 be Element of U -InterpretersOf S1;
let I2 be S2,U -interpreter-like Function;
clusterI2 +* I1 -> S2,U -interpreter-like ;
coherence
I2 +* I1 is S2,U -interpreter-like
proof
set IT = I2 +* I1;
set O1 = OwnSymbolsOf S1;
set O2 = OwnSymbolsOf S2;
set a1 = the adicity of S1;
set a2 = the adicity of S2;
set AS1 = AtomicFormulaSymbolsOf S1;
now__::_thesis:_for_s2_being_own_Element_of_S2_holds_(I2_+*_I1)_._s2_is_Interpreter_of_s2,U
let s2 be own Element of S2; ::_thesis: (I2 +* I1) . b1 is Interpreter of b1,U
percases ( s2 in dom I1 or not s2 in dom I1 ) ;
suppose s2 in dom I1 ; ::_thesis: (I2 +* I1) . b1 is Interpreter of b1,U
then A1: ( s2 in OwnSymbolsOf S1 & (I2 +* I1) . s2 = I1 . s2 ) by FUNCT_4:13;
then reconsider s1 = s2 as own Element of S1 by FOMODEL1:def_19;
s1 in AtomicFormulaSymbolsOf S1 by FOMODEL1:def_20;
then A2: s1 in dom the adicity of S1 by FUNCT_2:def_1;
reconsider i1 = I1 . s1 as Interpreter of s1,U ;
set m2 = ar s2;
set m1 = ar s1;
the adicity of S1 c= the adicity of S2 by FOMODEL1:def_41;
then the adicity of S2 . s2 = ( the adicity of S2 +* the adicity of S1) . s2 by FUNCT_4:98
.= the adicity of S1 . s2 by A2, FUNCT_4:13 ;
then A3: ar s1 = ar s2 ;
percases ( s1 is relational or not s1 is relational ) ;
suppose s1 is relational ; ::_thesis: (I2 +* I1) . b1 is Interpreter of b1,U
then ( s2 is relational & i1 is Function of ((abs (ar s2)) -tuples_on U),BOOLEAN ) by A3, Def2;
hence (I2 +* I1) . s2 is Interpreter of s2,U by A1, Def2; ::_thesis: verum
end;
suppose not s1 is relational ; ::_thesis: (I2 +* I1) . b1 is Interpreter of b1,U
then ( i1 is Function of ((abs (ar s2)) -tuples_on U),U & not s2 is relational ) by A3, Def2;
hence (I2 +* I1) . s2 is Interpreter of s2,U by Def2, A1; ::_thesis: verum
end;
end;
end;
suppose not s2 in dom I1 ; ::_thesis: (I2 +* I1) . b1 is Interpreter of b1,U
then (I2 +* I1) . s2 = I2 . s2 by FUNCT_4:11;
hence (I2 +* I1) . s2 is Interpreter of s2,U ; ::_thesis: verum
end;
end;
end;
then I2 +* I1 is Interpreter of S2,U by Def3;
hence I2 +* I1 is S2,U -interpreter-like by Def4; ::_thesis: verum
end;
end;
definition
let U be non empty set ;
let S be Language;
let I be Element of U -InterpretersOf S;
let X be set ;
attrX is I -satisfied means :Def42: :: FOMODEL2:def 42
for phi being wff string of S st phi in X holds
I -TruthEval phi = 1;
end;
:: deftheorem Def42 defines -satisfied FOMODEL2:def_42_:_
for U being non empty set
for S being Language
for I being Element of U -InterpretersOf S
for X being set holds
( X is I -satisfied iff for phi being wff string of S st phi in X holds
I -TruthEval phi = 1 );
definition
let S be Language;
let U be non empty set ;
let X be set ;
let I be Element of U -InterpretersOf S;
attrI is X -satisfying means :Def43: :: FOMODEL2:def 43
X is I -satisfied ;
end;
:: deftheorem Def43 defines -satisfying FOMODEL2:def_43_:_
for S being Language
for U being non empty set
for X being set
for I being Element of U -InterpretersOf S holds
( I is X -satisfying iff X is I -satisfied );
registration
let U be non empty set ;
let S be Language;
let e be empty set ;
let I be Element of U -InterpretersOf S;
clustere null I -> I -satisfied ;
coherence
e null I is I -satisfied
proof
for phi being wff string of S st phi in e null I holds
I -TruthEval phi = 1 ;
hence e null I is I -satisfied by Def42; ::_thesis: verum
end;
end;
registration
let X be set ;
let U be non empty set ;
let S be Language;
let I be Element of U -InterpretersOf S;
clusterI -satisfied for Element of bool X;
existence
ex b1 being Subset of X st b1 is I -satisfied
proof
reconsider e = {} null I as Subset of X by XBOOLE_1:2;
take e ; ::_thesis: e is I -satisfied
thus e is I -satisfied ; ::_thesis: verum
end;
end;
registration
let U be non empty set ;
let S be Language;
let I be Element of U -InterpretersOf S;
clusterI -satisfied for set ;
existence
ex b1 being set st b1 is I -satisfied
proof
take the I -satisfied Subset of 1 ; ::_thesis: the I -satisfied Subset of 1 is I -satisfied
thus the I -satisfied Subset of 1 is I -satisfied ; ::_thesis: verum
end;
end;
registration
let U be non empty set ;
let S be Language;
let I be Element of U -InterpretersOf S;
let X be I -satisfied set ;
cluster -> I -satisfied for Element of bool X;
coherence
for b1 being Subset of X holds b1 is I -satisfied
proof
let Y be Subset of X; ::_thesis: Y is I -satisfied
for phi being wff string of S st phi in Y holds
I -TruthEval phi = 1 by Def42;
hence Y is I -satisfied by Def42; ::_thesis: verum
end;
end;
registration
let U be non empty set ;
let S be Language;
let I be Element of U -InterpretersOf S;
let X, Y be I -satisfied set ;
clusterX \/ Y -> I -satisfied ;
coherence
X \/ Y is I -satisfied
proof
now__::_thesis:_for_phi_being_wff_string_of_S_st_phi_in_X_\/_Y_holds_
I_-TruthEval_phi_=_1
let phi be wff string of S; ::_thesis: ( phi in X \/ Y implies I -TruthEval phi = 1 )
assume phi in X \/ Y ; ::_thesis: I -TruthEval phi = 1
then ( phi in X or phi in Y ) by XBOOLE_0:def_3;
hence I -TruthEval phi = 1 by Def42; ::_thesis: verum
end;
hence X \/ Y is I -satisfied by Def42; ::_thesis: verum
end;
end;
registration
let U be non empty set ;
let S be Language;
let I be Element of U -InterpretersOf S;
let X be I -satisfied set ;
clusterI null X -> X -satisfying for Element of U -InterpretersOf S;
coherence
for b1 being Element of U -InterpretersOf S st b1 = I null X holds
b1 is X -satisfying by Def43;
end;
definition
let S be Language;
let X be set ;
attrX is S -correct means :Def44: :: FOMODEL2:def 44
for U being non empty set
for I being Element of U -InterpretersOf S
for x being b2 -satisfied set
for phi being wff string of S st [x,phi] in X holds
I -TruthEval phi = 1;
end;
:: deftheorem Def44 defines -correct FOMODEL2:def_44_:_
for S being Language
for X being set holds
( X is S -correct iff for U being non empty set
for I being Element of U -InterpretersOf S
for x being b4 -satisfied set
for phi being wff string of S st [x,phi] in X holds
I -TruthEval phi = 1 );
registration
let S be Language;
cluster{} null S -> S -correct ;
coherence
{} null S is S -correct
proof
for U being non empty set
for I being Element of U -InterpretersOf S
for x being b2 -satisfied set
for phi being wff string of S st [x,phi] in {} null S holds
I -TruthEval phi = 1 ;
hence {} null S is S -correct by Def44; ::_thesis: verum
end;
end;
registration
let S be Language;
let X be set ;
clusterS -correct for Element of bool X;
existence
ex b1 being Subset of X st b1 is S -correct
proof
reconsider IT = {} null S as Subset of X by XBOOLE_1:2;
take IT ; ::_thesis: IT is S -correct
thus IT is S -correct ; ::_thesis: verum
end;
end;
theorem :: FOMODEL2:27
for S being Language
for U being non empty set
for phi being wff string of S
for I being Element of U -InterpretersOf S holds
( I -TruthEval phi = 1 iff {phi} is I -satisfied )
proof
let S be Language; ::_thesis: for U being non empty set
for phi being wff string of S
for I being Element of U -InterpretersOf S holds
( I -TruthEval phi = 1 iff {phi} is I -satisfied )
let U be non empty set ; ::_thesis: for phi being wff string of S
for I being Element of U -InterpretersOf S holds
( I -TruthEval phi = 1 iff {phi} is I -satisfied )
let phi be wff string of S; ::_thesis: for I being Element of U -InterpretersOf S holds
( I -TruthEval phi = 1 iff {phi} is I -satisfied )
let I be Element of U -InterpretersOf S; ::_thesis: ( I -TruthEval phi = 1 iff {phi} is I -satisfied )
hereby ::_thesis: ( {phi} is I -satisfied implies I -TruthEval phi = 1 )
assume A1: I -TruthEval phi = 1 ; ::_thesis: {phi} is I -satisfied
for psi being wff string of S st psi in {phi} holds
I -TruthEval psi = 1 by A1, TARSKI:def_1;
hence {phi} is I -satisfied by Def42; ::_thesis: verum
end;
assume {phi} is I -satisfied ; ::_thesis: I -TruthEval phi = 1
then reconsider X = {phi} as I -satisfied set ;
phi in X by TARSKI:def_1;
hence I -TruthEval phi = 1 by Def42; ::_thesis: verum
end;
theorem :: FOMODEL2:28
for S being Language
for s being Element of S
for w being string of S holds
( s is {w} -occurring iff s in rng w )
proof
let S be Language; ::_thesis: for s being Element of S
for w being string of S holds
( s is {w} -occurring iff s in rng w )
let s be Element of S; ::_thesis: for w being string of S holds
( s is {w} -occurring iff s in rng w )
let w be string of S; ::_thesis: ( s is {w} -occurring iff s in rng w )
set SS = AllSymbolsOf S;
set strings = ((AllSymbolsOf S) *) \ {{}};
reconsider X = {w} as non empty Subset of (((AllSymbolsOf S) *) \ {{}}) ;
SymbolsOf ((((AllSymbolsOf S) *) \ {{}}) /\ X) = rng w by FOMODEL0:45;
hence ( s is {w} -occurring iff s in rng w ) by Def38; ::_thesis: verum
end;
registration
let U be non empty set ;
let S be Language;
let phi1, phi2 be wff string of S;
let I be Element of U -InterpretersOf S;
cluster(I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2)) \+\ ((I -TruthEval phi1) 'nor' (I -TruthEval phi2)) -> empty for set ;
coherence
for b1 being set st b1 = (I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2)) \+\ ((I -TruthEval phi1) 'nor' (I -TruthEval phi2)) holds
b1 is empty
proof
set F = S -firstChar ;
set N = TheNorSymbOf S;
set phi = (<*(TheNorSymbOf S)*> ^ phi1) ^ phi2;
set A = I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2);
set A1 = I -TruthEval phi1;
set A2 = I -TruthEval phi2;
set h = head ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2);
set t = tail ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2);
set H = I -TruthEval (head ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2));
set T = I -TruthEval (tail ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2));
A1: ( phi1 = head ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) & phi2 = tail ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2) ) by Th23;
thus for b1 being set st b1 = (I -TruthEval ((<*(TheNorSymbOf S)*> ^ phi1) ^ phi2)) \+\ ((I -TruthEval phi1) 'nor' (I -TruthEval phi2)) holds
b1 is empty by A1; ::_thesis: verum
end;
end;
registration
let S be Language;
let phi be wff string of S;
let U be non empty set ;
let I be Element of U -InterpretersOf S;
cluster(I -TruthEval (xnot phi)) \+\ ('not' (I -TruthEval phi)) -> empty for set ;
coherence
for b1 being set st b1 = (I -TruthEval (xnot phi)) \+\ ('not' (I -TruthEval phi)) holds
b1 is empty
proof
set N = TheNorSymbOf S;
set v1 = I -TruthEval phi;
set psi = xnot phi;
(I -TruthEval (xnot phi)) \+\ ((I -TruthEval phi) 'nor' (I -TruthEval phi)) = {} ;
hence for b1 being set st b1 = (I -TruthEval (xnot phi)) \+\ ('not' (I -TruthEval phi)) holds
b1 is empty ; ::_thesis: verum
end;
end;
definition
let X be set ;
let S be Language;
let phi be wff string of S;
attrphi is X -implied means :: FOMODEL2:def 45
for U being non empty set
for I being Element of U -InterpretersOf S st X is I -satisfied holds
I -TruthEval phi = 1;
end;
:: deftheorem defines -implied FOMODEL2:def_45_:_
for X being set
for S being Language
for phi being wff string of S holds
( phi is X -implied iff for U being non empty set
for I being Element of U -InterpretersOf S st X is I -satisfied holds
I -TruthEval phi = 1 );