[PostScript]
Boolean: trait
  % This trait is given for documentation only.
  % It is implicit in LSL.
  introduces
    true, false: -> Bool
    ~__: Bool -> Bool
    __/\ __, __\/__, __=>__: Bool, Bool -> Bool
  asserts
    Bool generated by true, false
    forall b: Bool
      ~ true == false;
      ~ false == true;
      true /\ b == b;
      false /\ b == false;
      true \/ b == true;
      false \/ b == b;
      true => b == b;
      false => b == true
  implies
    AC (/\ , Bool),
    AC (\/, Bool),
    Distributive (\/ for +, /\ for *, Bool for T),
    Distributive (/\ for +, \/ for *, Bool for T),
    Involutive (~__, Bool),
    Transitive (=> for \rel, Bool for T)
    forall b1, b2, b3: Bool
      ~(b1 /\ b2) == ~b1 \/ ~b2;
      ~(b1 \/ b2) == ~b1 /\ ~b2;
      b1 \/ (b1 /\ b2) == b1;
      b1 /\ (b1 \/ b2) == b1;
      b2 \/ ~b2;
      (b1 = b2) \/ (b1 = b3) \/ (b2 = b3);
      b1 => b2 == ~b1 \/ b2
[Table of Contents] [Index]