1880 Commits

Author SHA1 Message Date
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
7221c96440 Use FFTs to get subgroup evaluations in check_constraints
Instead of quadratic evaluation. Should speed up `test_all_stark`.
2022-07-12 15:29:27 -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
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
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
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
12ca084620 PR feedback 2022-07-08 09:58:52 +02: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
wborgeaud
122188c817 Merge branch 'ec_use_macro_params' into evm_interpreter 2022-07-07 19:17:31 +02:00
wborgeaud
4316be96cd Test exp kernel function 2022-07-07 19:15:39 +02:00
wborgeaud
7bf5118f69 Test exp kernel function 2022-07-07 18:46:20 +02:00
wborgeaud
f8987b7e80 Minor 2022-07-07 18:27:15 +02:00
wborgeaud
9c4947e0f0 EC ops test 2022-07-07 18:06:24 +02:00
Daniel Lubarov
beb8a90773
Macros with arguments (#595)
* Macros with arguments

See `basic_macros.rs` for an example.

* rename
2022-07-07 08:59:53 -07:00
wborgeaud
3ec2d307e5 EVM interpreter 2022-07-07 16:53:06 +02:00
wborgeaud
434615a03c PR feedback + comments 2022-07-07 08:26:57 +02:00
wborgeaud
e2b1e51280 Minor 2022-07-06 09:40:11 +02:00