set LS = LTLStates v;
deffunc H1( Nat, set ) -> strict elementary LTLnode of v = chosen_next (Shift w,$1),v,U,(CastNode $2,v);
deffunc H2( set , set ) -> strict elementary LTLnode of v = chosen_next (Shift w,(CastNat $1)),v,U,(CastNode $2,v);
A1:
for f, g being Function of NAT ,(LTLStates v) st f . 0 = init v & ( for n being Nat holds f . (n + 1) = H2(n,f . n) ) & g . 0 = init v & ( for n being Nat holds g . (n + 1) = H2(n,g . n) ) holds
f = g
proof
let f,
g be
Function of
NAT ,
(LTLStates v);
:: thesis: ( f . 0 = init v & ( for n being Nat holds f . (n + 1) = H2(n,f . n) ) & g . 0 = init v & ( for n being Nat holds g . (n + 1) = H2(n,g . n) ) implies f = g )
assume that B1:
(
f . 0 = init v & ( for
n being
Nat holds
f . (n + 1) = H2(
n,
f . n) ) )
and B2:
(
g . 0 = init v & ( for
n being
Nat holds
g . (n + 1) = H2(
n,
g . n) ) )
;
:: thesis: f = g
B4:
(
dom f = NAT &
f . 0 = init v & ( for
n being
Nat holds
f . (n + 1) = H2(
n,
f . n) ) )
by B1, FUNCT_2:def 1;
B5:
(
dom g = NAT &
g . 0 = init v & ( for
n being
Nat holds
g . (n + 1) = H2(
n,
g . n) ) )
by B2, FUNCT_2:def 1;
defpred S1[
Nat]
means f . $1
= g . $1;
B601:
S1[
0 ]
by B1, B2;
B602:
for
k being
Element of
NAT st
S1[
k] holds
S1[
k + 1]
for
k being
Element of
NAT holds
S1[
k]
from NAT_1:sch 1(B601, B602);
then
for
x being
set st
x in dom f holds
f . x = g . x
;
hence
f = g
by B4, B5, FUNCT_1:9;
:: thesis: verum
end;
for f, g being Function of NAT ,(LTLStates v) st f . 0 = init v & ( for n being Nat holds f . (n + 1) = H1(n,f . n) ) & g . 0 = init v & ( for n being Nat holds g . (n + 1) = H1(n,g . n) ) holds
f = g
proof
let f,
g be
Function of
NAT ,
(LTLStates v);
:: thesis: ( f . 0 = init v & ( for n being Nat holds f . (n + 1) = H1(n,f . n) ) & g . 0 = init v & ( for n being Nat holds g . (n + 1) = H1(n,g . n) ) implies f = g )
assume that B1:
(
f . 0 = init v & ( for
n being
Nat holds
f . (n + 1) = H1(
n,
f . n) ) )
and B2:
(
g . 0 = init v & ( for
n being
Nat holds
g . (n + 1) = H1(
n,
g . n) ) )
;
:: thesis: f = g
B3:
for
n being
Nat holds
f . (n + 1) = H2(
n,
f . n)
for
n being
Nat holds
g . (n + 1) = H2(
n,
g . n)
hence
f = g
by B1, B2, B3, A1;
:: thesis: verum
end;
hence
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
; :: thesis: verum