본문으로 건너뛰기
cccskills
무료GitHub에 공개

writing-rocq-proofs

Use when a proof needs Rocq (formerly Coq), including legacy Coq codebase maintenance and migration through the Coq to Rocq rename. Not for Lean 4: use writing-lean-proofs.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(2)

  • SKILL.md4.8 KB
  • agents/openai.yaml204 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Writing Rocq proofs

Contract

FieldBound contract
TriggerThe task is to write, review, or maintain Rocq 9.x proofs, or to migrate a legacy Coq codebase through the Coq to Rocq rename. Methodology stays with proof-driven.
AuthorityReversible local: writes only Rocq source files, project build files such as _CoqProject and opam files inside the target project, and scoped mechanical Rocq checks; rollback is version control. No remote mutation.
Side effectLocal writes to .v sources, project build files, and migration edits. No remote mutation.
DoneThe project compiles under the pinned Rocq version, and Print Assumptions on each delivered theorem lists only the axioms the project declares.

Inputs

  • Rocq 9.2.0, the current release of a monthly cadence that started with 9.0.0 in March 2025, installed with opam install rocq-prover.9.2.0 or as the Rocq Platform bundle. Docs: rocq-prover.org.
  • A proof environment: VsCoq (the official VS Code extension) or Proof General for Emacs, or rocq repl.
  • The .v sources and theorem statements; for a migration, the legacy Coq project.
  • Build facts: source files keep the .v extension, rocq compile emits .vo files that are specific to the compiling Rocq version, and -Q directory dirpath maps a directory to a logical prefix so Require resolves.

Procedure

  1. Pin the toolchain and open the proof loop. Install the pinned version with opam install rocq-prover.<version>, and prove in rocq repl or an editor session with VsCoq or Proof General. Compile with rocq compile file.v; for a project, generate a Makefile with rocq makefile -f _CoqProject -o CoqMakefile, where _CoqProject lists sources and -Q/-R mappings. Done when: the repl or editor runs against the project's pinned version and a Require of project code resolves.
  2. State the skeleton before proving. Write the target theorem and every helper lemma with its body closed by Admitted, and compile: the skeleton type-checks while each Admitted marks an independent work unit. Separate subgoals with focused bullets so each stays addressable. Done when: the skeleton compiles and every Admitted is an identified work unit.
  3. Fill proofs one goal at a time. Introduce the context with intros, decompose with destruct and induction, transform with rewrite and apply, and close with a terminal step such as exact or reflexivity. Prefer structured steps over long apply chains, and close every finished proof with Qed. Done when: every Admitted is replaced by a proof that closes with Qed.
  4. Audit the axiom footprint. Run Print Assumptions <theorem> on each delivered theorem: it displays the axioms, parameters, and variables the theorem depends on. An Admitted helper or an Axiom declaration appears in that output, so the kernel report is the gate, not a text search. Done when: each delivered theorem's footprint matches the declared axioms and no Admitted remains.
  5. Migrate a legacy Coq project. Rename the opam dependency: coq is replaced by rocq-core, the prover ships as rocq-prover, and ported packages take rocq-* names. Rewrite From Coq Require Import X to From Stdlib Require Import X, because the Coq.* standard-library namespace became Stdlib.* in 9.0. Compile and fix each deprecation at its site: 9.1 added the modular integer arithmetic theory with about 450 lemmas and deprecates the Rtauto and rtauto.Bintree plugins. The legacy coqc, coqtop, and coq_makefile shims still exist in 9.x; remove calls to them as the migration lands. Done when: the project builds under the pinned Rocq 9.x with rocq-* package names, Stdlib imports, and no deprecation warning on delivered files.

Failure and recovery

Compile error: fix the source at the reported span and rebuild; do not widen scope. Stuck goal: record the goal, the hypotheses, and the tactics tried, then report them; do not close a delivered theorem with Admitted. Axiom leakage: Print Assumptions names an unexpected axiom, so trace it to its Axiom declaration or Admitted proof and remove it before delivery. A dependency has no Rocq 9 port: pin the last compatible version or port the dependent module; do not fake the import. Non-convergent proof: report the stuck goal and the evidence; do not weaken the statement.

Output

.v sources that compile under the pinned Rocq version with proofs closed by Qed, delivered theorems whose Print Assumptions footprint matches the declared axioms, and for a migration, a build on rocq-* package names with Stdlib imports and no deprecation warning on delivered files.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use when explaining System V AMD64, ARM AAPCS, RISC-V psABI, stack frames, variadic calls, or FFI register rules. Not for the Rust FFI binding layer: use rust-ffi.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OutlineDriven/odin-claude-plugin372026년 9월 29일 업데이트

Use when configuring ADC sampling time, DMA-driven ADC, calibration, or DAC channel setup on bare-metal MCUs. Not for the DMA stream itself: use dma-baremetal.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OutlineDriven/odin-claude-plugin372026년 9월 29일 업데이트

af-xdp

무료

Use when creating AF_XDP sockets, configuring UMEM and XSK rings, writing an XDP redirect program, or choosing copy versus zero-copy mode. Not for full kernel bypass: use dpdk.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OutlineDriven/odin-claude-plugin372026년 9월 29일 업데이트

Use when a completed session needs an agent-environment retrospective. Not for an engineering retrospective from telemetry: use engineering-retrospective.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OutlineDriven/odin-claude-plugin372026년 9월 29일 업데이트

Use when a redacted, trimmed agent transcript must be appended to a GitHub PR or issue body, with human approval and preview. Not for automated or model-initiated insertion.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OutlineDriven/odin-claude-plugin372026년 9월 29일 업데이트

agents-md

무료

Use when a repo needs agent setup, AGENTS.md added or made lean, CLAUDE.md audited, or agent instructions scored or pruned. Not for remote, credential, publish, deploy, or irreversible changes.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OutlineDriven/odin-claude-plugin372026년 9월 29일 업데이트

OutlineDriven의 스킬 모두 보기

이 스킬의 문제 신고