Skip to content

proofs(agda): reach literal zero axioms (discharge funext + Conflicts postulates)#274

Merged
hyperpolymath merged 1 commit into
mainfrom
claude/agda-zero-axioms
Jun 21, 2026
Merged

proofs(agda): reach literal zero axioms (discharge funext + Conflicts postulates)#274
hyperpolymath merged 1 commit into
mainfrom
claude/agda-zero-axioms

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Discharges the only two postulates in echidna's own proof corpus, so the tree is now literally axiom-free.

Changes

  • SoundnessPreservation.agdaConflicts 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

echidna's own Agda corpus had exactly two `postulate`s; both removed:

- SoundnessPreservation.agda: `Conflicts` was a module-level postulate used
  only in `compose-sound`'s (discarded) hypothesis. Now an explicit parameter
  of that theorem -- strictly more general, no axiom declared.
- 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 function-equality form
  would need funext (or Cubical Agda + the cubical lib); pointwise needs
  neither.

With this, every echidna-owned proof (Agda + Idris2 ABI + Coq/Lean/Isabelle/
Mizar dogfood) is literally axiom-free: no postulate / sorry / admit /
believe_me in the tree. Type-check is confirmed by the gated dogfood Agda CI.

https://claude.ai/code/session_01UAqDQaMwpUqWHUSZekGZWv
@hyperpolymath hyperpolymath marked this pull request as ready for review June 21, 2026 14:06
@hyperpolymath hyperpolymath merged commit ed5602b into main Jun 21, 2026
46 checks passed
@hyperpolymath hyperpolymath deleted the claude/agda-zero-axioms branch June 21, 2026 14:07
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.

2 participants