Article PARTFUN1, MML version 4.99.1005

:: PARTFUN1:th 2
theorem
for b1, b2 being Relation-like Function-like set
      st for b3 being set
              st b3 in (proj1 b1) /\ proj1 b2
           holds b1 . b3 = b2 . b3
   holds ex b3 being Relation-like Function-like set st
      b1 \/ b2 = b3;

:: PARTFUN1:th 3
theorem
for b1, b2, b3 being Relation-like Function-like set
   st b1 \/ b2 = b3
for b4 being set
      st b4 in (proj1 b1) /\ proj1 b2
   holds b1 . b4 = b2 . b4;

:: PARTFUN1:sch 1
scheme PARTFUN1:sch 1
{F1 -> set,
  F2 -> set,
  F3 -> set}:
ex b1 being Relation-like Function-like set st
   proj1 b1 = F1() &
    (for b2 being set
          st b2 in F1()
       holds (P1[b2] implies b1 . b2 = F2(b2)) & (P1[b2] or b1 . b2 = F3(b2)))


:: PARTFUN1:exreg 1
registration
  cluster Relation-like Function-like empty set;
end;

:: PARTFUN1:exreg 2
registration
  let a1, a2 be set;
  cluster Relation-like Function-like Relation of a1,a2;
end;

:: PARTFUN1:modenot 1
definition
  let a1, a2 be set;
  mode PartFunc of a1,a2 is Function-like Relation of a1,a2;
end;

:: PARTFUN1:th 24
theorem
for b1 being Relation-like Function-like set holds
   b1 is Function-like Relation of proj1 b1,proj2 b1;

:: PARTFUN1:th 25
theorem
for b1 being set
for b2 being Relation-like Function-like set
      st proj2 b2 c= b1
   holds b2 is Function-like Relation of proj1 b2,b1;

:: PARTFUN1:th 26
theorem
for b1, b2, b3 being set
for b4 being Function-like Relation of b1,b2
      st b3 in proj2 b4
   holds ex b5 being Element of b1 st
      b5 in dom b4 & b3 = b4 . b5;

:: PARTFUN1:th 27
theorem
for b1, b2, b3 being set
for b4 being Function-like Relation of b1,b2
      st b3 in dom b4
   holds b4 . b3 in b2;

:: PARTFUN1:th 28
theorem
for b1, b2, b3 being set
for b4 being Function-like Relation of b1,b2
      st dom b4 c= b3
   holds b4 is Function-like Relation of b3,b2;

:: PARTFUN1:th 29
theorem
for b1, b2, b3 being set
for b4 being Function-like Relation of b1,b2
      st proj2 b4 c= b3
   holds b4 is Function-like Relation of b1,b3;

:: PARTFUN1:th 30
theorem
for b1, b2, b3 being set
for b4 being Function-like Relation of b1,b2
      st b1 c= b3
   holds b4 is Function-like Relation of b3,b2;

:: PARTFUN1:th 31
theorem
for b1, b2, b3 being set
for b4 being Function-like Relation of b1,b2
      st b2 c= b3
   holds b4 is Function-like Relation of b1,b3;

:: PARTFUN1:th 32
theorem
for b1, b2, b3, b4 being set
for b5 being Function-like Relation of b1,b2
      st b1 c= b3 & b2 c= b4
   holds b5 is Function-like Relation of b3,b4;

:: PARTFUN1:th 33
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set
for b4 being Function-like Relation of b1,b2
      st b3 c= b4
   holds b3 is Function-like Relation of b1,b2;

:: PARTFUN1:th 34
theorem
for b1, b2 being set
for b3, b4 being Function-like Relation of b1,b2
      st dom b3 = dom b4 &
         (for b5 being Element of b1
               st b5 in dom b3
            holds b3 . b5 = b4 . b5)
   holds b3 = b4;

:: PARTFUN1:sch 2
scheme PARTFUN1:sch 2
{F1 -> set,
  F2 -> set}:
ex b1 being Function-like Relation of F1(),F2() st
   (for b2 being set holds
          b2 in dom b1
       iff
          b2 in F1() &
           (ex b3 being set st
              P1[b2, b3])) &
    (for b2 being set
          st b2 in dom b1
       holds P1[b2, b1 . b2])
provided
   for b1, b2 being set
         st b1 in F1() & P1[b1, b2]
      holds b2 in F2()
and
   for b1, b2, b3 being set
         st b1 in F1() & P1[b1, b2] & P1[b1, b3]
      holds b2 = b3;


:: PARTFUN1:sch 3
scheme PARTFUN1:sch 3
{F1 -> set,
  F2 -> set,
  F3 -> set}:
ex b1 being Function-like Relation of F1(),F2() st
   (for b2 being set holds
          b2 in dom b1
       iff
          b2 in F1() & P1[b2]) &
    (for b2 being set
          st b2 in dom b1
       holds b1 . b2 = F3(b2))
provided
   for b1 being set
         st P1[b1]
      holds F3(b1) in F2();


:: PARTFUN1:funcnot 1 => PARTFUN1:func 1
definition
  let a1, a2, a3, a4 be set;
  let a5 be Function-like Relation of a1,a2;
  let a6 be Function-like Relation of a3,a4;
  redefine func a6 * a5 -> Function-like Relation of a1,a4;
end;

:: PARTFUN1:th 36
theorem
for b1, b2 being set
for b3 being Relation of b1,b2 holds
   (id b1) * b3 = b3;

:: PARTFUN1:th 37
theorem
for b1, b2 being set
for b3 being Relation of b1,b2 holds
   b3 * id b2 = b3;

:: PARTFUN1:th 38
theorem
for b1, b2 being set
for b3 being Function-like Relation of b1,b2
      st for b4, b5 being Element of b1
              st b4 in dom b3 & b5 in dom b3 & b3 . b4 = b3 . b5
           holds b4 = b5
   holds b3 is one-to-one;

:: PARTFUN1:th 39
theorem
for b1, b2 being set
for b3 being Function-like Relation of b1,b2
      st b3 is one-to-one
   holds b3 " is Function-like Relation of b2,b1;

:: PARTFUN1:th 43
theorem
for b1, b2, b3 being set
for b4 being Function-like Relation of b1,b2 holds
   b4 | b3 is Function-like Relation of b3,b2;

:: PARTFUN1:th 44
theorem
for b1, b2, b3 being set
for b4 being Function-like Relation of b1,b2 holds
   b4 | b3 is Function-like Relation of b1,b2;

:: PARTFUN1:funcnot 2 => PARTFUN1:func 2
definition
  let a1, a2 be set;
  let a3 be Function-like Relation of a1,a2;
  let a4 be set;
  redefine func a3 | a4 -> Function-like Relation of a1,a2;
end;

:: PARTFUN1:th 45
theorem
for b1, b2, b3 being set
for b4 being Function-like Relation of b1,b2 holds
   b3 | b4 is Function-like Relation of b1,b3;

:: PARTFUN1:th 46
theorem
for b1, b2, b3 being set
for b4 being Function-like Relation of b1,b2 holds
   b3 | b4 is Function-like Relation of b1,b2;

:: PARTFUN1:th 47
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set holds
   (b1 | b3) | b2 is Function-like Relation of b2,b1;

:: PARTFUN1:th 49
theorem
for b1, b2, b3 being set
for b4 being Function-like Relation of b1,b2
      st b3 in b4 .: b1
   holds ex b5 being Element of b1 st
      b5 in dom b4 & b3 = b4 . b5;

:: PARTFUN1:th 51
theorem
for b1, b2 being set
for b3 being Function-like Relation of b1,b2 holds
   b3 .: b1 = proj2 b3;

:: PARTFUN1:th 53
theorem
for b1, b2 being set
for b3 being Function-like Relation of b1,b2 holds
   b3 " b2 = dom b3;

:: PARTFUN1:th 54
theorem
for b1 being set
for b2 being Function-like Relation of {},b1 holds
   dom b2 = {} & proj2 b2 = {};

