let V be CTLModelStr ; :: thesis: for Kai being Function of atomic_WFF ,the BasicAssign of V ex f being Function of CTL_WFF ,the Assignations of V st f is-Evaluation-for Kai
let Kai be Function of atomic_WFF ,the BasicAssign of V; :: thesis: ex f being Function of CTL_WFF ,the Assignations of V st f is-Evaluation-for Kai
set M = EvalFamily V,Kai;
for X being set st X in EvalFamily V,Kai holds
X <> {}
proof
let X be set ; :: thesis: ( X in EvalFamily V,Kai implies X <> {} )
assume A1: X in EvalFamily V,Kai ; :: thesis: X <> {}
consider n being Element of NAT such that
A2: X = EvalSet V,Kai,n by A1, Def31;
thus X <> {} by A2; :: thesis: verum
end;
then consider Choice being Function such that
dom Choice = EvalFamily V,Kai and
A3: for X being set st X in EvalFamily V,Kai holds
Choice . X in X by WELLORD2:28;
deffunc H1( set ) -> set = Choice . (EvalSet V,Kai,(k_nat $1));
A4: for n being set st n in NAT holds
H1(n) is Function of CTL_WFF ,the Assignations of V
proof
let n be set ; :: thesis: ( n in NAT implies H1(n) is Function of CTL_WFF ,the Assignations of V )
assume A5: n in NAT ; :: thesis: H1(n) is Function of CTL_WFF ,the Assignations of V
set Y = H1(n);
A6: k_nat n = n by A5, Def2;
reconsider n = n as Element of NAT by A5;
H1(n) in EvalSet V,Kai,n by A3, A6, Lm30;
then consider h being Function of CTL_WFF ,the Assignations of V such that
A7: H1(n) = h and
h is-PreEvaluation-for n,Kai ;
thus H1(n) is Function of CTL_WFF ,the Assignations of V by A7; :: thesis: verum
end;
A8: for n being set st n in NAT holds
H1(n) in Funcs CTL_WFF ,the Assignations of V
proof
let n be set ; :: thesis: ( n in NAT implies H1(n) in Funcs CTL_WFF ,the Assignations of V )
assume A9: n in NAT ; :: thesis: H1(n) in Funcs CTL_WFF ,the Assignations of V
H1(n) is Function of CTL_WFF ,the Assignations of V by A4, A9;
hence H1(n) in Funcs CTL_WFF ,the Assignations of V by FUNCT_2:11; :: thesis: verum
end;
consider f1 being Function of NAT ,(Funcs CTL_WFF ,the Assignations of V) such that
A10: for n being set st n in NAT holds
f1 . n = H1(n) from FUNCT_2:sch 2(A8);
consider v0 being Element of the Assignations of V;
deffunc H2( set ) -> set = (CastEval V,(f1 . (len (CastCTLformula $1))),v0) . $1;
A11: for H being set st H in CTL_WFF holds
H2(H) in the Assignations of V by FUNCT_2:7;
consider f being Function of CTL_WFF ,the Assignations of V such that
A12: for H being set st H in CTL_WFF holds
f . H = H2(H) from FUNCT_2:sch 2(A11);
take f ; :: thesis: f is-Evaluation-for Kai
for n being Element of NAT holds f is-PreEvaluation-for n,Kai
proof
defpred S1[ Element of NAT ] means f is-PreEvaluation-for $1,Kai;
A13: S1[ 0 ]
proof
for H being CTL-formula st len H <= 0 holds
( ( H is atomic implies f . H = Kai . H ) & ( H is negative implies f . H = the Not of V . (f . (the_argument_of H)) ) & ( H is conjunctive implies f . H = the And of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) & ( H is ExistNext implies f . H = the EneXt of V . (f . (the_argument_of H)) ) & ( H is ExistGlobal implies f . H = the EGlobal of V . (f . (the_argument_of H)) ) & ( H is ExistUntill implies f . H = the EUntill of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) ) by Lm10;
hence S1[ 0 ] by Def27; :: thesis: verum
end;
A14: 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 A15: S1[k] ; :: thesis: S1[k + 1]
for H being CTL-formula st len H <= k + 1 holds
( ( H is atomic implies f . H = Kai . H ) & ( H is negative implies f . H = the Not of V . (f . (the_argument_of H)) ) & ( H is conjunctive implies f . H = the And of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) & ( H is ExistNext implies f . H = the EneXt of V . (f . (the_argument_of H)) ) & ( H is ExistGlobal implies f . H = the EGlobal of V . (f . (the_argument_of H)) ) & ( H is ExistUntill implies f . H = the EUntill of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) )
proof
let H be CTL-formula; :: thesis: ( len H <= k + 1 implies ( ( H is atomic implies f . H = Kai . H ) & ( H is negative implies f . H = the Not of V . (f . (the_argument_of H)) ) & ( H is conjunctive implies f . H = the And of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) & ( H is ExistNext implies f . H = the EneXt of V . (f . (the_argument_of H)) ) & ( H is ExistGlobal implies f . H = the EGlobal of V . (f . (the_argument_of H)) ) & ( H is ExistUntill implies f . H = the EUntill of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) ) )
assume A16: len H <= k + 1 ; :: thesis: ( ( H is atomic implies f . H = Kai . H ) & ( H is negative implies f . H = the Not of V . (f . (the_argument_of H)) ) & ( H is conjunctive implies f . H = the And of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) & ( H is ExistNext implies f . H = the EneXt of V . (f . (the_argument_of H)) ) & ( H is ExistGlobal implies f . H = the EGlobal of V . (f . (the_argument_of H)) ) & ( H is ExistUntill implies f . H = the EUntill of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) )
now
per cases ( len H <= k or len H = k + 1 ) by A16, NAT_1:8;
case len H <= k ; :: thesis: ( ( H is atomic implies f . H = Kai . H ) & ( H is negative implies f . H = the Not of V . (f . (the_argument_of H)) ) & ( H is conjunctive implies f . H = the And of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) & ( H is ExistNext implies f . H = the EneXt of V . (f . (the_argument_of H)) ) & ( H is ExistGlobal implies f . H = the EGlobal of V . (f . (the_argument_of H)) ) & ( H is ExistUntill implies f . H = the EUntill of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) )
hence ( ( H is atomic implies f . H = Kai . H ) & ( H is negative implies f . H = the Not of V . (f . (the_argument_of H)) ) & ( H is conjunctive implies f . H = the And of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) & ( H is ExistNext implies f . H = the EneXt of V . (f . (the_argument_of H)) ) & ( H is ExistGlobal implies f . H = the EGlobal of V . (f . (the_argument_of H)) ) & ( H is ExistUntill implies f . H = the EUntill of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) ) by A15, Def27; :: thesis: verum
end;
case A17: len H = k + 1 ; :: thesis: ( ( H is atomic implies f . H = Kai . H ) & ( H is negative implies f . H = the Not of V . (f . (the_argument_of H)) ) & ( H is conjunctive implies f . H = the And of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) & ( H is ExistNext implies f . H = the EneXt of V . (f . (the_argument_of H)) ) & ( H is ExistGlobal implies f . H = the EGlobal of V . (f . (the_argument_of H)) ) & ( H is ExistUntill implies f . H = the EUntill of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) )
A18: H in CTL_WFF by Th1;
then f1 . (len (CastCTLformula H)) = f1 . (len H) by Def24
.= H1( len H) by A10 ;
then A19: CastEval V,(f1 . (len (CastCTLformula H))),v0 = H1( len H) by Def30;
set f2 = H1( len H);
reconsider f2 = H1( len H) as Function of CTL_WFF ,the Assignations of V by A19;
A20: f . H = f2 . H by A12, A18, A19;
A21: f2 = Choice . (EvalSet V,Kai,(len H)) by Def2;
Choice . (EvalSet V,Kai,(len H)) in EvalSet V,Kai,(len H) by A3, Lm30;
then consider h being Function of CTL_WFF ,the Assignations of V such that
A22: f2 = h and
A23: h is-PreEvaluation-for len H,Kai by A21;
A24: f2 is-PreEvaluation-for k,Kai by A17, A22, A23, Lm25;
A25: ( H is negative implies f . H = the Not of V . (f . (the_argument_of H)) )
proof
assume A26: H is negative ; :: thesis: f . H = the Not of V . (f . (the_argument_of H))
then len (the_argument_of H) < len H by Lm22;
then A27: len (the_argument_of H) <= k by A17, NAT_1:13;
f . H = the Not of V . (f2 . (the_argument_of H)) by A20, A22, A23, A26, Def27
.= the Not of V . (f . (the_argument_of H)) by A15, A24, A27, Lm27 ;
hence f . H = the Not of V . (f . (the_argument_of H)) ; :: thesis: verum
end;
A28: ( H is ExistNext implies f . H = the EneXt of V . (f . (the_argument_of H)) )
proof
assume A29: H is ExistNext ; :: thesis: f . H = the EneXt of V . (f . (the_argument_of H))
then len (the_argument_of H) < len H by Lm22;
then A30: len (the_argument_of H) <= k by A17, NAT_1:13;
f . H = the EneXt of V . (f2 . (the_argument_of H)) by A20, A22, A23, A29, Def27
.= the EneXt of V . (f . (the_argument_of H)) by A15, A24, A30, Lm27 ;
hence f . H = the EneXt of V . (f . (the_argument_of H)) ; :: thesis: verum
end;
A31: ( H is ExistGlobal implies f . H = the EGlobal of V . (f . (the_argument_of H)) )
proof
assume A32: H is ExistGlobal ; :: thesis: f . H = the EGlobal of V . (f . (the_argument_of H))
then len (the_argument_of H) < len H by Lm22;
then A33: len (the_argument_of H) <= k by A17, NAT_1:13;
f . H = the EGlobal of V . (f2 . (the_argument_of H)) by A20, A22, A23, A32, Def27
.= the EGlobal of V . (f . (the_argument_of H)) by A15, A24, A33, Lm27 ;
hence f . H = the EGlobal of V . (f . (the_argument_of H)) ; :: thesis: verum
end;
A34: ( H is conjunctive implies f . H = the And of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) ( H is ExistUntill implies f . H = the EUntill of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) )
proof end;
hence ( ( H is atomic implies f . H = Kai . H ) & ( H is negative implies f . H = the Not of V . (f . (the_argument_of H)) ) & ( H is conjunctive implies f . H = the And of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) & ( H is ExistNext implies f . H = the EneXt of V . (f . (the_argument_of H)) ) & ( H is ExistGlobal implies f . H = the EGlobal of V . (f . (the_argument_of H)) ) & ( H is ExistUntill implies f . H = the EUntill of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) ) by A20, A22, A23, A25, A28, A31, A34, Def27; :: thesis: verum
end;
end;
end;
hence ( ( H is atomic implies f . H = Kai . H ) & ( H is negative implies f . H = the Not of V . (f . (the_argument_of H)) ) & ( H is conjunctive implies f . H = the And of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) & ( H is ExistNext implies f . H = the EneXt of V . (f . (the_argument_of H)) ) & ( H is ExistGlobal implies f . H = the EGlobal of V . (f . (the_argument_of H)) ) & ( H is ExistUntill implies f . H = the EUntill of V . (f . (the_left_argument_of H)),(f . (the_right_argument_of H)) ) ) ; :: thesis: verum
end;
hence S1[k + 1] by Def27; :: thesis: verum
end;
for n being Element of NAT holds S1[n] from NAT_1:sch 1(A13, A14);
hence for n being Element of NAT holds f is-PreEvaluation-for n,Kai ; :: thesis: verum
end;
hence f is-Evaluation-for Kai by Lm29; :: thesis: verum