rocq-simulate-author

star 1.1k

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

formal-land By formal-land schedule Updated 2/8/2026

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

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 (gas_macro, push_macro, 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.
Install via CLI
npx skills add https://github.com/formal-land/rocq-of-rust --skill rocq-simulate-author
Repository Details
star Stars 1,129
call_split Forks 45
navigation Branch main
article Path SKILL.md
More from Creator