let m, n be Nat; :: thesis: for L being FinSequence
for v being LTL-formula st L is_Finseq_for v & 1 <= m & m <= n & n <= len L holds
( the LTLold of (CastNode (L . m),v) c= the LTLold of (CastNode (L . n),v) & the LTLnext of (CastNode (L . m),v) c= the LTLnext of (CastNode (L . n),v) )
let L be FinSequence; :: thesis: for v being LTL-formula st L is_Finseq_for v & 1 <= m & m <= n & n <= len L holds
( the LTLold of (CastNode (L . m),v) c= the LTLold of (CastNode (L . n),v) & the LTLnext of (CastNode (L . m),v) c= the LTLnext of (CastNode (L . n),v) )
let v be LTL-formula; :: thesis: ( L is_Finseq_for v & 1 <= m & m <= n & n <= len L implies ( the LTLold of (CastNode (L . m),v) c= the LTLold of (CastNode (L . n),v) & the LTLnext of (CastNode (L . m),v) c= the LTLnext of (CastNode (L . n),v) ) )
assume that
A1:
L is_Finseq_for v
and
A2:
( 1 <= m & m <= n & n <= len L )
; :: thesis: ( the LTLold of (CastNode (L . m),v) c= the LTLold of (CastNode (L . n),v) & the LTLnext of (CastNode (L . m),v) c= the LTLnext of (CastNode (L . n),v) )
defpred S1[ Nat] means for n1, m1 being Nat
for L1 being FinSequence st len L1 <= $1 & L1 is_Finseq_for v & 1 <= m1 & m1 <= n1 & n1 <= len L1 holds
( the LTLold of (CastNode (L1 . m1),v) c= the LTLold of (CastNode (L1 . n1),v) & the LTLnext of (CastNode (L1 . m1),v) c= the LTLnext of (CastNode (L1 . n1),v) );
A4:
S1[ 0 ]
;
A5:
for k being Nat st S1[k] holds
S1[k + 1]
proof
let k be
Nat;
:: thesis: ( S1[k] implies S1[k + 1] )
assume B1:
S1[
k]
;
:: thesis: S1[k + 1]
S1[
k + 1]
proof
let n1,
m1 be
Nat;
:: thesis: for L1 being FinSequence st len L1 <= k + 1 & L1 is_Finseq_for v & 1 <= m1 & m1 <= n1 & n1 <= len L1 holds
( the LTLold of (CastNode (L1 . m1),v) c= the LTLold of (CastNode (L1 . n1),v) & the LTLnext of (CastNode (L1 . m1),v) c= the LTLnext of (CastNode (L1 . n1),v) )let L1 be
FinSequence;
:: thesis: ( len L1 <= k + 1 & L1 is_Finseq_for v & 1 <= m1 & m1 <= n1 & n1 <= len L1 implies ( the LTLold of (CastNode (L1 . m1),v) c= the LTLold of (CastNode (L1 . n1),v) & the LTLnext of (CastNode (L1 . m1),v) c= the LTLnext of (CastNode (L1 . n1),v) ) )
assume C1:
len L1 <= k + 1
;
:: thesis: ( not L1 is_Finseq_for v or not 1 <= m1 or not m1 <= n1 or not n1 <= len L1 or ( the LTLold of (CastNode (L1 . m1),v) c= the LTLold of (CastNode (L1 . n1),v) & the LTLnext of (CastNode (L1 . m1),v) c= the LTLnext of (CastNode (L1 . n1),v) ) )
now per cases
( len L1 <= k or len L1 = k + 1 )
by C1, NAT_1:8;
suppose C3:
len L1 = k + 1
;
:: thesis: ( not L1 is_Finseq_for v or not 1 <= m1 or not m1 <= n1 or not n1 <= len L1 or ( the LTLold of (CastNode (L1 . m1),v) c= the LTLold of (CastNode (L1 . n1),v) & the LTLnext of (CastNode (L1 . m1),v) c= the LTLnext of (CastNode (L1 . n1),v) ) )
(
L1 is_Finseq_for v & 1
<= m1 &
m1 <= n1 &
n1 <= len L1 implies ( the
LTLold of
(CastNode (L1 . m1),v) c= the
LTLold of
(CastNode (L1 . n1),v) & the
LTLnext of
(CastNode (L1 . m1),v) c= the
LTLnext of
(CastNode (L1 . n1),v) ) )
proof
assume that D1:
L1 is_Finseq_for v
and D2:
( 1
<= m1 &
m1 <= n1 &
n1 <= len L1 )
;
:: thesis: ( the LTLold of (CastNode (L1 . m1),v) c= the LTLold of (CastNode (L1 . n1),v) & the LTLnext of (CastNode (L1 . m1),v) c= the LTLnext of (CastNode (L1 . n1),v) )
D3:
1
<= n1
by D2, XXREAL_0:2;
now per cases
( n1 <= k or n1 = k + 1 )
by C3, D2, NAT_1:8;
suppose D5:
n1 <= k
;
:: thesis: ( the LTLold of (CastNode (L1 . m1),v) c= the LTLold of (CastNode (L1 . n1),v) & the LTLnext of (CastNode (L1 . m1),v) c= the LTLnext of (CastNode (L1 . n1),v) )set L2 =
L1 | (Seg k);
reconsider L2 =
L1 | (Seg k) as
FinSequence by FINSEQ_1:19;
E0:
k + 0 <= k + 1
by XREAL_1:9;
then E1:
(
len L2 = k &
dom L2 = Seg k )
by C3, FINSEQ_1:21;
E3:
L2 is_Finseq_for v
by D1, E0, C3, ThSucc02;
( 1
<= m1 &
m1 <= k )
by D5, D2, XXREAL_0:2;
then
m1 in dom L2
by E1, FINSEQ_1:3;
then E4:
L2 . m1 = L1 . m1
by FUNCT_1:70;
n1 in dom L2
by E1, D5, D3, FINSEQ_1:3;
then
L2 . n1 = L1 . n1
by FUNCT_1:70;
hence
( the
LTLold of
(CastNode (L1 . m1),v) c= the
LTLold of
(CastNode (L1 . n1),v) & the
LTLnext of
(CastNode (L1 . m1),v) c= the
LTLnext of
(CastNode (L1 . n1),v) )
by E1, B1, D5, D2, E3, E4;
:: thesis: verum end; suppose D6:
n1 = k + 1
;
:: thesis: ( the LTLold of (CastNode (L1 . m1),v) c= the LTLold of (CastNode (L1 . n1),v) & the LTLnext of (CastNode (L1 . m1),v) c= the LTLnext of (CastNode (L1 . n1),v) )now per cases
( m1 < n1 or m1 = n1 )
by D2, XXREAL_0:1;
suppose
m1 < n1
;
:: thesis: ( the LTLold of (CastNode (L1 . m1),v) c= the LTLold of (CastNode (L1 . n1),v) & the LTLnext of (CastNode (L1 . m1),v) c= the LTLnext of (CastNode (L1 . n1),v) )then D600:
m1 <= k
by D6, NAT_1:13;
then D601:
1
<= k
by D2, XXREAL_0:2;
set L2 =
L1 | (Seg k);
reconsider L2 =
L1 | (Seg k) as
FinSequence by FINSEQ_1:19;
E0:
k + 0 <= k + 1
by XREAL_1:9;
then E1:
(
len L2 = k &
dom L2 = Seg k )
by C3, FINSEQ_1:21;
E3:
L2 is_Finseq_for v
by D1, E0, C3, ThSucc02;
m1 in dom L2
by E1, D2, D600, FINSEQ_1:3;
then E4:
L2 . m1 = L1 . m1
by FUNCT_1:70;
k in dom L2
by E1, D601, FINSEQ_1:3;
then
L2 . k = L1 . k
by FUNCT_1:70;
then E6:
( the
LTLold of
(CastNode (L1 . m1),v) c= the
LTLold of
(CastNode (L1 . k),v) & the
LTLnext of
(CastNode (L1 . m1),v) c= the
LTLnext of
(CastNode (L1 . k),v) )
by E1, B1, E3, D2, D600, E4;
k < len L1
by C3, NAT_1:13;
then consider N1,
N2 being
strict LTLnode of
v such that E7:
(
N1 = L1 . k &
N2 = L1 . (k + 1) &
N2 is_succ_of N1 )
by D601, D1, DefFinseq;
E8:
( the
LTLold of
N1 c= the
LTLold of
N2 & the
LTLnext of
N1 c= the
LTLnext of
N2 )
by E7, ThSucc01;
(
N1 = CastNode N1,
v &
N2 = CastNode N2,
v )
by defCastNode01;
hence
( the
LTLold of
(CastNode (L1 . m1),v) c= the
LTLold of
(CastNode (L1 . n1),v) & the
LTLnext of
(CastNode (L1 . m1),v) c= the
LTLnext of
(CastNode (L1 . n1),v) )
by E8, D6, E7, E6, XBOOLE_1:1;
:: thesis: verum end; end; end; hence
( the
LTLold of
(CastNode (L1 . m1),v) c= the
LTLold of
(CastNode (L1 . n1),v) & the
LTLnext of
(CastNode (L1 . m1),v) c= the
LTLnext of
(CastNode (L1 . n1),v) )
;
:: thesis: verum end; end; end;
hence
( the
LTLold of
(CastNode (L1 . m1),v) c= the
LTLold of
(CastNode (L1 . n1),v) & the
LTLnext of
(CastNode (L1 . m1),v) c= the
LTLnext of
(CastNode (L1 . n1),v) )
;
:: thesis: verum
end; hence
( not
L1 is_Finseq_for v or not 1
<= m1 or not
m1 <= n1 or not
n1 <= len L1 or ( the
LTLold of
(CastNode (L1 . m1),v) c= the
LTLold of
(CastNode (L1 . n1),v) & the
LTLnext of
(CastNode (L1 . m1),v) c= the
LTLnext of
(CastNode (L1 . n1),v) ) )
;
:: thesis: verum end; end; end;
hence
( not
L1 is_Finseq_for v or not 1
<= m1 or not
m1 <= n1 or not
n1 <= len L1 or ( the
LTLold of
(CastNode (L1 . m1),v) c= the
LTLold of
(CastNode (L1 . n1),v) & the
LTLnext of
(CastNode (L1 . m1),v) c= the
LTLnext of
(CastNode (L1 . n1),v) ) )
;
:: thesis: verum
end;
hence
S1[
k + 1]
;
:: thesis: verum
end;
for k being Nat holds S1[k]
from NAT_1:sch 2(A4, A5);
hence
( the LTLold of (CastNode (L . m),v) c= the LTLold of (CastNode (L . n),v) & the LTLnext of (CastNode (L . m),v) c= the LTLnext of (CastNode (L . n),v) )
by A1, A2; :: thesis: verum