Skip to content

Commit ae7f8fb

Browse files
claudehyperpolymath
authored andcommitted
docs(proof-debt): self-document the CSA004 postulate discharge in the flagged module
EchoImageFactorizationPropPostulated.agda is the `--without-K`-only module carrying the four propositional-truncation postulates (the `agda_postulate` code-scanning finding CSA004, dismissed as a false positive). Its header justification was stale: it said the cubical/HIT realisation is "cited rather than mechanised", but as of 2026-06-15 the repo DOES mechanise it. This makes the dismissal self-documenting from the flagged file: - The `hypatia: allow` pragma now records that the four postulates are DISCHARGED FOR REAL (zero postulates) in the CI-verified `--cubical --safe` lane by EchoImageFactorizationPropCubical.agda (run in .github/workflows/agda.yml "Typecheck cubical lane"), per docs/proof-debt.md §(a) — they are the `--safe --without-K` shadow of a now-constructed HIT, not an irreducible axiom. - The "deliberately DOES NOT prove" bullet is corrected accordingly. Comment-only change. Verified with the actual toolchain (Agda 2.6.3 + stdlib v2.3 + absolute-zero): - EchoImageFactorizationProp.agda (--safe --without-K) exit 0 - EchoImageFactorizationPropPostulated.agda (--without-K) exit 0 - EchoImageFactorizationPropCubical.agda (--cubical --safe) exit 0 - kernel-guard.sh PASS Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VwbFNQJw23tW8tqM7utWku
1 parent 6fb48e0 commit ae7f8fb

1 file changed

Lines changed: 10 additions & 4 deletions

File tree

proofs/agda/EchoImageFactorizationPropPostulated.agda

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{-# OPTIONS --without-K #-}
22

3-
-- hypatia: allow code_safety/agda_postulate -- ∥_∥ cannot be constructed in --safe --without-K without HITs / Cubical; the four postulates below are the scoped, documented TruncInterface demonstration. Exploratory per docs/echo-types/echo-kernel-note.adoc; guardrail-exempted in tools/check-guardrails.sh; base EchoImageFactorizationProp remains --safe --without-K with zero postulates.
3+
-- hypatia: allow code_safety/agda_postulate -- ∥_∥ cannot be constructed in --safe --without-K without HITs / Cubical; the four postulates below are the scoped, documented TruncInterface demonstration. Exploratory per docs/echo-types/echo-kernel-note.adoc; guardrail-exempted in tools/check-guardrails.sh; base EchoImageFactorizationProp remains --safe --without-K with zero postulates. DISCHARGED FOR REAL (zero postulates) in the CI-verified --cubical --safe lane by EchoImageFactorizationPropCubical.agda (run in .github/workflows/agda.yml step "Typecheck cubical lane (epi/mono truncation discharge)"); see docs/proof-debt.md §(a). These four postulates are therefore the --safe --without-K shadow of a now-CONSTRUCTED higher inductive type, not an irreducible axiom.
44

55
-- Postulated-truncation consumer for `EchoImageFactorizationProp`.
66
--
@@ -62,9 +62,15 @@
6262
-- the parametric proofs in `ImageProp` need.
6363
-- * Anything about the postulates' consistency. The standard
6464
-- HoTT discipline says the four laws together characterise
65-
-- `Trunc A` up to equivalence (and Cubical Agda or a hand-
66-
-- rolled HIT realises them concretely); we cite that
67-
-- literature rather than mechanise it.
65+
-- `Trunc A` up to equivalence. As of 2026-06-15 that
66+
-- characterisation is no longer merely cited: it is MECHANISED
67+
-- in-repo by `EchoImageFactorizationPropCubical.agda`, which
68+
-- CONSTRUCTS `∥_∥` as a genuine higher inductive type under
69+
-- `--cubical --safe` and re-proves the four obligations as
70+
-- theorems (zero postulates, CI-verified — see
71+
-- docs/proof-debt.md §(a)). The postulates here remain only
72+
-- because `∥_∥` cannot be built WITHIN `--safe --without-K`
73+
-- itself, not because the construction is unavailable.
6874
--
6975
-- The mechanical contribution: pin that the parameterised
7076
-- `EchoImageFactorizationProp.ImageProp` module can be CONSUMED

0 commit comments

Comments
 (0)