Article PARTFUN2, MML version 4.99.1005

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

:: PARTFUN2:th 4
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being Function-like Relation of b3,b2 holds
      b1 in rng b4
   iff
      ex b5 being Element of b3 st
         b5 in dom b4 & b1 = b4 /. b5;

:: PARTFUN2:th 6
theorem
for b1, b2, b3 being non empty set
for b4 being Function-like Relation of b3,b1
for b5 being Function-like Relation of b1,b2
for b6 being Function-like Relation of b3,b2 holds
      b6 = b5 * b4
   iff
      (for b7 being Element of b3 holds
             b7 in dom b6
          iff
             b7 in dom b4 & b4 /. b7 in dom b5) &
       (for b7 being Element of b3
             st b7 in dom b6
          holds b6 /. b7 = b5 /. (b4 /. b7));

:: PARTFUN2:th 9
theorem
for b1, b2, b3 being non empty set
for b4 being Element of b1
for b5 being Function-like Relation of b1,b2
for b6 being Function-like Relation of b2,b3
      st b4 in dom b5 & b5 /. b4 in dom b6
   holds (b6 * b5) /. b4 = b6 /. (b5 /. b4);

:: PARTFUN2:th 10
theorem
for b1, b2, b3 being non empty set
for b4 being Element of b1
for b5 being Function-like Relation of b1,b2
for b6 being Function-like Relation of b2,b3
      st rng b5 c= dom b6 & b4 in dom b5
   holds (b6 * b5) /. b4 = b6 /. (b5 /. b4);

:: PARTFUN2:funcnot 1 => PARTFUN2:func 1
definition
  let a1 be non empty set;
  let a2 be Element of bool a1;
  redefine func id a2 -> Function-like Relation of a1,a1;
end;

:: PARTFUN2:th 12
theorem
for b1 being non empty set
for b2 being Element of bool b1
for b3 being Function-like Relation of b1,b1 holds
      b3 = id b2
   iff
      dom b3 = b2 &
       (for b4 being Element of b1
             st b4 in b2
          holds b3 /. b4 = b4);

:: PARTFUN2:th 14
theorem
for b1 being non empty set
for b2 being Element of bool b1
for b3 being Element of b1
for b4 being Function-like Relation of b1,b1
      st b3 in (dom b4) /\ b2
   holds b4 /. b3 = (b4 * id b2) /. b3;

:: PARTFUN2:th 15
theorem
for b1 being non empty set
for b2 being Element of bool b1
for b3 being Element of b1
for b4 being Function-like Relation of b1,b1 holds
      b3 in dom ((id b2) * b4)
   iff
      b3 in dom b4 & b4 /. b3 in b2;

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

:: PARTFUN2:th 17
theorem
for b1, b2 being set
for b3, b4 being non empty set
for b5 being Function-like Relation of b3,b4
      st b5 is one-to-one & b1 in dom b5 & b2 in dom b5 & b5 /. b1 = b5 /. b2
   holds b1 = b2;

:: PARTFUN2:funcreg 1
registration
  cluster {} -> one-to-one;
end;

:: PARTFUN2:exreg 1
registration
  let a1, a2 be set;
  cluster Relation-like Function-like one-to-one Relation of a1,a2;
end;

:: PARTFUN2:funcnot 2 => PARTFUN2:func 2
definition
  let a1, a2 be set;
  let a3 be Function-like one-to-one Relation of a1,a2;
  redefine func a3 " -> Function-like Relation of a2,a1;
end;

:: PARTFUN2:th 18
theorem
for b1, b2 being non empty set
for b3 being Function-like one-to-one Relation of b1,b2
for b4 being Function-like Relation of b2,b1 holds
      b4 = b3 "
   iff
      dom b4 = rng b3 &
       (for b5 being Element of b2
       for b6 being Element of b1 holds
             b5 in rng b3 & b6 = b4 /. b5
          iff
             b6 in dom b3 & b5 = b3 /. b6);

:: PARTFUN2:th 22
theorem
for b1, b2 being non empty set
for b3 being Element of b1
for b4 being Function-like one-to-one Relation of b1,b2
      st b3 in dom b4
   holds b3 = b4 " /. (b4 /. b3) & b3 = (b4 " * b4) /. b3;

