mirror of
https://github.com/pseXperiments/LaBRADOR.git
synced 2026-01-09 03:57:56 -05:00
refactor: use ring instances from ashlang package, add example r1cs with usage
This commit is contained in:
441
Cargo.lock
generated
441
Cargo.lock
generated
@@ -20,6 +20,70 @@ version = "0.2.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
|
||||
|
||||
[[package]]
|
||||
name = "android-tzdata"
|
||||
version = "0.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
|
||||
|
||||
[[package]]
|
||||
name = "android_system_properties"
|
||||
version = "0.1.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "anstream"
|
||||
version = "0.6.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526"
|
||||
dependencies = [
|
||||
"anstyle",
|
||||
"anstyle-parse",
|
||||
"anstyle-query",
|
||||
"anstyle-wincon",
|
||||
"colorchoice",
|
||||
"is_terminal_polyfill",
|
||||
"utf8parse",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "anstyle"
|
||||
version = "1.0.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
|
||||
|
||||
[[package]]
|
||||
name = "anstyle-parse"
|
||||
version = "0.2.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb"
|
||||
dependencies = [
|
||||
"utf8parse",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "anstyle-query"
|
||||
version = "1.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a"
|
||||
dependencies = [
|
||||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "anstyle-wincon"
|
||||
version = "3.0.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8"
|
||||
dependencies = [
|
||||
"anstyle",
|
||||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
version = "1.0.89"
|
||||
@@ -164,6 +228,24 @@ version = "0.7.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
|
||||
|
||||
[[package]]
|
||||
name = "ashlang"
|
||||
version = "0.1.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2d7c53d5f9bd154ea4d9c0539fe7ec3f0c58360659cef9ca1052254ec1faafed"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"camino",
|
||||
"chrono",
|
||||
"clap",
|
||||
"colored",
|
||||
"lazy_static",
|
||||
"pest",
|
||||
"pest_derive",
|
||||
"ring-math",
|
||||
"scalarff",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "attribute-derive"
|
||||
version = "0.6.1"
|
||||
@@ -243,12 +325,24 @@ dependencies = [
|
||||
"generic-array",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bumpalo"
|
||||
version = "3.16.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
|
||||
|
||||
[[package]]
|
||||
name = "byteorder"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
||||
|
||||
[[package]]
|
||||
name = "camino"
|
||||
version = "1.1.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3"
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.1.28"
|
||||
@@ -264,12 +358,72 @@ version = "1.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||
|
||||
[[package]]
|
||||
name = "chrono"
|
||||
version = "0.4.38"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
|
||||
dependencies = [
|
||||
"android-tzdata",
|
||||
"iana-time-zone",
|
||||
"js-sys",
|
||||
"num-traits",
|
||||
"wasm-bindgen",
|
||||
"windows-targets 0.52.6",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "4.5.20"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8"
|
||||
dependencies = [
|
||||
"clap_builder",
|
||||
"clap_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clap_builder"
|
||||
version = "4.5.20"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54"
|
||||
dependencies = [
|
||||
"anstream",
|
||||
"anstyle",
|
||||
"clap_lex",
|
||||
"strsim",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clap_derive"
|
||||
version = "4.5.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab"
|
||||
dependencies = [
|
||||
"heck",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.79",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clap_lex"
|
||||
version = "0.7.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97"
|
||||
|
||||
[[package]]
|
||||
name = "collection_literals"
|
||||
version = "1.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "186dce98367766de751c42c4f03970fc60fc012296e706ccbb9d5df9b6c1e271"
|
||||
|
||||
[[package]]
|
||||
name = "colorchoice"
|
||||
version = "1.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
|
||||
|
||||
[[package]]
|
||||
name = "colored"
|
||||
version = "2.1.0"
|
||||
@@ -277,7 +431,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
"windows-sys",
|
||||
"windows-sys 0.48.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -286,6 +440,12 @@ version = "0.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6"
|
||||
|
||||
[[package]]
|
||||
name = "core-foundation-sys"
|
||||
version = "0.8.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
|
||||
|
||||
[[package]]
|
||||
name = "cpufeatures"
|
||||
version = "0.2.14"
|
||||
@@ -501,18 +661,53 @@ dependencies = [
|
||||
"allocator-api2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "heck"
|
||||
version = "0.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
||||
|
||||
[[package]]
|
||||
name = "hex"
|
||||
version = "0.4.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
|
||||
|
||||
[[package]]
|
||||
name = "iana-time-zone"
|
||||
version = "0.1.61"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220"
|
||||
dependencies = [
|
||||
"android_system_properties",
|
||||
"core-foundation-sys",
|
||||
"iana-time-zone-haiku",
|
||||
"js-sys",
|
||||
"wasm-bindgen",
|
||||
"windows-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "iana-time-zone-haiku"
|
||||
version = "0.1.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
|
||||
dependencies = [
|
||||
"cc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "interpolator"
|
||||
version = "0.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "71dd52191aae121e8611f1e8dc3e324dd0dd1dee1e6dd91d10ee07a3cfb4d9d8"
|
||||
|
||||
[[package]]
|
||||
name = "is_terminal_polyfill"
|
||||
version = "1.70.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
|
||||
|
||||
[[package]]
|
||||
name = "itertools"
|
||||
version = "0.10.5"
|
||||
@@ -537,6 +732,15 @@ version = "1.0.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
|
||||
|
||||
[[package]]
|
||||
name = "js-sys"
|
||||
version = "0.3.72"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9"
|
||||
dependencies = [
|
||||
"wasm-bindgen",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "keccak"
|
||||
version = "0.1.5"
|
||||
@@ -550,6 +754,8 @@ dependencies = [
|
||||
name = "labrador"
|
||||
version = "0.0.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"ashlang",
|
||||
"rand",
|
||||
"ring-math",
|
||||
"scalarff",
|
||||
@@ -573,6 +779,12 @@ version = "0.2.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
|
||||
|
||||
[[package]]
|
||||
name = "log"
|
||||
version = "0.4.22"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
|
||||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
version = "2.7.4"
|
||||
@@ -621,6 +833,51 @@ version = "1.0.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
|
||||
|
||||
[[package]]
|
||||
name = "pest"
|
||||
version = "2.7.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
"thiserror",
|
||||
"ucd-trie",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pest_derive"
|
||||
version = "2.7.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4d3a6e3394ec80feb3b6393c725571754c6188490265c61aaf260810d6b95aa0"
|
||||
dependencies = [
|
||||
"pest",
|
||||
"pest_generator",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pest_generator"
|
||||
version = "2.7.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "94429506bde1ca69d1b5601962c73f4172ab4726571a59ea95931218cb0e930e"
|
||||
dependencies = [
|
||||
"pest",
|
||||
"pest_meta",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.79",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pest_meta"
|
||||
version = "2.7.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ac8a071862e93690b6e34e9a5fb8e33ff3734473ac0245b27232222c4906a33f"
|
||||
dependencies = [
|
||||
"once_cell",
|
||||
"pest",
|
||||
"sha2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "phf"
|
||||
version = "0.11.2"
|
||||
@@ -905,6 +1162,17 @@ dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sha2"
|
||||
version = "0.10.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"cpufeatures",
|
||||
"digest",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sha3"
|
||||
version = "0.10.8"
|
||||
@@ -933,6 +1201,12 @@ version = "1.13.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
|
||||
|
||||
[[package]]
|
||||
name = "strsim"
|
||||
version = "0.11.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
|
||||
|
||||
[[package]]
|
||||
name = "subtle"
|
||||
version = "2.6.1"
|
||||
@@ -1021,12 +1295,24 @@ version = "1.17.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
|
||||
|
||||
[[package]]
|
||||
name = "ucd-trie"
|
||||
version = "0.1.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-ident"
|
||||
version = "1.0.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
|
||||
|
||||
[[package]]
|
||||
name = "utf8parse"
|
||||
version = "0.2.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
|
||||
|
||||
[[package]]
|
||||
name = "version_check"
|
||||
version = "0.9.5"
|
||||
@@ -1039,13 +1325,86 @@ version = "0.11.0+wasi-snapshot-preview1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen"
|
||||
version = "0.2.95"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"once_cell",
|
||||
"wasm-bindgen-macro",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-backend"
|
||||
version = "0.2.95"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358"
|
||||
dependencies = [
|
||||
"bumpalo",
|
||||
"log",
|
||||
"once_cell",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.79",
|
||||
"wasm-bindgen-shared",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-macro"
|
||||
version = "0.2.95"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56"
|
||||
dependencies = [
|
||||
"quote",
|
||||
"wasm-bindgen-macro-support",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-macro-support"
|
||||
version = "0.2.95"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.79",
|
||||
"wasm-bindgen-backend",
|
||||
"wasm-bindgen-shared",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-shared"
|
||||
version = "0.2.95"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d"
|
||||
|
||||
[[package]]
|
||||
name = "windows-core"
|
||||
version = "0.52.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
|
||||
dependencies = [
|
||||
"windows-targets 0.52.6",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-sys"
|
||||
version = "0.48.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
|
||||
dependencies = [
|
||||
"windows-targets",
|
||||
"windows-targets 0.48.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-sys"
|
||||
version = "0.52.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
|
||||
dependencies = [
|
||||
"windows-targets 0.52.6",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1054,13 +1413,29 @@ version = "0.48.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
|
||||
dependencies = [
|
||||
"windows_aarch64_gnullvm",
|
||||
"windows_aarch64_msvc",
|
||||
"windows_i686_gnu",
|
||||
"windows_i686_msvc",
|
||||
"windows_x86_64_gnu",
|
||||
"windows_x86_64_gnullvm",
|
||||
"windows_x86_64_msvc",
|
||||
"windows_aarch64_gnullvm 0.48.5",
|
||||
"windows_aarch64_msvc 0.48.5",
|
||||
"windows_i686_gnu 0.48.5",
|
||||
"windows_i686_msvc 0.48.5",
|
||||
"windows_x86_64_gnu 0.48.5",
|
||||
"windows_x86_64_gnullvm 0.48.5",
|
||||
"windows_x86_64_msvc 0.48.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-targets"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
|
||||
dependencies = [
|
||||
"windows_aarch64_gnullvm 0.52.6",
|
||||
"windows_aarch64_msvc 0.52.6",
|
||||
"windows_i686_gnu 0.52.6",
|
||||
"windows_i686_gnullvm",
|
||||
"windows_i686_msvc 0.52.6",
|
||||
"windows_x86_64_gnu 0.52.6",
|
||||
"windows_x86_64_gnullvm 0.52.6",
|
||||
"windows_x86_64_msvc 0.52.6",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1069,42 +1444,90 @@ version = "0.48.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
|
||||
|
||||
[[package]]
|
||||
name = "windows_aarch64_gnullvm"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
|
||||
|
||||
[[package]]
|
||||
name = "windows_aarch64_msvc"
|
||||
version = "0.48.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
|
||||
|
||||
[[package]]
|
||||
name = "windows_aarch64_msvc"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
|
||||
|
||||
[[package]]
|
||||
name = "windows_i686_gnu"
|
||||
version = "0.48.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
|
||||
|
||||
[[package]]
|
||||
name = "windows_i686_gnu"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
|
||||
|
||||
[[package]]
|
||||
name = "windows_i686_gnullvm"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
|
||||
|
||||
[[package]]
|
||||
name = "windows_i686_msvc"
|
||||
version = "0.48.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
|
||||
|
||||
[[package]]
|
||||
name = "windows_i686_msvc"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_gnu"
|
||||
version = "0.48.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_gnu"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_gnullvm"
|
||||
version = "0.48.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_gnullvm"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_msvc"
|
||||
version = "0.48.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_msvc"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
|
||||
|
||||
[[package]]
|
||||
name = "wyz"
|
||||
version = "0.5.1"
|
||||
|
||||
@@ -10,6 +10,9 @@ license = "MIT OR Apache-2.0"
|
||||
rand = "0.8.5"
|
||||
ring-math = "0.1.0"
|
||||
scalarff = "0.5.1"
|
||||
ashlang = { version = "0.1.2", default-features = false }
|
||||
#ashlang = { path = "../ashlang/ashlang", default-features = false }
|
||||
anyhow = "1.0.89"
|
||||
|
||||
#ring-math = { path = "../ashlang/ring-math" }
|
||||
#scalarff = { path = "../scalarff" }
|
||||
|
||||
@@ -1,31 +1,38 @@
|
||||
use ring_math::polynomial_ring;
|
||||
use ring_math::Polynomial;
|
||||
use ring_math::PolynomialRingElement;
|
||||
use scalarff::scalar_ring;
|
||||
use scalarff::FieldElement;
|
||||
|
||||
// creates a scalar ring struct DilithiumRingElement
|
||||
scalar_ring!(DilithiumRingElement, 8380417, "dilithium_23_bit");
|
||||
|
||||
// creates a polynomial ring struct
|
||||
polynomial_ring!(
|
||||
DilithiumPolynomialRingElement,
|
||||
DilithiumRingElement,
|
||||
{
|
||||
// creating the ring modulus polynomial
|
||||
// here we use x^64 + 1
|
||||
let mut p = Polynomial::identity();
|
||||
p.term(&DilithiumRingElement::one(), 64);
|
||||
p
|
||||
},
|
||||
"dilithium_x64+1"
|
||||
);
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use ashlang::r1cs::parser::R1csParser;
|
||||
use ashlang::rings::DilithiumPolynomialRingElement;
|
||||
use ashlang::rings::DilithiumRingElement;
|
||||
use ring_math::Matrix2D;
|
||||
use ring_math::PolynomialRingElement;
|
||||
use scalarff::FieldElement;
|
||||
|
||||
use super::*;
|
||||
#[test]
|
||||
fn transform_r1cs() -> anyhow::Result<()> {
|
||||
let ar1cs_src = std::fs::read_to_string("./test-vectors/example.ar1cs")?;
|
||||
let r1cs_parser: R1csParser<DilithiumPolynomialRingElement> = R1csParser::new(&ar1cs_src)?;
|
||||
let _constraints = r1cs_parser.constraints;
|
||||
|
||||
// TODO: transform constraints into dot product form
|
||||
|
||||
// generate a witness just for fun 🤩
|
||||
let input = 55;
|
||||
let witness = ashlang::r1cs::witness::build(
|
||||
&ar1cs_src,
|
||||
vec![DilithiumPolynomialRingElement::from(input)],
|
||||
)?;
|
||||
println!("Calculated witness for input: {input}");
|
||||
println!(
|
||||
"{}",
|
||||
witness
|
||||
.variables
|
||||
.iter()
|
||||
.map(|v| v.to_string())
|
||||
.collect::<Vec<_>>()
|
||||
.join("\n")
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn conj_automorphism() {
|
||||
|
||||
293
test-vectors/example.ar1cs
Normal file
293
test-vectors/example.ar1cs
Normal file
@@ -0,0 +1,293 @@
|
||||
# r1cs_test
|
||||
# Compiled at 2024-10-16T18:36:22.846Z
|
||||
# Compiled for dilithium x^64+1 polynomial ring
|
||||
#
|
||||
# This script tests various mathematical operators
|
||||
# view the source below
|
||||
#
|
||||
# https://github.com/chancehudson/ashlang/blob/main/ashlang/test-vectors/r1cs_test.ash
|
||||
#
|
||||
x1 = (1*one) * (0*one) # scalar literal (0) to signal index 0 (member of vector)
|
||||
x2 = (1*one) * (100*one) # scalar literal (100) to signal index 0 (member of vector)
|
||||
x3 = (100*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x4 = (1*one) * (99*one) # scalar literal (99) to signal index 0 (member of vector)
|
||||
x5 = (99*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x6 = (1*one) * (98*one) # scalar literal (98) to signal index 0 (member of vector)
|
||||
x7 = (98*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x8 = (1*one) * (99*one) # scalar literal (99) to signal index 0 (member of vector)
|
||||
x9 = (100*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x10 = (100*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x11 = (99*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x12 = (99*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x13 = (98*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x14 = (98*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x15 = (99*one) * (1*x2) # re-assign _
|
||||
x16 = (9900*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x17 = (1*x2 + 8380318*one) * (1*one) # re-assign _
|
||||
x18 = (1*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x19 = (99*one + 8380416*x2) * (1*one) # re-assign _
|
||||
x20 = (99*one + 8380416*x2) * (1*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x21 = (99*one + 1*x2) * (1*one) # re-assign _
|
||||
x22 = (199*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x23 = (5502294*x2) * (1*one) # re-assign _
|
||||
x25 = (1*one) / (1*x2) # re-assign _
|
||||
x24 = (99*x25) * (1*one) # re-assign _
|
||||
x26 = (1*x2 + 1*x4) * (1*one) # re-assign _
|
||||
x27 = (199*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x28 = (1*x2 + 8380416*x4) * (1*one) # re-assign _
|
||||
x29 = (1*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x30 = (1*x2) * (1*x4) # re-assign _
|
||||
x31 = (9900*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x32 = (1*one) / (1*x4) # re-assign _
|
||||
x33 = (1*x2) * (1*x32) # re-assign _
|
||||
x34 = (1*x2) * (1*x2) # let v2
|
||||
x35 = (1*x34) * (1*x34) # let v4
|
||||
x36 = (1*x35) * (1*x2) # return call in ./ashlang/stdlib/pow5.ash
|
||||
x37 = (10000000000*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x38 = (32*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x39 = (32*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x40 = (1*one) * (32*one) # scalar literal (32) to signal index 0 (member of vector)
|
||||
x41 = (9*one) + (0*one) # sqrt() (./ashlang/stdlib/sqrt.ar1cs)
|
||||
x42 = (2*one) radix (1*x41) # b is the square root of a
|
||||
x43 = (3*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x44 = (1*one) * (0*one) # scalar literal (0) to signal index 0 (member of vector)
|
||||
x45 = (1*one) * (2*one) # scalar literal (2) to signal index 0 (member of vector)
|
||||
x46 = (1*one + 1*x44) * (1*one) # re-assign lll
|
||||
x47 = (1*x45) * (1*x45) # let v2
|
||||
x48 = (1*x47) * (1*x47) # let v4
|
||||
x49 = (1*x48) * (1*x45) # return call in ./ashlang/stdlib/pow5.ash
|
||||
x50 = (1*x45) * (1*x45) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x51 = (1*x50) * (1*x45) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x52 = (1*x51) * (1*x45) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x53 = (1*x52) * (1*x45) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x54 = (1*one + 1*x46) * (1*one) # re-assign lll
|
||||
x55 = (1*x49) * (1*x49) # let v2
|
||||
x56 = (1*x55) * (1*x55) # let v4
|
||||
x57 = (1*x56) * (1*x49) # return call in ./ashlang/stdlib/pow5.ash
|
||||
x58 = (1*x49) * (1*x49) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x59 = (1*x58) * (1*x49) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x60 = (1*x59) * (1*x49) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x61 = (1*x60) * (1*x49) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x62 = (1*one + 1*x54) * (1*one) # re-assign lll
|
||||
x63 = (1*x57) * (1*x57) # let v2
|
||||
x64 = (1*x63) * (1*x63) # let v4
|
||||
x65 = (1*x64) * (1*x57) # return call in ./ashlang/stdlib/pow5.ash
|
||||
x66 = (1*x57) * (1*x57) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x67 = (1*x66) * (1*x57) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x68 = (1*x67) * (1*x57) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x69 = (1*x68) * (1*x57) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x70 = (1*one + 1*x62) * (1*one) # re-assign lll
|
||||
x71 = (1*x65) * (1*x65) # let v2
|
||||
x72 = (1*x71) * (1*x71) # let v4
|
||||
x73 = (1*x72) * (1*x65) # return call in ./ashlang/stdlib/pow5.ash
|
||||
x74 = (1*x65) * (1*x65) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x75 = (1*x74) * (1*x65) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x76 = (1*x75) * (1*x65) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x77 = (1*x76) * (1*x65) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x78 = (1*one + 1*x70) * (1*one) # re-assign lll
|
||||
x79 = (1*x73) * (1*x73) # let v2
|
||||
x80 = (1*x79) * (1*x79) # let v4
|
||||
x81 = (1*x80) * (1*x73) # return call in ./ashlang/stdlib/pow5.ash
|
||||
x82 = (1*x73) * (1*x73) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x83 = (1*x82) * (1*x73) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x84 = (1*x83) * (1*x73) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x85 = (1*x84) * (1*x73) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x86 = (1*one + 1*x78) * (1*one) # re-assign lll
|
||||
x87 = (1*x81) * (1*x81) # let v2
|
||||
x88 = (1*x87) * (1*x87) # let v4
|
||||
x89 = (1*x88) * (1*x81) # return call in ./ashlang/stdlib/pow5.ash
|
||||
x90 = (1*x81) * (1*x81) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x91 = (1*x90) * (1*x81) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x92 = (1*x91) * (1*x81) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x93 = (1*x92) * (1*x81) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x94 = (1*one + 1*x86) * (1*one) # re-assign lll
|
||||
x95 = (1*x89) * (1*x89) # let v2
|
||||
x96 = (1*x95) * (1*x95) # let v4
|
||||
x97 = (1*x96) * (1*x89) # return call in ./ashlang/stdlib/pow5.ash
|
||||
x98 = (1*x89) * (1*x89) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x99 = (1*x98) * (1*x89) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x100 = (1*x99) * (1*x89) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x101 = (1*x100) * (1*x89) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x102 = (1*one + 1*x94) * (1*one) # re-assign lll
|
||||
x103 = (1*x97) * (1*x97) # let v2
|
||||
x104 = (1*x103) * (1*x103) # let v4
|
||||
x105 = (1*x104) * (1*x97) # return call in ./ashlang/stdlib/pow5.ash
|
||||
x106 = (1*x97) * (1*x97) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x107 = (1*x106) * (1*x97) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x108 = (1*x107) * (1*x97) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x109 = (1*x108) * (1*x97) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x110 = (1*one + 1*x102) * (1*one) # re-assign lll
|
||||
x111 = (1*x105) * (1*x105) # let v2
|
||||
x112 = (1*x111) * (1*x111) # let v4
|
||||
x113 = (1*x112) * (1*x105) # return call in ./ashlang/stdlib/pow5.ash
|
||||
x114 = (1*x105) * (1*x105) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x115 = (1*x114) * (1*x105) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x116 = (1*x115) * (1*x105) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x117 = (1*x116) * (1*x105) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x118 = (1*one + 1*x110) * (1*one) # re-assign lll
|
||||
x119 = (1*x113) * (1*x113) # let v2
|
||||
x120 = (1*x119) * (1*x119) # let v4
|
||||
x121 = (1*x120) * (1*x113) # return call in ./ashlang/stdlib/pow5.ash
|
||||
x122 = (1*x113) * (1*x113) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x123 = (1*x122) * (1*x113) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x124 = (1*x123) * (1*x113) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x125 = (1*x124) * (1*x113) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x126 = (10*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
x127 = (1*one) input (1*one) #
|
||||
x128 = (55*one) + (0*one) # assert_eq() (./ashlang/stdlib/assert_eq.ar1cs)
|
||||
0 = (8380416*one) * (8380416*one) - (1*one) # field safety constraint
|
||||
0 = (1*x1) * (1*one) - (0*one) # scalar literal (0) to signal index (0) (member of vector)
|
||||
0 = (1*x2) * (1*one) - (100*one) # scalar literal (100) to signal index (0) (member of vector)
|
||||
0 = (1*x3) * (1*one) - (100*one) # assigning literal (100) to signal 3
|
||||
0 = (1*x2 + 0*one) * (1*one) - (1*x3) # assert equality
|
||||
0 = (1*x4) * (1*one) - (99*one) # scalar literal (99) to signal index (0) (member of vector)
|
||||
0 = (1*x5) * (1*one) - (99*one) # assigning literal (99) to signal 5
|
||||
0 = (1*x4 + 0*one) * (1*one) - (1*x5) # assert equality
|
||||
0 = (1*x6) * (1*one) - (98*one) # scalar literal (98) to signal index (0) (member of vector)
|
||||
0 = (1*x7) * (1*one) - (98*one) # assigning literal (98) to signal 7
|
||||
0 = (1*x6 + 0*one) * (1*one) - (1*x7) # assert equality
|
||||
0 = (1*x8) * (1*one) - (99*one) # scalar literal (99) to signal index (0) (member of vector)
|
||||
0 = (1*x9) * (1*one) - (100*one) # assigning literal (100) to signal 9
|
||||
0 = (1*x10) * (1*one) - (100*one) # assigning literal (100) to signal 10
|
||||
0 = (1*x9 + 0*one) * (1*one) - (1*x10) # assert equality
|
||||
0 = (1*x11) * (1*one) - (99*one) # assigning literal (99) to signal 11
|
||||
0 = (1*x12) * (1*one) - (99*one) # assigning literal (99) to signal 12
|
||||
0 = (1*x11 + 0*one) * (1*one) - (1*x12) # assert equality
|
||||
0 = (1*x13) * (1*one) - (98*one) # assigning literal (98) to signal 13
|
||||
0 = (1*x14) * (1*one) - (98*one) # assigning literal (98) to signal 14
|
||||
0 = (1*x13 + 0*one) * (1*one) - (1*x14) # assert equality
|
||||
0 = (99*one) * (1*x2) - (1*x15) # multiplication between (99) and 2 into 15
|
||||
0 = (1*x16) * (1*one) - (9900*one) # assigning literal (9900) to signal 16
|
||||
0 = (1*x15 + 0*one) * (1*one) - (1*x16) # assert equality
|
||||
0 = (99*one + 1*x17) * (1*one) - (1*x2) # subtraction between 2 and (99) into 17
|
||||
0 = (1*x18) * (1*one) - (1*one) # assigning literal (1) to signal 18
|
||||
0 = (1*x17 + 0*one) * (1*one) - (1*x18) # assert equality
|
||||
0 = (1*x2 + 1*x19) * (1*one) - (99*one) # subtraction between (99) and 2 into 19
|
||||
0 = (1*x2 + 1*x20) * (1*one) - (99*one) # subtraction between (99) and 2 into 20
|
||||
0 = (1*x19 + 0*one) * (1*one) - (1*x20) # assert equality
|
||||
0 = (99*one + 1*x2) * (1*one) - (1*x21) # addition between (99) and 2 into 21
|
||||
0 = (1*x22) * (1*one) - (199*one) # assigning literal (199) to signal 22
|
||||
0 = (1*x21 + 0*one) * (1*one) - (1*x22) # assert equality
|
||||
0 = (5502294*x2) * (1*one) - (1*x23) # modinv between 2 and (99) into 23
|
||||
0 = (1*x2) * (1*x25) - (1*one) # modinv 2 into 25
|
||||
0 = (99*x25) * (1*one) - (1*x24) # multiply 25 and (99) into 24
|
||||
0 = (1*x2 + 1*x4) * (1*one) - (1*x26) # addition between 2 and 4 into 26
|
||||
0 = (1*x27) * (1*one) - (199*one) # assigning literal (199) to signal 27
|
||||
0 = (1*x26 + 0*one) * (1*one) - (1*x27) # assert equality
|
||||
0 = (1*x2 + 8380416*x4) * (1*one) - (1*x28) # subtraction between 2 and 4 into 28
|
||||
0 = (1*x29) * (1*one) - (1*one) # assigning literal (1) to signal 29
|
||||
0 = (1*x28 + 0*one) * (1*one) - (1*x29) # assert equality
|
||||
0 = (1*x2) * (1*x4) - (1*x30) # multiplication between 2 and 4 into 30
|
||||
0 = (1*x31) * (1*one) - (9900*one) # assigning literal (9900) to signal 31
|
||||
0 = (1*x30 + 0*one) * (1*one) - (1*x31) # assert equality
|
||||
0 = (1*x4) * (1*x32) - (1*one) # inversion of 4 into 32 (1/2)
|
||||
0 = (1*x2) * (1*x32) - (1*x33) # multiplication of 2 and 32 into 33 (2/2)
|
||||
0 = (1*x2) * (1*x2) - (1*x34) # multiplication between 2 and 2 into 34
|
||||
0 = (1*x34) * (1*x34) - (1*x35) # multiplication between 34 and 34 into 35
|
||||
0 = (1*x35) * (1*x2) - (1*x36) # multiplication between 35 and 2 into 36
|
||||
0 = (1*x37) * (1*one) - (10000000000*one) # assigning literal (10000000000) to signal 37
|
||||
0 = (1*x36 + 0*one) * (1*one) - (1*x37) # assert equality
|
||||
0 = (1*x38) * (1*one) - (32*one) # assigning literal (32) to signal 38
|
||||
0 = (1*x39) * (1*one) - (32*one) # assigning literal (32) to signal 39
|
||||
0 = (1*x38 + 0*one) * (1*one) - (1*x39) # assert equality
|
||||
0 = (1*x40) * (1*one) - (32*one) # scalar literal (32) to signal index (0) (member of vector)
|
||||
0 = (1*x41) * (1*one) - (9*one) # assigning literal (9) to signal 41
|
||||
0 = (1*x42) * (1*x42) - (1*x41) # assert that a = b*b
|
||||
0 = (1*x43) * (1*one) - (3*one) # assigning literal (3) to signal 43
|
||||
0 = (1*x42 + 0*one) * (1*one) - (1*x43) # assert equality
|
||||
0 = (1*x44) * (1*one) - (0*one) # scalar literal (0) to signal index (0) (member of vector)
|
||||
0 = (1*x45) * (1*one) - (2*one) # scalar literal (2) to signal index (0) (member of vector)
|
||||
0 = (1*one + 1*x44) * (1*one) - (1*x46) # addition between (1) and 44 into 46
|
||||
0 = (1*x45) * (1*x45) - (1*x47) # multiplication between 45 and 45 into 47
|
||||
0 = (1*x47) * (1*x47) - (1*x48) # multiplication between 47 and 47 into 48
|
||||
0 = (1*x48) * (1*x45) - (1*x49) # multiplication between 48 and 45 into 49
|
||||
0 = (1*x45) * (1*x45) - (1*x50) # multiplication between 45 and 45 into 50
|
||||
0 = (1*x50) * (1*x45) - (1*x51) # multiplication between 50 and 45 into 51
|
||||
0 = (1*x51) * (1*x45) - (1*x52) # multiplication between 51 and 45 into 52
|
||||
0 = (1*x52) * (1*x45) - (1*x53) # multiplication between 52 and 45 into 53
|
||||
0 = (1*x49 + 0*one) * (1*one) - (1*x53) # assert equality
|
||||
0 = (1*one + 1*x46) * (1*one) - (1*x54) # addition between (1) and 46 into 54
|
||||
0 = (1*x49) * (1*x49) - (1*x55) # multiplication between 49 and 49 into 55
|
||||
0 = (1*x55) * (1*x55) - (1*x56) # multiplication between 55 and 55 into 56
|
||||
0 = (1*x56) * (1*x49) - (1*x57) # multiplication between 56 and 49 into 57
|
||||
0 = (1*x49) * (1*x49) - (1*x58) # multiplication between 49 and 49 into 58
|
||||
0 = (1*x58) * (1*x49) - (1*x59) # multiplication between 58 and 49 into 59
|
||||
0 = (1*x59) * (1*x49) - (1*x60) # multiplication between 59 and 49 into 60
|
||||
0 = (1*x60) * (1*x49) - (1*x61) # multiplication between 60 and 49 into 61
|
||||
0 = (1*x57 + 0*one) * (1*one) - (1*x61) # assert equality
|
||||
0 = (1*one + 1*x54) * (1*one) - (1*x62) # addition between (1) and 54 into 62
|
||||
0 = (1*x57) * (1*x57) - (1*x63) # multiplication between 57 and 57 into 63
|
||||
0 = (1*x63) * (1*x63) - (1*x64) # multiplication between 63 and 63 into 64
|
||||
0 = (1*x64) * (1*x57) - (1*x65) # multiplication between 64 and 57 into 65
|
||||
0 = (1*x57) * (1*x57) - (1*x66) # multiplication between 57 and 57 into 66
|
||||
0 = (1*x66) * (1*x57) - (1*x67) # multiplication between 66 and 57 into 67
|
||||
0 = (1*x67) * (1*x57) - (1*x68) # multiplication between 67 and 57 into 68
|
||||
0 = (1*x68) * (1*x57) - (1*x69) # multiplication between 68 and 57 into 69
|
||||
0 = (1*x65 + 0*one) * (1*one) - (1*x69) # assert equality
|
||||
0 = (1*one + 1*x62) * (1*one) - (1*x70) # addition between (1) and 62 into 70
|
||||
0 = (1*x65) * (1*x65) - (1*x71) # multiplication between 65 and 65 into 71
|
||||
0 = (1*x71) * (1*x71) - (1*x72) # multiplication between 71 and 71 into 72
|
||||
0 = (1*x72) * (1*x65) - (1*x73) # multiplication between 72 and 65 into 73
|
||||
0 = (1*x65) * (1*x65) - (1*x74) # multiplication between 65 and 65 into 74
|
||||
0 = (1*x74) * (1*x65) - (1*x75) # multiplication between 74 and 65 into 75
|
||||
0 = (1*x75) * (1*x65) - (1*x76) # multiplication between 75 and 65 into 76
|
||||
0 = (1*x76) * (1*x65) - (1*x77) # multiplication between 76 and 65 into 77
|
||||
0 = (1*x73 + 0*one) * (1*one) - (1*x77) # assert equality
|
||||
0 = (1*one + 1*x70) * (1*one) - (1*x78) # addition between (1) and 70 into 78
|
||||
0 = (1*x73) * (1*x73) - (1*x79) # multiplication between 73 and 73 into 79
|
||||
0 = (1*x79) * (1*x79) - (1*x80) # multiplication between 79 and 79 into 80
|
||||
0 = (1*x80) * (1*x73) - (1*x81) # multiplication between 80 and 73 into 81
|
||||
0 = (1*x73) * (1*x73) - (1*x82) # multiplication between 73 and 73 into 82
|
||||
0 = (1*x82) * (1*x73) - (1*x83) # multiplication between 82 and 73 into 83
|
||||
0 = (1*x83) * (1*x73) - (1*x84) # multiplication between 83 and 73 into 84
|
||||
0 = (1*x84) * (1*x73) - (1*x85) # multiplication between 84 and 73 into 85
|
||||
0 = (1*x81 + 0*one) * (1*one) - (1*x85) # assert equality
|
||||
0 = (1*one + 1*x78) * (1*one) - (1*x86) # addition between (1) and 78 into 86
|
||||
0 = (1*x81) * (1*x81) - (1*x87) # multiplication between 81 and 81 into 87
|
||||
0 = (1*x87) * (1*x87) - (1*x88) # multiplication between 87 and 87 into 88
|
||||
0 = (1*x88) * (1*x81) - (1*x89) # multiplication between 88 and 81 into 89
|
||||
0 = (1*x81) * (1*x81) - (1*x90) # multiplication between 81 and 81 into 90
|
||||
0 = (1*x90) * (1*x81) - (1*x91) # multiplication between 90 and 81 into 91
|
||||
0 = (1*x91) * (1*x81) - (1*x92) # multiplication between 91 and 81 into 92
|
||||
0 = (1*x92) * (1*x81) - (1*x93) # multiplication between 92 and 81 into 93
|
||||
0 = (1*x89 + 0*one) * (1*one) - (1*x93) # assert equality
|
||||
0 = (1*one + 1*x86) * (1*one) - (1*x94) # addition between (1) and 86 into 94
|
||||
0 = (1*x89) * (1*x89) - (1*x95) # multiplication between 89 and 89 into 95
|
||||
0 = (1*x95) * (1*x95) - (1*x96) # multiplication between 95 and 95 into 96
|
||||
0 = (1*x96) * (1*x89) - (1*x97) # multiplication between 96 and 89 into 97
|
||||
0 = (1*x89) * (1*x89) - (1*x98) # multiplication between 89 and 89 into 98
|
||||
0 = (1*x98) * (1*x89) - (1*x99) # multiplication between 98 and 89 into 99
|
||||
0 = (1*x99) * (1*x89) - (1*x100) # multiplication between 99 and 89 into 100
|
||||
0 = (1*x100) * (1*x89) - (1*x101) # multiplication between 100 and 89 into 101
|
||||
0 = (1*x97 + 0*one) * (1*one) - (1*x101) # assert equality
|
||||
0 = (1*one + 1*x94) * (1*one) - (1*x102) # addition between (1) and 94 into 102
|
||||
0 = (1*x97) * (1*x97) - (1*x103) # multiplication between 97 and 97 into 103
|
||||
0 = (1*x103) * (1*x103) - (1*x104) # multiplication between 103 and 103 into 104
|
||||
0 = (1*x104) * (1*x97) - (1*x105) # multiplication between 104 and 97 into 105
|
||||
0 = (1*x97) * (1*x97) - (1*x106) # multiplication between 97 and 97 into 106
|
||||
0 = (1*x106) * (1*x97) - (1*x107) # multiplication between 106 and 97 into 107
|
||||
0 = (1*x107) * (1*x97) - (1*x108) # multiplication between 107 and 97 into 108
|
||||
0 = (1*x108) * (1*x97) - (1*x109) # multiplication between 108 and 97 into 109
|
||||
0 = (1*x105 + 0*one) * (1*one) - (1*x109) # assert equality
|
||||
0 = (1*one + 1*x102) * (1*one) - (1*x110) # addition between (1) and 102 into 110
|
||||
0 = (1*x105) * (1*x105) - (1*x111) # multiplication between 105 and 105 into 111
|
||||
0 = (1*x111) * (1*x111) - (1*x112) # multiplication between 111 and 111 into 112
|
||||
0 = (1*x112) * (1*x105) - (1*x113) # multiplication between 112 and 105 into 113
|
||||
0 = (1*x105) * (1*x105) - (1*x114) # multiplication between 105 and 105 into 114
|
||||
0 = (1*x114) * (1*x105) - (1*x115) # multiplication between 114 and 105 into 115
|
||||
0 = (1*x115) * (1*x105) - (1*x116) # multiplication between 115 and 105 into 116
|
||||
0 = (1*x116) * (1*x105) - (1*x117) # multiplication between 116 and 105 into 117
|
||||
0 = (1*x113 + 0*one) * (1*one) - (1*x117) # assert equality
|
||||
0 = (1*one + 1*x110) * (1*one) - (1*x118) # addition between (1) and 110 into 118
|
||||
0 = (1*x113) * (1*x113) - (1*x119) # multiplication between 113 and 113 into 119
|
||||
0 = (1*x119) * (1*x119) - (1*x120) # multiplication between 119 and 119 into 120
|
||||
0 = (1*x120) * (1*x113) - (1*x121) # multiplication between 120 and 113 into 121
|
||||
0 = (1*x113) * (1*x113) - (1*x122) # multiplication between 113 and 113 into 122
|
||||
0 = (1*x122) * (1*x113) - (1*x123) # multiplication between 122 and 113 into 123
|
||||
0 = (1*x123) * (1*x113) - (1*x124) # multiplication between 123 and 113 into 124
|
||||
0 = (1*x124) * (1*x113) - (1*x125) # multiplication between 124 and 113 into 125
|
||||
0 = (1*x121 + 0*one) * (1*one) - (1*x125) # assert equality
|
||||
0 = (1*x126) * (1*one) - (10*one) # assigning literal (10) to signal 126
|
||||
0 = (1*x118 + 0*one) * (1*one) - (1*x126) # assert equality
|
||||
0 = (1*x128) * (1*one) - (55*one) # assigning literal (55) to signal 128
|
||||
0 = (1*x127 + 0*one) * (1*one) - (1*x128) # assert equality
|
||||
Reference in New Issue
Block a user