quantstamp / halo2-analyzer

SMT 2023 Submission; license pending
52 stars 10 forks source link

ZKR-2890-Refactor-Analyzer-From-Assignment #29

Closed FatemehHeidari closed 9 months ago

FatemehHeidari commented 10 months ago

This PR updates analyzer implementation with a significant change in analyzer design. In this design, we have an Analyzable struct which implements Assihnmenttrait. This allows us to configure and synthesize a circuit with our desired implementation of Assignment. In this custom implementation, we will keep the functionality which impacts our desired data structures, including:

These are the fields that we need for our analyses or are necessary for functions of Assignment that impact our desired fields. The benefit of using this trait compared to other design alternatives like the custom implementation of Layouter or using MockProver is that this design does not depend on any runtime information, like running MockProver to extract Fixed columns in the First version of our analyzer.

In this PR we: