------------------------------------------------------------------------
-- The Agda standard library
--
-- Instances of algebraic structures where the carrier is ⊤. In
-- mathematics, this is usually called 0 (1 in the case of Monoid, Group).
--
-- From monoids up, these are are zero-objects – i.e, both the initial
-- and the terminal object in the relevant category.
--
-- For structures without an identity element, the terminal algebra is
-- *not* initial, because there is an instance of such a structure
-- with an empty Carrier. Accordingly, such definitions are now deprecated
-- in favour of those defined in `Algebra.Construct.Terminal`.
------------------------------------------------------------------------
{-# OPTIONS --cubical-compatible --safe #-}
open import Level using (Level)
module Algebra.Construct.Zero {c ℓ : Level} where
open import Algebra.Bundles.Raw using (RawMagma)
open import Algebra.Bundles using (Magma; Semigroup; Band)
------------------------------------------------------------------------
-- Re-export those algebras which are both initial and terminal
open import Algebra.Construct.Terminal public
hiding (rawMagma; magma; semigroup; band)
------------------------------------------------------------------------
-- DEPRECATED
------------------------------------------------------------------------
-- Please use the new definitions re-exported from
-- `Algebra.Construct.Terminal` as continuing support for the below is
-- not guaranteed.
-- Version 2.0
rawMagma : RawMagma c ℓ
rawMagma = Algebra.Construct.Terminal.rawMagma
{-# WARNING_ON_USAGE rawMagma
"Warning: rawMagma was deprecated in v2.0.
Please use Algebra.Construct.Terminal.rawMagma instead."
#-}
magma : Magma c ℓ
magma = Algebra.Construct.Terminal.magma
{-# WARNING_ON_USAGE magma
"Warning: magma was deprecated in v2.0.
Please use Algebra.Construct.Terminal.magma instead."
#-}
semigroup : Semigroup c ℓ
semigroup = Algebra.Construct.Terminal.semigroup
{-# WARNING_ON_USAGE semigroup
"Warning: semigroup was deprecated in v2.0.
Please use Algebra.Construct.Terminal.semigroup instead."
#-}
band : Band c ℓ
band = Algebra.Construct.Terminal.band
{-# WARNING_ON_USAGE semigroup
"Warning: semigroup was deprecated in v2.0.
Please use Algebra.Construct.Terminal.semigroup instead."
#-}