Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Convert from submodules to subtrees #4

Merged
merged 1,006 commits into from
Oct 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1006 commits
Select commit Hold shift + click to select a range
ccff3be
More efficient vars_gens
Feb 7, 2024
57aea35
Bug fixes & record runtime
Feb 7, 2024
ad0f02f
Back-edge elimination for bound total # of proofs
Feb 9, 2024
7860d03
Better block_num_proofs_bound estimation
Feb 9, 2024
b44cc83
WIP register spilling
Feb 13, 2024
95f8e11
Allow witness input size > instance input size
Feb 14, 2024
ded55f2
Remove debug message
Feb 14, 2024
2a9b163
Minor bug fix
Feb 14, 2024
49c97e8
Better num_proofs_bound estimation through function top sort
Feb 14, 2024
f59b021
New variable scoping system, no spilling
Feb 16, 2024
93f183f
Better variable depth analysis
Feb 16, 2024
888de37
New liveness analysis & WIP register spilling
Feb 20, 2024
7428edf
Buggy spilling implementation
Feb 21, 2024
69242e4
Bug fixes
Feb 21, 2024
c65a369
Write up for register spilling & block merge
Feb 21, 2024
8dc544c
Add public parameters to hash
Feb 22, 2024
895deae
Preliminary for parallel proofs
Feb 22, 2024
e39e37b
Parallel Verifier Implementation
Feb 22, 2024
0b88154
Implement ROM-checking based on Haboeck's lookup argument (#185)
alex-ozdemir Feb 23, 2024
c7da358
Update register allocation writeup
Feb 23, 2024
3bce074
Partial prover parallelization
Mar 5, 2024
b545ada
# constraint estimation for each block
Mar 6, 2024
a3ac2d1
New loop conversion
Mar 7, 2024
f53792f
Progress on block merge
Mar 7, 2024
3627213
Progress on block merge
Mar 8, 2024
f13b325
Finished block merge, other analysis broken
Mar 11, 2024
a8597f7
Buggy implementation of if / else
Mar 12, 2024
7295b52
Finished block merge
Mar 12, 2024
ed4d596
Writeup for block merge
Mar 12, 2024
fc2d1e7
Update TODOs
Mar 12, 2024
fd4e6f3
Reduce number of proofs by 2
Mar 12, 2024
9dafa17
Reduce number of proofs from 11 -> 9
Mar 14, 2024
f704fed
Change loop condition from < to !=
Mar 14, 2024
f11be41
removed mem_w0
Mar 14, 2024
2005c5f
Remove consis_w3
Mar 18, 2024
073efc9
change witness format for backend optimization
Mar 19, 2024
a1ef1f5
WIP removal of mem_addr_comb
Mar 19, 2024
f11011c
Reduced # of proofs from 9 -> 8
Mar 19, 2024
b6e7e0e
Reduced # of proofs from 8 -> 7
Mar 19, 2024
c6bccfd
Reduced # of proofs from 7 -> 6
Mar 19, 2024
df3be26
update proof table
Mar 19, 2024
1a5f3b7
Minor bug fix
Mar 19, 2024
d2a3dd2
Allow input reading
Mar 19, 2024
adc4d92
Minor bug fix
Mar 20, 2024
322cbb8
Allow batched IO proof & 2 more benchmarks
Mar 21, 2024
4deb13c
Add type to input format
Mar 21, 2024
ade95f4
Batched block correctness instance opening
Mar 22, 2024
ced0a74
Batched opening for perm_mem_poly
Mar 22, 2024
ff0551f
Batched witness opening for all proofs, pending optimization
Mar 23, 2024
73cdf4f
Optimized batched commit opening
Mar 23, 2024
31234b4
Remove old codes
Mar 23, 2024
26ec076
Removed static bound on mem_cohere
Mar 26, 2024
2df5bff
Preliminary work to remove bound on consistency check
Mar 26, 2024
2855ada
Modularize Shift Proof
Mar 27, 2024
54fb520
All preliminary work to drop static bound on perm_poly
Mar 27, 2024
20dbfa6
Dropped static bound on perm_poly
Mar 28, 2024
d102aa2
Clean up
Mar 28, 2024
e255c2b
Dropped static bound on number of blocks
Mar 28, 2024
9aab7c5
Update writeups
Mar 28, 2024
fe9bcd2
Add data regarding while loops
Mar 28, 2024
363599e
Finished while loop
Mar 28, 2024
4067e7d
Finished while loop
Mar 28, 2024
41361e4
Document zokrates_test.zsh
alex-ozdemir Mar 31, 2024
471dfd1
Bug fixes
Apr 1, 2024
d6b8d67
Initial memory implementation
Apr 2, 2024
3ba1be4
array v->k lookups, membership assertions, and witness computation in…
alex-ozdemir Apr 5, 2024
ca67418
Arrays in block optimization
Apr 7, 2024
2306a32
Arrays in block optimization
Apr 9, 2024
1d80802
Add %TS & rearrange reserved variables
Apr 9, 2024
6bbfbef
Thread %TS
Apr 9, 2024
b99346d
WIP vir_mem to circ
Apr 9, 2024
38d8fd1
VM to circ
Apr 10, 2024
3ddbd59
Finished prover & drop CNST eval
Apr 10, 2024
fdffa62
Block correctness for arrays
Apr 11, 2024
dcb7160
Buf fixes
Apr 11, 2024
9025881
New memory frmework
Apr 12, 2024
b64b138
Add physical memory implementation
Apr 15, 2024
4115c98
Finished physical mem for prover
Apr 16, 2024
8c977db
Add live_vm_list
Apr 16, 2024
f08452f
Block Correctness for phy_mem approach
Apr 16, 2024
7f6d0a0
Make the IR1CS optimizer more aggressive (#188)
alex-ozdemir Apr 17, 2024
80c1ba6
Add addr_vir_mem to transcript
Apr 17, 2024
6ada908
Add addr_vir_mem to transcript
Apr 17, 2024
27430bb
VM coherence check
Apr 17, 2024
7f909bc
VM coherence check
Apr 17, 2024
43ba2c7
Finished VIR_MEM_COHERE and SHIFT PROOF
Apr 18, 2024
a7a268e
Minor update in format
Apr 18, 2024
5e145de
Bug fixes
Apr 19, 2024
2d938b1
Bug fixes
Apr 19, 2024
0fd2657
Permutation of vir_mem_addr
Apr 19, 2024
49ccda6
Buggy mem_extract implementation
Apr 19, 2024
38930b3
WIP combine BLOCK with MEM_EXTRACT
Apr 23, 2024
4e2b553
Finished new block proof
Apr 24, 2024
bfa014e
Finished virtual mem
Apr 24, 2024
fcd2e01
revert back to vir approach & only increment TS if not init
Apr 25, 2024
aeb958a
Flexible BLOCK instance
Apr 25, 2024
0c3e404
QoL
Apr 25, 2024
f35287a
Converted arrays into pointers
Apr 25, 2024
4682f2b
Bug fixes for %AS
May 14, 2024
8b6935a
Minor bug fix
May 14, 2024
172b2b0
More bug fixes
May 14, 2024
6820347
Minor bug fixes
May 14, 2024
40c0558
Eliminate randomness in spilling
May 14, 2024
c7a7d8e
Bug fixes & memory benchmark
May 14, 2024
d09e2e5
Update benchmark
May 14, 2024
e189c3a
Drop usage of expr_impl_ in block generation
May 16, 2024
065bd87
Add arrays to function parameter
May 17, 2024
02c4781
Bug fixes & allow arrays in function return
May 17, 2024
083e78c
Add branch instruction
May 18, 2024
4411662
Progress on branching
May 18, 2024
ba7061f
Progress on branches
May 18, 2024
744f4ef
Basic branching implementation
May 19, 2024
be23195
Disallow conditional statements
May 19, 2024
df0117f
Allow non-field entries in virtual memory
May 20, 2024
c1a0b96
Drop type check on virtual memory ops
May 20, 2024
218e44e
Buggy dummy load impl
May 21, 2024
dca30e5
Finished conditional store
May 21, 2024
b0aac04
Update benchmark
May 21, 2024
1f96de0
Remove pointer liveness analysis & bug fix on TS scope
May 23, 2024
2f8eb43
Update timer
May 24, 2024
d67add9
Update timer
May 24, 2024
2bf4f82
handle CStore in linearization pass (#190)
alex-ozdemir May 24, 2024
046680c
Bug fix in block merge
May 25, 2024
36f11f7
Bug fix in EBE
May 26, 2024
fde8fa8
Scope bug fix in tydef -> assg
May 30, 2024
9ac4c26
further fix OOB indices in lin (#193)
alex-ozdemir May 31, 2024
5752a82
Improve efficiency of block extract
Jun 1, 2024
ca70537
bugfix: opt::mem::obliv (#194)
alex-ozdemir Jun 2, 2024
1136e7b
Dropped perm_poly
Jun 2, 2024
ac1cc87
Fix debug messages
Jun 3, 2024
32bb809
Combined pairwise checks
Jun 3, 2024
c285754
remove I and O from input_block_w3
Jun 3, 2024
1e340a4
Consolidate block_w3
Jun 3, 2024
b6606d6
Group all product proofs
Jun 3, 2024
274d7c1
Optimization in perm_product and drop single / short definition
Jun 3, 2024
4f60f2c
Merge vars & inputs
Jun 4, 2024
6580ae7
Merge vars & inputs
Jun 4, 2024
b3a565b
Dropped W from vars
Jun 4, 2024
410a3cc
Dropped W from vars
Jun 4, 2024
2ac32d8
Drop v and x for mem_block_w3
Jun 4, 2024
557a731
Bug fix in pretty printing
Jun 6, 2024
e83bd5d
Pull and merge from circ
Jun 6, 2024
fd4f9d2
Fix bug of dead %BP
Jun 6, 2024
72e48b4
Infrastructure for variable input size per instance
Jun 7, 2024
c058697
Allow variable constraint size per inst
Jun 8, 2024
fe83428
Add w section to custom_dense_mlpoly
Jun 8, 2024
71b98db
Update sumcheck 2 to allow witness_secs
Jun 8, 2024
4b06dc4
Bug fix in ABC_poly with single instance
Jun 8, 2024
7173d16
Separate rw and ry in instance commitment
Jun 8, 2024
e22a939
Fix block_num_vars
Jun 8, 2024
6878eab
Witness gen speedup
Jun 9, 2024
8eb6d01
More efficient instance commitment
Jun 9, 2024
7458fe2
Bug fix on shadowing with different types
Jun 13, 2024
5cd3c69
Support dynamic for loop range & optimize array initialization
Jun 14, 2024
cf9a009
WIP lift static bound on array length
Jun 14, 2024
7c61ec6
Support dynamic array length
Jun 15, 2024
21ac0a8
Allow empty array initialization
Jun 15, 2024
238c253
Minor bug fix on array init
Jun 15, 2024
d802e1e
Bug fix on omitted VM check & erroneous sorting
Jun 15, 2024
ea0b905
Minor bug fix
Jun 16, 2024
fbfe81d
Support array construct in expressions
Jun 16, 2024
26b84a7
Add most basic struct support
Jun 17, 2024
950a3fb
Added nested struct support
Jun 17, 2024
aaa440f
add struct to function parameter
Jun 17, 2024
393ef55
Incorporate Array Ty into block gen
Jun 23, 2024
854c45a
Support arrays in struct
Jun 23, 2024
a8c3e38
Buggy array-in-struct implementation
Jun 25, 2024
195abce
Bug fixes
Jun 25, 2024
22ffab3
Most basic array-in-struct impl
Jun 25, 2024
ae28a26
Add ToField operator & bug fix on missing %SP declaration
Jun 26, 2024
2872f1a
Support multi-dimensional array LOAD, WIP STORE
Jun 27, 2024
12bab1e
Add boolean support
Jun 27, 2024
94134a8
Add array_decl statement
Jun 28, 2024
d3be3ba
Support Field <-> Bool cast
Jun 30, 2024
f1f6d37
Fix bug in liveness analysis
Jul 1, 2024
cf0fb69
Support structs in non-main func return
Jul 1, 2024
6f79a63
Support multiple fn entrance points & bug fixes
Jul 1, 2024
abe4484
Add constraint size data
Jul 1, 2024
31fdda4
Add no-opt flag
Jul 2, 2024
fe11191
Update num vars calc method
Jul 3, 2024
a47e6a4
Add support for import & constants
Jul 31, 2024
bcb5909
Allow multi-line function parameter
Aug 6, 2024
fca6698
Support line break between func call arguments
Aug 6, 2024
f45216c
New version to handle constants
Aug 7, 2024
d5e60a3
Update liveness analysis by separating call traces
Aug 8, 2024
1b5f343
Bug fixes in block optimizations
Aug 12, 2024
4176fda
Bug fixes & update on compact certificate
Aug 12, 2024
c76388a
More bug fixes
Aug 13, 2024
3bca699
WIP function merge
Aug 14, 2024
6713ac6
Implemented func merge
Aug 15, 2024
33a00f8
Convert %RP to a regular register
Aug 20, 2024
5ee4129
Bug fixed on mixed array-struct access
Aug 27, 2024
4e65791
Bug fix on wrong index type used on array init
Aug 28, 2024
438598a
3 reveals for compact_cert
Aug 28, 2024
6cf4d22
Introduce sequence breaker
Aug 30, 2024
5311c00
Fix typos
Sep 3, 2024
e4516d1
Introduce %AS as dynamic
Sep 3, 2024
6921511
Added init_mems
Sep 3, 2024
f17dd93
Added init_mems
Sep 3, 2024
4b8519b
Add init_mem_set flag to trusted setup
Sep 3, 2024
75eacf6
Add init_mem_set flag to trusted setup
Sep 3, 2024
2534853
WIP impl of init_mems
Sep 3, 2024
f447938
WIP array support in input
Sep 3, 2024
c15eef7
Bug fixes for array input support
Sep 4, 2024
7b61c91
Bug fixes on mismatching input label
Sep 4, 2024
5a95a2f
Finished product & %AS check for array input
Sep 4, 2024
6748b6b
Finished product & %AS check for array input
Sep 4, 2024
485fff4
Change init_mems to 4-wide
Sep 4, 2024
8e07404
Shift proof & change init_mems to 4-wide
Sep 4, 2024
52d86d2
Full support for array inputs
Sep 4, 2024
24bf843
File serialization & bug fixes
Sep 4, 2024
0b1a146
File serialization & bug fixes
Sep 4, 2024
30bfaf4
Bug fix for dead inputs
Sep 5, 2024
d81e896
Bug fix for dead inputs
Sep 5, 2024
f92bf78
Allow array inputs to be expressed as pointers
Sep 5, 2024
80076c2
WIP Goldilock impl
Sep 5, 2024
6bdcd86
WIP Goldilock Impl
Sep 6, 2024
bf6039a
WIP Goldilock Impl
Sep 6, 2024
7337c60
WIP Goldilock Impl
Sep 6, 2024
09927e3
Bug fixes on entry block input order
Sep 9, 2024
100b0d1
Prover trace bug fix
Sep 10, 2024
72e0471
Fix seg fault in Goldilocks
Sep 10, 2024
570fa7a
IO proof minor bug fix
Sep 11, 2024
3af346d
Direct poseidon_parallel invokation
Sep 11, 2024
7b03b62
Merge block_w2
Sep 12, 2024
f2cc431
Merge block_w2
Sep 12, 2024
c4997f6
Add read-only array types
Sep 13, 2024
085ea44
Add ro to LOADs and STOREs
Sep 13, 2024
66fb707
Redesign spilling for RO memory
Sep 13, 2024
3dc77bc
Implemented read-only array
Sep 16, 2024
6f918c7
Implemented read-only array
Sep 16, 2024
53feef1
Bug fixes on RO arrays
Sep 17, 2024
18cf930
Change max block size
Sep 17, 2024
0e42806
Add inline support for functions
Sep 25, 2024
c85c517
Bug fix on block func_num_exec
Sep 26, 2024
1ea5a71
Add size check in EBE
Sep 27, 2024
3f0097b
Implemented Goldilock base field
Sep 30, 2024
b8e73c4
Drop block size check in EBE for now
Oct 7, 2024
f325f92
Merge input_w2 with block_w2
Oct 7, 2024
37c99fe
Bug fix for multi-dimensional inline array
Oct 9, 2024
8738657
Drop Spartan dependency
Oct 16, 2024
13b470d
Dependency fix
Oct 16, 2024
9e6d1bd
Dependency fix
Oct 16, 2024
5343be2
Remove circ_blocks
matthiasgoergens Oct 18, 2024
c759545
Add 'circ_blocks/' from commit '13b470d29c0cac433767e56a570b995d2656b…
matthiasgoergens Oct 18, 2024
dc36329
Remove spartan_parallel
matthiasgoergens Oct 18, 2024
a275f43
Add 'spartan_parallel/' from commit '9e6d1bdd75408ddbcba8707e03ab14fc…
matthiasgoergens Oct 18, 2024
9e0c4ee
Remove ff
matthiasgoergens Oct 18, 2024
0473323
Add 'ff/' from commit 'fb3f28bce8920acbdf947c75035441d9778c8984'
matthiasgoergens Oct 18, 2024
f360968
Remove traces of submodules
matthiasgoergens Oct 18, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 0 additions & 9 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,9 +0,0 @@
[submodule "circ_blocks"]
path = circ_blocks
url = git@github.com:Jiangkm3/circ_blocks.git
[submodule "spartan_parallel"]
path = spartan_parallel
url = git@github.com:Jiangkm3/spartan_parallel.git
[submodule "ff"]
path = ff
url = git@github.com:Jiangkm3/ff.git
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ A modified Spartan proof system that supports data-parallelism and additional pr

## Running the recursive verifier for ceno
* Requires `rustc 1.74.0-nightly`
* First set up git submodules and all compilers: `bash setup.sh`
* First set up all compilers: `bash setup.sh`
* Then run the ceno verifier: `bash encode_ceno.sh`
* Note that `spartan_parallel` currently does not support Goldilocks fields and cannot verify the circuit generated by `circ_blocks`
* Finally run `bash verify_ceno.sh`, which emits size & number of execution for each block before throwing out a verifier error due to wrong field size.
Expand Down
1 change: 0 additions & 1 deletion circ_blocks
Submodule circ_blocks deleted from 13b470
36 changes: 36 additions & 0 deletions circ_blocks/.github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Build & Test

on:
push:
branches: [master, ci]
pull_request:
branches: [master, ci]

env:
CARGO_TERM_COLOR: always

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Install dependencies
if: runner.os == 'Linux'
run: sudo apt-get update; sudo apt-get install zsh cvc4 libboost-all-dev libssl-dev coinor-cbc coinor-libcbc-dev
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
- name: Set all features on
run: python3 driver.py --all_features
- name: Install python reqs
run: python3 driver.py --install
- name: Check
run: python3 driver.py --check
- name: Format
run: cargo fmt -- --check
- name: Lint
run: python3 driver.py --lint
- name: Build, then Test
run: python3 driver.py --test
19 changes: 19 additions & 0 deletions circ_blocks/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
.DS_Store
/target
/pf
/assignment.txt
/params
__pycache__
/P
/V
/pi
/x
/perf.data*
/heaptrack.*
/flamegraph.*
/.gdb_history
.features.txt
.mode.txt
scripts/aby_tests/tests
/flamegraph*.svg
.vscode/
1 change: 1 addition & 0 deletions circ_blocks/COPYING
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
CirC is dual-licensed under Apache 2.0 and MIT terms.
Loading