Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
kleene.cppm File Reference

Kleene starter: the three-valued truth surface ๐•‚3 as an algebra on a set (the downstream sibling of the Boolean ๐”น). More...

#include <functional>
import dedekind.algebra:universal;
import dedekind.sets;
import dedekind.category;
Include dependency graph for kleene.cppm:

Variables

constexpr auto dedekind::algebra::๐•‚3 = ๐”ธ<Ternary, Boole, Finite>{}
 The canonical Kleene universe ๐•‚3 = ๐”ธ<Ternary, Boole, Finite> (the three-valued sibling of ๐”น = ๐”ธ<bool>).

Detailed Description

Kleene starter: the three-valued truth surface ๐•‚3 as an algebra on a set (the downstream sibling of the Boolean ๐”น).

@partition :kleene

algebra_kleene__Intent

Downstream witness (sibling of :boolean) that Kleene's three-valued truth surface ๐•‚3 = ๐”ธ<Ternary> is an algebra on a set: the carrier Ternary is closed under the Kleene meet โˆง, join โˆจ and reflection ยฌ. It is a bounded distributive lattice (the De Morgan / Kleene sibling of the Boolean ๐”น = ๐”ธ<bool>), but not a Boolean algebra: the interior value Unknown is self-negating (ยฌUnknown = Unknown), so ๐•‚3 is uncomplemented.

The species-level statements live upstream in :logic (IsBoundedDeMorganChain / IsBooleanLogic); this partition pins their downstream algebra-on-set counterpart, where the logic's lattice structure meets IsAlgebraOnSet. This is the algebra-on-set portion of #912; the companion criterion — registering Ternary's bounds and order in the :total / :posetal lattice machinery — now lives at the Ternary definition in :logic (so IsDistributiveLattice / IsBoundedLattice and the order stack resolve on the carrier, witnessed in logic_lattice_structure_test.cpp and order_test.cpp).

Wikipedia: Three-valued logic, Kleene algebra (with involution), ลukasiewiczโ€“Moisil algebra.

Note
"Metoda algebraiczna w logice polega na traktowaniu kaลผdego systemu logicznego jako pewnego okreล›lonego rodzaju algebry abstrakcyjnej." — Helena Rasiowa (echoing :logic upstream). This partition is exactly that thesis made concrete for the Kleene system: ๐•‚3 is the abstract algebra of three-valued logic, an IsAlgebraOnSet. [Trans: The algebraic method in logic consists in treating every logical system as a specific type of abstract algebra.]

Variable Documentation

◆ ๐•‚3

auto dedekind::algebra::๐•‚3 = ๐”ธ<Ternary, Boole, Finite>{}
inlineconstexprexport

The canonical Kleene universe ๐•‚3 = ๐”ธ<Ternary, Boole, Finite> (the three-valued sibling of ๐”น = ๐”ธ<bool>).

The Finite cardinality tag is explicit: Ternary is a three-element carrier, but the ๐”ธ primary defaults C to โ„ต_0, which would report this finite universe as countably infinite. Only the cardinality metadata is corrected: the classifier species is Boole either way (a universe over a regular carrier answers in Boole). Mirrors the ๐”ธ<bool> = ๐”ธ<bool, Boole, Finite> override in :boundaries, but kept local here so the Kleene carrier's cardinality stays a downstream (:algebra) fact rather than being pushed up into :sets.