Article XBOOLEAN, MML version 4.99.1005

:: XBOOLEAN:funcnot 1 => XBOOLEAN:func 1
definition
  func FALSE -> set equals
    0;
end;

:: XBOOLEAN:def 1
theorem
FALSE = 0;

:: XBOOLEAN:funcnot 2 => XBOOLEAN:func 2
definition
  func TRUE -> set equals
    1;
end;

:: XBOOLEAN:def 2
theorem
TRUE = 1;

:: XBOOLEAN:attrnot 1 => XBOOLEAN:attr 1
definition
  let a1 be set;
  attr a1 is boolean means
    (a1 <> FALSE) implies a1 = TRUE;
end;

:: XBOOLEAN:dfs 3
definiens
  let a1 be set;
To prove
     a1 is boolean
it is sufficient to prove
  thus (a1 <> FALSE) implies a1 = TRUE;

:: XBOOLEAN:def 3
theorem
for b1 being set holds
      b1 is boolean
   iff
      (b1 = FALSE or b1 = TRUE);

:: XBOOLEAN:funcreg 1
registration
  cluster FALSE -> boolean;
end;

:: XBOOLEAN:funcreg 2
registration
  cluster TRUE -> boolean;
end;

:: XBOOLEAN:exreg 1
registration
  cluster boolean set;
end;

:: XBOOLEAN:condreg 1
registration
  cluster boolean -> natural (set);
end;

:: XBOOLEAN:funcnot 3 => XBOOLEAN:func 3
definition
  let a1 be boolean set;
  func 'not' A1 -> boolean set equals
    1 - a1;
  involutiveness;
::  for a1 being boolean set holds
::     'not' 'not' a1 = a1;
end;

:: XBOOLEAN:def 4
theorem
for b1 being boolean set holds
   'not' b1 = 1 - b1;

:: XBOOLEAN:funcnot 4 => XBOOLEAN:func 4
definition
  let a1, a2 be boolean set;
  func A1 '&' A2 -> set equals
    a1 * a2;
  commutativity;
::  for a1, a2 being boolean set holds
::  a1 '&' a2 = a2 '&' a1;
  idempotence;
::  for a1 being boolean set holds
::     a1 '&' a1 = a1;
end;

:: XBOOLEAN:def 5
theorem
for b1, b2 being boolean set holds
b1 '&' b2 = b1 * b2;

:: XBOOLEAN:funcreg 3
registration
  let a1, a2 be boolean set;
  cluster a1 '&' a2 -> boolean;
end;

:: XBOOLEAN:funcnot 5 => XBOOLEAN:func 5
definition
  let a1, a2 be boolean set;
  func A1 'or' A2 -> set equals
    'not' (('not' a1) '&' 'not' a2);
  commutativity;
::  for a1, a2 being boolean set holds
::  a1 'or' a2 = a2 'or' a1;
  idempotence;
::  for a1 being boolean set holds
::     a1 'or' a1 = a1;
end;

:: XBOOLEAN:def 6
theorem
for b1, b2 being boolean set holds
b1 'or' b2 = 'not' (('not' b1) '&' 'not' b2);

:: XBOOLEAN:funcnot 6 => XBOOLEAN:func 6
definition
  let a1, a2 be boolean set;
  func A1 => A2 -> set equals
    ('not' a1) 'or' a2;
end;

:: XBOOLEAN:def 7
theorem
for b1, b2 being boolean set holds
b1 => b2 = ('not' b1) 'or' b2;

:: XBOOLEAN:funcreg 4
registration
  let a1, a2 be boolean set;
  cluster a1 'or' a2 -> boolean;
end;

:: XBOOLEAN:funcreg 5
registration
  let a1, a2 be boolean set;
  cluster a1 => a2 -> boolean;
end;

:: XBOOLEAN:funcnot 7 => XBOOLEAN:func 7
definition
  let a1, a2 be boolean set;
  func A1 <=> A2 -> set equals
    (a1 => a2) '&' (a2 => a1);
  commutativity;
::  for a1, a2 being boolean set holds
::  a1 <=> a2 = a2 <=> a1;
end;

