|
package gates_test
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
|
|
"github.com/consensys/gnark-crypto/field/goldilocks"
|
|
"github.com/consensys/gnark/frontend"
|
|
"github.com/consensys/gnark/test"
|
|
"github.com/succinctlabs/gnark-plonky2-verifier/field"
|
|
"github.com/succinctlabs/gnark-plonky2-verifier/poseidon"
|
|
"github.com/succinctlabs/gnark-plonky2-verifier/verifier/internal/gates"
|
|
"github.com/succinctlabs/gnark-plonky2-verifier/verifier/utils"
|
|
)
|
|
|
|
// From recursive_step circuit
|
|
var localConstants = []field.QuadraticExtension{
|
|
{field.NewFieldConst(4962976205186800892), field.NewFieldConst(6982360466972099197)},
|
|
{field.NewFieldConst(3587364333101709084), field.NewFieldConst(17496916837371484700)},
|
|
{field.NewFieldConst(17287374881609559799), field.NewFieldConst(3152841633956965234)},
|
|
{field.NewFieldConst(8531030241248616826), field.NewFieldConst(7753678118587211959)},
|
|
{field.NewFieldConst(7622109056373824903), field.NewFieldConst(6523636236475969621)},
|
|
}
|
|
|
|
var localWires = []field.QuadraticExtension{
|
|
{field.NewFieldConst(5101665081776077058), field.NewFieldConst(13601771238484783081)},
|
|
{field.NewFieldConst(13763997788502656587), field.NewFieldConst(6068443864169526207)},
|
|
{field.NewFieldConst(10492880302699453810), field.NewFieldConst(11304418575668616669)},
|
|
{field.NewFieldConst(2175168501339052813), field.NewFieldConst(3658211467579027796)},
|
|
{field.NewFieldConst(11342710587435471757), field.NewFieldConst(658078906333318768)},
|
|
{field.NewFieldConst(16590262768413671742), field.NewFieldConst(4678191900868819358)},
|
|
{field.NewFieldConst(18412513594273328173), field.NewFieldConst(3981245463942959904)},
|
|
{field.NewFieldConst(18150166316938544267), field.NewFieldConst(6968565044901838140)},
|
|
{field.NewFieldConst(1048835939602984673), field.NewFieldConst(3511920575130606798)},
|
|
{field.NewFieldConst(13693300152826538654), field.NewFieldConst(5872314861500881782)},
|
|
{field.NewFieldConst(6394696263219721312), field.NewFieldConst(92364988976021720)},
|
|
{field.NewFieldConst(468193345380249942), field.NewFieldConst(4951036536117371576)},
|
|
{field.NewFieldConst(9660006729985637684), field.NewFieldConst(14762789799642492635)},
|
|
{field.NewFieldConst(10091149087332313493), field.NewFieldConst(13279468039286967053)},
|
|
{field.NewFieldConst(12007469191150580744), field.NewFieldConst(2495445179052731885)},
|
|
{field.NewFieldConst(14225726459587943147), field.NewFieldConst(13484648741862607201)},
|
|
{field.NewFieldConst(15365400400136175672), field.NewFieldConst(12227857303059870833)},
|
|
{field.NewFieldConst(1717742269682481687), field.NewFieldConst(14319701537357602192)},
|
|
{field.NewFieldConst(2130805637557027375), field.NewFieldConst(9674794597783493233)},
|
|
{field.NewFieldConst(4200526016516623452), field.NewFieldConst(1757832412907480092)},
|
|
{field.NewFieldConst(4159226258922372229), field.NewFieldConst(2121976810680943769)},
|
|
{field.NewFieldConst(2887943290582259162), field.NewFieldConst(10337505797799617185)},
|
|
{field.NewFieldConst(14760843822980496189), field.NewFieldConst(16331301823872182680)},
|
|
{field.NewFieldConst(14715580754822129725), field.NewFieldConst(13761736659446638375)},
|
|
{field.NewFieldConst(6925818640561435525), field.NewFieldConst(14142327999826777974)},
|
|
{field.NewFieldConst(14048060513252076245), field.NewFieldConst(14860933194240516940)},
|
|
{field.NewFieldConst(3928889853630846436), field.NewFieldConst(16211791673476822740)},
|
|
{field.NewFieldConst(15980387576926781891), field.NewFieldConst(6238947314711778055)},
|
|
{field.NewFieldConst(15694939331980119296), field.NewFieldConst(8708301222382733590)},
|
|
{field.NewFieldConst(192757930858294268), field.NewFieldConst(5400388905722847256)},
|
|
{field.NewFieldConst(17614358883814855964), field.NewFieldConst(11499208634388453518)},
|
|
{field.NewFieldConst(9523994443422431577), field.NewFieldConst(6835394446482946098)},
|
|
{field.NewFieldConst(10096606893378243201), field.NewFieldConst(8982086840326369907)},
|
|
{field.NewFieldConst(7328922720001507777), field.NewFieldConst(17298728994563323488)},
|
|
{field.NewFieldConst(7038859554184407337), field.NewFieldConst(6498153778103681368)},
|
|
{field.NewFieldConst(10610651604960433540), field.NewFieldConst(18240735600936975661)},
|
|
{field.NewFieldConst(4310901749476028644), field.NewFieldConst(17813866938235850894)},
|
|
{field.NewFieldConst(12456949458361594924), field.NewFieldConst(16541357680870686003)},
|
|
{field.NewFieldConst(13986559680062429806), field.NewFieldConst(14210541290696888125)},
|
|
{field.NewFieldConst(10299578396192380820), field.NewFieldConst(18011235767871391546)},
|
|
{field.NewFieldConst(747566550336808782), field.NewFieldConst(5892109075601553099)},
|
|
{field.NewFieldConst(11613383633841665100), field.NewFieldConst(3562006923196410047)},
|
|
{field.NewFieldConst(14971867523312360339), field.NewFieldConst(9835080574905235511)},
|
|
{field.NewFieldConst(5487884847548072736), field.NewFieldConst(17112808386797082519)},
|
|
{field.NewFieldConst(1687420180518659740), field.NewFieldConst(14003627304711288225)},
|
|
{field.NewFieldConst(6760442482244819429), field.NewFieldConst(15796493945480647537)},
|
|
{field.NewFieldConst(2639939427088481105), field.NewFieldConst(16213109089273184951)},
|
|
{field.NewFieldConst(6186345082501710713), field.NewFieldConst(2529053005908871239)},
|
|
{field.NewFieldConst(16270115914931256348), field.NewFieldConst(2789355919627681645)},
|
|
{field.NewFieldConst(4586999018177783314), field.NewFieldConst(2427837399215959725)},
|
|
{field.NewFieldConst(18143358622388343317), field.NewFieldConst(2145167333845152043)},
|
|
{field.NewFieldConst(20367062449222124), field.NewFieldConst(14939961527015734373)},
|
|
{field.NewFieldConst(16851694158642043266), field.NewFieldConst(5250789952541240163)},
|
|
{field.NewFieldConst(273375074794411822), field.NewFieldConst(16211897175907793903)},
|
|
{field.NewFieldConst(8905927930385832568), field.NewFieldConst(6540262589846603524)},
|
|
{field.NewFieldConst(9283781971254844102), field.NewFieldConst(15115068064900745758)},
|
|
{field.NewFieldConst(16002987404851668189), field.NewFieldConst(15226686847545140008)},
|
|
{field.NewFieldConst(17201679792194997813), field.NewFieldConst(589849108691638964)},
|
|
{field.NewFieldConst(13270753269614250355), field.NewFieldConst(13858862497673084592)},
|
|
{field.NewFieldConst(3679908279346826560), field.NewFieldConst(10125726541855725943)},
|
|
{field.NewFieldConst(9493227554592600240), field.NewFieldConst(13229107531594530196)},
|
|
{field.NewFieldConst(10072423214517113799), field.NewFieldConst(1877804054697703518)},
|
|
{field.NewFieldConst(9351494680554520560), field.NewFieldConst(12930187723253788505)},
|
|
{field.NewFieldConst(9537056082833040850), field.NewFieldConst(3947445714701039423)},
|
|
{field.NewFieldConst(978662253133020143), field.NewFieldConst(17432233037279205717)},
|
|
{field.NewFieldConst(13408331971471826902), field.NewFieldConst(8338873650278204671)},
|
|
{field.NewFieldConst(10455530172494355126), field.NewFieldConst(14614842120953588617)},
|
|
{field.NewFieldConst(3066054670984065145), field.NewFieldConst(11061840675948823020)},
|
|
{field.NewFieldConst(1215442291812236170), field.NewFieldConst(6970679356502977963)},
|
|
{field.NewFieldConst(16254140688845356393), field.NewFieldConst(16413217415268481315)},
|
|
{field.NewFieldConst(5571707217813279614), field.NewFieldConst(2506082641312169038)},
|
|
{field.NewFieldConst(18179591596294163519), field.NewFieldConst(16131760445397495720)},
|
|
{field.NewFieldConst(9500821197677833979), field.NewFieldConst(14137570623214003877)},
|
|
{field.NewFieldConst(18159279414894480072), field.NewFieldConst(316120438770524969)},
|
|
{field.NewFieldConst(18164288455905080997), field.NewFieldConst(12889510574086616078)},
|
|
{field.NewFieldConst(7158952489901063870), field.NewFieldConst(8855957421923524202)},
|
|
{field.NewFieldConst(11785615172910130564), field.NewFieldConst(13242859272114186921)},
|
|
{field.NewFieldConst(7978627011292316159), field.NewFieldConst(12030929068833787030)},
|
|
{field.NewFieldConst(5676253512795062173), field.NewFieldConst(9401396509276686822)},
|
|
{field.NewFieldConst(13934555872940874542), field.NewFieldConst(12262482935570269103)},
|
|
{field.NewFieldConst(17018864997992880664), field.NewFieldConst(8399037137658253821)},
|
|
{field.NewFieldConst(1846702834278938262), field.NewFieldConst(13210394651984411322)},
|
|
{field.NewFieldConst(18406563809882201846), field.NewFieldConst(15807625126691296911)},
|
|
{field.NewFieldConst(16192554501791210701), field.NewFieldConst(15105514277710825451)},
|
|
{field.NewFieldConst(16115514979166385045), field.NewFieldConst(5618092869410987045)},
|
|
{field.NewFieldConst(9816852940756124129), field.NewFieldConst(1617435612712694609)},
|
|
{field.NewFieldConst(15012743324956680415), field.NewFieldConst(11098953448520716956)},
|
|
{field.NewFieldConst(7370750057902285338), field.NewFieldConst(15456123684241865136)},
|
|
{field.NewFieldConst(14924801177398773859), field.NewFieldConst(1116868612459919368)},
|
|
{field.NewFieldConst(509701279674911901), field.NewFieldConst(8606220700917290973)},
|
|
{field.NewFieldConst(256371784527067555), field.NewFieldConst(18023759020251995084)},
|
|
{field.NewFieldConst(4027645791496469270), field.NewFieldConst(6446906876250510281)},
|
|
{field.NewFieldConst(8190141658485644545), field.NewFieldConst(3259909135802998300)},
|
|
{field.NewFieldConst(11270185749533517292), field.NewFieldConst(7032460358965516338)},
|
|
{field.NewFieldConst(12112891112487601597), field.NewFieldConst(3686732542066412082)},
|
|
{field.NewFieldConst(18143522178445971138), field.NewFieldConst(6066438010126851248)},
|
|
{field.NewFieldConst(16109160830754618815), field.NewFieldConst(2728516440557525242)},
|
|
{field.NewFieldConst(14634072837475699881), field.NewFieldConst(423778353213757146)},
|
|
{field.NewFieldConst(10421081673554059162), field.NewFieldConst(10142208889746521219)},
|
|
{field.NewFieldConst(12957639310809930956), field.NewFieldConst(1709286023553869935)},
|
|
{field.NewFieldConst(16217923109113456531), field.NewFieldConst(3257438610376598615)},
|
|
{field.NewFieldConst(14024104132094810570), field.NewFieldConst(6065015478137587430)},
|
|
{field.NewFieldConst(7972303368219061571), field.NewFieldConst(5413678307283424945)},
|
|
{field.NewFieldConst(10367882107777269226), field.NewFieldConst(9366367173763419226)},
|
|
{field.NewFieldConst(11506720810821148150), field.NewFieldConst(15210537421649867625)},
|
|
{field.NewFieldConst(10979917526797364486), field.NewFieldConst(3365843489182711842)},
|
|
{field.NewFieldConst(9176981360155624350), field.NewFieldConst(7315956459698675112)},
|
|
{field.NewFieldConst(3964217770504101577), field.NewFieldConst(9088242192411952739)},
|
|
{field.NewFieldConst(16243289324567090937), field.NewFieldConst(13379263550784156456)},
|
|
{field.NewFieldConst(18105277122985331384), field.NewFieldConst(13639149553905751132)},
|
|
{field.NewFieldConst(11145583988660932112), field.NewFieldConst(16125114195985557867)},
|
|
{field.NewFieldConst(18437667738670181477), field.NewFieldConst(8593343353929068644)},
|
|
{field.NewFieldConst(15549894364614350199), field.NewFieldConst(6234736889764963090)},
|
|
{field.NewFieldConst(17753837009416762390), field.NewFieldConst(15297774054893249240)},
|
|
{field.NewFieldConst(1465043006528110247), field.NewFieldConst(11029942851654974974)},
|
|
{field.NewFieldConst(14312704742949520917), field.NewFieldConst(17324353686056674958)},
|
|
{field.NewFieldConst(8078333430227959261), field.NewFieldConst(14797545414164578336)},
|
|
{field.NewFieldConst(3544997838139687150), field.NewFieldConst(8846840377946705678)},
|
|
{field.NewFieldConst(9981846866090807073), field.NewFieldConst(18142560414179130259)},
|
|
{field.NewFieldConst(1256577435119993994), field.NewFieldConst(155745544208227129)},
|
|
{field.NewFieldConst(6040293874299819317), field.NewFieldConst(10483265617246740662)},
|
|
{field.NewFieldConst(976159477616343697), field.NewFieldConst(6356544693059700239)},
|
|
{field.NewFieldConst(4771747444846377672), field.NewFieldConst(2466985401424965488)},
|
|
{field.NewFieldConst(9549711421417753693), field.NewFieldConst(9543806479040458857)},
|
|
{field.NewFieldConst(5277199124405775998), field.NewFieldConst(6251037001966593402)},
|
|
{field.NewFieldConst(13103543598051591262), field.NewFieldConst(2001921170471454234)},
|
|
{field.NewFieldConst(1254878001165263070), field.NewFieldConst(17587272030879777460)},
|
|
{field.NewFieldConst(2300344156307624878), field.NewFieldConst(14356513038946626528)},
|
|
{field.NewFieldConst(2482567400777596327), field.NewFieldConst(3314129985687795881)},
|
|
{field.NewFieldConst(16492046206730922155), field.NewFieldConst(1312905854247159931)},
|
|
{field.NewFieldConst(3061501132630116372), field.NewFieldConst(13315665946615810001)},
|
|
{field.NewFieldConst(16415932954051444990), field.NewFieldConst(925217124969456536)},
|
|
{field.NewFieldConst(9764657158286137619), field.NewFieldConst(16039332713210679567)},
|
|
{field.NewFieldConst(14993545086997628961), field.NewFieldConst(18010329211070748489)},
|
|
{field.NewFieldConst(17327862012036619887), field.NewFieldConst(16962349802452905993)},
|
|
{field.NewFieldConst(4826313026336060985), field.NewFieldConst(3597777099127511952)},
|
|
}
|
|
|
|
var publicInputsHash = poseidon.PoseidonHashOut{field.ZERO_F, field.ZERO_F, field.ZERO_F, field.ZERO_F}
|
|
|
|
var publicInputGateExpectedConstraints = []field.QuadraticExtension{
|
|
{field.NewFieldConst(5101665081776077058), field.NewFieldConst(13601771238484783081)},
|
|
{field.NewFieldConst(13763997788502656587), field.NewFieldConst(6068443864169526207)},
|
|
{field.NewFieldConst(10492880302699453810), field.NewFieldConst(11304418575668616669)},
|
|
{field.NewFieldConst(2175168501339052813), field.NewFieldConst(3658211467579027796)},
|
|
}
|
|
|
|
// BaseSumGate { num_limbs: 63 }), (Base: 2)
|
|
var baseSumGateExpectedConstraints = []field.QuadraticExtension{
|
|
{field.NewFieldConst(9928715244459351681), field.NewFieldConst(5344081500364361215)},
|
|
{field.NewFieldConst(10167164649082076581), field.NewFieldConst(15450889555489725096)},
|
|
{field.NewFieldConst(3546584706462116594), field.NewFieldConst(1476426705388693036)},
|
|
{field.NewFieldConst(12648634003162244983), field.NewFieldConst(2239452344495239178)},
|
|
{field.NewFieldConst(2301087631440580451), field.NewFieldConst(11975672920337250307)},
|
|
{field.NewFieldConst(14001554463269171732), field.NewFieldConst(6953207277617809048)},
|
|
{field.NewFieldConst(9895590040747031510), field.NewFieldConst(1356956949635190505)},
|
|
{field.NewFieldConst(14939964178677988571), field.NewFieldConst(454717738260444218)},
|
|
{field.NewFieldConst(12201660109699192297), field.NewFieldConst(12502457673278583036)},
|
|
{field.NewFieldConst(1175543972635147885), field.NewFieldConst(11103026408792334489)},
|
|
{field.NewFieldConst(3384025741923988904), field.NewFieldConst(2656764746353452717)},
|
|
{field.NewFieldConst(10849522185534943138), field.NewFieldConst(13172212508084788997)},
|
|
{field.NewFieldConst(10509522572526523739), field.NewFieldConst(2090707475955491976)},
|
|
{field.NewFieldConst(13692600715410336206), field.NewFieldConst(7227633217973806771)},
|
|
{field.NewFieldConst(8471053080480597138), field.NewFieldConst(2646922138422495173)},
|
|
{field.NewFieldConst(555344530120410083), field.NewFieldConst(13860459564781531385)},
|
|
{field.NewFieldConst(8748801107049442833), field.NewFieldConst(9263752460533085733)},
|
|
{field.NewFieldConst(13633964398888639692), field.NewFieldConst(10068133633095351031)},
|
|
{field.NewFieldConst(6911322073377914708), field.NewFieldConst(17978361073083837803)},
|
|
{field.NewFieldConst(11223090828346729804), field.NewFieldConst(5006610230932979596)},
|
|
{field.NewFieldConst(11581626217660221266), field.NewFieldConst(16347470001077006094)},
|
|
{field.NewFieldConst(2924189901864366701), field.NewFieldConst(4309265474738828848)},
|
|
{field.NewFieldConst(7275314468944461178), field.NewFieldConst(3109308884739285751)},
|
|
{field.NewFieldConst(12416988612575693809), field.NewFieldConst(13772367397588066248)},
|
|
{field.NewFieldConst(15438805794425696237), field.NewFieldConst(5809350894111990599)},
|
|
{field.NewFieldConst(4275145128501503120), field.NewFieldConst(13230668146909969114)},
|
|
{field.NewFieldConst(15244699495724739585), field.NewFieldConst(7672322205441472064)},
|
|
{field.NewFieldConst(5429809680618805220), field.NewFieldConst(3153880467220264060)},
|
|
{field.NewFieldConst(14715345489518514160), field.NewFieldConst(2246036712337629635)},
|
|
{field.NewFieldConst(9359342125434211935), field.NewFieldConst(7844760208539761732)},
|
|
{field.NewFieldConst(17550561700498841003), field.NewFieldConst(10851755490050776878)},
|
|
{field.NewFieldConst(12192385328855013814), field.NewFieldConst(6629056869404844416)},
|
|
{field.NewFieldConst(3424745785197724925), field.NewFieldConst(9833599393425172230)},
|
|
{field.NewFieldConst(8602078107149096927), field.NewFieldConst(6592109323720773368)},
|
|
{field.NewFieldConst(4109716921881297082), field.NewFieldConst(4396469548700606105)},
|
|
{field.NewFieldConst(10400304110319417426), field.NewFieldConst(1229823145437740976)},
|
|
{field.NewFieldConst(14853277673343952974), field.NewFieldConst(7653131044140686982)},
|
|
{field.NewFieldConst(15831955783787857197), field.NewFieldConst(16541106185743830609)},
|
|
{field.NewFieldConst(16097830673407036871), field.NewFieldConst(917501749911433098)},
|
|
{field.NewFieldConst(6819428296662518848), field.NewFieldConst(15325182544903569500)},
|
|
{field.NewFieldConst(3554857310728040215), field.NewFieldConst(17540168721765377170)},
|
|
{field.NewFieldConst(7246216899469226885), field.NewFieldConst(3184709231158489554)},
|
|
{field.NewFieldConst(3462793508732024933), field.NewFieldConst(13410498916934897793)},
|
|
{field.NewFieldConst(784714181705176804), field.NewFieldConst(8079390288171846846)},
|
|
{field.NewFieldConst(4592501261546923410), field.NewFieldConst(6046244648190342248)},
|
|
{field.NewFieldConst(14100558314779073910), field.NewFieldConst(9589305391181830029)},
|
|
{field.NewFieldConst(7208216654581381179), field.NewFieldConst(16662177305876430630)},
|
|
{field.NewFieldConst(13442246990998561849), field.NewFieldConst(6359024918649040199)},
|
|
{field.NewFieldConst(16196376030005699590), field.NewFieldConst(5656446490425854681)},
|
|
{field.NewFieldConst(16279173216505198700), field.NewFieldConst(6278440230935274234)},
|
|
{field.NewFieldConst(9299204333782277508), field.NewFieldConst(5539548698065086849)},
|
|
{field.NewFieldConst(531539748103362347), field.NewFieldConst(17008402782657673980)},
|
|
{field.NewFieldConst(11956287871118080485), field.NewFieldConst(17776888431041950837)},
|
|
{field.NewFieldConst(16795401491637949606), field.NewFieldConst(12112971435724505573)},
|
|
{field.NewFieldConst(10141270150228316653), field.NewFieldConst(8738825159351228227)},
|
|
{field.NewFieldConst(4249416130151320263), field.NewFieldConst(4171109024390883108)},
|
|
{field.NewFieldConst(13565954345346642147), field.NewFieldConst(11300077318998472624)},
|
|
{field.NewFieldConst(6006413348327738680), field.NewFieldConst(17429146764001291339)},
|
|
{field.NewFieldConst(3009379005164242386), field.NewFieldConst(17911649148503516453)},
|
|
{field.NewFieldConst(4172202865347441020), field.NewFieldConst(6700979848078030374)},
|
|
{field.NewFieldConst(9692174554453081047), field.NewFieldConst(16461309050820528716)},
|
|
{field.NewFieldConst(16012555505188709835), field.NewFieldConst(875036531415994728)},
|
|
{field.NewFieldConst(14527388813134058525), field.NewFieldConst(13371873777459370318)},
|
|
{field.NewFieldConst(6493493657980111839), field.NewFieldConst(14874520839734823069)},
|
|
}
|
|
|
|
// ArithmeticGate { num_ops: 20 }
|
|
var arithmeticGateExpectedConstraints = []field.QuadraticExtension{
|
|
{field.NewFieldConst(8251494922795803874), field.NewFieldConst(7884328911897949424)},
|
|
{field.NewFieldConst(17545754596575389449), field.NewFieldConst(15111927979676704385)},
|
|
{field.NewFieldConst(10052040965126353731), field.NewFieldConst(1448153912054014611)},
|
|
{field.NewFieldConst(3878848318701063854), field.NewFieldConst(15999854355391952993)},
|
|
{field.NewFieldConst(2194699804496089007), field.NewFieldConst(7489112350095609056)},
|
|
{field.NewFieldConst(666656317372820215), field.NewFieldConst(8333111246649438880)},
|
|
{field.NewFieldConst(15500013716804095980), field.NewFieldConst(7739144386812042617)},
|
|
{field.NewFieldConst(2815612394018416154), field.NewFieldConst(15839168197108305099)},
|
|
{field.NewFieldConst(12980309813768330187), field.NewFieldConst(12446111953378048591)},
|
|
{field.NewFieldConst(1389916348936822477), field.NewFieldConst(2080258147396834809)},
|
|
{field.NewFieldConst(3676770229830052631), field.NewFieldConst(8984521981419906260)},
|
|
{field.NewFieldConst(4759606161035299488), field.NewFieldConst(18415228017149216426)},
|
|
{field.NewFieldConst(6849567585629675684), field.NewFieldConst(15231001333591586187)},
|
|
{field.NewFieldConst(17831496121270832947), field.NewFieldConst(1868580989876710210)},
|
|
{field.NewFieldConst(12226832860244216901), field.NewFieldConst(12352098694767236965)},
|
|
{field.NewFieldConst(9795530155924375772), field.NewFieldConst(4833402654226660686)},
|
|
{field.NewFieldConst(7421277748600887772), field.NewFieldConst(16979590244320625600)},
|
|
{field.NewFieldConst(4212532134312824848), field.NewFieldConst(7938725153260099101)},
|
|
{field.NewFieldConst(17718231164451799422), field.NewFieldConst(13363195988334771788)},
|
|
{field.NewFieldConst(5414385531680474153), field.NewFieldConst(13600409983387272243)},
|
|
}
|
|
|
|
// RandomAccessGate { bits: 4, num_copies: 4, num_extra_constants: 2, _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }<D=2>
|
|
var randomAccessGateExpectedConstraints = []field.QuadraticExtension{
|
|
{field.NewFieldConst(18367067186009695282), field.NewFieldConst(6227937229941915629)},
|
|
{field.NewFieldConst(342627832935644960), field.NewFieldConst(11262336464371657587)},
|
|
{field.NewFieldConst(7711502047853221895), field.NewFieldConst(9814305320358879113)},
|
|
{field.NewFieldConst(2436675870898619939), field.NewFieldConst(12171743011114835714)},
|
|
{field.NewFieldConst(9224796650008092960), field.NewFieldConst(197827193844666436)},
|
|
{field.NewFieldConst(7661651717350955969), field.NewFieldConst(3929163527437938921)},
|
|
{field.NewFieldConst(11994613277879586781), field.NewFieldConst(2918199453077793278)},
|
|
{field.NewFieldConst(2133315582796573410), field.NewFieldConst(9920472598641951727)},
|
|
{field.NewFieldConst(5763420675219782924), field.NewFieldConst(193200772658790662)},
|
|
{field.NewFieldConst(14322103909897767697), field.NewFieldConst(2455403487869979318)},
|
|
{field.NewFieldConst(3583177870835306708), field.NewFieldConst(15956920993825363087)},
|
|
{field.NewFieldConst(15767764327818217757), field.NewFieldConst(17814936958431909187)},
|
|
{field.NewFieldConst(7224551806569620055), field.NewFieldConst(1191241782303323453)},
|
|
{field.NewFieldConst(3994846439282900915), field.NewFieldConst(16007298430807731888)},
|
|
{field.NewFieldConst(1904864531973789879), field.NewFieldConst(9374437322489636375)},
|
|
{field.NewFieldConst(17617411600595291430), field.NewFieldConst(11804426503917788826)},
|
|
{field.NewFieldConst(5010213812557284606), field.NewFieldConst(8276410914978849008)},
|
|
{field.NewFieldConst(13701536021647106057), field.NewFieldConst(5043776904396037625)},
|
|
{field.NewFieldConst(4336267979289896624), field.NewFieldConst(8771134635816393433)},
|
|
{field.NewFieldConst(17885926480537171976), field.NewFieldConst(9644095314646547597)},
|
|
{field.NewFieldConst(17179233085824331332), field.NewFieldConst(6950525108693323209)},
|
|
{field.NewFieldConst(9461258042008745175), field.NewFieldConst(6766975264204597922)},
|
|
{field.NewFieldConst(10838154179711471883), field.NewFieldConst(16554457937262927355)},
|
|
{field.NewFieldConst(5823858951686479642), field.NewFieldConst(10171201631442530906)},
|
|
{field.NewFieldConst(17476953112985367168), field.NewFieldConst(12062851564787792403)},
|
|
{field.NewFieldConst(7909573710893929152), field.NewFieldConst(6207515797705444652)},
|
|
}
|
|
|
|
// PoseidonGate(PhantomData<plonky2_field::goldilocks_field::GoldilocksField>)<WIDTH=12>
|
|
var poseidonGateExpectedConstraints = []field.QuadraticExtension{
|
|
{field.NewFieldConst(15438805794425696237), field.NewFieldConst(5809350894111990599)},
|
|
{field.NewFieldConst(105238306594298866), field.NewFieldConst(6398155585902798861)},
|
|
{field.NewFieldConst(5256232026568856387), field.NewFieldConst(9253448664982005262)},
|
|
{field.NewFieldConst(6559974022172208218), field.NewFieldConst(14478753759394222537)},
|
|
{field.NewFieldConst(7036928093413865537), field.NewFieldConst(895644692646980845)},
|
|
{field.NewFieldConst(6350074916129003337), field.NewFieldConst(10418298512623677843)},
|
|
{field.NewFieldConst(6618288817893266284), field.NewFieldConst(17565920952415773065)},
|
|
{field.NewFieldConst(7214268149308735221), field.NewFieldConst(17797640553663908886)},
|
|
{field.NewFieldConst(17038147867485750883), field.NewFieldConst(10766691853641769251)},
|
|
{field.NewFieldConst(1228066111137794024), field.NewFieldConst(1267834319488006514)},
|
|
{field.NewFieldConst(15317834050441961579), field.NewFieldConst(13280896488837969140)},
|
|
{field.NewFieldConst(10135227968960430585), field.NewFieldConst(7096433509203324519)},
|
|
{field.NewFieldConst(10733417635899979276), field.NewFieldConst(16819459255105516700)},
|
|
{field.NewFieldConst(4231839251429338586), field.NewFieldConst(3213678047797020863)},
|
|
{field.NewFieldConst(16271445286187692537), field.NewFieldConst(15377656608157234934)},
|
|
{field.NewFieldConst(9356442829698587975), field.NewFieldConst(14633910545825415036)},
|
|
{field.NewFieldConst(13952390018297698734), field.NewFieldConst(16325393355066618599)},
|
|
{field.NewFieldConst(11399251131586292643), field.NewFieldConst(16257107051968717815)},
|
|
{field.NewFieldConst(4274092107872068929), field.NewFieldConst(15550597684938436610)},
|
|
{field.NewFieldConst(13076618331457049912), field.NewFieldConst(4958059540220054374)},
|
|
{field.NewFieldConst(11650097218963026123), field.NewFieldConst(12070947109214611020)},
|
|
{field.NewFieldConst(2700303408109034014), field.NewFieldConst(5968338348636871194)},
|
|
{field.NewFieldConst(11508005723655482353), field.NewFieldConst(15224088756564969467)},
|
|
{field.NewFieldConst(9328231423353697829), field.NewFieldConst(10577349809783627634)},
|
|
{field.NewFieldConst(556544259468984890), field.NewFieldConst(13376447539117215836)},
|
|
{field.NewFieldConst(17319865455991589647), field.NewFieldConst(588985536671201497)},
|
|
{field.NewFieldConst(9528470026616131077), field.NewFieldConst(7257040911301352274)},
|
|
{field.NewFieldConst(14316182132889623635), field.NewFieldConst(9589165219691594711)},
|
|
{field.NewFieldConst(10405802815809041956), field.NewFieldConst(13917007789819955074)},
|
|
{field.NewFieldConst(12560668105252495616), field.NewFieldConst(3591188232548111694)},
|
|
{field.NewFieldConst(14765117357942682611), field.NewFieldConst(10757853341059462467)},
|
|
{field.NewFieldConst(6099902163260965551), field.NewFieldConst(11343816861356056114)},
|
|
{field.NewFieldConst(1083174255539258286), field.NewFieldConst(7587979659522435417)},
|
|
{field.NewFieldConst(2882552180249608570), field.NewFieldConst(7966658657757662554)},
|
|
{field.NewFieldConst(13490914415473336227), field.NewFieldConst(63845168436289811)},
|
|
{field.NewFieldConst(9459794640071212413), field.NewFieldConst(13417331052474309186)},
|
|
{field.NewFieldConst(18328090807516092318), field.NewFieldConst(11807085063599693782)},
|
|
{field.NewFieldConst(281059606944328759), field.NewFieldConst(13352248056867426135)},
|
|
{field.NewFieldConst(10905177588660050370), field.NewFieldConst(6597328385789442670)},
|
|
{field.NewFieldConst(8426356906491012567), field.NewFieldConst(17214424336396001022)},
|
|
{field.NewFieldConst(15696035667318839817), field.NewFieldConst(13285870048485492127)},
|
|
{field.NewFieldConst(6110244444680672193), field.NewFieldConst(17558548349689468031)},
|
|
{field.NewFieldConst(14614078615782659381), field.NewFieldConst(13184024850613726857)},
|
|
{field.NewFieldConst(1541592450520953410), field.NewFieldConst(18339388388315914026)},
|
|
{field.NewFieldConst(8059386643769157052), field.NewFieldConst(10208764910817462305)},
|
|
{field.NewFieldConst(7612459820354975117), field.NewFieldConst(7582060685277695926)},
|
|
{field.NewFieldConst(12515587043516861064), field.NewFieldConst(16099239041553682288)},
|
|
{field.NewFieldConst(14269196473871652102), field.NewFieldConst(1225067220600668761)},
|
|
{field.NewFieldConst(12691255077510636187), field.NewFieldConst(14147201911063761532)},
|
|
{field.NewFieldConst(3001134598446056765), field.NewFieldConst(14313090483058155636)},
|
|
{field.NewFieldConst(13964993951988177315), field.NewFieldConst(17731737838539414275)},
|
|
{field.NewFieldConst(2686259154263524343), field.NewFieldConst(12198712301337570859)},
|
|
{field.NewFieldConst(6730431920128908773), field.NewFieldConst(4325394084875720868)},
|
|
{field.NewFieldConst(988774723104779817), field.NewFieldConst(8388266879854983623)},
|
|
{field.NewFieldConst(8233087560647959985), field.NewFieldConst(7751837576340060020)},
|
|
{field.NewFieldConst(9546113779017699592), field.NewFieldConst(4049920632309298778)},
|
|
{field.NewFieldConst(3283837251411237060), field.NewFieldConst(13560940050752580093)},
|
|
{field.NewFieldConst(10388838746951897109), field.NewFieldConst(454393475113110282)},
|
|
{field.NewFieldConst(2208016536897042313), field.NewFieldConst(17105586471193083308)},
|
|
{field.NewFieldConst(17683990802267567604), field.NewFieldConst(15398473956537380705)},
|
|
{field.NewFieldConst(70612752050386177), field.NewFieldConst(12349994002954022957)},
|
|
{field.NewFieldConst(13794244952989612728), field.NewFieldConst(15888581169565306348)},
|
|
{field.NewFieldConst(8270800566553141412), field.NewFieldConst(1516938823651329185)},
|
|
{field.NewFieldConst(643507941153616368), field.NewFieldConst(3893451216814345882)},
|
|
{field.NewFieldConst(16464837166410943694), field.NewFieldConst(11108183142967610977)},
|
|
{field.NewFieldConst(9748621820629198396), field.NewFieldConst(3766489907402036319)},
|
|
{field.NewFieldConst(3115179618981245947), field.NewFieldConst(10160994694067456423)},
|
|
{field.NewFieldConst(4497210741038443097), field.NewFieldConst(6445446770984515259)},
|
|
{field.NewFieldConst(5470898125882256227), field.NewFieldConst(8249357863801204908)},
|
|
{field.NewFieldConst(16762380205819269382), field.NewFieldConst(172510727904060494)},
|
|
{field.NewFieldConst(7920011253931301350), field.NewFieldConst(9681193995678483756)},
|
|
{field.NewFieldConst(8258951043315574232), field.NewFieldConst(13137471323476190588)},
|
|
{field.NewFieldConst(4339364527801481944), field.NewFieldConst(16862579756243326257)},
|
|
{field.NewFieldConst(8980029737458438570), field.NewFieldConst(14651625524257781922)},
|
|
{field.NewFieldConst(17935993907375677671), field.NewFieldConst(5318319737405476029)},
|
|
{field.NewFieldConst(716791501623731831), field.NewFieldConst(18425818060734993303)},
|
|
{field.NewFieldConst(601549076806364660), field.NewFieldConst(12303919727550310013)},
|
|
{field.NewFieldConst(18026376178895562118), field.NewFieldConst(14687420532194520529)},
|
|
{field.NewFieldConst(16943892475592026666), field.NewFieldConst(7451688507369746594)},
|
|
{field.NewFieldConst(8724072308842121373), field.NewFieldConst(11662986251379699921)},
|
|
{field.NewFieldConst(3201079129905071298), field.NewFieldConst(11542621183935331871)},
|
|
{field.NewFieldConst(9889739070824270529), field.NewFieldConst(3891825006545095657)},
|
|
{field.NewFieldConst(15538978715382418651), field.NewFieldConst(2419672705453973015)},
|
|
{field.NewFieldConst(3001525234835174062), field.NewFieldConst(17115969716224377534)},
|
|
{field.NewFieldConst(18001237923148428045), field.NewFieldConst(2198015511953873786)},
|
|
{field.NewFieldConst(14186741561112601666), field.NewFieldConst(13156405199205086627)},
|
|
{field.NewFieldConst(10166592177477126663), field.NewFieldConst(13586051001537885658)},
|
|
{field.NewFieldConst(8678352780562557555), field.NewFieldConst(1968366090049630482)},
|
|
{field.NewFieldConst(5627999915794840395), field.NewFieldConst(13597556392696072088)},
|
|
{field.NewFieldConst(9291327714650886898), field.NewFieldConst(2411361999629511024)},
|
|
{field.NewFieldConst(6824943761729555359), field.NewFieldConst(7484507209360908175)},
|
|
{field.NewFieldConst(6276580084700132178), field.NewFieldConst(6246691657613415035)},
|
|
{field.NewFieldConst(10736230409698057656), field.NewFieldConst(7306720219045064925)},
|
|
{field.NewFieldConst(15442170485732017109), field.NewFieldConst(1739984147692575725)},
|
|
{field.NewFieldConst(4448878124301402845), field.NewFieldConst(18436455114977877323)},
|
|
{field.NewFieldConst(638012599023653143), field.NewFieldConst(16265955502846626936)},
|
|
{field.NewFieldConst(6793907577559820653), field.NewFieldConst(15343551069946118619)},
|
|
{field.NewFieldConst(17903286158968614509), field.NewFieldConst(9559701571149911252)},
|
|
{field.NewFieldConst(14652006464960400785), field.NewFieldConst(50421020503848143)},
|
|
{field.NewFieldConst(9452858006432860845), field.NewFieldConst(2625726945677447428)},
|
|
{field.NewFieldConst(853640589013584892), field.NewFieldConst(14655161412118141649)},
|
|
{field.NewFieldConst(12863832006745352780), field.NewFieldConst(14564189651136231029)},
|
|
{field.NewFieldConst(8551517270810530438), field.NewFieldConst(10859465327758962622)},
|
|
{field.NewFieldConst(10113468436120661191), field.NewFieldConst(16040944006557911589)},
|
|
{field.NewFieldConst(4921439225277518643), field.NewFieldConst(8399175422965154512)},
|
|
{field.NewFieldConst(13068240354812957183), field.NewFieldConst(8520393046894990946)},
|
|
{field.NewFieldConst(1189183420107219532), field.NewFieldConst(18066897627856601789)},
|
|
{field.NewFieldConst(3997900004790871153), field.NewFieldConst(1269718920871578117)},
|
|
{field.NewFieldConst(15438784576472256462), field.NewFieldConst(9577304425687441047)},
|
|
{field.NewFieldConst(17158083218962275971), field.NewFieldConst(17379790274576244684)},
|
|
{field.NewFieldConst(3470452736936929010), field.NewFieldConst(12769555113044633230)},
|
|
{field.NewFieldConst(18389243269515626865), field.NewFieldConst(8023737530782576805)},
|
|
{field.NewFieldConst(3529213023405995549), field.NewFieldConst(8829896701928525938)},
|
|
{field.NewFieldConst(14072413770981804653), field.NewFieldConst(9660693090213237836)},
|
|
{field.NewFieldConst(14369435038913678671), field.NewFieldConst(7659129852562422871)},
|
|
{field.NewFieldConst(6779301728445724040), field.NewFieldConst(18290152515233036523)},
|
|
{field.NewFieldConst(8113954200727174254), field.NewFieldConst(16490002532983549952)},
|
|
{field.NewFieldConst(11465655095604389561), field.NewFieldConst(9066100972825318010)},
|
|
{field.NewFieldConst(15998691377748321442), field.NewFieldConst(16970045124898180365)},
|
|
{field.NewFieldConst(8424730626816696233), field.NewFieldConst(17168184083072399403)},
|
|
{field.NewFieldConst(1941959246552302666), field.NewFieldConst(6751013195867127440)},
|
|
{field.NewFieldConst(1907519456922228224), field.NewFieldConst(689311996911195932)},
|
|
{field.NewFieldConst(16277197060525435740), field.NewFieldConst(12018417724719716072)},
|
|
}
|
|
|
|
var reducingExtensionGateExpectedConstraints = []field.QuadraticExtension{
|
|
{field.NewFieldConst(12832102811425062912), field.NewFieldConst(2979695993654444095)},
|
|
{field.NewFieldConst(4822478941232734654), field.NewFieldConst(2600327308894333341)},
|
|
{field.NewFieldConst(12450653411048814602), field.NewFieldConst(1161667420593062956)},
|
|
{field.NewFieldConst(3145631295867407955), field.NewFieldConst(1702059944088737075)},
|
|
{field.NewFieldConst(4597190091407364771), field.NewFieldConst(4257077286672555409)},
|
|
{field.NewFieldConst(10177664366491925772), field.NewFieldConst(10489575701186298604)},
|
|
{field.NewFieldConst(2754621968864722399), field.NewFieldConst(12087963411706301871)},
|
|
{field.NewFieldConst(534408217555793149), field.NewFieldConst(12559345737194357169)},
|
|
{field.NewFieldConst(9508765820222303634), field.NewFieldConst(14102461861317982082)},
|
|
{field.NewFieldConst(15070954032232801974), field.NewFieldConst(2078249670161696735)},
|
|
{field.NewFieldConst(10465809629504954691), field.NewFieldConst(16223748685835312497)},
|
|
{field.NewFieldConst(10957196413441800202), field.NewFieldConst(3841214025425953691)},
|
|
{field.NewFieldConst(18438848195188240825), field.NewFieldConst(5697684145424680565)},
|
|
{field.NewFieldConst(565455534266129104), field.NewFieldConst(12543354947937779806)},
|
|
{field.NewFieldConst(16376588778962418386), field.NewFieldConst(1273250903423198860)},
|
|
{field.NewFieldConst(4128104469872810921), field.NewFieldConst(1433037233801071123)},
|
|
{field.NewFieldConst(6011337242244377340), field.NewFieldConst(16068106780789397185)},
|
|
{field.NewFieldConst(4741354504248328629), field.NewFieldConst(3000853646720964165)},
|
|
{field.NewFieldConst(13064594310789140866), field.NewFieldConst(10950406741883971259)},
|
|
{field.NewFieldConst(17079026691450750925), field.NewFieldConst(6522027970928818261)},
|
|
{field.NewFieldConst(13158136237489326416), field.NewFieldConst(7677629162183242732)},
|
|
{field.NewFieldConst(14741398060174921234), field.NewFieldConst(2960243215156352194)},
|
|
{field.NewFieldConst(9111161782199179468), field.NewFieldConst(8010960876261510099)},
|
|
{field.NewFieldConst(1404837029582986528), field.NewFieldConst(9377230983302764181)},
|
|
{field.NewFieldConst(7086781234814455260), field.NewFieldConst(7571558192372650697)},
|
|
{field.NewFieldConst(5627013434503229817), field.NewFieldConst(14984048934926143304)},
|
|
{field.NewFieldConst(2115495655441739405), field.NewFieldConst(1656704965110317534)},
|
|
{field.NewFieldConst(2311846135199651566), field.NewFieldConst(17438437808346967358)},
|
|
{field.NewFieldConst(8679806319651401773), field.NewFieldConst(3278538718508560579)},
|
|
{field.NewFieldConst(7897681105604536660), field.NewFieldConst(10966573925848082711)},
|
|
{field.NewFieldConst(5451958405177630542), field.NewFieldConst(9207735009647199721)},
|
|
{field.NewFieldConst(8825486358121162697), field.NewFieldConst(15997852519026522914)},
|
|
{field.NewFieldConst(475225211669491693), field.NewFieldConst(1907827506180042626)},
|
|
{field.NewFieldConst(16033031089519343732), field.NewFieldConst(15009948832718035672)},
|
|
{field.NewFieldConst(5048598591200038865), field.NewFieldConst(156574475928756206)},
|
|
{field.NewFieldConst(3580311624647961767), field.NewFieldConst(6084715537433906996)},
|
|
{field.NewFieldConst(9121009921295095324), field.NewFieldConst(18407759801432275235)},
|
|
{field.NewFieldConst(16569013039730214123), field.NewFieldConst(3930908108224055041)},
|
|
{field.NewFieldConst(13844066138909451365), field.NewFieldConst(6585754647203519368)},
|
|
{field.NewFieldConst(14133345335167543367), field.NewFieldConst(3946807387480232364)},
|
|
{field.NewFieldConst(9876285028806980582), field.NewFieldConst(40898067822033734)},
|
|
{field.NewFieldConst(6293483059765701407), field.NewFieldConst(16009270905706605849)},
|
|
{field.NewFieldConst(11635947241393753594), field.NewFieldConst(5053395178858294866)},
|
|
{field.NewFieldConst(16062194595705166277), field.NewFieldConst(752574348595159408)},
|
|
{field.NewFieldConst(15607597716340375230), field.NewFieldConst(10428583315124220143)},
|
|
{field.NewFieldConst(6975301479426228318), field.NewFieldConst(16528136630898216147)},
|
|
{field.NewFieldConst(16312827398430223622), field.NewFieldConst(17909475722464415780)},
|
|
{field.NewFieldConst(2273087545743905667), field.NewFieldConst(12405446777919046866)},
|
|
{field.NewFieldConst(14781933506876191161), field.NewFieldConst(4464109151368149713)},
|
|
{field.NewFieldConst(4226716729950095934), field.NewFieldConst(8908251769229049654)},
|
|
{field.NewFieldConst(8310476487592089883), field.NewFieldConst(3834672170570438819)},
|
|
{field.NewFieldConst(4285568636604940795), field.NewFieldConst(7183765355016179794)},
|
|
{field.NewFieldConst(14300853697824059506), field.NewFieldConst(16287477445929928328)},
|
|
{field.NewFieldConst(1238186507267033247), field.NewFieldConst(12357102109973664962)},
|
|
{field.NewFieldConst(15607388919140050768), field.NewFieldConst(15421065238069253306)},
|
|
{field.NewFieldConst(12418734453826432586), field.NewFieldConst(12072056126139297564)},
|
|
{field.NewFieldConst(3924467115116313620), field.NewFieldConst(1212362379653628161)},
|
|
{field.NewFieldConst(8252514850759544679), field.NewFieldConst(7893938436444134034)},
|
|
{field.NewFieldConst(711675815009325200), field.NewFieldConst(15678724077367989757)},
|
|
{field.NewFieldConst(10920573406841924033), field.NewFieldConst(8189696933773246220)},
|
|
{field.NewFieldConst(9737295100232588618), field.NewFieldConst(13383462338120177171)},
|
|
{field.NewFieldConst(8983013033045953935), field.NewFieldConst(5301160793103788033)},
|
|
{field.NewFieldConst(2086512740154274197), field.NewFieldConst(9511985884344255651)},
|
|
{field.NewFieldConst(7404726366142548080), field.NewFieldConst(11257391295697140486)},
|
|
{field.NewFieldConst(10045968629671906256), field.NewFieldConst(10721172752468420959)},
|
|
{field.NewFieldConst(9499240237398016191), field.NewFieldConst(17996498955496851489)},
|
|
}
|
|
|
|
// ReducingGate { num_coeffs: 44 }
|
|
var reducingGateExpectedConstraints = []field.QuadraticExtension{
|
|
{field.NewFieldConst(4189565386714553574), field.NewFieldConst(14972099283023295929)},
|
|
{field.NewFieldConst(4811224976739448335), field.NewFieldConst(17901409314576454439)},
|
|
{field.NewFieldConst(5140059407491502784), field.NewFieldConst(1144330742785924570)},
|
|
{field.NewFieldConst(7077436393778991453), field.NewFieldConst(13398199711778224412)},
|
|
{field.NewFieldConst(11213768990622043903), field.NewFieldConst(3886053425349218150)},
|
|
{field.NewFieldConst(2946099412905029571), field.NewFieldConst(16515307040211357295)},
|
|
{field.NewFieldConst(11766152895257088950), field.NewFieldConst(12561350435611412995)},
|
|
{field.NewFieldConst(15559670172179416359), field.NewFieldConst(14246884723129607378)},
|
|
{field.NewFieldConst(5240707719525548158), field.NewFieldConst(1640773599873992510)},
|
|
{field.NewFieldConst(14358821079049832289), field.NewFieldConst(2746855687282611080)},
|
|
{field.NewFieldConst(3214086216088588558), field.NewFieldConst(1520697626094905530)},
|
|
{field.NewFieldConst(9834748172213967248), field.NewFieldConst(13487010468070558667)},
|
|
{field.NewFieldConst(1423442768503334248), field.NewFieldConst(10945790255819476518)},
|
|
{field.NewFieldConst(2308372186436983690), field.NewFieldConst(8803174935784778070)},
|
|
{field.NewFieldConst(9995833078447025147), field.NewFieldConst(9074310518079663649)},
|
|
{field.NewFieldConst(14149697874498108875), field.NewFieldConst(15875817120435194028)},
|
|
{field.NewFieldConst(14564758547073982656), field.NewFieldConst(13386335755835868953)},
|
|
{field.NewFieldConst(6432745607675418074), field.NewFieldConst(8030247499566565321)},
|
|
{field.NewFieldConst(17308235779926438117), field.NewFieldConst(16843697410674499818)},
|
|
{field.NewFieldConst(15507223129386571868), field.NewFieldConst(3935281607585552366)},
|
|
{field.NewFieldConst(16041402982622709805), field.NewFieldConst(12432717078068957835)},
|
|
{field.NewFieldConst(6455955094164032063), field.NewFieldConst(2435635342699968412)},
|
|
{field.NewFieldConst(9814981570869789379), field.NewFieldConst(5009257884262115226)},
|
|
{field.NewFieldConst(9452031978763862902), field.NewFieldConst(15609083603899848676)},
|
|
{field.NewFieldConst(13532623109002857304), field.NewFieldConst(7324541443245949391)},
|
|
{field.NewFieldConst(7899075212455453622), field.NewFieldConst(14276489152002439614)},
|
|
{field.NewFieldConst(2403019844704266911), field.NewFieldConst(5922544710604013781)},
|
|
{field.NewFieldConst(9709471021111675830), field.NewFieldConst(5538539165068927028)},
|
|
{field.NewFieldConst(15700585567216041265), field.NewFieldConst(17893894492159337326)},
|
|
{field.NewFieldConst(8890003199638063977), field.NewFieldConst(17726621767321974437)},
|
|
{field.NewFieldConst(389239919653982052), field.NewFieldConst(3497778410650283061)},
|
|
{field.NewFieldConst(845227572644858827), field.NewFieldConst(7040344997713673855)},
|
|
{field.NewFieldConst(9861253052349275208), field.NewFieldConst(1880449137233040023)},
|
|
{field.NewFieldConst(9239454143759318515), field.NewFieldConst(7968256557482935820)},
|
|
{field.NewFieldConst(12576879243038758854), field.NewFieldConst(9784626207087825707)},
|
|
{field.NewFieldConst(14811673587164089973), field.NewFieldConst(10785522535030299714)},
|
|
{field.NewFieldConst(696437091186897361), field.NewFieldConst(13293602092569033065)},
|
|
{field.NewFieldConst(1240161179290551759), field.NewFieldConst(9542275505416038259)},
|
|
{field.NewFieldConst(5298553932515957396), field.NewFieldConst(14597738151157731445)},
|
|
{field.NewFieldConst(8472517818840783225), field.NewFieldConst(7685861056688910111)},
|
|
{field.NewFieldConst(10067665523858551777), field.NewFieldConst(13019870415534016025)},
|
|
{field.NewFieldConst(3030966178198674680), field.NewFieldConst(10107838846102885642)},
|
|
{field.NewFieldConst(6762889891370677550), field.NewFieldConst(16151528872832782368)},
|
|
{field.NewFieldConst(17207754552662723664), field.NewFieldConst(15168039969859158460)},
|
|
{field.NewFieldConst(9111161782199179468), field.NewFieldConst(8010960876261510099)},
|
|
{field.NewFieldConst(1212079098724692260), field.NewFieldConst(3976842077579916925)},
|
|
{field.NewFieldConst(8111924351272477885), field.NewFieldConst(1472738463707044435)},
|
|
{field.NewFieldConst(14549763060495382561), field.NewFieldConst(8148654488443197206)},
|
|
{field.NewFieldConst(9633247645878352168), field.NewFieldConst(4173826759172401145)},
|
|
{field.NewFieldConst(13429667484612728110), field.NewFieldConst(139708813783643870)},
|
|
{field.NewFieldConst(11164941208889426013), field.NewFieldConst(3615779386887825309)},
|
|
{field.NewFieldConst(15733773570058687441), field.NewFieldConst(11172582394325691371)},
|
|
{field.NewFieldConst(11237663549079845099), field.NewFieldConst(375954911737718734)},
|
|
{field.NewFieldConst(14815280969174152094), field.NewFieldConst(17903238907570421232)},
|
|
{field.NewFieldConst(12264332321023153985), field.NewFieldConst(4996015210046477989)},
|
|
{field.NewFieldConst(5733452693326962912), field.NewFieldConst(15445457134261228447)},
|
|
{field.NewFieldConst(11339891595047637420), field.NewFieldConst(762619178430884475)},
|
|
{field.NewFieldConst(10413672060220880988), field.NewFieldConst(2522708614237496949)},
|
|
{field.NewFieldConst(4759794002943168525), field.NewFieldConst(8366670758049431064)},
|
|
{field.NewFieldConst(11081128192182141387), field.NewFieldConst(5264843790841556843)},
|
|
{field.NewFieldConst(16467547707866820269), field.NewFieldConst(10395994280728082037)},
|
|
{field.NewFieldConst(7372902852922723938), field.NewFieldConst(6597057511414169148)},
|
|
{field.NewFieldConst(1246550990665510080), field.NewFieldConst(369146659419534786)},
|
|
{field.NewFieldConst(107137977263990694), field.NewFieldConst(13480217899797734610)},
|
|
{field.NewFieldConst(9352391006524927052), field.NewFieldConst(16474580549927501346)},
|
|
{field.NewFieldConst(11475195577527382963), field.NewFieldConst(16771481018793784004)},
|
|
{field.NewFieldConst(7763817490144412733), field.NewFieldConst(7847907679735875325)},
|
|
{field.NewFieldConst(6954934416977006194), field.NewFieldConst(1588175103882481774)},
|
|
{field.NewFieldConst(208699790124989138), field.NewFieldConst(104050776110144395)},
|
|
{field.NewFieldConst(1999712470949493845), field.NewFieldConst(14640293671425837284)},
|
|
{field.NewFieldConst(17489389210332023693), field.NewFieldConst(1485853484717956236)},
|
|
{field.NewFieldConst(13389678828109836153), field.NewFieldConst(12239927773742888217)},
|
|
{field.NewFieldConst(7279356606052782033), field.NewFieldConst(16889809967345118643)},
|
|
{field.NewFieldConst(5530632913824527303), field.NewFieldConst(6593916246324540830)},
|
|
{field.NewFieldConst(6517985275757881887), field.NewFieldConst(1094679265639341934)},
|
|
{field.NewFieldConst(16005022297334791008), field.NewFieldConst(2231375568117939019)},
|
|
{field.NewFieldConst(7801581545066110268), field.NewFieldConst(16195585011186011335)},
|
|
{field.NewFieldConst(2346311239309318787), field.NewFieldConst(10194252071441594046)},
|
|
{field.NewFieldConst(1333414916806612489), field.NewFieldConst(4078668601880487193)},
|
|
{field.NewFieldConst(17162202837341088150), field.NewFieldConst(3946492721743094611)},
|
|
{field.NewFieldConst(2372952988964786162), field.NewFieldConst(14459600129361968991)},
|
|
{field.NewFieldConst(15958985504784681452), field.NewFieldConst(18297567352909625870)},
|
|
{field.NewFieldConst(5468110010239944205), field.NewFieldConst(1297673223075459793)},
|
|
{field.NewFieldConst(5916958362061888790), field.NewFieldConst(12686064186569549334)},
|
|
{field.NewFieldConst(17141186363273294375), field.NewFieldConst(5330662447468959333)},
|
|
{field.NewFieldConst(9597329746711776008), field.NewFieldConst(13290917949843243492)},
|
|
{field.NewFieldConst(9061260430036409956), field.NewFieldConst(10642927510372211646)},
|
|
{field.NewFieldConst(9766392710518436993), field.NewFieldConst(1864738510099355769)},
|
|
}
|
|
|
|
// ArithmeticExtensionGate { num_ops: 10 }
|
|
var arithmeticExtensionGateExpectedConstraints = []field.QuadraticExtension{
|
|
{field.NewFieldConst(14556369430662721230), field.NewFieldConst(4131185000258568561)},
|
|
{field.NewFieldConst(16378466706564867046), field.NewFieldConst(1439052841211884527)},
|
|
{field.NewFieldConst(8231479592213172392), field.NewFieldConst(8409169031581010782)},
|
|
{field.NewFieldConst(5465959779370835700), field.NewFieldConst(17016702720873000919)},
|
|
{field.NewFieldConst(10611951970626560747), field.NewFieldConst(11015475306668399283)},
|
|
{field.NewFieldConst(6566683434087540889), field.NewFieldConst(7528162900166069532)},
|
|
{field.NewFieldConst(13167150559619768862), field.NewFieldConst(15618445283750881414)},
|
|
{field.NewFieldConst(14768578132422983729), field.NewFieldConst(13938407401080069149)},
|
|
{field.NewFieldConst(18415232841919605685), field.NewFieldConst(15088528771916927003)},
|
|
{field.NewFieldConst(1305736199568141897), field.NewFieldConst(16885250849392919438)},
|
|
{field.NewFieldConst(1425549592953864549), field.NewFieldConst(1074162823816629148)},
|
|
{field.NewFieldConst(12616210534513128803), field.NewFieldConst(8618852250387339753)},
|
|
{field.NewFieldConst(16775588216530426832), field.NewFieldConst(16358913853138883160)},
|
|
{field.NewFieldConst(236831045676808583), field.NewFieldConst(16231688985959438642)},
|
|
{field.NewFieldConst(264831195814170716), field.NewFieldConst(9852325877887114505)},
|
|
{field.NewFieldConst(14065541678187010167), field.NewFieldConst(5594602585697559035)},
|
|
{field.NewFieldConst(2354884863196165822), field.NewFieldConst(12715102096346587892)},
|
|
{field.NewFieldConst(5881791209743274427), field.NewFieldConst(1913490798645218291)},
|
|
{field.NewFieldConst(3621056055759314065), field.NewFieldConst(15076066883455218113)},
|
|
{field.NewFieldConst(15382741815013668685), field.NewFieldConst(5674166256062091576)},
|
|
}
|
|
|
|
// MulExtensionGate { num_ops: 13 }
|
|
var mulExtensionGateExpectedConstraints = []field.QuadraticExtension{
|
|
{field.NewFieldConst(14558272317822654580), field.NewFieldConst(833215892324477732)},
|
|
{field.NewFieldConst(9214806296346539012), field.NewFieldConst(7798842673847612486)},
|
|
{field.NewFieldConst(4933313819253472884), field.NewFieldConst(17115399133104593821)},
|
|
{field.NewFieldConst(6382294466663581729), field.NewFieldConst(8863722647290983592)},
|
|
{field.NewFieldConst(5274430631758054179), field.NewFieldConst(1761561038204031519)},
|
|
{field.NewFieldConst(6975818216493368257), field.NewFieldConst(3643153118790582585)},
|
|
{field.NewFieldConst(9382708770545050748), field.NewFieldConst(2040988809014144797)},
|
|
{field.NewFieldConst(7526300035416853327), field.NewFieldConst(8692405747344509879)},
|
|
{field.NewFieldConst(6092157877842311771), field.NewFieldConst(5767914690949635280)},
|
|
{field.NewFieldConst(3636879736078164520), field.NewFieldConst(454792903724498694)},
|
|
{field.NewFieldConst(5982213211108308130), field.NewFieldConst(3906161453783544349)},
|
|
{field.NewFieldConst(1353999567434327832), field.NewFieldConst(3912356165392315450)},
|
|
{field.NewFieldConst(3866250282554618990), field.NewFieldConst(14215790041865539111)},
|
|
{field.NewFieldConst(16972659905821970574), field.NewFieldConst(2550277288305104044)},
|
|
{field.NewFieldConst(6739526869755283609), field.NewFieldConst(4676222628249438354)},
|
|
{field.NewFieldConst(18314541579046409607), field.NewFieldConst(13871312232745645647)},
|
|
{field.NewFieldConst(13309435341537760906), field.NewFieldConst(10879629980202564460)},
|
|
{field.NewFieldConst(8149445702527176593), field.NewFieldConst(12079787385488004774)},
|
|
{field.NewFieldConst(141936326832390573), field.NewFieldConst(9852981409020916366)},
|
|
{field.NewFieldConst(1174277439708011834), field.NewFieldConst(11084240604056156653)},
|
|
{field.NewFieldConst(3890191667424476902), field.NewFieldConst(1428130379783403165)},
|
|
{field.NewFieldConst(18264002552181363059), field.NewFieldConst(17855293364353531924)},
|
|
{field.NewFieldConst(1657518282890904146), field.NewFieldConst(14874491364689193658)},
|
|
{field.NewFieldConst(9091236796792826297), field.NewFieldConst(18232800981045995203)},
|
|
{field.NewFieldConst(7965395014621568897), field.NewFieldConst(15643014489741966811)},
|
|
{field.NewFieldConst(14048129594584036134), field.NewFieldConst(8880723489474532129)},
|
|
}
|
|
|
|
// CosetInterpolationGate { subgroup_bits: 4, degree: 6, barycentric_weights: [17293822565076172801, 18374686475376656385, 18446744069413535745, 281474976645120, 17592186044416, 18446744069414584577, 18446744000695107601, 18446744065119617025, 1152921504338411520, 72057594037927936, 18446744069415632897, 18446462594437939201, 18446726477228539905, 18446744069414584065, 68719476720, 4294967296], _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }<D=2>
|
|
var cosetInterpolationGateExpectedConstraints = []field.QuadraticExtension{
|
|
{field.NewFieldConst(4489474937116132272), field.NewFieldConst(17966585078409280607)},
|
|
{field.NewFieldConst(6284821823752419954), field.NewFieldConst(15732864946173560339)},
|
|
{field.NewFieldConst(12879723719779486283), field.NewFieldConst(983649133858104142)},
|
|
{field.NewFieldConst(17293136937393925432), field.NewFieldConst(4033193666483141970)},
|
|
{field.NewFieldConst(10809912963683055710), field.NewFieldConst(3166226310305151244)},
|
|
{field.NewFieldConst(13051854837169808452), field.NewFieldConst(12636844243964449888)},
|
|
{field.NewFieldConst(15180422697988222141), field.NewFieldConst(3172471974421734205)},
|
|
{field.NewFieldConst(7715327263429433235), field.NewFieldConst(14269461688353925342)},
|
|
{field.NewFieldConst(7348198793616724228), field.NewFieldConst(11426363269581761252)},
|
|
{field.NewFieldConst(6529761710182712179), field.NewFieldConst(15370899814178958348)},
|
|
{field.NewFieldConst(1312640305437468539), field.NewFieldConst(7416725026793550034)},
|
|
{field.NewFieldConst(7435934314089172319), field.NewFieldConst(8931511780309647479)},
|
|
}
|
|
|
|
// PoseidonMdsGate(PhantomData<plonky2_field::goldilocks_field::GoldilocksField>)<WIDTH=12>"
|
|
var poseidonMdsGateExpectedConstraints = []field.QuadraticExtension{
|
|
{field.NewFieldConst(7821764612044984890), field.NewFieldConst(11645399715550800761)},
|
|
{field.NewFieldConst(7054686226368496581), field.NewFieldConst(3456599659382547499)},
|
|
{field.NewFieldConst(9932401212201586910), field.NewFieldConst(15935184283784595275)},
|
|
{field.NewFieldConst(14850232436396031573), field.NewFieldConst(10054869170615550942)},
|
|
{field.NewFieldConst(17859784214232634920), field.NewFieldConst(3141019307077014353)},
|
|
{field.NewFieldConst(1316926243065869924), field.NewFieldConst(5447399801288094074)},
|
|
{field.NewFieldConst(12198784876096903918), field.NewFieldConst(10976551553233951532)},
|
|
{field.NewFieldConst(3280500541526908156), field.NewFieldConst(1813330468204166522)},
|
|
{field.NewFieldConst(6788483962196012692), field.NewFieldConst(15983747071745976199)},
|
|
{field.NewFieldConst(3372073447943379816), field.NewFieldConst(9356836818900551936)},
|
|
{field.NewFieldConst(13834815153351545489), field.NewFieldConst(1073963211629459057)},
|
|
{field.NewFieldConst(15376716257200419051), field.NewFieldConst(16044430964768811142)},
|
|
{field.NewFieldConst(16752138206727891451), field.NewFieldConst(6303059651352280564)},
|
|
{field.NewFieldConst(17195959285241102556), field.NewFieldConst(10990140109461952122)},
|
|
{field.NewFieldConst(16812594260057394716), field.NewFieldConst(5841834090350584793)},
|
|
{field.NewFieldConst(17706037262140285164), field.NewFieldConst(8626184557677598926)},
|
|
{field.NewFieldConst(6826825357492466350), field.NewFieldConst(17865947929743097490)},
|
|
{field.NewFieldConst(13679887869755160737), field.NewFieldConst(16481628195512675795)},
|
|
{field.NewFieldConst(7881296289635150478), field.NewFieldConst(15368930380652981390)},
|
|
{field.NewFieldConst(12075171536836315078), field.NewFieldConst(12900345753644751245)},
|
|
{field.NewFieldConst(11461113822534614109), field.NewFieldConst(2937306395206947398)},
|
|
{field.NewFieldConst(18365572828001780476), field.NewFieldConst(4309067613742479326)},
|
|
{field.NewFieldConst(9460729461000852035), field.NewFieldConst(9232487430983842586)},
|
|
{field.NewFieldConst(9920817005263779727), field.NewFieldConst(16326126591726196229)},
|
|
}
|
|
|
|
type TestGateCircuit struct {
|
|
testGate gates.Gate
|
|
ExpectedConstraints []field.QuadraticExtension
|
|
}
|
|
|
|
func (circuit *TestGateCircuit) Define(api frontend.API) error {
|
|
commonCircuitData := utils.DeserializeCommonCircuitData("../../data/decode_block/common_circuit_data.json")
|
|
numSelectors := commonCircuitData.SelectorsInfo.NumSelectors()
|
|
|
|
fieldAPI := field.NewFieldAPI(api)
|
|
qeAPI := field.NewQuadraticExtensionAPI(api, fieldAPI)
|
|
|
|
vars := gates.NewEvaluationVars(localConstants[numSelectors:], localWires, publicInputsHash)
|
|
|
|
constraints := circuit.testGate.EvalUnfiltered(api, qeAPI, *vars)
|
|
|
|
if len(constraints) != len(circuit.ExpectedConstraints) {
|
|
return errors.New("gate constraints length mismatch")
|
|
}
|
|
for i := 0; i < len(constraints); i++ {
|
|
qeAPI.AssertIsEqual(constraints[i], circuit.ExpectedConstraints[i])
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func TestGates(t *testing.T) {
|
|
assert := test.NewAssert(t)
|
|
|
|
testCase := func(testGate gates.Gate, expectedConstraints []field.QuadraticExtension) {
|
|
circuit := &TestGateCircuit{testGate: testGate, ExpectedConstraints: expectedConstraints}
|
|
witness := &TestGateCircuit{testGate: testGate, ExpectedConstraints: expectedConstraints}
|
|
err := test.IsSolved(circuit, witness, field.TEST_CURVE.ScalarField())
|
|
assert.NoError(err)
|
|
}
|
|
|
|
type gateTest struct {
|
|
testGate gates.Gate
|
|
expectedConstraints []field.QuadraticExtension
|
|
}
|
|
|
|
gateTests := []gateTest{
|
|
{gates.NewPublicInputGate(), publicInputGateExpectedConstraints},
|
|
{gates.NewBaseSumGate(63, 2), baseSumGateExpectedConstraints},
|
|
{gates.NewArithmeticGate(20), arithmeticGateExpectedConstraints},
|
|
{gates.NewRandomAccessGate(4, 4, 2), randomAccessGateExpectedConstraints},
|
|
{gates.NewPoseidonGate(), poseidonGateExpectedConstraints},
|
|
{gates.NewArithmeticExtensionGate(10), arithmeticExtensionGateExpectedConstraints},
|
|
{gates.NewMultiplicationExtensionGate(13), mulExtensionGateExpectedConstraints},
|
|
{gates.NewReducingExtensionGate(33), reducingExtensionGateExpectedConstraints},
|
|
{gates.NewReducingGate(44), reducingGateExpectedConstraints},
|
|
{gates.NewCosetInterpolationGate(
|
|
4,
|
|
6,
|
|
[]goldilocks.Element{
|
|
goldilocks.NewElement(17293822565076172801),
|
|
goldilocks.NewElement(18374686475376656385),
|
|
goldilocks.NewElement(18446744069413535745),
|
|
goldilocks.NewElement(281474976645120),
|
|
goldilocks.NewElement(17592186044416),
|
|
goldilocks.NewElement(18446744069414584577),
|
|
goldilocks.NewElement(18446744000695107601),
|
|
goldilocks.NewElement(18446744065119617025),
|
|
goldilocks.NewElement(1152921504338411520),
|
|
goldilocks.NewElement(72057594037927936),
|
|
goldilocks.NewElement(18446744069415632897),
|
|
goldilocks.NewElement(18446462594437939201),
|
|
goldilocks.NewElement(18446726477228539905),
|
|
goldilocks.NewElement(18446744069414584065),
|
|
goldilocks.NewElement(68719476720),
|
|
goldilocks.NewElement(4294967296),
|
|
},
|
|
), cosetInterpolationGateExpectedConstraints},
|
|
{&gates.PoseidonMdsGate{}, poseidonMdsGateExpectedConstraints},
|
|
}
|
|
|
|
for _, test := range gateTests {
|
|
testCase(
|
|
test.testGate,
|
|
test.expectedConstraints,
|
|
)
|
|
}
|
|
}
|