begin
scheme
LambdaC{
F1()
-> set ,
P1[
set ],
F2(
set )
-> set ,
F3(
set )
-> set } :
ex
f being
Function st
(
dom f = F1() & ( for
x being
set st
x in F1() holds
( (
P1[
x] implies
f . x = F2(
x) ) & (
P1[
x] implies
f . x = F3(
x) ) ) ) )
scheme
PartFuncEx{
F1()
-> set ,
F2()
-> set ,
P1[
set ,
set ] } :
ex
f being
PartFunc of
F1(),
F2() st
( ( for
x being
set holds
(
x in dom f iff (
x in F1() & ex
y being
set st
P1[
x,
y] ) ) ) & ( for
x being
set st
x in dom f holds
P1[
x,
f . x] ) )
provided
A1:
for
x,
y being
set st
x in F1() &
P1[
x,
y] holds
y in F2()
and A2:
for
x,
y1,
y2 being
set st
x in F1() &
P1[
x,
y1] &
P1[
x,
y2] holds
y1 = y2
scheme
LambdaR{
F1()
-> set ,
F2()
-> set ,
F3(
set )
-> set ,
P1[
set ] } :
ex
f being
PartFunc of
F1(),
F2() st
( ( for
x being
set holds
(
x in dom f iff (
x in F1() &
P1[
x] ) ) ) & ( for
x being
set st
x in dom f holds
f . x = F3(
x) ) )
provided
A1:
for
x being
set st
P1[
x] holds
F3(
x)
in F2()
begin
Lm2:
for X being set
for R being Relation of X st R = id X holds
R is total
Lm3:
for X being set
for R being Relation st R = id X holds
( R is reflexive & R is symmetric & R is antisymmetric & R is transitive )
Lm4:
for X being set holds id X is Relation of X
begin