fstarlang/proof-copilot/specreview
- community
Checking that the SKILL.md file is still in the repository.
Review F*/Pulse specifications for completeness, strength, and usability
Install
npx vskill@latest install fstarlang/proof-copilot/specreviewSKILL.md
Invocation
This skill is used when:
- Reviewing the quality of F* or Pulse specifications
- Checking that postconditions prove functional correctness, not just type safety
- Auditing a module's interface (.fsti) for completeness
- Verifying that specifications connect implementations to their mathematical models
Functional Correctness Checklist
For each function with a specification, verify:
1. Does the postcondition prove the RIGHT thing?
❌ Weak: ensures (result >= 0) — proves a type property, not correctness ✅ Strong: ensures (result == factorial n) — proves functional correctness
❌ Weak: ensures (is_valid_flow result) — proves a structural property ✅ Strong: ensures (flow_value result == max_flow graph) — proves optimality
2. Does the postcondition connect to the pure specification?
Every imperative implementation should have a postcondition referencing the corresponding pure spec function:
NOT just: ensures exists* s'. A.pts_to arr s' ** pure (sorted s') (This doesn't prove the output is related to the input!)
3. Is the specification exposed in the interface?
Check the .fsti file:
- All postconditions referencing spec functions must be visible
- If the
.fstihides the postcondition, callers cannot reason about the result - Internal helper predicates used in postconditions should be exported or
abstracted behind a meaningful interface predicate
4. Can a caller USE the postcondition?
Verify that the postcondition is stated in terms a caller can work with:
- Uses spec-level types, not implementation-internal predicates
- Quantified properties have useful SMT patterns
- Key lemmas connecting the postcondition to further reasoning are available
5. Are algorithm-specific properties proven?
For algorithm implementations, check against the algorithm's mathematical guarantees:
| Algorithm | Must Prove | |
|---|---|---|
| Sorting | Output is sorted AND a permutation of input | |
| Shortest path | Distances are actual shortest paths, not just "some path" | |
| MST | Result is a spanning tree AND has minimum weight | |
| Search | Returns correct index AND element equality | |
| Union-Find | Operations maintain equivalence relation correctly | |
| Max-flow | Flow value equals the max-flow (not just "a valid flow") |
Common Weak-Spec Patterns
Pattern 1: Proving Type Safety Only
Pattern 2: Proving Partial Properties
Pattern 3: Postcondition References Impl Internals
Pattern 4: Missing Permutation/Conservation Properties
Interface Audit Checklist
When reviewing a .fsti file:
- [ ] Every exported function has explicit
requires/ensures - [ ] Postconditions reference spec-level definitions, not impl internals
- [ ] No abstract predicates that hide essential correctness properties
- [ ] Key lemmas that callers need are exported
- [ ] Correspondence predicates (relating impl state to spec state) are available
- [ ] Types that callers need to reason about are not unnecessarily abstract
Spec Module Completeness
For the pure spec module:
- [ ] All algorithm operations have pure spec functions
- [ ] Spec functions match the algorithm's definition (CLRS, paper, etc.)
- [ ] Key properties of the spec are stated as lemmas
- [ ] Spec is independent of implementation concerns (no machine integers, no effects)
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/proof-copilot/skills/specreview/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/fstarlang/proof-copilot/specreview)