Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
40fe15a
feat: tester over extensions
Tabaie Oct 1, 2026
f20879d
feat: field descriptor in API
Tabaie Oct 1, 2026
ef98b7f
feat: generic transcript
Tabaie Oct 2, 2026
5e4df84
fix: benchmark error
Tabaie Oct 2, 2026
c9bb550
feat: config and codegen
Tabaie Oct 2, 2026
3fdb6b2
refac: just a big rat
Tabaie Oct 2, 2026
655aa97
refac: small_rational.SmallRational -> rational.Element
Tabaie Oct 2, 2026
f4cdc80
style: old gofmt
Tabaie Oct 2, 2026
bbda2f7
fix: bellman test
Tabaie Oct 5, 2026
9bfd246
Merge branch 'master' into feat/gkr/extensions
Tabaie Oct 5, 2026
8f615fb
Merge branch 'master' into feat/gkr/extensions
Tabaie Oct 5, 2026
2bd671a
feat: mixed gate evaluator
Tabaie Oct 5, 2026
3542e70
refactor: use SetBytesCanonical instead
Tabaie Oct 5, 2026
796c8d0
feat: use extension suffixes for polynomial types and functions
Tabaie Oct 5, 2026
d5490e1
refactor: trim down GKR config
Tabaie Oct 5, 2026
aa07489
feat: make operands constant-first, move Field out of internal
Tabaie Oct 6, 2026
6f0bd12
feat: ommitted from previous commit and koalabear evaluators
Tabaie Oct 6, 2026
07c9080
build: codegen for snark gate evals
Tabaie Oct 6, 2026
81ac6e1
feat: codegen for gkr-koala
Tabaie Oct 6, 2026
d78e689
refactor: assignments are base field
Tabaie Oct 6, 2026
5543ab7
refactor: generify some helper functions
Tabaie Oct 6, 2026
d807a17
refactor: some more generification
Tabaie Oct 6, 2026
c85dcc7
perf: mixed protocol
Tabaie Oct 6, 2026
e14386f
refactor: unify code generation
Tabaie Oct 6, 2026
2b91592
refactor: some API tightening
Tabaie Oct 6, 2026
6c99631
test: end to end
Tabaie Oct 6, 2026
4e2ba04
build: update gnark-crypto dep
Tabaie Oct 8, 2026
abe5be9
Merge branch 'feat/gkr/extensions' into feat/gkr/e6
Tabaie Oct 8, 2026
9a455f8
build: bump gnark-crypto dep
Tabaie Oct 9, 2026
b2a63a4
Merge branch 'master' into feat/gkr/extensions
Tabaie Oct 9, 2026
4f6c711
Merge branch 'feat/gkr/extensions' into feat/gkr/e6
Tabaie Oct 9, 2026
9f472ea
refactor: some checks and documentation
Tabaie Oct 9, 2026
76277ea
fix: error when nbInstances undeterminable
Tabaie Oct 9, 2026
7593d99
refactor: renames
Tabaie Oct 9, 2026
6496f7e
Merge remote-tracking branch 'origin/master' into feat/gkr/e6
Tabaie Oct 16, 2026
64b1b91
feat: use field hashers in transcript
Tabaie Oct 18, 2026
81c88ac
fix: always pad blocks before summing
Tabaie Oct 18, 2026
e09460e
docs: clarify field matching
Tabaie Oct 18, 2026
1c8a037
refactor: transcript renames
Tabaie Oct 19, 2026
6a826c1
Merge remote-tracking branch 'origin/master' into feat/gkr/e6
Tabaie Nov 2, 2026
f1f3233
build: update gnark-crypto pin
Tabaie Nov 3, 2026
f6603cd
deslopify
Tabaie Nov 3, 2026
d81db55
fix: use hash registry
Tabaie Nov 3, 2026
3a5662a
refactor: use new gnark-crypto pin
Tabaie Nov 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions constraint/gkr.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,14 @@ func (l *GkrSingleSourceZeroCheckLevel) ClaimGroups() []GkrClaimGroup {
}
func (l *GkrSingleSourceZeroCheckLevel) FinalEvalProofIndex(wireI, _ int) int { return wireI }

// BindGkrFinalEvalProof binds the entries of finalEvalProof belonging to the unique gate inputs
// bind selects. A claimed value returned to the caller unconsolidated is checked directly against
// the assignment (see Claims.Check), never reduced by a further level, so it is not bound.
func BindGkrFinalEvalProof[F any](transcript interface{ Bind(...F) }, finalEvalProof []F, uniqueGateInputs []int, bind func(wireI int) bool, level GkrProvingLevel) {
// AbsorbGkrFinalEvalProof absorbs the entries of finalEvalProof belonging to the unique gate inputs
// wireI for which absorb(wireI) holds. A claimed value returned to the caller unconsolidated is
// checked directly against the assignment (see Claims.Check), never reduced by a further level, so
// it is not absorbed.
func AbsorbGkrFinalEvalProof[F any](transcript interface{ Absorb(...F) }, finalEvalProof []F, uniqueGateInputs []int, absorb func(wireI int) bool, level GkrProvingLevel) {
for i, inputWireI := range uniqueGateInputs {
if bind(inputWireI) {
transcript.Bind(finalEvalProof[level.FinalEvalProofIndex(i, 0):level.FinalEvalProofIndex(i+1, 0)]...)
if absorb(inputWireI) {
transcript.Absorb(finalEvalProof[level.FinalEvalProofIndex(i, 0):level.FinalEvalProofIndex(i+1, 0)]...)
}
}
}
2 changes: 1 addition & 1 deletion constraint/solver/gkrgates/registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ func Register(f gkr.GateFunction, nbIn int, options ...RegisterOption) error {
}

for _, curve := range s.curves {
compiled, err := gkrcore.CompileGateFunction(f, nbIn, gkrcore.PrimeField(curve.ScalarField()))
compiled, err := gkrcore.CompileGateFunction(f, nbIn, gkr.PrimeField(curve.ScalarField()))
if err != nil {
return err
}
Expand Down
149 changes: 108 additions & 41 deletions gkr/bls12-377/gkr.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading