simp
D : Type
V : VarAssignment D
j : ℕ
zs : List String
d : D
⊢ d =
    match
      if 0 < j + 1 then bound_ 0
      else
        if x : 0 - (j + 1) < (List.map free_ zs).length then (List.map free_ zs)[0 - (j + 1)]
        else bound_ (0 - (j + 1) - (List.map free_ zs).length + (j + 1)) with
    | free_ x => V (free_ x)
    | bound_ 0 => d
    | bound_ i.succ => V (bound_ i)
no goals