Article RELSET_1, MML version 4.99.1005

:: RELSET_1:modenot 1 => RELSET_1:mode 1
definition
  let a1, a2 be set;
  mode Relation of A1,A2 means
    it c= [:a1,a2:];
end;

:: RELSET_1:dfs 1
definiens
  let a1, a2, a3 be set;
To prove
     a3 is Relation of a1,a2
it is sufficient to prove
  thus a3 c= [:a1,a2:];

:: RELSET_1:def 1
theorem
for b1, b2, b3 being set holds
   b3 is Relation of b1,b2
iff
   b3 c= [:b1,b2:];

:: RELSET_1:modenot 2 => RELSET_1:mode 2
definition
  let a1, a2 be set;
  redefine mode Relation of a1,a2 -> Element of bool [:a1,a2:];
end;

:: RELSET_1:condreg 1
registration
  let a1, a2 be set;
  cluster -> Relation-like (Element of bool [:a1,a2:]);
end;

:: RELSET_1:prednot 1 => RELSET_1:pred 1
definition
  let a1, a2 be set;
  let a3 be Relation of a1,a2;
  let a4 be set;
  redefine pred A3 c= A4 means
    for b1 being Element of a1
    for b2 being Element of a2
          st [b1,b2] in a3
       holds [b1,b2] in a4;
  reflexivity;
::  for a1, a2 being set
::  for a3 being Relation of a1,a2 holds
::     a3 c= a3;
end;

:: RELSET_1:dfs 2
definiens
  let a1, a2 be set;
  let a3 be Relation of a1,a2;
  let a4 be set;
To prove
     a3 c= a4
it is sufficient to prove
  thus for b1 being Element of a1
    for b2 being Element of a2
          st [b1,b2] in a3
       holds [b1,b2] in a4;

:: RELSET_1:def 2
theorem
for b1, b2 being set
for b3 being Relation of b1,b2
for b4 being set holds
      b3 c= b4
   iff
      for b5 being Element of b1
      for b6 being Element of b2
            st [b5,b6] in b3
         holds [b5,b6] in b4;

:: RELSET_1:prednot 2 => RELSET_1:pred 2
definition
  let a1, a2 be set;
  let a3, a4 be Relation of a1,a2;
  redefine pred A3 = A4 means
    for b1 being Element of a1
    for b2 being Element of a2 holds
          [b1,b2] in a3
       iff
          [b1,b2] in a4;
  symmetry;
::  for a1, a2 being set
::  for a3, a4 being Relation of a1,a2
::        st a3 = a4
::     holds a4 = a3;
  reflexivity;
::  for a1, a2 being set
::  for a3 being Relation of a1,a2 holds
::     a3 = a3;
end;

:: RELSET_1:dfs 3
definiens
  let a1, a2 be set;
  let a3, a4 be Relation of a1,a2;
To prove
     a3 = a4
it is sufficient to prove
  thus for b1 being Element of a1
    for b2 being Element of a2 holds
          [b1,b2] in a3
       iff
          [b1,b2] in a4;

:: RELSET_1:def 3
theorem
for b1, b2 being set
for b3, b4 being Relation of b1,b2 holds
   b3 = b4
iff
   for b5 being Element of b1
   for b6 being Element of b2 holds
         [b5,b6] in b3
      iff
         [b5,b6] in b4;

:: RELSET_1:th 4
theorem
for b1, b2, b3 being set
for b4 being Relation of b2,b3
      st b1 c= b4
   holds b1 is Relation of b2,b3;

:: RELSET_1:th 6
theorem
for b1, b2, b3 being set
for b4 being Relation of b2,b3
      st b1 in b4
   holds ex b5, b6 being set st
      b1 = [b5,b6] & b5 in b2 & b6 in b3;

:: RELSET_1:th 8
theorem
for b1, b2, b3, b4 being set
      st b1 in b2 & b3 in b4
   holds {[b1,b3]} is Relation of b2,b4;

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

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

:: RELSET_1:th 11
theorem
for b1, b2 being set
for b3 being Relation-like set
      st proj1 b3 c= b1 & proj2 b3 c= b2
   holds b3 is Relation of b1,b2;

