split
R : Type u_1
inst✝¹ : CommSemiring R
inst✝ : PerfectRing R
⊢ dite (ringChar R = 0) (fun h => id) (fun h => Function.surjInv (_ : Function.Surjective fun x => x ^ ringChar R)) 0 =
    0
case inl
R : Type u_1
inst✝¹ : CommSemiring R
inst✝ : PerfectRing R
h✝ : ringChar R = 0
⊢ id 0 = 0

case inr
R : Type u_1
inst✝¹ : CommSemiring R
inst✝ : PerfectRing R
h✝ : ¬ringChar R = 0
⊢ Function.surjInv (_ : Function.Surjective fun x => x ^ ringChar R) 0 = 0