Article SYSREL, MML version 4.99.1005

:: SYSREL:th 12
theorem
for b1, b2 being set
      st b1 <> {} & b2 <> {}
   holds proj1 [:b1,b2:] = b1 & proj2 [:b1,b2:] = b2;

:: SYSREL:th 13
theorem
for b1, b2 being set
for b3 being Relation-like set holds
   proj1 (b3 /\ [:b1,b2:]) c= b1 & proj2 (b3 /\ [:b1,b2:]) c= b2;

:: SYSREL:th 14
theorem
for b1, b2 being set
for b3 being Relation-like set
      st b1 misses b2
   holds proj1 (b3 /\ [:b1,b2:]) misses proj2 (b3 /\ [:b1,b2:]) &
    proj1 (b3 ~ /\ [:b1,b2:]) misses proj2 (b3 ~ /\ [:b1,b2:]);

:: SYSREL:th 15
theorem
for b1, b2 being set
for b3 being Relation-like set
      st b3 c= [:b1,b2:]
   holds proj1 b3 c= b1 & proj2 b3 c= b2;

:: SYSREL:th 16
theorem
for b1, b2 being set
for b3 being Relation-like set
      st b3 c= [:b1,b2:]
   holds b3 ~ c= [:b2,b1:];

:: SYSREL:th 18
theorem
for b1, b2 being set holds
[:b1,b2:] ~ = [:b2,b1:];

:: SYSREL:th 20
theorem
for b1, b2, b3 being Relation-like set holds
(b1 \/ b2) * b3 = (b1 * b3) \/ (b2 * b3);

:: SYSREL:th 22
theorem
for b1, b2, b3, b4 being set
for b5 being Relation-like set holds
   (b1 misses b2 &
     b5 c= [:b1,b2:] \/ [:b2,b1:] &
     [b3,b4] in b5 &
     b3 in b1 implies not b3 in b2 & not b4 in b1 & b4 in b2) &
    (b1 misses b2 &
     b5 c= [:b1,b2:] \/ [:b2,b1:] &
     [b3,b4] in b5 &
     b4 in b2 implies not b4 in b1 & not b3 in b2 & b3 in b1) &
    (b1 misses b2 &
     b5 c= [:b1,b2:] \/ [:b2,b1:] &
     [b3,b4] in b5 &
     b3 in b2 implies not b3 in b1 & not b4 in b2 & b4 in b1) &
    (b1 misses b2 &
     b5 c= [:b1,b2:] \/ [:b2,b1:] &
     [b3,b4] in b5 &
     b4 in b1 implies not b3 in b1 & not b4 in b2 & b3 in b2);

:: SYSREL:th 24
theorem
for b1, b2, b3 being set
for b4 being Relation-like set holds
   (b4 c= [:b1,b2:] & b3 c= b1 implies b4 | b3 = b4 /\ [:b3,b2:]) &
    (b4 c= [:b1,b2:] & b3 c= b2 implies b3 | b4 = b4 /\ [:b1,b3:]);

:: SYSREL:th 25
theorem
for b1, b2, b3, b4 being set
for b5 being Relation-like set
      st b5 c= [:b1,b2:] & b1 = b3 \/ b4
   holds b5 = (b5 | b3) \/ (b5 | b4);

:: SYSREL:th 26
theorem
for b1, b2 being set
for b3 being Relation-like set
      st b1 misses b2 &
         b3 c= [:b1,b2:] \/ [:b2,b1:]
   holds b3 | b1 c= [:b1,b2:];

:: SYSREL:th 27
theorem
for b1, b2 being Relation-like set
      st b1 c= b2
   holds b1 ~ c= b2 ~;

:: SYSREL:th 29
theorem
for b1 being set holds
   (id b1) * id b1 = id b1;

:: SYSREL:th 30
theorem
for b1 being set holds
   id {b1} = {[b1,b1]};

:: SYSREL:th 32
theorem
for b1, b2 being set holds
id (b1 \/ b2) = (id b1) \/ id b2 &
 id (b1 /\ b2) = (id b1) /\ id b2 &
 id (b1 \ b2) = (id b1) \ id b2;

:: SYSREL:th 33
theorem
for b1, b2 being set
      st b1 c= b2
   holds id b1 c= id b2;

:: SYSREL:th 34
theorem
for b1, b2 being set holds
(id (b1 \ b2)) \ id b1 = {};