:: RELSET_1:th 12
theorem
for b1, b2 being set
for b3 being Relation of b1,b2 holds
   proj1 b3 c= b1 & proj2 b3 c= b2;

:: RELSET_1:th 13
theorem
for b1, b2, b3 being set
for b4 being Relation of b1,b3
      st proj1 b4 c= b2
   holds b4 is Relation of b2,b3;

:: RELSET_1:th 14
theorem
for b1, b2, b3 being set
for b4 being Relation of b3,b1
      st proj2 b4 c= b2
   holds b4 is Relation of b3,b2;

:: RELSET_1:th 15
theorem
for b1, b2, b3 being set
for b4 being Relation of b1,b3
      st b1 c= b2
   holds b4 is Relation of b2,b3;

:: RELSET_1:th 16
theorem
for b1, b2, b3 being set
for b4 being Relation of b3,b1
      st b1 c= b2
   holds b4 is Relation of b3,b2;

:: RELSET_1:th 17
theorem
for b1, b2, b3, b4 being set
for b5 being Relation of b1,b3
      st b1 c= b2 & b3 c= b4
   holds b5 is Relation of b2,b4;

:: RELSET_1:funcnot 1 => RELSET_1:func 1
definition
  let a1, a2 be set;
  let a3, a4 be Relation of a1,a2;
  redefine func a3 \/ a4 -> Relation of a1,a2;
  commutativity;
::  for a1, a2 being set
::  for a3, a4 being Relation of a1,a2 holds
::  a3 \/ a4 = a4 \/ a3;
  idempotence;
::  for a1, a2 being set
::  for a3 being Relation of a1,a2 holds
::     a3 \/ a3 = a3;
end;

:: RELSET_1:funcnot 2 => RELSET_1:func 2
definition
  let a1, a2 be set;
  let a3, a4 be Relation of a1,a2;
  redefine func a3 /\ a4 -> Relation of a1,a2;
  commutativity;
::  for a1, a2 being set
::  for a3, a4 being Relation of a1,a2 holds
::  a3 /\ a4 = a4 /\ a3;
  idempotence;
::  for a1, a2 being set
::  for a3 being Relation of a1,a2 holds
::     a3 /\ a3 = a3;
end;

:: RELSET_1:funcnot 3 => RELSET_1:func 3
definition
  let a1, a2 be set;
  let a3, a4 be Relation of a1,a2;
  redefine func a3 \ a4 -> Relation of a1,a2;
end;

:: RELSET_1:funcnot 4 => RELSET_1:func 4
definition
  let a1, a2 be set;
  let a3 be Relation of a1,a2;
  redefine func dom a3 -> Element of bool a1;
end;

:: RELSET_1:funcnot 5 => RELSET_1:func 5
definition
  let a1, a2 be set;
  let a3 be Relation of a1,a2;
  redefine func rng a3 -> Element of bool a2;
end;

:: RELSET_1:th 19
theorem
for b1, b2 being set
for b3 being Relation of b1,b2 holds
   field b3 c= b1 \/ b2;

:: RELSET_1:th 22
theorem
for b1, b2 being set
for b3 being Relation of b2,b1 holds
      for b4 being set
            st b4 in b2
         holds ex b5 being set st
            [b4,b5] in b3
   iff
      dom b3 = b2;

:: RELSET_1:th 23
theorem
for b1, b2 being set
for b3 being Relation of b1,b2 holds
      for b4 being set
            st b4 in b2
         holds ex b5 being set st
            [b5,b4] in b3
   iff
      rng b3 = b2;

:: RELSET_1:funcnot 6 => RELSET_1:func 6
definition
  let a1, a2 be set;
  let a3 be Relation of a1,a2;
  redefine func a3 ~ -> Relation of a2,a1;
  involutiveness;
::  for a1, a2 being set
::  for a3 being Relation of a1,a2 holds
::     a3 ~ ~ = a3;
end;

