Skip to content

Commit cb2474b

Browse files
hyperpolymathclaude
andcommitted
feat(trust+executor): Tier-3 prover coverage (idris2/fstar/ATPs/protocol-checkers)
Extends the slug→string match arms added by Task E with Tier-3 systems that ECHIDNA already routes to but echidnabot was treating as unknown. src/executor/container.rs — prover_extension(): idris2/idris .idr fstar .fst dafny .dfy why3 .mlw vampire .p eprover .p spass .p tamarin .spthy proverif .pv dreal .smt2 alt-ergo .smt2 abc .aig src/trust/confidence.rs — is_small_kernel(): idris2/fstar = true (dependent-type / type-theory kernels) vampire/eprover/spass = false (large first-order ATPs) dafny/why3/alt-ergo = false (VC-based tools) tamarin/proverif = false (protocol model checkers) dreal/abc = false (numerical / hardware checkers) Tests extended in both files to cover the new entries. Closes the Tier-3 portion of the abandoned PR #1; the compile-fix portion of that PR was independently superseded by 42e7bde with a cleaner approach. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 0ce1600 commit cb2474b

2 files changed

Lines changed: 45 additions & 0 deletions

File tree

src/executor/container.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -640,6 +640,16 @@ fn prover_extension(prover: &ProverKind) -> String {
640640
"pvs" => ".pvs".to_string(),
641641
"acl2" => ".lisp".to_string(),
642642
"hol4" => ".sml".to_string(),
643+
// Tier-3 dependent-type / VC / ATP / protocol-checker systems
644+
"idris2" | "idris" => ".idr".to_string(),
645+
"fstar" => ".fst".to_string(),
646+
"dafny" => ".dfy".to_string(),
647+
"why3" => ".mlw".to_string(),
648+
"vampire" | "eprover" | "spass" => ".p".to_string(),
649+
"tamarin" => ".spthy".to_string(),
650+
"proverif" => ".pv".to_string(),
651+
"dreal" | "alt-ergo" => ".smt2".to_string(),
652+
"abc" => ".aig".to_string(),
643653
_ => ".txt".to_string(), // Default for unknown provers
644654
}
645655
}
@@ -678,6 +688,18 @@ mod tests {
678688
assert_eq!(prover_extension(&ProverKind::new("metamath")), ".mm");
679689
assert_eq!(prover_extension(&ProverKind::new("z3")), ".smt2");
680690
assert_eq!(prover_extension(&ProverKind::new("agda")), ".agda");
691+
692+
// Tier-3
693+
assert_eq!(prover_extension(&ProverKind::new("idris2")), ".idr");
694+
assert_eq!(prover_extension(&ProverKind::new("fstar")), ".fst");
695+
assert_eq!(prover_extension(&ProverKind::new("dafny")), ".dfy");
696+
assert_eq!(prover_extension(&ProverKind::new("why3")), ".mlw");
697+
assert_eq!(prover_extension(&ProverKind::new("vampire")), ".p");
698+
assert_eq!(prover_extension(&ProverKind::new("eprover")), ".p");
699+
assert_eq!(prover_extension(&ProverKind::new("tamarin")), ".spthy");
700+
assert_eq!(prover_extension(&ProverKind::new("proverif")), ".pv");
701+
assert_eq!(prover_extension(&ProverKind::new("dreal")), ".smt2");
702+
assert_eq!(prover_extension(&ProverKind::new("abc")), ".aig");
681703
}
682704

683705
#[test]

src/trust/confidence.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,16 @@ pub fn is_small_kernel(prover: &ProverKind) -> bool {
204204
"acl2" => false, // Built on Common Lisp
205205
"hol4" => true, // Small ML kernel
206206

207+
// Tier-3 small-kernel systems
208+
"idris2" | "idris" => true, // Dependent-type kernel
209+
"fstar" => true, // F* type-theory kernel
210+
211+
// Tier-3 large-TCB systems
212+
"vampire" | "eprover" | "spass" => false, // Large first-order ATPs
213+
"dafny" | "why3" | "alt-ergo" => false, // VC-based tools
214+
"tamarin" | "proverif" => false, // Protocol model checkers
215+
"dreal" | "abc" => false, // Numerical / hardware checkers
216+
207217
// Unknown provers: assume false (conservative estimate)
208218
_ => false,
209219
}
@@ -251,6 +261,19 @@ mod tests {
251261
assert!(!is_small_kernel(&ProverKind::new("mizar")));
252262
assert!(!is_small_kernel(&ProverKind::new("pvs")));
253263
assert!(!is_small_kernel(&ProverKind::new("acl2")));
264+
265+
// Tier-3 small-kernel
266+
assert!(is_small_kernel(&ProverKind::new("idris2")));
267+
assert!(is_small_kernel(&ProverKind::new("fstar")));
268+
269+
// Tier-3 large-TCB
270+
assert!(!is_small_kernel(&ProverKind::new("vampire")));
271+
assert!(!is_small_kernel(&ProverKind::new("eprover")));
272+
assert!(!is_small_kernel(&ProverKind::new("dafny")));
273+
assert!(!is_small_kernel(&ProverKind::new("why3")));
274+
assert!(!is_small_kernel(&ProverKind::new("tamarin")));
275+
assert!(!is_small_kernel(&ProverKind::new("proverif")));
276+
assert!(!is_small_kernel(&ProverKind::new("dreal")));
254277
}
255278

256279
#[test]

0 commit comments

Comments
 (0)