You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| parseEmptyArray | 287 |`parseJson "[]" = Just (JsonArray [])`| 1 | PROPERTY-TEST |~10 min | two-char lookahead via strSubstr |
318
318
| parseEmptyObject | 294 |`parseJson "{}" = Just (JsonObject [])`| 1 | PROPERTY-TEST |~10 min | same lookahead pattern |
319
-
| anyMatchesTAny | 339 |`matchesType v TAny = True` for all `v`| 3 | DISCHARGE-after-totality|~50 min | matchesType is `covering`; six-arm split after totality — tracked in **#81**|
319
+
| anyMatchesTAny | 339 |`matchesType v TAny = True` for all `v`| 3 | DISCHARGE |~50 min | matchesType covering→total refactor complete (proven#81); six-arm split on JsonValue|
320
320
321
-
**Module summary:**1 DISCHARGE + 2 DISCHARGE-after-totality + 6 PROPERTY-TEST + 4 OWED-AXIOM. Cost: ~3-4h (2h if totality lands). Half the module is concrete-input PROPERTY-TEST (parser tests); covering-function gap is the second-largest blocker after String FFI.
321
+
**Module summary:**3 DISCHARGE + 0 DISCHARGE-after-totality + 6 PROPERTY-TEST + 4 OWED-AXIOM. Cost: ~2-2.5h. Half the module is concrete-input PROPERTY-TEST (parser tests); covering-function gap resolved (proven#81).
322
322
323
323
### SafeArchive / Proofs.idr (6 OWED — note: 7 grep hits include 1 meta-comment in module header)
324
324
@@ -369,7 +369,7 @@ Discrepancies of ±2 against the 210 figure are real — sub-agents occasionally
369
369
370
370
3.**Family 4 (External KDF / opaque libs) is almost always OWED-AXIOM** — these are honest trusted-base entries. SafeCrypto and SafePassword's KDF-params proofs are the canonical examples. There is no Idris2 fix that helps here; the axiom names which external library claim is being trusted.
371
371
372
-
4.**Family 3 (covering / totality)** sites are DISCHARGE-after-totality. Three modules have them: SafePassword (`analyzeStrength`), SafeJson (`getPath`, `matchesType`), SafeRegex (`matchingTerminatesLemma`). Each needs a per-module totality-refactor ticket.
372
+
4.**Family 3 (covering / totality)** sites are DISCHARGE-after-totality. Two modules still have them: SafePassword (`analyzeStrength`) and SafeRegex (`matchingTerminatesLemma`). SafeJson's covering→total refactor (proven#81) discharged both `getPath` and `matchesType`. Each remaining module needs a per-module totality-refactor ticket.
373
373
374
374
5.**The 5 SafePassword KDF params proofs** (argon2ParamsValid, bcryptCostBounded, defaultArgon2Valid, defaultBcryptValid, defaultScryptValid) should likely be lifted into a dedicated `Hash.Proofs` module once external-library correctness is formalised as a separate layer. They're not really logic proofs — they're parameter-bound assertions over abstract record fields.
0 commit comments