Przeglądaj źródła

zk::gadget::less_than: Clarify that b can be arbitrary field element

therealyingtong 2 lat temu
rodzic
commit
f437a23533
1 zmienionych plików z 9 dodań i 2 usunięć
  1. 9 2
      src/zk/gadget/less_than.rs

+ 9 - 2
src/zk/gadget/less_than.rs

@@ -16,6 +16,13 @@
  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
+//! Given two values:
+//!     - `a`, a NUM_OF_BITS-length value and
+//!     - `b`, an arbitrary field element,
+//! this gadget constrains them in the following way:
+//!     - in `strict` mode, `a` is constrained to be strictly less than `b`;
+//!     - else, `a` is constrained to be less than or equal to `b`.
+
 use halo2_proofs::{
     arithmetic::Field,
     circuit::{AssignedCell, Chip, Layouter, Region, Value},
@@ -338,6 +345,7 @@ mod tests {
             (pallas::Base::from(13), pallas::Base::from(15)),
             (pallas::Base::ZERO, pallas::Base::from(u64::MAX)),
             (pallas::Base::ONE, pallas::Base::from(rand::random::<u64>())),
+            (pallas::Base::from(u64::MAX), pallas::Base::from(u64::MAX) + pallas::Base::ONE),
         ];
 
         let invalid_pairs = [
@@ -347,7 +355,6 @@ mod tests {
             (pallas::Base::ONE, pallas::Base::ONE),
             (pallas::Base::ONE, pallas::Base::ZERO),
             (pallas::Base::from(u64::MAX), pallas::Base::from(u64::MAX)),
-            //FIXME: (pallas::Base::from(u64::MAX), pallas::Base::from(u64::MAX) + pallas::Base::ONE),
         ];
 
         use plotters::prelude::*;
@@ -403,7 +410,7 @@ mod tests {
             ),
             (MAX_253 - pallas::Base::from(2), MAX_253 - pallas::Base::ONE),
             (MAX_253 - pallas::Base::ONE, MAX_253),
-            (MAX_253, MAX_253 + pallas::Base::ONE), // <-- Is this legit??
+            (MAX_253, MAX_253 + pallas::Base::ONE),
         ];
 
         let invalid_pairs = [