:: XBOOLEAN:def 8
theorem
for b1, b2 being boolean set holds
b1 <=> b2 = (b1 => b2) '&' (b2 => b1);

:: XBOOLEAN:funcreg 6
registration
  let a1, a2 be boolean set;
  cluster a1 <=> a2 -> boolean;
end;

:: XBOOLEAN:funcnot 8 => XBOOLEAN:func 8
definition
  let a1, a2 be boolean set;
  func A1 'nand' A2 -> set equals
    'not' (a1 '&' a2);
  commutativity;
::  for a1, a2 being boolean set holds
::  a1 'nand' a2 = a2 'nand' a1;
end;

:: XBOOLEAN:def 9
theorem
for b1, b2 being boolean set holds
b1 'nand' b2 = 'not' (b1 '&' b2);

:: XBOOLEAN:funcnot 9 => XBOOLEAN:func 9
definition
  let a1, a2 be boolean set;
  func A1 'nor' A2 -> set equals
    'not' (a1 'or' a2);
  commutativity;
::  for a1, a2 being boolean set holds
::  a1 'nor' a2 = a2 'nor' a1;
end;

:: XBOOLEAN:def 10
theorem
for b1, b2 being boolean set holds
b1 'nor' b2 = 'not' (b1 'or' b2);

:: XBOOLEAN:funcnot 10 => XBOOLEAN:func 10
definition
  let a1, a2 be boolean set;
  func A1 'xor' A2 -> set equals
    'not' (a1 <=> a2);
  commutativity;
::  for a1, a2 being boolean set holds
::  a1 'xor' a2 = a2 'xor' a1;
end;

:: XBOOLEAN:def 11
theorem
for b1, b2 being boolean set holds
b1 'xor' b2 = 'not' (b1 <=> b2);

:: XBOOLEAN:funcnot 11 => XBOOLEAN:func 11
definition
  let a1, a2 be boolean set;
  func A1 '\' A2 -> set equals
    a1 '&' 'not' a2;
end;

:: XBOOLEAN:def 12
theorem
for b1, b2 being boolean set holds
b1 '\' b2 = b1 '&' 'not' b2;

:: XBOOLEAN:funcreg 7
registration
  let a1, a2 be boolean set;
  cluster a1 'nand' a2 -> boolean;
end;

:: XBOOLEAN:funcreg 8
registration
  let a1, a2 be boolean set;
  cluster a1 'nor' a2 -> boolean;
end;

:: XBOOLEAN:funcreg 9
registration
  let a1, a2 be boolean set;
  cluster a1 'xor' a2 -> boolean;
end;

:: XBOOLEAN:funcreg 10
registration
  let a1, a2 be boolean set;
  cluster a1 '\' a2 -> boolean;
end;

:: XBOOLEAN:th 1
theorem
for b1 being boolean set holds
   b1 '&' b1 = b1;

:: XBOOLEAN:th 2
theorem
for b1, b2 being boolean set holds
b1 '&' (b1 '&' b2) = b1 '&' b2;

:: XBOOLEAN:th 3
theorem
for b1 being boolean set holds
   b1 'or' b1 = b1;

:: XBOOLEAN:th 4
theorem
for b1, b2 being boolean set holds
b1 'or' (b1 'or' b2) = b1 'or' b2;

:: XBOOLEAN:th 5
theorem
for b1, b2 being boolean set holds
b1 'or' (b1 '&' b2) = b1;

:: XBOOLEAN:th 6
theorem
for b1, b2 being boolean set holds
b1 '&' (b1 'or' b2) = b1;

:: XBOOLEAN:th 7
theorem
for b1, b2 being boolean set holds
b1 '&' (b1 'or' b2) = b1 'or' (b1 '&' b2);

:: XBOOLEAN:th 8
theorem
for b1, b2, b3 being boolean set holds
b1 '&' (b2 'or' b3) = (b1 '&' b2) 'or' (b1 '&' b3);

:: XBOOLEAN:th 9
theorem
for b1, b2, b3 being boolean set holds
b1 'or' (b2 '&' b3) = (b1 'or' b2) '&' (b1 'or' b3);