:: RELSET_1:funcnot 7 => RELSET_1:func 7
definition
  let a1, a2, a3, a4 be set;
  let a5 be Relation of a1,a2;
  let a6 be Relation of a3,a4;
  redefine func a5 * a6 -> Relation of a1,a4;
end;

:: RELSET_1:th 24
theorem
for b1, b2 being set
for b3 being Relation of b1,b2 holds
   dom (b3 ~) = rng b3 & rng (b3 ~) = dom b3;

:: RELSET_1:th 25
theorem
for b1, b2 being set holds
{} is Relation of b1,b2;

:: RELSET_1:th 26
theorem
for b1, b2 being set
for b3 being Relation of b1,b2
      st b3 is Relation of {},b2
   holds b3 = {};

:: RELSET_1:th 27
theorem
for b1, b2 being set
for b3 being Relation of b2,b1
      st b3 is Relation of b2,{}
   holds b3 = {};

:: RELSET_1:th 28
theorem
for b1 being set holds
   id b1 c= [:b1,b1:];

:: RELSET_1:th 29
theorem
for b1 being set holds
   id b1 is Relation of b1,b1;

:: RELSET_1:th 30
theorem
for b1, b2, b3 being set
for b4 being Relation of b1,b2
      st id b3 c= b4
   holds b3 c= dom b4 & b3 c= rng b4;

:: RELSET_1:th 31
theorem
for b1, b2 being set
for b3 being Relation of b2,b1
      st id b2 c= b3
   holds b2 = dom b3 & b2 c= rng b3;

:: RELSET_1:th 32
theorem
for b1, b2 being set
for b3 being Relation of b1,b2
      st id b2 c= b3
   holds b2 c= dom b3 & b2 = rng b3;

:: RELSET_1:funcnot 8 => RELSET_1:func 8
definition
  let a1, a2 be set;
  let a3 be Relation of a1,a2;
  let a4 be set;
  redefine func a3 | a4 -> Relation of a1,a2;
end;

:: RELSET_1:funcnot 9 => RELSET_1:func 9
definition
  let a1, a2, a3 be set;
  let a4 be Relation of a1,a2;
  redefine func a3 | a4 -> Relation of a1,a2;
end;

:: RELSET_1:th 33
theorem
for b1, b2, b3 being set
for b4 being Relation of b1,b3 holds
   b4 | b2 is Relation of b2,b3;

:: RELSET_1:th 34
theorem
for b1, b2, b3 being set
for b4 being Relation of b2,b1
      st b2 c= b3
   holds b4 | b3 = b4;

:: RELSET_1:th 35
theorem
for b1, b2, b3 being set
for b4 being Relation of b3,b1 holds
   b2 | b4 is Relation of b3,b2;

:: RELSET_1:th 36
theorem
for b1, b2, b3 being set
for b4 being Relation of b1,b2
      st b2 c= b3
   holds b3 | b4 = b4;

:: RELSET_1:funcnot 10 => RELSET_1:func 10
definition
  let a1, a2 be set;
  let a3 be Relation of a1,a2;
  let a4 be set;
  redefine func a3 .: a4 -> Element of bool a2;
end;

:: RELSET_1:funcnot 11 => RELSET_1:func 11
definition
  let a1, a2 be set;
  let a3 be Relation of a1,a2;
  let a4 be set;
  redefine func a3 " a4 -> Element of bool a1;
end;

:: RELSET_1:th 38
theorem
for b1, b2 being set
for b3 being Relation of b1,b2 holds
   b3 .: b1 = rng b3 & b3 " b2 = dom b3;

