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 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
set chf = the
Choice_Function of
(BOOL (Subformulae v));
deffunc H1(
set )
-> Element of
LTLStates v =
(chosen_run (w,v, the Choice_Function of (BOOL (Subformulae v)))) . (k_nat $1);
A2:
for
x being
set st
x in NAT holds
H1(
x)
in LTLStates v
;
ex
run being
sequence of
(LTLStates v) st
for
x being
set st
x in NAT holds
run . x = H1(
x)
from FUNCT_2:sch 11(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 over
v =
CastNode (
(run . $1),
v);
A4:
for
n being
Nat holds
(
run . n is
strict elementary LTLnode over
v &
H2(
n) is
strict elementary LTLnode over
v )
A7:
for
n being
Nat holds
run . n = (chosen_run (w,v, the Choice_Function of (BOOL (Subformulae v)))) . 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 over
v by A4;
set n1 =
n + 1;
set w1 =
Shift (
w,
n);
A9:
run . n = (chosen_run (w,v, the Choice_Function of (BOOL (Subformulae v)))) . n
by A7;
H2(
n)
= CastNode (
((chosen_run (w,v, the Choice_Function of (BOOL (Subformulae v)))) . n),
v)
by A7;
then A10:
Shift (
w,
n)
|= * ('X' Rn)
by A1, Th73;
run . (n + 1) =
(chosen_run (w,v, the Choice_Function of (BOOL (Subformulae v)))) . (n + 1)
by A7
.=
chosen_next (
(Shift (w,n)),
v, the
Choice_Function of
(BOOL (Subformulae v)),
Rn)
by A9, Def50
;
then
H2(
n + 1)
= chosen_next (
(Shift (w,n)),
v, the
Choice_Function of
(BOOL (Subformulae v)),
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 12;
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)
= (CastSeq (w,AtomicFamily)) ^\ n
by MODELC_2:81;
then A12:
(CastSeq ((Shift (w,n)),AtomicFamily)) . 0 = (CastSeq (w,AtomicFamily)) . (0 + n)
by NAT_1:def 3;
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 12;
set R =
H2(
n);
reconsider R =
H2(
n) as
strict elementary LTLnode over
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 over
v by A4;
[(run . n),((CastSeq (w,AtomicFamily)) . n)] in [:(LTLStates v),AtomicFamily:]
by ZFMISC_1:87;
then
[[(run . n),((CastSeq (w,AtomicFamily)) . n)],(run . (n + 1))] in [:[:(LTLStates v),AtomicFamily:],(LTLStates v):]
by ZFMISC_1:87;
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 over
v by A4;
reconsider r =
run . n as
strict elementary LTLnode over
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 { k where k is Element of NAT : run . k in FSet } is infinite set 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:52;
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 A38:
for
k being
Nat st
m <= k holds
not
k in { k where k is Element of NAT : run . k in FSet }
;
A39:
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;
A41:
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 A39;
then
F in * H2(
m + 1)
by Lm1;
then
Shift (
w,
m)
|= F
by A41;
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 A42:
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 A43:
(
F in the
LTLold of
H2(
(m + h) + 1) & not
the_right_argument_of F in the
LTLold of
H2(
(m + h) + 1) )
by A39;
Shift (
w,
(m + h))
|= the_right_argument_of F
by A42, MODELC_2:80;
hence
contradiction
by A24, A28, A43;
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, the Choice_Function of (BOOL (Subformulae v)))) . 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
; verum