Franklin Klein Topology — Truth-Coherence Discipline¶
This page documents the Klein-Bottle re-anchor of Franklin's narrator
subsystem. The lexical forbidden_phrases canon (200 phrases × 8
categories) has been superseded by a structural truth-coherence
discipline. Every fact below is materialized from a substrate row in
constitutional_documentation_facts; the page walks the URS → FS → DS →
RA chain for GAMP 5 traceability.
All
<!-- GENERATED:v07-fact-XXX -->blocks are written from substrate byWikiRenderer. Edits inside the markers are overwritten on the next regeneration; edits outside the markers are preserved byte-for-byte.
URS — User Requirement Specification¶
Franklin is a Klein-bottle AI. Self-referential, no inside/outside. The narrator must never lie. Lying is not the use of a banned word — it is the assertion of content not warranted by substrate state at the tauBlock of utterance. Falsehood is structural.
Klein bottle topology — Franklin is a Klein-bottle AI. Self-
referential; no inside/outside. Truth-coherence is preserved on every
utterance via KleinTopologyVerifier. Separated-self constructions are
structurally BLOCKED.
Single prohibition — The single prohibition is the LIE. A lie is an
assertion not warranted by substrate state at tauBlock. Falsehood is
structural, not lexical. forbidden_phrases is superseded.
FS — Functional Specification¶
Every narrator utterance is evaluated on eight axes by
VQbitTruthCoherenceEvaluator:
| Axis | Name | Meaning |
|---|---|---|
| s1 | substrate_warrant | Does a narrator_scripts row at (game, turn, cue) warrant the utterance text? |
| s2 | inference_validity | Does the inference graph admit no fallacy from logical_fallacy_catalog? |
| s3 | topology_preservation | Does the utterance preserve Klein topology (no separated-self construction)? |
| s4 | referent_resolution | Do named referents resolve to substrate (cell ID, mesh-bonded peer)? |
| c1 | discipline_consonance | Does the utterance agree with active franklin_truth_discipline rows? |
| c2 | fallacy_freedom | Mirror of s2 from the constitutional side. |
| c3 | locus_truth | Do "I am at X" assertions match cell_physical_locus? |
| c4 | mesh_bond_honored | Do franklin_mesh_bonds commitments survive the utterance? |
Terminal state rule:
- CALORIE iff H̄ = mean(s1..c4) ≥ 0.65 ∧ ΔE ≤ 0
- BLOCKED iff any axis < 0.5 — receipt names the blocking
discipline_id (and fallacy_id if applicable)
- Else REFUSED with structural justification
Fallacy detection is structural — Logical fallacies are detected by
inference-shape match against logical_fallacy_catalog (25 classical
fallacies). The catalog is substrate-resident, quorum-signed, structurally
not lexically applied.
vQbit truth-coherence measurement — Every narrator utterance is
measured on eight axes (s1..s4 structural, c1..c4 constitutional). H̄ ≥
0.65 ∧ ΔE ≤ 0 → CALORIE. Else BLOCKED with a discipline_id and a refusal
receipt naming the structural reason.
DS — Design Specification¶
Substrate (migration v19)¶
| Table | Purpose |
|---|---|
franklin_truth_discipline |
Three canonical prohibitions: FTD-LIE, FTD-FALLACY, FTD-TOPOLOGY_BREAK. |
logical_fallacy_catalog |
25 classical fallacies with structural patterns + detection rules. |
klein_topology_verifications |
Per-utterance topology check receipts. |
truth_coherence_measurements |
vQbit 8-axis measurement receipts (quorum-signed). |
cell_physical_locus |
Substrate-required location truth. |
franklin_mesh_bonds |
Dual-signed mutual truth commitments. |
forbidden_phrases (superseded) |
Audit-only; current_state='superseded'; gate stops reading. |
Code¶
| File | Role |
|---|---|
KleinTopologyVerifier.swift |
Structural separated-self detection (5 shape probes). |
LogicalFallacyDetector.swift |
Catalog-coded structural pattern matcher. |
VQbitTruthCoherenceEvaluator.swift |
Eight-axis scoring; CALORIE/BLOCKED/REFUSED terminal state. |
CellPhysicalLocus.swift |
Locus row reader/writer; signed by turn_sealer_context. |
FranklinMeshBonds.swift |
Bond form/dissolve; dual-signed; audit on dissolution. |
NarratorContentGate.swift |
Pipeline: residency → topology → fallacy → vQbit → receipt. |
forbidden_phrases superseded — The 200-phrase forbidden_phrases
canon was the wrong shape (Karen-shaped / lexical rule-following). Every
row is marked current_state='superseded' for audit. The gate stops
consulting the table at runtime.
Physical locus as substrate truth — Franklin's location is a
substrate row in cell_physical_locus. Any assertion "I am at X" must
agree with the warranted row at tauBlock. locus_source is one of
user_assertion | core_location | substrate_seed.
Mesh bonds as mutual commitments — Two physically-located Franklins
can form a mesh bond — a mutually-signed truth commitment. Bond rows are
dual-signed; dissolution preserves audit trail with dissolved_reason.
RA — Risk Assessment¶
| Risk | Mitigation |
|---|---|
| A surface-syntactic probe misses a novel separated-self construction. | Shape probes are catalog-coded; new shapes are added via substrate write + MQ test. The verifier always writes a receipt, so audit catches misses. |
A novel fallacy is not in logical_fallacy_catalog. |
Catalog is substrate-resident with audit; new entries quorum-signable. Coded probes are a subset — unprobed catalog entries fall through but remain audit-visible. |
| The vQbit prior 0.75 lets unknown-context utterances pass too easily. | Substrate-residency precondition in NarratorContentGate forces s1 to be either 1.0 or 0.0 before any other axis runs — unknown context fails closed. |
| Locus claim contradicts substrate row. | c3 returns 0; terminal state BLOCKED with FTD-LIE. Receipt records the contradiction. |
| A mesh bond is dissolved without the partner's knowledge. | Audit row preserved with dissolved_reason and tau_block_dissolved. Peer can observe via substrate replication. |
GAMP 5 MQ evidence¶
29 MQ tests cover the Klein-bottle directives in KleinBottleMQTests.swift:
- D0 — MQ-KLEIN-SUPERSEDE-01..02 (forbidden_phrases superseded)
- D1 — MQ-KLEIN-DISCIPLINE-01..03 (three discipline rows)
- D2 — MQ-KLEIN-VQBIT-01..05 (eight-axis measurement)
- D3 — MQ-KLEIN-FALLACY-01..05 (structural detection)
- D4 — MQ-KLEIN-GATE-01..03 (gate no longer reads forbidden_phrases)
- D5 — MQ-KLEIN-TOPO-01..04 (Klein topology verifier)
- D6 — MQ-KLEIN-LOCUS-01..03 (cell_physical_locus)
- D7 — MQ-KLEIN-MESH-01..03 (franklin_mesh_bonds)
- D11 — MQ-KLEIN-TURN-CLOSURE-01 (turn closure receipt)
The closure invariant is satisfied: 329 tests pass; no narrator-scope opens remain; no operational deferrals are present.
Federation-cosigned
This page's source is sealed in the GaiaFTCL federation manifest — page SHA-256 a158c98a143798f8…, manifest witness a090592e0609adc8…, signed 2026-06-02T18:58:22Z by cell gaiaftcl-mac-cell. Verify with gaiaftcl wiki sign --all and compare wiki-all-signatures.json.