deffunc H1( set , set ) -> strict elementary LTLnode of v = chosen_next ((Shift (w,(CastNat $1))),v,U,(CastNode ($2,v)));
deffunc H2( Nat, set ) -> strict elementary LTLnode of v = chosen_next ((Shift (w,$1)),v,U,(CastNode ($2,v)));
set LS = LTLStates v;
A10:
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);
( 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 A11:
f . 0 = init v
and A12:
for
n being
Nat holds
f . (n + 1) = H1(
n,
f . n)
and A13:
g . 0 = init v
and A14:
for
n being
Nat holds
g . (n + 1) = H1(
n,
g . n)
;
f = g
defpred S1[
Nat]
means f . $1
= g . $1;
A15:
for
k being
Element of
NAT st
S1[
k] holds
S1[
k + 1]
proof
let k be
Element of
NAT ;
( S1[k] implies S1[k + 1] )
assume
S1[
k]
;
S1[k + 1]
then f . (k + 1) =
H1(
k,
g . k)
by A12
.=
g . (k + 1)
by A14
;
hence
S1[
k + 1]
;
verum
end;
A16:
S1[
0 ]
by A11, A13;
for
k being
Element of
NAT holds
S1[
k]
from NAT_1:sch 1(A16, A15);
then A17:
for
x being
set st
x in dom f holds
f . x = g . x
;
(
dom f = NAT &
dom g = NAT )
by FUNCT_2:def 1;
hence
f = g
by A17, FUNCT_1:2;
verum
end;
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);
( 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 A18:
f . 0 = init v
and A19:
for
n being
Nat holds
f . (n + 1) = H2(
n,
f . n)
and A20:
g . 0 = init v
and A21:
for
n being
Nat holds
g . (n + 1) = H2(
n,
g . n)
;
f = g
A22:
for
n being
Nat holds
g . (n + 1) = H1(
n,
g . n)
for
n being
Nat holds
f . (n + 1) = H1(
n,
f . n)
hence
f = g
by A10, A18, A20, A22;
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
; verum