Agent skill

Formal Verification Guide

by wentorai in wentorai/research-plugins

Formal methods, theorem proving, and model checking for CS research

MITAuto-check passed

Install Formal Verification Guide

skills CLI
$ npx skills add wentorai/research-plugins --skill formal-verification-guide -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install wentorai/research-plugins formal-verification-guide --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/wentorai/research-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/domains/cs/formal-verification-guide .claude/skills/formal-verification-guide && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
formal-verification-guide
GitHub stars
298
Used in
1 other repo
Token cost
~2.1k tokens
SKILL.md length
296 words
Files
1
Skills in repo
405
Repo updated
First seen
Licence
MIT

At a glance

Formal methods, theorem proving, and model checking for CS research

  • Works in 5 steps: Specify: Write a formal specification of… → Model: Create an abstract model of the… → Verify: Run model checker or construct… → …
  • SKILL.md covers Verification Approaches Overview, TLA+ Specification, Interactive Theorem Proving and SMT Solving, plus 3 more sections
  • Calls java

What it does

Formal Verification Guide is an agent skill from wentorai/research-plugins. Formal methods, theorem proving, and model checking for CS research

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: 350+ academic research skills, MCP configs, and plugins for Research-Claw and AI agents. The licence is MIT.

Example prompts

  • “/formal-verification-guide”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Specify: Write a formal specification of the desired property
  2. Model: Create an abstract model of the system
  3. Verify: Run model checker or construct proof
  4. Refine: If counterexample found, fix the design or refine the model
  5. Extract: Generate verified code from the proof (Coq extraction, Isabelle code generation)

What it can do on your machine

Read from SKILL.md and the folder at commit bf44b3c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • java

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Formal Verification Guide loads about 2.1k tokens when it runs. Until then it costs about 23 tokens; SKILL.md has 296 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~23
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from wentorai/research-plugins at commit bf44b3c, republished under its MIT licence (© wentorai). 296 words, ~2,131 tokens.

Download SKILL.mdSave it as .claude/skills/formal-verification-guide/SKILL.md (or your agent's skills folder).
name
formal-verification-guide
description
Formal methods, theorem proving, and model checking for CS research

Formal Verification Guide

A skill for applying formal methods to verify software and hardware correctness. Covers model checking, interactive theorem proving, specification languages, and practical verification workflows used in systems and programming language research.

Verification Approaches Overview

Methods Comparison
ApproachTechniqueStrengthsLimitations
Model checkingExhaustive state explorationFully automatic, produces counterexamplesState space explosion
Theorem provingInteractive proof constructionHandles infinite stateRequires expert effort
Abstract interpretationSound static analysisAutomatic, scales wellMay report false positives
SMT solvingConstraint satisfiabilityPowerful automationLimited to decidable theories
Runtime verificationExecution monitoringLow barrier, practicalOnly checks observed runs

TLA+ Specification

Specifying Distributed Protocols

TLA+ is the standard specification language for distributed systems:

tla
--------------------------- MODULE TwoPhaseCommit -------------------------
EXTENDS Integers, Sequences, FiniteSets

CONSTANTS RM  \* Set of resource managers

VARIABLES
    rmState,      \* rmState[r] is the state of resource manager r
    tmState,      \* State of the transaction manager
    tmPrepared,   \* Set of RMs that have sent "Prepared"
    msgs          \* Set of messages sent

vars == <<rmState, tmState, tmPrepared, msgs>>

Init ==
    /\ rmState = [r \in RM |-> "working"]
    /\ tmState = "init"
    /\ tmPrepared = {}
    /\ msgs = {}

\* RM r prepares to commit
RMPrepare(r) ==
    /\ rmState[r] = "working"
    /\ rmState' = [rmState EXCEPT ![r] = "prepared"]
    /\ msgs' = msgs \union {[type |-> "Prepared", rm |-> r]}
    /\ UNCHANGED <<tmState, tmPrepared>>

\* TM receives a Prepared message from RM r
TMRcvPrepared(r) ==
    /\ tmState = "init"
    /\ [type |-> "Prepared", rm |-> r] \in msgs
    /\ tmPrepared' = tmPrepared \union {r}
    /\ UNCHANGED <<rmState, tmState, msgs>>

\* TM commits (all RMs have prepared)
TMCommit ==
    /\ tmState = "init"
    /\ tmPrepared = RM
    /\ tmState' = "committed"
    /\ msgs' = msgs \union {[type |-> "Commit"]}
    /\ UNCHANGED <<rmState, tmPrepared>>

\* Safety property: No RM commits unless TM has committed
Consistency ==
    \A r \in RM : rmState[r] = "committed" => tmState = "committed"
========================================================================
Running the TLC Model Checker
bash
# Install TLA+ Toolbox or use command-line TLC
# Define model with specific constants
# RM = {"rm1", "rm2", "rm3"}
java -jar tla2tools.jar -config TwoPhaseCommit.cfg TwoPhaseCommit.tla

# TLC will explore all reachable states and verify:
# - No deadlocks (unless specified)
# - Safety properties (invariants)
# - Liveness properties (temporal formulas)

Interactive Theorem Proving

Coq Proof Assistant
coq
(* Example: Proving properties of a simple functional program *)

(* Define natural number addition *)
Fixpoint add (n m : nat) : nat :=
  match n with
  | O => m
  | S n' => S (add n' m)
  end.

