apply to₂'
α : Type u_1
α₁ : Type u_2
α₂ : Type u_3
β : Type u_4
γ : Type u_5
σ : Type u_6
τ : Type u_7
inst✝⁶ : Primcodable α
inst✝⁵ : Primcodable α₁
inst✝⁴ : Primcodable α₂
inst✝³ : Primcodable β
inst✝² : Primcodable γ
inst✝¹ : Primcodable σ
inst✝ : Primcodable τ
f : σ → α × β → γ
hf : Primrec₂ f
⊢ Primrec₂ fun a =>
    Function.uncurry fun head tail =>
      (fun a_1 x =>
          List.casesOn a.2.2 (some []) fun b x =>
            Option.map (fun cs => f a.1.1.1 (a_1, b) :: cs.iget)
              (a.1.2.get? (encode (a.1.1.2.unpair.1.pred.unpair.2, a.1.1.2.unpair.2.pred.unpair.2))))
        head tail
case hf
α : Type u_1
α₁ : Type u_2
α₂ : Type u_3
β : Type u_4
γ : Type u_5
σ : Type u_6
τ : Type u_7
inst✝⁶ : Primcodable α
inst✝⁵ : Primcodable α₁
inst✝⁴ : Primcodable α₂
inst✝³ : Primcodable β
inst✝² : Primcodable γ
inst✝¹ : Primcodable σ
inst✝ : Primcodable τ
f : σ → α × β → γ
hf : Primrec₂ f
⊢ Primrec fun p =>
    Function.uncurry
      (fun head tail =>
        (fun a x =>
            List.casesOn p.1.2.2 (some []) fun b x =>
              Option.map (fun cs => f p.1.1.1.1 (a, b) :: cs.iget)
                (p.1.1.2.get? (encode (p.1.1.1.2.unpair.1.pred.unpair.2, p.1.1.1.2.unpair.2.pred.unpair.2))))
          head tail)
      p.2