Commit 007f44c
Two of the 12 remaining `SafeJson.Proofs` OWEDs turned out to be
overly-cautious — empirically dischargeable with the techniques
already in proven's toolbox:
1. **anyMatchesTAny** (`matchesType v TAny = True` for all v):
OWED comment claimed the `covering` annotation on `matchesType`
blocks reduction on an abstract `v`. The comment SUGGESTED a
six-arm manual case-split would work — and empirically it does
(`/tmp/charrefl/src/TestJson.idr`). Each concrete-constructor arm
reduces through the catch-all `matchesType _ TAny = True` clause
by Refl. 7 lines (signature + 6 arms).
2. **singleKeyPath** (`getPath [Key k] (JsonObject obj) = lookup k obj`):
OWED comment claimed `getPath`/`getSegment` are `covering`. Source
inspection shows neither carries the annotation — both are total.
The proof reduces to `case lookup k obj of {Nothing => Nothing; Just v => Just v}`
which is `lookup k obj` after a `with`-pattern on the lookup
result (Maybe-identity, both arms by Refl). Empirically verified
at `/tmp/charrefl/src/TestJsonPath.idr`.
The remaining 10 SafeJson OWEDs are GENUINELY String-FFI-blocked:
- setGetIdentity / setPreservesOther / setHasKey / removeNotHasKey:
all thread through `prim__eq_String` on abstract keys.
- parseNullCorrect / parseTrueCorrect / parseFalseCorrect /
parseEmptyFails / parseEmptyArray / parseEmptyObject: all thread
through the String-FFI parser (`unpack`/`strHead`/`strSubstr`).
These cannot be discharged without a reflective String-axiom in
Idris2 0.8.0 base (or rewriting parser onto `List Char`).
Empirical reduction map ref: `reference_idris2_0_8_0_reduction_map.md`.
Zero `believe_me`/`postulate`/`idris_crash`.
Note on local-vs-CI: local `idris2 --check Proofs.idr` shows a
pre-existing error on `appendLengthInc` due to a `Data.List` /
`Data.List.Equalities` / `Data.List.Quantifiers` name-resolution
quirk in the local contrib install — does NOT reproduce in CI
(PR #127 merged green with the same code). My new proofs verify
in a minimal isolated context (`/tmp/JsonNew.idr`, exit 0).
Refs proven#90 (Phase 3 OWED triage), proven#107 (overly-cautious
OWED meta), proven#119 (paths-forward).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 477172b commit 007f44c
1 file changed
Lines changed: 33 additions & 36 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
216 | 216 | | |
217 | 217 | | |
218 | 218 | | |
219 | | - | |
| 219 | + | |
220 | 220 | | |
221 | | - | |
222 | | - | |
223 | | - | |
224 | | - | |
225 | | - | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
237 | | - | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
238 | 233 | | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
239 | 237 | | |
240 | 238 | | |
241 | 239 | | |
| |||
326 | 324 | | |
327 | 325 | | |
328 | 326 | | |
329 | | - | |
| 327 | + | |
330 | 328 | | |
331 | 329 | | |
332 | | - | |
333 | | - | |
334 | | - | |
335 | | - | |
336 | | - | |
337 | | - | |
338 | | - | |
339 | | - | |
340 | | - | |
341 | | - | |
342 | | - | |
343 | | - | |
344 | | - | |
345 | | - | |
346 | | - | |
347 | | - | |
348 | | - | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
349 | 346 | | |
350 | 347 | | |
351 | 348 | | |
| |||
0 commit comments