anoma / vamp-ir

Vamp-IR is a proof-system-agnostic language for writing arithmetic circuits
https://anoma.github.io/VampIR-Book/
Apache License 2.0
156 stars 44 forks source link

Allow output of intermediate forms #58

Open lopeetall opened 1 year ago

lopeetall commented 1 year ago

Replacing #19

Give vamp-ir users the ability to compile to intermediate forms for inspection or analysis without needing to reference a backend or trusted setup. An example use case for this is loading the intermediate form into a SMT solver for analysis.

A good first candidate is the three-address code representation (after the compiler removes dead definitions and trivial constraints).

Once we include beefier optimizations that transform the 3AC format into more specific constraint formats we can provide the option to produce these as well.