2022-07-22 11:20:29 -04:00
2022-07-14 11:15:27 -04:00
2022-04-19 02:16:17 -07:00
2022-07-22 11:20:29 -04:00
2022-07-22 11:20:29 -04:00
2022-04-05 22:23:02 -07:00
2022-04-23 22:34:51 -07:00
2022-07-14 11:15:27 -04:00
2022-07-18 12:24:12 -04:00
2022-07-14 11:15:27 -04:00
2022-07-22 11:20:29 -04:00
2022-07-22 11:20:29 -04:00

Picus

Picus is a symbolic virtual machine for automated verification tasks on R1CS.

Dependencies

Commands

# build circom parser
cd circom-parser
cargo build

# use circom parser
./circom-parser/target/debug/parser ./examples/test10.circom > ./examples/test10.json
./circom-parser/target/debug/parser ./benchmarks/ecne/Num2BitsNeg@bitify.circom > ./benchmarks/ecne/Num2BitsNeg@bitify.json

# simple circom compilation command
# circom ./test0.circom --r1cs --wasm --sym --c
circom -o ./examples/ ./examples/test10.circom --r1cs --sym
circom -o ./benchmarks/ecne/ ./benchmarks/ecne/Num2BitsNeg@bitify.circom --r1cs --sym

# test on ecne example
racket ./run-ecne-equivalence.rkt --cname AND@gates

# push-button example for equivalence checking
racket ./test-push-button-equivalence.rkt
# turn on error tracing (for debugging)
racket -l errortrace -t ./test-push-button-equivalence.rkt

# example test for the r1cs utilities
racket ./test-read-r1cs.rkt

# automatic uniqueness checking
racket ./test-uniqueness.rkt

# grab Ecne's readable constraints only
julia --project=. src/gen_benchmark.jl Circom_Functions/benchmarks/bigmod_5_2.r1cs > Circom_Functions/benchmarks/bigmod_5_2.txt

# calling Ecne
circom -o ./target/ ./ecne_circomlib_tests/ooo.circom --r1cs --sym --O0
julia --project=. src/Ecne.jl --r1cs target/ooo.r1cs --name oooo --sym target/ooo.sym

Notes

Resources

Description
No description provided
Readme MIT 18 MiB
Languages
Circom 96.1%
Racket 2.4%
Rust 0.8%
Shell 0.3%
Jupyter Notebook 0.2%
Other 0.2%