Article MCART_2, MML version 4.99.1005

:: MCART_2:th 1
theorem
for b1 being set
      st b1 <> {}
   holds ex b2 being set st
      b2 in b1 &
       (for b3, b4, b5, b6, b7, b8 being set
             st b3 in b4 & b4 in b5 & b5 in b6 & b6 in b7 & b7 in b8 & b8 in b2
          holds b3 misses b1);

:: MCART_2:th 2
theorem
for b1 being set
      st b1 <> {}
   holds ex b2 being set st
      b2 in b1 &
       (for b3, b4, b5, b6, b7, b8, b9 being set
             st b3 in b4 & b4 in b5 & b5 in b6 & b6 in b7 & b7 in b8 & b8 in b9 & b9 in b2
          holds b3 misses b1);

:: MCART_2:funcnot 1 => MCART_2:func 1
definition
  let a1, a2, a3, a4, a5 be set;
  func [A1,A2,A3,A4,A5] -> set equals
    [[a1,a2,a3,a4],a5];
end;

:: MCART_2:def 1
theorem
for b1, b2, b3, b4, b5 being set holds
[b1,b2,b3,b4,b5] = [[b1,b2,b3,b4],b5];

:: MCART_2:th 3
theorem
for b1, b2, b3, b4, b5 being set holds
[b1,b2,b3,b4,b5] = [[[[b1,b2],b3],b4],b5];

:: MCART_2:th 5
theorem
for b1, b2, b3, b4, b5 being set holds
[b1,b2,b3,b4,b5] = [[b1,b2,b3],b4,b5];

:: MCART_2:th 6
theorem
for b1, b2, b3, b4, b5 being set holds
[b1,b2,b3,b4,b5] = [[b1,b2],b3,b4,b5];

:: MCART_2:th 7
theorem
for b1, b2, b3, b4, b5, b6, b7, b8, b9, b10 being set
      st [b1,b2,b3,b4,b5] = [b6,b7,b8,b9,b10]
   holds b1 = b6 & b2 = b7 & b3 = b8 & b4 = b9 & b5 = b10;

:: MCART_2:th 8
theorem
for b1 being set
      st b1 <> {}
   holds ex b2 being set st
      b2 in b1 &
       (for b3, b4, b5, b6, b7 being set
             st (b3 in b1 or b4 in b1)
          holds b2 <> [b3,b4,b5,b6,b7]);

:: MCART_2:funcnot 2 => MCART_2:func 2
definition
  let a1, a2, a3, a4, a5 be set;
  func [:A1,A2,A3,A4,A5:] -> set equals
    [:[:a1,a2,a3,a4:],a5:];
end;

:: MCART_2:def 2
theorem
for b1, b2, b3, b4, b5 being set holds
[:b1,b2,b3,b4,b5:] = [:[:b1,b2,b3,b4:],b5:];

:: MCART_2:th 9
theorem
for b1, b2, b3, b4, b5 being set holds
[:b1,b2,b3,b4,b5:] = [:[:[:[:b1,b2:],b3:],b4:],b5:];

:: MCART_2:th 11
theorem
for b1, b2, b3, b4, b5 being set holds
[:b1,b2,b3,b4,b5:] = [:[:b1,b2,b3:],b4,b5:];

:: MCART_2:th 12
theorem
for b1, b2, b3, b4, b5 being set holds
[:b1,b2,b3,b4,b5:] = [:[:b1,b2:],b3,b4,b5:];

:: MCART_2:th 13
theorem
for b1, b2, b3, b4, b5 being set holds
   b1 <> {} & b2 <> {} & b3 <> {} & b4 <> {} & b5 <> {}
iff
   [:b1,b2,b3,b4,b5:] <> {};

:: MCART_2:th 14
theorem
for b1, b2, b3, b4, b5, b6, b7, b8, b9, b10 being set
      st b1 <> {} &
         b2 <> {} &
         b3 <> {} &
         b4 <> {} &
         b5 <> {} &
         [:b1,b2,b3,b4,b5:] = [:b6,b7,b8,b9,b10:]
   holds b1 = b6 & b2 = b7 & b3 = b8 & b4 = b9 & b5 = b10;

