let v1, v2 be Function of [:NAT,LTLB_WFF:],BOOLEAN; ( ( for n being Element of NAT holds
( v1 . [n,TFALSUM] = 0 & ( for k being Element of NAT holds
( v1 . [n,(prop k)] = 1 iff prop k in M . n ) ) & ( for p, q being Element of LTLB_WFF holds
( v1 . [n,(p => q)] = (v1 . [n,p]) => (v1 . [n,q]) & ( v1 . [n,(p 'U' q)] = 1 implies ex i being Element of NAT st
( 0 < i & v1 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
v1 . [(n + j),p] = 1 ) ) ) & ( ex i being Element of NAT st
( 0 < i & v1 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
v1 . [(n + j),p] = 1 ) ) implies v1 . [n,(p 'U' q)] = 1 ) ) ) ) ) & ( for n being Element of NAT holds
( v2 . [n,TFALSUM] = 0 & ( for k being Element of NAT holds
( v2 . [n,(prop k)] = 1 iff prop k in M . n ) ) & ( for p, q being Element of LTLB_WFF holds
( v2 . [n,(p => q)] = (v2 . [n,p]) => (v2 . [n,q]) & ( v2 . [n,(p 'U' q)] = 1 implies ex i being Element of NAT st
( 0 < i & v2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
v2 . [(n + j),p] = 1 ) ) ) & ( ex i being Element of NAT st
( 0 < i & v2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
v2 . [(n + j),p] = 1 ) ) implies v2 . [n,(p 'U' q)] = 1 ) ) ) ) ) implies v1 = v2 )
assume A65:
for n being Element of NAT holds
( v1 . [n,TFALSUM] = 0 & ( for k being Element of NAT holds
( v1 . [n,(prop k)] = 1 iff prop k in M . n ) ) & ( for p, q being Element of LTLB_WFF holds
( v1 . [n,(p => q)] = (v1 . [n,p]) => (v1 . [n,q]) & ( v1 . [n,(p 'U' q)] = 1 implies ex i being Element of NAT st
( 0 < i & v1 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
v1 . [(n + j),p] = 1 ) ) ) & ( ex i being Element of NAT st
( 0 < i & v1 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
v1 . [(n + j),p] = 1 ) ) implies v1 . [n,(p 'U' q)] = 1 ) ) ) )
; ( ex n being Element of NAT st
( v2 . [n,TFALSUM] = 0 & ( for k being Element of NAT holds
( v2 . [n,(prop k)] = 1 iff prop k in M . n ) ) implies ex p, q being Element of LTLB_WFF st
( v2 . [n,(p => q)] = (v2 . [n,p]) => (v2 . [n,q]) & ( v2 . [n,(p 'U' q)] = 1 implies ex i being Element of NAT st
( 0 < i & v2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
v2 . [(n + j),p] = 1 ) ) ) implies ( ex i being Element of NAT st
( 0 < i & v2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
v2 . [(n + j),p] = 1 ) ) & not v2 . [n,(p 'U' q)] = 1 ) ) ) or v1 = v2 )
assume A66:
for n being Element of NAT holds
( v2 . [n,TFALSUM] = 0 & ( for k being Element of NAT holds
( v2 . [n,(prop k)] = 1 iff prop k in M . n ) ) & ( for p, q being Element of LTLB_WFF holds
( v2 . [n,(p => q)] = (v2 . [n,p]) => (v2 . [n,q]) & ( v2 . [n,(p 'U' q)] = 1 implies ex i being Element of NAT st
( 0 < i & v2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
v2 . [(n + j),p] = 1 ) ) ) & ( ex i being Element of NAT st
( 0 < i & v2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
v2 . [(n + j),p] = 1 ) ) implies v2 . [n,(p 'U' q)] = 1 ) ) ) )
; v1 = v2
thus
v1 = v2
verumproof
defpred S1[
Element of
LTLB_WFF ]
means for
n being
Element of
NAT holds
v1 . [n,$1] = v2 . [n,$1];
A67:
for
n being
Element of
NAT holds
S1[
prop n]
A70:
for
p,
q being
Element of
LTLB_WFF st
S1[
p] &
S1[
q] holds
(
S1[
p 'U' q] &
S1[
p => q] )
proof
let p,
q be
Element of
LTLB_WFF ;
( S1[p] & S1[q] implies ( S1[p 'U' q] & S1[p => q] ) )
assume that A71:
S1[
p]
and A72:
S1[
q]
;
( S1[p 'U' q] & S1[p => q] )
thus
S1[
p 'U' q]
S1[p => q]proof
let n be
Element of
NAT ;
v1 . [n,(p 'U' q)] = v2 . [n,(p 'U' q)]
per cases
( ex i being Element of NAT st
( 0 < i & v1 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
v1 . [(n + j),p] = 1 ) ) or for i being Element of NAT holds
( not 0 < i or not v1 . [(n + i),q] = 1 or ex j being Element of NAT st
( 1 <= j & j < i & not v1 . [(n + j),p] = 1 ) ) )
;
suppose A73:
ex
i being
Element of
NAT st
(
0 < i &
v1 . [(n + i),q] = 1 & ( for
j being
Element of
NAT st 1
<= j &
j < i holds
v1 . [(n + j),p] = 1 ) )
;
v1 . [n,(p 'U' q)] = v2 . [n,(p 'U' q)]then consider i being
Element of
NAT such that A74:
0 < i
and A75:
v1 . [(n + i),q] = 1
and A76:
for
j being
Element of
NAT st 1
<= j &
j < i holds
v1 . [(n + j),p] = 1
;
A77:
v2 . [(n + i),q] = 1
by A72, A75;
thus v1 . [n,(p 'U' q)] =
1
by A65, A73
.=
v2 . [n,(p 'U' q)]
by A66, A74, A77, A78
;
verum end; end;
end;
thus
S1[
p => q]
verumproof
let n be
Element of
NAT ;
v1 . [n,(p => q)] = v2 . [n,(p => q)]
thus v1 . [n,(p => q)] =
(v1 . [n,p]) => (v1 . [n,q])
by A65
.=
(v2 . [n,p]) => (v1 . [n,q])
by A71
.=
(v2 . [n,p]) => (v2 . [n,q])
by A72
.=
v2 . [n,(p => q)]
by A66
;
verum
end;
end;
then A83:
S1[
TFALSUM ]
;
A84:
for
A being
Element of
LTLB_WFF holds
S1[
A]
from HILBERT2:sch 2(A83, A67, A70);
A85:
for
x being
Element of
[:NAT,LTLB_WFF:] st
x in dom v1 holds
v1 . x = v2 . x
dom v1 =
[:NAT,LTLB_WFF:]
by FUNCT_2:def 1
.=
dom v2
by FUNCT_2:def 1
;
hence
v1 = v2
by A85, PARTFUN1:5;
verum
end;