Article BOOLEALG, MML version 4.99.1005

:: BOOLEALG:funcnot 1 => BOOLEALG:func 1
definition
  let a1 be non empty Lattice-like LattStr;
  let a2, a3 be Element of the carrier of a1;
  func A2 \ A3 -> Element of the carrier of a1 equals
    a2 "/\" (a3 `);
end;

:: BOOLEALG:def 1
theorem
for b1 being non empty Lattice-like LattStr
for b2, b3 being Element of the carrier of b1 holds
b2 \ b3 = b2 "/\" (b3 `);

:: BOOLEALG:funcnot 2 => BOOLEALG:func 2
definition
  let a1 be non empty Lattice-like LattStr;
  let a2, a3 be Element of the carrier of a1;
  func A2 \+\ A3 -> Element of the carrier of a1 equals
    (a2 \ a3) "\/" (a3 \ a2);
end;

:: BOOLEALG:def 2
theorem
for b1 being non empty Lattice-like LattStr
for b2, b3 being Element of the carrier of b1 holds
b2 \+\ b3 = (b2 \ b3) "\/" (b3 \ b2);

:: BOOLEALG:prednot 1 => BOOLEALG:pred 1
definition
  let a1 be non empty Lattice-like LattStr;
  let a2, a3 be Element of the carrier of a1;
  redefine pred A2 = A3 means
    a2 [= a3 & a3 [= a2;
  symmetry;
::  for a1 being non empty Lattice-like LattStr
::  for a2, a3 being Element of the carrier of a1
::        st a2 = a3
::     holds a3 = a2;
  reflexivity;
::  for a1 being non empty Lattice-like LattStr
::  for a2 being Element of the carrier of a1 holds
::     a2 = a2;
end;

:: BOOLEALG:dfs 3
definiens
  let a1 be non empty Lattice-like LattStr;
  let a2, a3 be Element of the carrier of a1;
To prove
     a2 = a3
it is sufficient to prove
  thus a2 [= a3 & a3 [= a2;

:: BOOLEALG:def 3
theorem
for b1 being non empty Lattice-like LattStr
for b2, b3 being Element of the carrier of b1 holds
   b2 = b3
iff
   b2 [= b3 & b3 [= b2;

:: BOOLEALG:prednot 2 => BOOLEALG:pred 2
definition
  let a1 be non empty Lattice-like LattStr;
  let a2, a3 be Element of the carrier of a1;
  pred A2 meets A3 means
    a2 "/\" a3 <> Bottom a1;
end;

:: BOOLEALG:dfs 4
definiens
  let a1 be non empty Lattice-like LattStr;
  let a2, a3 be Element of the carrier of a1;
To prove
     a2 meets a3
it is sufficient to prove
  thus a2 "/\" a3 <> Bottom a1;

:: BOOLEALG:def 4
theorem
for b1 being non empty Lattice-like LattStr
for b2, b3 being Element of the carrier of b1 holds
   b2 meets b3
iff
   b2 "/\" b3 <> Bottom b1;

:: BOOLEALG:prednot 3 => not BOOLEALG:pred 2
notation
  let a1 be non empty Lattice-like LattStr;
  let a2, a3 be Element of the carrier of a1;
  antonym a2 misses a3 for a2 meets a3;
end;

:: BOOLEALG:th 3
theorem
for b1 being non empty Lattice-like LattStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 "\/" b3 [= b4
   holds b2 [= b4;

:: BOOLEALG:th 4
theorem
for b1 being non empty Lattice-like LattStr
for b2, b3, b4 being Element of the carrier of b1 holds
b2 "/\" b3 [= b2 "\/" b4;

:: BOOLEALG:th 6
theorem
for b1 being non empty Lattice-like LattStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 [= b3
   holds b2 \ b4 [= b3;

:: BOOLEALG:th 10
theorem
for b1 being non empty Lattice-like LattStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 \ b3 [= b4 & b3 \ b2 [= b4
   holds b2 \+\ b3 [= b4;

:: BOOLEALG:th 11
theorem
for b1 being non empty Lattice-like LattStr
for b2, b3, b4 being Element of the carrier of b1 holds
   b2 = b3 "\/" b4
iff
   b3 [= b2 &
    b4 [= b2 &
    (for b5 being Element of the carrier of b1
          st b3 [= b5 & b4 [= b5
       holds b2 [= b5);

:: BOOLEALG:th 12
theorem
for b1 being non empty Lattice-like LattStr
for b2, b3, b4 being Element of the carrier of b1 holds
   b2 = b3 "/\" b4
iff
   b2 [= b3 &
    b2 [= b4 &
    (for b5 being Element of the carrier of b1
          st b5 [= b3 & b5 [= b4
       holds b5 [= b2);

:: BOOLEALG:th 16
theorem
for b1 being non empty Lattice-like LattStr
for b2 being Element of the carrier of b1 holds
      b2 meets b2
   iff
      b2 <> Bottom b1;

:: BOOLEALG:prednot 4 => BOOLEALG:pred 3
definition
  let a1 be non empty Lattice-like LattStr;
  let a2, a3 be Element of the carrier of a1;
  redefine pred a2 meets a3;
  symmetry;
::  for a1 being non empty Lattice-like LattStr
::  for a2, a3 being Element of the carrier of a1
::        st a2 meets a3
::     holds a3 meets a2;
end;

:: BOOLEALG:funcnot 3 => BOOLEALG:func 3
definition
  let a1 be non empty Lattice-like LattStr;
  let a2, a3 be Element of the carrier of a1;
  redefine func a2 \+\ a3 -> Element of the carrier of a1;
  commutativity;
::  for a1 being non empty Lattice-like LattStr
::  for a2, a3 being Element of the carrier of a1 holds
::  a2 \+\ a3 = a3 \+\ a2;
end;

:: BOOLEALG:prednot 5 => not BOOLEALG:pred 4
notation
  let a1 be non empty Lattice-like LattStr;
  let a2, a3 be Element of the carrier of a1;
  antonym a2 misses a3 for a2 misses a3;
end;

:: BOOLEALG:th 22
theorem
for b1 being non empty Lattice-like distributive LattStr
for b2, b3, b4 being Element of the carrier of b1
      st (b2 "/\" b3) "\/" (b2 "/\" b4) = b2
   holds b2 [= b3 "\/" b4;

:: BOOLEALG:th 25
theorem
for b1 being non empty Lattice-like lower-bounded LattStr
for b2 being Element of the carrier of b1
      st b2 [= Bottom b1
   holds b2 = Bottom b1;

:: BOOLEALG:th 26
theorem
for b1 being non empty Lattice-like lower-bounded LattStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 [= b3 & b2 [= b4 & b3 "/\" b4 = Bottom b1
   holds b2 = Bottom b1;

:: BOOLEALG:th 27
theorem
for b1 being non empty Lattice-like lower-bounded LattStr
for b2, b3 being Element of the carrier of b1 holds
   b2 "\/" b3 = Bottom b1
iff
   b2 = Bottom b1 & b3 = Bottom b1;

:: BOOLEALG:th 28
theorem
for b1 being non empty Lattice-like lower-bounded LattStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 [= b3 & b3 "/\" b4 = Bottom b1
   holds b2 "/\" b4 = Bottom b1;

:: BOOLEALG:th 30
theorem
for b1 being non empty Lattice-like lower-bounded LattStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 meets b3 & b3 [= b4
   holds b2 meets b4;

:: BOOLEALG:th 31
theorem
for b1 being non empty Lattice-like lower-bounded LattStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 meets b3 "/\" b4
   holds b2 meets b3 & b2 meets b4;

:: BOOLEALG:th 32
theorem
for b1 being non empty Lattice-like lower-bounded LattStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 meets b3 \ b4
   holds b2 meets b3;

:: BOOLEALG:th 33
theorem
for b1 being non empty Lattice-like lower-bounded LattStr
for b2 being Element of the carrier of b1 holds
   b2 misses Bottom b1;

:: BOOLEALG:th 34
theorem
for b1 being non empty Lattice-like lower-bounded LattStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 misses b3 & b4 [= b3
   holds b2 misses b4;

:: BOOLEALG:th 35
theorem
for b1 being non empty Lattice-like lower-bounded LattStr
for b2, b3, b4 being Element of the carrier of b1
      st (b2 misses b3 implies b2 misses b4)
   holds b2 misses b3 "/\" b4;

:: BOOLEALG:th 36
theorem
for b1 being non empty Lattice-like lower-bounded LattStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 [= b3 & b2 [= b4 & b3 misses b4
   holds b2 = Bottom b1;

:: BOOLEALG:th 37
theorem
for b1 being non empty Lattice-like lower-bounded LattStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 misses b3
   holds b4 "/\" b2 misses b4 "/\" b3;

:: BOOLEALG:th 38
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 \ b3 [= b4
   holds b2 [= b3 "\/" b4;

:: BOOLEALG:th 39
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 [= b3
   holds b4 \ b3 [= b4 \ b2;

:: BOOLEALG:th 40
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3, b4, b5 being Element of the carrier of b1
      st b2 [= b3 & b4 [= b5
   holds b2 \ b5 [= b3 \ b4;

:: BOOLEALG:th 41
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 [= b3 "\/" b4
   holds b2 \ b3 [= b4;

:: BOOLEALG:th 42
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
b2 ` [= (b2 "/\" b3) `;

:: BOOLEALG:th 43
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
(b2 "\/" b3) ` [= b2 `;

:: BOOLEALG:th 44
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1
      st b2 [= b3 \ b2
   holds b2 = Bottom b1;

:: BOOLEALG:th 45
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1
      st b2 [= b3
   holds b3 = b2 "\/" (b3 \ b2);

:: BOOLEALG:th 46
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
   b2 \ b3 = Bottom b1
iff
   b2 [= b3;

:: BOOLEALG:th 47
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 [= b3 "\/" b4 & b2 "/\" b4 = Bottom b1
   holds b2 [= b3;

:: BOOLEALG:th 48
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
b2 "\/" b3 = (b2 \ b3) "\/" b3;

:: BOOLEALG:th 49
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
b2 \ (b2 "\/" b3) = Bottom b1;

:: BOOLEALG:th 50
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
b2 \ (b2 "/\" b3) = b2 \ b3;

:: BOOLEALG:th 51
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
(b2 \ b3) "/\" b3 = Bottom b1;

:: BOOLEALG:th 52
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
b2 "\/" (b3 \ b2) = b2 "\/" b3;

:: BOOLEALG:th 53
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
(b2 "/\" b3) "\/" (b2 \ b3) = b2;

:: BOOLEALG:th 54
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3, b4 being Element of the carrier of b1 holds
b2 \ (b3 \ b4) = (b2 \ b3) "\/" (b2 "/\" b4);

:: BOOLEALG:th 55
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
b2 \ (b2 \ b3) = b2 "/\" b3;

:: BOOLEALG:th 56
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
(b2 "\/" b3) \ b3 = b2 \ b3;

:: BOOLEALG:th 57
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
   b2 "/\" b3 = Bottom b1
iff
   b2 \ b3 = b2;

:: BOOLEALG:th 58
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3, b4 being Element of the carrier of b1 holds
b2 \ (b3 "\/" b4) = (b2 \ b3) "/\" (b2 \ b4);

:: BOOLEALG:th 59
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3, b4 being Element of the carrier of b1 holds
b2 \ (b3 "/\" b4) = (b2 \ b3) "\/" (b2 \ b4);

:: BOOLEALG:th 60
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3, b4 being Element of the carrier of b1 holds
b2 "/\" (b3 \ b4) = (b2 "/\" b3) \ (b2 "/\" b4);

:: BOOLEALG:th 61
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
(b2 "\/" b3) \ (b2 "/\" b3) = (b2 \ b3) "\/" (b3 \ b2);

:: BOOLEALG:th 62
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3, b4 being Element of the carrier of b1 holds
(b2 \ b3) \ b4 = b2 \ (b3 "\/" b4);

:: BOOLEALG:th 63
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1
      st b2 \ b3 = b3 \ b2
   holds b2 = b3;

:: BOOLEALG:th 67
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2 being Element of the carrier of b1 holds
   b2 \ Bottom b1 = b2;

:: BOOLEALG:th 68
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
(b2 \ b3) ` = b2 ` "\/" b3;

:: BOOLEALG:th 69
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3, b4 being Element of the carrier of b1 holds
   b2 meets b3 "\/" b4
iff
   (b2 meets b3 or b2 meets b4);

:: BOOLEALG:th 70
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
b2 "/\" b3 misses b2 \ b3;

:: BOOLEALG:th 71
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3, b4 being Element of the carrier of b1 holds
   b2 misses b3 "\/" b4
iff
   b2 misses b3 & b2 misses b4;

:: BOOLEALG:th 72
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
b2 \ b3 misses b3;

:: BOOLEALG:th 73
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1
      st b2 misses b3
   holds (b2 "\/" b3) \ b3 = b2;

:: BOOLEALG:th 74
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1
      st b2 ` "\/" (b3 `) = b2 "\/" b3 & b2 misses b2 ` & b3 misses b3 `
   holds b2 = b3 ` & b3 = b2 `;

:: BOOLEALG:th 75
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1
      st b2 ` "\/" (b3 `) = b2 "\/" b3 & b3 misses b2 ` & b2 misses b3 `
   holds b2 = b2 ` & b3 = b3 `;

:: BOOLEALG:th 76
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2 being Element of the carrier of b1 holds
   b2 \+\ Bottom b1 = b2;

:: BOOLEALG:th 77
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2 being Element of the carrier of b1 holds
   b2 \+\ b2 = Bottom b1;

:: BOOLEALG:th 78
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
b2 "/\" b3 misses b2 \+\ b3;

:: BOOLEALG:th 79
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
b2 "\/" b3 = b2 \+\ (b3 \ b2);

:: BOOLEALG:th 80
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
b2 \+\ (b2 "/\" b3) = b2 \ b3;

:: BOOLEALG:th 81
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
b2 "\/" b3 = (b2 \+\ b3) "\/" (b2 "/\" b3);

:: BOOLEALG:th 82
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
(b2 \+\ b3) \+\ (b2 "/\" b3) = b2 "\/" b3;

:: BOOLEALG:th 83
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
(b2 \+\ b3) \+\ (b2 "\/" b3) = b2 "/\" b3;

:: BOOLEALG:th 84
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
b2 \+\ b3 = (b2 "\/" b3) \ (b2 "/\" b3);

:: BOOLEALG:th 85
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3, b4 being Element of the carrier of b1 holds
(b2 \+\ b3) \ b4 = (b2 \ (b3 "\/" b4)) "\/" (b3 \ (b2 "\/" b4));

:: BOOLEALG:th 86
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3, b4 being Element of the carrier of b1 holds
b2 \ (b3 \+\ b4) = (b2 \ (b3 "\/" b4)) "\/" ((b2 "/\" b3) "/\" b4);

:: BOOLEALG:th 87
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3, b4 being Element of the carrier of b1 holds
(b2 \+\ b3) \+\ b4 = b2 \+\ (b3 \+\ b4);

:: BOOLEALG:th 88
theorem
for b1 being non empty Lattice-like Boolean LattStr
for b2, b3 being Element of the carrier of b1 holds
(b2 \+\ b3) ` = (b2 "/\" b3) "\/" (b2 ` "/\" (b3 `));