Summary
.containerization/Containerfile.full is documented as including all tier 1-4 provers but the built image only contains four: Z3, Agda, Lean 4, Metamath. Coq, CVC5, Idris2, Isabelle, Dafny, F*, and every tier 3-4 prover are absent. Users asking for prover=Coq etc. through /api/verify get 422: Failed to run coqc.
Reproduce
Build the full image and ask for any non-Z3/Agda/Lean/Metamath prover:
podman build -f .containerization/Containerfile.full -t echidna:full .
podman run --rm -p 8090:8090 echidna:full server --port 8090 --host 0.0.0.0
curl -X POST http://localhost:8090/api/verify \
-H "Content-Type: application/json" \
-d '{"prover":"Coq","content":"Theorem t : 0+0=0. Proof. reflexivity. Qed."}'
Response: {"error":"Verification error: Failed to run coqc"}
Root cause
The "Stage 4: Prover Installer" section of Containerfile.full installs only:
z3 (via apt)
ghc + cabal-install (as dependency builders for Agda)
Agda (via cabal)
Lean 4 (via elan)
metamath (built from source)
No coqc, cvc5, idris2, isabelle, dafny, fstar, hol_light, mizar, hol4, pvs, acl2, tlaps, vampire, eprover, etc. are installed. The ProverKind enum in src/rust/provers/ declares support for many of these, but calling them 500s at runtime.
Meanwhile the header comment reads:
# ECHIDNA Full Containerfile - Includes all Tier 1-4 provers
Expected
Either:
- Fix the container: add the missing provers. Coq (apt:
coq), CVC5 (apt or GitHub release), Idris2 (via pack), Isabelle (direct install), Dafny (.NET), F* (opam), etc.
- Fix the docs: rename to
Containerfile.standard or similar; update header comment to list exactly which provers are shipped.
Impact
Downstream deploys (nesy-solver playground, Phase E3) that expose prover as a user choice get runtime failures for anything but Z3/Agda/Lean/Metamath, with confusing error messages. Playground users submitting Coq see "Failed to run coqc" which looks like a misconfiguration rather than a missing dependency.
Related
Summary
.containerization/Containerfile.fullis documented as including all tier 1-4 provers but the built image only contains four: Z3, Agda, Lean 4, Metamath. Coq, CVC5, Idris2, Isabelle, Dafny, F*, and every tier 3-4 prover are absent. Users asking forprover=Coqetc. through/api/verifyget422: Failed to run coqc.Reproduce
Build the full image and ask for any non-Z3/Agda/Lean/Metamath prover:
Response:
{"error":"Verification error: Failed to run coqc"}Root cause
The "Stage 4: Prover Installer" section of
Containerfile.fullinstalls only:z3(via apt)ghc+cabal-install(as dependency builders for Agda)Agda(via cabal)Lean 4(via elan)metamath(built from source)No
coqc,cvc5,idris2,isabelle,dafny,fstar,hol_light,mizar,hol4,pvs,acl2,tlaps,vampire,eprover, etc. are installed. TheProverKindenum insrc/rust/provers/declares support for many of these, but calling them 500s at runtime.Meanwhile the header comment reads:
Expected
Either:
coq), CVC5 (apt or GitHub release), Idris2 (via pack), Isabelle (direct install), Dafny (.NET), F* (opam), etc.Containerfile.standardor similar; update header comment to list exactly which provers are shipped.Impact
Downstream deploys (nesy-solver playground, Phase E3) that expose
proveras a user choice get runtime failures for anything but Z3/Agda/Lean/Metamath, with confusing error messages. Playground users submitting Coq see "Failed to run coqc" which looks like a misconfiguration rather than a missing dependency.Related
/api/verifyverdict semantics)