proofdebugging

Diagnose failing F* and Pulse proofs by locating the exact assertion, lemma, or solver condition.

8|4|Updated Mar 25, 2026
One-click install
npx skills add https://github.com/FStarLang/proof-copilot --skill proofdebugging
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: proofdebugging
Source: https://github.com/FStarLang/proof-copilot/tree/main/plugins/proof-copilot/skills/proofdebugging
Command: npx skills add https://github.com/FStarLang/proof-copilot --skill proofdebugging

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps diagnose why an F* or Pulse proof fails, becomes unstable, or slows down, so you can pinpoint the exact query, lemma, or resource issue instead of guessing.

Core Features & Use Cases

  • Failure Isolation: Narrow a large proof down to the first failing assertion using query stats, split queries, and targeted admit() placement.
  • Proof Refactoring: Extract hard-to-prove fragments into helper lemmas to make verification simpler and more reusable.
  • Stability Hardening: Reduce solver limits, add intermediate assertions, and use scoped options to make proofs robust instead of flaky.
  • F and Pulse Support*: Troubleshoot both pure F* issues and Pulse-specific resource, ghost-context, and lemma-call problems.

Quick Start

Ask the skill to help debug a failing F* or Pulse proof by identifying the first stuck assertion, isolating the cause, and recommending the smallest proof refactor that makes verification succeed.

Frequently Asked Questions about proofdebugging

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I debug a failing F* proof?

Debug a failing F* proof by isolating the first stuck assertion, splitting queries, and using targeted admit() placement to pinpoint the exact verification failure before refactoring.

Why does my Pulse proof become unstable or slow down?

Pulse proofs become unstable due to solver limits or opaque obligations; stabilize them by adding intermediate assertions, reducing solver limits, and applying scoped options.

What is the best way to refactor hard-to-prove F* lemmas?

Refactor hard-to-prove F* lemmas by extracting difficult proof fragments into helper lemmas, making verification simpler, more stable, and reusable across modules.

Can I troubleshoot Pulse separation-logic resource and ghost-context errors?

Troubleshoot Pulse separation-logic resource and ghost-context errors by diagnosing lemma-call problems, applying resource-aware debugging guidance, and isolating the exact solver condition.

How do I locate the exact assertion preventing F* verification?

Locate the exact assertion preventing F* verification by analyzing query stats, splitting large queries, and strategically placing admit() to narrow down the failing condition.

When should I use scoped options to harden F* proof stability?

Use scoped options to harden F* proof stability when verification becomes flaky or slow, combining reduced solver limits and intermediate assertions to make proofs robust.