:: PARTFUN2:th 23
theorem
for b1, b2 being non empty set
for b3 being Element of b2
for b4 being Function-like one-to-one Relation of b1,b2
      st b3 in rng b4
   holds b3 = b4 /. (b4 " /. b3) & b3 = (b4 * (b4 ")) /. b3;

:: PARTFUN2:th 24
theorem
for b1, b2 being non empty set
for b3 being Function-like Relation of b1,b2
for b4 being Function-like Relation of b2,b1
      st b3 is one-to-one &
         dom b3 = rng b4 &
         rng b3 = dom b4 &
         (for b5 being Element of b1
         for b6 being Element of b2
               st b5 in dom b3 & b6 in dom b4
            holds    b3 /. b5 = b6
            iff
               b4 /. b6 = b5)
   holds b4 = b3 ";

:: PARTFUN2:th 32
theorem
for b1 being set
for b2, b3 being non empty set
for b4, b5 being Function-like Relation of b3,b2 holds
   b4 = b5 | b1
iff
   dom b4 = (dom b5) /\ b1 &
    (for b6 being Element of b3
          st b6 in dom b4
       holds b4 /. b6 = b5 /. b6);

:: PARTFUN2:th 34
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being Element of b2
for b5 being Function-like Relation of b2,b3
      st b4 in (dom b5) /\ b1
   holds (b5 | b1) /. b4 = b5 /. b4;

:: PARTFUN2:th 35
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being Element of b2
for b5 being Function-like Relation of b2,b3
      st b4 in dom b5 & b4 in b1
   holds (b5 | b1) /. b4 = b5 /. b4;

:: PARTFUN2:th 36
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being Element of b2
for b5 being Function-like Relation of b2,b3
      st b4 in dom b5 & b4 in b1
   holds b5 /. b4 in rng (b5 | b1);

:: PARTFUN2:funcnot 3 => PARTFUN2:func 3
definition
  let a1, a2 be non empty set;
  let a3 be set;
  let a4 be Function-like Relation of a1,a2;
  redefine func a3 | a4 -> Function-like Relation of a1,a2;
end;

:: PARTFUN2:th 37
theorem
for b1 being set
for b2, b3 being non empty set
for b4, b5 being Function-like Relation of b3,b2 holds
   b4 = b1 | b5
iff
   (for b6 being Element of b3 holds
          b6 in dom b4
       iff
          b6 in dom b5 & b5 /. b6 in b1) &
    (for b6 being Element of b3
          st b6 in dom b4
       holds b4 /. b6 = b5 /. b6);

:: PARTFUN2:th 38
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being Element of b2
for b5 being Function-like Relation of b2,b3 holds
      b4 in dom (b1 | b5)
   iff
      b4 in dom b5 & b5 /. b4 in b1;

:: PARTFUN2:th 39
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being Element of b2
for b5 being Function-like Relation of b2,b3
      st b4 in dom (b1 | b5)
   holds (b1 | b5) /. b4 = b5 /. b4;

:: PARTFUN2:th 40
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being Element of bool b2
for b5 being Function-like Relation of b3,b2 holds
      b4 = b5 .: b1
   iff
      for b6 being Element of b2 holds
            b6 in b4
         iff
            ex b7 being Element of b3 st
               b7 in dom b5 & b7 in b1 & b6 = b5 /. b7;

:: PARTFUN2:th 41
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being Element of b3
for b5 being Function-like Relation of b2,b3 holds
      b4 in b5 .: b1
   iff
      ex b6 being Element of b2 st
         b6 in dom b5 & b6 in b1 & b4 = b5 /. b6;

:: PARTFUN2:th 42
theorem
for b1, b2 being non empty set
for b3 being Element of b1
for b4 being Function-like Relation of b1,b2
      st b3 in dom b4
   holds Im(b4,b3) = {b4 /. b3};

:: PARTFUN2:th 43
theorem
for b1, b2 being non empty set
for b3, b4 being Element of b1
for b5 being Function-like Relation of b1,b2
      st b3 in dom b5 & b4 in dom b5
   holds b5 .: {b3,b4} = {b5 /. b3,b5 /. b4};

