A tool to lift an R1CS into logic
(lift-r1cs name-of-defconst vars constraints prime &key :package ; default :auto :rules ; default :auto :extra-rules ; default nil :remove-rules ; default nil :monitor ; default nil :memoizep ; default nil :count-hits ; default nil :print ; default nil )
The name of the defconst (a symbol) that will be created to hold the DAG. This name should start and end with
* .
A form that evaluates to the variables of the R1CS.
A form that evaluates to the constraints of the R1CS.
A form that evaluates to the prime of the R1CS.
The package to use for the variables of the DAG (a string), or
:auto . Ifpackage is:auto , the variables in the DAG are the same as the variables in the R1CS, except that keywords are changed to the ACL2 package (since keywords are not legal variable names in ACL2).
Either :auto, or a form that evaluates to a list of symbols. If the latter, the given rules replace the default rules used for lifting.
Rules to be added to the default rule set used for lifting. A form that evaluates to a list of symbols. May be non-
nil only whenrules is:auto .
Rules to be removed from the default rule set used for lifting. A form that evaluates to a list of symbols. May be non-
nil only whenrules is:auto .
Rules to monitor during rewriting. A form that evaluates to a list of symbols
Whether to perform memoization during rewriting. A boolean. This may actually slow down the lifting process.
Whether to count rule hits during rewriting (may cause rewriting to be somewhat slower). A boolean.
Axe print argument
Lifts an R1CS into a logical term, represented as an Axe DAG. Takes an R1CS, given as a list of variables, a list of constraints, and a prime. Creates a constant DAG whose name is the