Article DOMAIN_1, MML version 4.99.1005

:: DOMAIN_1:th 9
theorem
for b1 being set
for b2, b3 being non empty set
      st b1 in [:b2,b3:]
   holds ex b4 being Element of b2 st
      ex b5 being Element of b3 st
         b1 = [b4,b5];

:: DOMAIN_1:th 12
theorem
for b1, b2 being non empty set
for b3, b4 being Element of [:b1,b2:]
      st b3 `1 = b4 `1 & b3 `2 = b4 `2
   holds b3 = b4;

:: DOMAIN_1:funcnot 1 => DOMAIN_1:func 1
definition
  let a1, a2 be non empty set;
  let a3 be Element of a1;
  let a4 be Element of a2;
  redefine func [a3, a4] -> Element of [:a1,a2:];
end;

:: DOMAIN_1:funcnot 2 => DOMAIN_1:func 2
definition
  let a1, a2 be non empty set;
  let a3 be Element of [:a1,a2:];
  redefine func a3 `1 -> Element of a1;
end;

:: DOMAIN_1:funcnot 3 => DOMAIN_1:func 3
definition
  let a1, a2 be non empty set;
  let a3 be Element of [:a1,a2:];
  redefine func a3 `2 -> Element of a2;
end;

:: DOMAIN_1:th 15
theorem
for b1 being set
for b2, b3, b4 being non empty set holds
   b1 in [:b2,b3,b4:]
iff
   ex b5 being Element of b2 st
      ex b6 being Element of b3 st
         ex b7 being Element of b4 st
            b1 = [b5,b6,b7];

:: DOMAIN_1:th 16
theorem
for b1, b2, b3, b4 being non empty set
      st for b5 being set holds
              b5 in b1
           iff
              ex b6 being Element of b2 st
                 ex b7 being Element of b3 st
                    ex b8 being Element of b4 st
                       b5 = [b6,b7,b8]
   holds b1 = [:b2,b3,b4:];

:: DOMAIN_1:th 17
theorem
for b1, b2, b3, b4 being non empty set holds
   b1 = [:b2,b3,b4:]
iff
   for b5 being set holds
         b5 in b1
      iff
         ex b6 being Element of b2 st
            ex b7 being Element of b3 st
               ex b8 being Element of b4 st
                  b5 = [b6,b7,b8];

:: DOMAIN_1:funcnot 4 => DOMAIN_1:func 4
definition
  let a1, a2, a3 be non empty set;
  let a4 be Element of a1;
  let a5 be Element of a2;
  let a6 be Element of a3;
  redefine func [a4, a5, a6] -> Element of [:a1,a2,a3:];
end;

:: DOMAIN_1:th 24
theorem
for b1 being set
for b2, b3, b4 being non empty set
for b5 being Element of [:b2,b3,b4:] holds
      b1 = b5 `1
   iff
      for b6 being Element of b2
      for b7 being Element of b3
      for b8 being Element of b4
            st b5 = [b6,b7,b8]
         holds b1 = b6;

:: DOMAIN_1:th 25
theorem
for b1 being set
for b2, b3, b4 being non empty set
for b5 being Element of [:b2,b3,b4:] holds
      b1 = b5 `2
   iff
      for b6 being Element of b2
      for b7 being Element of b3
      for b8 being Element of b4
            st b5 = [b6,b7,b8]
         holds b1 = b7;

