set FNB = Funcs (NAT,BOOLEAN);
defpred S1[ Element of LTLB_WFF , Element of LTLB_WFF , set , set , set ] means ( ( $3 is sequence of BOOLEAN & $4 is sequence of BOOLEAN implies ex s3, s4, s5 being sequence of BOOLEAN st
( s3 = $3 & s4 = $4 & s5 = $5 & ( for n being Element of NAT holds s5 . n = (s3 . n) => (s4 . n) ) ) ) & ( ( not $3 is sequence of BOOLEAN or not $4 is sequence of BOOLEAN ) implies $5 = NAT --> FALSE ) );
defpred S2[ Element of LTLB_WFF , Element of LTLB_WFF , set , set , set ] means ( ( $3 is sequence of BOOLEAN & $4 is sequence of BOOLEAN implies ex s3, s4, s5 being sequence of BOOLEAN st
( s3 = $3 & s4 = $4 & s5 = $5 & ( for n being Element of NAT holds
( s5 . n = 1 iff ex i being Element of NAT st
( 0 < i & s4 . (n + i) = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
s3 . (n + j) = 1 ) ) ) ) ) ) & ( ( not $3 is sequence of BOOLEAN or not $4 is sequence of BOOLEAN ) implies $5 = NAT --> FALSE ) );
defpred S3[ Element of NAT , Function] means for n being Element of NAT holds
( $2 . n = 1 iff prop $1 in M . n );
A1:
for p, q being Element of LTLB_WFF
for a, b being set ex d being set st S2[p,q,a,b,d]
proof
let p,
q be
Element of
LTLB_WFF ;
for a, b being set ex d being set st S2[p,q,a,b,d]let a,
b be
set ;
ex d being set st S2[p,q,a,b,d]
end;
A4:
for p, q being Element of LTLB_WFF
for a, b, c, d being set st S2[p,q,a,b,c] & S2[p,q,a,b,d] holds
c = d
proof
let p,
q be
Element of
LTLB_WFF ;
for a, b, c, d being set st S2[p,q,a,b,c] & S2[p,q,a,b,d] holds
c = dlet a,
b,
c,
d be
set ;
( S2[p,q,a,b,c] & S2[p,q,a,b,d] implies c = d )
assume that A5:
S2[
p,
q,
a,
b,
c]
and A6:
S2[
p,
q,
a,
b,
d]
;
c = d
end;
A16:
for x being Element of NAT ex y being Element of Funcs (NAT,BOOLEAN) st S3[x,y]
consider f1 being sequence of (Funcs (NAT,BOOLEAN)) such that
A19:
for k being Element of NAT holds S3[k,f1 . k]
from FUNCT_2:sch 3(A16);
A20:
for p, q being Element of LTLB_WFF
for a, b, c, d being set st S1[p,q,a,b,c] & S1[p,q,a,b,d] holds
c = d
proof
let p,
q be
Element of
LTLB_WFF ;
for a, b, c, d being set st S1[p,q,a,b,c] & S1[p,q,a,b,d] holds
c = dlet a,
b,
c,
d be
set ;
( S1[p,q,a,b,c] & S1[p,q,a,b,d] implies c = d )
assume that A21:
S1[
p,
q,
a,
b,
c]
and A22:
S1[
p,
q,
a,
b,
d]
;
c = d
end;
deffunc H1( Element of NAT ) -> Element of Funcs (NAT,BOOLEAN) = f1 . $1;
A32:
for p, q being Element of LTLB_WFF
for a, b being set ex d being set st S1[p,q,a,b,d]
proof
let p,
q be
Element of
LTLB_WFF ;
for a, b being set ex d being set st S1[p,q,a,b,d]let a,
b be
set ;
ex d being set st S1[p,q,a,b,d]
end;
consider sat being ManySortedSet of LTLB_WFF such that
A34:
( sat . TFALSUM = NAT --> FALSE & ( for n being Element of NAT holds sat . (prop n) = H1(n) ) & ( for p, q being Element of LTLB_WFF holds
( S2[p,q,sat . p,sat . q,sat . (p 'U' q)] & S1[p,q,sat . p,sat . q,sat . (p => q)] ) ) )
from HILBERT2:sch 3(A1, A32, A4, A20);
dom sat = LTLB_WFF
by PARTFUN1:def 2;
then reconsider sat = sat as Function of LTLB_WFF,(Funcs (NAT,BOOLEAN)) by A35, FUNCT_2:3;
deffunc H2( Element of NAT , Element of LTLB_WFF ) -> Element of BOOLEAN = (sat . $2) . $1;
consider sat2 being Function of [:NAT,LTLB_WFF:],BOOLEAN such that
A43:
for n being Element of NAT
for A being Element of LTLB_WFF holds sat2 . (n,A) = H2(n,A)
from BINOP_1:sch 4();
A46:
now for p, q being Element of LTLB_WFF
for n being Element of NAT holds
( sat2 . [n,(p => q)] = (sat2 . [n,p]) => (sat2 . [n,q]) & ( sat2 . [n,(p 'U' q)] = 1 implies ex i being Element of NAT st
( 0 < i & sat2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
sat2 . [(n + j),p] = 1 ) ) ) & ( ex i being Element of NAT st
( 0 < i & sat2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
sat2 . [(n + j),p] = 1 ) ) implies sat2 . [n,(p 'U' q)] = 1 ) )let p,
q be
Element of
LTLB_WFF ;
for n being Element of NAT holds
( sat2 . [n,(p => q)] = (sat2 . [n,p]) => (sat2 . [n,q]) & ( sat2 . [n,(p 'U' q)] = 1 implies ex i being Element of NAT st
( 0 < i & sat2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
sat2 . [(n + j),p] = 1 ) ) ) & ( ex i being Element of NAT st
( 0 < i & sat2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
sat2 . [(n + j),p] = 1 ) ) implies sat2 . [n,(p 'U' q)] = 1 ) )let n be
Element of
NAT ;
( sat2 . [n,(p => q)] = (sat2 . [n,p]) => (sat2 . [n,q]) & ( sat2 . [n,(p 'U' q)] = 1 implies ex i being Element of NAT st
( 0 < i & sat2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
sat2 . [(n + j),p] = 1 ) ) ) & ( ex i being Element of NAT st
( 0 < i & sat2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
sat2 . [(n + j),p] = 1 ) ) implies sat2 . [n,(p 'U' q)] = 1 ) )reconsider satp =
sat . p,
satq =
sat . q as
sequence of
BOOLEAN by FUNCT_2:66;
consider s31,
s41,
s51 being
sequence of
BOOLEAN such that A47:
s31 = satp
and A48:
s41 = satq
and A49:
s51 = sat . (p 'U' q)
and A50:
for
n being
Element of
NAT holds
(
s51 . n = 1 iff ex
i being
Element of
NAT st
(
0 < i &
s41 . (n + i) = 1 & ( for
j being
Element of
NAT st 1
<= j &
j < i holds
s31 . (n + j) = 1 ) ) )
by A34;
consider s3,
s4,
s5 being
sequence of
BOOLEAN such that A51:
s3 = satp
and A52:
s4 = satq
and A53:
(
s5 = sat . (p => q) & ( for
n being
Element of
NAT holds
s5 . n = (s3 . n) => (s4 . n) ) )
by A34;
thus sat2 . [n,(p => q)] =
(sat . (p => q)) . n
by A44
.=
((sat . p) . n) => (s4 . n)
by A51, A53
.=
(sat2 . [n,p]) => ((sat . q) . n)
by A44, A52
.=
(sat2 . [n,p]) => (sat2 . [n,q])
by A44
;
( sat2 . [n,(p 'U' q)] = 1 iff ex i being Element of NAT st
( 0 < i & sat2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
sat2 . [(n + j),p] = 1 ) ) )thus
(
sat2 . [n,(p 'U' q)] = 1 iff ex
i being
Element of
NAT st
(
0 < i &
sat2 . [(n + i),q] = 1 & ( for
j being
Element of
NAT st 1
<= j &
j < i holds
sat2 . [(n + j),p] = 1 ) ) )
verumproof
hereby ( ex i being Element of NAT st
( 0 < i & sat2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
sat2 . [(n + j),p] = 1 ) ) implies sat2 . [n,(p 'U' q)] = 1 )
assume
sat2 . [n,(p 'U' q)] = 1
;
ex i being Element of NAT st
( 0 < i & sat2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
sat2 . [(n + j),p] = 1 ) )then
s51 . n = 1
by A44, A49;
then consider i being
Element of
NAT such that A54:
0 < i
and A55:
s41 . (n + i) = 1
and A56:
for
j being
Element of
NAT st 1
<= j &
j < i holds
s31 . (n + j) = 1
by A50;
sat2 . [(n + i),q] = 1
by A44, A48, A55;
hence
ex
i being
Element of
NAT st
(
0 < i &
sat2 . [(n + i),q] = 1 & ( for
j being
Element of
NAT st 1
<= j &
j < i holds
sat2 . [(n + j),p] = 1 ) )
by A54, A57;
verum
end;
assume
ex
i being
Element of
NAT st
(
0 < i &
sat2 . [(n + i),q] = 1 & ( for
j being
Element of
NAT st 1
<= j &
j < i holds
sat2 . [(n + j),p] = 1 ) )
;
sat2 . [n,(p 'U' q)] = 1
then consider i being
Element of
NAT such that A59:
0 < i
and A60:
sat2 . [(n + i),q] = 1
and A61:
for
j being
Element of
NAT st 1
<= j &
j < i holds
sat2 . [(n + j),p] = 1
;
A62:
s41 . (n + i) = 1
by A44, A48, A60;
A63:
for
j being
Element of
NAT st 1
<= j &
j < i holds
s31 . (n + j) = 1
thus sat2 . [n,(p 'U' q)] =
s51 . n
by A44, A49
.=
1
by A50, A59, A62, A63
;
verum
end; end;
take
sat2
; for n being Element of NAT holds
( sat2 . [n,TFALSUM] = 0 & ( for k being Element of NAT holds
( sat2 . [n,(prop k)] = 1 iff prop k in M . n ) ) & ( for p, q being Element of LTLB_WFF holds
( sat2 . [n,(p => q)] = (sat2 . [n,p]) => (sat2 . [n,q]) & ( sat2 . [n,(p 'U' q)] = 1 implies ex i being Element of NAT st
( 0 < i & sat2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
sat2 . [(n + j),p] = 1 ) ) ) & ( ex i being Element of NAT st
( 0 < i & sat2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
sat2 . [(n + j),p] = 1 ) ) implies sat2 . [n,(p 'U' q)] = 1 ) ) ) )
hence
for n being Element of NAT holds
( sat2 . [n,TFALSUM] = 0 & ( for k being Element of NAT holds
( sat2 . [n,(prop k)] = 1 iff prop k in M . n ) ) & ( for p, q being Element of LTLB_WFF holds
( sat2 . [n,(p => q)] = (sat2 . [n,p]) => (sat2 . [n,q]) & ( sat2 . [n,(p 'U' q)] = 1 implies ex i being Element of NAT st
( 0 < i & sat2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
sat2 . [(n + j),p] = 1 ) ) ) & ( ex i being Element of NAT st
( 0 < i & sat2 . [(n + i),q] = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
sat2 . [(n + j),p] = 1 ) ) implies sat2 . [n,(p 'U' q)] = 1 ) ) ) )
by A45, A46; verum