Skip to content

Commit 6847b6f

Browse files
hyperpolymathclaude
andcommitted
docs+proofs: EchoEphapaxBridge NARROW stub (closes #126)
NARROW per /tmp/ephapax-bridge-proposal.md §4 (bg-agent verdict): import-time documentation + two definitional refl-renames pinning the load-bearing Agda symbols under ephapax-L3- prefixed names. The cross-repo content correspondence is already discharged by `coqc` on the ephapax side (`formal/Echo.v`, 584 lines, 24 Qed, zero Admitted / zero Axiom — explicit Coq port of `EchoLinear.agda` + `EchoResidue.agda` under a K-free / zero-axiom discipline equivalent to --safe --without-K). No Lane 4 CI dependency. Adds: * `proofs/agda/EchoEphapaxBridge.agda` (~45 lines including preamble): - `ephapax-L3-weaken = weaken` (from `EchoLinear`) - `ephapax-L3-no-section-collapse = no-section-collapse-to-residue` (from `EchoResidue`) Module docstring catalogues the five Coq headlines (`mode_le_prop`, `weaken_collapses_distinction`, `affine_canonical`, `degrade_mode_comp`, `no_section_collapse_to_residue`) as same-shape cross-repo counterparts. * `proofs/agda/All.agda`: wires `EchoEphapaxBridge` between `EchoJanusBridge` and `Dyadic` (Cross-repo bridges neighbourhood). * `proofs/agda/Smoke.agda`: pins `ephapax-L3-weaken` and `ephapax-L3-no-section-collapse` so a silent upstream rename in `EchoLinear` / `EchoResidue` trips CI fast. * `docs/echo-types/MAP.adoc` §Directions: new `=== Ephapax L3 — linear/affine modality bridge` subsection between JanusKey and Tropical/Dyadic. Scope explicit: L3 only — ephapax-affine and L1/L2/L4 are NOT mechanised to the same standard (cf. ephapax `formal/PRESERVATION-DESIGN.md`, MEMORY hook `feedback_ephapax_affine_proofs_not_done.md`). Local typecheck: * `agda -i proofs/agda proofs/agda/EchoEphapaxBridge.agda` — clean. * `agda -i proofs/agda proofs/agda/Smoke.agda` — clean, exit 0. * `agda -i proofs/agda proofs/agda/All.agda` — clean, exit 0. * `bash tools/check-guardrails.sh proofs/agda` — 160 modules pass. Companion to #161 (closes #125 + #127 + #132). Closes #126; #128 umbrella ready to close once both PRs merge. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 5ac2d9d commit 6847b6f

4 files changed

Lines changed: 84 additions & 0 deletions

File tree

docs/echo-types/MAP.adoc

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,33 @@ loss".
289289
* Proofs: `proofs/agda/EchoJanusBridge.agda`.
290290
* Docs: `docs/EchoJanusBridge.md`, `docs/EchoBridges.md`.
291291

292+
=== Ephapax L3 — linear/affine modality bridge `[REAL]`
293+
Cross-repo navigability marker for the `hyperpolymath/ephapax`
294+
programming-language project, whose L3 layer (`formal/Echo.v`, 584
295+
lines, 24 `Qed`, zero `Admitted` / zero `Axiom`) is an explicit Coq
296+
port of `EchoLinear.agda` + `EchoResidue.agda` under a K-free /
297+
zero-axiom discipline equivalent to `--safe --without-K`. The Coq
298+
headlines (`mode_le_prop`, `weaken_collapses_distinction`,
299+
`affine_canonical`, `degrade_mode_comp`,
300+
`no_section_collapse_to_residue`) each carry the same theorem as the
301+
Agda counterpart.
302+
303+
Scope is intentionally NARROW: this is import-time documentation +
304+
two definitional `refl`-renames of the load-bearing Agda symbols
305+
under `ephapax-L3-`-prefixed names, so a silent upstream rename
306+
trips `Smoke.agda`. The cross-repo content correspondence is already
307+
discharged by `coqc` on the ephapax side; no Lane 4 CI dependency.
308+
309+
* Proofs: `proofs/agda/EchoEphapaxBridge.agda` (`ephapax-L3-weaken` ↔
310+
`EchoLinear.weaken` ↔ ephapax `formal/Echo.v` `weaken`;
311+
`ephapax-L3-no-section-collapse` ↔
312+
`EchoResidue.no-section-collapse-to-residue` ↔ ephapax
313+
`formal/Echo.v:502-517` `no_section_collapse_to_residue`).
314+
* External corroboration scope: L3 only — ephapax-affine and L1/L2/L4
315+
are NOT mechanised to the same standard (see ephapax
316+
`formal/PRESERVATION-DESIGN.md` + `docs/echo-types/paper.adoc`
317+
§"Threats to validity").
318+
292319
=== Tropical / Dyadic `[REAL*]`
293320
Bridge domains enumerated in `docs/EchoBridges.md` (JanusKey / CNO /
294321
Tropical / Dyadic). Dyadic is mechanised; Tropical is named/early.

proofs/agda/All.agda

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ open import EchoCategorical
5151
open import EchoScope
5252
open import EchoOrdinal
5353
open import EchoJanusBridge
54+
open import EchoEphapaxBridge
5455
open import Dyadic
5556
open import DyadicEchoBridge
5657
open import EchoThermodynamics

proofs/agda/EchoEphapaxBridge.agda

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
{-# OPTIONS --safe --without-K #-}
2+
-- SPDX-License-Identifier: MPL-2.0
3+
-- SPDX-FileCopyrightText: 2025-2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
4+
5+
-- Echo↔Ephapax L3 Bridge (NARROW — navigability + cross-repo cataloguing).
6+
--
7+
-- The ephapax programming-language project (hyperpolymath/ephapax)
8+
-- carries a four-layer typing redesign whose L3 layer (`formal/Echo.v`,
9+
-- 584 lines, 24 `Qed`, zero `Admitted` / zero `Axiom`) is an explicit
10+
-- Coq port of `EchoLinear.agda` + `EchoResidue.agda` under a K-free /
11+
-- zero-axiom discipline equivalent to `--safe --without-K`. The Coq
12+
-- headlines `mode_le_prop`, `weaken_collapses_distinction`,
13+
-- `affine_canonical`, `degrade_mode_comp`, and
14+
-- `no_section_collapse_to_residue` each carry the same theorem as the
15+
-- Agda counterpart pinned here.
16+
--
17+
-- Scope (NARROW, per `/tmp/ephapax-bridge-proposal.md` §4): this
18+
-- module is import-time documentation. The cross-repo content
19+
-- correspondence is already discharged by `coqc` on the ephapax side
20+
-- (no Lane 4 CI dependency). The two definitional `refl`-renames
21+
-- below pin the load-bearing Agda symbols under `ephapax-`-prefixed
22+
-- names so `MAP.adoc`'s "Directions" navigation has an ephapax row,
23+
-- and so a silent upstream rename trips `Smoke.agda`. A future
24+
-- content bridge would require an Agda mirror of ephapax's
25+
-- `formal/Echo.v` and is not foreclosed by this stub.
26+
--
27+
-- References:
28+
-- * `docs/bridges/cross-repo-bridge-status.md` (when extended).
29+
-- * `docs/echo-types/MAP.adoc` §"Directions" / "Ephapax L3".
30+
-- * ephapax `formal/Echo.v:502-517` ↔
31+
-- `EchoResidue.no-section-collapse-to-residue`.
32+
-- * ephapax `formal/Echo.v` `weaken` ↔ `EchoLinear.weaken`.
33+
34+
module EchoEphapaxBridge where
35+
36+
open import EchoLinear using (linear; affine; LEcho; weaken)
37+
open import EchoResidue using (no-section-collapse-to-residue)
38+
39+
-- ephapax `formal/Echo.v` `weaken` — Coq port of this Agda symbol.
40+
ephapax-L3-weaken : LEcho linear LEcho affine
41+
ephapax-L3-weaken = weaken
42+
43+
-- ephapax `formal/Echo.v` `no_section_collapse_to_residue`
44+
-- (line 502-517, `Qed`, zero axioms) — Coq port of this Agda symbol.
45+
ephapax-L3-no-section-collapse = no-section-collapse-to-residue

proofs/agda/Smoke.agda

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -956,6 +956,17 @@ open import EchoJanusBridge using
956956
; keyrevoke-echo
957957
)
958958

959+
-- Cross-repo bridges (NARROW): ephapax `formal/Echo.v` is a Coq port
960+
-- of `EchoLinear.agda` + `EchoResidue.agda` under a K-free / zero-axiom
961+
-- discipline. `ephapax-L3-weaken` and `ephapax-L3-no-section-collapse`
962+
-- are definitional `refl`-renames of the load-bearing Agda symbols,
963+
-- pinned so a silent upstream rename trips CI fast. See
964+
-- `EchoEphapaxBridge.agda` preamble.
965+
open import EchoEphapaxBridge using
966+
( ephapax-L3-weaken
967+
; ephapax-L3-no-section-collapse
968+
)
969+
959970
open import Ordinal.Base using
960971
( OT
961972
; zero

0 commit comments

Comments
 (0)