diff --git a/src/lib/provable/field.ts b/src/lib/provable/field.ts index fff1bc6e58..4afb787563 100644 --- a/src/lib/provable/field.ts +++ b/src/lib/provable/field.ts @@ -26,9 +26,8 @@ import { setFieldConstructor } from './core/field-constructor.js'; import { assertLessThanFull, assertLessThanOrEqualFull, - checkRangesAsProver, - lessThanGeneric, - lessThanOrEqualGeneric, + lessThanFull, + lessThanOrEqualFull, } from './gadgets/comparison.js'; // external API @@ -587,11 +586,7 @@ class Field { if (this.isConstant() && isConstant(y)) { return new Bool(this.toBigInt() < toFp(y)); } - y = Field.from(y); - let maxBits = Fp.sizeInBits - 2; - let upperBound = 1n << BigInt(maxBits); - checkRangesAsProver(this, y, upperBound); - return lessThanGeneric(this, y, upperBound, (v) => v.toBits(maxBits)); + return lessThanFull(this, Field.from(y)); } /** @@ -621,13 +616,7 @@ class Field { if (this.isConstant() && isConstant(y)) { return new Bool(this.toBigInt() <= toFp(y)); } - y = Field.from(y); - let maxBits = Fp.sizeInBits - 2; - let upperBound = 1n << BigInt(maxBits); - checkRangesAsProver(this, y, upperBound); - return lessThanOrEqualGeneric(this, y, upperBound, (v) => - v.toBits(maxBits) - ); + return lessThanOrEqualFull(this, Field.from(y)); } /** diff --git a/tests/vk-regression/vk-regression.json b/tests/vk-regression/vk-regression.json index b077c073f1..1c431c8ef4 100644 --- a/tests/vk-regression/vk-regression.json +++ b/tests/vk-regression/vk-regression.json @@ -231,8 +231,8 @@ "digest": "f7979c1aef4fb5672c7bd77ea927c10f" }, "lessThan": { - "rows": 254, - "digest": "886cbd114436d757e58a24ac7241ea4c" + "rows": 38, + "digest": "eed5490ecb8d1d6a8e9d3699cf5e175a" }, "assertLessThanUInt64": { "rows": 14,