:: PARTFUN2:th 44
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being Element of bool b3
for b5 being Function-like Relation of b3,b2 holds
      b4 = b5 " b1
   iff
      for b6 being Element of b3 holds
            b6 in b4
         iff
            b6 in dom b5 & b5 /. b6 in b1;

:: PARTFUN2:th 46
theorem
for b1, b2 being non empty set
for b3 being Function-like Relation of b2,b1 holds
   ex b4 being Function-like quasi_total Relation of b2,b1 st
      for b5 being Element of b2
            st b5 in dom b3
         holds b4 . b5 = b3 /. b5;

:: PARTFUN2:th 47
theorem
for b1, b2 being non empty set
for b3, b4 being Function-like Relation of b2,b1 holds
   b3 tolerates b4
iff
   for b5 being Element of b2
         st b5 in (dom b3) /\ dom b4
      holds b3 /. b5 = b4 /. b5;

:: PARTFUN2:sch 1
scheme PARTFUN2:sch 1
{F1 -> non empty set,
  F2 -> non empty set}:
ex b1 being Function-like Relation of F1(),F2() st
   (for b2 being Element of F1() holds
          b2 in dom b1
       iff
          ex b3 being Element of F2() st
             P1[b2, b3]) &
    (for b2 being Element of F1()
          st b2 in dom b1
       holds P1[b2, b1 /. b2])


:: PARTFUN2:sch 2
scheme PARTFUN2:sch 2
{F1 -> non empty set,
  F2 -> non empty set,
  F3 -> Element of F2()}:
ex b1 being Function-like Relation of F1(),F2() st
   (for b2 being Element of F1() holds
          b2 in dom b1
       iff
          P1[b2]) &
    (for b2 being Element of F1()
          st b2 in dom b1
       holds b1 /. b2 = F3(b2))


:: PARTFUN2:sch 3
scheme PARTFUN2:sch 3
{F1 -> non empty set,
  F2 -> non empty set,
  F3 -> set,
  F4 -> Element of F2()}:
for b1, b2 being Function-like Relation of F1(),F2()
      st dom b1 = F3() &
         (for b3 being Element of F1()
               st b3 in dom b1
            holds b1 /. b3 = F4(b3)) &
         dom b2 = F3() &
         (for b3 being Element of F1()
               st b3 in dom b2
            holds b2 /. b3 = F4(b3))
   holds b1 = b2


:: PARTFUN2:funcnot 4 => PARTFUN2:func 4
definition
  let a1, a2 be non empty set;
  let a3 be Element of bool a1;
  let a4 be Element of a2;
  redefine func a3 --> a4 -> Function-like Relation of a1,a2;
end;

:: PARTFUN2:th 48
theorem
for b1, b2 being non empty set
for b3 being Element of bool b1
for b4 being Element of b1
for b5 being Element of b2
      st b4 in b3
   holds (b3 --> b5) /. b4 = b5;

:: PARTFUN2:th 49
theorem
for b1, b2 being non empty set
for b3 being Element of b1
for b4 being Function-like Relation of b2,b1
      st for b5 being Element of b2
              st b5 in dom b4
           holds b4 /. b5 = b3
   holds b4 = (dom b4) --> b3;

:: PARTFUN2:th 50
theorem
for b1, b2, b3 being non empty set
for b4 being Element of bool b1
for b5 being Element of b2
for b6 being Function-like Relation of b2,b3
      st b5 in dom b6
   holds b6 * (b4 --> b5) = b4 --> (b6 /. b5);

:: PARTFUN2:th 51
theorem
for b1 being non empty set
for b2 being Element of bool b1 holds
      id b2 is total(b1, b1)
   iff
      b2 = b1;

:: PARTFUN2:th 52
theorem
for b1, b2 being non empty set
for b3 being Element of bool b1
for b4 being Element of b2
      st b3 --> b4 is total(b1, b2)
   holds b3 <> {};

