Commit 0abfd40
fix(proofs): repair PA1 + PA2 Idris2 proofs (both were broken)
PA1 — PatternCompleteness.idr:
Parse-failed with Idris2 0.8.0: inline |||-doc-comments added
inside the `data WPCategory` declaration (for PA021-PA025) break
the parser. Converted to `--` line comments, same narrative, valid
syntax. The proof body (analyzerFor + detectorsFor covering every
constructor) is unchanged.
PA2 — ClassificationSoundness.idr:
1. Missing `import Data.Nat` — LTE/LTEZero/LTESucc undefined.
2. `lteRefl` not exposed in Idris2 0.8.0's Data.Nat at top level;
added a local structural-recursive definition.
3. Off-by-one in the LTE witnesses for encodingMonotone:
severityToNat {Low=0, Medium=1, High=2, Critical=3}, so LowMed
needs LTE 0 1 = LTEZero, not LTESucc LTEZero. All six witnesses
were one level too high. This proof never actually typechecked
against the current severityToNat; the "Done 2026-04-11" mark
in standards/docs/proofs/spec-templates/T2-high/panic-attacker.md
predated a severity renumbering and nobody re-ran the check.
Both files now pass `idris2 --check` from a PanicAttack.ABI.* module
root.
Dogfood: this is exactly the formal-verification drift PA021 is
designed to catch in OTHER repos.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent a63544b commit 0abfd40
2 files changed
Lines changed: 38 additions & 27 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
| 17 | + | |
16 | 18 | | |
17 | 19 | | |
18 | 20 | | |
| |||
122 | 124 | | |
123 | 125 | | |
124 | 126 | | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
125 | 133 | | |
126 | 134 | | |
127 | 135 | | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | | - | |
134 | | - | |
135 | | - | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
136 | 147 | | |
137 | 148 | | |
138 | 149 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
| 50 | + | |
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| |||
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
119 | | - | |
| 119 | + | |
120 | 120 | | |
121 | 121 | | |
122 | 122 | | |
| |||
170 | 170 | | |
171 | 171 | | |
172 | 172 | | |
173 | | - | |
174 | | - | |
175 | | - | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
176 | 176 | | |
177 | | - | |
178 | | - | |
179 | | - | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
180 | 180 | | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
185 | 185 | | |
186 | | - | |
187 | | - | |
188 | | - | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
189 | 189 | | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
194 | 194 | | |
195 | 195 | | |
196 | 196 | | |
| |||
0 commit comments