pub fn new_boolean(&mut self) -> Variable {
        let boolean = self.new_variable();
        self.add_constraint(Constraint {
            constraint_type: ConstraintType {
                ql: -FE::one(),
                qr: FE::zero(),
                qm: FE::one(),
                qo: FE::zero(),
                qc: FE::zero(),
            },
            l: boolean,
            r: boolean,
            o: self.null_variable(),
            hint: None,
        });
        boolean
    }
Returns a new variable `w` constrained to take either `0` or `1`
values.
crates/provers/plonk/src/constraint_system/types.rs