At the time of writing, we peform the following check in the primary cycle_group constuctor:
// If both coordinates are constant, enforce that is_infinity is also constant.
if (_x.is_constant() && _y.is_constant() && !_is_infinity.is_constant()) {
_is_infinity = bool_t(_is_infinity.get_value());
}
This ensures consistent behavior of is_constant(), which checks all three components. Eventually this should become an ASSERT instead since such an inconsistency doesn't make sense. At the time of wrirting, however, noir does produce such points. Apparently noir-lang/noir#10182 should fix this. Confirm and change to an ASSERT.
At the time of writing, we peform the following check in the primary cycle_group constuctor:
This ensures consistent behavior of
is_constant(), which checks all three components. Eventually this should become an ASSERT instead since such an inconsistency doesn't make sense. At the time of wrirting, however, noir does produce such points. Apparently noir-lang/noir#10182 should fix this. Confirm and change to an ASSERT.