:: XBOOLEAN:th 10
theorem
for b1, b2, b3 being boolean set holds
((b1 '&' b2) 'or' (b2 '&' b3)) 'or' (b3 '&' b1) = ((b1 'or' b2) '&' (b2 'or' b3)) '&' (b3 'or' b1);

:: XBOOLEAN:th 11
theorem
for b1, b2 being boolean set holds
b1 '&' (('not' b1) 'or' b2) = b1 '&' b2;

:: XBOOLEAN:th 12
theorem
for b1, b2 being boolean set holds
b1 'or' (('not' b1) '&' b2) = b1 'or' b2;

:: XBOOLEAN:th 13
theorem
for b1, b2 being boolean set holds
b1 => (b1 => b2) = b1 => b2;

:: XBOOLEAN:th 14
theorem
for b1, b2 being boolean set holds
b1 '&' (b1 => b2) = b1 '&' b2;

:: XBOOLEAN:th 15
theorem
for b1, b2 being boolean set holds
b1 => (b1 '&' b2) = b1 => b2;

:: XBOOLEAN:th 16
theorem
for b1, b2 being boolean set holds
b1 '&' 'not' (b1 => b2) = b1 '&' 'not' b2;

:: XBOOLEAN:th 17
theorem
for b1, b2 being boolean set holds
('not' b1) 'or' (b1 => b2) = b1 => b2;

:: XBOOLEAN:th 18
theorem
for b1, b2 being boolean set holds
('not' b1) '&' (b1 => b2) = ('not' b1) 'or' (('not' b1) '&' b2);

:: XBOOLEAN:th 19
theorem
for b1, b2, b3 being boolean set holds
(b1 <=> b2) <=> b3 = b1 <=> (b2 <=> b3);

:: XBOOLEAN:th 20
theorem
for b1, b2 being boolean set holds
b1 '&' (b1 <=> b2) = b1 '&' b2;

:: XBOOLEAN:th 21
theorem
for b1, b2 being boolean set holds
('not' b1) '&' (b1 <=> b2) = ('not' b1) '&' 'not' b2;

:: XBOOLEAN:th 22
theorem
for b1, b2, b3 being boolean set holds
b1 '&' (b2 <=> b3) = (b1 '&' (('not' b2) 'or' b3)) '&' (('not' b3) 'or' b2);

:: XBOOLEAN:th 23
theorem
for b1, b2, b3 being boolean set holds
b1 'or' (b2 <=> b3) = ((b1 'or' 'not' b2) 'or' b3) '&' ((b1 'or' 'not' b3) 'or' b2);

:: XBOOLEAN:th 24
theorem
for b1, b2 being boolean set holds
('not' b1) '&' (b1 <=> b2) = (('not' b1) '&' 'not' b2) '&' (('not' b1) 'or' b2);

:: XBOOLEAN:th 25
theorem
for b1, b2, b3 being boolean set holds
('not' b1) '&' (b2 <=> b3) = (('not' b1) '&' (('not' b2) 'or' b3)) '&' (('not' b3) 'or' b2);

:: XBOOLEAN:th 26
theorem
for b1, b2 being boolean set holds
b1 => (b1 <=> b2) = b1 => b2;

:: XBOOLEAN:th 27
theorem
for b1, b2 being boolean set holds
b1 => (b1 <=> b2) = b1 => (b1 => b2);

:: XBOOLEAN:th 28
theorem
for b1, b2 being boolean set holds
b1 'or' (b1 <=> b2) = b2 => b1;

:: XBOOLEAN:th 29
theorem
for b1, b2 being boolean set holds
('not' b1) 'or' (b1 <=> b2) = b1 => b2;

:: XBOOLEAN:th 30
theorem
for b1, b2, b3 being boolean set holds
b1 => (b2 <=> b3) = ((('not' b1) 'or' 'not' b2) 'or' b3) '&' ((('not' b1) 'or' b2) 'or' 'not' b3);