:: DOMAIN_1:th 26
theorem
for b1 being set
for b2, b3, b4 being non empty set
for b5 being Element of [:b2,b3,b4:] holds
      b1 = b5 `3
   iff
      for b6 being Element of b2
      for b7 being Element of b3
      for b8 being Element of b4
            st b5 = [b6,b7,b8]
         holds b1 = b8;

:: DOMAIN_1:th 28
theorem
for b1, b2, b3 being non empty set
for b4, b5 being Element of [:b1,b2,b3:]
      st b4 `1 = b5 `1 & b4 `2 = b5 `2 & b4 `3 = b5 `3
   holds b4 = b5;

:: DOMAIN_1:th 31
theorem
for b1 being set
for b2, b3, b4, b5 being non empty set holds
   b1 in [:b2,b3,b4,b5:]
iff
   ex b6 being Element of b2 st
      ex b7 being Element of b3 st
         ex b8 being Element of b4 st
            ex b9 being Element of b5 st
               b1 = [b6,b7,b8,b9];

:: DOMAIN_1:th 32
theorem
for b1, b2, b3, b4, b5 being non empty set
      st for b6 being set holds
              b6 in b1
           iff
              ex b7 being Element of b2 st
                 ex b8 being Element of b3 st
                    ex b9 being Element of b4 st
                       ex b10 being Element of b5 st
                          b6 = [b7,b8,b9,b10]
   holds b1 = [:b2,b3,b4,b5:];

:: DOMAIN_1:th 33
theorem
for b1, b2, b3, b4, b5 being non empty set holds
   b1 = [:b2,b3,b4,b5:]
iff
   for b6 being set holds
         b6 in b1
      iff
         ex b7 being Element of b2 st
            ex b8 being Element of b3 st
               ex b9 being Element of b4 st
                  ex b10 being Element of b5 st
                     b6 = [b7,b8,b9,b10];

:: DOMAIN_1:funcnot 5 => DOMAIN_1:func 5
definition
  let a1, a2, a3, a4 be non empty set;
  let a5 be Element of a1;
  let a6 be Element of a2;
  let a7 be Element of a3;
  let a8 be Element of a4;
  redefine func [a5, a6, a7, a8] -> Element of [:a1,a2,a3,a4:];
end;

:: DOMAIN_1:th 40
theorem
for b1 being set
for b2, b3, b4, b5 being non empty set
for b6 being Element of [:b2,b3,b4,b5:] holds
      b1 = b6 `1
   iff
      for b7 being Element of b2
      for b8 being Element of b3
      for b9 being Element of b4
      for b10 being Element of b5
            st b6 = [b7,b8,b9,b10]
         holds b1 = b7;

:: DOMAIN_1:th 41
theorem
for b1 being set
for b2, b3, b4, b5 being non empty set
for b6 being Element of [:b2,b3,b4,b5:] holds
      b1 = b6 `2
   iff
      for b7 being Element of b2
      for b8 being Element of b3
      for b9 being Element of b4
      for b10 being Element of b5
            st b6 = [b7,b8,b9,b10]
         holds b1 = b8;

:: DOMAIN_1:th 42
theorem
for b1 being set
for b2, b3, b4, b5 being non empty set
for b6 being Element of [:b2,b3,b4,b5:] holds
      b1 = b6 `3
   iff
      for b7 being Element of b2
      for b8 being Element of b3
      for b9 being Element of b4
      for b10 being Element of b5
            st b6 = [b7,b8,b9,b10]
         holds b1 = b9;

