|
| 1 | +/- |
| 2 | +Copyright (c) 2025 Christian Merten. All rights reserved. |
| 3 | +Released under Apache 2.0 license as described in the file LICENSE. |
| 4 | +Authors: Christian Merten |
| 5 | +-/ |
| 6 | +import Mathlib.CategoryTheory.Galois.EssSurj |
| 7 | +import Mathlib.CategoryTheory.Action.Continuous |
| 8 | +import Mathlib.Topology.Category.FinTopCat |
| 9 | + |
| 10 | +/-! |
| 11 | +# Fiber functors induce an equivalence of categories |
| 12 | +
|
| 13 | +Let `C` be a Galois category with fiber functor `F`. |
| 14 | +
|
| 15 | +In this file we conclude that the induced functor from `C` to the category of finite, |
| 16 | +discrete `Aut F`-sets is an equivalence of categories. |
| 17 | +-/ |
| 18 | + |
| 19 | +universe u₂ u₁ w |
| 20 | + |
| 21 | +open CategoryTheory |
| 22 | + |
| 23 | +namespace CategoryTheory |
| 24 | + |
| 25 | +variable {C : Type u₁} [Category.{u₂} C] {F : C ⥤ FintypeCat.{w}} |
| 26 | + |
| 27 | +namespace PreGaloisCategory |
| 28 | + |
| 29 | +variable [GaloisCategory C] [FiberFunctor F] |
| 30 | + |
| 31 | +open scoped FintypeCatDiscrete |
| 32 | + |
| 33 | +variable (F) in |
| 34 | +/-- The induced functor from `C` to the category of finite, discrete `Aut F`-sets. -/ |
| 35 | +@[simps! obj_obj map] |
| 36 | +def functorToContAction : C ⥤ ContAction FintypeCat (Aut F) := |
| 37 | + ObjectProperty.lift _ (functorToAction F) (fun X ↦ continuousSMul_aut_fiber F X) |
| 38 | + |
| 39 | +instance : (functorToContAction F).Faithful := |
| 40 | + inferInstanceAs <| (ObjectProperty.lift _ _ _).Faithful |
| 41 | + |
| 42 | +instance : (functorToContAction F).Full := |
| 43 | + inferInstanceAs <| (ObjectProperty.lift _ _ _).Full |
| 44 | + |
| 45 | +instance {F : C ⥤ FintypeCat.{u₁}} [FiberFunctor F] : (functorToContAction F).EssSurj where |
| 46 | + mem_essImage X := by |
| 47 | + have : ContinuousSMul (Aut F) X.obj.V.carrier := X.2 |
| 48 | + obtain ⟨A, ⟨i⟩⟩ := exists_lift_of_continuous (F := F) X |
| 49 | + exact ⟨A, ⟨ObjectProperty.isoMk _ i⟩⟩ |
| 50 | + |
| 51 | +instance : (functorToContAction F).EssSurj := by |
| 52 | + let F' : C ⥤ FintypeCat.{u₁} := F ⋙ FintypeCat.uSwitch.{w, u₁} |
| 53 | + letI : FiberFunctor F' := FiberFunctor.comp_right _ |
| 54 | + have : (functorToContAction F').EssSurj := inferInstance |
| 55 | + let f : Aut F ≃ₜ* Aut F' := |
| 56 | + (autEquivAutWhiskerRight F (FintypeCat.uSwitchEquivalence.{w, u₁}).fullyFaithfulFunctor) |
| 57 | + let equiv : ContAction FintypeCat.{u₁} (Aut F') ≌ ContAction FintypeCat.{w} (Aut F) := |
| 58 | + (FintypeCat.uSwitchEquivalence.{u₁, w}.mapContAction (Aut F') |
| 59 | + (fun X ↦ by |
| 60 | + rw [Action.isContinuous_def] |
| 61 | + show Continuous ((fun p ↦ (FintypeCat.uSwitchEquiv X.obj.V).symm p) ∘ |
| 62 | + (fun p : Aut F' × _ ↦ (X.obj.ρ p.1) p.2) ∘ |
| 63 | + (fun p : Aut F' × _ ↦ (p.1, FintypeCat.uSwitchEquiv _ p.2))) |
| 64 | + have : Continuous (fun p : Aut F' × _ ↦ (X.obj.ρ p.1) p.2) := X.2.1 |
| 65 | + fun_prop) |
| 66 | + (fun X ↦ by |
| 67 | + rw [Action.isContinuous_def] |
| 68 | + show Continuous ((fun p ↦ (FintypeCat.uSwitchEquiv X.obj.V).symm p) ∘ |
| 69 | + (fun p : Aut F' × _ ↦ (X.obj.ρ p.1) p.2) ∘ |
| 70 | + (fun p : Aut F' × _ ↦ (p.1, FintypeCat.uSwitchEquiv _ p.2))) |
| 71 | + have : Continuous (fun p : Aut F' × _ ↦ (X.obj.ρ p.1) p.2) := X.2.1 |
| 72 | + fun_prop)).trans <| |
| 73 | + ContAction.resEquiv _ f |
| 74 | + have : functorToContAction F ≅ functorToContAction F' ⋙ equiv.functor := |
| 75 | + NatIso.ofComponents |
| 76 | + (fun X ↦ ObjectProperty.isoMk _ (Action.mkIso (FintypeCat.uSwitchEquivalence.unitIso.app _) |
| 77 | + (fun g ↦ FintypeCat.uSwitchEquivalence.unitIso.hom.naturality (g.hom.app X)))) |
| 78 | + (fun f ↦ by |
| 79 | + ext : 2 |
| 80 | + exact FintypeCat.uSwitchEquivalence.unitIso.hom.naturality (F.map f)) |
| 81 | + exact Functor.essSurj_of_iso this.symm |
| 82 | + |
| 83 | +/-- Any fiber functor `F` induces an equivalence of categories with the category of finite and |
| 84 | +discrete `Aut F`-sets. -/ |
| 85 | +@[stacks 0BN4] |
| 86 | +instance : (functorToContAction F).IsEquivalence where |
| 87 | + |
| 88 | +end PreGaloisCategory |
| 89 | + |
| 90 | +end CategoryTheory |
0 commit comments