∀ {α : Type u_1} {n : ℕ} (f : Fin n → α) (motive : (lb ub : ℕ) → lb < ub → ub ≤ n → Lean.RArray α → Prop),
  (∀ (lb : ℕ) (h1 : lb < lb + 1) (h2 : lb + 1 ≤ n), motive lb (lb + 1) h1 h2 (Lean.RArray.leaf (f ⟨lb, ⋯⟩))) →
    (∀ (lb ub : ℕ) (h1 : lb < ub) (h2 : ub ≤ n) (h : ¬lb + 1 = ub),
        let mid := (lb + ub) / 2;
        motive lb mid ⋯ ⋯ (Lean.RArray.ofFn.go✝ f lb mid ⋯ ⋯) →
          motive mid ub ⋯ h2 (Lean.RArray.ofFn.go✝ f mid ub ⋯ h2) →
            motive lb ub h1 h2
              (Lean.RArray.branch mid (Lean.RArray.ofFn.go✝ f lb mid ⋯ ⋯) (Lean.RArray.ofFn.go✝ f mid ub ⋯ h2))) →
      ∀ (lb ub : ℕ) (h1 : lb < ub) (h2 : ub ≤ n), motive lb ub h1 h2 (Lean.RArray.ofFn.go✝ f lb ub h1 h2)