Commit ed5602b
proofs(agda): reach literal zero axioms (discharge funext + Conflicts postulates) (#274)
Discharges the **only two `postulate`s** in echidna's own proof corpus,
so the tree is now **literally axiom-free**.
## Changes
- **`SoundnessPreservation.agda`** — `Conflicts` was a module-level
`postulate` used only in `compose-sound`'s hypothesis (which the proof
discards). Made it an **explicit parameter of `compose-sound`** —
strictly more general (works for any conflict predicate), no axiom
declared, no burden on the other lemmas.
- **`Basic.agda` (`CurryUncurryLaws`)** — dropped the **`funext`**
postulate. The curry/uncurry inverse laws are now stated **pointwise**
and proved by `refl` (the axiom-free plain-Agda formulation). The full
`curry (uncurry f) ≡ f` form would need funext — a standard axiom, or
Cubical Agda + the cubical library; pointwise needs neither, so no new
CI dep.
## Why this form (not Cubical)
Cubical Agda would preserve the fully-extensional statement but requires
adding the cubical library to the Agda CI (an addition we're avoiding)
and couldn't be verified in the authoring sandbox. The pointwise
statement is the honest axiom-free truth and is `refl`-trivial.
## Verification
- `grep` confirms **zero `postulate` declarations** across `proofs/`,
`meta-checker/`, `verification/proofs/`, `src/abi/`, `src/idris/`; no
dangling `funext`/`Conflicts` refs.
- Compilation is checked by the **gated dogfood Agda CI on this PR**
(`just proofs-agda` type-checks both files), since I can't run Agda
locally.
Net: every echidna-owned proof (Agda + Idris2 ABI +
Coq/Lean/Isabelle/Mizar dogfood) is now axiom-free — no postulate /
sorry / admit / believe_me anywhere. Draft until the Agda job goes
green.
https://claude.ai/code/session_01UAqDQaMwpUqWHUSZekGZWv
---
_Generated by [Claude
Code](https://claude.ai/code/session_01UAqDQaMwpUqWHUSZekGZWv)_
Co-authored-by: Claude <noreply@anthropic.com>1 parent 402d303 commit ed5602b
2 files changed
Lines changed: 25 additions & 39 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
151 | 151 | | |
152 | 152 | | |
153 | 153 | | |
154 | | - | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
155 | 161 | | |
156 | | - | |
157 | | - | |
158 | | - | |
159 | | - | |
160 | | - | |
161 | | - | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | | - | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | | - | |
172 | | - | |
173 | | - | |
174 | | - | |
175 | | - | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
45 | | - | |
46 | | - | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
47 | 47 | | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
61 | 53 | | |
62 | 54 | | |
63 | 55 | | |
| |||
83 | 75 | | |
84 | 76 | | |
85 | 77 | | |
86 | | - | |
| 78 | + | |
| 79 | + | |
87 | 80 | | |
88 | 81 | | |
89 | 82 | | |
90 | 83 | | |
91 | | - | |
| 84 | + | |
92 | 85 | | |
93 | 86 | | |
94 | 87 | | |
| |||
0 commit comments