diff --git a/spec/chapters/shift.typ b/spec/chapters/shift.typ index 1bbd55fa5..dc1609ca7 100644 --- a/spec/chapters/shift.typ +++ b/spec/chapters/shift.typ @@ -149,9 +149,7 @@ Hereafter, one must only check that `out` is the proper cast of `shifted` into a #render_constraint_table(chip, config, groups: "limb_shifting") == Miscellaneous -#render_constraint_table(chip, config, groups: ("left_flag", "is_negative")) -*Note*: `is_negative` is not used when `signed = 0`. -As such, there is no problem with it being unconstrained in this case. +#render_constraint_table(chip, config, groups: ("left_flag", "sign")) == Lookups This chip adds the following interaction to the lookup. diff --git a/spec/src/keccak_round.toml b/spec/src/keccak_round.toml index 67a2cf9e3..68a27e919 100644 --- a/spec/src/keccak_round.toml +++ b/spec/src/keccak_round.toml @@ -190,7 +190,7 @@ kind = "interaction" tag = "KECCAK_RC" input = ["round"] output = "rc" -multiplicity = ["-", "μ"] +multiplicity = "μ" [[constraint_groups]] name = "theta" diff --git a/spec/src/shift.toml b/spec/src/shift.toml index 771f006f5..105a019ef 100644 --- a/spec/src/shift.toml +++ b/spec/src/shift.toml @@ -45,9 +45,9 @@ pad = 0 # Auxiliary [[variables.auxiliary]] -name = "is_negative" +name = "sign" type = "Bit" -desc = "Whether `in` is negative" +desc = "The sign bit of `in`" pad = 0 [[variables.auxiliary]] @@ -95,7 +95,7 @@ def = {idx = "i", polys = [ name = "extension" type = "Half" desc = "sign extension of `in`." -def = ["*", 65535, "is_negative"] +def = ["*", 65535, "sign"] [[variables.virtual]] name = "left" @@ -204,15 +204,13 @@ ref = "shift:c:direction_implies_mu" [[constraint_groups]] -name = "is_negative" +name = "sign" -[[constraints.is_negative]] -kind = "interaction" -tag = "MSB16" -input = [["idx", "in", 3]] -output = "is_negative" -multiplicity = "signed" -ref = "shift:c:is_negative_if_signed" +[[constraints.sign]] +kind = "template" +tag = "SIGN" +input = [["idx", "in", 3], "signed"] +output = "sign" [[constraint_groups]]