let H1, H2 be LTL-formula; for r being Element of Inf_seq AtomicFamily holds
( r |= H1 'U' H2 iff r |= H2 'or' (H1 '&' ('X' (H1 'U' H2))) )
let r be Element of Inf_seq AtomicFamily; ( r |= H1 'U' H2 iff r |= H2 'or' (H1 '&' ('X' (H1 'U' H2))) )
A1:
( r |= H2 'or' (H1 '&' ('X' (H1 'U' H2))) implies r |= H1 'U' H2 )
proof
assume A2:
r |= H2 'or' (H1 '&' ('X' (H1 'U' H2)))
;
r |= H1 'U' H2
now r |= H1 'U' H2per cases
( r |= H2 or r |= H1 '&' ('X' (H1 'U' H2)) )
by A2, Th66;
suppose A4:
r |= H1 '&' ('X' (H1 'U' H2))
;
r |= H1 'U' H2set r1 =
Shift (
r,1);
r |= 'X' (H1 'U' H2)
by A4, Th65;
then
Shift (
r,1)
|= H1 'U' H2
by Th67;
then consider m being
Nat such that A5:
for
j being
Nat st
j < m holds
Shift (
(Shift (r,1)),
j)
|= H1
and A6:
Shift (
(Shift (r,1)),
m)
|= H2
by Th68;
set m1 =
m + 1;
A7:
r |= H1
by A4, Th65;
A8:
for
j being
Nat st
j < m + 1 holds
Shift (
r,
j)
|= H1
Shift (
r,
(m + 1))
|= H2
by A6, Lm29;
hence
r |= H1 'U' H2
by A8, Th68;
verum end; end; end;
hence
r |= H1 'U' H2
;
verum
end;
( r |= H1 'U' H2 implies r |= H2 'or' (H1 '&' ('X' (H1 'U' H2))) )
proof
assume
r |= H1 'U' H2
;
r |= H2 'or' (H1 '&' ('X' (H1 'U' H2)))
then consider m being
Nat such that A11:
for
j being
Nat st
j < m holds
Shift (
r,
j)
|= H1
and A12:
Shift (
r,
m)
|= H2
by Th68;
per cases
( m = 0 or m > 0 )
;
suppose A13:
m > 0
;
r |= H2 'or' (H1 '&' ('X' (H1 'U' H2)))set k =
m - 1;
reconsider k =
m - 1 as
Nat by A13, NAT_1:20;
set r1 =
Shift (
r,1);
A14:
for
j being
Nat st
j < k holds
Shift (
(Shift (r,1)),
j)
|= H1
proof
let j be
Nat;
( j < k implies Shift ((Shift (r,1)),j) |= H1 )
assume
j < k
;
Shift ((Shift (r,1)),j) |= H1
then A15:
j + 1
< k + 1
by XREAL_1:8;
Shift (
r,
(j + 1))
= Shift (
(Shift (r,1)),
j)
by Lm29;
hence
Shift (
(Shift (r,1)),
j)
|= H1
by A11, A15;
verum
end;
Shift (
r,
(k + 1))
= Shift (
(Shift (r,1)),
k)
by Lm29;
then
Shift (
r,1)
|= H1 'U' H2
by A12, A14, Th68;
then A16:
r |= 'X' (H1 'U' H2)
by Th67;
Shift (
r,
0)
= r
by Lm28;
then
r |= H1
by A11, A13;
then
r |= H1 '&' ('X' (H1 'U' H2))
by A16, Th65;
hence
r |= H2 'or' (H1 '&' ('X' (H1 'U' H2)))
by Th66;
verum end; end;
end;
hence
( r |= H1 'U' H2 iff r |= H2 'or' (H1 '&' ('X' (H1 'U' H2))) )
by A1; verum