manyvalued
Safe HaskellNone
LanguageGHC2024

Circuit.Logics.Laws

Description

Named law functions for lattice Heyting Boolean carriers.

These are the value-level oracles: run them on concrete models so claims about "Boolean", "Heyting", or "just a lattice" can go red.

Synopsis

Lattice

law_join_assoc :: JoinSemiLattice a => a -> a -> a -> Bool Source #

law_meet_assoc :: MeetSemiLattice a => a -> a -> a -> Bool Source #

Heyting

law_heyting_distr :: Heyting a => a -> a -> a -> Bool Source #

Boolean

Suites

latticeSuite :: (JoinSemiLattice a, MeetSemiLattice a) => a -> a -> a -> Bool Source #

All lattice laws on a triple of samples.

heytingSuite :: Heyting a => a -> a -> a -> Bool Source #

booleanSuite :: (Heyting a, Complemented a) => a -> a -> a -> Bool Source #