rw [if_neg (not_and_of_not_right (0 < Nat.succ x) not_even)]
case succ.refl.inr
x : ℕ
ih : ∀ (y : ℕ), y ≤ x → (val_bin_nat y).snd ≤ x
odd : Nat.succ x % 2 = 1
not_even : Nat.succ x % 2 ≠ 0
⊢ (if 0 < Nat.succ x ∧ Nat.succ x % 2 = 0 then
        let vbn_half := val_bin_nat (Nat.succ x / 2);
        (vbn_half.fst + 1, vbn_half.snd)
      else if 0 < Nat.succ x then (0, Nat.succ x) else (0, 0)).snd ≤
    Nat.succ x
case succ.refl.inr
x : ℕ
ih : ∀ (y : ℕ), y ≤ x → (val_bin_nat y).snd ≤ x
odd : Nat.succ x % 2 = 1
not_even : Nat.succ x % 2 ≠ 0
⊢ (if 0 < Nat.succ x then (0, Nat.succ x) else (0, 0)).snd ≤ Nat.succ x