defpred S1[ Element of NAT , Element of BOOLEAN ] means ( $2 = 1 iff Prop $1 in M );
A16:
for x being Element of NAT ex y being Element of BOOLEAN st S1[x,y]
consider f1 being sequence of BOOLEAN such that
A19:
for k being Element of NAT holds S1[k,f1 . k]
from FUNCT_2:sch 3(A16);
deffunc H1( Element of NAT ) -> Element of BOOLEAN = f1 . $1;
defpred S2[ Element of HP-WFF , Element of HP-WFF , set , set , set ] means ex s5 being Element of BOOLEAN st $5 = FALSE ;
defpred S3[ Element of HP-WFF , Element of HP-WFF , set , set , set ] means ( ( $3 is Element of BOOLEAN & $4 is Element of BOOLEAN implies ex s3, s4, s5 being Element of BOOLEAN st
( s3 = $3 & s4 = $4 & s5 = $5 & s5 = s3 => s4 ) ) & ( ( not $3 is Element of BOOLEAN or not $4 is Element of BOOLEAN ) implies $5 = FALSE ) );
A1:
for p, q being Element of HP-WFF
for a, b being set ex c being set st S2[p,q,a,b,c]
;
A2:
for p, q being Element of HP-WFF
for a, b being set ex d being set st S3[p,q,a,b,d]
proof
let p,
q be
Element of
HP-WFF ;
for a, b being set ex d being set st S3[p,q,a,b,d]let a,
b be
set ;
ex d being set st S3[p,q,a,b,d]
end;
A3:
for p, q being Element of HP-WFF
for a, b, c, d being set st S2[p,q,a,b,c] & S2[p,q,a,b,d] holds
c = d
;
A4:
for p, q being Element of HP-WFF
for a, b, c, d being set st S3[p,q,a,b,c] & S3[p,q,a,b,d] holds
c = d
;
consider sat being ManySortedSet of HP-WFF such that
A34:
( sat . VERUM = 0 & ( for n being Element of NAT holds sat . (prop n) = H1(n) ) & ( for p, q being Element of HP-WFF holds
( S2[p,q,sat . p,sat . q,sat . (p '&' q)] & S3[p,q,sat . p,sat . q,sat . (p => q)] ) ) )
from HILBERT2:sch 3(A1, A2, A3, A4);
A35:
for x being object st x in HP-WFF holds
sat . x in BOOLEAN
dom sat = HP-WFF
by PARTFUN1:def 2;
then reconsider sat = sat as Function of HP-WFF,BOOLEAN by A35, FUNCT_2:3;
set satc = sat | PL-WFF;
reconsider satc = sat | PL-WFF as Function of PL-WFF,BOOLEAN by FUNCT_2:32, plhp;
B1:
satc . FaLSUM = 0
by A34, FUNCT_1:49;
B2:
for k being Element of NAT holds
( satc . (Prop k) = 1 iff Prop k in M )
for p, q being Element of PL-WFF holds satc . (p => q) = (satc . p) => (satc . q)
hence
ex b1 being Function of PL-WFF,BOOLEAN st
( b1 . FaLSUM = 0 & ( for k being Element of NAT holds
( b1 . (Prop k) = 1 iff Prop k in M ) ) & ( for p, q being Element of PL-WFF holds b1 . (p => q) = (b1 . p) => (b1 . q) ) )
by B1, B2; verum