:: XBOOLEAN:th 31
theorem
for b1 being boolean set holds
   b1 'nor' b1 = 'not' b1;

:: XBOOLEAN:th 32
theorem
for b1, b2 being boolean set holds
b1 'nor' (b1 '&' b2) = 'not' b1;

:: XBOOLEAN:th 33
theorem
for b1, b2 being boolean set holds
b1 'nor' (b1 'or' b2) = ('not' b1) '&' 'not' b2;

:: XBOOLEAN:th 34
theorem
for b1, b2 being boolean set holds
b1 'nor' (b1 'nor' b2) = ('not' b1) '&' b2;

:: XBOOLEAN:th 35
theorem
for b1, b2 being boolean set holds
b1 'nor' (b1 '&' b2) = 'not' b1;

:: XBOOLEAN:th 36
theorem
for b1, b2 being boolean set holds
b1 'nor' (b1 'or' b2) = b1 'nor' b2;

:: XBOOLEAN:th 37
theorem
for b1, b2 being boolean set holds
('not' b1) '&' (b1 'nor' b2) = b1 'nor' b2;

:: XBOOLEAN:th 38
theorem
for b1, b2, b3 being boolean set holds
b1 'or' (b2 'nor' b3) = (b1 'or' 'not' b2) '&' (b1 'or' 'not' b3);

:: XBOOLEAN:th 39
theorem
for b1, b2, b3 being boolean set holds
b1 'nor' (b2 'nor' b3) = (('not' b1) '&' b2) 'or' (('not' b1) '&' b3);

:: XBOOLEAN:th 40
theorem
for b1, b2, b3 being boolean set holds
b1 'nor' (b2 '&' b3) = ('not' (b1 'or' b2)) 'or' 'not' (b1 'or' b3);

:: XBOOLEAN:th 41
theorem
for b1, b2, b3 being boolean set holds
b1 '&' (b2 'nor' b3) = (b1 '&' 'not' b2) '&' 'not' b3;

:: XBOOLEAN:th 42
theorem
for b1, b2 being boolean set holds
b1 => (b1 'nor' b2) = 'not' b1;

:: XBOOLEAN:th 43
theorem
for b1, b2, b3 being boolean set holds
b1 => (b2 'nor' b3) = (b1 => 'not' b2) '&' (b1 => 'not' b3);

:: XBOOLEAN:th 44
theorem
for b1, b2 being boolean set holds
b1 'or' (b1 'nor' b2) = b2 => b1;

:: XBOOLEAN:th 45
theorem
for b1, b2, b3 being boolean set holds
b1 'or' (b2 'nor' b3) = (b2 => b1) '&' (b3 => b1);

:: XBOOLEAN:th 46
theorem
for b1, b2, b3 being boolean set holds
b1 => (b2 'nor' b3) = (('not' b1) 'or' 'not' b2) '&' (('not' b1) 'or' 'not' b3);

:: XBOOLEAN:th 47
theorem
for b1, b2 being boolean set holds
b1 'nor' (b1 <=> b2) = ('not' b1) '&' b2;

:: XBOOLEAN:th 48
theorem
for b1, b2 being boolean set holds
('not' b1) '&' (b1 <=> b2) = b1 'nor' b2;

:: XBOOLEAN:th 49
theorem
for b1, b2, b3 being boolean set holds
b1 'nor' (b2 <=> b3) = 'not' (((b1 'or' 'not' b2) 'or' b3) '&' ((b1 'or' 'not' b3) 'or' b2));

:: XBOOLEAN:th 50
theorem
for b1, b2 being boolean set holds
b1 <=> b2 = (b1 '&' b2) 'or' (b1 'nor' b2);

:: XBOOLEAN:th 51
theorem
for b1 being boolean set holds
   b1 'nand' b1 = 'not' b1;

:: XBOOLEAN:th 52
theorem
for b1, b2 being boolean set holds
b1 '&' (b1 'nand' b2) = b1 '&' 'not' b2;

:: XBOOLEAN:th 53
theorem
for b1, b2 being boolean set holds
b1 'nand' (b1 '&' b2) = 'not' (b1 '&' b2);

