smithery/formal-land

rocq-simulate-author

Create or update Rocq simulate files in this repository, including imports, executable definitions, and corresponding _eq lemmas with the project’s proof/admission conventions.

Installation

$ npx skills add smithery/formal-land --skill rocq-simulate-author

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/formal-land.

npx skills add smithery/formal-land

Browse all from smithery/formal-land

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,548 B
  • docs SUMMARY.md 206 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Rocq Simulate Author

Use this skill when asked to create or complete files under /simulate//*.v.

Goals

  • Add a simulate Definition that mirrors the links/run behavior at the right abstraction level.
  • Add the matching eq lemma connecting run* and the simulate definition.
  • Keep the file compiling with project flags.

Repository Conventions

  • Compile with:
coqc -R . RocqOfRust -impredicative-set path/to/file.v
  • Prefer explicit imports; do not assume aggregator modules exist.
  • In this repo, many _eq lemmas are intentionally Admitted during iteration.
  • Use id instead of (fun interpreter => interpreter).
  • Prefer record notation when clearer (for example Range records).

Procedure

  1. Locate links source and nearby simulate examples.
  • Read corresponding links file (.../links/...) to extract run_* signature and parameter order.
  • Read one neighboring simulate file in same folder for style.
  1. Build imports explicitly.
  • Require Import simulate.RocqOfRust. first.
  • Add links/simulate imports used by the definition.
  • Add missing imports only when compile errors require them.
  1. Write the simulate definition.
  • Keep shape close to Rust intent and existing sibling files.
  • Use existing macros (gasmacro, pushmacro, etc.) consistently.
  • Avoid overfitting proofs in the definition.
  1. Write _eq lemma.
  • Match argument order of run_* exactly.
  • Prefer class-level Run assumptions in Eq-style files.
  • If proof is not ready, keep Admitted unless user asked no admitted.
  1. Compile and iterate.
  • Compile touched file first.
  • Fix minimal issues (imports, type annotations, argument order).

Starter Skeleton

Require Import simulate.RocqOfRust.
(* other explicit imports *)

Definition <name>
    {A ... : Set} `{Link ...}
    ...
    (x : ...) : ... :=
  ... .

Lemma <name>_eq
    {A ... : Set} `{Link ...}
    ...
    (x : ...) :
  ...
.
Proof.
Admitted.

Common Failure Fixes

  • module-not-found: add explicit Require Import ... for split per-function links/simulate files.
  • Type mismatch in run_*: compare with links instance signature and reorder args.
  • Numeric inference to Z: use typed literals like (0 : usize).
  • Missing class projections in Eq files: add appropriate class-level *.Run assumption.