:: SYSREL:th 35
theorem
for b1 being Relation-like set
      st b1 c= id proj1 b1
   holds b1 = id proj1 b1;

:: SYSREL:th 36
theorem
for b1 being set
for b2 being Relation-like set
      st id b1 c= b2 \/ (b2 ~)
   holds id b1 c= b2 & id b1 c= b2 ~;

:: SYSREL:th 37
theorem
for b1 being set
for b2 being Relation-like set
      st id b1 c= b2
   holds id b1 c= b2 ~;

:: SYSREL:th 38
theorem
for b1 being set
for b2 being Relation-like set
      st b2 c= [:b1,b1:]
   holds b2 \ id proj1 b2 = b2 \ id b1 &
    b2 \ id proj2 b2 = b2 \ id b1;

:: SYSREL:th 39
theorem
for b1 being set
for b2 being Relation-like set holds
   ((id b1) * (b2 \ id b1) = {} implies proj1 (b2 \ id b1) = (proj1 b2) \ proj1 id b1) &
    ((b2 \ id b1) * id b1 = {} implies proj2 (b2 \ id b1) = (proj2 b2) \ proj2 id b1);

:: SYSREL:th 40
theorem
for b1 being Relation-like set holds
   (b1 c= b1 * b1 &
     b1 * (b1 \ id proj2 b1) = {} implies id proj2 b1 c= b1) &
    (b1 c= b1 * b1 &
     (b1 \ id proj1 b1) * b1 = {} implies id proj1 b1 c= b1);

:: SYSREL:th 41
theorem
for b1 being Relation-like set holds
   (b1 c= b1 * b1 &
     b1 * (b1 \ id proj2 b1) = {} implies b1 /\ id proj2 b1 = id proj2 b1) &
    (b1 c= b1 * b1 &
     (b1 \ id proj1 b1) * b1 = {} implies b1 /\ id proj1 b1 = id proj1 b1);

:: SYSREL:th 42
theorem
for b1 being set
for b2 being Relation-like set holds
   (b2 * (b2 \ id b1) = {} & proj2 b2 c= b1 implies b2 * (b2 \ id proj2 b2) = {}) &
    ((b2 \ id b1) * b2 = {} & proj1 b2 c= b1 implies (b2 \ id proj1 b2) * b2 = {});

:: SYSREL:funcnot 1 => SYSREL:func 1
definition
  let a1 be Relation-like set;
  func CL A1 -> Relation-like set equals
    a1 /\ id proj1 a1;
end;

:: SYSREL:def 1
theorem
for b1 being Relation-like set holds
   CL b1 = b1 /\ id proj1 b1;

:: SYSREL:th 44
theorem
for b1, b2 being set
for b3 being Relation-like set
      st [b1,b2] in CL b3
   holds b1 in proj1 CL b3 & b1 = b2;

:: SYSREL:th 45
theorem
for b1 being Relation-like set holds
   proj1 CL b1 = proj2 CL b1;

:: SYSREL:th 46
theorem
for b1 being set
for b2 being Relation-like set holds
   (b1 in proj1 CL b2 implies b1 in proj1 b2 & [b1,b1] in b2) &
    (b1 in proj1 b2 & [b1,b1] in b2 implies b1 in proj1 CL b2) &
    (b1 in proj2 CL b2 implies b1 in proj1 b2 & [b1,b1] in b2) &
    (b1 in proj1 b2 & [b1,b1] in b2 implies b1 in proj2 CL b2) &
    (b1 in proj2 CL b2 implies b1 in proj2 b2 & [b1,b1] in b2) &
    (b1 in proj2 b2 & [b1,b1] in b2 implies b1 in proj2 CL b2) &
    (b1 in proj1 CL b2 implies b1 in proj2 b2 & [b1,b1] in b2) &
    (b1 in proj2 b2 & [b1,b1] in b2 implies b1 in proj1 CL b2);

:: SYSREL:th 47
theorem
for b1 being Relation-like set holds
   CL b1 = id proj1 CL b1;

:: SYSREL:th 48
theorem
for b1, b2 being set
for b3 being Relation-like set holds
   (b3 * b3 = b3 & b3 * (b3 \ CL b3) = {} & [b1,b2] in b3 & b1 <> b2 implies b1 in (proj1 b3) \ proj1 CL b3 & b2 in proj1 CL b3) &
    (b3 * b3 = b3 & (b3 \ CL b3) * b3 = {} & [b1,b2] in b3 & b1 <> b2 implies b2 in (proj2 b3) \ proj1 CL b3 & b1 in proj1 CL b3);