(* Prove: 0 + n = n (left identity) *)
Theorem add_0_l : forall n : nat, add 0 n = n.
Proof.
  intro n.
  simpl.    (* simplification reduces add 0 n to n *)
  reflexivity.
Qed.

(* Prove: n + 0 = n (right identity, requires induction) *)
Theorem add_0_r : forall n : nat, add n 0 = n.
Proof.
  intro n.
  induction n as [| n' IHn'].
  - (* Base case: n = 0 *)
    simpl. reflexivity.
  - (* Inductive step: n = S n' *)
    simpl.               (* add (S n') 0 = S (add n' 0) *)
    rewrite IHn'.        (* apply induction hypothesis *)
    reflexivity.
Qed.

(* Prove associativity of addition *)
Theorem add_assoc : forall a b c : nat,
  add a (add b c) = add (add a b) c.
Proof.
  intros a b c.
  induction a as [| a' IHa'].
  - simpl. reflexivity.
  - simpl. rewrite IHa'. reflexivity.
Qed.
Isabelle/HOL
isabelle
theory SimpleVerification
  imports Main
begin

(* Define a recursive function *)
fun fib :: "nat => nat" where
  "fib 0 = 0"
| "fib (Suc 0) = 1"
| "fib (Suc (Suc n)) = fib (Suc n) + fib n"

(* Prove a property *)
lemma fib_positive: "0 < fib (Suc n)"
  by (induction n rule: fib.induct) auto

(* Verify a sorting algorithm *)
fun insert :: "nat => nat list => nat list" where
  "insert x [] = [x]"
| "insert x (y # ys) = (if x <= y then x # y # ys else y # insert x ys)"

fun isort :: "nat list => nat list" where
  "isort [] = []"
| "isort (x # xs) = insert x (isort xs)"

(* Prove the output is sorted *)
lemma sorted_insert: "sorted (insert x xs) = sorted xs"
  sorry (* full proof requires additional lemmas *)

end

SMT Solving

Z3 for Program Verification
python
from z3 import Solver, Int, Bool, And, Or, Not, Implies, ForAll, sat, unsat

def verify_array_bounds():
    """
    Verify that an array access is always within bounds.
    Model a loop: for i = 0 to n-1, access a[i].
    """
    s = Solver()
    n = Int("n")
    i = Int("i")

    # Precondition: n > 0
    s.add(n > 0)

    # Loop invariant: 0 <= i < n at each access
    s.add(i >= 0)
    s.add(i < n)

    # Verify: the access a[i] is within bounds [0, n)
    s.add(Not(And(i >= 0, i < n)))  # try to find a violation

    result = s.check()
    if result == unsat:
        return "VERIFIED: array access is always within bounds"
    else:
        return f"COUNTEREXAMPLE: {s.model()}"

def verify_integer_overflow():
    """
    Check if integer addition can overflow for given constraints.
    """
    from z3 import BitVec, BitVecVal

    s = Solver()
    # 32-bit signed integers
    x = BitVec("x", 32)
    y = BitVec("y", 32)

    # Preconditions: both positive
    s.add(x > 0)
    s.add(y > 0)

    # Check: can x + y wrap around to negative?
    s.add(x + y < 0)

    if s.check() == sat:
        m = s.model()
        return {
            "overflow_possible": True,
            "x": m[x].as_long(),
            "y": m[y].as_long(),
        }
    return {"overflow_possible": False}

Model Checking with SPIN

Promela Specification
promela
/* Mutual exclusion with Peterson's algorithm */
bool flag[2] = false;
byte turn = 0;
byte critical = 0;  /* count of processes in critical section */

active [2] proctype process() {
    byte me = _pid;
    byte other = 1 - _pid;

    do
    :: /* Entry protocol */
       flag[me] = true;
       turn = other;
       (flag[other] == false || turn == me);

       /* Critical section */
       critical++;
       assert(critical == 1);  /* mutual exclusion */
       critical--;

       /* Exit protocol */
       flag[me] = false;
    od
}

/* LTL property: mutual exclusion always holds */
ltl mutex { [] (critical <= 1) }

Verification Workflow

Practical Verification Strategy
  1. Specify: Write a formal specification of the desired property
  2. Model: Create an abstract model of the system
  3. Verify: Run model checker or construct proof
  4. Refine: If counterexample found, fix the design or refine the model
  5. Extract: Generate verified code from the proof (Coq extraction, Isabelle code generation)
Common Properties to Verify
Property TypeExampleSpecification Pattern
Safety"No two processes in critical section"[] (count <= 1)
Liveness"Every request is eventually served"[] (request -> <> response)
Deadlock freedom"System always has an enabled transition"[] <> enabled
Termination"Program always halts"Well-founded ordering

Tools and Resources

  • TLA+ Toolbox: IDE for TLA+ with integrated TLC model checker
  • Coq: Interactive theorem prover with program extraction
  • Isabelle/HOL: Higher-order logic prover with Sledgehammer automation
  • Z3 / CVC5: SMT solvers for automated reasoning
  • SPIN: Model checker for concurrent systems (Promela)
  • CBMC: Bounded model checker for C programs
  • Dafny: Verification-aware programming language (Microsoft)
  • Lean 4: Modern theorem prover and programming language

© wentorai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/domains/cs/formal-verification-guide of wentorai/research-plugins.

Open the folder on GitHubat commit bf44b3c

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in wentorai/research-plugins, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Formal Verification Guide next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Formal Verification Guide compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Formal Verification Guide this skillwentorai/research-plugins2981 repos~2.1kAutomated safety check: PassMIT
Check PRpaperclipai/paperclip99k—~3.6kAutomated safety check: PassMIT
Lean4 Theorem Provingbenchflow-ai/skillsbench1.8k—~2.2kAutomated safety check: PassApache-2.0
Checkdavepoon/buildwithclaude3.6k—~680Automated safety check: PassMIT
Fact Check X Unifiedsickn33/agentic-awesome-skills47k1 repos~1.7kAutomated safety check: PassApache-2.0
Fact Check X Completesickn33/agentic-awesome-skills47k1 repos~2.3kAutomated safety check: PassApache-2.0

Similar skills

  • Check PR

    paperclipai/paperclip

    Check a GitHub, GitLab, or Perforce PR/MR/CL for review comments, failing checks, and PR-body gaps.

    99k GitHub stars~3.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Lean4 Theorem Proving

    benchflow-ai/skillsbench

    A skill your agent uses when working with Lean 4 (.lean files), writing mathematical proofs, seeing "failed to synthesize instance" errors, managing sorry/axiom elimination, or searching mathlib for…

    1.8k GitHub stars~2.2k tokensUpdated 2 mo ago
    Agent WorkflowsAuto-check passed
  • Check

    davepoon/buildwithclaude

    Run CIAgent regression checks after changing an AI agent's code, prompts, or knowledge base in a repo that has agentcispec.yaml, and interpret the results.

    3.6k GitHub stars~680 tokensUpdated yesterday
    Knowledge ManagementAuto-check passed
  • Fact Check X Unified

    sickn33/agentic-awesome-skills

    Fact-Check-X 流程编排能力,依次组织各方答案汇总、各方答案聚合(未核验)、权威核验后的最终答案和各方答案测评,生成可打开、可审计、可迁移的阶段产物与完整报告包。

    47k GitHub starsUsed in 1 repo~1.7k tokens
    Research & ScienceAuto-check passed
  • Fact Check X Complete

    sickn33/agentic-awesome-skills

    Compare claims from one or more AI answers, verify their citations against public primary sources, and produce an evidence-linked fact-check report without installing a bundled browser runtime.

    47k GitHub starsUsed in 1 repo~2.3k tokens
    Research & ScienceAuto-check passed
  • Check

    VibiumDev/vibium

    Independently check application acceptance criteria in a live browser or saved recording with the Vibium CLI.

    2.9k GitHub stars~2k tokensUpdated today
    Product & Project ManagementAuto-check passed

More from wentorai/research-plugins

All 405 skills in this repo
  • Abstract Writing Guide

    wentorai/research-plugins

    Craft structured research abstracts that maximize clarity and journal acceptance

    298 GitHub starsUsed in 1 repo~1.7k tokens
    Auto-check passed
  • Academic Citation Manager

    wentorai/research-plugins

    Manage academic citations across BibTeX, APA, MLA, and Chicago formats

    298 GitHub starsUsed in 1 repo~2.7k tokens
    Auto-check passed
  • Academic Paper Summarizer

    wentorai/research-plugins

    Summarize academic papers with structured extraction of key elements

    298 GitHub starsUsed in 1 repo~1.4k tokens
    Auto-check passed
  • Academic Study Methods

    wentorai/research-plugins

    Evidence-based study techniques for academic learning and retention

    298 GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check passed
  • Academic Tone Guide

    wentorai/research-plugins

    Adjust writing tone and register for academic audiences and venues

    298 GitHub starsUsed in 1 repo~1.9k tokens
    Auto-check passed
  • Academic Translation Guide

    wentorai/research-plugins

    Academic translation, post-editing, and Chinglish correction guide

    298 GitHub starsUsed in 1 repo~1.6k tokens
    Auto-check passed

Questions about Formal Verification Guide

What does Formal Verification Guide do?

Formal methods, theorem proving, and model checking for CS research. Formal Verification Guide is an agent skill from wentorai/research-plugins.

How do I install Formal Verification Guide in Claude Code?

Run `npx skills add wentorai/research-plugins --skill formal-verification-guide -a claude-code`. Or copy the skill folder (skills/domains/cs/formal-verification-guide in wentorai/research-plugins) into .claude/skills/formal-verification-guide in your project. Claude Code loads it when a task matches its description.

How do I install Formal Verification Guide in Codex?

Run `npx skills add wentorai/research-plugins --skill formal-verification-guide -a codex`. Or copy the skill folder (skills/domains/cs/formal-verification-guide in wentorai/research-plugins) into .agents/skills/formal-verification-guide in your project. Codex loads it when a task matches its description.

Can I use Formal Verification Guide in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add wentorai/research-plugins --skill formal-verification-guide -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/formal-verification-guide, .gemini/skills/formal-verification-guide, .github/skills/formal-verification-guide and .opencode/skills/formal-verification-guide in your project.

What does Formal Verification Guide need to run?

Going by SKILL.md and its folder, Formal Verification Guide needs the command-line tools its instructions call (java). Our summary lists: Python 3.

Does Formal Verification Guide access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Formal Verification Guide safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Formal Verification Guide use?

Formal Verification Guide is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Formal Verification Guide use?

About 2.1k tokens (SKILL.md is roughly 8.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Formal Verification Guide?

Skills that share tags, products or a category with Formal Verification Guide: Check PR (paperclipai/paperclip, 99k stars), Lean4 Theorem Proving (benchflow-ai/skillsbench, 1.8k stars), Check (davepoon/buildwithclaude, 3.6k stars) and Fact Check X Unified (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Formal Verification Guide?

wentorai (a GitHub user) maintains it in wentorai/research-plugins, which has 298 GitHub stars. The repository holds 405 skills in this directory. The repository was last updated on June 19, 2026.

Source: wentorai/research-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.