Commit ac5e454
Eliminate Python dependency from CBMC pipeline (#576)
The CBMC backend relied on a Python post-processing step
(process_json.py) to merge a 4000-line defaults.json of built-in symbols
into the Lean-generated symbol table before passing it to symtab2gb.
This made the pipeline harder to maintain, required Python as a runtime
dependency, and kept critical symbol definitions outside of Lean where
they could not benefit from type checking.
*Description of changes:*
Generate all 38 CBMC built-in symbols directly in Lean
(DefaultSymbols.lean), parameterized by ArchConfig and module name, and
emit the symbol table in the {"symbolTable": ...} wrapper that symtab2gb
expects. This turns the pipeline into a simple two-step flow (strata →
symtab2gb) with no Python intermediary.
Remove the now-unused Python scripts (process_json.py, defaults.py),
defaults.json, and legacy shell wrappers (run_strata_cbmc.sh,
compare_cbmc_json.sh). Update all pipeline scripts and documentation to
reflect the simplified flow.
By submitting this pull request, I confirm that you can use, modify,
copy, and redistribute this contribution, under the terms of your
choice.
---------
Co-authored-by: Kiro <kiro-agent@users.noreply.github.com>
Co-authored-by: Shilpi Goel <shigoel@gmail.com>1 parent aa0e403 commit ac5e454
16 files changed
Lines changed: 629 additions & 4338 deletions
File tree
- .github/workflows
- StrataTest
- Backends/CBMC
- SimpleAdd
- contracts
- Languages
- Laurel
- Python
- Strata/Backends/CBMC
- GOTO
- resources
- docs
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
98 | | - | |
99 | | - | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
100 | 104 | | |
101 | 105 | | |
102 | 106 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| |||
261 | 262 | | |
262 | 263 | | |
263 | 264 | | |
264 | | - | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
265 | 268 | | |
266 | 269 | | |
267 | 270 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
400 | 400 | | |
401 | 401 | | |
402 | 402 | | |
403 | | - | |
| 403 | + | |
404 | 404 | | |
405 | 405 | | |
406 | 406 | | |
| |||
427 | 427 | | |
428 | 428 | | |
429 | 429 | | |
430 | | - | |
| 430 | + | |
| 431 | + | |
431 | 432 | | |
432 | 433 | | |
433 | 434 | | |
| |||
493 | 494 | | |
494 | 495 | | |
495 | 496 | | |
496 | | - | |
| 497 | + | |
497 | 498 | | |
498 | 499 | | |
499 | 500 | | |
| |||
0 commit comments