Article MCART_1, MML version 4.99.1005

:: MCART_1:th 1
theorem
for b1 being set
      st b1 <> {}
   holds ex b2 being set st
      b2 in b1 & b2 misses b1;

:: MCART_1:th 2
theorem
for b1 being set
      st b1 <> {}
   holds ex b2 being set st
      b2 in b1 &
       (for b3 being set
             st b3 in b2
          holds b3 misses b1);

:: MCART_1:th 3
theorem
for b1 being set
      st b1 <> {}
   holds ex b2 being set st
      b2 in b1 &
       (for b3, b4 being set
             st b3 in b4 & b4 in b2
          holds b3 misses b1);

:: MCART_1:th 4
theorem
for b1 being set
      st b1 <> {}
   holds ex b2 being set st
      b2 in b1 &
       (for b3, b4, b5 being set
             st b3 in b4 & b4 in b5 & b5 in b2
          holds b3 misses b1);

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

:: MCART_1:th 6
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 b4 & b4 in b5 & b5 in b6 & b6 in b7 & b7 in b2
          holds b3 misses b1);

:: MCART_1:funcnot 1 => MCART_1:func 1
definition
  let a1 be set;
  assume ex b1, b2 being set st
       a1 = [b1,b2];
  func A1 `1 -> set means
    for b1, b2 being set
          st a1 = [b1,b2]
       holds it = b1;
end;

:: MCART_1:def 1
theorem
for b1 being set
   st ex b2, b3 being set st
        b1 = [b2,b3]
for b2 being set holds
      b2 = b1 `1
   iff
      for b3, b4 being set
            st b1 = [b3,b4]
         holds b2 = b3;

:: MCART_1:funcnot 2 => MCART_1:func 2
definition
  let a1 be set;
  assume ex b1, b2 being set st
       a1 = [b1,b2];
  func A1 `2 -> set means
    for b1, b2 being set
          st a1 = [b1,b2]
       holds it = b2;
end;

:: MCART_1:def 2
theorem
for b1 being set
   st ex b2, b3 being set st
        b1 = [b2,b3]
for b2 being set holds
      b2 = b1 `2
   iff
      for b3, b4 being set
            st b1 = [b3,b4]
         holds b2 = b4;

:: MCART_1:th 7
theorem
for b1, b2 being set holds
[b1,b2] `1 = b1 & [b1,b2] `2 = b2;

:: MCART_1:th 8
theorem
for b1 being set
      st ex b2, b3 being set st
           b1 = [b2,b3]
   holds [b1 `1,b1 `2] = b1;

:: MCART_1:th 9
theorem
for b1 being set
      st b1 <> {}
   holds ex b2 being set st
      b2 in b1 &
       (for b3, b4 being set
             st (b3 in b1 or b4 in b1)
          holds b2 <> [b3,b4]);

:: MCART_1:th 10
theorem
for b1, b2, b3 being set
      st b1 in [:b2,b3:]
   holds b1 `1 in b2 & b1 `2 in b3;

:: MCART_1:th 11
theorem
for b1, b2, b3 being set
      st (ex b4, b5 being set st
            b1 = [b4,b5]) &
         b1 `1 in b2 &
         b1 `2 in b3
   holds b1 in [:b2,b3:];

:: MCART_1:th 12
theorem
for b1, b2, b3 being set
      st b1 in [:{b2},b3:]
   holds b1 `1 = b2 & b1 `2 in b3;

:: MCART_1:th 13
theorem
for b1, b2, b3 being set
      st b1 in [:b2,{b3}:]
   holds b1 `1 in b2 & b1 `2 = b3;

:: MCART_1:th 14
theorem
for b1, b2, b3 being set
      st b1 in [:{b2},{b3}:]
   holds b1 `1 = b2 & b1 `2 = b3;

:: MCART_1:th 15
theorem
for b1, b2, b3, b4 being set
      st b1 in [:{b2,b3},b4:]
   holds (b1 `1 = b2 or b1 `1 = b3) & b1 `2 in b4;

:: MCART_1:th 16
theorem
for b1, b2, b3, b4 being set
      st b1 in [:b2,{b3,b4}:]
   holds b1 `1 in b2 & (b1 `2 = b3 or b1 `2 = b4);

:: MCART_1:th 17
theorem
for b1, b2, b3, b4 being set
      st b1 in [:{b2,b3},{b4}:]
   holds (b1 `1 = b2 or b1 `1 = b3) & b1 `2 = b4;

:: MCART_1:th 18
theorem
for b1, b2, b3, b4 being set
      st b1 in [:{b2},{b3,b4}:]
   holds b1 `1 = b2 & (b1 `2 = b3 or b1 `2 = b4);

:: MCART_1:th 19
theorem
for b1, b2, b3, b4, b5 being set
      st b1 in [:{b2,b3},{b4,b5}:]
   holds (b1 `1 = b2 or b1 `1 = b3) & (b1 `2 = b4 or b1 `2 = b5);

:: MCART_1:th 20
theorem
for b1 being set
      st ex b2, b3 being set st
           b1 = [b2,b3]
   holds b1 <> b1 `1 & b1 <> b1 `2;

:: MCART_1:th 23
theorem
for b1, b2, b3 being set
      st b1 in [:b2,b3:]
   holds b1 = [b1 `1,b1 `2];

:: MCART_1:th 24
theorem
for b1, b2 being set
   st b1 <> {} & b2 <> {}
for b3 being Element of [:b1,b2:] holds
   b3 = [b3 `1,b3 `2];

:: MCART_1:th 25
theorem
for b1, b2, b3, b4 being set holds
[:{b1,b2},{b3,b4}:] = {[b1,b3],[b1,b4],[b2,b3],[b2,b4]};

:: MCART_1:th 26
theorem
for b1, b2 being set
   st b1 <> {} & b2 <> {}
for b3 being Element of [:b1,b2:] holds
   b3 <> b3 `1 & b3 <> b3 `2;

:: MCART_1:funcnot 3 => MCART_1:func 3
definition
  let a1, a2, a3 be set;
  func [A1,A2,A3] -> set equals
    [[a1,a2],a3];
end;

:: MCART_1:def 3
theorem
for b1, b2, b3 being set holds
[b1,b2,b3] = [[b1,b2],b3];

:: MCART_1:th 28
theorem
for b1, b2, b3, b4, b5, b6 being set
      st [b1,b2,b3] = [b4,b5,b6]
   holds b1 = b4 & b2 = b5 & b3 = b6;

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

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

:: MCART_1:def 4
theorem
for b1, b2, b3, b4 being set holds
[b1,b2,b3,b4] = [[b1,b2,b3],b4];

:: MCART_1:th 31
theorem
for b1, b2, b3, b4 being set holds
[b1,b2,b3,b4] = [[[b1,b2],b3],b4];

:: MCART_1:th 32
theorem
for b1, b2, b3, b4 being set holds
[b1,b2,b3,b4] = [[b1,b2],b3,b4];

:: MCART_1:th 33
theorem
for b1, b2, b3, b4, b5, b6, b7, b8 being set
      st [b1,b2,b3,b4] = [b5,b6,b7,b8]
   holds b1 = b5 & b2 = b6 & b3 = b7 & b4 = b8;

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

:: MCART_1:th 35
theorem
for b1, b2, b3 being set holds
   b1 <> {} & b2 <> {} & b3 <> {}
iff
   [:b1,b2,b3:] <> {};

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

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

:: MCART_1:th 38
theorem
for b1, b2 being set
      st [:b1,b1,b1:] = [:b2,b2,b2:]
   holds b1 = b2;

:: MCART_1:th 39
theorem
for b1, b2, b3 being set holds
[:{b1},{b2},{b3}:] = {[b1,b2,b3]};

:: MCART_1:th 40
theorem
for b1, b2, b3, b4 being set holds
[:{b1,b2},{b3},{b4}:] = {[b1,b3,b4],[b2,b3,b4]};

