Commit 8963ba5
feat: forget-witness-encoding-has-section — universal LL-encoding gap (#257)
## What
Closes the **universal LL-encoding gap** that `EchoLLEncoding` flagged
in its companion remark — strengthening the existence theorem
`ll-encoding-gap` (the trivial `⊤`-shadow) to a *universal* statement
over the **forget-witness class**.
## How
The encoded analogue of `no-section-weaken` was shown to fail for *one*
encoding. It actually fails for the whole class of *witness-forgetting*
shadows:
```agda
ForgetsWitness E = (x y : X linear) → x ≡ y -- X linear is a proposition
forget-witness-encoding-has-section :
(E : LLShallowEncoding) → ForgetsWitness E →
Σ (X affine → X linear) (λ s → ∀ x → s (wX x) ≡ x)
```
The section is the **constant map at a fixed linear inhabitant** `enc
echo-true`, correct because forget-witness propositionality makes every
`X linear` element equal to it — uniform over the class, no
cherry-picked carrier. Two companions:
- `trivial-forgets-witness` — the `⊤`-shadow is a member (`⊤` is a
proposition);
- `trivial-via-universal` — the original existence form is **recovered**
as the universal one instantiated at the trivial encoding (the
generalisation is *checked*, not asserted).
## The sharpened dichotomy
- **Forget the witness** (`X linear` a proposition) ⇒ an encoded section
always exists — *universal*.
- **Keep the witness** (re-introduce the second-projection equality into
`X linear`, so it isn't a proposition) ⇒ no-section may be preserved,
but the encoding is then no longer the standard `!A := 1` LL shadow.
So the *only* way a shallow LL encoding can carry Echo's no-section
discipline is to stop being a witness-forgetting shadow. Header headline
list, scope guardrail, and companion remark updated to state both
strengths honestly.
## Discipline
- `--safe --without-K`, **zero postulates**.
- 4 Smoke pins; `EchoLLEncoding` already classified (lemmas added, no
new module) ⇒ `kernel-guard` PASS.
- **Verified on latest `main`:** `EchoLLEncoding.agda`, `Smoke.agda`,
`All.agda` all exit 0 (captured locally).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_018CaSgNjNURC7ocsyjYh9We
---
_Generated by [Claude
Code](https://claude.ai/code/session_018CaSgNjNURC7ocsyjYh9We)_
Co-authored-by: Claude <noreply@anthropic.com>1 parent 8a23fa4 commit 8963ba5
2 files changed
Lines changed: 84 additions & 16 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
59 | 67 | | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
68 | 79 | | |
69 | 80 | | |
70 | 81 | | |
| |||
74 | 85 | | |
75 | 86 | | |
76 | 87 | | |
| 88 | + | |
77 | 89 | | |
78 | 90 | | |
79 | 91 | | |
| |||
201 | 213 | | |
202 | 214 | | |
203 | 215 | | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
204 | 264 | | |
205 | 265 | | |
206 | 266 | | |
207 | | - | |
208 | | - | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | | - | |
213 | | - | |
214 | | - | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
215 | 279 | | |
216 | 280 | | |
217 | 281 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
671 | 671 | | |
672 | 672 | | |
673 | 673 | | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
674 | 678 | | |
675 | 679 | | |
676 | 680 | | |
| |||
0 commit comments