fstarverifier

Verify F* and Pulse programs and explain proof failures via command-line execution.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps you verify F* and Pulse code, understand compiler and SMT errors, and isolate why a proof or specification is failing.

Core Features & Use Cases

  • Verification workflow: Run F* on .fst and .fsti files in the correct order and with project include paths.
  • Error diagnosis: Interpret common failures like unproven postconditions, missing identifiers, rlimit exhaustion, and type mismatches.
  • Pulse-specific guidance: Debug fold/unfold balance, permission issues, ghost-state mistakes, and memory-safety violations in concurrent code.
  • Proof hardening: Use query statistics, query splitting, z3 refresh, and intermediate assertions to make flaky proofs stable.

Quick Start

Ask the assistant to verify your F* file and explain the first proof error in plain language.

Frequently Asked Questions about fstarverifier

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

FAQPage Schema
How do I verify F* programs and explain unproven postconditions?

To verify F* programs, run fstar.exe on .fst and .fsti files with proper include paths. This process checks unproven postconditions and translates query diagnostics into plain language explanations of proof failures.

What is the best way to debug SMT proof failures and rlimit exhaustion in F*?

Debugging SMT proof failures involves analyzing query statistics, applying query splitting, and using z3 refresh. This isolates rlimit exhaustion and type mismatches to make flaky proofs stable through intermediate assertions.

How do I fix Pulse separation-logic errors like fold/unfold imbalances and permission issues?

Fixing Pulse separation-logic errors requires balancing fold and unfold operations to resolve permission issues. This targets ghost-state mistakes and memory-safety violations in concurrent code workflows.

Does F* verification require specific command-line execution and include-path handling?

F* verification requires fstar.exe command-line execution and precise include-path handling for .fst and .fsti files. Proper environment setup ensures correct query diagnostics and interpretation of scope and resource errors.

Why does my F* typechecking fail with missing identifiers and scope errors?

F* typechecking fails with missing identifiers and scope errors when include paths are misconfigured during fstar.exe execution. Analyzing query diagnostics isolates whether these proof failures stem from type mismatches or unproven conditions.

When should I use query splitting and z3 refresh for hardening flaky F* proofs?

Use query splitting and z3 refresh for hardening flaky F* proofs when query statistics indicate unstable SMT solver behavior. Adding intermediate assertions isolates failures and stabilizes verification of complex postconditions.