:: MCART_1:th 41
theorem
for b1, b2, b3, b4 being set holds
[:{b1},{b2,b3},{b4}:] = {[b1,b2,b4],[b1,b3,b4]};

:: MCART_1:th 42
theorem
for b1, b2, b3, b4 being set holds
[:{b1},{b2},{b3,b4}:] = {[b1,b2,b3],[b1,b2,b4]};

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

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

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

:: MCART_1:th 46
theorem
for b1, b2, b3, b4, b5, b6 being set holds
[:{b1,b2},{b3,b4},{b5,b6}:] = {[b1,b3,b5],[b1,b4,b5],[b1,b3,b6],[b1,b4,b6],[b2,b3,b5],[b2,b4,b5],[b2,b3,b6],[b2,b4,b6]};

:: MCART_1:funcnot 5 => MCART_1:func 5
definition
  let a1, a2, a3 be set;
  let a4 be Element of [:a1,a2,a3:];
  assume a1 <> {} & a2 <> {} & a3 <> {};
  func A4 `1 -> Element of a1 means
    for b1, b2, b3 being set
          st a4 = [b1,b2,b3]
       holds it = b1;
end;

:: MCART_1:def 5
theorem
for b1, b2, b3 being set
   st b1 <> {} & b2 <> {} & b3 <> {}
for b4 being Element of [:b1,b2,b3:]
for b5 being Element of b1 holds
      b5 = b4 `1
   iff
      for b6, b7, b8 being set
            st b4 = [b6,b7,b8]
         holds b5 = b6;

:: MCART_1:funcnot 6 => MCART_1:func 6
definition
  let a1, a2, a3 be set;
  let a4 be Element of [:a1,a2,a3:];
  assume a1 <> {} & a2 <> {} & a3 <> {};
  func A4 `2 -> Element of a2 means
    for b1, b2, b3 being set
          st a4 = [b1,b2,b3]
       holds it = b2;
end;

:: MCART_1:def 6
theorem
for b1, b2, b3 being set
   st b1 <> {} & b2 <> {} & b3 <> {}
for b4 being Element of [:b1,b2,b3:]
for b5 being Element of b2 holds
      b5 = b4 `2
   iff
      for b6, b7, b8 being set
            st b4 = [b6,b7,b8]
         holds b5 = b7;

:: MCART_1:funcnot 7 => MCART_1:func 7
definition
  let a1, a2, a3 be set;
  let a4 be Element of [:a1,a2,a3:];
  assume a1 <> {} & a2 <> {} & a3 <> {};
  func A4 `3 -> Element of a3 means
    for b1, b2, b3 being set
          st a4 = [b1,b2,b3]
       holds it = b3;
end;

:: MCART_1:def 7
theorem
for b1, b2, b3 being set
   st b1 <> {} & b2 <> {} & b3 <> {}
for b4 being Element of [:b1,b2,b3:]
for b5 being Element of b3 holds
      b5 = b4 `3
   iff
      for b6, b7, b8 being set
            st b4 = [b6,b7,b8]
         holds b5 = b8;

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

:: MCART_1:th 48
theorem
for b1, b2, b3 being set
   st b1 <> {} & b2 <> {} & b3 <> {}
