let H, v be LTL-formula; :: thesis: for s0, s1 being strict elementary LTLnode over v st s1 is_next_of s0 & H in the LTLold of s1 holds
( ( H is conjunctive implies ( the_left_argument_of H in the LTLold of s1 & the_right_argument_of H in the LTLold of s1 ) ) & ( ( not H is disjunctive & not H is Until ) or the_left_argument_of H in the LTLold of s1 or the_right_argument_of H in the LTLold of s1 ) & ( H is next implies the_argument_of H in the LTLnext of s1 ) & ( H is Release implies the_right_argument_of H in the LTLold of s1 ) )

let s0, s1 be strict elementary LTLnode over v; :: thesis: ( s1 is_next_of s0 & H in the LTLold of s1 implies ( ( H is conjunctive implies ( the_left_argument_of H in the LTLold of s1 & the_right_argument_of H in the LTLold of s1 ) ) & ( ( not H is disjunctive & not H is Until ) or the_left_argument_of H in the LTLold of s1 or the_right_argument_of H in the LTLold of s1 ) & ( H is next implies the_argument_of H in the LTLnext of s1 ) & ( H is Release implies the_right_argument_of H in the LTLold of s1 ) ) )
assume that
A1: s1 is_next_of s0 and
A2: H in the LTLold of s1 ; :: thesis: ( ( H is conjunctive implies ( the_left_argument_of H in the LTLold of s1 & the_right_argument_of H in the LTLold of s1 ) ) & ( ( not H is disjunctive & not H is Until ) or the_left_argument_of H in the LTLold of s1 or the_right_argument_of H in the LTLold of s1 ) & ( H is next implies the_argument_of H in the LTLnext of s1 ) & ( H is Release implies the_right_argument_of H in the LTLold of s1 ) )
consider L being FinSequence such that
A3: 1 <= len L and
A4: L is_Finseq_for v and
A5: L . 1 = 'X' s0 and
A6: L . (len L) = s1 by A1;
A7: CastNode ((L . 1),v) = 'X' s0 by A5, Def16;
set n = len L;
A8: CastNode ((L . (len L)),v) = s1 by A6, Def16;
1 < len L by A2, A3, A5, A6, XXREAL_0:1;
then consider m being Nat such that
A9: ( 1 <= m & m < len L ) and
A10: ( not H in the LTLold of (CastNode ((L . m),v)) & H in the LTLold of (CastNode ((L . (m + 1)),v)) ) by A2, A4, A8, A7, Th27;
consider N1, N2 being strict LTLnode over v such that
A11: N1 = L . m and
A12: N2 = L . (m + 1) and
A13: N2 is_succ_of N1 by A4, A9;
A14: CastNode ((L . m),v) = N1 by A11, Def16;
then A15: the LTLold of N1 c= the LTLold of s1 by A4, A8, A9, Th31;
set m1 = m + 1;
A16: ( m + 1 <= len L & 1 <= m + 1 ) by A9, NAT_1:13;
A17: CastNode ((L . (m + 1)),v) = N2 by A12, Def16;
then A18: N2 is_succ_of N1,H by A10, A13, A14, Th28;
the LTLnew of (CastNode ((L . (len L)),v)) = {} v by A8, Def11;
then A19: the LTLnew of N2 c= the LTLold of s1 by A4, A8, A17, A16, Th34;
A20: ( H is conjunctive implies ( the_left_argument_of H in the LTLold of s1 & the_right_argument_of H in the LTLold of s1 ) )
proof
set G = the_right_argument_of H;
set F = the_left_argument_of H;
assume A21: H is conjunctive ; :: thesis: ( the_left_argument_of H in the LTLold of s1 & the_right_argument_of H in the LTLold of s1 )
then A22: LTLNew1 H = {(the_left_argument_of H),(the_right_argument_of H)} by Def1;
now :: thesis: ( the_left_argument_of H in the LTLold of s1 & the_right_argument_of H in the LTLold of s1 )
per cases ( ( H in the LTLnew of N1 & N2 = SuccNode1 (H,N1) ) or ( H in the LTLnew of N1 & ( H is disjunctive or H is Until or H is Release ) & N2 = SuccNode2 (H,N1) ) ) by A18;
suppose ( H in the LTLnew of N1 & N2 = SuccNode1 (H,N1) ) ; :: thesis: ( the_left_argument_of H in the LTLold of s1 & the_right_argument_of H in the LTLold of s1 )
then the LTLnew of N2 = ( the LTLnew of N1 \ {H}) \/ ((LTLNew1 H) \ the LTLold of N1) by Def4;
then A23: (LTLNew1 H) \ the LTLold of N1 c= the LTLnew of N2 by XBOOLE_1:7;
A24: the_right_argument_of H in the LTLold of s1
proof end;
the_left_argument_of H in the LTLold of s1
proof end;
hence ( the_left_argument_of H in the LTLold of s1 & the_right_argument_of H in the LTLold of s1 ) by A24; :: thesis: verum
end;
suppose ( H in the LTLnew of N1 & ( H is disjunctive or H is Until or H is Release ) & N2 = SuccNode2 (H,N1) ) ; :: thesis: ( the_left_argument_of H in the LTLold of s1 & the_right_argument_of H in the LTLold of s1 )
end;
end;
end;
hence ( the_left_argument_of H in the LTLold of s1 & the_right_argument_of H in the LTLold of s1 ) ; :: thesis: verum
end;
A27: ( H is Release implies the_right_argument_of H in the LTLold of s1 )
proof
set G = the_right_argument_of H;
set F = the_left_argument_of H;
assume A28: H is Release ; :: thesis: the_right_argument_of H in the LTLold of s1
then A29: LTLNew2 H = {(the_left_argument_of H),(the_right_argument_of H)} by Def2;
A30: LTLNew1 H = {(the_right_argument_of H)} by A28, Def1;
now :: thesis: the_right_argument_of H in the LTLold of s1
per cases ( ( H in the LTLnew of N1 & N2 = SuccNode1 (H,N1) ) or ( H in the LTLnew of N1 & ( H is disjunctive or H is Until or H is Release ) & N2 = SuccNode2 (H,N1) ) ) by A18;
suppose ( H in the LTLnew of N1 & N2 = SuccNode1 (H,N1) ) ; :: thesis: the_right_argument_of H in the LTLold of s1
end;
suppose ( H in the LTLnew of N1 & ( H is disjunctive or H is Until or H is Release ) & N2 = SuccNode2 (H,N1) ) ; :: thesis: the_right_argument_of H in the LTLold of s1
end;
end;
end;
hence the_right_argument_of H in the LTLold of s1 ; :: thesis: verum
end;
A35: ( ( not H is disjunctive & not H is Until ) or the_left_argument_of H in the LTLold of s1 or the_right_argument_of H in the LTLold of s1 )
proof
set G = the_right_argument_of H;
set F = the_left_argument_of H;
assume A36: ( H is disjunctive or H is Until ) ; :: thesis: ( the_left_argument_of H in the LTLold of s1 or the_right_argument_of H in the LTLold of s1 )
then A37: LTLNew2 H = {(the_right_argument_of H)} by Def2;
A38: LTLNew1 H = {(the_left_argument_of H)} by A36, Def1;
now :: thesis: ( the_left_argument_of H in the LTLold of s1 or the_right_argument_of H in the LTLold of s1 )
per cases ( ( H in the LTLnew of N1 & N2 = SuccNode1 (H,N1) ) or ( H in the LTLnew of N1 & ( H is disjunctive or H is Until or H is Release ) & N2 = SuccNode2 (H,N1) ) ) by A18;
suppose ( H in the LTLnew of N1 & N2 = SuccNode1 (H,N1) ) ; :: thesis: ( the_left_argument_of H in the LTLold of s1 or the_right_argument_of H in the LTLold of s1 )
end;
suppose ( H in the LTLnew of N1 & ( H is disjunctive or H is Until or H is Release ) & N2 = SuccNode2 (H,N1) ) ; :: thesis: ( the_left_argument_of H in the LTLold of s1 or the_right_argument_of H in the LTLold of s1 )
end;
end;
end;
hence ( the_left_argument_of H in the LTLold of s1 or the_right_argument_of H in the LTLold of s1 ) ; :: thesis: verum
end;
A43: the LTLnext of N2 c= the LTLnext of s1 by A4, A8, A17, A16, Th31;
( H is next implies the_argument_of H in the LTLnext of s1 )
proof
set F = the_argument_of H;
assume A44: H is next ; :: thesis: the_argument_of H in the LTLnext of s1
then A45: LTLNext H = {(the_argument_of H)} by Def3;
now :: thesis: the_argument_of H in the LTLnext of s1
per cases ( ( H in the LTLnew of N1 & N2 = SuccNode1 (H,N1) ) or ( H in the LTLnew of N1 & ( H is disjunctive or H is Until or H is Release ) & N2 = SuccNode2 (H,N1) ) ) by A18;
suppose ( H in the LTLnew of N1 & ( H is disjunctive or H is Until or H is Release ) & N2 = SuccNode2 (H,N1) ) ; :: thesis: the_argument_of H in the LTLnext of s1
end;
end;
end;
hence the_argument_of H in the LTLnext of s1 ; :: thesis: verum
end;
hence ( ( H is conjunctive implies ( the_left_argument_of H in the LTLold of s1 & the_right_argument_of H in the LTLold of s1 ) ) & ( ( not H is disjunctive & not H is Until ) or the_left_argument_of H in the LTLold of s1 or the_right_argument_of H in the LTLold of s1 ) & ( H is next implies the_argument_of H in the LTLnext of s1 ) & ( H is Release implies the_right_argument_of H in the LTLold of s1 ) ) by A20, A35, A27; :: thesis: verum