Consensys/corset

Aliases cause Undeclared Variables in `define.go`

Closed this issue · 0 comments

(see also #179)

Minimal example for reproduction:

(module m1)
(defcolumns A B C)
(defalias B' B)
(defconstraint test () (vanishes! A))

With the command corset wizard-iop test.lisp we get this:

package define

import (
	_ "embed"

	"github.com/consensys/zkevm-monorepo/prover/symbolic"
)

func ZkEVMDefine(build *Builder) {
	//
	// Corset-computed columns
	//
	m1__A := build.RegisterCommit("m1.A", build.Settings.Traces.M1)
	m1__B := build.RegisterCommit("m1.B", build.Settings.Traces.M1)


	//
	// Interleaved columns
	//


	//
	// Constraints
	//
	build.GlobalConstraint("m1.test", m1__A.AsVariable())
}

We can see that C is not declared (i.e. since it is not used) but B is (presumably because of the defalias).