:: MCART_2:th 15
theorem
for b1, b2, b3, b4, b5, b6, b7, b8, b9, b10 being set
      st [:b1,b2,b3,b4,b5:] <> {} &
         [:b1,b2,b3,b4,b5:] = [:b6,b7,b8,b9,b10:]
   holds b1 = b6 & b2 = b7 & b3 = b8 & b4 = b9 & b5 = b10;

:: MCART_2:th 16
theorem
for b1, b2 being set
      st [:b1,b1,b1,b1,b1:] = [:b2,b2,b2,b2,b2:]
   holds b1 = b2;

:: MCART_2:th 17
theorem
for b1, b2, b3, b4, b5 being set
   st b1 <> {} & b2 <> {} & b3 <> {} & b4 <> {} & b5 <> {}
for b6 being Element of [:b1,b2,b3,b4,b5:] holds
   ex b7 being Element of b1 st
      ex b8 being Element of b2 st
         ex b9 being Element of b3 st
            ex b10 being Element of b4 st
               ex b11 being Element of b5 st
                  b6 = [b7,b8,b9,b10,b11];

:: MCART_2:funcnot 3 => MCART_2:func 3
definition
  let a1, a2, a3, a4, a5 be set;
  let a6 be Element of [:a1,a2,a3,a4,a5:];
  assume a1 <> {} & a2 <> {} & a3 <> {} & a4 <> {} & a5 <> {};
  func A6 `1 -> Element of a1 means
    for b1, b2, b3, b4, b5 being set
          st a6 = [b1,b2,b3,b4,b5]
       holds it = b1;
end;

:: MCART_2:def 3
theorem
for b1, b2, b3, b4, b5 being set
   st b1 <> {} & b2 <> {} & b3 <> {} & b4 <> {} & b5 <> {}
for b6 being Element of [:b1,b2,b3,b4,b5:]
for b7 being Element of b1 holds
      b7 = b6 `1
   iff
      for b8, b9, b10, b11, b12 being set
            st b6 = [b8,b9,b10,b11,b12]
         holds b7 = b8;

:: MCART_2:funcnot 4 => MCART_2:func 4
definition
  let a1, a2, a3, a4, a5 be set;
  let a6 be Element of [:a1,a2,a3,a4,a5:];
  assume a1 <> {} & a2 <> {} & a3 <> {} & a4 <> {} & a5 <> {};
  func A6 `2 -> Element of a2 means
    for b1, b2, b3, b4, b5 being set
          st a6 = [b1,b2,b3,b4,b5]
       holds it = b2;
end;

:: MCART_2:def 4
theorem
for b1, b2, b3, b4, b5 being set
   st b1 <> {} & b2 <> {} & b3 <> {} & b4 <> {} & b5 <> {}
for b6 being Element of [:b1,b2,b3,b4,b5:]
for b7 being Element of b2 holds
      b7 = b6 `2
   iff
      for b8, b9, b10, b11, b12 being set
            st b6 = [b8,b9,b10,b11,b12]
         holds b7 = b9;

:: MCART_2:funcnot 5 => MCART_2:func 5
definition
  let a1, a2, a3, a4, a5 be set;
  let a6 be Element of [:a1,a2,a3,a4,a5:];
  assume a1 <> {} & a2 <> {} & a3 <> {} & a4 <> {} & a5 <> {};
  func A6 `3 -> Element of a3 means
    for b1, b2, b3, b4, b5 being set
          st a6 = [b1,b2,b3,b4,b5]
       holds it = b3;
end;

:: MCART_2:def 5
theorem
for b1, b2, b3, b4, b5 being set
   st b1 <> {} & b2 <> {} & b3 <> {} & b4 <> {} & b5 <> {}
for b6 being Element of [:b1,b2,b3,b4,b5:]
for b7 being Element of b3 holds
      b7 = b6 `3
   iff
      for b8, b9, b10, b11, b12 being set
            st b6 = [b8,b9,b10,b11,b12]
         holds b7 = b10;

