Article PARTIT1, MML version 4.99.1005

:: PARTIT1:th 1
theorem
for b1 being non empty set
for b2 being a_partition of b1
for b3, b4 being set
      st b3 in b2 & b4 in b2 & b3 c= b4
   holds b3 = b4;

:: PARTIT1:prednot 1 => SETFAM_1:pred 1
notation
  let a1, a2 be set;
  synonym a1 '<' a2 for a1 is_finer_than a2;
end;

:: PARTIT1:prednot 2 => SETFAM_1:pred 1
notation
  let a1, a2 be set;
  synonym a2 '>' a1 for a1 is_finer_than a2;
end;

:: PARTIT1:th 3
theorem
for b1 being set holds
   union (b1 \ {{}}) = union b1;

:: PARTIT1:th 4
theorem
for b1 being non empty set
for b2, b3 being a_partition of b1
      st b3 is_finer_than b2 & b2 is_finer_than b3
   holds b3 c= b2;

:: PARTIT1:th 5
theorem
for b1 being non empty set
for b2, b3 being a_partition of b1
      st b3 is_finer_than b2 & b2 is_finer_than b3
   holds b2 = b3;

:: PARTIT1:th 7
theorem
for b1 being non empty set
for b2, b3 being a_partition of b1
      st b3 is_finer_than b2
   holds b2 is_coarser_than b3;

:: PARTIT1:prednot 3 => PARTIT1:pred 1
definition
  let a1 be non empty set;
  let a2 be a_partition of a1;
  let a3 be set;
  pred A3 is_a_dependent_set_of A2 means
    ex b1 being set st
       b1 c= a2 & b1 <> {} & a3 = union b1;
end;

:: PARTIT1:dfs 1
definiens
  let a1 be non empty set;
  let a2 be a_partition of a1;
  let a3 be set;
To prove
     a3 is_a_dependent_set_of a2
it is sufficient to prove
  thus ex b1 being set st
       b1 c= a2 & b1 <> {} & a3 = union b1;

:: PARTIT1:def 1
theorem
for b1 being non empty set
for b2 being a_partition of b1
for b3 being set holds
      b3 is_a_dependent_set_of b2
   iff
      ex b4 being set st
         b4 c= b2 & b4 <> {} & b3 = union b4;

:: PARTIT1:prednot 4 => PARTIT1:pred 2
definition
  let a1 be non empty set;
  let a2, a3 be a_partition of a1;
  let a4 be set;
  pred A4 is_min_depend A2,A3 means
    a4 is_a_dependent_set_of a2 &
     a4 is_a_dependent_set_of a3 &
     (for b1 being set
           st b1 c= a4 & b1 is_a_dependent_set_of a2 & b1 is_a_dependent_set_of a3
        holds b1 = a4);
end;

:: PARTIT1:dfs 2
definiens
  let a1 be non empty set;
  let a2, a3 be a_partition of a1;
  let a4 be set;
To prove
     a4 is_min_depend a2,a3
it is sufficient to prove
  thus a4 is_a_dependent_set_of a2 &
     a4 is_a_dependent_set_of a3 &
     (for b1 being set
           st b1 c= a4 & b1 is_a_dependent_set_of a2 & b1 is_a_dependent_set_of a3
        holds b1 = a4);

:: PARTIT1:def 2
theorem
for b1 being non empty set
for b2, b3 being a_partition of b1
for b4 being set holds
      b4 is_min_depend b2,b3
   iff
      b4 is_a_dependent_set_of b2 &
       b4 is_a_dependent_set_of b3 &
       (for b5 being set
             st b5 c= b4 & b5 is_a_dependent_set_of b2 & b5 is_a_dependent_set_of b3
          holds b5 = b4);

:: PARTIT1:th 8
theorem
for b1 being non empty set
for b2, b3 being a_partition of b1
   st b3 is_finer_than b2
for b4 being set
      st b4 in b2
   holds b4 is_a_dependent_set_of b3;

