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 ; :: thesis: for a, b being set ex d being set st S2[p,q,a,b,d]
let a, b be set ; :: thesis: ex d being set st S2[p,q,a,b,d]
per cases ( ( a is sequence of BOOLEAN & b is sequence of BOOLEAN ) or not a is sequence of BOOLEAN or not b is sequence of BOOLEAN ) ;
suppose ( a is sequence of BOOLEAN & b is sequence of BOOLEAN ) ; :: thesis: ex d being set st S2[p,q,a,b,d]
then reconsider a1 = a, b1 = b as sequence of BOOLEAN ;
defpred S4[ Element of NAT , Element of BOOLEAN ] means ( $2 = 1 iff ex i being Element of NAT st
( 0 < i & b1 . ($1 + i) = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
a1 . ($1 + j) = 1 ) ) );
A2: now :: thesis: for n being Element of NAT ex y being Element of BOOLEAN st S4[n,y]
let n be Element of NAT ; :: thesis: ex y being Element of BOOLEAN st S4[y,b2]
per cases ( ex i being Element of NAT st
( 0 < i & b1 . (n + i) = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
a1 . (n + j) = 1 ) ) or for i being Element of NAT holds
( not 0 < i or not b1 . (n + i) = 1 or ex j being Element of NAT st
( 1 <= j & j < i & not a1 . (n + j) = 1 ) ) )
;
suppose ex i being Element of NAT st
( 0 < i & b1 . (n + i) = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
a1 . (n + j) = 1 ) ) ; :: thesis: ex y being Element of BOOLEAN st S4[y,b2]
hence ex y being Element of BOOLEAN st S4[n,y] ; :: thesis: verum
end;
suppose for i being Element of NAT holds
( not 0 < i or not b1 . (n + i) = 1 or ex j being Element of NAT st
( 1 <= j & j < i & not a1 . (n + j) = 1 ) ) ; :: thesis: ex y being Element of BOOLEAN st S4[y,b2]
end;
end;
end;
consider c being sequence of BOOLEAN such that
A3: for n being Element of NAT holds S4[n,c . n] from FUNCT_2:sch 3(A2);
thus ex d being set st S2[p,q,a,b,d] by A3; :: thesis: verum
end;
suppose ( not a is sequence of BOOLEAN or not b is sequence of BOOLEAN ) ; :: thesis: ex d being set st S2[p,q,a,b,d]
hence ex d being set st S2[p,q,a,b,d] ; :: thesis: verum
end;
end;
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 ; :: thesis: for a, b, c, d being set st S2[p,q,a,b,c] & S2[p,q,a,b,d] holds
c = d

