let H1, H2 be LTL-formula; :: thesis: 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 ; :: thesis: ( r |= H1 'U' H2 iff r |= H2 'or' (H1 '&' ('X' (H1 'U' H2))) )
A1:
( r |= H1 'U' H2 implies r |= H2 'or' (H1 '&' ('X' (H1 'U' H2))) )
proof
assume
r |= H1 'U' H2
;
:: thesis: r |= H2 'or' (H1 '&' ('X' (H1 'U' H2)))
then consider m being
Nat such that B1:
for
j being
Nat st
j < m holds
Shift r,
j |= H1
and B2:
Shift r,
m |= H2
by Th23;
per cases
( m = 0 or m > 0 )
;
suppose B3:
m > 0
;
:: thesis: r |= H2 'or' (H1 '&' ('X' (H1 'U' H2)))set G =
H1 'U' H2;
set k =
m - 1;
set r1 =
Shift r,1;
reconsider k =
m - 1 as
Nat by B3, NAT_1:20;
B301:
Shift r,
0 = r
by LemShift03;
B302:
Shift r,
(k + 1) = Shift (Shift r,1),
k
by LemShift04;
B4:
r |= H1
by B1, B3, B301;
B5:
for
j being
Nat st
j < k holds
Shift (Shift r,1),
j |= H1
proof
let j be
Nat;
:: thesis: ( j < k implies Shift (Shift r,1),j |= H1 )
assume C1:
j < k
;
:: thesis: Shift (Shift r,1),j |= H1
C2:
Shift r,
(j + 1) = Shift (Shift r,1),
j
by LemShift04;
j + 1
< k + 1
by C1, XREAL_1:10;
hence
Shift (Shift r,1),
j |= H1
by B1, C2;
:: thesis: verum
end;
Shift r,1
|= H1 'U' H2
by B302, B2, B5, Th23;
then
r |= 'X' (H1 'U' H2)
by Th22;
then
r |= H1 '&' ('X' (H1 'U' H2))
by B4, Th20;
hence
r |= H2 'or' (H1 '&' ('X' (H1 'U' H2)))
by Th21;
:: thesis: verum end; end;
end;
( r |= H2 'or' (H1 '&' ('X' (H1 'U' H2))) implies r |= H1 'U' H2 )
proof
assume A1:
r |= H2 'or' (H1 '&' ('X' (H1 'U' H2)))
;
:: thesis: r |= H1 'U' H2
now per cases
( r |= H2 or r |= H1 '&' ('X' (H1 'U' H2)) )
by A1, Th21;
suppose
r |= H1 '&' ('X' (H1 'U' H2))
;
:: thesis: r |= H1 'U' H2then B1:
(
r |= H1 &
r |= 'X' (H1 'U' H2) )
by Th20;
then B2:
Shift r,1
|= H1 'U' H2
by Th22;
set r1 =
Shift r,1;
consider m being
Nat such that B3:
for
j being
Nat st
j < m holds
Shift (Shift r,1),
j |= H1
and B4:
Shift (Shift r,1),
m |= H2
by B2, Th23;
set m1 =
m + 1;
B5:
for
j being
Nat st
j < m + 1 holds
Shift r,
j |= H1
Shift r,
(m + 1) |= H2
by B4, LemShift04;
hence
r |= H1 'U' H2
by Th23, B5;
:: thesis: verum end; end; end;
hence
r |= H1 'U' H2
;
:: thesis: verum
end;
hence
( r |= H1 'U' H2 iff r |= H2 'or' (H1 '&' ('X' (H1 'U' H2))) )
by A1; :: thesis: verum