-- Module: Mathlib.CategoryTheory.Galois.IsFundamentalgroup
Goal:
C : Type u₁
inst : Category.{u₂, u₁} C
F : Functor.{u₂, w, u₁, w + 1} C FintypeCat
G : Type u_1
inst_1 : Group G
inst_2 : (X : C) → MulAction.{u_1, w} G (F.obj X).obj
inst_3 : IsNaturalSMul F G
inst_4 : GaloisCategory.{u₁, u₂} C
inst_5 : FiberFunctor F
inst_6 : TopologicalSpace G
inst_7 : IsTopologicalGroup G
inst_8 : CompactSpace G
inst_9 : ∀ (X : C), ContinuousSMul.{u_1, w} G (F.obj X).obj
h : ∀ (X : C) [IsGalois.{u₁, u₂} X], MulAction.IsPretransitive.{u_1, w} G (F.obj X).obj
t : Aut F
gi : (X : PointedGaloisObject F) → G
hgi :
  ∀ (X : PointedGaloisObject F) (x : (F.obj X.obj).obj),
    gi X • x =
      (@ConcreteCategory.hom _ (ObjectProperty.FullSubcategory.category Finite)
            (fun (X Y : ObjectProperty.FullSubcategory Finite) ↦ TypeCat.Fun X.obj Y.obj)
            (fun (X : ObjectProperty.FullSubcategory Finite) ↦ X.obj)
            (fun (X Y : ObjectProperty.FullSubcategory Finite) ↦
              (TypeCat.instFunLikeFun : FunLike (TypeCat.Fun X.obj Y.obj) X.obj Y.obj))
            _ _ _ (t.hom.app X.obj : F.obj X.obj ⟶ F.obj X.obj) :
          (a : (fun (X : ObjectProperty.FullSubcategory Finite) ↦ X.obj) (F.obj X.obj)) →
            (fun (X : ObjectProperty.FullSubcategory Finite) ↦ X.obj) (F.obj X.obj))
        x
cl : (X : PointedGaloisObject F) → Set G :=
  fun (X : PointedGaloisObject F) ↦ gi X • (↑(MulAction.stabilizer G X.pt) : Set G)
c : Set G := ⋂ (i : PointedGaloisObject F), cl i
s : Finset (PointedGaloisObject F)
gs : G
hgs :
  ∀ (i : ↥s) (x : (F.obj (↑i : PointedGaloisObject F).obj).obj),
    gs • x =
      (@ConcreteCategory.hom _ (ObjectProperty.FullSubcategory.category Finite)
            (fun (X Y : ObjectProperty.FullSubcategory Finite) ↦ TypeCat.Fun X.obj Y.obj)
            (fun (X : ObjectProperty.FullSubcategory Finite) ↦ X.obj)
            (fun (X Y : ObjectProperty.FullSubcategory Finite) ↦
              (TypeCat.instFunLikeFun : FunLike (TypeCat.Fun X.obj Y.obj) X.obj Y.obj))
            _ _ _
            (t.hom.app (↑i : PointedGaloisObject F).obj :
              F.obj (↑i : PointedGaloisObject F).obj ⟶ F.obj (↑i : PointedGaloisObject F).obj) :
          (a : (fun (X : ObjectProperty.FullSubcategory Finite) ↦ X.obj) (F.obj (↑i : PointedGaloisObject F).obj)) →
            (fun (X : ObjectProperty.FullSubcategory Finite) ↦ X.obj) (F.obj (↑i : PointedGaloisObject F).obj))
        x
X : PointedGaloisObject F
hXmem : X ∈ s
h₁ : (gi X)⁻¹ * gs ∈ (↑(MulAction.stabilizer G X.pt) : Set G)
h₂ : Membership.mem (γ := Subgroup G) (MulAction.stabilizer G X.pt) ((gi X)⁻¹ * gs)
h₃ : ((gi X)⁻¹ * gs) • X.pt = X.pt
h₄ : (gi X)⁻¹ • gs • X.pt = X.pt
h₅ :
  HSMul.hSMul (β := (F.obj X.obj).obj) (gi X)⁻¹
      ((@ConcreteCategory.hom _ (ObjectProperty.FullSubcategory.category Finite)
              (fun (X Y : ObjectProperty.FullSubcategory Finite) ↦ TypeCat.Fun X.obj Y.obj)
              (fun (X : ObjectProperty.FullSubcategory Finite) ↦ X.obj)
              (fun (X Y : ObjectProperty.FullSubcategory Finite) ↦
                (TypeCat.instFunLikeFun : FunLike (TypeCat.Fun X.obj Y.obj) X.obj Y.obj))
              _ _ _
              (t.hom.app
                  (↑(Subtype.mk (p := fun (x : PointedGaloisObject F) ↦ x ∈ s) X hXmem) : PointedGaloisObject F).obj :
                F.obj
                    (↑(Subtype.mk (p := fun (x : PointedGaloisObject F) ↦ x ∈ s) X hXmem) : PointedGaloisObject F).obj ⟶
                  F.obj
                    (↑(Subtype.mk (p := fun (x : PointedGaloisObject F) ↦ x ∈ s) X hXmem) :
                        PointedGaloisObject F).obj) :
            (a :
                (fun (X : ObjectProperty.FullSubcategory Finite) ↦ X.obj)
                  (F.obj (↑⟨X, hXmem⟩ : PointedGaloisObject F).obj)) →
              (fun (X : ObjectProperty.FullSubcategory Finite) ↦ X.obj)
                (F.obj (↑⟨X, hXmem⟩ : PointedGaloisObject F).obj))
          X.pt :
        (fun (X : ObjectProperty.FullSubcategory Finite) ↦ X.obj)
          (F.obj (↑(Subtype.mk (p := fun (x : PointedGaloisObject F) ↦ x ∈ s) X hXmem) : PointedGaloisObject F).obj)) =
    X.pt
h₆ : (gi X)⁻¹ • gi X • X.pt = X.pt
h₇ h₈ : X.pt = X.pt
⊢ gs ∈ cl X

Tactic:
rw [mem_leftCoset_iff, SetLike.mem_coe, MulAction.mem_stabilizer_iff, mul_smul,
        hgs ⟨X, hXmem⟩, ← hgi X, inv_smul_smul]

Premises used: mem_leftCoset_iff, inv_smul_smul, Subtype.mk, SetLike.mem_coe, MulAction.mem_stabilizer_iff, SemigroupAction.mul_smul