:: RELSET_1:th 39
theorem
for b1, b2 being set
for b3 being Relation of b2,b1 holds
   b3 .: (b3 " b1) = rng b3 & b3 " (b3 .: b2) = dom b3;

:: RELSET_1:sch 1
scheme RELSET_1:sch 1
{F1 -> set,
  F2 -> set}:
ex b1 being Relation of F1(),F2() st
   for b2, b3 being set holds
      [b2,b3] in b1
   iff
      b2 in F1() & b3 in F2() & P1[b2, b3]


:: RELSET_1:modenot 3
definition
  let a1 be set;
  mode Relation of a1 is Relation of a1,a1;
end;

:: RELSET_1:th 46
theorem
for b1 being non empty set holds
   id b1 <> {};

:: RELSET_1:funcreg 1
registration
  let a1 be non empty set;
  cluster id a1 -> non empty Relation-like;
end;

:: RELSET_1:th 47
theorem
for b1, b2 being non empty set
for b3 being Relation of b1,b2
for b4 being Element of b1 holds
      b4 in dom b3
   iff
      ex b5 being Element of b2 st
         [b4,b5] in b3;

:: RELSET_1:th 48
theorem
for b1, b2 being non empty set
for b3 being Relation of b2,b1
for b4 being set holds
      b4 in rng b3
   iff
      ex b5 being Element of b2 st
         [b5,b4] in b3;

:: RELSET_1:th 49
theorem
for b1, b2 being non empty set
for b3 being Relation of b1,b2
      st dom b3 <> {}
   holds ex b4 being Element of b2 st
      b4 in rng b3;

:: RELSET_1:th 50
theorem
for b1, b2 being non empty set
for b3 being Relation of b2,b1
      st rng b3 <> {}
   holds ex b4 being Element of b2 st
      b4 in dom b3;

:: RELSET_1:th 51
theorem
for b1, b2, b3 being non empty set
for b4 being Relation of b1,b2
for b5 being Relation of b2,b3
for b6, b7 being set holds
   [b6,b7] in b4 * b5
iff
   ex b8 being Element of b2 st
      [b6,b8] in b4 & [b8,b7] in b5;

:: RELSET_1:th 52
theorem
for b1, b2, b3 being non empty set
for b4 being Relation of b3,b1
for b5 being Element of b1 holds
      b5 in b4 .: b2
   iff
      ex b6 being Element of b3 st
         [b6,b5] in b4 & b6 in b2;

:: RELSET_1:th 53
theorem
for b1, b2, b3 being non empty set
for b4 being Relation of b1,b3
for b5 being Element of b1 holds
      b5 in b4 " b2
   iff
      ex b6 being Element of b3 st
         [b5,b6] in b4 & b6 in b2;

:: RELSET_1:sch 2
scheme RELSET_1:sch 2
{F1 -> non empty set,
  F2 -> non empty set}:
ex b1 being Relation of F1(),F2() st
   for b2 being Element of F1()
   for b3 being Element of F2() holds
         [b2,b3] in b1
      iff
         P1[b2, b3]


:: RELSET_1:sch 3
scheme RELSET_1:sch 3
{F1 -> set,
  F2 -> Element of bool F1(),
  F3 -> set}:
ex b1 being Relation of F2(),F2() st
   for b2 being Element of F1()
         st b2 in F2()
      holds Im(b1,b2) = F3(b2)
provided
   for b1 being Element of F1()
         st b1 in F2()
      holds F3(b1) c= F2();


:: RELSET_1:th 54
theorem
for b1 being set
for b2, b3 being Relation of b1,b1
      st for b4 being set
              st b4 in b1
           holds Im(b2,b4) = Im(b3,b4)
   holds b2 = b3;

:: RELSET_1:sch 4
scheme RELSET_1:sch 4
{F1 -> set,
  F2 -> set,
  F3 -> Relation of F1(),F2(),
  F4 -> Relation of F1(),F2()}:
F3() = F4()
provided
   for b1 being Element of F1()
   for b2 being Element of F2() holds
         [b1,b2] in F3()
      iff
         P1[b1, b2]
and
   for b1 being Element of F1()
   for b2 being Element of F2() holds
         [b1,b2] in F4()
      iff
         P1[b1, b2];


:: RELSET_1:funcreg 2
registration
  let a1, a2, a3 be set;
  let a4 be Relation of [:a1,a2:],a3;
  cluster proj1 a4 -> Relation-like;
end;

:: RELSET_1:funcreg 3
registration
  let a1, a2, a3 be set;
  let a4 be Relation of a1,[:a2,a3:];
  cluster proj2 a4 -> Relation-like;
end;