:: PARTFUN1:th 55
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set
      st proj1 b3 = {}
   holds b3 is Function-like Relation of b1,b2;

:: PARTFUN1:th 56
theorem
for b1, b2 being set holds
{} is Function-like Relation of b1,b2;

:: PARTFUN1:th 57
theorem
for b1 being set
for b2 being Function-like Relation of {},b1 holds
   b2 = {};

:: PARTFUN1:th 58
theorem
for b1, b2 being set
for b3 being Function-like Relation of {},b1
for b4 being Function-like Relation of {},b2 holds
   b3 = b4;

:: PARTFUN1:th 59
theorem
for b1 being set
for b2 being Function-like Relation of {},b1 holds
   b2 is one-to-one;

:: PARTFUN1:th 60
theorem
for b1, b2 being set
for b3 being Function-like Relation of {},b1 holds
   b3 .: b2 = {};

:: PARTFUN1:th 61
theorem
for b1, b2 being set
for b3 being Function-like Relation of {},b1 holds
   b3 " b2 = {};

:: PARTFUN1:th 62
theorem
for b1 being set
for b2 being Function-like Relation of b1,{} holds
   dom b2 = {} & proj2 b2 = {};

:: PARTFUN1:th 63
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set
      st proj2 b3 = {}
   holds b3 is Function-like Relation of b1,b2;

:: PARTFUN1:th 64
theorem
for b1 being set
for b2 being Function-like Relation of b1,{} holds
   b2 = {};

:: PARTFUN1:th 65
theorem
for b1, b2 being set
for b3 being Function-like Relation of b1,{}
for b4 being Function-like Relation of b2,{} holds
   b3 = b4;

:: PARTFUN1:th 66
theorem
for b1 being set
for b2 being Function-like Relation of b1,{} holds
   b2 is one-to-one;

:: PARTFUN1:th 67
theorem
for b1, b2 being set
for b3 being Function-like Relation of b1,{} holds
   b3 .: b2 = {};

:: PARTFUN1:th 68
theorem
for b1, b2 being set
for b3 being Function-like Relation of b1,{} holds
   b3 " b2 = {};

:: PARTFUN1:th 69
theorem
for b1, b2 being set
for b3 being Function-like Relation of {b1},b2 holds
   proj2 b3 c= {b3 . b1};

:: PARTFUN1:th 70
theorem
for b1, b2 being set
for b3 being Function-like Relation of {b1},b2 holds
   b3 is one-to-one;

:: PARTFUN1:th 71
theorem
for b1, b2, b3 being set
for b4 being Function-like Relation of {b1},b2 holds
   b4 .: b3 c= {b4 . b1};

:: PARTFUN1:th 72
theorem
for b1, b2, b3 being set
for b4 being Relation-like Function-like set
      st proj1 b4 = {b1} & b1 in b2 & b4 . b1 in b3
   holds b4 is Function-like Relation of b2,b3;

:: PARTFUN1:th 73
theorem
for b1, b2, b3 being set
for b4 being Function-like Relation of b1,{b2}
      st b3 in dom b4
   holds b4 . b3 = b2;

:: PARTFUN1:th 74
theorem
for b1, b2 being set
for b3, b4 being Function-like Relation of b1,{b2}
      st dom b3 = dom b4
   holds b3 = b4;

:: PARTFUN1:funcnot 3 => PARTFUN1:func 3
definition
  let a1 be Relation-like Function-like set;
  let a2, a3 be set;
  func <:A1,A2,A3:> -> Function-like Relation of a2,a3 equals
    (a3 | a1) | a2;
end;

:: PARTFUN1:def 3
theorem
for b1 being Relation-like Function-like set
for b2, b3 being set holds
<:b1,b2,b3:> = (b3 | b1) | b2;

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

:: PARTFUN1:th 77
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set holds
   dom <:b3,b1,b2:> c= proj1 b3 & proj2 <:b3,b1,b2:> c= proj2 b3;

:: PARTFUN1:th 78
theorem
for b1, b2, b3 being set
for b4 being Relation-like Function-like set holds
      b1 in dom <:b4,b2,b3:>
   iff
      b1 in proj1 b4 & b1 in b2 & b4 . b1 in b3;

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

