fold/bench/gold/synth-type4.json
trvon 3f1234f7bb
fold: bounded symbolic SAST for C++
Clang LibTooling + Z3 BV-64 encoding.
11 detectors: clone, equiv, class-dup, dead, null-deref,
div-by-zero, int-overflow, oob, int-truncation,
sign-conversion, taint-track.

Interfaces: CLI, MCP (JSON-RPC 2.0), LSP.
Output: SARIF 2.1.0, JSON, Markdown.
2026-05-14 23:14:54 -04:00

26 lines
1.1 KiB
JSON

{
"name": "synth-type4",
"description": "Synthetic Type-4 benchmark for the fold equiv detector. Five algorithm clusters with 2-3 implementations each, all bounded under 64-bit signed arithmetic where the prover can model them. One distractor file must not pair with any cluster. Use --processes 2+ so cross-TU equiv runs in the parent.",
"expected": [
{"kind": "equiv",
"files": ["abs_v1_branch.cpp", "abs_v2_ternary.cpp"],
"id": "synth-abs",
"description": "abs(x) via if/else vs ternary"},
{"kind": "equiv",
"files": ["double_v1_add.cpp", "double_v2_mul.cpp"],
"id": "synth-double",
"description": "x+x vs x*2"},
{"kind": "equiv",
"files": ["square_v1_mul.cpp", "square_v2_named.cpp"],
"id": "synth-square",
"description": "x*x with vs without a named temp"},
{"kind": "equiv",
"files": ["sum_to_n_v1_formula.cpp", "sum_to_n_v2_factor.cpp"],
"id": "synth-sum-to-n",
"description": "n*(n+1)/2 vs (n*n+n)/2"},
{"kind": "equiv",
"files": ["max_v1_branch.cpp", "max_v2_ternary.cpp"],
"id": "synth-max-of-two",
"description": "max(a,b) via if/else vs ternary"}
]
}