wborgeaud
b4ebbe5a31
Start ecrecover
2022-07-13 19:48:17 +02:00
wborgeaud
7a6c53e921
Working secp mul
2022-07-13 19:25:28 +02:00
wborgeaud
a831fab8f8
Working secp add
2022-07-13 19:22:32 +02:00
wborgeaud
a68d8ff586
Avoid duplicate macros
2022-07-13 18:54:43 +02:00
Daniel Lubarov
c214c53c93
Merge pull request #604 from mir-protocol/get_subgroup_evals
...
Use FFTs to get subgroup evaluations in `check_constraints`
2022-07-13 09:52:14 -07:00
wborgeaud
c8c3cc9a8f
Files shuffling
2022-07-13 18:48:25 +02:00
wborgeaud
b1bc48197c
Fix jumpdest check
2022-07-13 10:51:49 +02:00
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
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