/-- The `Subfield` generated by a set. -/
def closure (s : Set K) : Subfield K where
  carrier := {z : K | ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = z}
  zero_mem' := ⟨0, Subring.zero_mem _, 1, Subring.one_mem _, div_one _⟩
  one_mem' := ⟨1, Subring.one_mem _, 1, Subring.one_mem _, div_one _⟩
  neg_mem' {x} := by
    rintro ⟨y, hy, z, hz, x_eq⟩
    

Proof state:
case intro.intro.intro.intro
K : Type u
L : Type v
M : Type w
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Field M
s : Set K
x y : K
hy : y ∈ Subring.closure s
z : K
hz : z ∈ Subring.closure s
x_eq : y / z = x
⊢ -x ∈
    {
            toSubmonoid :=
              {
                toSubsemigroup :=
                  { carrier := {z | ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = z},
                    mul_mem' :=
                      (_ :
                        ∀ {a b : K},
                          a ∈ {z | ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = z} →
                            b ∈ {z | ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = z} →
                              a * b ∈ {z | ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = z}) },
                one_mem' := (_ : ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = 1) },
            add_mem' :=
              (_ :
                ∀ {a b : K},
                  a ∈
                      {
                            toSubsemigroup :=
                              { carrier := {z | ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = z},
                                mul_mem' :=
                                  (_ :
                                    ∀ {a b : K},
                                      a ∈ {z | ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = z} →
                                        b ∈ {z | ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = z} →
                                          a * b ∈ {z | ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = z}) },
                            one_mem' :=
                              (_ :
                                ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = 1) }.toSubsemigroup.carrier →
                    b ∈
                        {
                              toSubsemigroup :=
                                { carrier := {z | ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = z},
                                  mul_mem' :=
                                    (_ :
                                      ∀ {a b : K},
                                        a ∈ {z | ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = z} →
                                          b ∈ {z | ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = z} →
                                            a * b ∈
                                              {z | ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = z}) },
                              one_mem' :=
                                (_ :
                                  ∃ x ∈ Subring.closure s,
                                    ∃ y ∈ Subring.closure s, x / y = 1) }.toSubsemigroup.carrier →
                      a + b ∈
                        {
                              toSubsemigroup :=
                                { carrier := {z | ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = z},
                                  mul_mem' :=
                                    (_ :
                                      ∀ {a b : K},
                                        a ∈ {z | ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = z} →
                                          b ∈ {z | ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = z} →
                                            a * b ∈
                                              {z | ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = z}) },
                              one_mem' :=
                                (_ :
                                  ∃ x ∈ Subring.closure s,
                                    ∃ y ∈ Subring.closure s, x / y = 1) }.toSubsemigroup.carrier),
            zero_mem' :=
              (_ : ∃ x ∈ Subring.closure s, ∃ y ∈ Subring.closure s, x / y = 0) }.toSubmonoid.toSubsemigroup.carrier

Next tactic:
exact ⟨-y, Subring.neg_mem _ hy, z, hz, x_eq ▸ neg_div _ _⟩