:: PARTFUN1:th 80
theorem
for b1, b2, b3 being set
for b4 being Relation-like Function-like set
      st b1 in dom <:b4,b2,b3:>
   holds <:b4,b2,b3:> . b1 = b4 . b1;

:: PARTFUN1:th 81
theorem
for b1, b2 being set
for b3, b4 being Relation-like Function-like set
      st b3 c= b4
   holds <:b3,b1,b2:> c= <:b4,b1,b2:>;

:: PARTFUN1:th 82
theorem
for b1, b2, b3 being set
for b4 being Relation-like Function-like set
      st b1 c= b2
   holds <:b4,b1,b3:> c= <:b4,b2,b3:>;

:: PARTFUN1:th 83
theorem
for b1, b2, b3 being set
for b4 being Relation-like Function-like set
      st b1 c= b2
   holds <:b4,b3,b1:> c= <:b4,b3,b2:>;

:: PARTFUN1:th 84
theorem
for b1, b2, b3, b4 being set
for b5 being Relation-like Function-like set
      st b1 c= b2 & b3 c= b4
   holds <:b5,b1,b3:> c= <:b5,b2,b4:>;

:: PARTFUN1:th 85
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set
      st proj1 b3 c= b1 & proj2 b3 c= b2
   holds b3 = <:b3,b1,b2:>;

:: PARTFUN1:th 86
theorem
for b1 being Relation-like Function-like set holds
   b1 = <:b1,proj1 b1,proj2 b1:>;

:: PARTFUN1:th 87
theorem
for b1, b2 being set
for b3 being Function-like Relation of b1,b2 holds
   <:b3,b1,b2:> = b3;

:: PARTFUN1:th 91
theorem
for b1, b2 being set holds
<:{},b1,b2:> = {};

:: PARTFUN1:th 92
theorem
for b1, b2, b3 being set
for b4, b5 being Relation-like Function-like set holds
<:b5,b1,b2:> * <:b4,b3,b1:> c= <:b4 * b5,b3,b2:>;

:: PARTFUN1:th 93
theorem
for b1, b2, b3 being set
for b4, b5 being Relation-like Function-like set
      st (proj2 b4) /\ proj1 b5 c= b1
   holds <:b5,b1,b2:> * <:b4,b3,b1:> = <:b4 * b5,b3,b2:>;

:: PARTFUN1:th 94
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set
      st b3 is one-to-one
   holds <:b3,b1,b2:> is one-to-one;

:: PARTFUN1:th 95
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set
      st b3 is one-to-one
   holds <:b3,b1,b2:> " = <:b3 ",b2,b1:>;

:: PARTFUN1:th 97
theorem
for b1, b2, b3 being set
for b4 being Relation-like Function-like set holds
   b1 | <:b4,b2,b3:> = <:b4,b2,b1 /\ b3:>;

:: PARTFUN1:attrnot 1 => PARTFUN1:attr 1
definition
  let a1, a2 be set;
  let a3 be Relation of a1,a2;
  attr a3 is total means
    dom a3 = a1;
end;

:: PARTFUN1:dfs 2
definiens
  let a1, a2 be set;
  let a3 be Relation of a1,a2;
To prove
     a3 is total
it is sufficient to prove
  thus dom a3 = a1;

:: PARTFUN1:def 4
theorem
for b1, b2 being set
for b3 being Relation of b1,b2 holds
      b3 is total(b1, b2)
   iff
      dom b3 = b1;

:: PARTFUN1:th 99
theorem
for b1, b2 being set
for b3 being Function-like Relation of b1,b2
      st b3 is total(b1, b2) & b2 = {}
   holds b1 = {};

:: PARTFUN1:th 112
theorem
for b1 being set
for b2 being Function-like Relation of {},b1 holds
   b2 is total({}, b1);

:: PARTFUN1:th 113
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set
      st <:b3,b1,b2:> is total(b1, b2)
   holds b1 c= proj1 b3;

