Axe-lifters
Axe tools to lift code into logic.
The Axe toolkit provides several tools for lifting code into logic. Currently, Axe can lift JVM bytecode, x86 binaries, RISC-V binaries,and rank-1 constraint systems.
For lifting JVM bytecode, four lifters are available. For code that is unrollable, use unroll-java-code (or try the more experimental unroll-java-code2, for compositional lifting). When loops cannot be unrolled and so must be lifted into recursive functions, use lift-java-code (or try the more experimental lift-java-code2, for compositional lifting).
For lifting x86 binaries, two lifters are available. For code that is unrollable, use x::def-unrolled (still experimental). When loops cannot be unrolled and so must be lifted into recursive functions, try x::lift-subroutine (very experimental).
For lifting rank-1 constraint systems, use r1cs::lift-r1cs or one of its variants.
Subtopics
- Def-unrolled
- A tool to lift x86 binary code into logic, unrolling loops as needed.
- Unroll-java-code
- A tool to lift Java/JVM code into logic, unrolling loops as needed.
- Def-unrolled
- A tool to lift RISC-V binary code into logic, unrolling loops as needed.
- Unroll-java-code2
- A variant of unroll-java-code for compositional lifting.
- Lift-r1cs
- A tool to lift an R1CS into logic
- Prove-functions-equivalent
- A tool to prove two x86 binary functions equivalent.