Article FUNCT_6, MML version 4.99.1005
:: FUNCT_6:th 1
theorem
for b1, b2 being set holds
b1 in product <*b2*>
iff
ex b3 being set st
b3 in b2 & b1 = <*b3*>;
:: FUNCT_6:th 2
theorem
for b1, b2, b3 being set holds
b1 in product <*b2,b3*>
iff
ex b4, b5 being set st
b4 in b2 & b5 in b3 & b1 = <*b4,b5*>;
:: FUNCT_6:th 3
theorem
for b1, b2, b3, b4 being set holds
b1 in product <*b2,b3,b4*>
iff
ex b5, b6, b7 being set st
b5 in b2 & b6 in b3 & b7 in b4 & b1 = <*b5,b6,b7*>;
:: FUNCT_6:th 4
theorem
for b1 being non empty set holds
product <*b1*> = 1 -tuples_on b1;
:: FUNCT_6:th 5
theorem
for b1, b2 being non empty set holds
product <*b1,b2*> = {<*b3,b4*> where b3 is Element of b1, b4 is Element of b2: TRUE};
:: FUNCT_6:th 6
theorem
for b1 being non empty set holds
product <*b1,b1*> = 2 -tuples_on b1;
:: FUNCT_6:th 7
theorem
for b1, b2, b3 being non empty set holds
product <*b1,b2,b3*> = {<*b4,b5,b6*> where b4 is Element of b1, b5 is Element of b2, b6 is Element of b3: TRUE};
:: FUNCT_6:th 8
theorem
for b1 being non empty set holds
product <*b1,b1,b1*> = 3 -tuples_on b1;
:: FUNCT_6:th 9
theorem
for b1 being Element of NAT
for b2 being non empty set holds
product (b1 |-> b2) = b1 -tuples_on b2;
:: FUNCT_6:th 10
theorem
for b1 being Relation-like Function-like set holds
product b1 c= Funcs(proj1 b1,Union b1);
:: FUNCT_6:th 11
theorem
for b1 being set
for b2 being Relation-like Function-like set
st b1 in proj1 ~ b2
holds ex b3, b4 being set st
b1 = [b3,b4];
:: FUNCT_6:th 12
theorem
for b1, b2, b3 being set holds
~ ([:b1,b2:] --> b3) = [:b2,b1:] --> b3;
:: FUNCT_6:th 13
theorem
for b1 being Relation-like Function-like set holds
curry b1 = curry' ~ b1 & uncurry b1 = ~ uncurry' b1;
:: FUNCT_6:th 14
theorem
for b1, b2, b3 being set
st [:b1,b2:] <> {}
holds curry ([:b1,b2:] --> b3) = b1 --> (b2 --> b3) &
curry' ([:b1,b2:] --> b3) = b2 --> (b1 --> b3);
:: FUNCT_6:th 15
theorem
for b1, b2, b3 being set holds
uncurry (b1 --> (b2 --> b3)) = [:b1,b2:] --> b3 &
uncurry' (b1 --> (b2 --> b3)) = [:b2,b1:] --> b3;
:: FUNCT_6:th 16
theorem
for b1 being set
for b2, b3 being Relation-like Function-like set
st b1 in proj1 b2 & b3 = b2 . b1
holds proj2 b3 c= proj2 uncurry b2 & proj2 b3 c= proj2 uncurry' b2;
:: FUNCT_6:th 17
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
proj1 uncurry (b1 --> b2) = [:b1,proj1 b2:] &
proj2 uncurry (b1 --> b2) c= proj2 b2 &
proj1 uncurry' (b1 --> b2) = [:proj1 b2,b1:] &
proj2 uncurry' (b1 --> b2) c= proj2 b2;
:: FUNCT_6:th 18
theorem
for b1 being set
for b2 being Relation-like Function-like set
st b1 <> {}
holds proj2 uncurry (b1 --> b2) = proj2 b2 & proj2 uncurry' (b1 --> b2) = proj2 b2;
:: FUNCT_6:th 19
theorem
for b1, b2, b3 being set
for b4 being Relation-like Function-like set
st [:b1,b2:] <> {} & b4 in Funcs([:b1,b2:],b3)
holds curry b4 in Funcs(b1,Funcs(b2,b3)) & curry' b4 in Funcs(b2,Funcs(b1,b3));
:: FUNCT_6:th 20
theorem
for b1, b2, b3 being set
for b4 being Relation-like Function-like set
st b4 in Funcs(b1,Funcs(b2,b3))
holds uncurry b4 in Funcs([:b1,b2:],b3) & uncurry' b4 in Funcs([:b2,b1:],b3);
:: FUNCT_6:th 21
theorem
for b1, b2, b3, b4, b5 being set
for b6 being Relation-like Function-like set
st (curry b6 in Funcs(b1,Funcs(b2,b3)) or curry' b6 in Funcs(b2,Funcs(b1,b3))) &
proj1 b6 c= [:b4,b5:]
holds b6 in Funcs([:b1,b2:],b3);
:: FUNCT_6:th 22
theorem
for b1, b2, b3, b4, b5 being set
for b6 being Relation-like Function-like set
st (uncurry b6 in Funcs([:b1,b2:],b3) or uncurry' b6 in Funcs([:b2,b1:],b3)) &
proj2 b6 c= PFuncs(b4,b5) &
proj1 b6 = b1
holds b6 in Funcs(b1,Funcs(b2,b3));
:: FUNCT_6:th 23
theorem
for b1, b2, b3 being set
for b4 being Relation-like Function-like set
st b4 in PFuncs([:b1,b2:],b3)
holds curry b4 in PFuncs(b1,PFuncs(b2,b3)) & curry' b4 in PFuncs(b2,PFuncs(b1,b3));
:: FUNCT_6:th 24
theorem
for b1, b2, b3 being set
for b4 being Relation-like Function-like set
st b4 in PFuncs(b1,PFuncs(b2,b3))
holds uncurry b4 in PFuncs([:b1,b2:],b3) & uncurry' b4 in PFuncs([:b2,b1:],b3);
:: FUNCT_6:th 25
theorem
for b1, b2, b3, b4, b5 being set
for b6 being Relation-like Function-like set
st (curry b6 in PFuncs(b1,PFuncs(b2,b3)) or curry' b6 in PFuncs(b2,PFuncs(b1,b3))) &
proj1 b6 c= [:b4,b5:]
holds b6 in PFuncs([:b1,b2:],b3);
:: FUNCT_6:th 26
theorem
for b1, b2, b3, b4, b5 being set
for b6 being Relation-like Function-like set
st (uncurry b6 in PFuncs([:b1,b2:],b3) or uncurry' b6 in PFuncs([:b2,b1:],b3)) &
proj2 b6 c= PFuncs(b4,b5) &
proj1 b6 c= b1
holds b6 in PFuncs(b1,PFuncs(b2,b3));
:: FUNCT_6:funcnot 1 => FUNCT_6:func 1
definition
let a1 be set;
func SubFuncs A1 -> set means
for b1 being set holds
b1 in it
iff
b1 in a1 & b1 is Relation-like Function-like set;
end;
:: FUNCT_6:def 1
theorem
for b1, b2 being set holds
b2 = SubFuncs b1
iff
for b3 being set holds
b3 in b2
iff
b3 in b1 & b3 is Relation-like Function-like set;
:: FUNCT_6:th 27
theorem
for b1 being set holds
SubFuncs b1 c= b1;
:: FUNCT_6:th 28
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
b1 in b2 " SubFuncs proj2 b2
iff
b1 in proj1 b2 & b2 . b1 is Relation-like Function-like set;
:: FUNCT_6:th 29
theorem
for b1, b2, b3 being Relation-like Function-like set holds
SubFuncs {} = {} &
SubFuncs {b1} = {b1} &
SubFuncs {b1,b2} = {b1,b2} &
SubFuncs {b1,b2,b3} = {b1,b2,b3};
:: FUNCT_6:th 30
theorem
for b1, b2 being set
st b1 c= SubFuncs b2
holds SubFuncs b1 = b1;
:: FUNCT_6:funcnot 2 => FUNCT_6:func 2
definition
let a1 be Relation-like Function-like set;
func doms A1 -> Relation-like Function-like set means
proj1 it = a1 " SubFuncs proj2 a1 &
(for b1 being set
st b1 in a1 " SubFuncs proj2 a1
holds it . b1 = proj1 (a1 . b1));
end;
:: FUNCT_6:def 2
theorem
for b1, b2 being Relation-like Function-like set holds
b2 = doms b1
iff
proj1 b2 = b1 " SubFuncs proj2 b1 &
(for b3 being set
st b3 in b1 " SubFuncs proj2 b1
holds b2 . b3 = proj1 (b1 . b3));
:: FUNCT_6:funcnot 3 => FUNCT_6:func 3
definition
let a1 be Relation-like Function-like set;
func rngs A1 -> Relation-like Function-like set means
proj1 it = a1 " SubFuncs proj2 a1 &
(for b1 being set
st b1 in a1 " SubFuncs proj2 a1
holds it . b1 = proj2 (a1 . b1));
end;
:: FUNCT_6:def 3
theorem
for b1, b2 being Relation-like Function-like set holds
b2 = rngs b1
iff
proj1 b2 = b1 " SubFuncs proj2 b1 &
(for b3 being set
st b3 in b1 " SubFuncs proj2 b1
holds b2 . b3 = proj2 (b1 . b3));
:: FUNCT_6:funcnot 4 => FUNCT_6:func 4
definition
let a1 be Relation-like Function-like set;
func meet A1 -> set equals
meet proj2 a1;
end;
:: FUNCT_6:def 4
theorem
for b1 being Relation-like Function-like set holds
meet b1 = meet proj2 b1;
:: FUNCT_6:th 31
theorem
for b1 being set
for b2, b3 being Relation-like Function-like set
st b1 in proj1 b2 & b3 = b2 . b1
holds b1 in proj1 doms b2 & (doms b2) . b1 = proj1 b3 & b1 in proj1 rngs b2 & (rngs b2) . b1 = proj2 b3;
:: FUNCT_6:th 32
theorem
doms {} = {} & rngs {} = {};
:: FUNCT_6:th 33
theorem
for b1 being Relation-like Function-like set holds
doms <*b1*> = <*proj1 b1*> &
rngs <*b1*> = <*proj2 b1*>;
:: FUNCT_6:th 34
theorem
for b1, b2 being Relation-like Function-like set holds
doms <*b1,b2*> = <*proj1 b1,proj1 b2*> &
rngs <*b1,b2*> = <*proj2 b1,proj2 b2*>;
:: FUNCT_6:th 35
theorem
for b1, b2, b3 being Relation-like Function-like set holds
doms <*b1,b2,b3*> = <*proj1 b1,proj1 b2,proj1 b3*> &
rngs <*b1,b2,b3*> = <*proj2 b1,proj2 b2,proj2 b3*>;
:: FUNCT_6:th 36
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
doms (b1 --> b2) = b1 --> proj1 b2 & rngs (b1 --> b2) = b1 --> proj2 b2;
:: FUNCT_6:th 37
theorem
for b1 being set
for b2 being Relation-like Function-like set
st b2 <> {}
holds b1 in meet b2
iff
for b3 being set
st b3 in proj1 b2
holds b1 in b2 . b3;
:: FUNCT_6:th 39
theorem
for b1 being set holds
Union <*b1*> = b1 & meet <*b1*> = b1;
:: FUNCT_6:th 40
theorem
for b1, b2 being set holds
Union <*b1,b2*> = b1 \/ b2 & meet <*b1,b2*> = b1 /\ b2;
:: FUNCT_6:th 41
theorem
for b1, b2, b3 being set holds
Union <*b1,b2,b3*> = (b1 \/ b2) \/ b3 &
meet <*b1,b2,b3*> = (b1 /\ b2) /\ b3;
:: FUNCT_6:th 42
theorem
for b1 being set holds
Union ({} --> b1) = {} & meet ({} --> b1) = {};
:: FUNCT_6:th 43
theorem
for b1, b2 being set
st b1 <> {}
holds Union (b1 --> b2) = b2 & meet (b1 --> b2) = b2;
:: FUNCT_6:funcnot 5 => FUNCT_6:func 5
definition
let a1 be Relation-like Function-like set;
let a2, a3 be set;
func A1 ..(A2,A3) -> set equals
(uncurry a1) .(a2,a3);
end;
:: FUNCT_6:def 5
theorem
for b1 being Relation-like Function-like set
for b2, b3 being set holds
b1 ..(b2,b3) = (uncurry b1) .(b2,b3);
:: FUNCT_6:th 45
theorem
for b1 being set
for b2, b3, b4 being Relation-like Function-like set
st b1 in proj1 b2
holds <*b2*> ..(1,b1) = b2 . b1 &
<*b2,b3*> ..(1,b1) = b2 . b1 &
<*b2,b3,b4*> ..(1,b1) = b2 . b1;
:: FUNCT_6:th 46
theorem
for b1 being set
for b2, b3, b4 being Relation-like Function-like set
st b1 in proj1 b2
holds <*b3,b2*> ..(2,b1) = b2 . b1 &
<*b3,b2,b4*> ..(2,b1) = b2 . b1;
:: FUNCT_6:th 47
theorem
for b1 being set
for b2, b3, b4 being Relation-like Function-like set
st b1 in proj1 b2
holds <*b3,b4,b2*> ..(3,b1) = b2 . b1;
:: FUNCT_6:th 48
theorem
for b1, b2, b3 being set
for b4 being Relation-like Function-like set
st b1 in b2 & b3 in proj1 b4
holds (b2 --> b4) ..(b1,b3) = b4 . b3;
:: FUNCT_6:funcnot 6 => FUNCT_6:func 6
definition
let a1 be Relation-like Function-like set;
func <:A1:> -> Relation-like Function-like set equals
curry ((uncurry' a1) | [:meet doms a1,proj1 a1:]);
end;
:: FUNCT_6:def 6
theorem
for b1 being Relation-like Function-like set holds
<:b1:> = curry ((uncurry' b1) | [:meet doms b1,proj1 b1:]);
:: FUNCT_6:th 49
theorem
for b1 being Relation-like Function-like set holds
proj1 <:b1:> = meet doms b1 &
proj2 <:b1:> c= product rngs b1;
:: FUNCT_6:th 50
theorem
for b1 being set
for b2 being Relation-like Function-like set
st b1 in proj1 <:b2:>
holds <:b2:> . b1 is Relation-like Function-like set;
:: FUNCT_6:th 51
theorem
for b1 being set
for b2, b3 being Relation-like Function-like set
st b1 in proj1 <:b2:> & b3 = <:b2:> . b1
holds proj1 b3 = b2 " SubFuncs proj2 b2 &
(for b4 being set
st b4 in proj1 b3
holds [b4,b1] in proj1 uncurry b2 & b3 . b4 = (uncurry b2) .(b4,b1));
:: FUNCT_6:th 52
theorem
for b1 being set
for b2 being Relation-like Function-like set
st b1 in proj1 <:b2:>
for b3 being Relation-like Function-like set
st b3 in proj2 b2
holds b1 in proj1 b3;
:: FUNCT_6:th 53
theorem
for b1 being set
for b2, b3 being Relation-like Function-like set
st b2 in proj2 b3 &
(for b4 being Relation-like Function-like set
st b4 in proj2 b3
holds b1 in proj1 b4)
holds b1 in proj1 <:b3:>;
:: FUNCT_6:th 54
theorem
for b1, b2 being set
for b3, b4, b5 being Relation-like Function-like set
st b1 in proj1 b3 & b4 = b3 . b1 & b2 in proj1 <:b3:> & b5 = <:b3:> . b2
holds b4 . b2 = b5 . b1;
:: FUNCT_6:th 55
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set
st b1 in proj1 b3 & b3 . b1 is Relation-like Function-like set & b2 in proj1 <:b3:>
holds b3 ..(b1,b2) = <:b3:> ..(b2,b1);
:: FUNCT_6:funcnot 7 => FUNCT_6:func 7
definition
let a1 be Relation-like Function-like set;
func Frege A1 -> Relation-like Function-like set means
proj1 it = product doms a1 &
(for b1 being Relation-like Function-like set
st b1 in product doms a1
holds ex b2 being Relation-like Function-like set st
it . b1 = b2 &
proj1 b2 = a1 " SubFuncs proj2 a1 &
(for b3 being set
st b3 in proj1 b2
holds b2 . b3 = (uncurry a1) .(b3,b1 . b3)));
end;
:: FUNCT_6:def 7
theorem
for b1, b2 being Relation-like Function-like set holds
b2 = Frege b1
iff
proj1 b2 = product doms b1 &
(for b3 being Relation-like Function-like set
st b3 in product doms b1
holds ex b4 being Relation-like Function-like set st
b2 . b3 = b4 &
proj1 b4 = b1 " SubFuncs proj2 b1 &
(for b5 being set
st b5 in proj1 b4
holds b4 . b5 = (uncurry b1) .(b5,b3 . b5)));
:: FUNCT_6:th 56
theorem
for b1 being set
for b2, b3 being Relation-like Function-like set
st b2 in product doms b3 & b1 in proj1 b2
holds (Frege b3) ..(b2,b1) = b3 ..(b1,b2 . b1);
:: FUNCT_6:th 57
theorem
for b1 being set
for b2, b3, b4, b5 being Relation-like Function-like set
st b1 in proj1 b2 & b3 = b2 . b1 & b4 in product doms b2 & b5 = (Frege b2) . b4
holds b4 . b1 in proj1 b3 & b5 . b1 = b3 . (b4 . b1) & b5 in product rngs b2;
:: FUNCT_6:th 58
theorem
for b1 being Relation-like Function-like set holds
proj2 Frege b1 = product rngs b1;
:: FUNCT_6:th 59
theorem
for b1 being Relation-like Function-like set
st not {} in proj2 b1
holds Frege b1 is one-to-one
iff
for b2 being Relation-like Function-like set
st b2 in proj2 b1
holds b2 is one-to-one;
:: FUNCT_6:th 60
theorem
<:{}:> = {} &
Frege {} = {{}} --> {};
:: FUNCT_6:th 61
theorem
for b1 being Relation-like Function-like set holds
proj1 <:<*b1*>:> = proj1 b1 &
(for b2 being set
st b2 in proj1 b1
holds <:<*b1*>:> . b2 = <*b1 . b2*>);
:: FUNCT_6:th 62
theorem
for b1, b2 being Relation-like Function-like set holds
proj1 <:<*b1,b2*>:> = (proj1 b1) /\ proj1 b2 &
(for b3 being set
st b3 in (proj1 b1) /\ proj1 b2
holds <:<*b1,b2*>:> . b3 = <*b1 . b3,b2 . b3*>);
:: FUNCT_6:th 63
theorem
for b1 being set
for b2 being Relation-like Function-like set
st b1 <> {}
holds proj1 <:b1 --> b2:> = proj1 b2 &
(for b3 being set
st b3 in proj1 b2
holds <:b1 --> b2:> . b3 = b1 --> (b2 . b3));
:: FUNCT_6:th 64
theorem
for b1 being Relation-like Function-like set holds
proj1 Frege <*b1*> = product <*proj1 b1*> &
proj2 Frege <*b1*> = product <*proj2 b1*> &
(for b2 being set
st b2 in proj1 b1
holds (Frege <*b1*>) . <*b2*> = <*b1 . b2*>);
:: FUNCT_6:th 65
theorem
for b1, b2 being Relation-like Function-like set holds
proj1 Frege <*b1,b2*> = product <*proj1 b1,proj1 b2*> &
proj2 Frege <*b1,b2*> = product <*proj2 b1,proj2 b2*> &
(for b3, b4 being set
st b3 in proj1 b1 & b4 in proj1 b2
holds (Frege <*b1,b2*>) . <*b3,b4*> = <*b1 . b3,b2 . b4*>);
:: FUNCT_6:th 66
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
proj1 Frege (b1 --> b2) = Funcs(b1,proj1 b2) &
proj2 Frege (b1 --> b2) = Funcs(b1,proj2 b2) &
(for b3 being Relation-like Function-like set
st b3 in Funcs(b1,proj1 b2)
holds (Frege (b1 --> b2)) . b3 = b3 * b2);
:: FUNCT_6:th 67
theorem
for b1 being set
for b2, b3 being Relation-like Function-like set
st b1 in proj1 b2 & b1 in proj1 b3
for b4, b5 being set holds
<:b2,b3:> . b1 = [b4,b5]
iff
<:<*b2,b3*>:> . b1 = <*b4,b5*>;
:: FUNCT_6:th 68
theorem
for b1, b2 being set
for b3, b4 being Relation-like Function-like set
st b1 in proj1 b3 & b2 in proj1 b4
for b5, b6 being set holds
[:b3,b4:] .(b1,b2) = [b5,b6]
iff
(Frege <*b3,b4*>) . <*b1,b2*> = <*b5,b6*>;
:: FUNCT_6:th 69
theorem
for b1 being set
for b2, b3 being Relation-like Function-like set
st proj1 b2 = b1 &
proj1 b3 = b1 &
(for b4 being set
st b4 in b1
holds b2 . b4,b3 . b4 are_equipotent)
holds product b2,product b3 are_equipotent;
:: FUNCT_6:th 70
theorem
for b1, b2, b3 being Relation-like Function-like set
st proj1 b1 = proj1 b2 &
proj1 b3 = proj2 b2 &
b2 is one-to-one &
(for b4 being set
st b4 in proj1 b2
holds b1 . b4,b3 . (b2 . b4) are_equipotent)
holds product b1,product b3 are_equipotent;
:: FUNCT_6:th 71
theorem
for b1 being set
for b2 being Relation-like Function-like set
for b3 being Function-like quasi_total bijective Relation of b1,b1
st proj1 b2 = b1
holds product b2,product (b3 * b2) are_equipotent;
:: FUNCT_6:funcnot 8 => FUNCT_6:func 8
definition
let a1 be Relation-like Function-like set;
let a2 be set;
func Funcs(A1,A2) -> Relation-like Function-like set means
proj1 it = proj1 a1 &
(for b1 being set
st b1 in proj1 a1
holds it . b1 = Funcs(a1 . b1,a2));
end;
:: FUNCT_6:def 8
theorem
for b1 being Relation-like Function-like set
for b2 being set
for b3 being Relation-like Function-like set holds
b3 = Funcs(b1,b2)
iff
proj1 b3 = proj1 b1 &
(for b4 being set
st b4 in proj1 b1
holds b3 . b4 = Funcs(b1 . b4,b2));
:: FUNCT_6:th 72
theorem
for b1 being Relation-like Function-like set
st not {} in proj2 b1
holds Funcs(b1,{}) = (proj1 b1) --> {};
:: FUNCT_6:th 73
theorem
for b1 being set holds
Funcs({},b1) = {};
:: FUNCT_6:th 74
theorem
for b1, b2 being set holds
Funcs(<*b1*>,b2) = <*Funcs(b1,b2)*>;
:: FUNCT_6:th 75
theorem
for b1, b2, b3 being set holds
Funcs(<*b1,b2*>,b3) = <*Funcs(b1,b3),Funcs(b2,b3)*>;
:: FUNCT_6:th 76
theorem
for b1, b2, b3 being set holds
Funcs(b1 --> b2,b3) = b1 --> Funcs(b2,b3);
:: FUNCT_6:th 77
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
Funcs(Union disjoin b2,b1),product Funcs(b2,b1) are_equipotent;
:: FUNCT_6:funcnot 9 => FUNCT_6:func 9
definition
let a1 be set;
let a2 be Relation-like Function-like set;
func Funcs(A1,A2) -> Relation-like Function-like set means
proj1 it = proj1 a2 &
(for b1 being set
st b1 in proj1 a2
holds it . b1 = Funcs(a1,a2 . b1));
end;
:: FUNCT_6:def 9
theorem
for b1 being set
for b2, b3 being Relation-like Function-like set holds
b3 = Funcs(b1,b2)
iff
proj1 b3 = proj1 b2 &
(for b4 being set
st b4 in proj1 b2
holds b3 . b4 = Funcs(b1,b2 . b4));
:: FUNCT_6:th 78
theorem
for b1 being Relation-like Function-like set holds
Funcs({},b1) = (proj1 b1) --> {{}};
:: FUNCT_6:th 79
theorem
for b1 being set holds
Funcs(b1,{}) = {};
:: FUNCT_6:th 80
theorem
for b1, b2 being set holds
Funcs(b1,<*b2*>) = <*Funcs(b1,b2)*>;
:: FUNCT_6:th 81
theorem
for b1, b2, b3 being set holds
Funcs(b1,<*b2,b3*>) = <*Funcs(b1,b2),Funcs(b1,b3)*>;
:: FUNCT_6:th 82
theorem
for b1, b2, b3 being set holds
Funcs(b1,b2 --> b3) = b2 --> Funcs(b1,b3);
:: FUNCT_6:th 83
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
product Funcs(b1,b2),Funcs(b1,product b2) are_equipotent;
:: FUNCT_6:funcnot 10 => FUNCT_6:func 10
definition
let a1 be Relation-like Function-like set;
func commute A1 -> Relation-like Function-like Function-yielding set equals
curry' uncurry a1;
end;
:: FUNCT_6:def 12
theorem
for b1 being Relation-like Function-like set holds
commute b1 = curry' uncurry b1;
:: FUNCT_6:th 84
theorem
for b1 being Relation-like Function-like set
for b2 being set
st b2 in proj1 commute b1
holds (commute b1) . b2 is Relation-like Function-like set;
:: FUNCT_6:th 85
theorem
for b1, b2, b3 being set
for b4 being Relation-like Function-like set
st b1 <> {} & b2 <> {} & b4 in Funcs(b1,Funcs(b2,b3))
holds commute b4 in Funcs(b2,Funcs(b1,b3));
:: FUNCT_6:th 86
theorem
for b1, b2, b3 being set
for b4 being Relation-like Function-like set
st b1 <> {} & b2 <> {} & b4 in Funcs(b1,Funcs(b2,b3))
for b5, b6 being Relation-like Function-like set
for b7, b8 being set
st b7 in b1 & b8 in b2 & b4 . b7 = b5 & (commute b4) . b8 = b6
holds b6 . b7 = b5 . b8 & proj1 b6 = b1 & proj1 b5 = b2 & proj2 b6 c= b3 & proj2 b5 c= b3;
:: FUNCT_6:th 87
theorem
for b1, b2, b3 being set
for b4 being Relation-like Function-like set
st b1 <> {} & b2 <> {} & b4 in Funcs(b1,Funcs(b2,b3))
holds commute commute b4 = b4;
:: FUNCT_6:th 88
theorem
commute {} = {};
:: FUNCT_6:th 89
theorem
for b1 being Relation-like Function-like Function-yielding set holds
proj1 doms b1 = proj1 b1;
:: FUNCT_6:th 90
theorem
for b1 being Relation-like Function-like Function-yielding set holds
proj1 rngs b1 = proj1 b1;