Skip to main content

coqgym

Machine learning environment for automated theorem proving with Coq.

Informations de source

Dépôt
plurigrid/asi
Dernière activité de la source
10 juin 2026 à 11:55
Langue détectée de SKILL.md
anglais
Étoiles
64
Forks
12

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
2 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
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.*
Voir sur GitHub