pub fn not(&mut self, v: &Variable) -> Variable {
        let result = self.new_variable();
        self.add_constraint(Constraint {
            constraint_type: ConstraintType {
                ql: FE::one(),
                qr: FE::one(),
                qm: FE::zero(),
                qo: FE::zero(),
                qc: -FE::one(),
            },
            l: *v,
            r: result,
            o: self.null_variable(),
            hint: None,
        });
        result
    }
Returns a new variable `w` constrained to satisfy `w = 1 - v`. When `v` is boolean
this is the `not` operator.
crates/provers/plonk/src/constraint_system/operations.rs