:: XBOOLEAN:th 54
theorem
for b1, b2, b3 being boolean set holds
b1 'nand' (b2 'nand' b3) = (('not' b1) 'or' b2) '&' (('not' b1) 'or' b3);

:: XBOOLEAN:th 55
theorem
for b1, b2, b3 being boolean set holds
b1 'nand' (b2 'or' b3) = ('not' (b1 '&' b2)) '&' 'not' (b1 '&' b3);

:: XBOOLEAN:th 56
theorem
for b1, b2 being boolean set holds
b1 => (b1 'nand' b2) = b1 'nand' b2;

:: XBOOLEAN:th 57
theorem
for b1, b2 being boolean set holds
b1 'nand' (b1 'nand' b2) = b1 => b2;

:: XBOOLEAN:th 58
theorem
for b1, b2, b3 being boolean set holds
b1 'nand' (b2 'nand' b3) = (b1 => b2) '&' (b1 => b3);

:: XBOOLEAN:th 59
theorem
for b1, b2 being boolean set holds
b1 'nand' (b1 => b2) = 'not' (b1 '&' b2);

:: XBOOLEAN:th 60
theorem
for b1, b2, b3 being boolean set holds
b1 'nand' (b2 => b3) = (b1 => b2) '&' (b1 => 'not' b3);

:: XBOOLEAN:th 61
theorem
for b1, b2 being boolean set holds
('not' b1) 'or' (b1 'nand' b2) = b1 'nand' b2;

:: XBOOLEAN:th 62
theorem
for b1, b2, b3 being boolean set holds
b1 'nand' (b2 => b3) = (('not' b1) 'or' b2) '&' (('not' b1) 'or' 'not' b3);

:: XBOOLEAN:th 63
theorem
for b1, b2 being boolean set holds
('not' b1) '&' (b1 'nand' b2) = ('not' b1) 'or' (('not' b1) '&' 'not' b2);

:: XBOOLEAN:th 64
theorem
for b1, b2, b3 being boolean set holds
b1 '&' (b2 'nand' b3) = (b1 '&' 'not' b2) 'or' (b1 '&' 'not' b3);

:: XBOOLEAN:th 65
theorem
for b1, b2 being boolean set holds
b1 'nand' (b1 <=> b2) = 'not' (b1 '&' b2);

:: XBOOLEAN:th 66
theorem
for b1, b2, b3 being boolean set holds
b1 'nand' (b2 <=> b3) = 'not' ((b1 '&' (('not' b2) 'or' b3)) '&' (('not' b3) 'or' b2));

:: XBOOLEAN:th 67
theorem
for b1, b2, b3 being boolean set holds
b1 'nand' (b2 'nor' b3) = (('not' b1) 'or' b2) 'or' b3;

