149 Commits

Author SHA1 Message Date
Hamy Ratoanina
42a821dfde
Add row index to constraint failure message (#1598) 2024-06-12 06:58:41 +09:00
nuno
42e048f45d
Allow multiple extra_looking_sums for the same looked table (#1591) 2024-06-05 03:10:46 +09:00
Matthias Görgens
8030ea43ff
Fix CTL generation of last row (#1585)
Not all `correct` cross table lookups use padding for the last row.
2024-06-01 22:15:53 +09:00
nuno
cfccc1b8b6
change set_stark_proof_target's witness to WitnessWrite (#1592) 2024-06-01 22:15:26 +09:00
Daniel-Aaron-Bloom
15836d9d8c
doc+fix: clippy::doc-lazy-continuation (#1594) 2024-05-29 07:20:44 +09:00
Matthias Görgens
246c4a6fcf
Fix verify_cross_table_lookups with no ctl_extra_looking_sums (#1584)
This used to fail with an out of bounds error when `None` was passed for
`ctl_extra_looking_sums`.
2024-04-27 00:35:02 +09:00
Matthias Görgens
ca362ee3d0
Remove restriction to binary-only multiplicities (#1577) 2024-04-27 00:32:41 +09:00
yanziseeker
56e1b98d32
Update unconstrained_stark.rs (#1578) 2024-04-22 22:54:03 +09:00
Matthias Görgens
72c1c90748
Remove obsolete function ceil_div_usize (#1574) 2024-04-19 22:00:03 +09:00
Matthias Goergens
0731fec251 Simplify types: remove option from CTL filters
CTL filters can already express perfectly well the behaviour that we
gave for `None`.  No need to complicated anything.

Plus some random lint fixes that clippy demanded..
2024-04-15 17:14:54 +08:00
Bob Niu
3e89c7c24c refactor code 2024-03-22 16:22:05 +08:00
Alonso González
4f8e631550
Prove Starks without constraints (#1552)
* Enable starks without constraints

* Clippy

* Add test stark without constraints

* Missing file

* Missing changes in the recursive side

* Fix bug with recursion

* Missing import

* Clippy

* Apply suggestions from code review

Co-authored-by: Robin Salen <30937548+Nashtare@users.noreply.github.com>

* Address reviews

* Fix TODO

* Apply suggestions from code review

Co-authored-by: Linda Guiga <101227802+LindaGuiga@users.noreply.github.com>

* More reviews

* Fix bug in eval_helper_columns

* Apply suggestions from code review

Co-authored-by: Robin Salen <30937548+Nashtare@users.noreply.github.com>

* Address reviews

* Allow <= blowup_factor + 1 constraints + reviews

* Add unconstrined Stark

* Missing file

* Remove asserts

---------

Co-authored-by: Robin Salen <30937548+Nashtare@users.noreply.github.com>
Co-authored-by: Linda Guiga <101227802+LindaGuiga@users.noreply.github.com>
2024-03-15 11:43:45 +00:00
Robin Salen
2a2becc415
Fix CTLs with exactly two looking tables (#1555) 2024-03-14 23:30:18 +09:00
David
16746f1ed7
chore: remove conditional compilation for debug_utils (#1540)
* chore: remove conditional compilation for debug_utils

* chore: update CHANGELOG
2024-02-23 09:39:10 -05:00
Ford
da85f1be36
typo (#1533) 2024-02-18 15:25:16 +00:00
Robin Salen
3ec1bfddb3
Update starky and leverage it as dependency for plonky2_evm (#1503)
* Update prover logic

* Add helper method for CTL data

* Some cleanup

* Update some methods

* Fix

* Some more fixes

* More tweaks

* Final

* Leverage starky crate

* Additional tweaks

* Cleanup

* More cleanup

* Fix

* Cleanup imports

* Fix

* Final tweaks

* Cleanup and hide behind debug_assertions attribute

* Clippy

* Fix no-std

* Make wasm compatible

* Doc and remove todo

* API cleanup and remove TODO

* Add Debug impls

* Add documentation for public items

* Feature-gate alloc imports

* Import method from starky instead

* Add simple crate and module documentation

* Apply comments

* Add lib level documentation

* Add test without lookups

* Fix starks without logup

* Cleanup

* Some more cleanup

* Fix get_challenges for non-lookup STARKs

* Add additional config methods and tests

* Apply comments

* More comments
2024-02-13 11:47:54 -05:00
Robin Salen
06444eaaf3
Switch permutation argument for logUp in starky (#1496)
* Switch permutation argument for logUp in starky

* Apply comments

* Refactor check_lookup_options

* Comments

* Add more visibility

* std -> core

* Revert "Add more visibility"

This reverts commit 2b4e50e0e7fc7676814b1bc1f4071d9ec0ab9d5c.

* Add more visibility to lookup items
2024-02-06 17:57:40 +00:00
Robin Salen
c2a73ad89f
Fix clippy (#1464) 2024-01-12 15:09:19 +01:00
David
a291d92c01
Merge pull request #1392 from 0xPolygonZero/dp-from_values-take-ref
`PolynomialBatch::from_values` takes refs
2023-12-19 12:14:10 +00:00
yanziseeker
43ecf1dff3 chore: fix some comment typos 2023-12-08 10:17:07 +00:00
Robin Salen
2d36559dad
Make some functions const (#1407) 2023-12-05 13:41:31 -05:00
David Palm
e68195fc0d
chore: Remove TODOs about from_values taking a reference 2023-11-30 15:10:34 +01:00
David Palm
37918cccfd
Revert "chore: from_values takes ref"
This reverts commit 7cc123e0a442d41a3610a57a2ee4f8008ef5811f.
2023-11-30 15:07:10 +01:00
David Palm
7cc123e0a4
chore: from_values takes ref 2023-11-29 09:09:36 +01:00
Matteo Muraca
605932d149
restore no-std support (#1335)
* perform test action on `x86_64-unknown-linux-gnu` and `wasm32-unknown-unknown`

Signed-off-by: muraca <mmuraca247@gmail.com>

* make `plonky2` build on `wasm32-unknown-unknown`

Signed-off-by: muraca <mmuraca247@gmail.com>

* make `starky` build on `wasm32-unknown-unknown`
small oversight on `plonky2` fixed

Signed-off-by: muraca <mmuraca247@gmail.com>

* skip `evm` folder if target is `wasm32-unknown-unknown`

Signed-off-by: muraca <mmuraca247@gmail.com>

* add `default: true` to toolchain

Signed-off-by: muraca <mmuraca247@gmail.com>

* skip `test` if target is `wasm32-unknown-unknown`

Signed-off-by: muraca <mmuraca247@gmail.com>

* single ticks instead of double

Signed-off-by: muraca <mmuraca247@gmail.com>

* explicit target

Signed-off-by: muraca <mmuraca247@gmail.com>

* wasm32 job

Signed-off-by: muraca <mmuraca247@gmail.com>

* added `--no-default-features` to checks

Signed-off-by: muraca <mmuraca247@gmail.com>

---------

Signed-off-by: muraca <mmuraca247@gmail.com>
2023-11-07 17:10:44 -05:00
bing
8326db604c
refactor: remove usage of unstable generic_const_exprs in starky (#1300) 2023-10-23 20:20:00 -04:00
Robin Salen
9f8c152222
Remove unused attributes 2023-08-02 08:54:20 -04:00
Hamish Ivey-Law
2c5f6fd62a
Fix compile time problems and generic hash implementation (#1024)
* Fix egregious magic number.

* Remove generic consts from core permutations.

* Remove redundant `where` clauses.

* Remove HashConfig and friends.

* Refactor Permutation code.

* Remove redundant `where` clauses and `use`s.

* Introduce AlgebraicPermutation to wrap `[Target; WIDTH]`s.

* Remove `generic_const_expr` feature from plonky2!

* Remove `generic_const_expr` feature from plonky2!

* Compile time fixed! Start removing `generic_const_expr` from evm.

* Remove redundant `where` clauses from Starky.

* Remove `generic_const_expr`s from benchmarks.

* Remove redundant HASH_SIZE `where` clause.

* Clippy.

* Fix unrelated OsRng issue in `bench_recursion`.

* Fix function doc.
2023-05-11 02:59:02 +10:00
Robin Salen
9ee47ab745
Move HashConfig into GenericConfig associated types 2023-04-01 09:54:14 -04:00
Robin Salen
e857c020bf
Make hash functions generic 2023-03-31 18:55:06 -04:00
Daniel Lubarov
2133c7f3ba Use new plonky2 2023-02-25 09:36:25 -08:00
Daniel Lubarov
ff80f28b93 Revert "Set CI to use an older version of nightly"
This reverts commit da23fb116b934925f8a5cf37c2f1f092452fdc4d.
2023-02-10 23:10:39 -08:00
Daniel Lubarov
137bc78565 Prep for publishing to crates.io 2023-01-30 13:18:06 -08:00
Daniel Lubarov
92974aa105 A few more cyclic recursion changes
In preparation for adding the zkEVM aggregation circuit. Mainly,

- Adds a `WitnessWrite` trait, a sub-trait of `Witness`, and move the write methods to it. `GeneratedValues` impls `WitnessWrite`, which lets generators like `DummyProofGenerator` access all our write methods like `set_proof_with_pis_target`. Also removes some duplication.

- Remove `set_cyclic_recursion_data_target` - now that dummy proof data is automatically populated, all that remains is populating `condition` and the cyclic proof + VK. I think it's easy enough for callers to do this; the steps are the same as with `conditionally_verify_proof`. This way there's no cyclic-recursion-specific API to learn about.

- Split `cyclic_recursion` into two variants, one which checks the current circuit or a dummy, and a more general one which checks the current circuit or some other circuit. We can use the latter to build a more efficient aggregation circuit, where we check another aggregation proof or an EVM proof, with no dummy proofs involved.
2022-12-11 22:43:26 -08:00
Brandon H. Gomes
5dfe1b412e
feat: add no-std support for starky
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-04 16:04:10 -07:00
Brandon H. Gomes
fc3f63398d
wip: start moving starky to no-std
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-03 12:17:03 -07:00
Brandon H. Gomes
e2cdd5a954
feat: upgrade Sampling APIs
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-03 08:26:03 -07:00
Brandon H. Gomes
6fd0da216a
fix: remove unstable features from plonky2
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-02 17:50:31 -07:00
Daniel Lubarov
b6d71a7008 Keccak benchmark
And reworking things a bit to include the timing data we want.
2022-09-23 10:54:17 -07:00
Daniel Lubarov
d7d50e9d5a Minor 2022-09-19 23:04:53 -07:00
Daniel Lubarov
5d4d81c29f Shape check in starky 2022-09-19 21:41:24 -07:00
Daniel Lubarov
dbce356818 Validate the shape of each proof 2022-09-19 17:37:18 -07:00
wborgeaud
a930c1a823 s/l1/l0 2022-09-12 08:09:17 +02:00
Sladuca
ca35502660 fmt 2022-08-19 17:54:48 -04:00
Sladuca
ff961a34a3 fix lost evals when P::WIDTH > 0 2022-08-19 17:39:55 -04:00
Sebastien La Duca
e48bfa837f fmt 2022-07-24 18:06:03 -04:00
Sebastien La Duca
c9d610ec10 use maybe_rayon in starky and evm 2022-07-24 17:47:14 -04:00
Daniel Lubarov
e73d01a037
packed_field -> packed (#584)
* `packed_field` -> `packed`

For cleaner imports; "field" is usually clear from context

* fix
2022-06-27 15:07:52 -07:00
Daniel Lubarov
3346d3f902
field_types -> types (#583)
* `field_types` -> `types`

Here too, I think "field" is usually clear from context, e.g. in `use plonky2::field::types::Field;`.

* fixes

* fmt
2022-06-27 12:24:09 -07:00
Daniel Lubarov
410e03349c
extension_field -> extension (#581)
It seems redundant in most contexts, e.g. `use plonky2::field::extension_field::Extendable;`. One could import `extension_field`, but it's not that common in Rust, and `field::extension` is now about as short.
2022-06-27 07:18:21 -07:00