:: PARTIT1:th 9
theorem
for b1 being non empty set
for b2 being a_partition of b1 holds
   b1 is_a_dependent_set_of b2;

:: PARTIT1:th 10
theorem
for b1 being non empty set
for b2 being a_partition of b1
for b3 being Element of bool bool b1
      st Intersect b3 <> {} &
         (for b4 being set
               st b4 in b3
            holds b4 is_a_dependent_set_of b2)
   holds Intersect b3 is_a_dependent_set_of b2;

:: PARTIT1:th 11
theorem
for b1 being non empty set
for b2 being a_partition of b1
for b3, b4 being Element of bool b1
      st b3 is_a_dependent_set_of b2 & b4 is_a_dependent_set_of b2 & b3 meets b4
   holds b3 /\ b4 is_a_dependent_set_of b2;

:: PARTIT1:th 12
theorem
for b1 being non empty set
for b2 being a_partition of b1
for b3 being Element of bool b1
      st b3 is_a_dependent_set_of b2 & b3 <> b1
   holds b3 ` is_a_dependent_set_of b2;

:: PARTIT1:th 13
theorem
for b1 being non empty set
for b2, b3 being a_partition of b1
for b4 being Element of b1 holds
   ex b5 being Element of bool b1 st
      b4 in b5 & b5 is_min_depend b2,b3;

:: PARTIT1:th 14
theorem
for b1 being non empty set
for b2 being a_partition of b1
for b3 being Element of b1 holds
   ex b4 being Element of bool b1 st
      b3 in b4 & b4 in b2;

:: PARTIT1:funcnot 1 => PARTIT1:func 1
definition
  let a1 be set;
  func PARTITIONS A1 -> set means
    for b1 being set holds
          b1 in it
       iff
          b1 is a_partition of a1;
end;

:: PARTIT1:def 3
theorem
for b1, b2 being set holds
   b2 = PARTITIONS b1
iff
   for b3 being set holds
         b3 in b2
      iff
         b3 is a_partition of b1;

:: PARTIT1:funcreg 1
registration
  let a1 be set;
  cluster PARTITIONS a1 -> non empty;
end;

:: PARTIT1:funcnot 2 => PARTIT1:func 2
definition
  let a1 be non empty set;
  let a2, a3 be a_partition of a1;
  func A2 '/\' A3 -> a_partition of a1 equals
    (INTERSECTION(a2,a3)) \ {{}};
  commutativity;
::  for a1 being non empty set
::  for a2, a3 being a_partition of a1 holds
::  a2 '/\' a3 = a3 '/\' a2;
end;

:: PARTIT1:def 4
theorem
for b1 being non empty set
for b2, b3 being a_partition of b1 holds
b2 '/\' b3 = (INTERSECTION(b2,b3)) \ {{}};

:: PARTIT1:th 15
theorem
for b1 being non empty set
for b2 being a_partition of b1 holds
   b2 '/\' b2 = b2;

:: PARTIT1:th 16
theorem
for b1 being non empty set
for b2, b3, b4 being a_partition of b1 holds
(b2 '/\' b3) '/\' b4 = b2 '/\' (b3 '/\' b4);

:: PARTIT1:th 17
theorem
for b1 being non empty set
for b2, b3 being a_partition of b1 holds
b2 '/\' b3 is_finer_than b2;

:: PARTIT1:funcnot 3 => PARTIT1:func 3
definition
  let a1 be non empty set;
  let a2, a3 be a_partition of a1;
  func A2 '\/' A3 -> a_partition of a1 means
    for b1 being set holds
          b1 in it
       iff
          b1 is_min_depend a2,a3;
  commutativity;
::  for a1 being non empty set
::  for a2, a3 being a_partition of a1 holds
::  a2 '\/' a3 = a3 '\/' a2;
end;

:: PARTIT1:def 5
theorem
for b1 being non empty set
for b2, b3, b4 being a_partition of b1 holds
   b4 = b2 '\/' b3
iff
   for b5 being set holds
         b5 in b4
      iff
         b5 is_min_depend b2,b3;

:: PARTIT1:th 19
theorem
for b1 being non empty set
for b2, b3 being a_partition of b1 holds
b2 is_finer_than b2 '\/' b3;

:: PARTIT1:th 20
theorem
for b1 being non empty set
for b2 being a_partition of b1 holds
   b2 '\/' b2 = b2;

:: PARTIT1:th 21
theorem
for b1 being non empty set
for b2, b3, b4 being set
for b5, b6 being a_partition of b1
      st b5 is_finer_than b6 & b2 in b6 & b3 in b5 & b4 in b2 & b4 in b3
   holds b3 c= b2;

:: PARTIT1:th 22
theorem
for b1 being non empty set
for b2, b3, b4 being set
for b5, b6 being a_partition of b1
      st b2 in b5 '\/' b6 & b3 in b5 & b4 in b2 & b4 in b3
   holds b3 c= b2;

:: PARTIT1:th 23
theorem
for b1 being non empty set
for b2 being a_partition of b1 holds
   ex b3 being symmetric transitive total Relation of b1,b1 st
      for b4, b5 being set holds
         [b4,b5] in b3
      iff
         ex b6 being Element of bool b1 st
            b6 in b2 & b4 in b6 & b5 in b6;

:: PARTIT1:funcnot 4 => PARTIT1:func 4
definition
  let a1 be non empty set;
  let a2 be a_partition of a1;
  func ERl A2 -> symmetric transitive total Relation of a1,a1 means
    for b1, b2 being set holds
       [b1,b2] in it
    iff
       ex b3 being Element of bool a1 st
          b3 in a2 & b1 in b3 & b2 in b3;
end;

:: PARTIT1:def 6
theorem
for b1 being non empty set
for b2 being a_partition of b1
for b3 being symmetric transitive total Relation of b1,b1 holds
      b3 = ERl b2
   iff
      for b4, b5 being set holds
         [b4,b5] in b3
      iff
         ex b6 being Element of bool b1 st
            b6 in b2 & b4 in b6 & b5 in b6;

:: PARTIT1:funcnot 5 => PARTIT1:func 5
definition
  let a1 be non empty set;
  func Rel A1 -> Relation-like Function-like set means
    proj1 it = PARTITIONS a1 &
     (for b1 being set
           st b1 in PARTITIONS a1
        holds ex b2 being a_partition of a1 st
           b2 = b1 & it . b1 = ERl b2);
end;

:: PARTIT1:def 7
theorem
for b1 being non empty set
for b2 being Relation-like Function-like set holds
      b2 = Rel b1
   iff
      proj1 b2 = PARTITIONS b1 &
       (for b3 being set
             st b3 in PARTITIONS b1
          holds ex b4 being a_partition of b1 st
             b4 = b3 & b2 . b3 = ERl b4);

:: PARTIT1:th 24
theorem
for b1 being non empty set
for b2, b3 being a_partition of b1 holds
   b2 is_finer_than b3
iff
   ERl b2 c= ERl b3;

:: PARTIT1:th 25
theorem
for b1 being non empty set
for b2, b3 being a_partition of b1
for b4, b5, b6 being set
for b7 being FinSequence of b1
      st b4 c= b1 &
         b5 in b4 &
         b7 . 1 = b5 &
         b7 . len b7 = b6 &
         1 <= len b7 &
         (for b8 being Element of NAT
               st 1 <= b8 & b8 < len b7
            holds ex b9, b10, b11 being set st
               b9 in b2 & b10 in b3 & b7 . b8 in b9 & b11 in b9 & b11 in b10 & b7 . (b8 + 1) in b10) &
         b4 is_a_dependent_set_of b2 &
         b4 is_a_dependent_set_of b3
   holds b6 in b4;

:: PARTIT1:th 26
theorem
for b1 being non empty set
for b2, b3 being symmetric transitive total Relation of b1,b1
for b4 being FinSequence of b1
for b5, b6 being set
      st b5 in b1 &
         b6 in b1 &
         b4 . 1 = b5 &
         b4 . len b4 = b6 &
         1 <= len b4 &
         (for b7 being Element of NAT
               st 1 <= b7 & b7 < len b4
            holds ex b8 being set st
               b8 in b1 &
                [b4 . b7,b8] in b2 \/ b3 &
                [b8,b4 . (b7 + 1)] in b2 \/ b3)
   holds [b5,b6] in b2 "\/" b3;

:: PARTIT1:th 27
theorem
for b1 being non empty set
for b2, b3 being a_partition of b1 holds
ERl (b2 '\/' b3) = (ERl b2) "\/" ERl b3;

:: PARTIT1:th 28
theorem
for b1 being non empty set
for b2, b3 being a_partition of b1 holds
ERl (b2 '/\' b3) = (ERl b2) /\ ERl b3;

:: PARTIT1:th 29
theorem
for b1 being non empty set
for b2, b3 being a_partition of b1
      st ERl b2 = ERl b3
   holds b2 = b3;

:: PARTIT1:th 30
theorem
for b1 being non empty set
for b2, b3, b4 being a_partition of b1 holds
(b2 '\/' b3) '\/' b4 = b2 '\/' (b3 '\/' b4);

:: PARTIT1:th 31
theorem
for b1 being non empty set
for b2, b3 being a_partition of b1 holds
b2 '/\' (b2 '\/' b3) = b2;

:: PARTIT1:th 32
theorem
for b1 being non empty set
for b2, b3 being a_partition of b1 holds
b2 '\/' (b2 '/\' b3) = b2;

:: PARTIT1:th 33
theorem
for b1 being non empty set
for b2, b3, b4 being a_partition of b1
      st b2 is_finer_than b4 & b3 is_finer_than b4
   holds b2 '\/' b3 is_finer_than b4;

:: PARTIT1:th 34
theorem
for b1 being non empty set
for b2, b3, b4 being a_partition of b1
      st b4 is_finer_than b2 & b4 is_finer_than b3
   holds b4 is_finer_than b2 '/\' b3;

:: PARTIT1:funcnot 6 => EQREL_1:func 10
notation
  let a1 be non empty set;
  synonym %I a1 for SmallestPartition a1;
end;

:: PARTIT1:funcnot 7 => PARTIT1:func 6
definition
  let a1 be non empty set;
  func %O A1 -> a_partition of a1 equals
    {a1};
end;

:: PARTIT1:def 9
theorem
for b1 being non empty set holds
   %O b1 = {b1};

:: PARTIT1:th 35
theorem
for b1 being non empty set holds
   SmallestPartition b1 = {b2 where b2 is Element of bool b1: ex b3 being set st
      b2 = {b3} & b3 in b1};

:: PARTIT1:th 36
theorem
for b1 being non empty set
for b2 being a_partition of b1 holds
   b2 is_finer_than %O b1 & SmallestPartition b1 is_finer_than b2;

:: PARTIT1:th 37
theorem
for b1 being non empty set holds
   ERl %O b1 = nabla b1;

:: PARTIT1:th 38
theorem
for b1 being non empty set holds
   ERl SmallestPartition b1 = id b1;

:: PARTIT1:th 39
theorem
for b1 being non empty set holds
   SmallestPartition b1 is_finer_than %O b1;

:: PARTIT1:th 40
theorem
for b1 being non empty set
for b2 being a_partition of b1 holds
   (%O b1) '\/' b2 = %O b1 & (%O b1) '/\' b2 = b2;

:: PARTIT1:th 41
theorem
for b1 being non empty set
for b2 being a_partition of b1 holds
   (SmallestPartition b1) '\/' b2 = b2 & (SmallestPartition b1) '/\' b2 = SmallestPartition b1;