Daniel Lubarov
678d04e69a
fix
2022-07-12 17:52:53 -07:00
Daniel Lubarov
d1afe8129c
More realistic padding rows in memory
...
This adds padding rows which satisfy the ordering checks. To ensure that they also satisfy the value consistency checks, I just copied the address and value from the last operation.
I think this method of padding feels more natural, though it is a bit more code since we need to calculate the max range check in a different way. But on the plus side, the constraints are a bit smaller and simpler.
Also added a few constraints that I think we need for soundness:
- Each `is_channel` flag is bool.
- Sum of `is_channel` flags is bool.
- Dummy operations must be reads (otherwise the prover could put writes in the memory table which aren't in the CPU table).
2022-07-12 17:46:19 -07:00
Daniel Lubarov
f053932791
Merge pull request #603 from mir-protocol/memory_simplifications
...
Simplify memory table
2022-07-12 14:59:21 -07:00
Daniel Lubarov
1331f992a6
fix
2022-07-12 14:55:34 -07:00
Daniel Lubarov
25d429af7a
fix
2022-07-12 14:54:36 -07:00
Daniel Lubarov
934f1aeb7e
Simplify memory table
...
By no longer storing unsorted operations; they are effectively stored in the CPU table already.
I ran into some issues with sorting, since the existing sort method didn't include `is_channel` columns. Rather than update the existing method, I removed it and added a sort on the `MemoryOp`s, which I think seems cleaner.
2022-07-12 14:53:34 -07:00
Daniel Lubarov
2507985da7
Merge pull request #591 from mir-protocol/evm_generation
...
Begin work on witness generation and kernel bootstrapping
2022-07-12 14:34:18 -07:00
Daniel Lubarov
10c31b7036
feedback
2022-07-12 14:33:10 -07:00
Daniel Lubarov
a3deefd891
fix
2022-07-11 17:37:17 -07:00
Daniel Lubarov
ef3addea2c
Merge branch 'main' into evm_generation
2022-07-11 17:24:37 -07:00
wborgeaud
61f98f3695
Merge pull request #602 from mir-protocol/better_ctl_error
...
Better CTL errors
2022-07-11 20:07:28 +02:00
wborgeaud
d35d3e2095
PR feedback + underflow check
2022-07-11 19:53:00 +02:00
Nicholas Ward
29ef56eb69
Merge pull request #599 from mir-protocol/memory_ctl
...
Separate timestamps per memory operation
2022-07-11 10:45:28 -07:00
Nicholas Ward
abc729f1d6
TODO
2022-07-11 10:44:48 -07:00
Nicholas Ward
bdae9bc33b
update
2022-07-11 10:44:48 -07:00
Nicholas Ward
b935605f69
fmt
2022-07-11 10:44:48 -07:00
Nicholas Ward
467f532024
addressed comments
2022-07-11 10:44:48 -07:00
Nicholas Ward
49c208ec9b
addressed comments
2022-07-11 10:44:48 -07:00
Nicholas Ward
888cfe4ca4
fix
2022-07-11 10:44:48 -07:00
Nicholas Ward
9ad2958f73
fix
2022-07-11 10:44:48 -07:00
Nicholas Ward
afc5a4dc4f
fixes
2022-07-11 10:44:48 -07:00
Nicholas Ward
6655ee68e4
restored timestamp column to CTL
2022-07-11 10:44:48 -07:00
Nicholas Ward
6b2b745291
removed debug prints
2022-07-11 10:44:48 -07:00
Nicholas Ward
3a6f2ef25e
clippy
2022-07-11 10:44:48 -07:00
Nicholas Ward
51498eb748
fmt
2022-07-11 10:44:48 -07:00
Nicholas Ward
58c2e7214a
another padding-row constraint fix
2022-07-11 10:44:48 -07:00
Nicholas Ward
77a7ace39c
updates to recursive constraints
2022-07-11 10:44:48 -07:00
Nicholas Ward
f3ef6c9bf3
fix: ignore padding rows in constraints
2022-07-11 10:44:48 -07:00
Nicholas Ward
83963c3a8f
permutation pairs
2022-07-11 10:44:48 -07:00
Nicholas Ward
b467a13d91
fix
2022-07-11 10:44:48 -07:00
Nicholas Ward
c3e7652763
updates
2022-07-11 10:44:48 -07:00
Nicholas Ward
181a132335
fixes
2022-07-11 10:44:48 -07:00
Nicholas Ward
a98f267ff0
initial change
2022-07-11 10:44:48 -07:00
Daniel Lubarov
8a2a035411
Merge branch 'main' into evm_generation
2022-07-11 09:58:38 -07:00
wborgeaud
5e27e7264d
unwrap_or_else -> unwrap_or
2022-07-11 14:56:27 +02:00
wborgeaud
50ebf39d37
Comment
2022-07-11 14:24:12 +02:00
wborgeaud
3ff67e38dc
Minor
2022-07-11 14:16:58 +02:00
wborgeaud
36c8aa34c1
Comments
2022-07-11 14:13:07 +02:00
wborgeaud
91fcf26289
Better CTL error
2022-07-11 11:07:16 +02:00
Daniel Lubarov
9902e8b713
Merge pull request #601 from therealyingtong/arithmetic_u32-canonicity
...
`U32ArithmeticGate`: constrain canonicity of output.
2022-07-10 20:25:35 -07:00
therealyingtong
5bf545c5b5
arithmetic_u32: Introduce canonicity check.
2022-07-09 09:35:52 -04:00
therealyingtong
2c48b117ed
arithmetic_u32: Introduce Self::routed_wires_per_op() method.
...
This removes the use of hard-coded 5 everywhere.
2022-07-09 09:35:52 -04:00
therealyingtong
fbffd60212
arithmetic_u32::tests: Add test_canonicity check.
...
This test should fail because its output is the non-canonical value
p = (u32::MAX, 1). However, since the U32ArithmeticGate currently
permits non-canonical outputs, this test passes.
2022-07-09 09:35:52 -04:00
therealyingtong
508d478872
arithmetic_u32::tests: Extract get_wires() from test_gate_constraint().
...
Use F::from_noncanonical_u64 for addend, so that we can reuse get_wires
in our canonicity check test.
2022-07-09 09:35:19 -04:00
Daniel Lubarov
58889e7649
Allow constants to be passed from Rust into our assembly ( #598 )
...
Roughly like environment variables. So we don't have to declare things like segment IDs twice.
2022-07-08 08:56:46 -07:00
wborgeaud
457ac11083
Merge pull request #596 from mir-protocol/evm_interpreter
...
EVM interpreter
2022-07-08 03:21:54 -05:00
wborgeaud
12ca084620
PR feedback
2022-07-08 09:58:52 +02:00
wborgeaud
bd5c9aa889
Merge pull request #597 from mir-protocol/ec_use_macro_params
...
Use macros with parameters in EC ops kernel functions
2022-07-07 13:40:23 -05:00
wborgeaud
a280e1c60a
Merge branch 'ec_use_macro_params' into evm_interpreter
2022-07-07 19:28:22 +02:00
wborgeaud
a3c2e9a295
More macros
2022-07-07 19:28:11 +02:00