:: SYSREL:th 49
theorem
for b1, b2 being set
for b3 being Relation-like set holds
   (b3 * b3 = b3 &
     b3 * (b3 \ id proj1 b3) = {} &
     [b1,b2] in b3 &
     b1 <> b2 implies b1 in (proj1 b3) \ proj1 CL b3 & b2 in proj1 CL b3) &
    (b3 * b3 = b3 &
     (b3 \ id proj1 b3) * b3 = {} &
     [b1,b2] in b3 &
     b1 <> b2 implies b2 in (proj2 b3) \ proj1 CL b3 & b1 in proj1 CL b3);

:: SYSREL:th 50
theorem
for b1 being Relation-like set holds
   (b1 * b1 = b1 &
     b1 * (b1 \ id proj1 b1) = {} implies proj1 CL b1 = proj2 b1 & proj2 CL b1 = proj2 b1) &
    (b1 * b1 = b1 &
     (b1 \ id proj1 b1) * b1 = {} implies proj1 CL b1 = proj1 b1 & proj2 CL b1 = proj1 b1);

:: SYSREL:th 51
theorem
for b1 being Relation-like set holds
   proj1 CL b1 c= proj1 b1 & proj2 CL b1 c= proj2 b1 & proj2 CL b1 c= proj1 b1 & proj1 CL b1 c= proj2 b1;

:: SYSREL:th 52
theorem
for b1 being Relation-like set holds
   id proj1 CL b1 c= id proj1 b1 & id proj2 CL b1 c= id proj1 b1;

:: SYSREL:th 53
theorem
for b1 being Relation-like set holds
   id proj1 CL b1 c= b1 & id proj2 CL b1 c= b1;

:: SYSREL:th 54
theorem
for b1 being set
for b2 being Relation-like set holds
   (id b1 c= b2 &
     (id b1) * (b2 \ id b1) = {} implies b2 | b1 = id b1) &
    (id b1 c= b2 &
     (b2 \ id b1) * id b1 = {} implies b1 | b2 = id b1);

:: SYSREL:th 55
theorem
for b1 being Relation-like set holds
   ((id proj1 CL b1) * (b1 \ id proj1 CL b1) = {} implies b1 | proj1 CL b1 = id proj1 CL b1 &
     b1 | proj2 CL b1 = id proj1 CL b1) &
    ((b1 \ id proj2 CL b1) * id proj2 CL b1 = {} implies (proj1 CL b1) | b1 = id proj1 CL b1 &
     (proj2 CL b1) | b1 = id proj2 CL b1);

:: SYSREL:th 56
theorem
for b1 being Relation-like set holds
   (b1 * (b1 \ id proj1 b1) = {} implies (id proj1 CL b1) * (b1 \ id proj1 CL b1) = {}) &
    ((b1 \ id proj1 b1) * b1 = {} implies (b1 \ id proj1 CL b1) * id proj1 CL b1 = {});

:: SYSREL:th 57
theorem
for b1, b2 being Relation-like set holds
(b1 * b2 = b1 &
  b2 * (b2 \ id proj1 b2) = {} implies b1 * (b2 \ id proj1 b2) = {}) &
 (b2 * b1 = b1 &
  (b2 \ id proj1 b2) * b2 = {} implies (b2 \ id proj1 b2) * b1 = {});

:: SYSREL:th 58
theorem
for b1, b2 being Relation-like set holds
(b1 * b2 = b1 &
  b2 * (b2 \ id proj1 b2) = {} implies CL b1 c= CL b2) &
 (b2 * b1 = b1 &
  (b2 \ id proj1 b2) * b2 = {} implies CL b1 c= CL b2);

:: SYSREL:th 59
theorem
for b1, b2 being Relation-like set holds
(b1 * b2 = b1 &
  b2 * (b2 \ id proj1 b2) = {} &
  b2 * b1 = b2 &
  b1 * (b1 \ id proj1 b1) = {} implies CL b1 = CL b2) &
 (b2 * b1 = b1 &
  (b2 \ id proj1 b2) * b2 = {} &
  b1 * b2 = b2 &
  (b1 \ id proj1 b1) * b1 = {} implies CL b1 = CL b2);