defpred S3[ object , object , object , object ] means for p, q being PartialPredicate of D
for f being BinominativeFunction of D st p = $1 & f = $2 & q = $3 holds
for h being Function st h = $4 holds
( dom h = H1(p,f,q) & ( for d being object holds
( ( S1[d,p,f,q] implies h . d = TRUE ) & ( S2[d,p,f,q] implies h . d = FALSE ) ) ) );
A1:
for x1 being Element of Pr D
for x2 being Element of FPrg D
for x3 being Element of Pr D ex y being Element of Pr D st S3[x1,x2,x3,y]
proof
let x1 be
Element of
Pr D;
for x2 being Element of FPrg D
for x3 being Element of Pr D ex y being Element of Pr D st S3[x1,x2,x3,y]let x2 be
Element of
FPrg D;
for x3 being Element of Pr D ex y being Element of Pr D st S3[x1,x2,x3,y]let x3 be
Element of
Pr D;
ex y being Element of Pr D st S3[x1,x2,x3,y]
reconsider X1 =
x1,
X3 =
x3 as
PartFunc of
D,
BOOLEAN by PARTFUN1:46;
reconsider X2 =
x2 as
PartFunc of
D,
D by PARTFUN1:46;
defpred S4[
object ,
object ]
means for
d being
object st
d = $1 holds
( (
S1[
d,
X1,
X2,
X3] implies $2
= TRUE ) & (
S2[
d,
X1,
X2,
X3] implies $2
= FALSE ) );
A2:
for
a being
object st
a in H1(
X1,
X2,
X3) holds
ex
b being
object st
(
b in BOOLEAN &
S4[
a,
b] )
proof
let a be
object ;
( a in H1(X1,X2,X3) implies ex b being object st
( b in BOOLEAN & S4[a,b] ) )
assume
a in H1(
X1,
X2,
X3)
;
ex b being object st
( b in BOOLEAN & S4[a,b] )
then consider d being
Element of
D such that A3:
d = a
and A4:
(
S1[
d,
X1,
X2,
X3] or
S2[
d,
X1,
X2,
X3] )
;
per cases
( S1[d,X1,X2,X3] or S2[d,X1,X2,X3] )
by A4;
end;
end;
consider g being
Function such that A7:
dom g = H1(
X1,
X2,
X3)
and A8:
rng g c= BOOLEAN
and A9:
for
x being
object st
x in H1(
X1,
X2,
X3) holds
S4[
x,
g . x]
from FUNCT_1:sch 6(A2);
H1(
X1,
X2,
X3)
c= D
proof
let x be
object ;
TARSKI:def 3 ( not x in H1(X1,X2,X3) or x in D )
assume
x in H1(
X1,
X2,
X3)
;
x in D
then
ex
d being
Element of
D st
(
d = x & (
S1[
d,
X1,
X2,
X3] or
S2[
d,
X1,
X2,
X3] ) )
;
hence
x in D
;
verum
end;
then
g is
PartFunc of
D,
BOOLEAN
by A7, A8, RELSET_1:4;
then reconsider g =
g as
Element of
Pr D by PARTFUN1:45;
take
g
;
S3[x1,x2,x3,g]
let p,
q be
PartialPredicate of
D;
for f being BinominativeFunction of D st p = x1 & f = x2 & q = x3 holds
for h being Function st h = g holds
( dom h = H1(p,f,q) & ( for d being object holds
( ( S1[d,p,f,q] implies h . d = TRUE ) & ( S2[d,p,f,q] implies h . d = FALSE ) ) ) )let f be
BinominativeFunction of
D;
( p = x1 & f = x2 & q = x3 implies for h being Function st h = g holds
( dom h = H1(p,f,q) & ( for d being object holds
( ( S1[d,p,f,q] implies h . d = TRUE ) & ( S2[d,p,f,q] implies h . d = FALSE ) ) ) ) )
assume A10:
(
x1 = p &
x2 = f &
x3 = q )
;
for h being Function st h = g holds
( dom h = H1(p,f,q) & ( for d being object holds
( ( S1[d,p,f,q] implies h . d = TRUE ) & ( S2[d,p,f,q] implies h . d = FALSE ) ) ) )
let h be
Function;
( h = g implies ( dom h = H1(p,f,q) & ( for d being object holds
( ( S1[d,p,f,q] implies h . d = TRUE ) & ( S2[d,p,f,q] implies h . d = FALSE ) ) ) ) )
assume A11:
h = g
;
( dom h = H1(p,f,q) & ( for d being object holds
( ( S1[d,p,f,q] implies h . d = TRUE ) & ( S2[d,p,f,q] implies h . d = FALSE ) ) ) )
thus
dom h = H1(
p,
f,
q)
by A7, A10, A11;
for d being object holds
( ( S1[d,p,f,q] implies h . d = TRUE ) & ( S2[d,p,f,q] implies h . d = FALSE ) )
let d be
object ;
( ( S1[d,p,f,q] implies h . d = TRUE ) & ( S2[d,p,f,q] implies h . d = FALSE ) )
hereby ( S2[d,p,f,q] implies h . d = FALSE )
end;
assume A13:
S2[
d,
p,
f,
q]
;
h . d = FALSE
then
d in dom p
;
then
d in H1(
X1,
X2,
X3)
by A10, A13;
hence
h . d = FALSE
by A9, A10, A11, A13;
verum
end;
consider F being Function of [:(Pr D),(FPrg D),(Pr D):],(Pr D) such that
A14:
for x being Element of Pr D
for y being Element of FPrg D
for z being Element of Pr D holds S3[x,y,z,F . [x,y,z]]
from MULTOP_1:sch 1(A1);
take
F
; for p, q being PartialPredicate of D
for f being BinominativeFunction of D holds
( dom (F . (p,f,q)) = { d where d is Element of D : ( ( d in dom p & p . d = FALSE ) or ( d in dom (q * f) & (q * f) . d = TRUE ) or ( d in dom p & p . d = TRUE & d in dom (q * f) & (q * f) . d = FALSE ) ) } & ( for d being object holds
( ( ( ( d in dom p & p . d = FALSE ) or ( d in dom (q * f) & (q * f) . d = TRUE ) ) implies (F . (p,f,q)) . d = TRUE ) & ( d in dom p & p . d = TRUE & d in dom (q * f) & (q * f) . d = FALSE implies (F . (p,f,q)) . d = FALSE ) ) ) )
let p, q be PartialPredicate of D; for f being BinominativeFunction of D holds
( dom (F . (p,f,q)) = { d where d is Element of D : ( ( d in dom p & p . d = FALSE ) or ( d in dom (q * f) & (q * f) . d = TRUE ) or ( d in dom p & p . d = TRUE & d in dom (q * f) & (q * f) . d = FALSE ) ) } & ( for d being object holds
( ( ( ( d in dom p & p . d = FALSE ) or ( d in dom (q * f) & (q * f) . d = TRUE ) ) implies (F . (p,f,q)) . d = TRUE ) & ( d in dom p & p . d = TRUE & d in dom (q * f) & (q * f) . d = FALSE implies (F . (p,f,q)) . d = FALSE ) ) ) )
let f be BinominativeFunction of D; ( dom (F . (p,f,q)) = { d where d is Element of D : ( ( d in dom p & p . d = FALSE ) or ( d in dom (q * f) & (q * f) . d = TRUE ) or ( d in dom p & p . d = TRUE & d in dom (q * f) & (q * f) . d = FALSE ) ) } & ( for d being object holds
( ( ( ( d in dom p & p . d = FALSE ) or ( d in dom (q * f) & (q * f) . d = TRUE ) ) implies (F . (p,f,q)) . d = TRUE ) & ( d in dom p & p . d = TRUE & d in dom (q * f) & (q * f) . d = FALSE implies (F . (p,f,q)) . d = FALSE ) ) ) )
( p in Pr D & f in FPrg D & q in Pr D )
by PARTFUN1:45;
hence
( dom (F . (p,f,q)) = { d where d is Element of D : ( ( d in dom p & p . d = FALSE ) or ( d in dom (q * f) & (q * f) . d = TRUE ) or ( d in dom p & p . d = TRUE & d in dom (q * f) & (q * f) . d = FALSE ) ) } & ( for d being object holds
( ( ( ( d in dom p & p . d = FALSE ) or ( d in dom (q * f) & (q * f) . d = TRUE ) ) implies (F . (p,f,q)) . d = TRUE ) & ( d in dom p & p . d = TRUE & d in dom (q * f) & (q * f) . d = FALSE implies (F . (p,f,q)) . d = FALSE ) ) ) )
by A14; verum