Article FUNCT_3, MML version 4.99.1005

:: FUNCT_3:th 1
theorem
for b1, b2 being set
      st b1 c= b2
   holds id b1 = (id b2) | b1;

:: FUNCT_3:th 2
theorem
for b1 being set
for b2, b3 being Relation-like Function-like set
      st b1 c= proj1 (b2 * b3)
   holds b2 .: b1 c= proj1 b3;

:: FUNCT_3:th 3
theorem
for b1 being set
for b2, b3 being Relation-like Function-like set
      st b1 c= proj1 b2 & b2 .: b1 c= proj1 b3
   holds b1 c= proj1 (b2 * b3);

:: FUNCT_3:th 4
theorem
for b1 being set
for b2, b3 being Relation-like Function-like set
      st b1 c= proj2 (b2 * b3) & b3 is one-to-one
   holds b3 " b1 c= proj2 b2;

:: FUNCT_3:th 5
theorem
for b1 being set
for b2, b3 being Relation-like Function-like set
      st b1 c= proj2 b3 & b3 " b1 c= proj2 b2
   holds b1 c= proj2 (b2 * b3);

:: FUNCT_3:sch 1
scheme FUNCT_3:sch 1
{F1 -> set,
  F2 -> set}:
ex b1 being Relation-like Function-like set st
   proj1 b1 = [:F1(),F2():] &
    (for b2, b3 being set
          st b2 in F1() & b3 in F2()
       holds P1[b2, b3, b1 .(b2,b3)])
provided
   for b1, b2, b3, b4 being set
         st b1 in F1() & b2 in F2() & P1[b1, b2, b3] & P1[b1, b2, b4]
      holds b3 = b4
and
   for b1, b2 being set
         st b1 in F1() & b2 in F2()
      holds ex b3 being set st
         P1[b1, b2, b3];


:: FUNCT_3:sch 2
scheme FUNCT_3:sch 2
{F1 -> set,
  F2 -> set,
  F3 -> set}:
ex b1 being Relation-like Function-like set st
   proj1 b1 = [:F1(),F2():] &
    (for b2, b3 being set
          st b2 in F1() & b3 in F2()
       holds b1 .(b2,b3) = F3(b2, b3))


:: FUNCT_3:th 6
theorem
for b1, b2 being set
for b3, b4 being Relation-like Function-like set
      st proj1 b3 = [:b1,b2:] &
         proj1 b4 = [:b1,b2:] &
         (for b5, b6 being set
               st b5 in b1 & b6 in b2
            holds b3 .(b5,b6) = b4 .(b5,b6))
   holds b3 = b4;

:: FUNCT_3:funcnot 1 => FUNCT_3:func 1
definition
  let a1 be Relation-like Function-like set;
  func .: A1 -> Relation-like Function-like set means
    proj1 it = bool proj1 a1 &
     (for b1 being set
           st b1 c= proj1 a1
        holds it . b1 = a1 .: b1);
end;

:: FUNCT_3:def 1
theorem
for b1, b2 being Relation-like Function-like set holds
   b2 = .: b1
iff
   proj1 b2 = bool proj1 b1 &
    (for b3 being set
          st b3 c= proj1 b1
       holds b2 . b3 = b1 .: b3);

:: FUNCT_3:th 8
theorem
for b1 being set
for b2 being Relation-like Function-like set
      st b1 in proj1 .: b2
   holds (.: b2) . b1 = b2 .: b1;

:: FUNCT_3:th 9
theorem
for b1 being Relation-like Function-like set holds
   (.: b1) . {} = {};

:: FUNCT_3:th 10
theorem
for b1 being Relation-like Function-like set holds
   proj2 .: b1 c= bool proj2 b1;

:: FUNCT_3:th 12
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
   (.: b2) .: b1 c= bool proj2 b2;

:: FUNCT_3:th 13
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
   (.: b2) " b1 c= bool proj1 b2;

:: FUNCT_3:th 14
theorem
for b1, b2 being set
for b3 being non empty set
for b4 being Function-like quasi_total Relation of b1,b3 holds
   (.: b4) " b2 c= bool b1;

:: FUNCT_3:th 15
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
   union ((.: b2) .: b1) c= b2 .: union b1;

