| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Circuit.Logics
Description
Multi-valued and Heyting logics as circuit compile targets.
Role
This package is not substrate core. It sits in the same column as
FinRel and Process: an alternative (or complementary) meaning for
boxes and wires — truth values, judgments, graded belief — that circuit
syntax can compile into.
Hierarchy
Lattice → Heyting → Boolean
│
├── Bool (classical propositional structure)
├── H3 (finite non-Boolean Heyting)
├── Goedel r (fuzzy / graded Heyting)
└── (K3 is lattice-only — not Heyting)
numhask guess
numhask already owns order lattices (JoinSemiLattice / MeetSemiLattice).
A plausible path is:
- Keep this package as the logic laboratory and circuit payload home.
- If Heyting earns its keep, lift a thin
Heytingclass into numhask (or anumhask-logicsatellite) with the same laws. - Instances:
Bool, maybeGoedel Double; leave H3/K3 here as specialty carriers and oracles. Boolean2Ringdocuments Boolean↔Ring; only migrate if numhask wants that bridge next to its ring tower.
Until then: compile logic here; keep numeric core clean.
Synopsis
- module Circuit.Logics.Lattice
- module Circuit.Logics.Heyting
- module Circuit.Logics.Boolean
- module Circuit.Logics.H3
- module Circuit.Logics.K3
- module Circuit.Logics.Goedel
- module Circuit.Logics.Boolean2Ring
- module Circuit.Logics.Prop
- module Circuit.Logics.Combine
- module Circuit.Logics.Process
- module Circuit.Logics.Laws
Lattice Heyting Boolean
module Circuit.Logics.Lattice
module Circuit.Logics.Heyting
module Circuit.Logics.Boolean
Carriers
module Circuit.Logics.H3
module Circuit.Logics.K3
module Circuit.Logics.Goedel
module Circuit.Logics.Boolean2Ring
module Circuit.Logics.Prop
Merge protocols
module Circuit.Logics.Combine
Streaming judges
module Circuit.Logics.Process
Oracles
module Circuit.Logics.Laws