. rw [weierstrass]
  simp only [ha1, ha3, mul_zero, zero_add, zero_mul, add_zero]
  rw [show 3 = 2 + 1 by norm_num]
  rw [pow_succ _ 2]
  rw [← hchar, pth_root_pow_char hcharne]
  rw [pth_root_pow_char hcharne]
  ring_nf
  simp [hchar'']
case pos.h_1.refine_1
K : Type u
inst✝¹ : Field K
inst✝ : ECTate.PerfectRing K
e : Model K
h : discr e = 0
hc4 : c4 e = 0
hc6 : c6 e = 0
x✝ : ℕ
heq✝ : ringChar K = 2
hchar : ringChar K = 2
hchar' : ↑(ringChar K) = 2
hchar'' : 2 = 0
hcharne : ringChar K ≠ 0
ha1 : e.a1 = 0
ha3 : e.a3 = 0
⊢ weierstrass e (pth_root e.a4, pth_root (e.a2 * e.a4 + e.a6)) = 0

case pos.h_1.refine_2
K : Type u
inst✝¹ : Field K
inst✝ : ECTate.PerfectRing K
e : Model K
h : discr e = 0
hc4 : c4 e = 0
hc6 : c6 e = 0
x✝ : ℕ
heq✝ : ringChar K = 2
hchar : ringChar K = 2
hchar' : ↑(ringChar K) = 2
hchar'' : 2 = 0
hcharne : ringChar K ≠ 0
ha1 : e.a1 = 0
ha3 : e.a3 = 0
⊢ dweierstrass_dx e (pth_root e.a4, pth_root (e.a2 * e.a4 + e.a6)) = 0

case pos.h_1.refine_3
K : Type u
inst✝¹ : Field K
inst✝ : ECTate.PerfectRing K
e : Model K
h : discr e = 0
hc4 : c4 e = 0
hc6 : c6 e = 0
x✝ : ℕ
heq✝ : ringChar K = 2
hchar : ringChar K = 2
hchar' : ↑(ringChar K) = 2
hchar'' : 2 = 0
hcharne : ringChar K ≠ 0
ha1 : e.a1 = 0
ha3 : e.a3 = 0
⊢ dweierstrass_dy e (pth_root e.a4, pth_root (e.a2 * e.a4 + e.a6)) = 0
case pos.h_1.refine_2
K : Type u
inst✝¹ : Field K
inst✝ : ECTate.PerfectRing K
e : Model K
h : discr e = 0
hc4 : c4 e = 0
hc6 : c6 e = 0
x✝ : ℕ
heq✝ : ringChar K = 2
hchar : ringChar K = 2
hchar' : ↑(ringChar K) = 2
hchar'' : 2 = 0
hcharne : ringChar K ≠ 0
ha1 : e.a1 = 0
ha3 : e.a3 = 0
⊢ dweierstrass_dx e (pth_root e.a4, pth_root (e.a2 * e.a4 + e.a6)) = 0

case pos.h_1.refine_3
K : Type u
inst✝¹ : Field K
inst✝ : ECTate.PerfectRing K
e : Model K
h : discr e = 0
hc4 : c4 e = 0
hc6 : c6 e = 0
x✝ : ℕ
heq✝ : ringChar K = 2
hchar : ringChar K = 2
hchar' : ↑(ringChar K) = 2
hchar'' : 2 = 0
hcharne : ringChar K ≠ 0
ha1 : e.a1 = 0
ha3 : e.a3 = 0
⊢ dweierstrass_dy e (pth_root e.a4, pth_root (e.a2 * e.a4 + e.a6)) = 0