Lm1:
for a, X1, X2, X3 being set holds
( a in (X1 \/ X2) \/ X3 iff ( a in X1 or a in X2 or a in X3 ) )
Lm2:
for a, X1, X2, X3, X4 being set holds
( a in (X1 \ X2) \/ (X3 \ X4) iff ( ( a in X1 & not a in X2 ) or ( a in X3 & not a in X4 ) ) )
Lm3:
for H being LTL-formula holds
( <*H*> . 1 = H & rng <*H*> = {H} )
Lm4:
for r1, r2 being Real st r1 <= r2 holds
[\r1/] <= [\r2/]
Lm5:
for r1, r2 being Real st r1 <= r2 - 1 holds
[\r1/] <= [\r2/] - 1
Lm6:
for n being Nat holds
( n = 0 or 1 <= n )
Lm7:
for H being LTL-formula st ( H is negative or H is next ) holds
the_argument_of H is_subformula_of H
Lm8:
for H being LTL-formula st ( H is conjunctive or H is disjunctive or H is Until or H is Release ) holds
( the_left_argument_of H is_subformula_of H & the_right_argument_of H is_subformula_of H )
Lm9:
for F, H being LTL-formula st F is_subformula_of H holds
{F} is Subset of (Subformulae H)
by MODELC_2:45, SUBSET_1:41;
Lm10:
for F, G, H being LTL-formula st F is_subformula_of H & G is_subformula_of H holds
{F,G} is Subset of (Subformulae H)
Lm11:
for H being LTL-formula st ( H is disjunctive or H is conjunctive or H is Until or H is Release ) holds
{(the_left_argument_of H),(the_right_argument_of H)} is Subset of (Subformulae H)
Lm12:
for H being LTL-formula st ( H is disjunctive or H is conjunctive or H is Until or H is Release ) holds
( {(the_left_argument_of H)} is Subset of (Subformulae H) & {(the_right_argument_of H)} is Subset of (Subformulae H) )
Lm13:
for H being LTL-formula holds {H} is Subset of (Subformulae H)
by Lm9;
Lm14:
for H being LTL-formula st ( H is negative or H is next ) holds
{(the_argument_of H)} is Subset of (Subformulae H)
definition
let H be
LTL-formula;
correctness
coherence
( ( H is conjunctive implies {(the_left_argument_of H),(the_right_argument_of H)} is Subset of (Subformulae H) ) & ( H is disjunctive implies {(the_left_argument_of H)} is Subset of (Subformulae H) ) & ( H is next implies {} is Subset of (Subformulae H) ) & ( H is Until implies {(the_left_argument_of H)} is Subset of (Subformulae H) ) & ( H is Release implies {(the_right_argument_of H)} is Subset of (Subformulae H) ) & ( not H is conjunctive & not H is disjunctive & not H is next & not H is Until & not H is Release implies {} is Subset of (Subformulae H) ) );
consistency
for b1 being Subset of (Subformulae H) holds
( ( H is conjunctive & H is disjunctive implies ( b1 = {(the_left_argument_of H),(the_right_argument_of H)} iff b1 = {(the_left_argument_of H)} ) ) & ( H is conjunctive & H is next implies ( b1 = {(the_left_argument_of H),(the_right_argument_of H)} iff b1 = {} ) ) & ( H is conjunctive & H is Until implies ( b1 = {(the_left_argument_of H),(the_right_argument_of H)} iff b1 = {(the_left_argument_of H)} ) ) & ( H is conjunctive & H is Release implies ( b1 = {(the_left_argument_of H),(the_right_argument_of H)} iff b1 = {(the_right_argument_of H)} ) ) & ( H is disjunctive & H is next implies ( b1 = {(the_left_argument_of H)} iff b1 = {} ) ) & ( H is disjunctive & H is Until implies ( b1 = {(the_left_argument_of H)} iff b1 = {(the_left_argument_of H)} ) ) & ( H is disjunctive & H is Release implies ( b1 = {(the_left_argument_of H)} iff b1 = {(the_right_argument_of H)} ) ) & ( H is next & H is Until implies ( b1 = {} iff b1 = {(the_left_argument_of H)} ) ) & ( H is next & H is Release implies ( b1 = {} iff b1 = {(the_right_argument_of H)} ) ) & ( H is Until & H is Release implies ( b1 = {(the_left_argument_of H)} iff b1 = {(the_right_argument_of H)} ) ) );
by Lm11, Lm12, MODELC_2:78, SUBSET_1:1;
correctness
coherence
( ( H is conjunctive implies {} is Subset of (Subformulae H) ) & ( H is disjunctive implies {(the_right_argument_of H)} is Subset of (Subformulae H) ) & ( H is next implies {} is Subset of (Subformulae H) ) & ( H is Until implies {(the_right_argument_of H)} is Subset of (Subformulae H) ) & ( H is Release implies {(the_left_argument_of H),(the_right_argument_of H)} is Subset of (Subformulae H) ) & ( not H is conjunctive & not H is disjunctive & not H is next & not H is Until & not H is Release implies {} is Subset of (Subformulae H) ) );
consistency
for b1 being Subset of (Subformulae H) holds
( ( H is conjunctive & H is disjunctive implies ( b1 = {} iff b1 = {(the_right_argument_of H)} ) ) & ( H is conjunctive & H is next implies ( b1 = {} iff b1 = {} ) ) & ( H is conjunctive & H is Until implies ( b1 = {} iff b1 = {(the_right_argument_of H)} ) ) & ( H is conjunctive & H is Release implies ( b1 = {} iff b1 = {(the_left_argument_of H),(the_right_argument_of H)} ) ) & ( H is disjunctive & H is next implies ( b1 = {(the_right_argument_of H)} iff b1 = {} ) ) & ( H is disjunctive & H is Until implies ( b1 = {(the_right_argument_of H)} iff b1 = {(the_right_argument_of H)} ) ) & ( H is disjunctive & H is Release implies ( b1 = {(the_right_argument_of H)} iff b1 = {(the_left_argument_of H),(the_right_argument_of H)} ) ) & ( H is next & H is Until implies ( b1 = {} iff b1 = {(the_right_argument_of H)} ) ) & ( H is next & H is Release implies ( b1 = {} iff b1 = {(the_left_argument_of H),(the_right_argument_of H)} ) ) & ( H is Until & H is Release implies ( b1 = {(the_right_argument_of H)} iff b1 = {(the_left_argument_of H),(the_right_argument_of H)} ) ) );
by Lm11, Lm12, MODELC_2:78, SUBSET_1:1;
correctness
coherence
( ( H is conjunctive implies {} is Subset of (Subformulae H) ) & ( H is disjunctive implies {} is Subset of (Subformulae H) ) & ( H is next implies {(the_argument_of H)} is Subset of (Subformulae H) ) & ( H is Until implies {H} is Subset of (Subformulae H) ) & ( H is Release implies {H} is Subset of (Subformulae H) ) & ( not H is conjunctive & not H is disjunctive & not H is next & not H is Until & not H is Release implies {} is Subset of (Subformulae H) ) );
consistency
for b1 being Subset of (Subformulae H) holds
( ( H is conjunctive & H is disjunctive implies ( b1 = {} iff b1 = {} ) ) & ( H is conjunctive & H is next implies ( b1 = {} iff b1 = {(the_argument_of H)} ) ) & ( H is conjunctive & H is Until implies ( b1 = {} iff b1 = {H} ) ) & ( H is conjunctive & H is Release implies ( b1 = {} iff b1 = {H} ) ) & ( H is disjunctive & H is next implies ( b1 = {} iff b1 = {(the_argument_of H)} ) ) & ( H is disjunctive & H is Until implies ( b1 = {} iff b1 = {H} ) ) & ( H is disjunctive & H is Release implies ( b1 = {} iff b1 = {H} ) ) & ( H is next & H is Until implies ( b1 = {(the_argument_of H)} iff b1 = {H} ) ) & ( H is next & H is Release implies ( b1 = {(the_argument_of H)} iff b1 = {H} ) ) & ( H is Until & H is Release implies ( b1 = {H} iff b1 = {H} ) ) );
by Lm13, Lm14, MODELC_2:78, SUBSET_1:1;
end;
Lm15:
for m being Nat
for L being FinSequence
for v being LTL-formula st L is_Finseq_for v & 1 <= m & m <= len L holds
ex L1, L2 being FinSequence st
( L2 is_Finseq_for v & L = L1 ^ L2 & L2 . 1 = L . m & 1 <= len L2 & len L2 = (len L) - (m - 1) & L2 . (len L2) = L . (len L) )
Lm16:
for H, v being LTL-formula
for N being strict LTLnode over v st H in the LTLnew of N & ( H is atomic or H is negative ) holds
* N = * (SuccNode1 (H,N))
Lm17:
for H, v being LTL-formula
for N being strict LTLnode over v
for w being Element of Inf_seq AtomicFamily st H in the LTLnew of N & ( H is conjunctive or H is next ) holds
( w |= * N iff w |= * (SuccNode1 (H,N)) )
Lm18:
for H, v being LTL-formula
for N being strict LTLnode over v
for w being Element of Inf_seq AtomicFamily st H in the LTLnew of N & H is disjunctive holds
( w |= * N iff ( w |= * (SuccNode1 (H,N)) or w |= * (SuccNode2 (H,N)) ) )
Lm19:
for H, v being LTL-formula
for N being strict LTLnode over v
for w being Element of Inf_seq AtomicFamily st H in the LTLnew of N & H is Until holds
( w |= * N iff ( w |= * (SuccNode1 (H,N)) or w |= * (SuccNode2 (H,N)) ) )
Lm20:
for H, v being LTL-formula
for N being strict LTLnode over v
for w being Element of Inf_seq AtomicFamily st H in the LTLnew of N & H is Release holds
( w |= * N iff ( w |= * (SuccNode1 (H,N)) or w |= * (SuccNode2 (H,N)) ) )
Lm21:
for H being LTL-formula st ( H is negative or H is next ) holds
Subformulae H = (Subformulae (the_argument_of H)) \/ {H}
Lm22:
for H being LTL-formula st ( H is conjunctive or H is disjunctive or H is Until or H is Release ) holds
Subformulae H = ((Subformulae (the_left_argument_of H)) \/ (Subformulae (the_right_argument_of H))) \/ {H}
Lm23:
for H being LTL-formula st H is atomic holds
Subformulae H = {H}
Lm24:
for H being LTL-formula
for W being Subset of (Subformulae H) holds not {} in W
Lm25:
for n being Nat
for R1, R2 being Real_Sequence st ( for i being Nat st i <= n holds
R1 . i = R2 . i ) holds
Sum (R1,n) = Sum (R2,n)
Lm26:
for n, j being Nat
for R1, R2 being Real_Sequence st ( for i being Nat st i <= n & not i = j holds
R1 . i = R2 . i ) & j <= n holds
(Sum (R1,n)) - (R1 . j) = (Sum (R2,n)) - (R2 . j)
Lm27:
for H, v being LTL-formula st H in Subformulae v holds
len (LTLNew1 (H,v)) <= (len H) - 1
Lm28:
for H, v being LTL-formula st H in Subformulae v holds
len (LTLNew2 (H,v)) <= (len H) - 1
Lm29:
for F, G, v being LTL-formula
for s0, s1, s2 being strict elementary LTLnode over v st s1 is_next_of s0 & s2 is_next_of s1 & F 'U' G in the LTLold of s1 & not G in the LTLold of s1 holds
( F in the LTLold of s1 & F 'U' G in the LTLold of s2 )
Lm30:
for n being Nat
for X being set st X <> {} & X c= Seg n holds
ex k being Nat st
( 1 <= k & k <= n & k in X & ( for i being Nat st 1 <= i & i < k holds
not i in X ) )
Lm31:
for n being Nat
for F, G, v being LTL-formula
for q being sequence of (LTLStates v) st F 'U' G in the LTLold of (CastNode ((q . 1),v)) & ( for i being Nat holds CastNode ((q . (i + 1)),v) is_next_of CastNode ((q . i),v) ) & ( for i being Nat st 1 <= i & i < n holds
not G in the LTLold of (CastNode ((q . i),v)) ) holds
for i being Nat st 1 <= i & i < n holds
( F in the LTLold of (CastNode ((q . i),v)) & F 'U' G in the LTLold of (CastNode ((q . i),v)) )
Lm32:
for F, G, v being LTL-formula
for q being sequence of (LTLStates v) st F 'U' G in the LTLold of (CastNode ((q . 1),v)) & ( for i being Nat holds CastNode ((q . (i + 1)),v) is_next_of CastNode ((q . i),v) ) & ex i being Nat st
( i >= 1 & not ( F 'U' G in the LTLold of (CastNode ((q . i),v)) & F in the LTLold of (CastNode ((q . i),v)) & not G in the LTLold of (CastNode ((q . i),v)) ) ) holds
ex j being Nat st
( j >= 1 & G in the LTLold of (CastNode ((q . j),v)) & ( for i being Nat st 1 <= i & i < j holds
( F 'U' G in the LTLold of (CastNode ((q . i),v)) & F in the LTLold of (CastNode ((q . i),v)) ) ) )
theorem Th54:
for
H,
v being
LTL-formula for
q being
sequence of
(LTLStates v) st
H is
Until &
H in the
LTLold of
(CastNode ((q . 1),v)) & ( for
i being
Nat holds
CastNode (
(q . (i + 1)),
v)
is_next_of CastNode (
(q . i),
v) ) & ex
i being
Nat st
(
i >= 1 & not (
H in the
LTLold of
(CastNode ((q . i),v)) &
the_left_argument_of H in the
LTLold of
(CastNode ((q . i),v)) & not
the_right_argument_of H in the
LTLold of
(CastNode ((q . i),v)) ) ) holds
ex
j being
Nat st
(
j >= 1 &
the_right_argument_of H in the
LTLold of
(CastNode ((q . j),v)) & ( for
i being
Nat st 1
<= i &
i < j holds
(
H in the
LTLold of
(CastNode ((q . i),v)) &
the_left_argument_of H in the
LTLold of
(CastNode ((q . i),v)) ) ) )
definition
let w be
Element of
Inf_seq AtomicFamily;
let v be
LTL-formula;
let U be
Choice_Function of
(BOOL (Subformulae v));
let N be
strict LTLnode over
v;
func chosen_succ (
w,
v,
U,
N)
-> strict LTLnode over
v equals :
Def35:
SuccNode1 (
(chosen_formula (U,N)),
N)
if ( ( not
chosen_formula (
U,
N) is
Until &
w |= * (SuccNode1 ((chosen_formula (U,N)),N)) ) or (
chosen_formula (
U,
N) is
Until &
w |/= the_right_argument_of (chosen_formula (U,N)) ) )
otherwise SuccNode2 (
(chosen_formula (U,N)),
N);
correctness
coherence
( ( ( ( not chosen_formula (U,N) is Until & w |= * (SuccNode1 ((chosen_formula (U,N)),N)) ) or ( chosen_formula (U,N) is Until & w |/= the_right_argument_of (chosen_formula (U,N)) ) ) implies SuccNode1 ((chosen_formula (U,N)),N) is strict LTLnode over v ) & ( ( not chosen_formula (U,N) is Until & w |= * (SuccNode1 ((chosen_formula (U,N)),N)) ) or ( chosen_formula (U,N) is Until & w |/= the_right_argument_of (chosen_formula (U,N)) ) or SuccNode2 ((chosen_formula (U,N)),N) is strict LTLnode over v ) );
consistency
for b1 being strict LTLnode over v holds verum;
;
end;
::
deftheorem Def35 defines
chosen_succ MODELC_3:def 35 :
for w being Element of Inf_seq AtomicFamily
for v being LTL-formula
for U being Choice_Function of (BOOL (Subformulae v))
for N being strict LTLnode over v holds
( ( ( ( not chosen_formula (U,N) is Until & w |= * (SuccNode1 ((chosen_formula (U,N)),N)) ) or ( chosen_formula (U,N) is Until & w |/= the_right_argument_of (chosen_formula (U,N)) ) ) implies chosen_succ (w,v,U,N) = SuccNode1 ((chosen_formula (U,N)),N) ) & ( ( not chosen_formula (U,N) is Until & w |= * (SuccNode1 ((chosen_formula (U,N)),N)) ) or ( chosen_formula (U,N) is Until & w |/= the_right_argument_of (chosen_formula (U,N)) ) or chosen_succ (w,v,U,N) = SuccNode2 ((chosen_formula (U,N)),N) ) );
theorem
for
v being
LTL-formula for
N being
strict LTLnode over
v for
w being
Element of
Inf_seq AtomicFamily for
U being
Choice_Function of
(BOOL (Subformulae v)) st not
N is
elementary &
chosen_formula (
U,
N) is
Until &
w |= the_right_argument_of (chosen_formula (U,N)) holds
( (
the_right_argument_of (chosen_formula (U,N)) in the
LTLnew of
(chosen_succ (w,v,U,N)) or
the_right_argument_of (chosen_formula (U,N)) in the
LTLold of
N ) &
chosen_formula (
U,
N)
in the
LTLold of
(chosen_succ (w,v,U,N)) )
definition
let w be
Element of
Inf_seq AtomicFamily;
let v be
LTL-formula;
let U be
Choice_Function of
(BOOL (Subformulae v));
existence
ex b1 being Function of (LTLNodes v),(LTLNodes v) st
for x being set st x in LTLNodes v holds
b1 . x = chosen_succ (w,v,U,(CastNode (x,v)))
uniqueness
for b1, b2 being Function of (LTLNodes v),(LTLNodes v) st ( for x being set st x in LTLNodes v holds
b1 . x = chosen_succ (w,v,U,(CastNode (x,v))) ) & ( for x being set st x in LTLNodes v holds
b2 . x = chosen_succ (w,v,U,(CastNode (x,v))) ) holds
b1 = b2
end;
definition
let w be
Element of
Inf_seq AtomicFamily;
let v be
neg-inner-most LTL-formula;
let U be
Choice_Function of
(BOOL (Subformulae v));
let N be
strict LTLnode over
v;
assume that A1:
not
N is
elementary
and A2:
w |= * N
;
func chosen_succ_end_num (
w,
v,
U,
N)
-> Nat means :
Def48:
( ( for
i being
Nat st
i < it holds
( not
CastNode (
(((choice_succ_func (w,v,U)) |** i) . N),
v) is
elementary &
CastNode (
(((choice_succ_func (w,v,U)) |** (i + 1)) . N),
v)
is_succ_of CastNode (
(((choice_succ_func (w,v,U)) |** i) . N),
v) ) ) &
CastNode (
(((choice_succ_func (w,v,U)) |** it) . N),
v) is
elementary & ( for
i being
Nat st
i <= it holds
w |= * (CastNode ((((choice_succ_func (w,v,U)) |** i) . N),v)) ) );
existence
ex b1 being Nat st
( ( for i being Nat st i < b1 holds
( not CastNode ((((choice_succ_func (w,v,U)) |** i) . N),v) is elementary & CastNode ((((choice_succ_func (w,v,U)) |** (i + 1)) . N),v) is_succ_of CastNode ((((choice_succ_func (w,v,U)) |** i) . N),v) ) ) & CastNode ((((choice_succ_func (w,v,U)) |** b1) . N),v) is elementary & ( for i being Nat st i <= b1 holds
w |= * (CastNode ((((choice_succ_func (w,v,U)) |** i) . N),v)) ) )
uniqueness
for b1, b2 being Nat st ( for i being Nat st i < b1 holds
( not CastNode ((((choice_succ_func (w,v,U)) |** i) . N),v) is elementary & CastNode ((((choice_succ_func (w,v,U)) |** (i + 1)) . N),v) is_succ_of CastNode ((((choice_succ_func (w,v,U)) |** i) . N),v) ) ) & CastNode ((((choice_succ_func (w,v,U)) |** b1) . N),v) is elementary & ( for i being Nat st i <= b1 holds
w |= * (CastNode ((((choice_succ_func (w,v,U)) |** i) . N),v)) ) & ( for i being Nat st i < b2 holds
( not CastNode ((((choice_succ_func (w,v,U)) |** i) . N),v) is elementary & CastNode ((((choice_succ_func (w,v,U)) |** (i + 1)) . N),v) is_succ_of CastNode ((((choice_succ_func (w,v,U)) |** i) . N),v) ) ) & CastNode ((((choice_succ_func (w,v,U)) |** b2) . N),v) is elementary & ( for i being Nat st i <= b2 holds
w |= * (CastNode ((((choice_succ_func (w,v,U)) |** i) . N),v)) ) holds
b1 = b2
end;
::
deftheorem Def48 defines
chosen_succ_end_num MODELC_3:def 48 :
for w being Element of Inf_seq AtomicFamily
for v being neg-inner-most LTL-formula
for U being Choice_Function of (BOOL (Subformulae v))
for N being strict LTLnode over v st not N is elementary & w |= * N holds
for b5 being Nat holds
( b5 = chosen_succ_end_num (w,v,U,N) iff ( ( for i being Nat st i < b5 holds
( not CastNode ((((choice_succ_func (w,v,U)) |** i) . N),v) is elementary & CastNode ((((choice_succ_func (w,v,U)) |** (i + 1)) . N),v) is_succ_of CastNode ((((choice_succ_func (w,v,U)) |** i) . N),v) ) ) & CastNode ((((choice_succ_func (w,v,U)) |** b5) . N),v) is elementary & ( for i being Nat st i <= b5 holds
w |= * (CastNode ((((choice_succ_func (w,v,U)) |** i) . N),v)) ) ) );
::
deftheorem Def49 defines
chosen_next MODELC_3:def 49 :
for w being Element of Inf_seq AtomicFamily
for v being neg-inner-most LTL-formula
for U being Choice_Function of (BOOL (Subformulae v))
for N being strict LTLnode over v st w |= * ('X' N) holds
( ( not 'X' N is elementary implies chosen_next (w,v,U,N) = CastNode ((((choice_succ_func (w,v,U)) |** (chosen_succ_end_num (w,v,U,('X' N)))) . ('X' N)),v) ) & ( 'X' N is elementary implies chosen_next (w,v,U,N) = FinalNode v ) );
definition
let w be
Element of
Inf_seq AtomicFamily;
let v be
neg-inner-most LTL-formula;
let U be
Choice_Function of
(BOOL (Subformulae v));
existence
ex b1 being sequence of (LTLStates v) st
( b1 . 0 = init v & ( for n being Nat holds b1 . (n + 1) = chosen_next ((Shift (w,n)),v,U,(CastNode ((b1 . n),v))) ) )
uniqueness
for b1, b2 being sequence of (LTLStates v) st b1 . 0 = init v & ( for n being Nat holds b1 . (n + 1) = chosen_next ((Shift (w,n)),v,U,(CastNode ((b1 . n),v))) ) & b2 . 0 = init v & ( for n being Nat holds b2 . (n + 1) = chosen_next ((Shift (w,n)),v,U,(CastNode ((b2 . n),v))) ) holds
b1 = b2
end;
Lm33:
for v being neg-inner-most LTL-formula holds 'X' (CastLTL ({} v)) = {}
theorem Th73:
for
w being
Element of
Inf_seq AtomicFamily for
v being
neg-inner-most LTL-formula for
U being
Choice_Function of
(BOOL (Subformulae v)) st
w |= v holds
for
n being
Nat holds
(
CastNode (
((chosen_run (w,v,U)) . (n + 1)),
v)
is_next_of CastNode (
((chosen_run (w,v,U)) . n),
v) &
Shift (
w,
n)
|= * ('X' (CastNode (((chosen_run (w,v,U)) . n),v))) )