@@ -111,6 +111,15 @@ fn kind_label(kind: ProverKind) -> &'static str {
111111 ProverKind :: Dafny => "Dafny" ,
112112 ProverKind :: FStar => "F*" ,
113113 ProverKind :: TLAPS => "TLAPS" ,
114+ ProverKind :: Tamarin => "Tamarin" ,
115+ ProverKind :: ProVerif => "ProVerif" ,
116+ ProverKind :: Metamath => "Metamath" ,
117+ ProverKind :: Twelf => "Twelf" ,
118+ ProverKind :: ORTools => "OR-Tools" ,
119+ ProverKind :: HOL4 => "HOL4" ,
120+ ProverKind :: ACL2 => "ACL2" ,
121+ ProverKind :: SCIP => "SCIP" ,
122+ ProverKind :: Imandra => "Imandra" ,
114123 _ => "<other>" ,
115124 }
116125}
@@ -215,3 +224,65 @@ async fn live_tlaps_version() {
215224 // TLA+ Proof System's prover is `tlapm` (per provers/mod.rs).
216225 assert_version_reachable ( ProverKind :: TLAPS , "tlapm" ) . await ;
217226}
227+
228+ // ==========================================================================
229+ // Tier 3 — weekly. Upstream-tarball or heavier-build provers. Most of
230+ // these SKIP locally and in PR CI; the weekly tier3 matrix in
231+ // live-provers.yml provisions each binary in its own job before running
232+ // `cargo test ... <backend>`, so only the matching test runs per job.
233+ // ==========================================================================
234+
235+ #[ tokio:: test]
236+ async fn live_tamarin_version ( ) {
237+ assert_version_reachable ( ProverKind :: Tamarin , "tamarin-prover" ) . await ;
238+ }
239+
240+ #[ tokio:: test]
241+ async fn live_proverif_version ( ) {
242+ assert_version_reachable ( ProverKind :: ProVerif , "proverif" ) . await ;
243+ }
244+
245+ #[ tokio:: test]
246+ async fn live_metamath_version ( ) {
247+ assert_version_reachable ( ProverKind :: Metamath , "metamath" ) . await ;
248+ }
249+
250+ #[ tokio:: test]
251+ async fn live_twelf_version ( ) {
252+ // Twelf's CLI entry is `twelf-server` per provers/mod.rs.
253+ assert_version_reachable ( ProverKind :: Twelf , "twelf-server" ) . await ;
254+ }
255+
256+ #[ tokio:: test]
257+ async fn live_ortools_version ( ) {
258+ // Echidna's ORTools backend invokes `ortools_solve` (wrapper around the
259+ // OR-Tools C++ solve CLI). Provisioned via upstream tarball.
260+ assert_version_reachable ( ProverKind :: ORTools , "ortools_solve" ) . await ;
261+ }
262+
263+ #[ tokio:: test]
264+ async fn live_hol4_version ( ) {
265+ // HOL4 requires Poly/ML + a tree build; provisioning is deferred to
266+ // Containerfile. Test SKIPs on runners without `hol` on PATH.
267+ assert_version_reachable ( ProverKind :: HOL4 , "hol" ) . await ;
268+ }
269+
270+ #[ tokio:: test]
271+ async fn live_acl2_version ( ) {
272+ // ACL2 requires a Common Lisp image; provisioning deferred to Containerfile.
273+ assert_version_reachable ( ProverKind :: ACL2 , "acl2" ) . await ;
274+ }
275+
276+ #[ tokio:: test]
277+ async fn live_scip_version ( ) {
278+ // SCIP requires a cmake build of SCIP Optimization Suite; deferred to
279+ // Containerfile. Test SKIPs until provisioned.
280+ assert_version_reachable ( ProverKind :: SCIP , "scip" ) . await ;
281+ }
282+
283+ #[ tokio:: test]
284+ async fn live_imandra_version ( ) {
285+ // Imandra is proprietary; handled via vendor-supplied container where a
286+ // licence is available. Test SKIPs on public CI.
287+ assert_version_reachable ( ProverKind :: Imandra , "imandra" ) . await ;
288+ }
0 commit comments