:: PARTFUN1:th 114
theorem
for b1, b2 being set
      st <:{},b1,b2:> is total(b1, b2)
   holds b1 = {};

:: PARTFUN1:th 115
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set
      st b1 c= proj1 b3 & proj2 b3 c= b2
   holds <:b3,b1,b2:> is total(b1, b2);

:: PARTFUN1:th 116
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set
      st <:b3,b1,b2:> is total(b1, b2)
   holds b3 .: b1 c= b2;

:: PARTFUN1:th 117
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set
      st b1 c= proj1 b3 & b3 .: b1 c= b2
   holds <:b3,b1,b2:> is total(b1, b2);

:: PARTFUN1:funcnot 4 => PARTFUN1:func 4
definition
  let a1, a2 be set;
  func PFuncs(A1,A2) -> set means
    for b1 being set holds
          b1 in it
       iff
          ex b2 being Relation-like Function-like set st
             b1 = b2 & proj1 b2 c= a1 & proj2 b2 c= a2;
end;

:: PARTFUN1:def 5
theorem
for b1, b2, b3 being set holds
   b3 = PFuncs(b1,b2)
iff
   for b4 being set holds
         b4 in b3
      iff
         ex b5 being Relation-like Function-like set st
            b4 = b5 & proj1 b5 c= b1 & proj2 b5 c= b2;

:: PARTFUN1:funcreg 1
registration
  let a1, a2 be set;
  cluster PFuncs(a1,a2) -> non empty;
end;

:: PARTFUN1:th 119
theorem
for b1, b2 being set
for b3 being Function-like Relation of b1,b2 holds
   b3 in PFuncs(b1,b2);

:: PARTFUN1:th 120
theorem
for b1, b2, b3 being set
      st b3 in PFuncs(b1,b2)
   holds b3 is Function-like Relation of b1,b2;

:: PARTFUN1:th 121
theorem
for b1, b2 being set
for b3 being Element of PFuncs(b1,b2) holds
   b3 is Function-like Relation of b1,b2;

:: PARTFUN1:th 122
theorem
for b1 being set holds
   PFuncs({},b1) = {{}};

:: PARTFUN1:th 123
theorem
for b1 being set holds
   PFuncs(b1,{}) = {{}};

:: PARTFUN1:th 125
theorem
for b1, b2, b3 being set
      st b1 c= b2
   holds PFuncs(b1,b3) c= PFuncs(b2,b3);

:: PARTFUN1:th 126
theorem
for b1, b2 being set holds
PFuncs({},b1) c= PFuncs(b2,b1);

:: PARTFUN1:th 127
theorem
for b1, b2, b3 being set
      st b1 c= b2
   holds PFuncs(b3,b1) c= PFuncs(b3,b2);

:: PARTFUN1:th 128
theorem
for b1, b2, b3, b4 being set
      st b1 c= b2 & b3 c= b4
   holds PFuncs(b1,b3) c= PFuncs(b2,b4);

:: PARTFUN1:prednot 1 => PARTFUN1:pred 1
definition
  let a1, a2 be Relation-like Function-like set;
  pred A1 tolerates A2 means
    for b1 being set
          st b1 in (proj1 a1) /\ proj1 a2
       holds a1 . b1 = a2 . b1;
  symmetry;
::  for a1, a2 being Relation-like Function-like set
::        st a1 tolerates a2
::     holds a2 tolerates a1;
  reflexivity;
::  for a1 being Relation-like Function-like set holds
::     a1 tolerates a1;
end;

:: PARTFUN1:dfs 4
definiens
  let a1, a2 be Relation-like Function-like set;
To prove
     a1 tolerates a2
it is sufficient to prove
  thus for b1 being set
          st b1 in (proj1 a1) /\ proj1 a2
       holds a1 . b1 = a2 . b1;

:: PARTFUN1:def 6
theorem
for b1, b2 being Relation-like Function-like set holds
   b1 tolerates b2
iff
   for b3 being set
         st b3 in (proj1 b1) /\ proj1 b2
      holds b1 . b3 = b2 . b3;

