Skip to content

Commit 6a17152

Browse files
docs+annotate: Lambda cluster — inline AXIOM: comments + Lean Phase 2a triage (#60)
## Summary Phase 2a of the standards#203 trusted-base reduction policy rollout (follow-up to #58 / #59 Coq triage). First cluster: `proofs/coq/lambda/` + `proofs/lean4/LambdaCNO.lean`. ### Coq (2 markers, both §(c) AXIOM per #58 triage) - `proofs/coq/lambda/LambdaCNO.v:356` `y_not_cno` — inline `(* AXIOM: ... *)` annotation added. - `proofs/coq/lambda/LambdaCNO.v:376` `eta_equivalence` — inline `(* AXIOM: ... *)` annotation added. ### Lean (3 markers — new Phase 2a triage) | Line | Identifier | Disposition | |-----:|------------|-------------| | 183 | `subst_closed_term` | §(d) DEBT (provable; INDEFINITE) | | 232 | `y_combinator_not_identity` | §(c) AXIOM (inline annotation added) | | 258 | `eta_equivalence` | §(c) AXIOM (inline annotation added) | ### docs/proof-debt.md - New "Phase 2a triage — Lean Lambda cluster" section with per-marker table. - §(d) bucket gains the Lean `subst_closed_term` DEBT entry (owner + INDEFINITE deadline). ## Verification ``` $ bash ../standards/scripts/check-trusted-base.sh . [INFO] Found 129 soundness-relevant escape hatch(es). [OK] proof-debt document(s) found: docs/proof-debt.md [ERROR] 123/129 escape hatch(es) are undocumented. ``` **Lambda-specific errors: 0** (down from 5). The remaining 123 errors are the Quantum / Filesystem / Physics clusters, scheduled for follow-up PRs (Phase 2b/2c/2d). ## Test plan - [x] check-trusted-base.sh reports 0 errors on Lambda lines. - [x] All inline annotations precede Axiom / axiom within the script's 5-line lookback. - [x] Lean §(d) DEBT entry has owner + deadline per standards#203 schema. - [ ] Coq build still green (no semantic change — only added comments). - [ ] Lean build still green (no semantic change — only added comments). Refs standards#203, #58, #59. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 2723aad commit 6a17152

3 files changed

Lines changed: 52 additions & 3 deletions

File tree

docs/proof-debt.md

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,20 @@ Out of scope for Phase 1 (still in §(d) pending future triage):
3131
52 Lean 4 `axiom` declarations and the 7 Idris2 postulates tracked by
3232
[#27](https://github.com/hyperpolymath/absolute-zero/issues/27).
3333

34+
## Phase 2a triage — Lean Lambda cluster (2026-05-27)
35+
36+
Per-cluster Lean triage rolling out 2026-05-27 in cluster-sized PRs.
37+
First cluster: `proofs/lean4/LambdaCNO.lean` (3 axioms).
38+
39+
| Line | Identifier | Disposition | Justification |
40+
|-----:|------------|-------------|---------------|
41+
| 183 | `subst_closed_term` | §(d) DEBT | Standard metatheoretic property of lambda calculus; provable by induction on `t` once the substitution-on-closed-terms lemma is mechanised. |
42+
| 232 | `y_combinator_not_identity` | §(c) AXIOM | Non-termination claim about Y combinator; requires step-indexed semantics or coinduction (same justification as Coq `y_not_cno`). |
43+
| 258 | `eta_equivalence` | §(c) AXIOM | η-equivalence is not derivable under β-only reduction (same justification as Coq `eta_equivalence` at LambdaCNO.v:376). |
44+
45+
The two §(c) entries are annotated inline with `-- AXIOM:` leading
46+
comments. The §(d) entry below has an owner + deadline.
47+
3448
## (a) DISCHARGE backlog (Coq, 17)
3549

3650
Provable propositions currently stated as `Axiom`. Enumerated in
@@ -52,12 +66,33 @@ Full enumeration in [`docs/proof-debt-triage.md`](./proof-debt-triage.md).
5266

5367
## (d) DEBT — actively to be closed
5468

55-
After Phase 1, the §(d) bucket contains only the 52 Lean axioms and
56-
7 Idris2 postulates that have not yet been triaged. Coq markers are
69+
After Phase 1, the §(d) bucket contains only the Lean axioms and 7
70+
Idris2 postulates that have not yet been triaged. Coq markers are
5771
no longer in §(d).
5872

73+
### Lean — provable, awaiting proof
74+
75+
- `proofs/lean4/LambdaCNO.lean:183``subst_closed_term`
76+
- **Owner**: @hyperpolymath
77+
- **Plan**: discharge by induction on `t : LambdaTerm`; closed-term
78+
invariant carries through `LVar`, `LAbs`, `LApp` cases. Sibling to
79+
Coq's `subst` lemmas in `proofs/coq/lambda/LambdaCNO.v`.
80+
- **Deadline**: INDEFINITE (no proof-PR scheduled yet — provable;
81+
awaits Lean-side discharge push).
82+
83+
### Lean — pending triage
84+
85+
49 Lean axioms remain to be triaged (FilesystemCNO 21, QuantumCNO 14,
86+
StatMech 14). Triage planned in cluster-sized PRs through
87+
2026-06 — see this file's status block at the bottom.
88+
89+
### Idris2 — pending triage
90+
91+
7 Idris2 postulates in `src/abi/Layout.idr`. Tracked by
92+
[#27](https://github.com/hyperpolymath/absolute-zero/issues/27).
93+
5994
```
60-
(no Coq markers in §(d) post Phase 1; see triage doc for §a/§b/§c.)
95+
(Coq markers no longer in §(d) post Phase 1; see triage doc for §a/§b/§c.)
6196
```
6297

6398
> If `129` > 30, the list above shows the first 30 only.

proofs/coq/lambda/LambdaCNO.v

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,10 @@ Definition y_combinator : LambdaTerm :=
353353
354354
This is a fundamental result in lambda calculus and is safely axiomatized.
355355
*)
356+
(* AXIOM: y_not_cno; non-termination claim about the Y combinator —
357+
requires step-indexed semantics or coinduction to discharge within
358+
the working logic. §(c) NECESSARY AXIOM per docs/proof-debt.md
359+
(triage: docs/proof-debt-triage.md row LambdaCNO.v:356). *)
356360
Axiom y_not_cno : ~ is_lambda_CNO y_combinator.
357361

358362
(** ** Practical Examples *)
@@ -373,6 +377,10 @@ Definition snd : LambdaTerm :=
373377
(** ** Eta Equivalence *)
374378

375379
(** Eta reduction: (λx. f x) ≡ f *)
380+
(* AXIOM: eta_equivalence; η-equivalence is not derivable under β-only
381+
reduction — requires an extra reduction rule or extensional equality.
382+
§(c) NECESSARY AXIOM per docs/proof-debt.md (triage:
383+
docs/proof-debt-triage.md row LambdaCNO.v:376). *)
376384
Axiom eta_equivalence :
377385
forall f : LambdaTerm,
378386
beta_reduce_star (LAbs (LApp f (LVar 0))) f.

proofs/lean4/LambdaCNO.lean

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,9 @@ def y_combinator : LambdaTerm :=
229229

230230
/-- Y is NOT a CNO because it doesn't act as identity.
231231
Y f reduces to f (Y f), not back to f. -/
232+
-- AXIOM: y_combinator_not_identity; non-termination claim about the Y combinator —
233+
-- requires step-indexed semantics or coinduction to discharge.
234+
-- §(c) NECESSARY AXIOM per docs/proof-debt.md (Lean Lambda triage 2026-05-27).
232235
axiom y_combinator_not_identity :
233236
¬ BetaReduceStar (LApp y_combinator lambda_id) lambda_id
234237

@@ -255,6 +258,9 @@ example : BetaReduceStar (LApp church_zero church_zero) (LAbs (LVar 0)) := by
255258
/-! ## Eta Equivalence -/
256259

257260
/-- Eta reduction: (λx. f x) ≡ f -/
261+
-- AXIOM: eta_equivalence; η-equivalence is not derivable under β-only reduction —
262+
-- requires an extra reduction rule or extensional equality.
263+
-- §(c) NECESSARY AXIOM per docs/proof-debt.md (Lean Lambda triage 2026-05-27).
258264
axiom eta_equivalence (f : LambdaTerm) :
259265
BetaReduceStar (LAbs (LApp f (LVar 0))) f
260266

0 commit comments

Comments
 (0)