apply this.of_eq <| fun p => by
  cases p <;> simp[WType.inversion, inversion, toW_eq_equivW]
  case and => rw[fintypeEquivFin_symm_zero, fintypeEquivFin_symm_one]; simp
  case or => rw[fintypeEquivFin_symm_zero, fintypeEquivFin_symm_one]; simp
  case all p =>
    rw[Equiv.symm_apply_eq]
    exact fintypeArrowEquivFinArrow_app _ _
  case ex =>
    rw[Equiv.symm_apply_eq]
    exact fintypeArrowEquivFinArrow_app _ _
L : Language
μ : Type v
inst✝⁴ : (k : ℕ) → Primcodable (L.Func k)
inst✝³ : (k : ℕ) → Primcodable (L.Rel k)
inst✝² : UniformlyPrimcodable L.Func
inst✝¹ : UniformlyPrimcodable L.Rel
inst✝ : Primcodable μ
this : Primrec fun x => (((equivW L μ) x).inversion.1, List.map (⇑(equivW L μ).symm) ((equivW L μ) x).inversion.2)
⊢ Primrec inversion
no goals