Skip to main content

coqgym

Machine learning environment for automated theorem proving with Coq.

Source facts

Repository
plurigrid/asi
Last source activity
June 10, 2026 at 11:55
Detected SKILL.md language
English
Stars
64
Forks
12

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
2 files

Showing SKILL.md

SKILL.md
Source instructions ยท Read-only preview
name
coqgym
description
Machine learning environment for automated theorem proving with Coq.
# CoqGym Machine learning environment for automated theorem proving with Coq. ## Overview [CoqGym](https://github.com/princeton-vl/CoqGym) is a learning environment for theorem proving with the Coq proof assistant. It provides: - **71K human-written proofs** from 123 Coq projects - **ASTactic** - neural theorem prover using proof state ASTs - **CoqHammer integration** for automated reasoning - **Benchmark** for evaluating ML-based provers Paper: [arXiv:1905.09381](https://arxiv.org/abs/1905.09381) ## Installation ```bash # Clone repository git clone https://github.com/princeton-vl/CoqGym cd CoqGym # Install dependencies pip install -r requirements.txt # Install Coq 8.9.1 opam switch create coq891 4.07.1 opam install coq.8.9.1 # Build CoqGym python setup.py build ``` ## Dataset Structure ``` CoqGym/ โ”œโ”€โ”€ coq_projects/ # 123 Coq projects โ”œโ”€โ”€ data/ # Extracted proof data โ”‚ โ”œโ”€โ”€ *.json # Proof states and tactics โ”‚ โ””โ”€โ”€ sexp_cache/ # S-expression cache โ”œโ”€โ”€ ASTactic/ # Neural prover โ””โ”€โ”€ coqhammer/ # Hammer integration ``` ## Proof State Representation Each proof state contains: - **Goals**: Current proof obligations - **Local context**: Hypotheses in scope - **Global context**: Available lemmas/definitions - **Tactic history**: Previous tactics applied ```python { "goals": [...], "local_context": [...], "tactic": "intros n.", "proof_tree": {...} } ``` ## ASTactic Model Neural network that predicts tactics from proof state ASTs: ```python from astactic import ASTactic model = ASTactic.load("models/astactic.pt") tactic = model.predict(proof_state) ``` Architecture: - TreeLSTM encoder for AST structure - Attention over local/global context - Tactic decoder with copy mechanism ## Training ```bash # Extract proofs python extract_proofs.py --project mathcomp # Train ASTactic python train.py \ --data data/train.json \ --model astactic \ --epochs 100 ``` ## Evaluation ```bash # Evaluate on test set python evaluate.py \ --model models/astactic.pt \ --data data/test.json \ --timeout 600 ``` Metrics: - **Proof success rate**: % of theorems proved - **Tactic accuracy**: Top-k tactic prediction - **Proof length**: Steps vs human proofs ## CoqHammer Integration Combines ML predictions with automated reasoning: ```coq (* In Coq *) Require Import Hammer. Lemma example : forall n, n + 0 = n. Proof. hammer. (* Calls external ATPs *) Qed. ``` ## Integration with Gay.jl Verification Use CoqGym to learn proof strategies for Gay.jl properties: 1. **Extract** proofs from similar PRNG verification projects 2. **Train** on SplitMix64-style proofs 3. **Apply** learned tactics to new Gay.jl lemmas ```python # Find similar proofs similar = coqgym.search( query="deterministic hash function", projects=["compcert", "flocq"] ) ``` ## GF(3) Trit | Role | Trit | Description | |------|------|-------------| | Learner | -1 | Extract patterns from proofs | | Predictor | 0 | Tactic prediction (ergodic) | | Prover | +1 | Generate complete proofs | ## Key Papers - [Learning to Prove Theorems via Interacting with Proof Assistants](https://arxiv.org/abs/1905.09381) - [Graph Neural Networks for Theorem Proving](https://arxiv.org/abs/2003.04883) - [Automated Theorem Proving with GNNs](https://medium.com/stanford-cs224w/automated-theorem-proving-with-graph-neural-networks-49c091024f81) ## Resources - [GitHub](https://github.com/princeton-vl/CoqGym) - [Princeton Vision Lab](https://www.cs.princeton.edu/~kaiyang/) - [Coq Documentation](https://coq.inria.fr/documentation) ## Related Skills - `coq-of-rust` - Rust to Coq translation - `narya-proofs` - Higher observational type theory - `proofgeneral-narya` - Proof assistant integration - `forward-forward-learning` - Local learning without backprop --- ## Autopoietic Marginalia > **The interaction IS the skill improving itself.** Every use of this skill is an opportunity for worlding: - **MEMORY** (-1): Record what was learned - **REMEMBERING** (0): Connect patterns to other skills - **WORLDING** (+1): Evolve the skill based on use *Add Interaction Exemplars here as the skill is used.*
View on GitHub