:: MCART_2:funcnot 6 => MCART_2:func 6
definition
  let a1, a2, a3, a4, a5 be set;
  let a6 be Element of [:a1,a2,a3,a4,a5:];
  assume a1 <> {} & a2 <> {} & a3 <> {} & a4 <> {} & a5 <> {};
  func A6 `4 -> Element of a4 means
    for b1, b2, b3, b4, b5 being set
          st a6 = [b1,b2,b3,b4,b5]
       holds it = b4;
end;

:: MCART_2:def 6
theorem
for b1, b2, b3, b4, b5 being set
   st b1 <> {} & b2 <> {} & b3 <> {} & b4 <> {} & b5 <> {}
for b6 being Element of [:b1,b2,b3,b4,b5:]
for b7 being Element of b4 holds
      b7 = b6 `4
   iff
      for b8, b9, b10, b11, b12 being set
            st b6 = [b8,b9,b10,b11,b12]
         holds b7 = b11;

:: MCART_2:funcnot 7 => MCART_2:func 7
definition
  let a1, a2, a3, a4, a5 be set;
  let a6 be Element of [:a1,a2,a3,a4,a5:];
  assume a1 <> {} & a2 <> {} & a3 <> {} & a4 <> {} & a5 <> {};
  func A6 `5 -> Element of a5 means
    for b1, b2, b3, b4, b5 being set
          st a6 = [b1,b2,b3,b4,b5]
       holds it = b5;
end;

:: MCART_2:def 7
theorem
for b1, b2, b3, b4, b5 being set
   st b1 <> {} & b2 <> {} & b3 <> {} & b4 <> {} & b5 <> {}
for b6 being Element of [:b1,b2,b3,b4,b5:]
for b7 being Element of b5 holds
      b7 = b6 `5
   iff
      for b8, b9, b10, b11, b12 being set
            st b6 = [b8,b9,b10,b11,b12]
         holds b7 = b12;

:: MCART_2:th 18
theorem
for b1, b2, b3, b4, b5 being set
   st b1 <> {} & b2 <> {} & b3 <> {} & b4 <> {} & b5 <> {}
for b6 being Element of [:b1,b2,b3,b4,b5:]
for b7, b8, b9, b10, b11 being set
      st b6 = [b7,b8,b9,b10,b11]
   holds b6 `1 = b7 & b6 `2 = b8 & b6 `3 = b9 & b6 `4 = b10 & b6 `5 = b11;

:: MCART_2:th 19
theorem
for b1, b2, b3, b4, b5 being set
   st b1 <> {} & b2 <> {} & b3 <> {} & b4 <> {} & b5 <> {}
for b6 being Element of [:b1,b2,b3,b4,b5:] holds
   b6 = [b6 `1,b6 `2,b6 `3,b6 `4,b6 `5];

:: MCART_2:th 20
theorem
for b1, b2, b3, b4, b5 being set
   st b1 <> {} & b2 <> {} & b3 <> {} & b4 <> {} & b5 <> {}
