simp[encodeDecode_eq_encode_map_decode, decode_finArrow]
σ : Type u_1
α : Type u_2
β : α → Type u_3
γ : Type u_4
inst✝⁶ : Primcodable σ
inst✝⁵ : Primcodable α
inst✝⁴ : (a : α) → Fintype (β a)
inst✝³ : (a : α) → DecidableEq (β a)
inst✝² : (a : α) → Primcodable (β a)
inst✝¹ : PrimrecCard β
inst✝ : Primcodable γ
f : α → σ
hf : Primrec f
k : ℕ
this :
  Primrec fun e => encode ((encodeDecode (Fin k → α) e).bind fun c => Option.map (fun l => List.map f l) (decode c))
e : ℕ
⊢ encode ((encodeDecode (Fin k → α) e).bind fun c => Option.map (fun l => List.map f l) (decode c)) =
    encode (Option.map (fun v i => f (v i)) (decode e))
σ : Type u_1
α : Type u_2
β : α → Type u_3
γ : Type u_4
inst✝⁶ : Primcodable σ
inst✝⁵ : Primcodable α
inst✝⁴ : (a : α) → Fintype (β a)
inst✝³ : (a : α) → DecidableEq (β a)
inst✝² : (a : α) → Primcodable (β a)
inst✝¹ : PrimrecCard β
inst✝ : Primcodable γ
f : α → σ
hf : Primrec f
k : ℕ
this :
  Primrec fun e => encode ((encodeDecode (Fin k → α) e).bind fun c => Option.map (fun l => List.map f l) (decode c))
e : ℕ
⊢ encode
      ((Option.map encode ((decode e).bind fun l => Option.map (⇑(Equiv.vectorEquivFin α k)) (List.toVector k l))).bind
        fun a => Option.map (fun l => List.map f l) (decode a)) =
    encode
      (Option.map (fun v i => f (v i))
        ((decode e).bind fun l => Option.map (⇑(Equiv.vectorEquivFin α k)) (List.toVector k l)))