Skip to content

Commit b5562ba

Browse files
hyperpolymathclaude
andcommitted
feat(batch_driver): add F* runner — 16 active provers
run_fstar cd's into the file's directory, invokes fstar (symlinked to fstar.exe v2026.03.24), parses 'All verification conditions discharged successfully' from output. New target: correctness/fstar (proofs/fstar/*.fst). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 3d5fe06 commit b5562ba

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

bots/echidnabot/scripts/batch_driver.sh

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ TARGETS=(
5353
"echidna|correctness|cvc5|proofs/smt-lib-mined|smt2"
5454
"echidna|model-check|kissat|proofs/dimacs|cnf"
5555
"echidna|safety|eprover|proofs/tptp|p"
56+
"echidna|correctness|fstar|proofs/fstar|fst"
5657
"echidna|equiv|coq|proofs/coq|v"
5758
"echidna|equiv|lean|proofs/lean|lean"
5859
"echidna|equiv|agda|proofs/agda|agda"
@@ -267,6 +268,26 @@ run_cadical() {
267268
esac
268269
}
269270

271+
run_fstar() {
272+
local file="$1"
273+
local t0 t1 output rc
274+
t0=$(date +%s%3N)
275+
# F* needs its lib path via env; binary is called fstar (symlink to fstar.exe).
276+
# Works when cd'd to file's directory.
277+
output=$( cd "$(dirname "$file")" && timeout "${TIMEOUT_SEC}s" fstar "$(basename "$file")" 2>&1 )
278+
rc=$?
279+
t1=$(date +%s%3N)
280+
echo $((t1 - t0))
281+
[ $rc -eq 124 ] && { echo timeout; return; }
282+
if echo "$output" | grep -q "All verification conditions discharged successfully"; then
283+
echo success
284+
elif echo "$output" | grep -qE "Error|error was reported"; then
285+
echo failure
286+
else
287+
echo unknown
288+
fi
289+
}
290+
270291
run_why3() {
271292
local file="$1"
272293
local t0 t1 output rc
@@ -407,6 +428,7 @@ run_prover() {
407428
cadical) run_cadical "$file" ;;
408429
kissat) run_kissat "$file" ;;
409430
eprover) run_eprover "$file" ;;
431+
fstar) run_fstar "$file" ;;
410432
*) echo 0; echo unknown ;;
411433
esac
412434
}

0 commit comments

Comments
 (0)