Skip to content

Commit 5a78322

Browse files
audit: classify 4 PA021 justified real-analysis postulates (information_theory.agda) (#184)
## Summary `panic-attack assail` reports PA021 ProofDrift on `lol/proofs/theories/information_theory.agda` for 4 postulates (entropy-nonneg, kl-nonneg, js-symmetric, js-bounded). The file's own line 111-112 comment explicitly classifies these as 'justified postulates, not proof debt' — each has a textbook proof but discharging them requires a real-analysis formalisation in Agda over ℝ. ## What changes - `audits/assail-classifications.a2ml` — 1 entry covering the file - `audits/audit-pa021-justified-postulates-2026-05-26.md` ## Verification No proof source touched; `agda --check` rebuild is moot (input unchanged from main). Refs hyperpolymath/panic-attack#32. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent d9ecb5c commit 5a78322

2 files changed

Lines changed: 69 additions & 0 deletions

File tree

audits/assail-classifications.a2ml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
;; SPDX-License-Identifier: MPL-2.0
2+
;; Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3+
;;
4+
;; Assail Classifications — standards
5+
;; See panic-attack/.claude/CLAUDE.md § "User-Classification Registry".
6+
7+
(assail-classifications
8+
(metadata
9+
(version "1.0.0")
10+
(project "standards")
11+
(last-updated "2026-05-26")
12+
(entries 1)
13+
(status "active"))
14+
15+
;; ─── PA021 ProofDrift — justified postulates (real-analysis) ─────────────
16+
;; lol/proofs/theories/information_theory.agda has 4 postulates whose proofs
17+
;; would require a real-analysis formalisation in Agda (e.g. over ℝ). The
18+
;; file's own comment at line 111-112 explicitly classifies them:
19+
;; "Classified as justified postulates, not proof debt."
20+
21+
(classification
22+
(file "lol/proofs/theories/information_theory.agda")
23+
(category "ProofDrift")
24+
(classification "justified-postulate-real-analysis")
25+
(audit "audits/audit-pa021-justified-postulates-2026-05-26.md")
26+
(rationale "4 information-theory postulates (entropy-nonnegative, kl-nonnegative, js-symmetric, js-bounded). Each has a textbook proof (HoTT/Gibbs/Lin 1991) but requires real-analysis formalisation in Agda over ℝ. File-internal comment explicitly classifies these as justified postulates, not debt.")))
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<!--
2+
SPDX-License-Identifier: MPL-2.0
3+
Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
4+
-->
5+
6+
# Audit: justified real-analysis postulates (PA021)
7+
8+
**Auditor**: Jonathan D.A. Jewell
9+
**Date**: 2026-05-26
10+
**Scope**: 1 PA021 ProofDrift finding covering 4 postulates in `lol/proofs/theories/information_theory.agda`.
11+
**Cross-reference**: campaign tracker [hyperpolymath/panic-attack#32](https://github.com/hyperpolymath/panic-attack/issues/32).
12+
**Registry**: `audits/assail-classifications.a2ml`.
13+
14+
## Context
15+
16+
`lol/proofs/theories/information_theory.agda` contains 4 postulates:
17+
18+
1. `entropy-nonnegative : ∀ {n} (d : Distribution n) → entropy d ≥ 0.0` — follows from `-p·log(p) ≥ 0` on `0 ≤ p ≤ 1`.
19+
2. `kl-nonnegative : ∀ {n} (p q : Distribution n) → kl-divergence p q ≥ 0.0` — Gibbs' inequality / log-sum inequality.
20+
3. `js-symmetric : ∀ {n} (p q : Distribution n) → jensen-shannon p q ≡ jensen-shannon q p` — follows from symmetry of KL terms in the midpoint construction.
21+
4. `js-bounded : ∀ {n} (p q : Distribution n) → 0.0 ≤ jensen-shannon p q × jensen-shannon p q ≤ 1.0` — Lin 1991; upper bound via Jensen's inequality.
22+
23+
The file's source-internal comment at line 111-112 reads:
24+
25+
> proofs would require a real-analysis formalisation (e.g. over ℝ). Classified as justified postulates, not proof debt.
26+
27+
Each statement has a textbook proof, but discharging them in Agda requires:
28+
29+
- A real-analysis library formalising ℝ as a Cauchy/Dedekind-complete ordered field
30+
- Log / exp / Jensen's-inequality lemmas
31+
- Probability-distribution structures (likely via `Vec` of reals summing to 1 with positivity)
32+
33+
This is a substantial library-development effort orthogonal to the standards repo's purpose. Per the file's own classification, these are **justified postulates** — known-true theorems from classical information theory whose Agda formalisation is out of scope.
34+
35+
## Anti-gameability
36+
37+
The registry is `audits/assail-classifications.a2ml`. The classification covers only this specific file; any new postulate in another proof file remains visible. Additional postulates added inside `information_theory.agda` would require updating both this audit doc and the rationale, both visible in the diff.
38+
39+
## Verification
40+
41+
No proof source touched; `agda --check` rebuild is moot (input unchanged from main).
42+
43+
Refs hyperpolymath/panic-attack#32.

0 commit comments

Comments
 (0)