for b6 being Element of [:b1,b2,b3,b4,b5:] holds
   b6 `1 = b6 `1 `1 `1 `1 & b6 `2 = b6 `1 `1 `1 `2 & b6 `3 = b6 `1 `1 `2 & b6 `4 = b6 `1 `2 & b6 `5 = b6 `2;

:: MCART_2:th 21
theorem
for b1, b2, b3, b4, b5 being set
      st (not b1 c= [:b1,b2,b3,b4,b5:] & not b1 c= [:b2,b3,b4,b5,b1:] & not b1 c= [:b3,b4,b5,b1,b2:] & not b1 c= [:b4,b5,b1,b2,b3:] implies b1 c= [:b5,b1,b2,b3,b4:])
   holds b1 = {};

:: MCART_2:th 22
theorem
for b1, b2, b3, b4, b5, b6, b7, b8, b9, b10 being set
      st [:b1,b2,b3,b4,b5:] meets [:b6,b7,b8,b9,b10:]
   holds b1 meets b6 & b2 meets b7 & b3 meets b8 & b4 meets b9 & b5 meets b10;

:: MCART_2:th 23
theorem
for b1, b2, b3, b4, b5 being set holds
[:{b1},{b2},{b3},{b4},{b5}:] = {[b1,b2,b3,b4,b5]};

:: MCART_2:th 24
theorem
for b1, b2, b3, b4, b5 being set
for b6 being Element of [:b1,b2,b3,b4,b5:]
   st b1 <> {} & b2 <> {} & b3 <> {} & b4 <> {} & b5 <> {}
for b7, b8, b9, b10, b11 being set
      st b6 = [b7,b8,b9,b10,b11]
   holds b6 `1 = b7 & b6 `2 = b8 & b6 `3 = b9 & b6 `4 = b10 & b6 `5 = b11;

:: MCART_2:th 25
theorem
for b1, b2, b3, b4, b5, b6 being set
for b7 being Element of [:b1,b2,b3,b4,b5:]
      st b1 <> {} &
         b2 <> {} &
         b3 <> {} &
         b4 <> {} &
         b5 <> {} &
         (for b8 being Element of b1
         for b9 being Element of b2
         for b10 being Element of b3
         for b11 being Element of b4
         for b12 being Element of b5
               st b7 = [b8,b9,b10,b11,b12]
            holds b6 = b8)
   holds b6 = b7 `1;

:: MCART_2:th 26
theorem
for b1, b2, b3, b4, b5, b6 being set
for b7 being Element of [:b1,b2,b3,b4,b5:]
      st b1 <> {} &
         b2 <> {} &
         b3 <> {} &
         b4 <> {} &
         b5 <> {} &
         (for b8 being Element of b1
         for b9 being Element of b2
         for b10 being Element of b3
         for b11 being Element of b4
         for b12 being Element of b5
               st b7 = [b8,b9,b10,b11,b12]
            holds b6 = b9)
   holds b6 = b7 `2;

:: MCART_2:th 27
theorem
for b1, b2, b3, b4, b5, b6 being set
for b7 being Element of [:b1,b2,b3,b4,b5:]
      st b1 <> {} &
         b2 <> {} &
         b3 <> {} &
         b4 <> {} &
         b5 <> {} &
         (for b8 being Element of b1
         for b9 being Element of b2
         for b10 being Element of b3
         for b11 being Element of b4
         for b12 being Element of b5
               st b7 = [b8,b9,b10,b11,b12]
            holds b6 = b10)
   holds b6 = b7 `3;

:: MCART_2:th 28
theorem
for b1, b2, b3, b4, b5, b6 being set
for b7 being Element of [:b1,b2,b3,b4,b5:]
      st b1 <> {} &
         b2 <> {} &
         b3 <> {} &
         b4 <> {} &
         b5 <> {} &
         (for b8 being Element of b1
         for b9 being Element of b2
         for b10 being Element of b3
         for b11 being Element of b4
         for b12 being Element of b5
               st b7 = [b8,b9,b10,b11,b12]
            holds b6 = b11)
   holds b6 = b7 `4;

