pub fn if_nonzero_else(
        &mut self,
        condition: &Variable,
        v1: &Variable,
        v2: &Variable,
    ) -> Variable {
        let (is_zero, _) = self.inv(condition);
        self.if_else(&is_zero, v2, v1)
    }
Creates a new variable `w` constrained to be `v1` in case
`condition` is not zero and `v2` otherwise.
crates/provers/plonk/src/constraint_system/conditional.rs