equational-reasoning-0.7.0.1: Proof assistant for Haskell using DataKinds & PolyKinds
Safe HaskellNone
LanguageHaskell2010

Proof.Propositional.Empty

Synopsis

Documentation

class Empty a where Source #

Type-class for types without inhabitants, dual to Inhabited. Current GHC doesn't provide selective-instance, hence we don't Empty provide instances for product types in a generic deriving (DeriveAnyClass).

To derive an instance for each concrete types, use refute.

Since 0.4.0.0.

Minimal complete definition

Nothing

Methods

eliminate :: a -> x Source #

default eliminate :: (Generic a, GEmpty (Rep a)) => a -> x Source #

Instances

Instances details
Empty Void Source # 
Instance details

Defined in Proof.Propositional.Empty

Methods

eliminate :: Void -> x Source #

Empty (IsTrue 'False) Source # 
Instance details

Defined in Proof.Propositional

Methods

eliminate :: IsTrue 'False -> x Source #

(Inhabited a, Empty b) => Empty (a -> b) Source # 
Instance details

Defined in Proof.Propositional

Methods

eliminate :: (a -> b) -> x Source #

(Empty a, Empty b) => Empty (Either a b) Source # 
Instance details

Defined in Proof.Propositional.Empty

Methods

eliminate :: Either a b -> x Source #

Empty ('False :~: 'True) Source # 
Instance details

Defined in Proof.Propositional

Methods

eliminate :: ('False :~: 'True) -> x Source #

Empty ('True :~: 'False) Source # 
Instance details

Defined in Proof.Propositional

Methods

eliminate :: ('True :~: 'False) -> x Source #

Empty ('LT :~: 'EQ) Source # 
Instance details

Defined in Proof.Propositional

Methods

eliminate :: ('LT :~: 'EQ) -> x Source #

Empty ('LT :~: 'GT) Source # 
Instance details

Defined in Proof.Propositional

Methods

eliminate :: ('LT :~: 'GT) -> x Source #

Empty ('EQ :~: 'LT) Source # 
Instance details

Defined in Proof.Propositional

Methods

eliminate :: ('EQ :~: 'LT) -> x Source #

Empty ('EQ :~: 'GT) Source # 
Instance details

Defined in Proof.Propositional

Methods

eliminate :: ('EQ :~: 'GT) -> x Source #

Empty ('GT :~: 'LT) Source # 
Instance details

Defined in Proof.Propositional

Methods

eliminate :: ('GT :~: 'LT) -> x Source #

Empty ('GT :~: 'EQ) Source # 
Instance details

Defined in Proof.Propositional

Methods

eliminate :: ('GT :~: 'EQ) -> x Source #

Empty (() :~: Int) Source # 
Instance details

Defined in Proof.Propositional

Methods

eliminate :: (() :~: Int) -> x Source #

Empty (0 :~: 1) Source # 
Instance details

Defined in Proof.Propositional

Methods

eliminate :: (0 :~: 1) -> x Source #

withEmpty :: forall a b. (a -> Void) -> (Empty a => b) -> b Source #

Giving falsity witness by proving Void from a. See also withEmpty'.

Since 0.4.0.0

withEmpty' :: forall a b. (forall c. a -> c) -> (Empty a => b) -> b Source #

Giving falsity witness by showing a entails everything. See also withEmpty.

Since 0.4.0.0