mirror of
https://github.com/powdr-labs/powdr.git
synced 2026-04-20 03:03:25 -04:00
This PR adds witness generation support for copy constraints: Whenever a cell value is determined, this value is copied to all cells in its equivalence class. This allows us to do witgen for arbitrary Plonkish circuits (which would be detected as block machines) *as long as the circuit is topologically sorted* (because otherwise, our row-by-row solving strategy does not work. Copy constraints are currently only supported in the language as `connect` identities, as opposed to lists of cell pairs that belong to the same equivalence class. Connecting this to the PIL input should be part of another PR.