manyvalued
Safe HaskellNone
LanguageGHC2024

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:

  1. Keep this package as the logic laboratory and circuit payload home.
  2. If Heyting earns its keep, lift a thin Heyting class into numhask (or a numhask-logic satellite) with the same laws.
  3. Instances: Bool, maybe Goedel Double; leave H3/K3 here as specialty carriers and oracles.
  4. Boolean2Ring documents Boolean↔Ring; only migrate if numhask wants that bridge next to its ring tower.

Until then: compile logic here; keep numeric core clean.

Synopsis

Lattice Heyting Boolean

Carriers

Merge protocols

Streaming judges

Oracles