lattices-2.1: Fine-grained library for constructing and manipulating lattices
Safe Haskell Safe
Language Haskell2010

Algebra.Heyting.Free.Expr

Synopsis

Documentation

data Expr a Source #

Heyting algebra expression.

Note: this type doesn't have Heyting instance, as its Eq and Ord are structural.

Constructors

Var a
Bottom
Top
( Expr a) :/\: ( Expr a) infixr 6
( Expr a) :\/: ( Expr a) infixr 5
( Expr a) :=>: ( Expr a) infixr 4

Instances

Instances details
Monad Expr Source #
Instance details

Defined in Algebra.Heyting.Free.Expr

Functor Expr Source #
Instance details

Defined in Algebra.Heyting.Free.Expr

Applicative Expr Source #
Instance details

Defined in Algebra.Heyting.Free.Expr

Foldable Expr Source #
Instance details

Defined in Algebra.Heyting.Free.Expr

Traversable Expr Source #
Instance details

Defined in Algebra.Heyting.Free.Expr

Eq a => Eq ( Expr a) Source #
Instance details

Defined in Algebra.Heyting.Free.Expr

Data a => Data ( Expr a) Source #
Instance details

Defined in Algebra.Heyting.Free.Expr

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> Expr a -> c ( Expr a) Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c ( Expr a) Source #

toConstr :: Expr a -> Constr Source #

dataTypeOf :: Expr a -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c ( Expr a)) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c ( Expr a)) Source #

gmapT :: ( forall b. Data b => b -> b) -> Expr a -> Expr a Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> Expr a -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> Expr a -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> Expr a -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> Expr a -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> Expr a -> m ( Expr a) Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> Expr a -> m ( Expr a) Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> Expr a -> m ( Expr a) Source #

Ord a => Ord ( Expr a) Source #
Instance details

Defined in Algebra.Heyting.Free.Expr

Show a => Show ( Expr a) Source #
Instance details

Defined in Algebra.Heyting.Free.Expr

Generic ( Expr a) Source #
Instance details

Defined in Algebra.Heyting.Free.Expr

Associated Types

type Rep ( Expr a) :: Type -> Type Source #

Generic1 Expr Source #
Instance details

Defined in Algebra.Heyting.Free.Expr

Associated Types

type Rep1 Expr :: k -> Type Source #

Methods

from1 :: forall (a :: k). Expr a -> Rep1 Expr a Source #

to1 :: forall (a :: k). Rep1 Expr a -> Expr a Source #

type Rep ( Expr a) Source #
Instance details

Defined in Algebra.Heyting.Free.Expr

type Rep1 Expr Source #
Instance details

Defined in Algebra.Heyting.Free.Expr

proofSearch :: forall a. Ord a => Expr a -> Bool Source #

Decide whether x :: Expr a is provable.

Note: this doesn't construct a proof term, but merely returns a Bool .