have IH := IH λ i a h => hf i a (trans h n.lt_succ_self)
α : Type u
β : Type v
f : α → β
g₁ : Nat → α → α
g₂ : Nat → β → β
n✝ : Nat
init : α
hf✝ : ∀ (i : Nat) (a : α), i < n✝ → g₂ i (f a) = f (g₁ i a)
n : Nat
IH : (∀ (i : Nat) (a : α), i < n → g₂ i (f a) = f (g₁ i a)) → fold g₂ n (f init) = f (fold g₁ n init)
hf : ∀ (i : Nat) (a : α), i < succ n → g₂ i (f a) = f (g₁ i a)
⊢ g₂ n (fold g₂ n (f init)) = f (g₁ n (fold g₁ n init))
α : Type u
β : Type v
f : α → β
g₁ : Nat → α → α
g₂ : Nat → β → β
n✝ : Nat
init : α
hf✝ : ∀ (i : Nat) (a : α), i < n✝ → g₂ i (f a) = f (g₁ i a)
n : Nat
IH✝ : (∀ (i : Nat) (a : α), i < n → g₂ i (f a) = f (g₁ i a)) → fold g₂ n (f init) = f (fold g₁ n init)
hf : ∀ (i : Nat) (a : α), i < succ n → g₂ i (f a) = f (g₁ i a)
IH : fold g₂ n (f init) = f (fold g₁ n init)
⊢ g₂ n (fold g₂ n (f init)) = f (g₁ n (fold g₁ n init))