mirror of
https://github.com/powdr-labs/powdr.git
synced 2026-04-20 03:03:25 -04:00
Another step towards #1572 Builds on #1574 I modified witness generation as follows: - Each machine keeps track of its current size; whenever a fixed column value is read, it has to pass the requested size as well. - If fixed columns are available in several sizes, witness generation starts out by using the largest size, as before - When finalizing a block machine, it "downsizes" the machine to the smallest possible value Doing this for other machine types (e.g. VM, memory, etc) should be done in another PR. In the `vm_to_block_dynamic_length.pil` example, witness generation now pics the minimum size instead of the maximum size for `main_arith` ``` $ cargo run pil test_data/pil/vm_to_block_dynamic_length.pil -o output -f --field bn254 --prove-with halo2-mock-composite ... == Proving machine: main (size 256) ==> Machine proof of 256 rows (0 bytes) computed in 60.174583ms size: 256 Machine: main__rom == Proving machine: main__rom (size 256) ==> Machine proof of 256 rows (0 bytes) computed in 33.310292ms size: 32 Machine: main_arith == Proving machine: main_arith (size 32) ==> Machine proof of 32 rows (0 bytes) computed in 2.766541ms ```