:: FUNCT_3:th 16
theorem
for b1 being set
for b2 being Relation-like Function-like set
      st b1 c= bool proj1 b2
   holds b2 .: union b1 = union ((.: b2) .: b1);

:: FUNCT_3:th 17
theorem
for b1, b2 being set
for b3 being non empty set
for b4 being Function-like quasi_total Relation of b1,b3
      st b2 c= bool b1
   holds b4 .: union b2 = union ((.: b4) .: b2);

:: FUNCT_3:th 18
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
   union ((.: b2) " b1) c= b2 " union b1;

:: FUNCT_3:th 19
theorem
for b1 being set
for b2 being Relation-like Function-like set
      st b1 c= bool proj2 b2
   holds b2 " union b1 = union ((.: b2) " b1);

:: FUNCT_3:th 20
theorem
for b1, b2 being Relation-like Function-like set holds
.: (b1 * b2) = (.: b1) * .: b2;

:: FUNCT_3:th 21
theorem
for b1 being Relation-like Function-like set holds
   .: b1 is Function-like quasi_total Relation of bool proj1 b1,bool proj2 b1;

:: FUNCT_3:th 22
theorem
for b1, b2 being set
for b3 being Function-like quasi_total Relation of b1,b2
      st (b2 = {} implies b1 = {})
   holds .: b3 is Function-like quasi_total Relation of bool b1,bool b2;

:: FUNCT_3:funcnot 2 => FUNCT_3:func 2
definition
  let a1 be set;
  let a2 be non empty set;
  let a3 be Function-like quasi_total Relation of a1,a2;
  redefine func .: a3 -> Function-like quasi_total Relation of bool a1,bool a2;
end;

:: FUNCT_3:funcnot 3 => FUNCT_3:func 3
definition
  let a1 be Relation-like Function-like set;
  func " A1 -> Relation-like Function-like set means
    proj1 it = bool proj2 a1 &
     (for b1 being set
           st b1 c= proj2 a1
        holds it . b1 = a1 " b1);
end;

:: FUNCT_3:def 2
theorem
for b1, b2 being Relation-like Function-like set holds
   b2 = " b1
iff
   proj1 b2 = bool proj2 b1 &
    (for b3 being set
          st b3 c= proj2 b1
       holds b2 . b3 = b1 " b3);

:: FUNCT_3:th 24
theorem
for b1 being set
for b2 being Relation-like Function-like set
      st b1 in proj1 " b2
   holds (" b2) . b1 = b2 " b1;

:: FUNCT_3:th 25
theorem
for b1 being Relation-like Function-like set holds
   proj2 " b1 c= bool proj1 b1;

:: FUNCT_3:th 27
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
   (" b2) .: b1 c= bool proj1 b2;

:: FUNCT_3:th 28
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
   (" b2) " b1 c= bool proj2 b2;

:: FUNCT_3:th 29
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
   union ((" b2) .: b1) c= b2 " union b1;

:: FUNCT_3:th 30
theorem
for b1 being set
for b2 being Relation-like Function-like set
      st b1 c= bool proj2 b2
   holds union ((" b2) .: b1) = b2 " union b1;

:: FUNCT_3:th 31
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
   union ((" b2) " b1) c= b2 .: union b1;

:: FUNCT_3:th 32
theorem
for b1 being set
for b2 being Relation-like Function-like set
      st b1 c= bool proj1 b2 & b2 is one-to-one
   holds union ((" b2) " b1) = b2 .: union b1;

:: FUNCT_3:th 33
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
   (" b2) .: b1 c= (.: b2) " b1;

:: FUNCT_3:th 34
theorem
for b1 being set
for b2 being Relation-like Function-like set
      st b2 is one-to-one
   holds (" b2) .: b1 = (.: b2) " b1;

:: FUNCT_3:th 35
theorem
for b1 being Relation-like Function-like set
for b2 being set
      st b2 c= bool proj1 b1
   holds (" b1) " b2 c= (.: b1) .: b2;

:: FUNCT_3:th 36
theorem
for b1 being Relation-like Function-like set
for b2 being set
      st b1 is one-to-one
   holds (.: b1) .: b2 c= (" b1) " b2;

:: FUNCT_3:th 37
theorem
for b1 being Relation-like Function-like set
for b2 being set
      st b1 is one-to-one & b2 c= bool proj1 b1
   holds (" b1) " b2 = (.: b1) .: b2;

:: FUNCT_3:th 38
theorem
for b1, b2 being Relation-like Function-like set
      st b2 is one-to-one
   holds " (b1 * b2) = (" b2) * " b1;

:: FUNCT_3:th 39
theorem
for b1 being Relation-like Function-like set holds
   " b1 is Function-like quasi_total Relation of bool proj2 b1,bool proj1 b1;

:: FUNCT_3:funcnot 4 => FUNCT_3:func 4
definition
  let a1, a2 be set;
  func chi(A1,A2) -> Relation-like Function-like set means
    proj1 it = a2 &
     (for b1 being set
           st b1 in a2
        holds (b1 in a1 implies it . b1 = 1) & (b1 in a1 or it . b1 = {}));
end;

:: FUNCT_3:def 3
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set holds
      b3 = chi(b1,b2)
   iff
      proj1 b3 = b2 &
       (for b4 being set
             st b4 in b2
          holds (b4 in b1 implies b3 . b4 = 1) & (b4 in b1 or b3 . b4 = {}));

:: FUNCT_3:th 42
theorem
for b1, b2, b3 being set
      st (chi(b2,b3)) . b1 = 1
   holds b1 in b2;

:: FUNCT_3:th 43
theorem
for b1, b2, b3 being set
      st b1 in b2 \ b3
   holds (chi(b3,b2)) . b1 = {};

:: FUNCT_3:th 47
theorem
for b1, b2, b3 being set
      st b1 c= b2 & b3 c= b2 & chi(b1,b2) = chi(b3,b2)
   holds b1 = b3;

:: FUNCT_3:th 48
theorem
for b1, b2 being set holds
proj2 chi(b1,b2) c= {{},1};

:: FUNCT_3:th 49
theorem
for b1 being set
for b2 being Function-like quasi_total Relation of b1,{{},1} holds
   b2 = chi(b2 " {1},b1);

:: FUNCT_3:funcnot 5 => FUNCT_3:func 5
definition
  let a1, a2 be set;
  redefine func chi(a1,a2) -> Function-like quasi_total Relation of a2,{{},1};
end;

:: FUNCT_3:funcnot 6 => RELAT_1:func 6
notation
  let a1 be set;
  let a2 be Element of bool a1;
  synonym incl a2 for id a1;
end;

:: FUNCT_3:funcnot 7 => FUNCT_3:func 6
definition
  let a1 be set;
  let a2 be Element of bool a1;
  redefine func incl a2 -> Function-like quasi_total Relation of a2,a1;
end;

:: FUNCT_3:th 53
theorem
for b1 being set
for b2 being Element of bool b1 holds
   incl b2 = (id b1) | b2;

:: FUNCT_3:th 56
theorem
for b1, b2 being set
for b3 being Element of bool b2
      st b1 in b3
   holds (incl b3) . b1 in b2;

:: FUNCT_3:funcnot 8 => FUNCT_3:func 7
definition
  let a1, a2 be set;
  func pr1(A1,A2) -> Relation-like Function-like set means
    proj1 it = [:a1,a2:] &
     (for b1, b2 being set
           st b1 in a1 & b2 in a2
        holds it .(b1,b2) = b1);
end;

:: FUNCT_3:def 5
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set holds
      b3 = pr1(b1,b2)
   iff
      proj1 b3 = [:b1,b2:] &
       (for b4, b5 being set
             st b4 in b1 & b5 in b2
          holds b3 .(b4,b5) = b4);

:: FUNCT_3:funcnot 9 => FUNCT_3:func 8
definition
  let a1, a2 be set;
  func pr2(A1,A2) -> Relation-like Function-like set means
    proj1 it = [:a1,a2:] &
     (for b1, b2 being set
           st b1 in a1 & b2 in a2
        holds it .(b1,b2) = b2);
end;

:: FUNCT_3:def 6
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set holds
      b3 = pr2(b1,b2)
   iff
      proj1 b3 = [:b1,b2:] &
       (for b4, b5 being set
             st b4 in b1 & b5 in b2
          holds b3 .(b4,b5) = b5);

:: FUNCT_3:th 59
theorem
for b1, b2 being set holds
proj2 pr1(b1,b2) c= b1;

:: FUNCT_3:th 60
theorem
for b1, b2 being set
      st b1 <> {}
   holds proj2 pr1(b2,b1) = b2;

:: FUNCT_3:th 61
theorem
for b1, b2 being set holds
proj2 pr2(b1,b2) c= b2;

:: FUNCT_3:th 62
theorem
for b1, b2 being set
      st b1 <> {}
   holds proj2 pr2(b1,b2) = b2;

:: FUNCT_3:funcnot 10 => FUNCT_3:func 9
definition
  let a1, a2 be set;
  redefine func pr1(a1,a2) -> Function-like quasi_total Relation of [:a1,a2:],a1;
end;

:: FUNCT_3:funcnot 11 => FUNCT_3:func 10
definition
  let a1, a2 be set;
  redefine func pr2(a1,a2) -> Function-like quasi_total Relation of [:a1,a2:],a2;
end;

:: FUNCT_3:funcnot 12 => FUNCT_3:func 11
definition
  let a1 be set;
  func delta A1 -> Relation-like Function-like set means
    proj1 it = a1 &
     (for b1 being set
           st b1 in a1
        holds it . b1 = [b1,b1]);
end;

:: FUNCT_3:def 7
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
      b2 = delta b1
   iff
      proj1 b2 = b1 &
       (for b3 being set
             st b3 in b1
          holds b2 . b3 = [b3,b3]);

:: FUNCT_3:th 66
theorem
for b1 being set holds
   proj2 delta b1 c= [:b1,b1:];

:: FUNCT_3:funcnot 13 => FUNCT_3:func 12
definition
  let a1 be set;
  redefine func delta a1 -> Function-like quasi_total Relation of a1,[:a1,a1:];
end;

:: FUNCT_3:funcnot 14 => FUNCT_3:func 13
definition
  let a1, a2 be Relation-like Function-like set;
  func <:A1,A2:> -> Relation-like Function-like set means
    proj1 it = (proj1 a1) /\ proj1 a2 &
     (for b1 being set
           st b1 in proj1 it
        holds it . b1 = [a1 . b1,a2 . b1]);
end;

:: FUNCT_3:def 8
theorem
for b1, b2, b3 being Relation-like Function-like set holds
   b3 = <:b1,b2:>
iff
   proj1 b3 = (proj1 b1) /\ proj1 b2 &
    (for b4 being set
          st b4 in proj1 b3
       holds b3 . b4 = [b1 . b4,b2 . b4]);

:: FUNCT_3:th 68
theorem
for b1 being set
for b2, b3 being Relation-like Function-like set
      st b1 in (proj1 b2) /\ proj1 b3
   holds <:b2,b3:> . b1 = [b2 . b1,b3 . b1];

:: FUNCT_3:th 69
theorem
for b1, b2 being set
for b3, b4 being Relation-like Function-like set
      st proj1 b3 = b2 & proj1 b4 = b2 & b1 in b2
   holds <:b3,b4:> . b1 = [b3 . b1,b4 . b1];

:: FUNCT_3:th 70
theorem
for b1 being set
for b2, b3 being Relation-like Function-like set
      st proj1 b2 = b1 & proj1 b3 = b1
   holds proj1 <:b2,b3:> = b1;

:: FUNCT_3:th 71
theorem
for b1, b2 being Relation-like Function-like set holds
proj2 <:b1,b2:> c= [:proj2 b1,proj2 b2:];

:: FUNCT_3:th 72
theorem
for b1, b2 being set
for b3, b4 being Relation-like Function-like set
      st proj1 b3 = proj1 b4 & proj2 b3 c= b1 & proj2 b4 c= b2
   holds <:b3,b4:> * pr1(b1,b2) = b3 & <:b3,b4:> * pr2(b1,b2) = b4;

:: FUNCT_3:th 73
theorem
for b1, b2 being set holds
<:pr1(b1,b2),pr2(b1,b2):> = id [:b1,b2:];

:: FUNCT_3:th 74
theorem
for b1, b2, b3, b4 being Relation-like Function-like set
      st proj1 b1 = proj1 b2 & proj1 b4 = proj1 b3 & <:b1,b2:> = <:b4,b3:>
   holds b1 = b4 & b2 = b3;

:: FUNCT_3:th 75
theorem
for b1, b2, b3 being Relation-like Function-like set holds
<:b3 * b1,b3 * b2:> = b3 * <:b1,b2:>;

:: FUNCT_3:th 76
theorem
for b1 being set
for b2, b3 being Relation-like Function-like set holds
<:b2,b3:> .: b1 c= [:b2 .: b1,b3 .: b1:];

:: FUNCT_3:th 77
theorem
for b1 being set
for b2 being non empty set
for b3, b4 being Relation-like Function-like set holds
<:b3,b4:> " [:b1,b2:] = (b3 " b1) /\ (b4 " b2);

:: FUNCT_3:th 78
theorem
for b1, b2, b3 being set
for b4 being Function-like quasi_total Relation of b1,b2
for b5 being Function-like quasi_total Relation of b1,b3
      st (b2 = {} implies b1 = {}) & (b3 = {} implies b1 = {})
   holds <:b4,b5:> is Function-like quasi_total Relation of b1,[:b2,b3:];

:: FUNCT_3:funcnot 15 => FUNCT_3:func 14
definition
  let a1 be set;
  let a2, a3 be non empty set;
  let a4 be Function-like quasi_total Relation of a1,a2;
  let a5 be Function-like quasi_total Relation of a1,a3;
  redefine func <:a4, a5:> -> Function-like quasi_total Relation of a1,[:a2,a3:];
end;

:: FUNCT_3:th 79
theorem
for b1, b2, b3 being non empty set
for b4 being Function-like quasi_total Relation of b1,b2
for b5 being Function-like quasi_total Relation of b1,b3
for b6 being Element of b1 holds
   <:b4,b5:> . b6 = [b4 . b6,b5 . b6];

:: FUNCT_3:th 80
theorem
for b1, b2, b3 being set
for b4 being Function-like quasi_total Relation of b1,b2
for b5 being Function-like quasi_total Relation of b1,b3 holds
   proj2 <:b4,b5:> c= [:b2,b3:];

:: FUNCT_3:th 81
theorem
for b1, b2, b3 being set
for b4 being Function-like quasi_total Relation of b1,b2
for b5 being Function-like quasi_total Relation of b1,b3
      st (b2 = {} implies b1 = {}) & (b3 = {} implies b1 = {})
   holds <:b4,b5:> * pr1(b2,b3) = b4 & <:b4,b5:> * pr2(b2,b3) = b5;

:: FUNCT_3:th 82
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being Function-like quasi_total Relation of b1,b2
for b5 being Function-like quasi_total Relation of b1,b3 holds
   <:b4,b5:> * pr1(b2,b3) = b4 & <:b4,b5:> * pr2(b2,b3) = b5;

:: FUNCT_3:th 83
theorem
for b1, b2, b3 being set
for b4, b5 being Function-like quasi_total Relation of b1,b2
for b6, b7 being Function-like quasi_total Relation of b1,b3
      st (b2 = {} implies b1 = {}) & (b3 = {} implies b1 = {}) & <:b4,b6:> = <:b5,b7:>
   holds b4 = b5 & b6 = b7;

:: FUNCT_3:th 84
theorem
for b1 being set
for b2, b3 being non empty set
for b4, b5 being Function-like quasi_total Relation of b1,b2
for b6, b7 being Function-like quasi_total Relation of b1,b3
      st <:b4,b6:> = <:b5,b7:>
   holds b4 = b5 & b6 = b7;

:: FUNCT_3:funcnot 16 => FUNCT_3:func 15
definition
  let a1, a2 be Relation-like Function-like set;
  func [:A1,A2:] -> Relation-like Function-like set means
    proj1 it = [:proj1 a1,proj1 a2:] &
     (for b1, b2 being set
           st b1 in proj1 a1 & b2 in proj1 a2
        holds it .(b1,b2) = [a1 . b1,a2 . b2]);
end;

:: FUNCT_3:def 9
theorem
for b1, b2, b3 being Relation-like Function-like set holds
   b3 = [:b1,b2:]
iff
   proj1 b3 = [:proj1 b1,proj1 b2:] &
    (for b4, b5 being set
          st b4 in proj1 b1 & b5 in proj1 b2
       holds b3 .(b4,b5) = [b1 . b4,b2 . b5]);

:: FUNCT_3:th 86
theorem
for b1, b2 being Relation-like Function-like set
for b3, b4 being set
      st [b3,b4] in [:proj1 b1,proj1 b2:]
   holds [:b1,b2:] .(b3,b4) = [b1 . b3,b2 . b4];

:: FUNCT_3:th 87
theorem
for b1, b2 being Relation-like Function-like set holds
[:b1,b2:] = <:(pr1(proj1 b1,proj1 b2)) * b1,(pr2(proj1 b1,proj1 b2)) * b2:>;

:: FUNCT_3:th 88
theorem
for b1, b2 being Relation-like Function-like set holds
proj2 [:b1,b2:] = [:proj2 b1,proj2 b2:];

:: FUNCT_3:th 89
theorem
for b1 being set
for b2, b3 being Relation-like Function-like set
      st proj1 b2 = b1 & proj1 b3 = b1
   holds <:b2,b3:> = (delta b1) * [:b2,b3:];

:: FUNCT_3:th 90
theorem
for b1, b2 being set holds
[:id b1,id b2:] = id [:b1,b2:];

:: FUNCT_3:th 91
theorem
for b1, b2, b3, b4 being Relation-like Function-like set holds
<:b2,b4:> * [:b1,b3:] = <:b2 * b1,b4 * b3:>;

:: FUNCT_3:th 92
theorem
for b1, b2, b3, b4 being Relation-like Function-like set holds
[:b2,b4:] * [:b1,b3:] = [:b2 * b1,b4 * b3:];

:: FUNCT_3:th 93
theorem
for b1, b2 being set
for b3, b4 being Relation-like Function-like set holds
[:b3,b4:] .: [:b1,b2:] = [:b3 .: b1,b4 .: b2:];

:: FUNCT_3:th 94
theorem
for b1, b2 being set
for b3, b4 being Relation-like Function-like set holds
[:b3,b4:] " [:b1,b2:] = [:b3 " b1,b4 " b2:];

:: FUNCT_3:th 95
theorem
for b1, b2, b3, b4 being set
for b5 being Function-like quasi_total Relation of b1,b2
for b6 being Function-like quasi_total Relation of b3,b4 holds
   [:b5,b6:] is Function-like quasi_total Relation of [:b1,b3:],[:b2,b4:];

:: FUNCT_3:funcnot 17 => FUNCT_3:func 16
definition
  let a1, a2, a3, a4 be set;
  let a5 be Function-like quasi_total Relation of a1,a3;
  let a6 be Function-like quasi_total Relation of a2,a4;
  redefine func [:a5, a6:] -> Function-like quasi_total Relation of [:a1,a2:],[:a3,a4:];
end;

:: FUNCT_3:th 96
theorem
for b1, b2, b3, b4 being non empty set
for b5 being Function-like quasi_total Relation of b1,b2
for b6 being Function-like quasi_total Relation of b3,b4
for b7 being Element of b1
for b8 being Element of b3 holds
   [:b5,b6:] .(b7,b8) = [b5 . b7,b6 . b8];

:: FUNCT_3:th 97
theorem
for b1, b2, b3, b4 being set
for b5 being Function-like quasi_total Relation of b1,b2
for b6 being Function-like quasi_total Relation of b3,b4
      st (b2 = {} implies b1 = {}) & (b4 = {} implies b3 = {})
   holds [:b5,b6:] = <:(pr1(b1,b3)) * b5,(pr2(b1,b3)) * b6:>;

:: FUNCT_3:th 98
theorem
for b1, b2 being set
for b3, b4 being non empty set
for b5 being Function-like quasi_total Relation of b1,b3
for b6 being Function-like quasi_total Relation of b2,b4 holds
   [:b5,b6:] = <:(pr1(b1,b2)) * b5,(pr2(b1,b2)) * b6:>;

:: FUNCT_3:th 99
theorem
for b1, b2, b3 being set
for b4 being Function-like quasi_total Relation of b1,b2
for b5 being Function-like quasi_total Relation of b1,b3 holds
   <:b4,b5:> = (delta b1) * [:b4,b5:];

:: FUNCT_3:th 100
theorem
for b1 being Relation-like Function-like set holds
   (pr1(proj1 b1,proj2 b1)) .: b1 = proj1 b1;