Skip to content

Commit 22519e5

Browse files
proof(SafeGit): DISCHARGE forbiddenRefCharsAnchor via Refl (proven#90) (#102)
Yet another "OWED comment was overly cautious" discharge in the [proven#90 Phase 3](#90) campaign. ## What it does \`\`\`idris public export forbiddenRefCharsAnchor : forbiddenRefChars = [' ', '~', '^', ':', '?', '*', '[', '\\\\', '\\x7F'] forbiddenRefCharsAnchor = Refl \`\`\` ## Why it works \`forbiddenRefChars\` is \`public export\` in SafeGit.idr L24-26 with this exact list literal as its body. The elaborator unfolds the LHS to the RHS for \`Refl\`. No "Char-list reduction" is needed — both sides are the same literal after the standard \`public export\` unfolding. ## Out of scope The other 2 SafeGit OWEDs have real blockers: - \`emptyRefNameInvalid\` — String-FFI (\`unpack\`, \`length\` on \`""\`) - \`refNameExtracts\` — auto-implicit elaboration Refs #90 Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent ebcf192 commit 22519e5

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

src/Proven/SafeGit/Proofs.idr

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,15 @@ import Proven.SafeGit
1212

1313
%default total
1414

15-
||| OWED: spec anchor — 9 ref characters are forbidden by
16-
||| git-check-ref-format. Blocked on Char-list reduction.
15+
||| DISCHARGED: spec anchor — the 9 ref characters forbidden by
16+
||| git-check-ref-format. `forbiddenRefChars` is `public export` with
17+
||| this exact list literal as its body (SafeGit.idr L24-26), so the
18+
||| elaborator unfolds the LHS to the RHS for `Refl`. No "Char-list
19+
||| reduction" is needed — both sides are the same list literal.
1720
public export
18-
0 forbiddenRefCharsAnchor :
21+
forbiddenRefCharsAnchor :
1922
forbiddenRefChars = [' ', '~', '^', ':', '?', '*', '[', '\\', '\x7F']
23+
forbiddenRefCharsAnchor = Refl
2024

2125
--------------------------------------------------------------------------------
2226
-- OWED postulates

0 commit comments

Comments
 (0)