Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Properties of Heyting algebras; useful for testing lawfulness of instances.
Synopsis
- data BoundedMeetSemiLatticeLawViolation a
- = BMSLVNonAssociative a a a
- | BMSLVNonCommutative a a
- | BMSLVNonIdempotent a
- | BMSLVNonUnital a
- | BMSLVMeetOrderViolation a a
- withArgs :: Show a => String -> [a] -> String
- prop_BoundedMeetSemiLattice :: (BoundedMeetSemiLattice a, Ord a, Eq a, Show a) => a -> a -> a -> CounterExample (BoundedMeetSemiLatticeLawViolation a)
- data BoundedJoinSemiLatticeLawViolation a
- = BJSLVNonAssociative a a a
- | BJSLVNonCommutative a a
- | BJSLVNonIdempotent a
- | BJSLVNonUnital a
- | BJSLVJoinOrderViolation a a
- prop_BoundedJoinSemiLattice :: (BoundedJoinSemiLattice a, Ord a, Eq a, Show a) => a -> a -> a -> CounterExample (BoundedJoinSemiLatticeLawViolation a)
- data DistributiveLatticeLawViolation a
- = DLLVJoinOverMeetViolation a a a
- | DLLVMeetOverJoinViolation a a a
- prop_DistributiveLattice :: (Lattice a, Ord a, Eq a, Show a) => a -> a -> a -> CounterExample (DistributiveLatticeLawViolation a)
- data HeytingAlgebraLawViolation a
- = HAVImplication1 a a a
- | HAVImplication2 a a a
- | HAVNot a a
- | HAVNotAndMeet a a
- | HAVNotAndJoin a a
- | HAVImplicationAndOrd a a
- | HAVDistributiveLatticeLawViolation (DistributiveLatticeLawViolation a)
- | HAVBoundedJoinSemilatticeLawViolation (BoundedJoinSemiLatticeLawViolation a)
- | HAVBoundedMeetSemilatticeLawViolation (BoundedMeetSemiLatticeLawViolation a)
- prop_implies :: (HeytingAlgebra a, Ord a, Eq a, Show a) => a -> a -> a -> CounterExample (HeytingAlgebraLawViolation a)
- prop_HeytingAlgebra :: (HeytingAlgebra a, Ord a, Eq a, Show a) => a -> a -> a -> CounterExample (HeytingAlgebraLawViolation a)
Documentation
data BoundedMeetSemiLatticeLawViolation a Source #
BMSLVNonAssociative a a a | |
BMSLVNonCommutative a a | |
BMSLVNonIdempotent a | |
BMSLVNonUnital a | |
BMSLVMeetOrderViolation a a |
Instances
prop_BoundedMeetSemiLattice :: (BoundedMeetSemiLattice a, Ord a, Eq a, Show a) => a -> a -> a -> CounterExample (BoundedMeetSemiLatticeLawViolation a) Source #
Verifies bounded meet semilattice laws.
data BoundedJoinSemiLatticeLawViolation a Source #
BJSLVNonAssociative a a a | |
BJSLVNonCommutative a a | |
BJSLVNonIdempotent a | |
BJSLVNonUnital a | |
BJSLVJoinOrderViolation a a |
Instances
prop_BoundedJoinSemiLattice :: (BoundedJoinSemiLattice a, Ord a, Eq a, Show a) => a -> a -> a -> CounterExample (BoundedJoinSemiLatticeLawViolation a) Source #
Verifies bounded join semilattice laws.
data DistributiveLatticeLawViolation a Source #
DLLVJoinOverMeetViolation a a a | |
DLLVMeetOverJoinViolation a a a |
Instances
prop_DistributiveLattice :: (Lattice a, Ord a, Eq a, Show a) => a -> a -> a -> CounterExample (DistributiveLatticeLawViolation a) Source #
Distributivity laws for a lattice.
data HeytingAlgebraLawViolation a Source #
Instances
prop_implies :: (HeytingAlgebra a, Ord a, Eq a, Show a) => a -> a -> a -> CounterExample (HeytingAlgebraLawViolation a) Source #
Verifies the Heyting algebra law for ==>
:
for all a
: _ / a
is left adjoint to a ==>
and some other properties that are a consequence of that.
prop_HeytingAlgebra :: (HeytingAlgebra a, Ord a, Eq a, Show a) => a -> a -> a -> CounterExample (HeytingAlgebraLawViolation a) Source #
Useful for testing valid instances of
type class. It
validates:HeytingAlgebra
- bounded lattice laws
prop_implies