:: DOMAIN_1:th 43
theorem
for b1 being set
for b2, b3, b4, b5 being non empty set
for b6 being Element of [:b2,b3,b4,b5:] holds
      b1 = b6 `4
   iff
      for b7 being Element of b2
      for b8 being Element of b3
      for b9 being Element of b4
      for b10 being Element of b5
            st b6 = [b7,b8,b9,b10]
         holds b1 = b10;

:: DOMAIN_1:th 45
theorem
for b1, b2, b3, b4 being non empty set
for b5, b6 being Element of [:b1,b2,b3,b4:]
      st b5 `1 = b6 `1 & b5 `2 = b6 `2 & b5 `3 = b6 `3 & b5 `4 = b6 `4
   holds b5 = b6;

:: DOMAIN_1:sch 1
scheme DOMAIN_1:sch 1
for b1 being non empty set holds
   {b2 where b2 is Element of b1: P1[b2]} is Element of bool b1


:: DOMAIN_1:sch 2
scheme DOMAIN_1:sch 2
for b1, b2 being non empty set holds
{[b3,b4] where b3 is Element of b1, b4 is Element of b2: P1[b3, b4]} is Element of bool [:b1,b2:]


:: DOMAIN_1:sch 3
scheme DOMAIN_1:sch 3
for b1, b2, b3 being non empty set holds
{[b4,b5,b6] where b4 is Element of b1, b5 is Element of b2, b6 is Element of b3: P1[b4, b5, b6]} is Element of bool [:b1,b2,b3:]


:: DOMAIN_1:sch 4
scheme DOMAIN_1:sch 4
for b1, b2, b3, b4 being non empty set holds
{[b5,b6,b7,b8] where b5 is Element of b1, b6 is Element of b2, b7 is Element of b3, b8 is Element of b4: P1[b5, b6, b7, b8]} is Element of bool [:b1,b2,b3,b4:]


:: DOMAIN_1:sch 5
scheme DOMAIN_1:sch 5
for b1 being non empty set
      st for b2 being Element of b1
              st P1[b2]
           holds P2[b2]
   holds {b2 where b2 is Element of b1: P1[b2]} c= {b2 where b2 is Element of b1: P2[b2]}


:: DOMAIN_1:sch 6
scheme DOMAIN_1:sch 6
for b1 being non empty set
      st for b2 being Element of b1 holds
              P1[b2]
           iff
              P2[b2]
   holds {b2 where b2 is Element of b1: P1[b2]} = {b2 where b2 is Element of b1: P2[b2]}


:: DOMAIN_1:sch 7
scheme DOMAIN_1:sch 7
{F1 -> non empty set}:
{b1 where b1 is Element of F1(): P1[b1]} is Element of bool F1()


:: DOMAIN_1:th 48
theorem
for b1 being non empty set holds
   b1 = {b2 where b2 is Element of b1: TRUE};

:: DOMAIN_1:th 49
theorem
for b1, b2 being non empty set holds
[:b1,b2:] = {[b3,b4] where b3 is Element of b1, b4 is Element of b2: TRUE};

:: DOMAIN_1:th 50
theorem
for b1, b2, b3 being non empty set holds
[:b1,b2,b3:] = {[b4,b5,b6] where b4 is Element of b1, b5 is Element of b2, b6 is Element of b3: TRUE};

:: DOMAIN_1:th 51
theorem
for b1, b2, b3, b4 being non empty set holds
[:b1,b2,b3,b4:] = {[b5,b6,b7,b8] where b5 is Element of b1, b6 is Element of b2, b7 is Element of b3, b8 is Element of b4: TRUE};

:: DOMAIN_1:th 52
theorem
for b1 being non empty set
for b2 being Element of bool b1 holds
   b2 = {b3 where b3 is Element of b1: b3 in b2};

:: DOMAIN_1:th 53
theorem
for b1, b2 being non empty set
for b3 being Element of bool b1
for b4 being Element of bool b2 holds
   [:b3,b4:] = {[b5,b6] where b5 is Element of b1, b6 is Element of b2: b5 in b3 & b6 in b4};

:: DOMAIN_1:th 54
theorem
for b1, b2, b3 being non empty set
for b4 being Element of bool b1
for b5 being Element of bool b2
for b6 being Element of bool b3 holds
   [:b4,b5,b6:] = {[b7,b8,b9] where b7 is Element of b1, b8 is Element of b2, b9 is Element of b3: b7 in b4 & b8 in b5 & b9 in b6};

:: DOMAIN_1:th 55
theorem
for b1, b2, b3, b4 being non empty 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 holds
   [:b5,b6,b7,b8:] = {[b9,b10,b11,b12] where b9 is Element of b1, b10 is Element of b2, b11 is Element of b3, b12 is Element of b4: b9 in b5 & b10 in b6 & b11 in b7 & b12 in b8};

:: DOMAIN_1:th 56
theorem
for b1 being non empty set holds
   {} b1 = {b2 where b2 is Element of b1: contradiction};

:: DOMAIN_1:th 57
theorem
for b1 being non empty set
for b2 being Element of bool b1 holds
   b2 ` = {b3 where b3 is Element of b1: not b3 in b2};

:: DOMAIN_1:th 58
theorem
for b1 being non empty set
for b2, b3 being Element of bool b1 holds
b2 /\ b3 = {b4 where b4 is Element of b1: b4 in b2 & b4 in b3};

:: DOMAIN_1:th 59
theorem
for b1 being non empty set
for b2, b3 being Element of bool b1 holds
b2 \/ b3 = {b4 where b4 is Element of b1: (b4 in b2 or b4 in b3)};

:: DOMAIN_1:th 60
theorem
for b1 being non empty set
for b2, b3 being Element of bool b1 holds
b2 \ b3 = {b4 where b4 is Element of b1: b4 in b2 & not b4 in b3};

:: DOMAIN_1:th 61
theorem
for b1 being non empty set
for b2, b3 being Element of bool b1 holds
b2 \+\ b3 = {b4 where b4 is Element of b1: (b4 in b2 & not b4 in b3 or not b4 in b2 & b4 in b3)};

:: DOMAIN_1:th 62
theorem
for b1 being non empty set
for b2, b3 being Element of bool b1 holds
b2 \+\ b3 = {b4 where b4 is Element of b1:    not b4 in b2
iff
   b4 in b3};

:: DOMAIN_1:th 63
theorem
for b1 being non empty set
for b2, b3 being Element of bool b1 holds
b2 \+\ b3 = {b4 where b4 is Element of b1:    b4 in b2
iff
   not b4 in b3};

