Subgroupoid #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines subgroupoids as structure
s containing the subsets of arrows and their
stability under composition and inversion.
Also defined are:
- containment of subgroupoids is a complete lattice;
- images and preimages of subgroupoids under a functor;
- the notion of normality of subgroupoids and its stability under intersection and preimage;
- compatibility of the above with
groupoid.vertex_group
.
Main definitions #
Given a type C
with associated groupoid C
instance.
subgroupoid C
is the type of subgroupoids ofC
subgroupoid.is_normal
is the property that the subgroupoid is stable under conjugation by arbitrary arrows, and that all identity arrows are contained in the subgroupoid.subgroupoid.comap
is the "preimage" map of subgroupoids along a functor.subgroupoid.map
is the "image" map of subgroupoids along a functor injective on objects.subgroupoid.vertex_subgroup
is the subgroup of thevertex group
at a given vertexv
, assumingv
is contained in thesubgroupoid
(meaning, by definition, that the arrow𝟙 v
is contained in the subgroupoid).
Implementation details #
The structure of this file is copied from/inspired by group_theory.subgroup.basic
and combinatorics.simple_graph.subgraph
.
TODO #
- Equivalent inductive characterization of generated (normal) subgroupoids.
- Characterization of normal subgroupoids as kernels.
- Prove that
full
anddisconnect
preserve intersections (anddisconnect
also unions)
Tags #
subgroupoid
- arrows : Π (c d : C), set (c ⟶ d)
- inv : ∀ {c d : C} {p : c ⟶ d}, p ∈ self.arrows c d → category_theory.groupoid.inv p ∈ self.arrows d c
- mul : ∀ {c d e : C} {p : c ⟶ d}, p ∈ self.arrows c d → ∀ {q : d ⟶ e}, q ∈ self.arrows d e → p ≫ q ∈ self.arrows c e
A sugroupoid of C
consists of a choice of arrows for each pair of vertices, closed
under composition and inverses.
Instances for category_theory.subgroupoid
- category_theory.subgroupoid.has_sizeof_inst
- category_theory.subgroupoid.sigma.set_like
- category_theory.subgroupoid.has_top
- category_theory.subgroupoid.has_bot
- category_theory.subgroupoid.inhabited
- category_theory.subgroupoid.has_inf
- category_theory.subgroupoid.has_Inf
- category_theory.subgroupoid.complete_lattice
The vertices of C
on which S
has non-trivial isotropy
Instances for ↥category_theory.subgroupoid.objs
A subgroupoid seen as a quiver on vertex set C
The coercion of a subgroupoid as a groupoid
Equations
- S.coe = {to_category := {to_category_struct := {to_quiver := {hom := λ (a b : ↥(S.objs)), ↥(S.arrows a.val b.val)}, id := λ (a : ↥(S.objs)), ⟨𝟙 a.val, _⟩, comp := λ (a b c : ↥(S.objs)) (p : a ⟶ b) (q : b ⟶ c), ⟨p.val ≫ q.val, _⟩}, id_comp' := _, comp_id' := _, assoc' := _}, inv := λ (a b : ↥(S.objs)) (p : a ⟶ b), ⟨category_theory.groupoid.inv p.val, _⟩, inv_comp' := _, comp_inv' := _}
The embedding of the coerced subgroupoid to its parent
The subgroup of the vertex group at c
given by the subgroupoid
Equations
Equations
- category_theory.subgroupoid.has_Inf = {Inf := λ (s : set (category_theory.subgroupoid C)), {arrows := λ (c d : C), ⋂ (S : category_theory.subgroupoid C) (H : S ∈ s), S.arrows c d, inv := _, mul := _}}
Equations
- category_theory.subgroupoid.complete_lattice = {sup := complete_lattice.sup (complete_lattice_of_Inf (category_theory.subgroupoid C) category_theory.subgroupoid.complete_lattice._proof_1), le := complete_lattice.le (complete_lattice_of_Inf (category_theory.subgroupoid C) category_theory.subgroupoid.complete_lattice._proof_1), lt := complete_lattice.lt (complete_lattice_of_Inf (category_theory.subgroupoid C) category_theory.subgroupoid.complete_lattice._proof_1), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := has_inf.inf category_theory.subgroupoid.has_inf, inf_le_left := _, inf_le_right := _, le_inf := _, Sup := complete_lattice.Sup (complete_lattice_of_Inf (category_theory.subgroupoid C) category_theory.subgroupoid.complete_lattice._proof_1), le_Sup := _, Sup_le := _, Inf := complete_lattice.Inf (complete_lattice_of_Inf (category_theory.subgroupoid C) category_theory.subgroupoid.complete_lattice._proof_1), Inf_le := _, le_Inf := _, top := ⊤, bot := ⊥, le_top := _, bot_le := _}
The functor associated to the embedding of subgroupoids
- id : ∀ {C : Type u} [_inst_1 : category_theory.groupoid C] (c : C), category_theory.subgroupoid.discrete.arrows c c (𝟙 c)
The family of arrows of the discrete groupoid
The only arrows of the discrete groupoid are the identity arrows.
Equations
- category_theory.subgroupoid.discrete = {arrows := category_theory.subgroupoid.discrete.arrows _inst_1, inv := _, mul := _}
A subgroupoid is wide if its carrier set is all of C
- to_is_wide : S.is_wide
- conj : ∀ {c d : C} (p : c ⟶ d) {γ : c ⟶ c}, γ ∈ S.arrows c c → category_theory.groupoid.inv p ≫ γ ≫ p ∈ S.arrows d d
A subgroupoid is normal if it is wide and satisfies the expected stability under conjugacy.
The subgropoid generated by the set of arrows X
Equations
- category_theory.subgroupoid.generated X = has_Inf.Inf {S : category_theory.subgroupoid C | ∀ (c d : C), X c d ⊆ S.arrows c d}
The normal sugroupoid generated by the set of arrows X
Equations
- category_theory.subgroupoid.generated_normal X = has_Inf.Inf {S : category_theory.subgroupoid C | (∀ (c d : C), X c d ⊆ S.arrows c d) ∧ S.is_normal}
A functor between groupoid defines a map of subgroupoids in the reverse direction by taking preimages.
The kernel of a functor between subgroupoid is the preimage.
- im : ∀ {C : Type u} [_inst_1 : category_theory.groupoid C] {D : Type u_2} [_inst_2 : category_theory.groupoid D] {φ : C ⥤ D} {hφ : function.injective φ.obj} {S : category_theory.subgroupoid C} {c d : C} (f : c ⟶ d), f ∈ S.arrows c d → category_theory.subgroupoid.map.arrows φ hφ S (φ.obj c) (φ.obj d) (φ.map f)
The family of arrows of the image of a subgroupoid under a functor injective on objects
The "forward" image of a subgroupoid under a functor injective on objects
Equations
- category_theory.subgroupoid.map φ hφ S = {arrows := category_theory.subgroupoid.map.arrows φ hφ S, inv := _, mul := _}
The image of a functor injective on objects
Equations
A subgroupoid is_thin
if it has at most one arrow between any two vertices.
A subgroupoid is_totally_disconnected
if it has only isotropy arrows.
The isotropy subgroupoid of S
The full subgroupoid on a set D : set C