------------------------------------------------------------------------------
-- The FOTC Booleans type
------------------------------------------------------------------------------

{-# OPTIONS --exact-split              #-}
{-# OPTIONS --no-sized-types           #-}
{-# OPTIONS --no-universe-polymorphism #-}
{-# OPTIONS --without-K                #-}

-- N.B. This module is re-exported by FOTC.Data.Bool.

module FOTC.Data.Bool.Type where

open import FOTC.Base

------------------------------------------------------------------------------
-- The FOTC Booleans type (inductive predicate for total Booleans).
data Bool : D  Set where
  btrue  : Bool true
  bfalse : Bool false
{-# ATP axioms btrue bfalse #-}

-- The rule of proof by case analysis.
Bool-ind : (A : D  Set)  A true  A false   {b}  Bool b  A b
Bool-ind A At Af btrue  = At
Bool-ind A At Af bfalse = Af