:: DOMAIN_1:th 64
theorem
for b1 being non empty set
for b2, b3 being Element of bool b1 holds
b2 \+\ b3 = {b4 where b4 is Element of b1: (b4 in b2 & not b4 in b3 or b4 in b3 & not b4 in b2)};

:: DOMAIN_1:funcnot 6 => DOMAIN_1:func 6
definition
  let a1 be non empty set;
  let a2 be Element of a1;
  redefine func {a2} -> Element of bool a1;
end;

:: DOMAIN_1:funcnot 7 => DOMAIN_1:func 7
definition
  let a1 be non empty set;
  let a2, a3 be Element of a1;
  redefine func {a2, a3} -> Element of bool a1;
  commutativity;
::  for a1 being non empty set
::  for a2, a3 being Element of a1 holds
::  {a2,a3} = {a3,a2};
end;

:: DOMAIN_1:funcnot 8 => DOMAIN_1:func 8
definition
  let a1 be non empty set;
  let a2, a3, a4 be Element of a1;
  redefine func {a2, a3, a4} -> Element of bool a1;
end;

:: DOMAIN_1:funcnot 9 => DOMAIN_1:func 9
definition
  let a1 be non empty set;
  let a2, a3, a4, a5 be Element of a1;
  redefine func {a2, a3, a4, a5} -> Element of bool a1;
end;

:: DOMAIN_1:funcnot 10 => DOMAIN_1:func 10
definition
  let a1 be non empty set;
  let a2, a3, a4, a5, a6 be Element of a1;
  redefine func {a2, a3, a4, a5, a6} -> Element of bool a1;
end;

:: DOMAIN_1:funcnot 11 => DOMAIN_1:func 11
definition
  let a1 be non empty set;
  let a2, a3, a4, a5, a6, a7 be Element of a1;
  redefine func {a2, a3, a4, a5, a6, a7} -> Element of bool a1;
end;

:: DOMAIN_1:funcnot 12 => DOMAIN_1:func 12
definition
  let a1 be non empty set;
  let a2, a3, a4, a5, a6, a7, a8 be Element of a1;
  redefine func {a2, a3, a4, a5, a6, a7, a8} -> Element of bool a1;
end;

:: DOMAIN_1:funcnot 13 => DOMAIN_1:func 13
definition
  let a1 be non empty set;
  let a2, a3, a4, a5, a6, a7, a8, a9 be Element of a1;
  redefine func {a2, a3, a4, a5, a6, a7, a8, a9} -> Element of bool a1;
end;

:: DOMAIN_1:sch 8
scheme DOMAIN_1:sch 8
{F1 -> non empty set,
  F2 -> non empty set,
  F3 -> Element of F2()}:
{F3(b1) where b1 is Element of F1(): P1[b1]} is Element of bool F2()


:: DOMAIN_1:sch 9
scheme DOMAIN_1:sch 9
{F1 -> non empty set,
  F2 -> non empty set,
  F3 -> non empty set,
  F4 -> Element of F3()}:
{F4(b1, b2) where b1 is Element of F1(), b2 is Element of F2(): P1[b1, b2]} is Element of bool F3()


:: DOMAIN_1:funcnot 14 => DOMAIN_1:func 14
definition
  let a1, a2, a3 be non empty set;
  let a4 be Element of [:[:a1,a2:],a3:];
  redefine func a4 `11 -> Element of a1;
end;

:: DOMAIN_1:funcnot 15 => DOMAIN_1:func 15
definition
  let a1, a2, a3 be non empty set;
  let a4 be Element of [:[:a1,a2:],a3:];
  redefine func a4 `12 -> Element of a2;
end;

:: DOMAIN_1:funcnot 16 => DOMAIN_1:func 16
definition
  let a1, a2, a3 be non empty set;
  let a4 be Element of [:a1,[:a2,a3:]:];
  redefine func a4 `21 -> Element of a2;
end;

:: DOMAIN_1:funcnot 17 => DOMAIN_1:func 17
definition
  let a1, a2, a3 be non empty set;
  let a4 be Element of [:a1,[:a2,a3:]:];
  redefine func a4 `22 -> Element of a3;
end;

:: DOMAIN_1:sch 10
scheme DOMAIN_1:sch 10
{F1 -> non empty set}:
{b1 where b1 is Element of F1(): P1[b1] & P2[b1]} = {b1 where b1 is Element of F1(): P1[b1]} /\ {b1 where b1 is Element of F1(): P2[b1]}