Article FINSUB_1, MML version 4.99.1005

:: FINSUB_1:attrnot 1 => FINSUB_1:attr 1
definition
  let a1 be set;
  attr a1 is cup-closed means
    for b1, b2 being set
          st b1 in a1 & b2 in a1
       holds b1 \/ b2 in a1;
end;

:: FINSUB_1:dfs 1
definiens
  let a1 be set;
To prove
     a1 is cup-closed
it is sufficient to prove
  thus for b1, b2 being set
          st b1 in a1 & b2 in a1
       holds b1 \/ b2 in a1;

:: FINSUB_1:def 1
theorem
for b1 being set holds
      b1 is cup-closed
   iff
      for b2, b3 being set
            st b2 in b1 & b3 in b1
         holds b2 \/ b3 in b1;

:: FINSUB_1:attrnot 2 => FINSUB_1:attr 2
definition
  let a1 be set;
  attr a1 is cap-closed means
    for b1, b2 being set
          st b1 in a1 & b2 in a1
       holds b1 /\ b2 in a1;
end;

:: FINSUB_1:dfs 2
definiens
  let a1 be set;
To prove
     a1 is cap-closed
it is sufficient to prove
  thus for b1, b2 being set
          st b1 in a1 & b2 in a1
       holds b1 /\ b2 in a1;

:: FINSUB_1:def 2
theorem
for b1 being set holds
      b1 is cap-closed
   iff
      for b2, b3 being set
            st b2 in b1 & b3 in b1
         holds b2 /\ b3 in b1;

:: FINSUB_1:attrnot 3 => FINSUB_1:attr 3
definition
  let a1 be set;
  attr a1 is diff-closed means
    for b1, b2 being set
          st b1 in a1 & b2 in a1
       holds b1 \ b2 in a1;
end;

:: FINSUB_1:dfs 3
definiens
  let a1 be set;
To prove
     a1 is diff-closed
it is sufficient to prove
  thus for b1, b2 being set
          st b1 in a1 & b2 in a1
       holds b1 \ b2 in a1;

:: FINSUB_1:def 3
theorem
for b1 being set holds
      b1 is diff-closed
   iff
      for b2, b3 being set
            st b2 in b1 & b3 in b1
         holds b2 \ b3 in b1;

:: FINSUB_1:attrnot 4 => FINSUB_1:attr 4
definition
  let a1 be set;
  attr a1 is preBoolean means
    a1 is cup-closed & a1 is diff-closed;
end;

:: FINSUB_1:dfs 4
definiens
  let a1 be set;
To prove
     a1 is preBoolean
it is sufficient to prove
  thus a1 is cup-closed & a1 is diff-closed;

:: FINSUB_1:def 4
theorem
for b1 being set holds
      b1 is preBoolean
   iff
      b1 is cup-closed & b1 is diff-closed;

:: FINSUB_1:condreg 1
registration
  cluster preBoolean -> cup-closed diff-closed (set);
end;

:: FINSUB_1:condreg 2
registration
  cluster cup-closed diff-closed -> preBoolean (set);
end;

:: FINSUB_1:exreg 1
registration
  cluster non empty cup-closed cap-closed diff-closed set;
end;

:: FINSUB_1:th 10
theorem
for b1 being set holds
      b1 is preBoolean
   iff
      for b2, b3 being set
            st b2 in b1 & b3 in b1
         holds b2 \/ b3 in b1 & b2 \ b3 in b1;

:: FINSUB_1:funcnot 1 => FINSUB_1:func 1
definition
  let a1 be non empty preBoolean set;
  let a2, a3 be Element of a1;
  redefine func a2 \/ a3 -> Element of a1;
  commutativity;
::  for a1 being non empty preBoolean set
::  for a2, a3 being Element of a1 holds
::  a2 \/ a3 = a3 \/ a2;
  idempotence;
::  for a1 being non empty preBoolean set
::  for a2 being Element of a1 holds
::     a2 \/ a2 = a2;
end;

:: FINSUB_1:funcnot 2 => FINSUB_1:func 2
definition
  let a1 be non empty preBoolean set;
  let a2, a3 be Element of a1;
  redefine func a2 \ a3 -> Element of a1;
end;

:: FINSUB_1:th 13
theorem
for b1, b2 being set
for b3 being non empty preBoolean set
      st b1 is Element of b3 & b2 is Element of b3
   holds b1 /\ b2 is Element of b3;

