pub fn assign<F: ScalarField>(
    gate: &impl GateInstructions<F>,
    ctx: &mut Context<F>,
    a: OverflowInteger<F>,
    c_f: F,
    c_log2_ceil: usize
) -> OverflowInteger<F>