echidnabot supports a wide range of theorem provers through ECHIDNA Core.
These provers have complete integration with all echidnabot features.
Files: .v
The Calculus of Inductive Constructions. Coq is a formal proof management system with a rich type theory and tactic language.
[provers.coq]
enabled = true
timeout = 120
flags = ["-R", ".", "MyProject", "-Q", "theories", "Theories"]Features:
- ✓ File verification
- ✓ Error location (line/column)
- ✓ Tactic suggestions (ML)
- ✓ Dependency analysis
Files: .lean
A functional programming language and theorem prover with a powerful metaprogramming framework.
[provers.lean4]
enabled = true
lake = true # Use Lake build system
mathlib = false # Import MathlibFeatures:
- ✓ File verification
- ✓ Lake project support
- ✓ Mathlib integration
- ✓ Error location
- ✓ Tactic suggestions
Files: .agda, .lagda, .lagda.md, .lagda.rst, .lagda.tex
A dependently typed functional programming language with a focus on interactive development.
[provers.agda]
enabled = true
flags = ["--safe", "--without-K"]Features:
- ✓ File verification
- ✓ Literate Agda support
- ✓ Error location
- ✓ Hole suggestions
Files: .thy
A generic proof assistant with a focus on higher-order logic.
[provers.isabelle]
enabled = true
logic = "HOL"
session = "MySession"Features:
- ✓ Theory verification
- ✓ Session management
- ✓ Error location
Files: .smt2
An efficient SMT solver for satisfiability and validity checking.
[provers.z3]
enabled = true
timeout = 60Features:
- ✓ SMT-LIB 2 format
- ✓ Sat/Unsat results
- ✓ Model output
- ✓ Proof output
Files: .smt2, .cvc5
A modern SMT solver with support for quantifiers and theories.
[provers.cvc5]
enabled = true
incremental = trueThese provers have verification support but may lack advanced features.
Files: .mm
A minimal proof verification system with a simple substitution-based logic.
[provers.metamath]
enabled = trueFeatures:
- ✓ File verification
- ✓ Error location
- ○ No tactic suggestions
Files: .ml
An interactive theorem prover for classical higher-order logic.
[provers.hollight]
enabled = trueFiles: .miz
A language for writing formal mathematical proofs.
[provers.mizar]
enabled = trueThese provers are on the roadmap but not yet supported.
| Prover | Files | Status |
|---|---|---|
| PVS | .pvs |
Planned |
| ACL2 | .lisp |
Planned |
| HOL4 | .sml |
Planned |
| Twelf | .elf |
Planned |
| Dedukti | .dk |
Planned |
[provers]
# Enable specific provers
enabled = ["coq", "lean4", "agda"]
# Coq configuration
[provers.coq]
timeout = 180
flags = ["-R", "src", "MyProject"]
# Lean 4 with Lake
[provers.lean4]
lake = true
mathlib = true
# Agda with safe mode
[provers.agda]
flags = ["--safe"][files]
# Only verify specific directories
include = [
"theories/**/*.v",
"proofs/**/*.lean",
"specs/**/*.agda"
]
# Exclude test fixtures
exclude = [
"test/fixtures/**",
"examples/broken/**"
]echidnabot detects provers by file extension. For ambiguous cases:
[files.overrides]
"src/smt/*.smt2" = "cvc5" # Use CVC5 instead of Z3To request support for a new prover:
- Open an issue at hyperpolymath/echidnabot
- Include:
- Prover name and website
- File extensions
- Verification command
- Error format (if known)
- Consider contributing to ECHIDNA Core
- Use
-Rand-Qflags for library paths _CoqProjectfiles are respected- Large developments may need increased timeout
- Lake projects: set
lake = true - For Mathlib: set
mathlib = true - Lake.toml/lakefile.lean must be valid
- Standard library import: use appropriate
--include-path - Cubical Agda: add
--cubicalto flags - Literate formats fully supported
- Use
(set-option :produce-proofs true)for proof output - Timeouts apply per-query, not per-file
- Incremental mode for large files