:: FINSUB_1:th 14
theorem
for b1, b2 being set
for b3 being non empty preBoolean set
      st b1 is Element of b3 & b2 is Element of b3
   holds b1 \+\ b2 is Element of b3;

:: FINSUB_1:th 15
theorem
for b1 being non empty set
      st for b2, b3 being Element of b1 holds
        b2 \+\ b3 in b1 & b2 \ b3 in b1
   holds b1 is preBoolean;

:: FINSUB_1:th 16
theorem
for b1 being non empty set
      st for b2, b3 being Element of b1 holds
        b2 \+\ b3 in b1 & b2 /\ b3 in b1
   holds b1 is preBoolean;

:: FINSUB_1:th 17
theorem
for b1 being non empty set
      st for b2, b3 being Element of b1 holds
        b2 \+\ b3 in b1 & b2 \/ b3 in b1
   holds b1 is preBoolean;

:: FINSUB_1:funcnot 3 => FINSUB_1:func 3
definition
  let a1 be non empty preBoolean set;
  let a2, a3 be Element of a1;
  redefine func a2 /\ a3 -> Element of a1;
  commutativity;
::  for a1 being non empty preBoolean set
::  for a2, a3 being Element of a1 holds
::  a2 /\ a3 = a3 /\ a2;
  idempotence;
::  for a1 being non empty preBoolean set
::  for a2 being Element of a1 holds
::     a2 /\ a2 = a2;
end;

:: FINSUB_1:funcnot 4 => FINSUB_1:func 4
definition
  let a1 be non empty preBoolean set;
  let a2, a3 be Element of a1;
  redefine func a2 \+\ a3 -> Element of a1;
  commutativity;
::  for a1 being non empty preBoolean set
::  for a2, a3 being Element of a1 holds
::  a2 \+\ a3 = a3 \+\ a2;
end;

:: FINSUB_1:th 18
theorem
for b1 being non empty preBoolean set holds
   {} in b1;

:: FINSUB_1:th 20
theorem
for b1 being set holds
   bool b1 is preBoolean;

:: FINSUB_1:funcreg 1
registration
  let a1 be set;
  cluster bool a1 -> preBoolean;
end;

:: FINSUB_1:th 21
theorem
for b1, b2 being non empty preBoolean set holds
b1 /\ b2 is not empty & b1 /\ b2 is preBoolean;

:: FINSUB_1:funcnot 5 => FINSUB_1:func 5
definition
  let a1 be set;
  func Fin A1 -> preBoolean set means
    for b1 being set holds
          b1 in it
       iff
          b1 c= a1 & b1 is finite;
end;

:: FINSUB_1:def 5
theorem
for b1 being set
for b2 being preBoolean set holds
      b2 = Fin b1
   iff
      for b3 being set holds
            b3 in b2
         iff
            b3 c= b1 & b3 is finite;

:: FINSUB_1:funcreg 2
registration
  let a1 be set;
  cluster Fin a1 -> non empty preBoolean;
end;

:: FINSUB_1:condreg 3
registration
  let a1 be set;
  cluster -> finite (Element of Fin a1);
end;

:: FINSUB_1:th 23
theorem
for b1, b2 being set
      st b1 c= b2
   holds Fin b1 c= Fin b2;

:: FINSUB_1:th 24
theorem
for b1, b2 being set holds
Fin (b1 /\ b2) = (Fin b1) /\ Fin b2;

:: FINSUB_1:th 25
theorem
for b1, b2 being set holds
(Fin b1) \/ Fin b2 c= Fin (b1 \/ b2);

:: FINSUB_1:th 26
theorem
for b1 being set holds
   Fin b1 c= bool b1;

:: FINSUB_1:th 27
theorem
for b1 being set
      st b1 is finite
   holds Fin b1 = bool b1;

:: FINSUB_1:th 28
theorem
Fin {} = {{}};

:: FINSUB_1:modenot 1
definition
  let a1 be set;
  mode Finite_Subset of a1 is Element of Fin a1;
end;

:: FINSUB_1:th 30
theorem
for b1 being set
for b2 being Element of Fin b1 holds
   b2 is finite;

:: FINSUB_1:th 32
theorem
for b1 being set
for b2 being Element of Fin b1 holds
   b2 is Element of bool b1;

:: FINSUB_1:th 34
theorem
for b1 being set
for b2 being Element of bool b1
      st b1 is finite
   holds b2 is Element of Fin b1;