for b4 being Element of [:b1,b2,b3:] holds
   b4 = [b4 `1,b4 `2,b4 `3];

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

:: MCART_1:th 50
theorem
for b1, b2, b3 being set
   st b1 <> {} & b2 <> {} & b3 <> {}
for b4 being Element of [:b1,b2,b3:] holds
   b4 `1 = b4 `1 `1 & b4 `2 = b4 `1 `2 & b4 `3 = b4 `2;

:: MCART_1:th 51
theorem
for b1, b2, b3 being set
   st b1 <> {} & b2 <> {} & b3 <> {}
for b4 being Element of [:b1,b2,b3:] holds
   b4 <> b4 `1 & b4 <> b4 `2 & b4 <> b4 `3;

:: MCART_1:th 52
theorem
for b1, b2, b3, b4, b5, b6 being set
      st [:b1,b2,b3:] meets [:b4,b5,b6:]
   holds b1 meets b4 & b2 meets b5 & b3 meets b6;

:: MCART_1:th 53
theorem
for b1, b2, b3, b4 being set holds
[:b1,b2,b3,b4:] = [:[:[:b1,b2:],b3:],b4:];

:: MCART_1:th 54
theorem
for b1, b2, b3, b4 being set holds
[:[:b1,b2:],b3,b4:] = [:b1,b2,b3,b4:];

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

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

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

:: MCART_1:th 58
theorem
for b1, b2 being set
      st [:b1,b1,b1,b1:] = [:b2,b2,b2,b2:]
   holds b1 = b2;

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

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

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

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

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

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

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

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

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

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

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

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

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

:: MCART_1:th 64
theorem
for b1, b2, b3, b4, b5, b6, b7, b8 being set
      st [:b1,b2,b3,b4:] meets [:b5,b6,b7,b8:]
   holds b1 meets b5 & b2 meets b6 & b3 meets b7 & b4 meets b8;

:: MCART_1:th 65
theorem
for b1, b2, b3, b4 being set holds
[:{b1},{b2},{b3},{b4}:] = {[b1,b2,b3,b4]};

:: MCART_1:th 66
theorem
for b1, b2 being set
   st [:b1,b2:] <> {}
for b3 being Element of [:b1,b2:] holds
   b3 <> b3 `1 & b3 <> b3 `2;

:: MCART_1:th 67
theorem
for b1, b2, b3 being set
      st b1 in [:b2,b3:]
   holds b1 <> b1 `1 & b1 <> b1 `2;

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

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

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

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

:: MCART_1:th 72
theorem
for b1, b2, b3, b4 being set
      st b1 in [:b2,b3,b4:]
   holds ex b5, b6, b7 being set st
      b5 in b2 & b6 in b3 & b7 in b4 & b1 = [b5,b6,b7];

:: MCART_1:th 73
theorem
for b1, b2, b3, b4, b5, b6 being set holds
   [b1,b2,b3] in [:b4,b5,b6:]
iff
   b1 in b4 & b2 in b5 & b3 in b6;

:: MCART_1:th 74
theorem
for b1, b2, b3, b4 being set
      st for b5 being set holds
              b5 in b1
           iff
              ex b6, b7, b8 being set st
                 b6 in b2 & b7 in b3 & b8 in b4 & b5 = [b6,b7,b8]
   holds b1 = [:b2,b3,b4:];

:: MCART_1:th 75
theorem
for b1, b2, b3, b4, b5, b6 being set
   st b1 <> {} & b2 <> {} & b3 <> {} & b4 <> {} & b5 <> {} & b6 <> {}
for b7 being Element of [:b1,b2,b3:]
for b8 being Element of [:b4,b5,b6:]
      st b7 = b8
   holds b7 `1 = b8 `1 & b7 `2 = b8 `2 & b7 `3 = b8 `3;

:: MCART_1:th 76
theorem
for b1, b2, b3 being set
for b4 being Element of bool b1
for b5 being Element of bool b2
for b6 being Element of bool b3
for b7 being Element of [:b1,b2,b3:]
      st b7 in [:b4,b5,b6:]
   holds b7 `1 in b4 & b7 `2 in b5 & b7 `3 in b6;

:: MCART_1:th 77
theorem
for b1, b2, b3, b4, b5, b6 being set
      st b1 c= b2 & b3 c= b4 & b5 c= b6
   holds [:b1,b3,b5:] c= [:b2,b4,b6:];

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

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

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

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

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

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

:: MCART_1:th 84
theorem
for b1, b2, b3, b4, b5, b6, b7, b8 being set holds
   [b1,b2,b3,b4] in [:b5,b6,b7,b8:]
iff
   b1 in b5 & b2 in b6 & b3 in b7 & b4 in b8;

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

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

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

:: MCART_1:th 88
theorem
for b1, b2, b3, b4, b5, b6, b7, b8 being set
      st b1 c= b2 & b3 c= b4 & b5 c= b6 & b7 c= b8
   holds [:b1,b3,b5,b7:] c= [:b2,b4,b6,b8:];

:: MCART_1:funcnot 12 => MCART_1:func 12
definition
  let a1, a2 be set;
  let a3 be Element of bool a1;
  let a4 be Element of bool a2;
  redefine func [:a3, a4:] -> Element of bool [:a1,a2:];
end;

:: MCART_1:funcnot 13 => MCART_1:func 13
definition
  let a1, a2, a3 be set;
  let a4 be Element of bool a1;
  let a5 be Element of bool a2;
  let a6 be Element of bool a3;
  redefine func [:a4, a5, a6:] -> Element of bool [:a1,a2,a3:];
end;

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

:: MCART_1:funcnot 15 => MCART_1:func 15
definition
  let a1 be Relation-like Function-like set;
  func pr1 A1 -> Relation-like Function-like set means
    proj1 it = proj1 a1 &
     (for b1 being set
           st b1 in proj1 a1
        holds it . b1 = (a1 . b1) `1);
