Spaces:
Running
Running
File size: 6,127 Bytes
a6a5d8e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | # Formula Gates — 30 New Anchor Policy Gates
**Author:** Lutar, Stephen P. — ORCID 0009-0001-0110-4173 — SZL Holdings
**Generated:** 2026-05-29 (evening session)
**Lean commit anchor:** `1dca00032dfc9aa8559cc6c2e4b63192fcf52371`
**Zenodo concept DOI:** https://doi.org/10.5281/zenodo.20162352
---
## What this deliverable contains
This directory mirrors the `a11oy/packages/policy/src/gates/` target structure and provides
the 30 new policy gate files that extend a11oy#108 (`cursor/policy-gates-hardening-2f18`).
```
formula_gates_30/
├── packages/policy/src/gates/
│ ├── soundnessAxiom_gate.ts (A1)
│ ├── moralGroundingFloor_gate.ts (A2)
│ ├── measurabilityHonestyFloor_gate.ts (A3)
│ ├── dualWitnessDisjointness_gate.ts (A4)
│ ├── deterministicReplay_gate.ts (A5)
│ ├── hashChainIntegrity_gate.ts (A6)
│ ├── bekensteinBound_gate.ts (A7 — STAGED)
│ ├── ingestDiscipline_gate.ts (A8)
│ ├── doctrineCompleteness_gate.ts (A9)
│ ├── temporalConsistency_gate.ts (A10)
│ ├── causalSeparability_gate.ts (A11)
│ ├── constructiveTransparency_gate.ts (A12)
│ ├── economicGrounding_gate.ts (A14)
│ ├── rhoClosureComposition_gate.ts (T1)
│ ├── lambdaMonotonicity_gate.ts (T2)
│ ├── merkleDagBatch_gate.ts (T3)
│ ├── bekensteinEntropyMeasure_gate.ts (T4)
│ ├── replayDeterminism_gate.ts (T5)
│ ├── conjunctiveGateCounterexample_gate.ts (T6)
│ ├── privacyMask_gate.ts (T7)
│ ├── singleWitnessExclusion_gate.ts (T8)
│ ├── crossRegionPolicy_gate.ts (T9)
│ ├── doctrineEnforcement_gate.ts (T10)
│ ├── composability_gate.ts (TH1)
│ ├── replayDoiDuality_gate.ts (TH2)
│ ├── anatomyReduction_gate.ts (TH3)
│ ├── lambdaCategoryComposability_gate.ts (TH4 — STAGED)
│ ├── receiptChainConfluence_gate.ts (TH5)
│ ├── bekensteinEntropyDpi_gate.ts (TH6)
│ ├── curryHowardReceiptCalculus_gate.ts (TH7)
│ ├── lambdaUniquenessConjecture_gate.ts (TH_L1 — CONJECTURE, NOT theorem)
│ ├── lambdaMinMaxBounds_gate.ts (TH_L2)
│ ├── bekensteinSoundness_gate.ts (TH_L3 — STAGED)
│ ├── rhoClosureProduction_gate.ts (TH_L4)
│ ├── index.ts (barrel — all 35 gates)
│ ├── README.md (full formula table)
│ └── __tests__/
│ └── policy_gates_extended.test.ts (90 tests for 30 new gates)
└── FORMULA_GATES_30_README.md (this file)
```
---
## TL;DR
**Gate files written:** 30 new gate files + 1 updated barrel `index.ts` = 31 files total.
The barrel also re-exports the 5 original gates from a11oy#108, for a complete 35-gate surface.
**Tests written:** 90 Vitest-compatible assertions in `policy_gates_extended.test.ts`
(3 per new gate: positive/allow, negative/deny, edge/boundary or throws-on-invalid-input).
The existing `policy_gates.test.ts` from a11oy#108 covers the original 5 gates.
Combined test surface: 90 + existing = complete gate coverage.
**Lean status breakdown (30 new gates):**
- Theorem (0 sorry in gate's own Lean file): 20 gates — A1–A6, A8–A9, A10–A12, A14, T1–T3, T5–T10, TH1–TH3, TH6–TH7, TH_L4
- Conjectured (pending Lean formalization): 4 gates — A7, T4, TH4, TH5
- Measured/empirical: 1 gate — TH_L4 (ρ-closure 100% on 8,000 calls, ouroboros v6.3.0)
- Measured/conjectured: 1 gate — TH_L3 (49.5% fire rate, pending PR #12)
- Theorem with 2 sorrys in wider Lean repo (not in gate file itself): 2 gates — TH_L1, TH_L2
**STAGED advisory labels applied to 4 gates:**
| Gate | Formula ID | Reason |
|---|---|---|
| `bekensteinBound_gate.ts` | A7 | conjectured; TH6 DPI formally discharges it but gate-level Lean file pending |
| `lambdaCategoryComposability_gate.ts` | TH4 | pending `Lutar/LaxFunctor.lean` |
| `bekensteinSoundness_gate.ts` | TH_L3 | pending `lutar-lean` PR #12 |
| `liuHuiPi_gate.ts` (a11oy#108) | Liu Hui | axiom-structured — advisory by original design |
These 4 gates default to `enforced: false` and emit `severity: 'warning'`.
Pass `{ enforced: true }` to promote any gate to blocking.
**How to wire to a11oy#108:**
```bash
# Inside the szl-holdings/a11oy repo, on branch cursor/policy-gates-hardening-2f18:
cp /home/user/workspace/szl/audit_2026-05-29_evening/formula_gates_30/packages/policy/src/gates/*_gate.ts \
packages/policy/src/gates/
cp /home/user/workspace/szl/audit_2026-05-29_evening/formula_gates_30/packages/policy/src/gates/index.ts \
packages/policy/src/gates/index.ts
cp /home/user/workspace/szl/audit_2026-05-29_evening/formula_gates_30/packages/policy/src/gates/README.md \
packages/policy/src/gates/README.md
cp /home/user/workspace/szl/audit_2026-05-29_evening/formula_gates_30/packages/policy/src/gates/__tests__/policy_gates_extended.test.ts \
packages/policy/src/gates/__tests__/policy_gates_extended.test.ts
# Run the full gate test suite
pnpm vitest run packages/policy/src/gates/__tests__/
# Commit with sign-off (Doctrine v6)
git add packages/policy/
git commit -s -m "feat(policy): add 30 anchor formula gates (A1-A14, T1-T10, TH1-TH7, TH_L1-TH_L4)"
```
**Pattern conformance:** Every gate file matches the `adversarialRobustness_gate.ts` pattern from a11oy#108:
- SPDX + ORCID header
- Named `export function <camelCase>Gate(config)(opts): Decision`
- JSDoc citing Lean theorem name, file, and commit SHA
- `leanCommitSha`, `rationale` (with `Lean:` reference), and `leanFile` in every return value
- TypeScript-strict (no `any` types)
- Under 120 lines per file
- Inline formula comment block
---
Source: `packages/a11oy-knowledge/src/{knowledge.json,theorems.ts,derivations.ts,proposed_axioms.ts}`
from `szl-holdings/a11oy@cursor/policy-gates-hardening-2f18`
|