@@ -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]
0 commit comments