end;

:: MCART_1:def 12
theorem
for b1, b2 being Relation-like Function-like set holds
   b2 = pr1 b1
iff
   proj1 b2 = proj1 b1 &
    (for b3 being set
          st b3 in proj1 b1
       holds b2 . b3 = (b1 . b3) `1);

:: MCART_1:funcnot 16 => MCART_1:func 16
definition
  let a1 be Relation-like Function-like set;
  func pr2 A1 -> Relation-like Function-like set means
    proj1 it = proj1 a1 &
     (for b1 being set
           st b1 in proj1 a1
        holds it . b1 = (a1 . b1) `2);
end;

:: MCART_1:def 13
theorem
for b1, b2 being Relation-like Function-like set holds
   b2 = pr2 b1
iff
   proj1 b2 = proj1 b1 &
    (for b3 being set
          st b3 in proj1 b1
       holds b2 . b3 = (b1 . b3) `2);

:: MCART_1:funcnot 17 => MCART_1:func 17
definition
  let a1 be set;
  func A1 `11 -> set equals
    a1 `1 `1;
end;

:: MCART_1:def 14
theorem
for b1 being set holds
   b1 `11 = b1 `1 `1;

:: MCART_1:funcnot 18 => MCART_1:func 18
definition
  let a1 be set;
  func A1 `12 -> set equals
    a1 `1 `2;
end;

:: MCART_1:def 15
theorem
for b1 being set holds
   b1 `12 = b1 `1 `2;

:: MCART_1:funcnot 19 => MCART_1:func 19
definition
  let a1 be set;
  func A1 `21 -> set equals
    a1 `2 `1;
end;

:: MCART_1:def 16
theorem
for b1 being set holds
   b1 `21 = b1 `2 `1;

:: MCART_1:funcnot 20 => MCART_1:func 20
definition
  let a1 be set;
  func A1 `22 -> set equals
    a1 `2 `2;
end;

:: MCART_1:def 17
theorem
for b1 being set holds
   b1 `22 = b1 `2 `2;

:: MCART_1:th 89
theorem
for b1, b2, b3, b4, b5, b6 being set holds
[[b1,b2],b3] `11 = b1 &
 [[b1,b2],b3] `12 = b2 &
 [b6,[b4,b5]] `21 = b4 &
 [b6,[b4,b5]] `22 = b5;

:: MCART_1:th 90
theorem
for b1 being set
for b2 being Relation-like set
      st b1 in b2
   holds b1 = [b1 `1,b1 `2];

:: MCART_1:th 91
theorem
for b1 being set
for b2 being Relation-like set
      st b1 in b2
   holds b1 `1 in proj1 b2 & b1 `2 in proj2 b2;