awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Module: Mathlib.AlgebraicGeometry.Group.Abelian
Goal:
K : Type u
inst : Field K
inst_1 : IsAlgClosed K
G : Over (Spec (CommRingCat.of K))
inst_2 : IsProper G.hom
inst_3 : IsIntegral.{u} (tensorObj (𝒞 := instCategoryOver) G G).left
inst_4 : GrpObj G
S : Scheme := Spec (CommRingCat.of K)
point : ↥S := IsLocalRing.closedPoint K
hpoint : IsClosed (X := ↥S) {point}
this_1 : Nonempty.{u + 1} ↥G.left
this_2 : IsProper (tensorObj (𝒞 := instCategoryOver) G G).hom
this_3 : JacobsonSpace.{u} ↥(tensorObj (𝒞 := instCategoryOver) G G).left
this_4 : Surjective G.hom
this_5 : IsProper (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (fst G G))
this_6 : Surjective (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (fst G G))
this_7 : IsProper (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (GrpObj.commutator G) ≫ G.hom)
this_8 :
  IsClosedImmersion (X :=
    Over.left (X := Spec (CommRingCat.of K)) ((𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver)))
    (Over.Hom.left (lift η η) ≫ Over.Hom.left (fst G G))
this_9 :
  IsClosedImmersion.{u} (X :=
    Over.left (X := Spec (CommRingCat.of K)) ((𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver))) (Y :=
    (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (lift η η))
γ : tensorObj (𝒞 := instCategoryOver) G G ⟶ tensorObj (𝒞 := instCategoryOver) G G :=
  lift (fst G G) (GrpObj.commutator G)
this_10 : IsProper (Over.Hom.left γ ≫ Over.Hom.left (fst G G))
this : IsProper (Over.Hom.left γ)
H_1 :
  Subset (α := Set ↥(tensorObj (𝒞 := instCategoryOver) G G).left)
    (Set.image (α := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) (⇑(Over.Hom.left γ))
      (Set.preimage (β := ↥G.left) (⇑(Over.Hom.left (fst G G)))
        (singleton (α := ↥G.left) ((Over.Hom.left η) point : ↥G.left))))
    (singleton (α := ↥(tensorObj (𝒞 := instCategoryOver) G G).left)
      ((Over.Hom.left (lift η η)) point : ↥(tensorObj (𝒞 := instCategoryOver) G G).left))
U : G.left.Opens
hηU : Membership.mem (α := ↥G.left) U ((Over.Hom.left η) point : ↥G.left)
H_2 : IsFinite ((Scheme.Hom.imageι (Over.Hom.left γ) ≫ Over.Hom.left (fst G G)) ∣_ U)
H :
  ∀ (x : ↥U),
    Set.Finite (α := ↥(pullback G.hom G.hom))
      (Set.preimage (β := ↥G.left) ⇑(pullback.fst G.hom G.hom) {(↑x : ↥G.left)} ∩
        Set.range («ι» := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) ⇑(Over.Hom.left γ))
y : ↥(tensorObj (𝒞 := instCategoryOver) G G).left
hyU : y ∈ (↑(Over.Hom.left (fst G G) ⁻¹ᵁ U) : Set ↥(G ⊗ G).left)
hy : IsClosed (X := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) {y}
⊢ IsClosed (X := ↥G.left) (singleton (α := ↥G.left) ((Over.Hom.left (fst G G)) y : ↥G.left))

Tactic:
simpa using (fst G G).left.isClosedMap _ hy

Premises used: CategoryTheory.Over.Hom.left, AlgebraicGeometry.Scheme.Hom.isClosedMap, CategoryTheory.SemiCartesianMonoidalCategory.fst
-- Module: Mathlib.AlgebraicGeometry.Group.Abelian
Goal:
K : Type u
inst : Field K
inst_1 : IsAlgClosed K
G : Over (Spec (CommRingCat.of K))
inst_2 : IsProper G.hom
inst_3 : IsIntegral.{u} (tensorObj (𝒞 := instCategoryOver) G G).left
inst_4 : GrpObj G
S : Scheme := Spec (CommRingCat.of K)
point : ↥S := IsLocalRing.closedPoint K
hpoint : IsClosed (X := ↥S) {point}
this_1 : Nonempty.{u + 1} ↥G.left
this_2 : IsProper (tensorObj (𝒞 := instCategoryOver) G G).hom
this_3 : JacobsonSpace.{u} ↥(tensorObj (𝒞 := instCategoryOver) G G).left
this_4 : Surjective G.hom
this_5 : IsProper (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (fst G G))
this_6 : Surjective (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (fst G G))
this_7 : IsProper (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (GrpObj.commutator G) ≫ G.hom)
this_8 :
  IsClosedImmersion (X :=
    Over.left (X := Spec (CommRingCat.of K)) ((𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver)))
    (Over.Hom.left (lift η η) ≫ Over.Hom.left (fst G G))
this_9 :
  IsClosedImmersion.{u} (X :=
    Over.left (X := Spec (CommRingCat.of K)) ((𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver))) (Y :=
    (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (lift η η))
γ : tensorObj (𝒞 := instCategoryOver) G G ⟶ tensorObj (𝒞 := instCategoryOver) G G :=
  lift (fst G G) (GrpObj.commutator G)
this_10 : IsProper (Over.Hom.left γ ≫ Over.Hom.left (fst G G))
this : IsProper (Over.Hom.left γ)
H_1 :
  Subset (α := Set ↥(tensorObj (𝒞 := instCategoryOver) G G).left)
    (Set.image (α := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) (⇑(Over.Hom.left γ))
      (Set.preimage (β := ↥G.left) (⇑(Over.Hom.left (fst G G)))
        (singleton (α := ↥G.left) ((Over.Hom.left η) point : ↥G.left))))
    (singleton (α := ↥(tensorObj (𝒞 := instCategoryOver) G G).left)
      ((Over.Hom.left (lift η η)) point : ↥(tensorObj (𝒞 := instCategoryOver) G G).left))
U : G.left.Opens
hηU : Membership.mem (α := ↥G.left) U ((Over.Hom.left η) point : ↥G.left)
H_2 : IsFinite ((Scheme.Hom.imageι (Over.Hom.left γ) ≫ Over.Hom.left (fst G G)) ∣_ U)
H :
  ∀ (x : ↥U),
    Set.Finite (α := ↥(pullback G.hom G.hom))
      (Set.preimage (β := ↥G.left) ⇑(pullback.fst G.hom G.hom) {(↑x : ↥G.left)} ∩
        Set.range («ι» := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) ⇑(Over.Hom.left γ))
y : ↥(tensorObj (𝒞 := instCategoryOver) G G).left
hyU : y ∈ (↑(Over.Hom.left (fst G G) ⁻¹ᵁ U) : Set ↥(G ⊗ G).left)
hy : IsClosed (X := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) {y}
⊢ IsClosed (X := ↥G.left) (singleton (α := ↥G.left) ((Over.Hom.left (fst G G)) y : ↥G.left))

Tactic:
have hx : IsClosed {(fst G G).left y} := by simpa using (fst G G).left.isClosedMap _ hy
-- Module: Mathlib.AlgebraicGeometry.Group.Abelian
Goal:
K : Type u
inst : Field K
inst_1 : IsAlgClosed K
G : Over (Spec (CommRingCat.of K))
inst_2 : IsProper G.hom
inst_3 : IsIntegral.{u} (tensorObj (𝒞 := instCategoryOver) G G).left
inst_4 : GrpObj G
S : Scheme := Spec (CommRingCat.of K)
point : ↥S := IsLocalRing.closedPoint K
hpoint : IsClosed (X := ↥S) {point}
this_1 : Nonempty.{u + 1} ↥G.left
this_2 : IsProper (tensorObj (𝒞 := instCategoryOver) G G).hom
this_3 : JacobsonSpace.{u} ↥(tensorObj (𝒞 := instCategoryOver) G G).left
this_4 : Surjective G.hom
this_5 : IsProper (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (fst G G))
this_6 : Surjective (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (fst G G))
this_7 : IsProper (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (GrpObj.commutator G) ≫ G.hom)
this_8 :
  IsClosedImmersion (X :=
    Over.left (X := Spec (CommRingCat.of K)) ((𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver)))
    (Over.Hom.left (lift η η) ≫ Over.Hom.left (fst G G))
this_9 :
  IsClosedImmersion.{u} (X :=
    Over.left (X := Spec (CommRingCat.of K)) ((𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver))) (Y :=
    (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (lift η η))
γ : tensorObj (𝒞 := instCategoryOver) G G ⟶ tensorObj (𝒞 := instCategoryOver) G G :=
  lift (fst G G) (GrpObj.commutator G)
this_10 : IsProper (Over.Hom.left γ ≫ Over.Hom.left (fst G G))
this : IsProper (Over.Hom.left γ)
H_1 :
  Subset (α := Set ↥(tensorObj (𝒞 := instCategoryOver) G G).left)
    (Set.image (α := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) (⇑(Over.Hom.left γ))
      (Set.preimage (β := ↥G.left) (⇑(Over.Hom.left (fst G G)))
        (singleton (α := ↥G.left) ((Over.Hom.left η) point : ↥G.left))))
    (singleton (α := ↥(tensorObj (𝒞 := instCategoryOver) G G).left)
      ((Over.Hom.left (lift η η)) point : ↥(tensorObj (𝒞 := instCategoryOver) G G).left))
U : G.left.Opens
hηU : Membership.mem (α := ↥G.left) U ((Over.Hom.left η) point : ↥G.left)
H_2 : IsFinite ((Scheme.Hom.imageι (Over.Hom.left γ) ≫ Over.Hom.left (fst G G)) ∣_ U)
H :
  ∀ (x : ↥U),
    Set.Finite (α := ↥(pullback G.hom G.hom))
      (Set.preimage (β := ↥G.left) ⇑(pullback.fst G.hom G.hom) {(↑x : ↥G.left)} ∩
        Set.range («ι» := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) ⇑(Over.Hom.left γ))
y : ↥(tensorObj (𝒞 := instCategoryOver) G G).left
hyU : y ∈ (↑(Over.Hom.left (fst G G) ⁻¹ᵁ U) : Set ↥(G ⊗ G).left)
hy : IsClosed (X := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) {y}
hx : IsClosed (X := ↥G.left) (singleton (α := ↥G.left) ((Over.Hom.left (fst G G)) y : ↥G.left))
⊢ pointOfClosedPoint G.hom ((Over.Hom.left (fst G G)) y) hx ≫ G.hom =
    Over.hom ((𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver))

Tactic:
simp
-- Module: Mathlib.AlgebraicGeometry.Group.Abelian
Goal:
K : Type u
inst : Field K
inst_1 : IsAlgClosed K
G : Over (Spec (CommRingCat.of K))
inst_2 : IsProper G.hom
inst_3 : IsIntegral.{u} (tensorObj (𝒞 := instCategoryOver) G G).left
inst_4 : GrpObj G
S : Scheme := Spec (CommRingCat.of K)
point : ↥S := IsLocalRing.closedPoint K
hpoint : IsClosed (X := ↥S) {point}
this_1 : Nonempty.{u + 1} ↥G.left
this_2 : IsProper (tensorObj (𝒞 := instCategoryOver) G G).hom
this_3 : JacobsonSpace.{u} ↥(tensorObj (𝒞 := instCategoryOver) G G).left
this_4 : Surjective G.hom
this_5 : IsProper (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (fst G G))
this_6 : Surjective (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (fst G G))
this_7 : IsProper (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (GrpObj.commutator G) ≫ G.hom)
this_8 :
  IsClosedImmersion (X :=
    Over.left (X := Spec (CommRingCat.of K)) ((𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver)))
    (Over.Hom.left (lift η η) ≫ Over.Hom.left (fst G G))
this_9 :
  IsClosedImmersion.{u} (X :=
    Over.left (X := Spec (CommRingCat.of K)) ((𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver))) (Y :=
    (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (lift η η))
γ : tensorObj (𝒞 := instCategoryOver) G G ⟶ tensorObj (𝒞 := instCategoryOver) G G :=
  lift (fst G G) (GrpObj.commutator G)
this_10 : IsProper (Over.Hom.left γ ≫ Over.Hom.left (fst G G))
this : IsProper (Over.Hom.left γ)
H_1 :
  Subset (α := Set ↥(tensorObj (𝒞 := instCategoryOver) G G).left)
    (Set.image (α := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) (⇑(Over.Hom.left γ))
      (Set.preimage (β := ↥G.left) (⇑(Over.Hom.left (fst G G)))
        (singleton (α := ↥G.left) ((Over.Hom.left η) point : ↥G.left))))
    (singleton (α := ↥(tensorObj (𝒞 := instCategoryOver) G G).left)
      ((Over.Hom.left (lift η η)) point : ↥(tensorObj (𝒞 := instCategoryOver) G G).left))
U : G.left.Opens
hηU : Membership.mem (α := ↥G.left) U ((Over.Hom.left η) point : ↥G.left)
H_2 : IsFinite ((Scheme.Hom.imageι (Over.Hom.left γ) ≫ Over.Hom.left (fst G G)) ∣_ U)
H :
  ∀ (x : ↥U),
    Set.Finite (α := ↥(pullback G.hom G.hom))
      (Set.preimage (β := ↥G.left) ⇑(pullback.fst G.hom G.hom) {(↑x : ↥G.left)} ∩
        Set.range («ι» := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) ⇑(Over.Hom.left γ))
y : ↥(tensorObj (𝒞 := instCategoryOver) G G).left
hyU : y ∈ (↑(Over.Hom.left (fst G G) ⁻¹ᵁ U) : Set ↥(G ⊗ G).left)
hy : IsClosed (X := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) {y}
hx : IsClosed (X := ↥G.left) (singleton (α := ↥G.left) ((Over.Hom.left (fst G G)) y : ↥G.left))
x : (𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver) ⟶ G :=
  Over.homMk (pointOfClosedPoint G.hom ((Over.Hom.left (fst G G)) y) hx) ⋯
xe : ↥(tensorObj (𝒞 := instCategoryOver) G G).left := (Over.Hom.left (fst G G ≫ Iso.inv (ρ_ G) ≫ G ◁ η)) y
⊢ Membership.mem (γ := Set ↥(tensorObj (𝒞 := instCategoryOver) G G).left)
    (Set.preimage (β := ↥G.left) (⇑(Over.Hom.left (fst G G)))
      (singleton (α := ↥G.left) ((Over.Hom.left (fst G G)) y : ↥G.left)))
    y

Tactic:
simp
-- Module: Mathlib.AlgebraicGeometry.Group.Abelian
Goal:
K : Type u
inst : Field K
inst_1 : IsAlgClosed K
G : Over (Spec (CommRingCat.of K))
inst_2 : IsProper G.hom
inst_3 : IsIntegral.{u} (tensorObj (𝒞 := instCategoryOver) G G).left
inst_4 : GrpObj G
S : Scheme := Spec (CommRingCat.of K)
point : ↥S := IsLocalRing.closedPoint K
hpoint : IsClosed (X := ↥S) {point}
this_1 : Nonempty.{u + 1} ↥G.left
this_2 : IsProper (tensorObj (𝒞 := instCategoryOver) G G).hom
this_3 : JacobsonSpace.{u} ↥(tensorObj (𝒞 := instCategoryOver) G G).left
this_4 : Surjective G.hom
this_5 : IsProper (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (fst G G))
this_6 : Surjective (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (fst G G))
this_7 : IsProper (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (GrpObj.commutator G) ≫ G.hom)
this_8 :
  IsClosedImmersion (X :=
    Over.left (X := Spec (CommRingCat.of K)) ((𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver)))
    (Over.Hom.left (lift η η) ≫ Over.Hom.left (fst G G))
this_9 :
  IsClosedImmersion.{u} (X :=
    Over.left (X := Spec (CommRingCat.of K)) ((𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver))) (Y :=
    (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (lift η η))
γ : tensorObj (𝒞 := instCategoryOver) G G ⟶ tensorObj (𝒞 := instCategoryOver) G G :=
  lift (fst G G) (GrpObj.commutator G)
this_10 : IsProper (Over.Hom.left γ ≫ Over.Hom.left (fst G G))
this : IsProper (Over.Hom.left γ)
H_1 :
  Subset (α := Set ↥(tensorObj (𝒞 := instCategoryOver) G G).left)
    (Set.image (α := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) (⇑(Over.Hom.left γ))
      (Set.preimage (β := ↥G.left) (⇑(Over.Hom.left (fst G G)))
        (singleton (α := ↥G.left) ((Over.Hom.left η) point : ↥G.left))))
    (singleton (α := ↥(tensorObj (𝒞 := instCategoryOver) G G).left)
      ((Over.Hom.left (lift η η)) point : ↥(tensorObj (𝒞 := instCategoryOver) G G).left))
U : G.left.Opens
hηU : Membership.mem (α := ↥G.left) U ((Over.Hom.left η) point : ↥G.left)
H_2 : IsFinite ((Scheme.Hom.imageι (Over.Hom.left γ) ≫ Over.Hom.left (fst G G)) ∣_ U)
H :
  ∀ (x : ↥U),
    Set.Finite (α := ↥(pullback G.hom G.hom))
      (Set.preimage (β := ↥G.left) ⇑(pullback.fst G.hom G.hom) {(↑x : ↥G.left)} ∩
        Set.range («ι» := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) ⇑(Over.Hom.left γ))
y : ↥(tensorObj (𝒞 := instCategoryOver) G G).left
hyU : y ∈ (↑(Over.Hom.left (fst G G) ⁻¹ᵁ U) : Set ↥(G ⊗ G).left)
hy : IsClosed (X := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) {y}
hx : IsClosed (X := ↥G.left) (singleton (α := ↥G.left) ((Over.Hom.left (fst G G)) y : ↥G.left))
x : (𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver) ⟶ G :=
  Over.homMk (pointOfClosedPoint G.hom ((Over.Hom.left (fst G G)) y) hx) ⋯
xe : ↥(tensorObj (𝒞 := instCategoryOver) G G).left := (Over.Hom.left (fst G G ≫ Iso.inv (ρ_ G) ≫ G ◁ η)) y
⊢ Over.Hom.left (((fst G G ≫ Iso.inv (ρ_ G) ≫ G ◁ η) ≫ lift (fst G G) (GrpObj.commutator G)) ≫ fst G G) =
    Over.Hom.left ((fst G G ≫ Iso.inv (ρ_ G) ≫ G ◁ η) ≫ fst G G)

Tactic:
simp
-- Module: Mathlib.AlgebraicGeometry.Group.Abelian
Goal:
K : Type u
inst : Field K
inst_1 : IsAlgClosed K
G : Over (Spec (CommRingCat.of K))
inst_2 : IsProper G.hom
inst_3 : IsIntegral.{u} (tensorObj (𝒞 := instCategoryOver) G G).left
inst_4 : GrpObj G
S : Scheme := Spec (CommRingCat.of K)
point : ↥S := IsLocalRing.closedPoint K
hpoint : IsClosed (X := ↥S) {point}
this_1 : Nonempty.{u + 1} ↥G.left
this_2 : IsProper (tensorObj (𝒞 := instCategoryOver) G G).hom
this_3 : JacobsonSpace.{u} ↥(tensorObj (𝒞 := instCategoryOver) G G).left
this_4 : Surjective G.hom
this_5 : IsProper (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (fst G G))
this_6 : Surjective (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (fst G G))
this_7 : IsProper (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (GrpObj.commutator G) ≫ G.hom)
this_8 :
  IsClosedImmersion (X :=
    Over.left (X := Spec (CommRingCat.of K)) ((𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver)))
    (Over.Hom.left (lift η η) ≫ Over.Hom.left (fst G G))
this_9 :
  IsClosedImmersion.{u} (X :=
    Over.left (X := Spec (CommRingCat.of K)) ((𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver))) (Y :=
    (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (lift η η))
γ : tensorObj (𝒞 := instCategoryOver) G G ⟶ tensorObj (𝒞 := instCategoryOver) G G :=
  lift (fst G G) (GrpObj.commutator G)
this_10 : IsProper (Over.Hom.left γ ≫ Over.Hom.left (fst G G))
this : IsProper (Over.Hom.left γ)
H_1 :
  Subset (α := Set ↥(tensorObj (𝒞 := instCategoryOver) G G).left)
    (Set.image (α := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) (⇑(Over.Hom.left γ))
      (Set.preimage (β := ↥G.left) (⇑(Over.Hom.left (fst G G)))
        (singleton (α := ↥G.left) ((Over.Hom.left η) point : ↥G.left))))
    (singleton (α := ↥(tensorObj (𝒞 := instCategoryOver) G G).left)
      ((Over.Hom.left (lift η η)) point : ↥(tensorObj (𝒞 := instCategoryOver) G G).left))
U : G.left.Opens
hηU : Membership.mem (α := ↥G.left) U ((Over.Hom.left η) point : ↥G.left)
H_2 : IsFinite ((Scheme.Hom.imageι (Over.Hom.left γ) ≫ Over.Hom.left (fst G G)) ∣_ U)
H :
  ∀ (x : ↥U),
    Set.Finite (α := ↥(pullback G.hom G.hom))
      (Set.preimage (β := ↥G.left) ⇑(pullback.fst G.hom G.hom) {(↑x : ↥G.left)} ∩
        Set.range («ι» := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) ⇑(Over.Hom.left γ))
y : ↥(tensorObj (𝒞 := instCategoryOver) G G).left
hyU : y ∈ (↑(Over.Hom.left (fst G G) ⁻¹ᵁ U) : Set ↥(G ⊗ G).left)
hy : IsClosed (X := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) {y}
hx : IsClosed (X := ↥G.left) (singleton (α := ↥G.left) ((Over.Hom.left (fst G G)) y : ↥G.left))
x : (𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver) ⟶ G :=
  Over.homMk (pointOfClosedPoint G.hom ((Over.Hom.left (fst G G)) y) hx) ⋯
xe : ↥(tensorObj (𝒞 := instCategoryOver) G G).left := (Over.Hom.left (fst G G ≫ Iso.inv (ρ_ G) ≫ G ◁ η)) y
⊢ Over.Hom.left (((fst G G ≫ Iso.inv (ρ_ G) ≫ G ◁ η) ≫ lift (fst G G) (GrpObj.commutator G)) ≫ snd G G) =
    Over.Hom.left ((fst G G ≫ Iso.inv (ρ_ G) ≫ G ◁ η) ≫ snd G G)

Tactic:
simp
-- Module: Mathlib.AlgebraicGeometry.Group.Abelian
Goal:
K : Type u
inst : Field K
inst_1 : IsAlgClosed K
G : Over (Spec (CommRingCat.of K))
inst_2 : IsProper G.hom
inst_3 : IsIntegral.{u} (tensorObj (𝒞 := instCategoryOver) G G).left
inst_4 : GrpObj G
S : Scheme := Spec (CommRingCat.of K)
point : ↥S := IsLocalRing.closedPoint K
hpoint : IsClosed (X := ↥S) {point}
this_1 : Nonempty.{u + 1} ↥G.left
this_2 : IsProper (tensorObj (𝒞 := instCategoryOver) G G).hom
this_3 : JacobsonSpace.{u} ↥(tensorObj (𝒞 := instCategoryOver) G G).left
this_4 : Surjective G.hom
this_5 : IsProper (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (fst G G))
this_6 : Surjective (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (fst G G))
this_7 : IsProper (X := (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (GrpObj.commutator G) ≫ G.hom)
this_8 :
  IsClosedImmersion (X :=
    Over.left (X := Spec (CommRingCat.of K)) ((𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver)))
    (Over.Hom.left (lift η η) ≫ Over.Hom.left (fst G G))
this_9 :
  IsClosedImmersion.{u} (X :=
    Over.left (X := Spec (CommRingCat.of K)) ((𝟙_ (Over (Spec (CommRingCat.of K)))) (𝒞 := instCategoryOver))) (Y :=
    (tensorObj (𝒞 := instCategoryOver) G G).left) (Over.Hom.left (lift η η))
γ : tensorObj (𝒞 := instCategoryOver) G G ⟶ tensorObj (𝒞 := instCategoryOver) G G :=
  lift (fst G G) (GrpObj.commutator G)
this_10 : IsProper (Over.Hom.left γ ≫ Over.Hom.left (fst G G))
this : IsProper (Over.Hom.left γ)
H_1 :
  Subset (α := Set ↥(tensorObj (𝒞 := instCategoryOver) G G).left)
    (Set.image (α := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) (⇑(Over.Hom.left γ))
      (Set.preimage (β := ↥G.left) (⇑(Over.Hom.left (fst G G)))
        (singleton (α := ↥G.left) ((Over.Hom.left η) point : ↥G.left))))
    (singleton (α := ↥(tensorObj (𝒞 := instCategoryOver) G G).left)
      ((Over.Hom.left (lift η η)) point : ↥(tensorObj (𝒞 := instCategoryOver) G G).left))
U : G.left.Opens
hηU : Membership.mem (α := ↥G.left) U ((Over.Hom.left η) point : ↥G.left)
H_2 : IsFinite ((Scheme.Hom.imageι (Over.Hom.left γ) ≫ Over.Hom.left (fst G G)) ∣_ U)
H :
  ∀ (x : ↥U),
    Set.Finite (α := ↥(pullback G.hom G.hom))
      (Set.preimage (β := ↥G.left) ⇑(pullback.fst G.hom G.hom) {(↑x : ↥G.left)} ∩
        Set.range («ι» := ↥(tensorObj (𝒞 := instCategoryOver) G G).left) ⇑(Over.Hom.left γ))
⊢ Over.Hom.left (GrpObj.commutator G) ≫ G.hom =
    Over.Hom.left (toUnit (tensorObj (𝒞 := instCategoryOver) G G) ≫ η) ≫ G.hom

Tactic:
simp
-- Module: Mathlib.AlgebraicGeometry.Group.Abelian
Goal:
K : Type u
inst : Field K
G : Over (Spec (CommRingCat.of K))
inst_1 : IsProper G.hom
inst_2 : GeometricallyIntegral G.hom
inst_3 : GrpObj G
f : Spec (CommRingCat.of (AlgebraicClosure K)) ⟶ Spec (CommRingCat.of K) :=
  Spec.map (CommRingCat.ofHom (algebraMap K (AlgebraicClosure K)))
G' : Over (Spec (CommRingCat.of (AlgebraicClosure K))) := (Over.pullback f).obj G
dsimp : IsProper (X := pullback G.hom f) (pullback.snd G.hom f)
⊢ IsProper G'.hom

Tactic:
dsimp [G']
-- Module: Mathlib.AlgebraicGeometry.Group.Abelian
Goal:
K : Type u
inst : Field K
G : Over (Spec (CommRingCat.of K))
inst_1 : IsProper G.hom
inst_2 : GeometricallyIntegral G.hom
inst_3 : GrpObj G
f : Spec (CommRingCat.of (AlgebraicClosure K)) ⟶ Spec (CommRingCat.of K) :=
  Spec.map (CommRingCat.ofHom (algebraMap K (AlgebraicClosure K)))
G' : Over (Spec (CommRingCat.of (AlgebraicClosure K))) := (Over.pullback f).obj G
⊢ IsProper (X := pullback G.hom f) (pullback.snd G.hom f)

Tactic:
infer_instance
-- Module: Mathlib.AlgebraicGeometry.Group.Abelian
Goal:
K : Type u
inst : Field K
G : Over (Spec (CommRingCat.of K))
inst_1 : IsProper G.hom
inst_2 : GeometricallyIntegral G.hom
inst_3 : GrpObj G
f : Spec (CommRingCat.of (AlgebraicClosure K)) ⟶ Spec (CommRingCat.of K) :=
  Spec.map (CommRingCat.ofHom (algebraMap K (AlgebraicClosure K)))
G' : Over (Spec (CommRingCat.of (AlgebraicClosure K))) := (Over.pullback f).obj G
⊢ IsProper G'.hom

Tactic:
have : IsProper G'.hom := by dsimp [G']; infer_instance
-- Module: Mathlib.AlgebraicGeometry.Group.Abelian
Goal:
K : Type u
inst : Field K
G : Over (Spec (CommRingCat.of K))
inst_1 : IsProper G.hom
inst_2 : GeometricallyIntegral G.hom
inst_3 : GrpObj G
f : Spec (CommRingCat.of (AlgebraicClosure K)) ⟶ Spec (CommRingCat.of K) :=
  Spec.map (CommRingCat.ofHom (algebraMap K (AlgebraicClosure K)))
G' : Over (Spec (CommRingCat.of (AlgebraicClosure K))) := (Over.pullback f).obj G
this : IsProper G'.hom
dsimp :
  IsIntegral.{u}
    (pullback (X := pullback G.hom f) (Y := pullback G.hom f) (pullback.snd G.hom f) (pullback.snd G.hom f))
⊢ IsIntegral.{u} (tensorObj (𝒞 := instCategoryOver) G' G').left

Tactic:
dsimp [G']
-- Module: Mathlib.AlgebraicGeometry.Group.Abelian
Goal:
K : Type u
inst : Field K
G : Over (Spec (CommRingCat.of K))
inst_1 : IsProper G.hom
inst_2 : GeometricallyIntegral G.hom
inst_3 : GrpObj G
f : Spec (CommRingCat.of (AlgebraicClosure K)) ⟶ Spec (CommRingCat.of K) :=
  Spec.map (CommRingCat.ofHom (algebraMap K (AlgebraicClosure K)))
G' : Over (Spec (CommRingCat.of (AlgebraicClosure K))) := (Over.pullback f).obj G
this : IsProper G'.hom
⊢ IsIntegral.{u}
    (pullback (X := pullback G.hom f) (Y := pullback G.hom f) (pullback.snd G.hom f) (pullback.snd G.hom f))

Tactic:
infer_instance
-- Module: Mathlib.AlgebraicGeometry.Group.Abelian
Goal:
K : Type u
inst : Field K
G : Over (Spec (CommRingCat.of K))
inst_1 : IsProper G.hom
inst_2 : GeometricallyIntegral G.hom
inst_3 : GrpObj G
f : Spec (CommRingCat.of (AlgebraicClosure K)) ⟶ Spec (CommRingCat.of K) :=
  Spec.map (CommRingCat.ofHom (algebraMap K (AlgebraicClosure K)))
G' : Over (Spec (CommRingCat.of (AlgebraicClosure K))) := (Over.pullback f).obj G
this : IsProper G'.hom
⊢ IsIntegral.{u} (tensorObj (𝒞 := instCategoryOver) G' G').left

Tactic:
have : IsIntegral (G' ⊗ G').left := by dsimp [G']; infer_instance
-- Module: Mathlib.AlgebraicGeometry.Group.Abelian
Goal:
K : Type u
inst : Field K
G : Over (Spec (CommRingCat.of K))
inst_1 : IsProper G.hom
inst_2 : GeometricallyIntegral G.hom
inst_3 : GrpObj G
f : Spec (CommRingCat.of (AlgebraicClosure K)) ⟶ Spec (CommRingCat.of K) :=
  Spec.map (CommRingCat.ofHom (algebraMap K (AlgebraicClosure K)))
G' : Over (Spec (CommRingCat.of (AlgebraicClosure K))) := (Over.pullback f).obj G
this_1 : IsProper G'.hom
this_2 : IsIntegral.{u} (tensorObj (𝒞 := instCategoryOver) G' G').left
this : GrpObj G' := Functor.grpObjObj
⊢ IsCommMonObj G'

Tactic:
have := isCommMonObj_of_isProper_of_isIntegral_tensorObj_of_isAlgClosed G'