:: XBOOLEAN:th 68
theorem
for b1, b2 being boolean set holds
(b1 '\' b2) '\' b2 = b1 '\' b2;

:: XBOOLEAN:th 69
theorem
for b1, b2 being boolean set holds
b1 '&' (b1 '\' b2) = b1 '\' b2;

:: XBOOLEAN:th 70
theorem
for b1, b2 being boolean set holds
b1 'nor' (b1 <=> b2) = b2 '\' b1;

:: XBOOLEAN:th 71
theorem
for b1, b2 being boolean set holds
b1 'nor' (b1 'nor' b2) = b2 '\' b1;

:: XBOOLEAN:th 72
theorem
for b1, b2 being boolean set holds
b1 'xor' (b1 'xor' b2) = b2;

:: XBOOLEAN:th 73
theorem
for b1, b2, b3 being boolean set holds
(b1 'xor' b2) 'xor' b3 = b1 'xor' (b2 'xor' b3);

:: XBOOLEAN:th 74
theorem
for b1, b2 being boolean set holds
'not' (b1 'xor' b2) = ('not' b1) 'xor' b2;

:: XBOOLEAN:th 75
theorem
for b1, b2, b3 being boolean set holds
b1 '&' (b2 'xor' b3) = (b1 '&' b2) 'xor' (b1 '&' b3);

:: XBOOLEAN:th 76
theorem
for b1, b2 being boolean set holds
b1 '&' (b1 'xor' b2) = b1 '&' 'not' b2;

:: XBOOLEAN:th 77
theorem
for b1, b2 being boolean set holds
b1 'xor' (b1 '&' b2) = b1 '&' 'not' b2;

:: XBOOLEAN:th 78
theorem
for b1, b2 being boolean set holds
('not' b1) '&' (b1 'xor' b2) = ('not' b1) '&' b2;

:: XBOOLEAN:th 79
theorem
for b1, b2 being boolean set holds
b1 'or' (b1 'xor' b2) = b1 'or' b2;

:: XBOOLEAN:th 80
theorem
for b1, b2 being boolean set holds
b1 'or' (('not' b1) 'xor' b2) = b1 'or' 'not' b2;

:: XBOOLEAN:th 81
theorem
for b1, b2 being boolean set holds
b1 'xor' (('not' b1) '&' b2) = b1 'or' b2;

:: XBOOLEAN:th 82
theorem
for b1, b2 being boolean set holds
b1 'xor' (b1 'or' b2) = ('not' b1) '&' b2;

:: XBOOLEAN:th 83
theorem
for b1, b2, b3 being boolean set holds
b1 'xor' (b2 '&' b3) = (b1 'or' (b2 '&' b3)) '&' (('not' b1) 'or' 'not' (b2 '&' b3));

:: XBOOLEAN:th 84
theorem
for b1, b2 being boolean set holds
('not' b1) 'xor' (b1 => b2) = b1 '&' b2;

:: XBOOLEAN:th 85
theorem
for b1, b2 being boolean set holds
b1 => (b1 'xor' b2) = ('not' b1) 'or' 'not' b2;

:: XBOOLEAN:th 86
theorem
for b1, b2 being boolean set holds
b1 'xor' (b1 => b2) = ('not' b1) 'or' 'not' b2;

:: XBOOLEAN:th 87
theorem
for b1, b2 being boolean set holds
('not' b1) 'xor' (b2 => b1) = (b1 '&' (b1 'or' 'not' b2)) 'or' (('not' b1) '&' b2);

:: XBOOLEAN:th 88
theorem
for b1, b2 being boolean set holds
b1 'xor' (b1 <=> b2) = 'not' b2;

:: XBOOLEAN:th 89
theorem
for b1, b2 being boolean set holds
('not' b1) 'xor' (b1 <=> b2) = b2;

:: XBOOLEAN:th 90
theorem
for b1, b2 being boolean set holds
b1 'nor' (b1 'xor' b2) = ('not' b1) '&' 'not' b2;

:: XBOOLEAN:th 91
theorem
for b1, b2 being boolean set holds
b1 'nor' (b1 'xor' b2) = b1 'nor' b2;

:: XBOOLEAN:th 92
theorem
for b1, b2 being boolean set holds
b1 'xor' (b1 'nor' b2) = b2 => b1;

:: XBOOLEAN:th 93
theorem
for b1, b2 being boolean set holds
b1 'nand' (b1 'xor' b2) = b1 => b2;

:: XBOOLEAN:th 94
theorem
for b1, b2 being boolean set holds
b1 'xor' (b1 'nand' b2) = b1 => b2;

:: XBOOLEAN:th 95
theorem
for b1, b2 being boolean set holds
b1 'xor' (b1 => b2) = b1 'nand' b2;

:: XBOOLEAN:th 96
theorem
for b1, b2, b3 being boolean set holds
b1 'nand' (b2 'xor' b3) = (b1 '&' b2) <=> (b1 '&' b3);

:: XBOOLEAN:th 97
theorem
for b1, b2 being boolean set holds
b1 'xor' (b1 '&' b2) = b1 '\' b2;

:: XBOOLEAN:th 98
theorem
for b1, b2 being boolean set holds
b1 '&' (b1 'xor' b2) = b1 '\' b2;

:: XBOOLEAN:th 99
theorem
for b1, b2 being boolean set holds
('not' b1) '&' (b1 'xor' b2) = b2 '\' b1;

:: XBOOLEAN:th 100
theorem
for b1, b2 being boolean set holds
b1 'xor' (b1 'or' b2) = b2 '\' b1;

:: XBOOLEAN:th 101
theorem
for b1, b2 being boolean set
      st b1 '&' b2 = TRUE
   holds b1 = TRUE & b2 = TRUE;

:: XBOOLEAN:th 102
theorem
for b1 being boolean set holds
   'not' (b1 '&' 'not' b1) = TRUE;

:: XBOOLEAN:th 103
theorem
for b1 being boolean set holds
   b1 => b1 = TRUE;

:: XBOOLEAN:th 104
theorem
for b1, b2 being boolean set holds
b1 => (b2 => b1) = TRUE;

:: XBOOLEAN:th 105
theorem
for b1, b2 being boolean set holds
b1 => ((b1 => b2) => b2) = TRUE;

:: XBOOLEAN:th 106
theorem
for b1, b2, b3 being boolean set holds
(b1 => b2) => ((b2 => b3) => (b1 => b3)) = TRUE;

:: XBOOLEAN:th 107
theorem
for b1, b2, b3 being boolean set holds
(b1 => b2) => ((b3 => b1) => (b3 => b2)) = TRUE;

:: XBOOLEAN:th 108
theorem
for b1, b2 being boolean set holds
(b1 => (b1 => b2)) => (b1 => b2) = TRUE;

:: XBOOLEAN:th 109
theorem
for b1, b2, b3 being boolean set holds
(b1 => (b2 => b3)) => ((b1 => b2) => (b1 => b3)) = TRUE;

:: XBOOLEAN:th 110
theorem
for b1, b2, b3 being boolean set holds
(b1 => (b2 => b3)) => (b2 => (b1 => b3)) = TRUE;

:: XBOOLEAN:th 111
theorem
for b1, b2, b3 being boolean set holds
((b1 => b2) => b3) => (b2 => b3) = TRUE;

:: XBOOLEAN:th 112
theorem
for b1 being boolean set holds
   (TRUE => b1) => b1 = TRUE;

:: XBOOLEAN:th 113
theorem
for b1, b2, b3 being boolean set
      st b1 => b2 = TRUE
   holds (b2 => b3) => (b1 => b3) = TRUE;

:: XBOOLEAN:th 114
theorem
for b1, b2 being boolean set
      st b1 => (b1 => b2) = TRUE
   holds b1 => b2 = TRUE;

:: XBOOLEAN:th 115
theorem
for b1, b2, b3 being boolean set
      st b1 => (b2 => b3) = TRUE
   holds (b1 => b2) => (b1 => b3) = TRUE;

:: XBOOLEAN:th 116
theorem
for b1, b2 being boolean set
      st b1 => b2 = TRUE & b2 => b1 = TRUE
   holds b1 = b2;

:: XBOOLEAN:th 117
theorem
for b1, b2, b3 being boolean set
      st b1 => b2 = TRUE & b2 => b3 = TRUE
   holds b1 => b3 = TRUE;

:: XBOOLEAN:th 118
theorem
for b1 being boolean set holds
   (('not' b1) => b1) => b1 = TRUE;

:: XBOOLEAN:th 119
theorem
for b1, b2 being boolean set
      st 'not' b1 = TRUE
   holds b1 => b2 = TRUE;

:: XBOOLEAN:th 120
theorem
for b1, b2 being boolean set
      st b1 => b2 = TRUE & b1 => 'not' b2 = TRUE
   holds 'not' b1 = TRUE;

:: XBOOLEAN:th 121
theorem
for b1, b2, b3 being boolean set holds
(b1 => b2) => (('not' (b2 '&' b3)) => 'not' (b1 '&' b3)) = TRUE;

:: XBOOLEAN:th 122
theorem
for b1, b2 being boolean set holds
b1 'or' (b1 => b2) = TRUE;

:: XBOOLEAN:th 123
theorem
for b1, b2 being boolean set holds
b1 => (b1 'or' b2) = TRUE;

:: XBOOLEAN:th 124
theorem
for b1, b2 being boolean set holds
('not' b1) 'or' ((b1 => b2) => b2) = TRUE;

:: XBOOLEAN:th 125
theorem
for b1 being boolean set holds
   b1 <=> b1 = TRUE;

:: XBOOLEAN:th 126
theorem
for b1, b2, b3 being boolean set holds
(((b1 <=> b2) <=> b3) <=> b1) <=> (b2 <=> b3) = TRUE;

:: XBOOLEAN:th 127
theorem
for b1, b2, b3 being boolean set
      st b1 <=> b2 = TRUE & b2 <=> b3 = TRUE
   holds b1 <=> b3 = TRUE;

:: XBOOLEAN:th 128
theorem
for b1, b2, b3, b4 being boolean set
      st b1 <=> b2 = TRUE & b3 <=> b4 = TRUE
   holds (b1 <=> b3) <=> (b2 <=> b4) = TRUE;

:: XBOOLEAN:th 129
theorem
for b1 being boolean set holds
   'not' (b1 <=> 'not' b1) = TRUE;

:: XBOOLEAN:th 130
theorem
for b1, b2, b3, b4 being boolean set
      st b1 <=> b2 = TRUE & b3 <=> b4 = TRUE
   holds (b1 '&' b3) <=> (b2 '&' b4) = TRUE;

:: XBOOLEAN:th 131
theorem
for b1, b2, b3, b4 being boolean set
      st b1 <=> b2 = TRUE & b3 <=> b4 = TRUE
   holds (b1 'or' b3) <=> (b2 'or' b4) = TRUE;

:: XBOOLEAN:th 132
theorem
for b1, b2 being boolean set holds
   b1 <=> b2 = TRUE
iff
   b1 => b2 = TRUE & b2 => b1 = TRUE;

:: XBOOLEAN:th 133
theorem
for b1, b2, b3, b4 being boolean set
      st b1 <=> b2 = TRUE & b3 <=> b4 = TRUE
   holds (b1 => b3) <=> (b2 => b4) = TRUE;

:: XBOOLEAN:th 134
theorem
for b1 being boolean set holds
   'not' (b1 'nor' 'not' b1) = TRUE;

:: XBOOLEAN:th 135
theorem
for b1 being boolean set holds
   b1 'nand' 'not' b1 = TRUE;

:: XBOOLEAN:th 136
theorem
for b1, b2 being boolean set holds
b1 'or' (b1 'nand' b2) = TRUE;

:: XBOOLEAN:th 137
theorem
for b1, b2 being boolean set holds
b1 'nand' (b1 'nor' b2) = TRUE;

:: XBOOLEAN:th 138
theorem
for b1 being boolean set holds
   b1 '&' 'not' b1 = FALSE;

:: XBOOLEAN:th 139
theorem
for b1 being boolean set
      st b1 '&' b1 = FALSE
   holds b1 = FALSE;

:: XBOOLEAN:th 140
theorem
for b1, b2 being boolean set
      st b1 '&' b2 = FALSE & b1 <> FALSE
   holds b2 = FALSE;

:: XBOOLEAN:th 141
theorem
for b1 being boolean set holds
   'not' (b1 => b1) = FALSE;

:: XBOOLEAN:th 142
theorem
for b1 being boolean set holds
   b1 <=> 'not' b1 = FALSE;

:: XBOOLEAN:th 143
theorem
for b1 being boolean set holds
   'not' (b1 <=> b1) = FALSE;

:: XBOOLEAN:th 144
theorem
for b1, b2 being boolean set holds
b1 '&' (b1 'nor' b2) = FALSE;

:: XBOOLEAN:th 145
theorem
for b1, b2 being boolean set holds
b1 'nor' (b1 => b2) = FALSE;

:: XBOOLEAN:th 146
theorem
for b1, b2 being boolean set holds
b1 'nor' (b1 'nand' b2) = FALSE;

:: XBOOLEAN:th 147
theorem
for b1 being boolean set holds
   b1 'xor' b1 = FALSE;