:: PARTFUN2:th 53
theorem
for b1, b2 being non empty set
for b3 being Element of bool b2
for b4 being Element of b1 holds
      b3 --> b4 is total(b2, b1)
   iff
      b3 = b2;

:: PARTFUN2:prednot 1 => PARTFUN2:pred 1
definition
  let a1, a2 be non empty set;
  let a3 be Function-like Relation of a1,a2;
  let a4 be set;
  pred A3 is_constant_on A4 means
    ex b1 being Element of a2 st
       for b2 being Element of a1
             st b2 in a4 /\ dom a3
          holds a3 /. b2 = b1;
end;

:: PARTFUN2:dfs 1
definiens
  let a1, a2 be non empty set;
  let a3 be Function-like Relation of a1,a2;
  let a4 be set;
To prove
     a3 is_constant_on a4
it is sufficient to prove
  thus ex b1 being Element of a2 st
       for b2 being Element of a1
             st b2 in a4 /\ dom a3
          holds a3 /. b2 = b1;

:: PARTFUN2:def 3
theorem
for b1, b2 being non empty set
for b3 being Function-like Relation of b1,b2
for b4 being set holds
      b3 is_constant_on b4
   iff
      ex b5 being Element of b2 st
         for b6 being Element of b1
               st b6 in b4 /\ dom b3
            holds b3 /. b6 = b5;

:: PARTFUN2:th 55
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being Function-like Relation of b3,b2 holds
      b4 is_constant_on b1
   iff
      for b5, b6 being Element of b3
            st b5 in b1 /\ dom b4 & b6 in b1 /\ dom b4
         holds b4 /. b5 = b4 /. b6;

:: PARTFUN2:th 56
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being Function-like Relation of b2,b3
      st b1 meets dom b4
   holds    b4 is_constant_on b1
   iff
      ex b5 being Element of b3 st
         rng (b4 | b1) = {b5};

:: PARTFUN2:th 57
theorem
for b1, b2 being set
for b3, b4 being non empty set
for b5 being Function-like Relation of b3,b4
      st b5 is_constant_on b1 & b2 c= b1
   holds b5 is_constant_on b2;

:: PARTFUN2:th 58
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being Function-like Relation of b2,b3
      st b1 misses dom b4
   holds b4 is_constant_on b1;

:: PARTFUN2:th 59
theorem
for b1, b2 being non empty set
for b3 being Element of bool b1
for b4 being Element of b2
for b5 being Function-like Relation of b1,b2
      st b5 | b3 = (dom (b5 | b3)) --> b4
   holds b5 is_constant_on b3;

:: PARTFUN2:th 60
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being Function-like Relation of b2,b3 holds
   b4 is_constant_on {b1};

:: PARTFUN2:th 61
theorem
for b1, b2 being set
for b3, b4 being non empty set
for b5 being Function-like Relation of b3,b4
      st b5 is_constant_on b1 & b5 is_constant_on b2 & b1 /\ b2 meets dom b5
   holds b5 is_constant_on b1 \/ b2;

:: PARTFUN2:th 62
theorem
for b1, b2 being set
for b3, b4 being non empty set
for b5 being Function-like Relation of b3,b4
      st b5 is_constant_on b1
   holds b5 | b2 is_constant_on b1;

:: PARTFUN2:th 63
theorem
for b1, b2 being non empty set
for b3 being Element of bool b1
for b4 being Element of b2 holds
   b3 --> b4 is_constant_on b3;

:: PARTFUN2:th 64
theorem
for b1, b2 being non empty set
for b3, b4 being Function-like Relation of b2,b1 holds
   b3 c= b4
iff
   dom b3 c= dom b4 &
    (for b5 being Element of b2
          st b5 in dom b3
       holds b3 /. b5 = b4 /. b5);

:: PARTFUN2:th 65
theorem
for b1, b2 being non empty set
for b3 being Element of b1
for b4 being Element of b2
for b5 being Function-like Relation of b1,b2 holds
      b3 in dom b5 & b4 = b5 /. b3
   iff
      [b3,b4] in b5;