:: MCART_2:th 29
theorem
for b1, b2, b3, b4, b5, b6 being set
for b7 being Element of [:b1,b2,b3,b4,b5:]
      st b1 <> {} &
         b2 <> {} &
         b3 <> {} &
         b4 <> {} &
         b5 <> {} &
         (for b8 being Element of b1
         for b9 being Element of b2
         for b10 being Element of b3
         for b11 being Element of b4
         for b12 being Element of b5
               st b7 = [b8,b9,b10,b11,b12]
            holds b6 = b12)
   holds b6 = b7 `5;

:: MCART_2:th 30
theorem
for b1, b2, b3, b4, b5, b6 being set
      st b1 in [:b2,b3,b4,b5,b6:]
   holds ex b7, b8, b9, b10, b11 being set st
      b7 in b2 & b8 in b3 & b9 in b4 & b10 in b5 & b11 in b6 & b1 = [b7,b8,b9,b10,b11];

:: MCART_2:th 31
theorem
for b1, b2, b3, b4, b5, b6, b7, b8, b9, b10 being set holds
   [b1,b2,b3,b4,b5] in [:b6,b7,b8,b9,b10:]
iff
   b1 in b6 & b2 in b7 & b3 in b8 & b4 in b9 & b5 in b10;

:: MCART_2:th 32
theorem
for b1, b2, b3, b4, b5, b6 being set
      st for b7 being set holds
              b7 in b1
           iff
              ex b8, b9, b10, b11, b12 being set st
                 b8 in b2 & b9 in b3 & b10 in b4 & b11 in b5 & b12 in b6 & b7 = [b8,b9,b10,b11,b12]
   holds b1 = [:b2,b3,b4,b5,b6:];

:: MCART_2:th 33
theorem
for b1, b2, b3, b4, b5, b6, b7, b8, b9, b10 being set
   st b1 <> {} & b2 <> {} & b3 <> {} & b4 <> {} & b5 <> {} & b6 <> {} & b7 <> {} & b8 <> {} & b9 <> {} & b10 <> {}
for b11 being Element of [:b1,b2,b3,b4,b5:]
for b12 being Element of [:b6,b7,b8,b9,b10:]
      st b11 = b12
   holds b11 `1 = b12 `1 & b11 `2 = b12 `2 & b11 `3 = b12 `3 & b11 `4 = b12 `4 & b11 `5 = b12 `5;

:: MCART_2:th 34
theorem
for b1, b2, b3, b4, b5 being set
for b6 being Element of bool b1
for b7 being Element of bool b2
for b8 being Element of bool b3
for b9 being Element of bool b4
for b10 being Element of bool b5
for b11 being Element of [:b1,b2,b3,b4,b5:]
      st b11 in [:b6,b7,b8,b9,b10:]
   holds b11 `1 in b6 & b11 `2 in b7 & b11 `3 in b8 & b11 `4 in b9 & b11 `5 in b10;

:: MCART_2:th 35
theorem
for b1, b2, b3, b4, b5, b6, b7, b8, b9, b10 being set
      st b1 c= b2 & b3 c= b4 & b5 c= b6 & b7 c= b8 & b9 c= b10
   holds [:b1,b3,b5,b7,b9:] c= [:b2,b4,b6,b8,b10:];

:: MCART_2:funcnot 8 => MCART_2:func 8
definition
  let a1, a2, a3, a4, a5 be set;
  let a6 be Element of bool a1;
  let a7 be Element of bool a2;
  let a8 be Element of bool a3;
  let a9 be Element of bool a4;
  let a10 be Element of bool a5;
  redefine func [:a6, a7, a8, a9, a10:] -> Element of bool [:a1,a2,a3,a4,a5:];
end;

:: MCART_2:th 36
theorem
for b1, b2 being set
   st b1 <> {} & b2 <> {}
for b3 being Element of [:b1,b2:] holds
   ex b4 being Element of b1 st
      ex b5 being Element of b2 st
         b3 = [b4,b5];

:: MCART_2:th 37
theorem
for b1, b2, b3 being set
   st b1 <> {} & b2 <> {} & b3 <> {}
for b4 being Element of [:b1,b2,b3:] holds
   ex b5 being Element of b1 st
      ex b6 being Element of b2 st
         ex b7 being Element of b3 st
            b4 = [b5,b6,b7];

:: MCART_2:th 38
theorem
for b1, b2, b3, b4 being set
   st b1 <> {} & b2 <> {} & b3 <> {} & b4 <> {}
for b5 being Element of [:b1,b2,b3,b4:] holds
   ex b6 being Element of b1 st
      ex b7 being Element of b2 st
         ex b8 being Element of b3 st
            ex b9 being Element of b4 st
               b5 = [b6,b7,b8,b9];