Skip to content

Commit d9a6bae

Browse files
hyperpolymathclaude
andcommitted
feat(provers): add GPUVerify + Faial GPU verification backends
GPUVerify: CUDA/OpenCL → Boogie → Z3 kernel verifier (data races, barrier divergence). Faial: lightweight GPU data race detector via access pattern analysis. ProverKind +2 variants (GPUVerify, Faial), kind_to_u8/kind_from_u8 updated (113, 114), default_executable wired, all exhaustive match arms updated, detect_from_file .cu/.cl entries, ProverKindInjectivity.idr updated (107 variants, maxDiscriminant=106). 14 GPUVerify tests + 13 Faial tests, all green. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 3078c22 commit d9a6bae

5 files changed

Lines changed: 1002 additions & 9 deletions

File tree

src/rust/ffi/mod.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,9 @@ pub fn kind_from_u8(kind: u8) -> Option<ProverKind> {
505505
110 => Some(ProverKind::Rocq),
506506
111 => Some(ProverKind::UppaalStratego),
507507
112 => Some(ProverKind::MizAR),
508+
// 2026-04-26 batch: GPU kernel verification backends.
509+
113 => Some(ProverKind::GPUVerify),
510+
114 => Some(ProverKind::Faial),
508511
_ => None,
509512
}
510513
}
@@ -1227,6 +1230,9 @@ pub fn kind_to_u8(kind: ProverKind) -> u8 {
12271230
ProverKind::Rocq => 110,
12281231
ProverKind::UppaalStratego => 111,
12291232
ProverKind::MizAR => 112,
1233+
// 2026-04-26 batch: GPU kernel verification backends.
1234+
ProverKind::GPUVerify => 113,
1235+
ProverKind::Faial => 114,
12301236
}
12311237
}
12321238

@@ -1411,11 +1417,9 @@ mod tests {
14111417

14121418
#[test]
14131419
fn test_kind_from_u8_out_of_range() {
1414-
// 0–112 are valid; 113+ are out of range.
1415-
// (Boundary moved 104→112 in commit c8c0acf which added 8 new ProverKind
1416-
// variants: CubicalAgda, Zipperposition, Prover9, OpenSMT, SmtRat,
1417-
// Rocq, UppaalStratego, MizAR.)
1418-
assert!(kind_from_u8(113).is_none());
1420+
// 0–114 are valid; 115+ are out of range.
1421+
// (Boundary moved 112→114 on 2026-04-26 adding GPUVerify=113, Faial=114.)
1422+
assert!(kind_from_u8(115).is_none());
14191423
assert!(kind_from_u8(128).is_none());
14201424
assert!(kind_from_u8(255).is_none());
14211425
}

0 commit comments

Comments
 (0)