let a, b, c, d be set ; :: thesis: ( 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] ; :: thesis: c = d
per cases ( ( a is sequence of BOOLEAN & b is sequence of BOOLEAN ) or not a is sequence of BOOLEAN or not b is sequence of BOOLEAN ) ;
suppose A7: ( a is sequence of BOOLEAN & b is sequence of BOOLEAN ) ; :: thesis: c = d
then consider s31, s41, s51 being sequence of BOOLEAN such that
A8: ( s31 = a & s41 = b ) and
A9: s51 = d and
A10: 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 A6;
consider s3, s4, s5 being sequence of BOOLEAN such that
A11: ( s3 = a & s4 = b ) and
A12: s5 = c and
A13: 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 ) ) ) by A5, A7;
now :: thesis: for x being object st x in NAT holds
s5 . x = s51 . x
let x be object ; :: thesis: ( x in NAT implies s5 . b1 = s51 . b1 )
assume x in NAT ; :: thesis: s5 . b1 = s51 . b1
then reconsider x1 = x as Element of NAT ;
per cases ( s5 . x1 = 1 or s5 . x1 = 0 ) by XBOOLEAN:def 3;
suppose A14: s5 . x1 = 1 ; :: thesis: s5 . b1 = s51 . b1
then ex i being Element of NAT st
( 0 < i & s41 . (x1 + i) = 1 & ( for j being Element of NAT st 1 <= j & j < i holds
s31 . (x1 + j) = 1 ) ) by A11, A13, A8;
hence s5 . x = s51 . x by A10, A14; :: thesis: verum
end;
suppose A15: s5 . x1 = 0 ; :: thesis: s5 . b1 = s51 . b1
then for i being Element of NAT holds
( not 0 < i or not s41 . (x1 + i) = 1 or ex j being Element of NAT st
( 1 <= j & j < i & not s31 . (x1 + j) = 1 ) ) by A11, A13, A8;
hence s5 . x = s51 . x by A15, XBOOLEAN:def 3, A10; :: thesis: verum
end;
end;
end;
hence c = d by A12, A9, FUNCT_2:12; :: thesis: verum
end;
end;
end;
A16: for x being Element of NAT ex y being Element of Funcs (NAT,BOOLEAN) st S3[x,y]
proof
let x be Element of NAT ; :: thesis: ex y being Element of Funcs (NAT,BOOLEAN) st S3[x,y]
defpred S4[ Element of NAT , Element of BOOLEAN ] means ( $2 = 1 iff prop x in M . $1 );
A17: now :: thesis: for x1 being Element of NAT ex y1 being Element of BOOLEAN st S4[x1,y1]
let x1 be Element of NAT ; :: thesis: ex y1 being Element of BOOLEAN st S4[y1,b2]
per cases ( prop x in M . x1 or not prop x in M . x1 ) ;
suppose prop x in M . x1 ; :: thesis: ex y1 being Element of BOOLEAN st S4[y1,b2]
end;
suppose not prop x in M . x1 ; :: thesis: ex y1 being Element of BOOLEAN st S4[y1,b2]
end;
end;
end;
consider y being sequence of BOOLEAN such that
A18: for n being Element of NAT holds S4[n,y . n] from FUNCT_2:sch 3(A17);
reconsider y = y as Element of Funcs (NAT,BOOLEAN) by FUNCT_2:8;
S3[x,y] by A18;
hence ex y being Element of Funcs (NAT,BOOLEAN) st S3[x,y] ; :: thesis: verum
end;
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 ; :: thesis: for a, b, c, d being set st S1[p,q,a,b,c] & S1[p,q,a,b,d] holds
c = d

