------------------------------------------------------------------------ -- The Agda standard library -- -- The type for booleans and some operations ------------------------------------------------------------------------ {-# OPTIONS --cubical-compatible --safe #-} module Data.Bool.Base where open import Data.Unit.Base using () open import Data.Empty open import Level using (Level) private variable a : Level A : Set a ------------------------------------------------------------------------ -- The boolean type open import Agda.Builtin.Bool public ------------------------------------------------------------------------ -- Relations infix 4 _≤_ _<_ data _≤_ : Bool Bool Set where f≤t : false true b≤b : {b} b b data _<_ : Bool Bool Set where f<t : false < true ------------------------------------------------------------------------ -- Boolean operations infixr 6 _∧_ infixr 5 _∨_ _xor_ not : Bool Bool not true = false not false = true _∧_ : Bool Bool Bool true b = b false b = false _∨_ : Bool Bool Bool true b = true false b = b _xor_ : Bool Bool Bool true xor b = not b false xor b = b ------------------------------------------------------------------------ -- Conversion to Set -- A function mapping true to an inhabited type and false to an empty -- type. T : Bool Set T true = T false = ------------------------------------------------------------------------ -- Other operations infix 0 if_then_else_ if_then_else_ : Bool A A A if true then t else f = t if false then t else f = f