:: PARTFUN1:th 130
theorem
for b1, b2 being Relation-like Function-like set holds
   b1 tolerates b2
iff
   ex b3 being Relation-like Function-like set st
      b1 \/ b2 = b3;

:: PARTFUN1:th 131
theorem
for b1, b2 being Relation-like Function-like set holds
   b1 tolerates b2
iff
   ex b3 being Relation-like Function-like set st
      b1 c= b3 & b2 c= b3;

:: PARTFUN1:th 132
theorem
for b1, b2 being Relation-like Function-like set
      st proj1 b1 c= proj1 b2
   holds    b1 tolerates b2
   iff
      for b3 being set
            st b3 in proj1 b1
         holds b1 . b3 = b2 . b3;

:: PARTFUN1:th 135
theorem
for b1, b2 being Relation-like Function-like set
      st b1 c= b2
   holds b1 tolerates b2;

:: PARTFUN1:th 136
theorem
for b1, b2 being Relation-like Function-like set
      st proj1 b1 = proj1 b2 & b1 tolerates b2
   holds b1 = b2;

:: PARTFUN1:th 138
theorem
for b1, b2 being Relation-like Function-like set
      st proj1 b1 misses proj1 b2
   holds b1 tolerates b2;

:: PARTFUN1:th 139
theorem
for b1, b2, b3 being Relation-like Function-like set
      st b1 c= b3 & b2 c= b3
   holds b1 tolerates b2;

:: PARTFUN1:th 140
theorem
for b1, b2 being set
for b3, b4 being Function-like Relation of b1,b2
for b5 being Relation-like Function-like set
      st b3 tolerates b5 & b4 c= b3
   holds b4 tolerates b5;

:: PARTFUN1:th 141
theorem
for b1 being Relation-like Function-like set holds
   {} tolerates b1;

:: PARTFUN1:th 142
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set holds
   <:{},b1,b2:> tolerates b3;

:: PARTFUN1:th 143
theorem
for b1, b2 being set
for b3, b4 being Function-like Relation of b1,{b2} holds
b3 tolerates b4;

:: PARTFUN1:th 144
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
   b2 | b1 tolerates b2;

:: PARTFUN1:th 145
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
   b1 | b2 tolerates b2;

:: PARTFUN1:th 146
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set holds
   (b1 | b3) | b2 tolerates b3;

:: PARTFUN1:th 147
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set holds
   <:b3,b1,b2:> tolerates b3;

:: PARTFUN1:th 148
theorem
for b1, b2 being set
for b3, b4 being Function-like Relation of b1,b2
      st b3 is total(b1, b2) & b4 is total(b1, b2) & b3 tolerates b4
   holds b3 = b4;

:: PARTFUN1:th 158
theorem
for b1, b2 being set
for b3, b4, b5 being Function-like Relation of b1,b2
      st b3 tolerates b5 & b4 tolerates b5 & b5 is total(b1, b2)
   holds b3 tolerates b4;

:: PARTFUN1:th 162
theorem
for b1, b2 being set
for b3, b4 being Function-like Relation of b1,b2
      st (b2 = {} implies b1 = {}) & b3 tolerates b4
   holds ex b5 being Function-like Relation of b1,b2 st
      b5 is total(b1, b2) & b3 tolerates b5 & b4 tolerates b5;

:: PARTFUN1:funcnot 5 => PARTFUN1:func 5
definition
  let a1, a2 be set;
  let a3 be Function-like Relation of a1,a2;
  func TotFuncs A3 -> set means
    for b1 being set holds
          b1 in it
       iff
          ex b2 being Function-like Relation of a1,a2 st
             b2 = b1 & b2 is total(a1, a2) & a3 tolerates b2;
end;

:: PARTFUN1:def 7
theorem
for b1, b2 being set
for b3 being Function-like Relation of b1,b2
for b4 being set holds
      b4 = TotFuncs b3
   iff
      for b5 being set holds
            b5 in b4
         iff
            ex b6 being Function-like Relation of b1,b2 st
               b6 = b5 & b6 is total(b1, b2) & b3 tolerates b6;

