Refinement Modeling and Verification of RISC-V Assembly Using Knuckledragger
Summary
Philip Zucker describes a workflow for refinement modeling and verification of RISC-V assembly using Knuckledragger. The post covers building a Python-based symbolic executor, translating low-level pcode to a high-level model, and proving correctness via bisimulation and invariants, demonstrated with simple assembly examples like a memcopy and a basic loop. It also discusses performance considerations, debugging challenges, and potential porting to Lean for formalization.