Skip to content

E5: make ν operational and add Buchholz example/smoke modules#6

Merged
hyperpolymath merged 1 commit into
mainfrom
claude/e5-nu-conditions-and-smoke-t2H9q
Apr 22, 2026
Merged

E5: make ν operational and add Buchholz example/smoke modules#6
hyperpolymath merged 1 commit into
mainfrom
claude/e5-nu-conditions-and-smoke-t2H9q

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

@hyperpolymath hyperpolymath commented Apr 22, 2026

Summary

  • make Omega-index order explicit in Ordinal.OmegaMarkers (≤Ω, reflexivity/transitivity)
  • thread ν-side conditions through Buchholz closure constructors (cν-omega, cν-psi)
  • update ψ_ν lemmas to match new constructor shapes
  • add Ordinal.Buchholz.Examples with concrete witness terms/derivations
  • add Ordinal.Buchholz.Smoke and wire both modules into All/Smoke

Verification

  • agda -i proofs/agda proofs/agda/All.agda
  • agda -i proofs/agda proofs/agda/Smoke.agda

@hyperpolymath hyperpolymath merged commit 3655111 into main Apr 22, 2026
2 checks passed
@hyperpolymath hyperpolymath deleted the claude/e5-nu-conditions-and-smoke-t2H9q branch April 22, 2026 12:48
hyperpolymath added a commit that referenced this pull request May 20, 2026
…#70)

## Summary

Extends `proofs/agda/EchoApprox.agda` with the first slice of the
axis-2 composition rung from the design note (drafted in
`/tmp/echo-types-exploration/axis2-approximate.md`, §7 obligations
2 + 6, plus the canonical-split retract direction). Refs
`docs/echo-types/roadmap.md` Axis 2 entry and
`docs/echo-types/composition.md`
§Q3 — does **not** close either.

## Obligations landed

- **`echo-strict→approx`** (§7 #2). General strict ⇒ zero-tolerance
  approximate. Generalises `echo-approx-intro` from own-fibre points
  to arbitrary `y` via the codomain equation `p : f x ≡ y`. One
  extra `subst` along `p`.

- **`echo-approx-comp-sound`** (§7 #6). Sound RHS-to-LHS direction
  of the retract shape from `composition.md` §Q3 / design-note §5.
  Unpacks the existential and calls `echo-approx-compose`.

- **`echo-approx-comp-retract-to`**. Canonical-split LHS → RHS-Σ
  section of the retract: picks `b := f x`, `ε₁ := zero`, `ε₂ := ε`.
  Uses `echo-approx-intro` for the inner echo, original bound for
  the outer.

- **`echo-approx-comp-retract-A`**. A-component round-trip
  `proj₁ ∘ sound ∘ retract-to ≡ proj₁`, proved by `refl`. The
  retraction direction holds definitionally on the A-component as
  the design note (§5) predicts.

## Obligations deferred (out of this rung)

- §7 #7 separated zero-collapse — needs a separation predicate on
  the `PseudoMetric` record.
- §7 #8 axis-1 shadow agreement — cross-axis classification.
- Full retract B-component and tolerance-budget round-trip — needs a
  `+`-left-identity axiom on `Tolerance` (`zero + ε ≡ ε`) not in the
  current record. Adding it commits the carrier to a left-unital
  monoid; deferred as a separate decision.
- Lipschitz generalisation (`L_g ≠ 1`) — needs scalar multiplication
  on `Tol`.

## Docs updated

- `docs/echo-types/composition.md` §Q3 promoted from "entirely
  speculative" to landed-retract-shape with deferred items called out.
- `docs/echo-types/roadmap.md` adds a "landed" entry for the
  composition rung first slice.

## Invariants preserved

- `--safe --without-K`
- No postulates
- No escape pragmas
- Funext untouched

## Test plan

- [x] `LC_ALL=C.UTF-8 agda -i proofs/agda proofs/agda/All.agda` exits 0
- [x] `LC_ALL=C.UTF-8 agda -i proofs/agda proofs/agda/Smoke.agda` exits
0
- [x] No new `postulate`, no escape pragmas, funext not imported
- [x] `Smoke.agda` already pins `module Approx` following project
      convention (per-lemma pins inside parameterised modules require
      instantiation, which the project does not do for `EchoApprox`).

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant