The drift problem is not solved by discipline. It is solved by language design: in a first-order theory, meaning is fixed by axioms and their models — and what the signature cannot express, no reasoner can drift toward, because it cannot even be said.
Every prior attempt to hold the lattice's meanings steady relied on instruction: read the symbol this way, not that way. Instructions decay. A reasoner — human or machine — holding a boundary against its own priors is doing continuous work, and continuous work fails over long contexts.
A first-order theory does not ask for that work. It fixes a signature — the complete list of things the language can talk about — and a set of axioms. A statement is meaningful only if it can be built from the signature; it is true only if it holds in every model of the axioms (this is the model-theoretic account of truth, Tarski's satisfaction relation [3]). Everything else is not wrong — it is ill-formed. Grammatically nonexistent.
The decoupling guarantee: the AH signature contains addresses, lines, and validity — nothing else. An inherited association is not a forbidden sentence in this language; it is not a sentence at all. There is no well-formed formula that says it. Drift is thereby demoted from a temptation to a syntax error, and a syntax error is machine-detectable.
This is why the fix is architectural. The old approach posted a guard at the door; the first-order approach builds a house with no such door in it.
The full formal development, with proofs, lives on the proof page. Stated here for working use:
Sort A (addresses); sort L = {ground, middle, top} (lines); predicate P(a, ℓ) — "address a carries power at line ℓ." Nothing further. No names, no glyphs, no external vocabulary.
There are exactly eight addresses, one for each power-profile over the three lines.
∀a,b [ (∀ℓ P(a,ℓ) ↔ P(b,ℓ)) → a = b ] · every profile realizedPower at the ground line.
Grounded(a) := P(a, ground)Power somewhere above the ground line.
Carried(a) := P(a, middle) ∨ P(a, top)Recursion validity is not axiomatized. It is defined from the two predicates above — and the theorem on the proof page shows this definition reproduces the house table exactly, all eight addresses, no exceptions.
false := ¬Carried · strong := Carried ∧ ¬Grounded · graded := Carried ∧ Grounded within graded: true := power at both upper lines · transcendent := top only · limited := middle onlyOne sentence of it, in plain terms: life requires carry; grade requires ground; character is where the carry sits.
The predicate P(a, ℓ) looks like it presupposes two things — power and its absence. It presupposes one: a distinction. This is the same economy by which mathematics constructs the numbers from nothing: 0 is the empty set, and 1 = {∅} — one is not a new substance but the act of regarding emptiness (von Neumann's ordinal construction [1]). Spencer-Brown built a complete calculus from the identical move: a single injunction, draw a distinction, from which the mark and the unmarked space co-arise as the two faces of one act [2].
So the lattice's root is not "power and vacuum," and the theory does not need two primitives. It needs one relation — there / not-there — and the entire eight-address space, with its derived validity grading, is the closure of that relation under three applications. The philosophical claim on the lattice page (S3, Objection 1) and the formal machinery here are the same statement at two altitudes.
Deeper provenance for these results — the lineage from Leibniz through Boole and Frege to model theory — is archived at historicalpresent.com/shared/math-lineage.html.
Because validity is derived, the whole theory fits in a pocket. Any system claiming to implement AH₃ can be audited against this; any output disagreeing with it is malformed — the same class of error as invalid syntax.
# AH-3: complete derivation of the validity table. No lookup, no stamps. def validity(a): # a = (ground, middle, top), each 0 or 1 g, m, t = a carried = m or t if not carried: return "false" # 000, 100 if not g: return "strong" # 001, 010, 011 if m and t: return "true" # 111 if t: return "transcendent" # 101 return "limited" # 110 # exhaustive check: prints the house table, all eight addresses for n in range(8): a = (n >> 2 & 1, n >> 1 & 1, n & 1) print(f"AH-T{n} {n:03b} {validity(a)}")
The trope systems at tropes.adaptorhouse.com inherit this directly: a trope's phase traversal is validated by validity() on its addresses, and nothing in the call chain can express anything the signature doesn't contain.
The derivation above is checkable by exhaustion — that part is arithmetic, not opinion. What remains a claim is that the derivation is the right reading of the system: that the ground line is genuinely the axis of judgment, and that the rule is structure rather than a coincidence of eight small cases. The author holds this in the first person — I believe the grading is structural — and has published the formal statement, its proof, and its generalization to the 64-address space as a standing challenge to the mathematics community on the proof page. Acceptance is theirs to give, not the house's to declare.