have : ∃ y, y ≺ (descendingChain r z i) ∧ ¬Acc r y := (not_acc_iff r).mp ih.2
case succ
α : Sort u
r : α → α → Prop
z : α
hz : ¬Acc r z
i : ℕ
ih : (i ≠ 0 → r (descendingChain r z i) (descendingChain r z i.pred)) ∧ ¬Acc r (descendingChain r z i)
⊢ r (Classical.epsilon fun y => r y (descendingChain r z i) ∧ ¬Acc r y) (descendingChain r z i) ∧
    ¬Acc r (Classical.epsilon fun y => r y (descendingChain r z i) ∧ ¬Acc r y)
case succ
α : Sort u
r : α → α → Prop
z : α
hz : ¬Acc r z
i : ℕ
ih : (i ≠ 0 → r (descendingChain r z i) (descendingChain r z i.pred)) ∧ ¬Acc r (descendingChain r z i)
this : ∃ y, r y (descendingChain r z i) ∧ ¬Acc r y
⊢ r (Classical.epsilon fun y => r y (descendingChain r z i) ∧ ¬Acc r y) (descendingChain r z i) ∧
    ¬Acc r (Classical.epsilon fun y => r y (descendingChain r z i) ∧ ¬Acc r y)