:: PARTFUN1:th 168
theorem
for b1, b2 being set
for b3 being Function-like Relation of b1,b2
for b4 being set
      st b4 in TotFuncs b3
   holds b4 is Function-like Relation of b1,b2;

:: PARTFUN1:th 169
theorem
for b1, b2 being set
for b3, b4 being Function-like Relation of b1,b2
      st b4 in TotFuncs b3
   holds b4 is total(b1, b2);

:: PARTFUN1:th 171
theorem
for b1, b2 being set
for b3 being Function-like Relation of b1,b2
for b4 being Relation-like Function-like set
      st b4 in TotFuncs b3
   holds b3 tolerates b4;

:: PARTFUN1:th 172
theorem
for b1 being set
for b2 being Function-like Relation of b1,{}
      st b1 <> {}
   holds TotFuncs b2 = {};

:: PARTFUN1:th 174
theorem
for b1, b2 being set
for b3 being Function-like Relation of b1,b2 holds
      b3 is total(b1, b2)
   iff
      TotFuncs b3 = {b3};

:: PARTFUN1:th 175
theorem
for b1 being set
for b2 being Function-like Relation of {},b1 holds
   TotFuncs b2 = {b2};

:: PARTFUN1:th 176
theorem
for b1 being set
for b2 being Function-like Relation of {},b1 holds
   TotFuncs b2 = {{}};

:: PARTFUN1:th 185
theorem
for b1, b2 being set
for b3, b4 being Function-like Relation of b1,b2
      st TotFuncs b3 meets TotFuncs b4
   holds b3 tolerates b4;

:: PARTFUN1:th 186
theorem
for b1, b2 being set
for b3, b4 being Function-like Relation of b1,b2
      st (b2 = {} implies b1 = {}) & b3 tolerates b4
   holds TotFuncs b3 meets TotFuncs b4;

:: PARTFUN1:exreg 3
registration
  let a1 be set;
  cluster Relation-like reflexive symmetric antisymmetric transitive total Relation of a1,a1;
end;

:: PARTFUN1:condreg 1
registration
  cluster Relation-like symmetric transitive -> reflexive (set);
end;

:: PARTFUN1:funcreg 2
registration
  let a1 be set;
  cluster id a1 -> Relation-like symmetric antisymmetric transitive;
end;

:: PARTFUN1:funcnot 6 => PARTFUN1:func 6
definition
  let a1 be set;
  redefine func id a1 -> total Relation of a1,a1;
end;

:: PARTFUN1:sch 4
scheme PARTFUN1:sch 4
{F1 -> non empty set,
  F2 -> set,
  F3 -> set}:
ex b1 being Relation-like Function-like set st
   proj1 b1 = F1() &
    (for b2 being Element of F1() holds
       (P1[b2] implies b1 . b2 = F2(b2)) & (P1[b2] or b1 . b2 = F3(b2)))


:: PARTFUN1:th 187
theorem
for b1, b2, b3 being set
for b4, b5 being Relation-like Function-like set
      st b4 tolerates b5 & [b1,b2] in b4 & [b1,b3] in b5
   holds b2 = b3;

:: PARTFUN1:th 188
theorem
for b1 being set
      st (for b2 being set
               st b2 in b1
            holds b2 is Relation-like Function-like set) &
         (for b2, b3 being Relation-like Function-like set
               st b2 in b1 & b3 in b1
            holds b2 tolerates b3)
   holds union b1 is Relation-like Function-like set;

:: PARTFUN1:funcnot 7 => PARTFUN1:func 7
definition
  let a1, a2 be set;
  let a3 be Function-like Relation of a1,a2;
  let a4 be set;
  assume a4 in dom a3;
  func A3 /. A4 -> Element of a2 equals
    a3 . a4;
end;

:: PARTFUN1:def 8
theorem
for b1, b2 being set
for b3 being Function-like Relation of b1,b2
for b4 being set
      st b4 in dom b3
   holds b3 /. b4 = b3 . b4;