let w be Element of Inf_seq AtomicFamily ; for v being neg-inner-most LTL-formula st w |= v holds
w is-accepted-by BAutomaton v
let v be neg-inner-most LTL-formula; ( w |= v implies w is-accepted-by BAutomaton v )
set B = BAutomaton v;
set LS = LTLStates v;
set LT = Tran_LTL v;
set IS = InitS_LTL v;
set FS = FinalS_LTL v;
assume A1:
w |= v
; w is-accepted-by BAutomaton v
ex run being sequence of (LTLStates v) st
( run . 0 in InitS_LTL v & ( for n being Nat holds
( [[(run . n),((CastSeq w,AtomicFamily ) . n)],(run . (n + 1))] in Tran_LTL v & ( for FSet being set st FSet in FinalS_LTL v holds
{ k where k is Element of NAT : run . k in FSet } is infinite set ) ) ) )
proof
consider chf being
Choice_Function of
BOOL (Subformulae v);
deffunc H1(
set )
-> Element of
LTLStates v =
(chosen_run w,v,chf) . (k_nat $1);
A2:
for
x being
set st
x in NAT holds
H1(
x)
in LTLStates v
;
ex
run being
Function of
NAT ,
(LTLStates v) st
for
x being
set st
x in NAT holds
run . x = H1(
x)
from FUNCT_2:sch 2(A2);
then consider run being
sequence of
(LTLStates v) such that A3:
for
x being
set st
x in NAT holds
run . x = H1(
x)
;
deffunc H2(
Nat)
-> strict LTLnode of
v =
CastNode (run . $1),
v;
A4:
for
n being
Nat holds
(
run . n is
strict elementary LTLnode of
v &
H2(
n) is
strict elementary LTLnode of
v )
A7:
for
n being
Nat holds
run . n = (chosen_run w,v,chf) . n
A8:
for
n being
Nat holds
(
H2(
n + 1)
is_next_of H2(
n) &
Shift w,
n |= * H2(
n + 1) )
proof
let n be
Nat;
( H2(n + 1) is_next_of H2(n) & Shift w,n |= * H2(n + 1) )
set Rn =
H2(
n);
reconsider Rn =
H2(
n) as
strict elementary LTLnode of
v by A4;
set n1 =
n + 1;
set w1 =
Shift w,
n;
A9:
run . n = (chosen_run w,v,chf) . n
by A7;
H2(
n)
= CastNode ((chosen_run w,v,chf) . n),
v
by A7;
then A10:
Shift w,
n |= * ('X' Rn)
by A1, Th73;
run . (n + 1) =
(chosen_run w,v,chf) . (n + 1)
by A7
.=
chosen_next (Shift w,n),
v,
chf,
Rn
by A9, Def50
;
then
H2(
n + 1)
= chosen_next (Shift w,n),
v,
chf,
Rn
by Def16;
hence
(
H2(
n + 1)
is_next_of H2(
n) &
Shift w,
n |= * H2(
n + 1) )
by A10, Th69;
verum
end;
A11:
for
n being
Nat holds
(CastSeq w,AtomicFamily ) . n in Label_ H2(
n + 1)
proof
let n be
Nat;
(CastSeq w,AtomicFamily ) . n in Label_ H2(n + 1)
reconsider n =
n as
Element of
NAT by ORDINAL1:def 13;
set Rn =
H2(
n);
set Rn1 =
H2(
n + 1);
set w1 =
Shift w,
n;
set X =
(CastSeq w,AtomicFamily ) . n;
reconsider X =
(CastSeq w,AtomicFamily ) . n as
Subset of
atomic_LTL ;
CastSeq (Shift w,n),
AtomicFamily = Shift (CastSeq w,AtomicFamily ),
n
by MODELC_2:81;
then A12:
(CastSeq (Shift w,n),AtomicFamily ) . 0 = (CastSeq w,AtomicFamily ) . (0 + n)
by MODELC_2:def 45;
A13:
Shift w,
n |= * H2(
n + 1)
by A8;
atomic_LTL H2(
n + 1)
c= X
hence
(CastSeq w,AtomicFamily ) . n in Label_ H2(
n + 1)
by A14;
verum
end;
A21:
for
n being
Nat holds
[[(run . n),((CastSeq w,AtomicFamily ) . n)],(run . (n + 1))] in Tran_LTL v
proof
let n be
Nat;
[[(run . n),((CastSeq w,AtomicFamily ) . n)],(run . (n + 1))] in Tran_LTL v
reconsider n =
n as
Element of
NAT by ORDINAL1:def 13;
set R =
H2(
n);
reconsider R =
H2(
n) as
strict elementary LTLnode of
v by A4;
set n1 =
n + 1;
set r =
run . n;
set r1 =
run . (n + 1);
set R1 =
H2(
n + 1);
set gA =
(CastSeq w,AtomicFamily ) . n;
set y =
[[(run . n),((CastSeq w,AtomicFamily ) . n)],(run . (n + 1))];
reconsider R1 =
H2(
n + 1) as
strict elementary LTLnode of
v by A4;
[(run . n),((CastSeq w,AtomicFamily ) . n)] in [:(LTLStates v),AtomicFamily :]
by ZFMISC_1:106;
then
[[(run . n),((CastSeq w,AtomicFamily ) . n)],(run . (n + 1))] in [:[:(LTLStates v),AtomicFamily :],(LTLStates v):]
by ZFMISC_1:106;
then A22:
[[(run . n),((CastSeq w,AtomicFamily ) . n)],(run . (n + 1))] is
Element of
[:(LTLStates v),AtomicFamily ,(LTLStates v):]
by ZFMISC_1:def 3;
reconsider r1 =
run . (n + 1) as
strict elementary LTLnode of
v by A4;
reconsider r =
run . n as
strict elementary LTLnode of
v by A4;
A23:
(
R1 is_next_of R &
(CastSeq w,AtomicFamily ) . n in Label_ R1 )
by A8, A11;
(
R = r &
R1 = r1 )
by Def16;
hence
[[(run . n),((CastSeq w,AtomicFamily ) . n)],(run . (n + 1))] in Tran_LTL v
by A22, A23;
verum
end;
A24:
for
n being
Nat for
H being
LTL-formula st
H in the
LTLold of
H2(
n + 1) &
H is
Until &
Shift w,
n |= the_right_argument_of H holds
the_right_argument_of H in the
LTLold of
H2(
n + 1)
A25:
for
FSet being
set st
FSet in FinalS_LTL v holds
{ k where k is Element of NAT : run . k in FSet } is
infinite set
proof
let FSet be
set ;
( FSet in FinalS_LTL v implies { k where k is Element of NAT : run . k in FSet } is infinite set )
set FK =
{ k where k is Element of NAT : run . k in FSet } ;
assume
FSet in FinalS_LTL v
;
{ k where k is Element of NAT : run . k in FSet } is infinite set
then consider x being
Element of
bool (LTLStates v) such that A26:
FSet = x
and A27:
ex
F being
LTL-formula st
(
F is_subformula_of v &
F is
Until &
x = FinalS_LTL F,
v )
;
consider F being
LTL-formula such that
F is_subformula_of v
and A28:
F is
Until
and A29:
x = FinalS_LTL F,
v
by A27;
set F2 =
the_right_argument_of F;
set F1 =
the_left_argument_of F;
A30:
F = (the_left_argument_of F) 'U' (the_right_argument_of F)
by A28, MODELC_2:8;
now assume
{ k where k is Element of NAT : run . k in FSet } is not
infinite set
;
contradictionthen consider L being
FinSequence such that A31:
{ k where k is Element of NAT : run . k in FSet } = rng L
by FINSEQ_1:73;
ex
m being
Nat st
for
k being
Nat st
m <= k holds
not
k in { k where k is Element of NAT : run . k in FSet }
then consider m being
Nat such that A37:
for
k being
Nat st
m <= k holds
not
k in { k where k is Element of NAT : run . k in FSet }
;
A38:
for
k being
Nat st
m <= k holds
(
F in the
LTLold of
H2(
k) & not
the_right_argument_of F in the
LTLold of
H2(
k) )
set w1 =
Shift w,
m;
set m1 =
m + 1;
A40:
Shift w,
m |= * H2(
m + 1)
by A8;
m <= m + 1
by NAT_1:11;
then
F in the
LTLold of
H2(
m + 1)
by A38;
then
F in * H2(
m + 1)
by Lm1;
then
Shift w,
m |= F
by A40, MODELC_2:def 68;
then consider h being
Nat such that
for
j being
Nat st
j < h holds
Shift (Shift w,m),
j |= the_left_argument_of F
and A41:
Shift (Shift w,m),
h |= the_right_argument_of F
by A30, MODELC_2:68;
set m2 =
m + h;
set m3 =
(m + h) + 1;
(m + h) + 1
= m + (h + 1)
;
then
m <= (m + h) + 1
by NAT_1:11;
then A42:
(
F in the
LTLold of
H2(
(m + h) + 1) & not
the_right_argument_of F in the
LTLold of
H2(
(m + h) + 1) )
by A38;
Shift w,
(m + h) |= the_right_argument_of F
by A41, MODELC_2:80;
hence
contradiction
by A24, A28, A42;
verum end;
hence
{ k where k is Element of NAT : run . k in FSet } is
infinite set
;
verum
end;
run . 0 =
(chosen_run w,v,chf) . 0
by A7
.=
init v
by Def50
;
then
run . 0 in InitS_LTL v
by TARSKI:def 1;
hence
ex
run being
sequence of
(LTLStates v) st
(
run . 0 in InitS_LTL v & ( for
n being
Nat holds
(
[[(run . n),((CastSeq w,AtomicFamily ) . n)],(run . (n + 1))] in Tran_LTL v & ( for
FSet being
set st
FSet in FinalS_LTL v holds
{ k where k is Element of NAT : run . k in FSet } is
infinite set ) ) ) )
by A21, A25;
verum
end;
hence
w is-accepted-by BAutomaton v
by Def39; verum