|
| 1 | +/- |
| 2 | +Copyright (c) 2023 Dagur Asgeirsson. All rights reserved. |
| 3 | +Released under Apache 2.0 license as described in the file LICENSE. |
| 4 | +Authors: Dagur Asgeirsson |
| 5 | +-/ |
| 6 | +import Mathlib.CategoryTheory.Sites.Coherent.SheafComparison |
| 7 | +import Mathlib.Condensed.Light.Module |
| 8 | +/-! |
| 9 | +
|
| 10 | +# The explicit sheaf condition for light condensed sets |
| 11 | +
|
| 12 | +We give explicit description of light condensed sets: |
| 13 | +
|
| 14 | +* `LightCondensed.ofSheafLightProfinite`: A finite-product-preserving presheaf on `LightProfinite`, |
| 15 | + satisfying `EqualizerCondition`. |
| 16 | +
|
| 17 | +The property `EqualizerCondition` is defined in `Mathlib/CategoryTheory/Sites/RegularExtensive.lean` |
| 18 | +and it says that for any effective epi `X ⟶ B` (in this case that is equivalent to being a |
| 19 | +continuous surjection), the presheaf `F` exhibits `F(B)` as the equalizer of the two maps |
| 20 | +`F(X) ⇉ F(X ×_B X)` |
| 21 | +-/ |
| 22 | + |
| 23 | +universe v u w |
| 24 | + |
| 25 | +open CategoryTheory Limits Opposite Functor Presheaf regularTopology |
| 26 | + |
| 27 | +variable {A : Type*} [Category A] |
| 28 | + |
| 29 | +namespace LightCondensed |
| 30 | + |
| 31 | +/-- |
| 32 | +The light condensed object associated to a presheaf on `LightProfinite` which preserves finite |
| 33 | +products and satisfies the equalizer condition. |
| 34 | +-/ |
| 35 | +@[simps] |
| 36 | +noncomputable def ofSheafLightProfinite (F : LightProfinite.{u}ᵒᵖ ⥤ A) [PreservesFiniteProducts F] |
| 37 | + (hF : EqualizerCondition F) : LightCondensed A where |
| 38 | + val := F |
| 39 | + cond := by |
| 40 | + rw [isSheaf_iff_preservesFiniteProducts_and_equalizerCondition F] |
| 41 | + exact ⟨⟨⟨fun _ _ ↦ inferInstance⟩⟩, hF⟩ |
| 42 | + |
| 43 | +/-- |
| 44 | +The light condensed object associated to a presheaf on `LightProfinite` whose postcomposition with |
| 45 | +the forgetful functor preserves finite products and satisfies the equalizer condition. |
| 46 | +-/ |
| 47 | +@[simps] |
| 48 | +noncomputable def ofSheafForgetLightProfinite |
| 49 | + [ConcreteCategory A] [ReflectsFiniteLimits (CategoryTheory.forget A)] |
| 50 | + (F : LightProfinite.{u}ᵒᵖ ⥤ A) [PreservesFiniteProducts (F ⋙ CategoryTheory.forget A)] |
| 51 | + (hF : EqualizerCondition (F ⋙ CategoryTheory.forget A)) : LightCondensed A where |
| 52 | + val := F |
| 53 | + cond := by |
| 54 | + apply isSheaf_coherent_of_hasPullbacks_of_comp F (CategoryTheory.forget A) |
| 55 | + rw [isSheaf_iff_preservesFiniteProducts_and_equalizerCondition] |
| 56 | + exact ⟨⟨⟨fun _ _ ↦ inferInstance⟩⟩, hF⟩ |
| 57 | + |
| 58 | +/-- A light condensed object satisfies the equalizer condition. -/ |
| 59 | +theorem equalizerCondition (X : LightCondensed A) : EqualizerCondition X.val := |
| 60 | + isSheaf_iff_preservesFiniteProducts_and_equalizerCondition X.val |>.mp X.cond |>.2 |
| 61 | + |
| 62 | +/-- A light condensed object preserves finite products. -/ |
| 63 | +noncomputable instance (X : LightCondensed A) : PreservesFiniteProducts X.val := |
| 64 | + isSheaf_iff_preservesFiniteProducts_and_equalizerCondition X.val |>.mp X.cond |>.1.some |
| 65 | + |
| 66 | +end LightCondensed |
| 67 | + |
| 68 | +namespace LightCondSet |
| 69 | + |
| 70 | +/-- A `LightCondSet` version of `LightCondensed.ofSheafLightProfinite`. -/ |
| 71 | +noncomputable abbrev ofSheafLightProfinite (F : LightProfinite.{u}ᵒᵖ ⥤ Type u) |
| 72 | + [PreservesFiniteProducts F] (hF : EqualizerCondition F) : LightCondSet := |
| 73 | + LightCondensed.ofSheafLightProfinite F hF |
| 74 | + |
| 75 | +end LightCondSet |
| 76 | + |
| 77 | +namespace LightCondMod |
| 78 | + |
| 79 | +variable (R : Type u) [Ring R] |
| 80 | + |
| 81 | +/-- A `LightCondAb` version of `LightCondensed.ofSheafLightProfinite`. -/ |
| 82 | +noncomputable abbrev ofSheafLightProfinite (F : LightProfinite.{u}ᵒᵖ ⥤ ModuleCat.{u} R) |
| 83 | + [PreservesFiniteProducts F] (hF : EqualizerCondition F) : LightCondMod.{u} R := |
| 84 | + LightCondensed.ofSheafLightProfinite F hF |
| 85 | + |
| 86 | +end LightCondMod |
| 87 | + |
| 88 | +namespace LightCondAb |
| 89 | + |
| 90 | +/-- A `LightCondAb` version of `LightCondensed.ofSheafLightProfinite`. -/ |
| 91 | +noncomputable abbrev ofSheafLightProfinite (F : LightProfiniteᵒᵖ ⥤ ModuleCat ℤ) |
| 92 | + [PreservesFiniteProducts F] (hF : EqualizerCondition F) : LightCondAb := |
| 93 | + LightCondMod.ofSheafLightProfinite ℤ F hF |
| 94 | + |
| 95 | +end LightCondAb |
0 commit comments