simp only [shift]
D : Type
V : VarAssignment D
j : ℕ
zs : List String
d : D
⊢ shift D (V ∘ Var.openList j (List.map free_ zs)) d (bound_ 0) =
    shift D V d (Var.openList (j + 1) (List.map free_ zs) (bound_ 0))
D : Type
V : VarAssignment D
j : ℕ
zs : List String
d : D
⊢ d =
    match Var.openList (j + 1) (List.map free_ zs) (bound_ 0) with
    | free_ x => V (free_ x)
    | bound_ 0 => d
    | bound_ i.succ => V (bound_ i)