let a, b, c, d be set ; :: thesis: ( 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] ; :: thesis: c = d
per cases ( ( a is sequence of BOOLEAN & b is sequence of BOOLEAN ) or not a is sequence of BOOLEAN or not b is sequence of BOOLEAN ) ;
suppose A23: ( a is sequence of BOOLEAN & b is sequence of BOOLEAN ) ; :: thesis: c = d
then consider s31, s41, s51 being sequence of BOOLEAN such that
A24: s31 = a and
A25: s41 = b and
A26: s51 = d and
A27: for n being Element of NAT holds s51 . n = (s31 . n) => (s41 . n) by A22;
consider s3, s4, s5 being sequence of BOOLEAN such that
A28: s3 = a and
A29: s4 = b and
A30: s5 = c and
A31: for n being Element of NAT holds s5 . n = (s3 . n) => (s4 . n) by A21, A23;
now :: thesis: for x being object st x in NAT holds
s5 . x = s51 . x
let x be object ; :: thesis: ( x in NAT implies s5 . x = s51 . x )
assume x in NAT ; :: thesis: s5 . x = s51 . x
then reconsider x1 = x as Element of NAT ;
thus s5 . x = (s31 . x1) => (s4 . x1) by A28, A31, A24
.= s51 . x by A29, A25, A27 ; :: thesis: verum
end;
hence c = d by A30, A26, FUNCT_2:12; :: thesis: verum
end;
end;
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 ; :: thesis: for a, b being set ex d being set st S1[p,q,a,b,d]
let a, b be set ; :: thesis: ex d being set st S1[p,q,a,b,d]
per cases ( ( a is sequence of BOOLEAN & b is sequence of BOOLEAN ) or not a is sequence of BOOLEAN or not b is sequence of BOOLEAN ) ;
suppose ( a is sequence of BOOLEAN & b is sequence of BOOLEAN ) ; :: thesis: ex d being set st S1[p,q,a,b,d]
then reconsider a1 = a, b1 = b as sequence of BOOLEAN ;
deffunc H2( Element of NAT ) -> Element of BOOLEAN = 'not' ((a1 . $1) '&' ('not' (b1 . $1)));
consider d being sequence of BOOLEAN such that
A33: for n being Element of NAT holds d . n = H2(n) from FUNCT_2:sch 4();
for n being Element of NAT holds d . n = (a1 . n) => (b1 . n) by A33;
hence ex d being set st S1[p,q,a,b,d] ; :: thesis: verum
end;
suppose ( not a is sequence of BOOLEAN or not b is sequence of BOOLEAN ) ; :: thesis: ex d being set st S1[p,q,a,b,d]
hence ex d being set st S1[p,q,a,b,d] ; :: thesis: verum
end;
end;
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);
A35: now :: thesis: for x being object st x in LTLB_WFF holds
sat . x in Funcs (NAT,BOOLEAN)
A36: now :: thesis: for A, B being Element of LTLB_WFF holds sat . (A => B) in Funcs (NAT,BOOLEAN)
let A, B be Element of LTLB_WFF ; :: thesis: sat . (b1 => b2) in Funcs (NAT,BOOLEAN)
A37: S1[A,B,sat . A,sat . B,sat . (A => B)] by A34;
per cases ( ( sat . A is sequence of BOOLEAN & sat . B is sequence of BOOLEAN ) or not sat . A is sequence of BOOLEAN or not sat . B is sequence of BOOLEAN ) ;
suppose ( sat . A is sequence of BOOLEAN & sat . B is sequence of BOOLEAN ) ; :: thesis: sat . (b1 => b2) in Funcs (NAT,BOOLEAN)
then consider s3, s4, s5 being sequence of BOOLEAN such that
s3 = sat . A and
s4 = sat . B and
A38: s5 = sat . (A => B) and
for n being Element of NAT holds s5 . n = (s3 . n) => (s4 . n) by A34;
thus sat . (A => B) in Funcs (NAT,BOOLEAN) by A38, FUNCT_2:8; :: thesis: verum
end;
suppose ( not sat . A is sequence of BOOLEAN or not sat . B is sequence of BOOLEAN ) ; :: thesis: sat . (b1 => b2) in Funcs (NAT,BOOLEAN)
end;
end;
end;
A39: now :: thesis: for A, B being Element of LTLB_WFF holds sat . (A 'U' B) in Funcs (NAT,BOOLEAN)
let A, B be Element of LTLB_WFF ; :: thesis: sat . (b1 'U' b2) in Funcs (NAT,BOOLEAN)
A40: S2[A,B,sat . A,sat . B,sat . (A 'U' B)] by A34;
per cases ( ( sat . A is sequence of BOOLEAN & sat . B is sequence of BOOLEAN ) or not sat . A is sequence of BOOLEAN or not sat . B is sequence of BOOLEAN ) ;
suppose ( sat . A is sequence of BOOLEAN & sat . B is sequence of BOOLEAN ) ; :: thesis: sat . (b1 'U' b2) in Funcs (NAT,BOOLEAN)
then consider s3, s4, s5 being sequence of BOOLEAN such that
s3 = sat . A and
s4 = sat . B and
A41: s5 = sat . (A 'U' B) and
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 ) ) ) by A34;
thus sat . (A 'U' B) in Funcs (NAT,BOOLEAN) by A41, FUNCT_2:8; :: thesis: verum
end;
suppose ( not sat . A is sequence of BOOLEAN or not sat . B is sequence of BOOLEAN ) ; :: thesis: sat . (b1 'U' b2) in Funcs (NAT,BOOLEAN)
end;
end;
end;
let x be object ; :: thesis: ( x in LTLB_WFF implies sat . b1 in Funcs (NAT,BOOLEAN) )
assume x in LTLB_WFF ; :: thesis: sat . b1 in Funcs (NAT,BOOLEAN)
then reconsider x1 = x as Element of LTLB_WFF ;
A42: now :: thesis: for n being Element of NAT holds sat . (prop n) in Funcs (NAT,BOOLEAN)
let n be Element of NAT ; :: thesis: sat . (prop n) in Funcs (NAT,BOOLEAN)
sat . (prop n) = f1 . n by A34;
hence sat . (prop n) in Funcs (NAT,BOOLEAN) ; :: thesis: verum
end;
per cases ( x1 = TFALSUM or ex n being Element of NAT st x1 = prop n or ex p, q being Element of LTLB_WFF st x1 = p 'U' q or ex p, q being Element of LTLB_WFF st x1 = p => q ) by Th4;
end;
end;
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();
A44: now :: thesis: for A being Element of LTLB_WFF
for n being Element of NAT holds sat2 . [n,A] = (sat . A) . n
let A be Element of LTLB_WFF ; :: thesis: for n being Element of NAT holds sat2 . [n,A] = (sat . A) . n
let n be Element of NAT ; :: thesis: sat2 . [n,A] = (sat . A) . n
thus sat2 . [n,A] = sat2 . (n,A) by BINOP_1:def 1
.= (sat . A) . n by A43 ; :: thesis: verum
end;
A45: now :: thesis: for k, n being Element of NAT holds
( sat2 . [n,(prop k)] = 1 iff prop k in M . n )
let k, n be Element of NAT ; :: thesis: ( sat2 . [n,(prop k)] = 1 iff prop k in M . n )
sat2 . [n,(prop k)] = (sat . (prop k)) . n by A44
.= (f1 . k) . n by A34 ;
hence ( sat2 . [n,(prop k)] = 1 iff prop k in M . n ) by A19; :: thesis: verum
end;
A46: now :: thesis: 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 ; :: thesis: 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 ; :: thesis: ( 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 ; :: thesis: ( 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 ) ) ) :: thesis: verum
proof
hereby :: thesis: ( 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 ; :: thesis: 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;
A57: now :: thesis: for j being Element of NAT st 1 <= j & j < i holds
sat2 . [(n + j),p] = 1
let j be Element of NAT ; :: thesis: ( 1 <= j & j < i implies sat2 . [(n + j),p] = 1 )
assume A58: ( 1 <= j & j < i ) ; :: thesis: sat2 . [(n + j),p] = 1
thus sat2 . [(n + j),p] = (sat . p) . (n + j) by A44
.= 1 by A47, A56, A58 ; :: thesis: verum
end;
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; :: thesis: 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 ) ) ; :: thesis: 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
proof
let j be Element of NAT ; :: thesis: ( 1 <= j & j < i implies s31 . (n + j) = 1 )
assume A64: ( 1 <= j & j < i ) ; :: thesis: s31 . (n + j) = 1
thus s31 . (n + j) = sat2 . [(n + j),p] by A44, A47
.= 1 by A61, A64 ; :: thesis: verum
end;
thus sat2 . [n,(p 'U' q)] = s51 . n by A44, A49
.= 1 by A50, A59, A62, A63 ; :: thesis: verum
end;
end;
take sat2 ; :: thesis: 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 ) ) ) )

now :: thesis: for n being Element of NAT holds sat2 . [n,TFALSUM] = 0
let n be Element of NAT ; :: thesis: sat2 . [n,TFALSUM] = 0
thus sat2 . [n,TFALSUM] = (sat . TFALSUM) . n by A44
.= 0 by A34, FUNCOP_1:7 ; :: thesis: verum
end;
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; :: thesis: verum