:: PARTFUN2:th 66
theorem
for b1, b2, b3 being non empty set
for b4 being Element of b1
for b5 being Element of b3
for b6 being Function-like Relation of b1,b2
for b7 being Function-like Relation of b2,b3
      st [b4,b5] in b7 * b6
   holds [b4,b6 /. b4] in b6 & [b6 /. b4,b5] in b7;

:: PARTFUN2:th 67
theorem
for b1, b2 being non empty set
for b3 being Element of b1
for b4 being Element of b2
for b5 being Function-like Relation of b1,b2
      st b5 = {[b3,b4]}
   holds b5 /. b3 = b4;

:: PARTFUN2:th 68
theorem
for b1, b2 being non empty set
for b3 being Element of b1
for b4 being Function-like Relation of b1,b2
      st dom b4 = {b3}
   holds b4 = {[b3,b4 /. b3]};

:: PARTFUN2:th 69
theorem
for b1, b2 being non empty set
for b3 being Element of b1
for b4, b5, b6 being Function-like Relation of b1,b2
      st b4 = b5 /\ b6 & b3 in dom b4
   holds b4 /. b3 = b5 /. b3 & b4 /. b3 = b6 /. b3;

:: PARTFUN2:th 70
theorem
for b1, b2 being non empty set
for b3 being Element of b1
for b4, b5, b6 being Function-like Relation of b1,b2
      st b3 in dom b4 & b5 = b4 \/ b6
   holds b5 /. b3 = b4 /. b3;

:: PARTFUN2:th 71
theorem
for b1, b2 being non empty set
for b3 being Element of b1
for b4, b5, b6 being Function-like Relation of b1,b2
      st b3 in dom b4 & b5 = b6 \/ b4
   holds b5 /. b3 = b4 /. b3;

:: PARTFUN2:th 72
theorem
for b1, b2 being non empty set
for b3 being Element of b1
for b4, b5, b6 being Function-like Relation of b1,b2
      st b3 in dom b4 & b4 = b5 \/ b6 & b4 /. b3 <> b5 /. b3
   holds b4 /. b3 = b6 /. b3;

:: PARTFUN2:th 73
theorem
for b1, b2 being non empty set
for b3 being Element of bool b1
for b4 being Element of b1
for b5 being Function-like Relation of b1,b2 holds
      b4 in dom b5 & b4 in b3
   iff
      [b4,b5 /. b4] in b5 | b3;

:: PARTFUN2:th 74
theorem
for b1, b2 being non empty set
for b3 being Element of bool b2
for b4 being Element of b1
for b5 being Function-like Relation of b1,b2 holds
      b4 in dom b5 & b5 /. b4 in b3
   iff
      [b4,b5 /. b4] in b3 | b5;

:: PARTFUN2:th 75
theorem
for b1, b2 being non empty set
for b3 being Element of bool b2
for b4 being Element of b1
for b5 being Function-like Relation of b1,b2 holds
      b4 in b5 " b3
   iff
      [b4,b5 /. b4] in b5 & b5 /. b4 in b3;

:: PARTFUN2:th 76
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being Function-like Relation of b3,b2 holds
      b4 is_constant_on b1
   iff
      ex b5 being Element of b2 st
         for b6 being Element of b3
               st b6 in b1 /\ dom b4
            holds b4 . b6 = b5;

:: PARTFUN2:th 77
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being Function-like Relation of b3,b2 holds
      b4 is_constant_on b1
   iff
      for b5, b6 being Element of b3
            st b5 in b1 /\ dom b4 & b6 in b1 /\ dom b4
         holds b4 . b5 = b4 . b6;

:: PARTFUN2:th 78
theorem
for b1 being set
for b2, b3 being non empty set
for b4 being Element of b2
for b5 being Function-like Relation of b3,b2
      st b4 in b5 .: b1
   holds ex b6 being Element of b3 st
      b6 in dom b5 & b6 in b1 & b4 = b5 . b6;

:: PARTFUN2:th 79
theorem
for b1, b2 being non empty set
for b3 being Element of b1
for b4 being Element of b2
for b5 being Function-like Relation of b1,b2
      st b5 is one-to-one
   holds    b4 in rng b5 & b3 = b5 " . b4
   iff
      b3 in dom b5 & b4 = b5 . b3;