Skip to content

Commit 7234a8b

Browse files
fix+feat: paper.adoc conflict resolution + related-work [EXPAND] cleared + Track C land (#120)
## Summary Stacked on #118. Closes the three remaining session items from the user-prioritised batch: 1. **🔴 P0 — `paper.adoc` merge-conflict resolution** 2. **Lane 1 close-out item 1** — `paper.adoc` `[EXPAND]` tag 2 (related-work pass) cleared 3. **Lane 2 close-out item 2** — Track C (per-example raw-Σ counter-programs) landed ## 1. P0 conflict resolution Three unresolved git conflict markers at `paper.adoc:557,1137,1156` from merge commit `cab99f1` (`reframe/retraction-2026-05-18`). Resolution: - **HEAD chunk** (579 lines, lines 558-1136): substantive proof-size + threats-to-validity + related-work analysis. **Kept verbatim.** - **Incoming chunk** (17 lines, lines 1138-1155): `[EXPAND]` note + 2-cat ruleout note. **Kept verbatim.** - **Conflict markers stripped**, no content lost. - **Duplicate `== Reframing note (2026-05-18)`** at lines 1207-1243 deleted; single canonical copy at lines 1158-1194 retained. Net: paper.adoc 1278 → 1238 lines. Now well-formed AsciiDoc on `main`. ## 2. Related-work `[EXPAND]` tag 2 cleared Discovered both stale TODO notes (related-work expansion + 2-cat ruleout fold-in) had their content **silently delivered** in substantive subsections of `== Related work`: - `=== HoTT homotopy fibres` - `=== Graded comonads, coeffects, and QTT (the lineage we are motivated by, but explicitly not an instance of)` - `=== Lenses and optics (the witness-transport leg)` — already contains the 2-categorical rule-out at lines 948-953 Replaced both stale notes with a single explanatory NOTE pointing at the delivered subsections + `docs/echo-types/comparators.adoc` companion. Lane 1 close-out: only the ordinal-appendix `[EXPAND]` (tag 4) remains, correctly gated on the Bachmann-Howard milestone per design. ## 3. Track C — `proofs/agda/examples/EchoVsSigma.agda` Three lemmas pairing each headline example with the small raw-Σ counter-program the Echo interface refuses to export at affine mode: | Lemma | Distinguishes | |---|---| | `parser-sigma-distinguishes` | `echo-parse-nested` vs `echo-parse-pair` at `parses ≡ true` (via `proj₁` + `paren-nested≢paren-pair`) | | `provenance-sigma-distinguishes` | `echo-prov-true` vs `echo-prov-false` at `project ≡ 0` (via `prov ∘ proj₁` + `true≢false`) | | `absint-sigma-distinguishes` | `echo-pos-p1` vs `echo-pos-p2` at `α ≡ pos` (via `proj₁` + `p1≢p2`) | Mirrors `EchoAbstractionBarrier.sigma-distinguishes` at the per-example level. Together with `EchoAbstractionBarrier.affine-consumer-cannot-distinguish`, establishes the Gate 3 matched-positive + matched-negative pair discipline ("raw Σ would leak; Echo blocks it"). **Build verification:** `agda proofs/agda/All.agda`, `proofs/agda/Smoke.agda`, `proofs/agda/examples/All.agda` all exit 0 under `--safe --without-K`, zero postulates. Wired into `examples/All.agda`; pinned in `Smoke.agda` under own `using` block. ## Roadmap updates - Lane 1: item 1 (related-work) now LANDED; only ordinal-appendix EXPAND tag remains (correctly out-of-scope). - Lane 2: item 2 (Track C) now LANDED. Only item 3 (Gate-2 nominee re-audit ≥3/4 surviving) remains for full Lane 2 close-out. ## Retraction discipline (R-2026-05-18) respected throughout No new prose introduces graded-comonad, full-universal-property, model-independence, or general-parametricity claims. ## Test plan - [x] `agda proofs/agda/All.agda` exits 0 under `--safe --without-K` - [x] `agda proofs/agda/Smoke.agda` exits 0 (new Track C pins verified) - [x] `agda proofs/agda/examples/All.agda` exits 0 (new EchoVsSigma wired) - [x] `agda proofs/agda/examples/EchoVsSigma.agda` typechecks in isolation - [x] Zero conflict markers remain in paper.adoc (`grep -nE '^<<<<<<<|^=======|^>>>>>>>'`) - [x] Single `== Reframing note` section (no duplicate) - [ ] AsciiDoc rendering of paper.adoc + roadmap.adoc is well-formed Net diffstat: +140 / -65 across 5 files. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 13837cc commit 7234a8b

5 files changed

Lines changed: 140 additions & 65 deletions

File tree

docs/echo-types/paper.adoc

Lines changed: 15 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -554,7 +554,6 @@ mechanised strength, neither less nor more.
554554

555555
=== Proof size per pillar
556556

557-
<<<<<<< HEAD
558557
The four pillars together occupy ~930 lines across six modules, with
559558
zero postulates and three `rewrite` sites (one in the foundational
560559
`degrade-compose`; one in its `rel-model` lift; one in
@@ -1134,26 +1133,21 @@ Swamy et al. "Dependent types and multi-monadic effects in F\*"
11341133
(POPL 2016);
11351134
Vazou–Seidel–Jhala–Vytiniotis–Peyton Jones "Refinement types for
11361135
Haskell" (ICFP 2014, Liquid Haskell).
1137-
=======
1138-
NOTE: *[EXPAND]* — detailed positioning against: Granule / QTT graded
1139-
modalities; comonadic notions of computation (Uustalu–Vene);
1140-
coeffects (Petriček–Orchard–Mycroft); HoTT fibrewise constructions;
1141-
lens / optic literature (the witness-transport leg of
1142-
`echo-pullback-univ` resembles the very-well-behaved *1-lens* laws —
1143-
no 2-cell-equipped optic, see below). Make the novelty crisp: not a
1144-
new object, but a fully mechanised characterisation package with a
1145-
falsifiable-gate methodology.
1146-
1147-
NOTE: *[2-cat ruled out, see `decisions/no-2-cat.adoc`]* — when the
1148-
related-work pass expands the lens/optic comparison and the
1149-
graded-modality positioning, fold in the 2-categorical rule-out: a
1150-
"bicategorical echo" reading was considered and ruled out on the
1151-
landed evidence (every would-be 2-cell appears as `refl` or is
1152-
prop-forced trivial by `≤g-prop` / `⊑-prop`); the construction
1153-
resembles a very-well-behaved *1-lens*, not a 2-cell-equipped optic.
1154-
The closure note in `decisions/no-2-cat.adoc` is the load-bearing
1155-
artifact; this paragraph should cite it rather than re-argue.
1156-
>>>>>>> docs/rule-out-2cat-and-roadmap-correction
1136+
1137+
NOTE: *Related-work `[EXPAND]` cleared 2026-05-26.* The original
1138+
`[EXPAND]` TODO requested detailed positioning against Granule / QTT
1139+
graded modalities, Uustalu–Vene comonads, Petriček–Orchard–Mycroft
1140+
coeffects, HoTT fibrewise constructions, and the lens / optic
1141+
literature with the 1-lens-vs-2-cell-optic clarification. That work
1142+
has been delivered above in §"HoTT homotopy fibres", §"Graded comonads,
1143+
coeffects, and QTT", and §"Lenses and optics (the witness-transport
1144+
leg)" — including the explicit 2-categorical rule-out at the end of
1145+
the lens/optic subsection (`docs/echo-types/decisions/no-2-cat.adoc`
1146+
is the load-bearing closure note). A companion single-page comparator
1147+
table at `docs/echo-types/comparators.adoc` (Echo vs Granule / QTT /
1148+
choreographic / Linear Haskell) ships the axis-by-axis summary form
1149+
for reviewers who want the at-a-glance positioning rather than the
1150+
prose narrative above.
11571151

11581152
[#reframing-note]
11591153
== Reframing note (2026-05-18)
@@ -1204,44 +1198,6 @@ via a genuine non-graph `StepND` model (§6 NOTE,
12041198
`EchoStepNDModelF2.agda`). The graded-comonad, modality-level
12051199
model-independence, and conservativity rows remain fully retracted.
12061200

1207-
[#reframing-note]
1208-
== Reframing note (2026-05-18)
1209-
1210-
This draft was reframed after an adversarial three-reviewer review
1211-
(graded-modality, semantics, and proof-assistant skeptics) found that
1212-
the codebase contains no defense for five central claims, and that
1213-
two were contradicted by the repository's own Gate-2 audit. The
1214-
following claims were retracted, not weakened cosmetically:
1215-
1216-
[cols="2,3", options="header"]
1217-
|===
1218-
| Retracted claim | Replaced by
1219-
1220-
| "graded comonad" (counit/comultiplication, three comonad laws)
1221-
| loss-graded *reindexing modality*; no nested `D_r D_s` is formed;
1222-
the equations hold by thinness of the grade order
1223-
1224-
| "terminal-cone universal property"; "a category theorist accepts
1225-
echo as the limit of a cospan"
1226-
| a *pointwise, funext-relative* mediator property; full terminality
1227-
is unstatable here without funext
1228-
1229-
| "model independence across two agreeing models"
1230-
| carrier-parametricity over a *fixed* grade poset; the second model
1231-
is the first with a `⊤` component, agreeing by `refl`
1232-
1233-
| "conservativity metatheorem, discharged operationally by the build"
1234-
| a *postulate-free build*: evidence for, not a proof of,
1235-
conservativity over MLTT+Σ
1236-
1237-
| "funext quarantined behind an isolated module; no result crosses it"
1238-
| no funext anywhere; the real funext-relativity is the pointwise
1239-
mediator property, now disclosed as the boundary
1240-
|===
1241-
1242-
The full per-attack analysis and the codebase pressure-test are in
1243-
`docs/retractions.adoc`.
1244-
12451201
== Conclusion
12461202

12471203
Echo is the homotopy fibre equipped with a loss-grade lattice,

proofs/agda/Smoke.agda

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,17 @@ open import EchoAbstractionBarrier using
378378
; sigma-distinguishes
379379
)
380380

381+
-- examples.EchoVsSigma — Track C of the Echo-vs-Σ identity claim.
382+
-- Per-example raw-Σ counter-programs paired with each headline
383+
-- example (parser, provenance, absint) — the matched-negative
384+
-- companions for Gate 3. See `roadmap.adoc` §Lane 2 close-out
385+
-- item 2.
386+
open import examples.EchoVsSigma using
387+
( parser-sigma-distinguishes
388+
; provenance-sigma-distinguishes
389+
; absint-sigma-distinguishes
390+
)
391+
381392
open import EchoGraded using
382393
( Grade
383394
; degrade

proofs/agda/examples/All.agda

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ import examples.TropicalArgmin
1515
import examples.EpistemicUpdate
1616
import examples.LinearErasure
1717
import examples.Transport
18+
import examples.EchoVsSigma
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
{-# OPTIONS --safe --without-K #-}
2+
3+
-- Track C of the Echo-vs-Σ identity claim consolidation
4+
-- (`roadmap.adoc` §Lane 2 close-out item 2; companion to
5+
-- `core/skepticisms/is-this-just-sigma-types.md` §5 and
6+
-- `docs/echo-types/sigma-distinctness-map.adoc` §"Demand 5").
7+
--
8+
-- For each headline example (parser, provenance, absint), exhibit the
9+
-- small raw-Σ counter-program that the Echo interface refuses to
10+
-- export at affine mode. Each `*-sigma-distinguishes` is the
11+
-- *negative companion* to the positive distinct-echoes-same-y theorem
12+
-- already in the example module: it shows the concrete consumer that
13+
-- would let the bug through if `proj₁` (or anything that factors
14+
-- through it) were exposed.
15+
--
16+
-- The pattern mirrors `EchoAbstractionBarrier.sigma-distinguishes` at
17+
-- the per-example level. Together with the affine-side guarantee in
18+
-- `EchoAbstractionBarrier.affine-consumer-cannot-distinguish`, these
19+
-- per-example negatives establish the Gate 3 "matched-positive +
20+
-- matched-negative pair" discipline ("raw Σ would leak; Echo blocks
21+
-- it") for each headline example.
22+
--
23+
-- Scope guardrail: each lemma is a *concrete instance* of the raw-Σ
24+
-- distinguish pattern at the linear-side echo, exhibiting what an
25+
-- unprotected Σ-projection would do with the example's distinct
26+
-- preimages. The corresponding affine-side guarantee that nothing of
27+
-- this shape can exist is the general `affine-consumer-cannot-distinguish`,
28+
-- not re-proven here per-example.
29+
30+
module examples.EchoVsSigma where
31+
32+
open import Echo using (Echo)
33+
34+
open import EchoExampleParser
35+
using ( Token
36+
; parses
37+
; paren-pair; paren-nested
38+
; echo-parse-pair; echo-parse-nested
39+
; paren-nested≢paren-pair
40+
)
41+
open import EchoExampleProvenance
42+
using ( Row; project
43+
; echo-prov-true; echo-prov-false
44+
; true≢false
45+
)
46+
open Row using (prov)
47+
open import EchoExampleAbsInt
48+
using ( Sign; Carrier; pos; α
49+
; p1; p2
50+
; echo-pos-p1; echo-pos-p2
51+
; p1≢p2
52+
)
53+
54+
open import Data.Bool.Base using (Bool; true)
55+
open import Data.List.Base using (List)
56+
open import Data.Product.Base using (Σ; _,_; proj₁)
57+
open import Relation.Binary.PropositionalEquality
58+
using (_≡_; _≢_)
59+
open import Function.Base using (_∘_)
60+
61+
----------------------------------------------------------------------
62+
-- Parser example (`EchoExampleParser`).
63+
--
64+
-- `paren-nested` (`((` `)` `)`) and `paren-pair` (`(` `)` `(` `)`)
65+
-- both have `parses ≡ true`. The Echo retains the distinction
66+
-- (`echo-parse-nested≢echo-parse-pair`). The raw-Σ counter-program
67+
-- below uses `proj₁` directly to recover the original `List Token`,
68+
-- distinguishing the two echoes via the already-proven
69+
-- `paren-nested≢paren-pair`. The Echo interface at affine mode would
70+
-- refuse to export `proj₁`; this lemma exhibits exactly what would
71+
-- leak if it didn't.
72+
73+
parser-sigma-distinguishes :
74+
Σ (Echo parses true List Token)
75+
(λ g g echo-parse-nested ≢ g echo-parse-pair)
76+
parser-sigma-distinguishes = proj₁ , paren-nested≢paren-pair
77+
78+
----------------------------------------------------------------------
79+
-- Provenance example (`EchoExampleProvenance`).
80+
--
81+
-- `row-with-prov-true` and `row-with-prov-false` project to the same
82+
-- payload (`project ≡ 0`) but carry distinct provenance Booleans. The
83+
-- Echo retains the provenance (`echo-prov-true≢echo-prov-false`). The
84+
-- raw-Σ counter-program composes `prov` with `proj₁` to leak the
85+
-- provenance Bool, distinguishing the two echoes via `true≢false`.
86+
87+
provenance-sigma-distinguishes :
88+
Σ (Echo project 0 Bool)
89+
(λ g g echo-prov-true ≢ g echo-prov-false)
90+
provenance-sigma-distinguishes = prov ∘ proj₁ , true≢false
91+
92+
----------------------------------------------------------------------
93+
-- Abstract-interpretation example (`EchoExampleAbsInt`).
94+
--
95+
-- `p1` and `p2` both abstract to `pos` under the 5-element sign
96+
-- lattice (`α p1 ≡ α p2 ≡ pos`). The Echo retains the concrete
97+
-- carrier (`echo-pos-p1≢echo-pos-p2`). The raw-Σ counter-program
98+
-- uses `proj₁` to recover the concrete Carrier, distinguishing via
99+
-- `p1≢p2`.
100+
101+
absint-sigma-distinguishes :
102+
Σ (Echo α pos Carrier)
103+
(λ g g echo-pos-p1 ≢ g echo-pos-p2)
104+
absint-sigma-distinguishes = proj₁ , p1≢p2

roadmap.adoc

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -161,14 +161,17 @@ gate cross-links) landed in-session. Tracks B + C remain.
161161

162162
*Close-out criterion (falsifiable).* All three hold:
163163

164-
. Track B (consumer-side abstraction barrier) — same artefact named in
165-
Lane 1's close-out. (Lane 1 and Lane 2 share this artefact; that is
166-
intentional, not duplication.)
167-
. Track C (per-example raw-Σ counter-programs) lands as
168-
`proofs/agda/examples/EchoVsSigma.agda`, pairing each headline
169-
example with the small Σ-misuse it blocks. Pinned in Smoke.
164+
. *LANDED 2026-05-26.* Track B (consumer-side abstraction barrier) —
165+
same artefact named in Lane 1's close-out. (Lane 1 and Lane 2 share
166+
this artefact; that is intentional, not duplication.)
167+
. *LANDED 2026-05-26.* Track C (per-example raw-Σ counter-programs)
168+
shipped as `proofs/agda/examples/EchoVsSigma.agda`, pairing each
169+
headline example (parser, provenance, abs-int) with the small
170+
Σ-misuse it blocks. Builds clean under `--safe --without-K`;
171+
pinned in `Smoke.agda` under own `using` block.
170172
. The Gate 2 nominee list is re-audited and crosses the *comfortable*
171173
threshold (≥ 3 of 4 surviving), not merely the honest minimum.
174+
*(Remaining open item for Lane 2 close-out.)*
172175

173176
*Artefacts (landed today).* `core/skepticisms/is-this-just-sigma-types.md`
174177
(canonical answer doc, 5-section structure mirroring the demands);

0 commit comments

Comments
 (0)