File: Mathlib/CategoryTheory/Category/Pairwise.lean

full_name: CategoryTheory.Pairwise.pair
code: /-- An inductive type representing either a single term of a type `ι`, or a pair of terms.
We use this as the objects of a category to describe the sheaf condition.
-/
inductive Pairwise (ι : Type v)
  | single : ι → Pairwise ι
  | pair : ι → ι → Pairwise ι
goal: ι → ι → CategoryTheory.Pairwise ι

full_name: CategoryTheory.Pairwise
code: /-- An inductive type representing either a single term of a type `ι`, or a pair of terms.
We use this as the objects of a category to describe the sheaf condition.
-/
inductive Pairwise (ι : Type v)
  | single : ι → Pairwise ι
  | pair : ι → ι → Pairwise ι
goal: Type v

full_name: CategoryTheory.Pairwise.single
code: /-- An inductive type representing either a single term of a type `ι`, or a pair of terms.
We use this as the objects of a category to describe the sheaf condition.
-/
inductive Pairwise (ι : Type v)
  | single : ι → Pairwise ι
  | pair : ι → ι → Pairwise ι
goal: ι → CategoryTheory.Pairwise ι

full_name: CategoryTheory.Pairwise.pairwiseInhabited
code: instance pairwiseInhabited [Inhabited ι] : Inhabited (Pairwise ι) 
goal: Inhabited (CategoryTheory.Pairwise ι)

full_name: CategoryTheory.Pairwise.Hom.id_pair
code: /-- Morphisms in the category `Pairwise ι`. The only non-identity morphisms are
`left i j : single i ⟶ pair i j` and `right i j : single j ⟶ pair i j`.
-/
inductive Hom : Pairwise ι → Pairwise ι → Type v
  | id_single : ∀ i, Hom (single i) (single i)
  | id_pair : ∀ i j, Hom (pair i j) (pair i j)
  | left : ∀ i j, Hom (pair i j) (single i)
  | right : ∀ i j, Hom (pair i j) (single j)
goal: (CategoryTheory.Pairwise.pair i j).Hom (CategoryTheory.Pairwise.pair i j)

full_name: CategoryTheory.Pairwise.Hom.id_single
code: /-- Morphisms in the category `Pairwise ι`. The only non-identity morphisms are
`left i j : single i ⟶ pair i j` and `right i j : single j ⟶ pair i j`.
-/
inductive Hom : Pairwise ι → Pairwise ι → Type v
  | id_single : ∀ i, Hom (single i) (single i)
  | id_pair : ∀ i j, Hom (pair i j) (pair i j)
  | left : ∀ i j, Hom (pair i j) (single i)
  | right : ∀ i j, Hom (pair i j) (single j)
goal: (CategoryTheory.Pairwise.single i).Hom (CategoryTheory.Pairwise.single i)

full_name: CategoryTheory.Pairwise.Hom
code: /-- Morphisms in the category `Pairwise ι`. The only non-identity morphisms are
`left i j : single i ⟶ pair i j` and `right i j : single j ⟶ pair i j`.
-/
inductive Hom : Pairwise ι → Pairwise ι → Type v
  | id_single : ∀ i, Hom (single i) (single i)
  | id_pair : ∀ i j, Hom (pair i j) (pair i j)
  | left : ∀ i j, Hom (pair i j) (single i)
  | right : ∀ i j, Hom (pair i j) (single j)
goal: CategoryTheory.Pairwise ι → CategoryTheory.Pairwise ι → Type v

full_name: CategoryTheory.Pairwise.Hom.left
code: /-- Morphisms in the category `Pairwise ι`. The only non-identity morphisms are
`left i j : single i ⟶ pair i j` and `right i j : single j ⟶ pair i j`.
-/
inductive Hom : Pairwise ι → Pairwise ι → Type v
  | id_single : ∀ i, Hom (single i) (single i)
  | id_pair : ∀ i j, Hom (pair i j) (pair i j)
  | left : ∀ i j, Hom (pair i j) (single i)
  | right : ∀ i j, Hom (pair i j) (single j)
goal: (CategoryTheory.Pairwise.pair i j).Hom (CategoryTheory.Pairwise.single i)

full_name: CategoryTheory.Pairwise.Hom.right
code: /-- Morphisms in the category `Pairwise ι`. The only non-identity morphisms are
`left i j : single i ⟶ pair i j` and `right i j : single j ⟶ pair i j`.
-/
inductive Hom : Pairwise ι → Pairwise ι → Type v
  | id_single : ∀ i, Hom (single i) (single i)
  | id_pair : ∀ i j, Hom (pair i j) (pair i j)
  | left : ∀ i j, Hom (pair i j) (single i)
  | right : ∀ i j, Hom (pair i j) (single j)
goal: (CategoryTheory.Pairwise.pair i j).Hom (CategoryTheory.Pairwise.single j)

full_name: CategoryTheory.Pairwise.homInhabited
code: instance homInhabited [Inhabited ι] : Inhabited (Hom (single (default : ι)) (single default)) 
goal: Inhabited ((CategoryTheory.Pairwise.single default).Hom (CategoryTheory.Pairwise.single default))

full_name: CategoryTheory.Pairwise.id
code: /-- The identity morphism in `Pairwise ι`.
-/
def id : ∀ o : Pairwise ι, Hom o o
  
goal: o.Hom o

full_name: CategoryTheory.Pairwise.comp
code: /-- Composition of morphisms in `Pairwise ι`. -/
def comp : ∀ {o₁ o₂ o₃ : Pairwise ι} (_ : Hom o₁ o₂) (_ : Hom o₂ o₃), Hom o₁ o₃
  
goal: o₁.Hom o₂ → o₂.Hom o₃ → o₁.Hom o₃

full_name: CategoryTheory.Pairwise.pairwiseCases
code: /-- A helper tactic for `aesop_cat` and `Pairwise`. -/
def pairwiseCases : TacticM Unit 
goal: Lean.Elab.Tactic.TacticM Unit

full_name: CategoryTheory.Pairwise.instCategory
code: instance : Category (Pairwise ι) 
goal: CategoryTheory.Category.{v, v} (CategoryTheory.Pairwise ι)

full_name: CategoryTheory.Pairwise.diagramObj
code: /-- Auxiliary definition for `diagram`. -/
@[simp]
def diagramObj : Pairwise ι → α
  
goal: CategoryTheory.Pairwise ι → α

full_name: CategoryTheory.Pairwise.diagramMap
code: /-- Auxiliary definition for `diagram`. -/
@[simp]
def diagramMap : ∀ {o₁ o₂ : Pairwise ι} (_ : o₁ ⟶ o₂), diagramObj U o₁ ⟶ diagramObj U o₂
  
goal: (o₁ ⟶ o₂) → (CategoryTheory.Pairwise.diagramObj U o₁ ⟶ CategoryTheory.Pairwise.diagramObj U o₂)

full_name: CategoryTheory.Pairwise.diagram
code: /-- Given a function `U : ι → α` for `[SemilatticeInf α]`, we obtain a functor `Pairwise ι ⥤ α`,
sending `single i` to `U i` and `pair i j` to `U i ⊓ U j`,
and the morphisms to the obvious inequalities.
-/
-- Porting note: We want `@[simps]` here, but this causes a PANIC in the linter.
-- (Which, worryingly, does not cause a linter failure!)
-- @[simps]
def diagram : Pairwise ι ⥤ α 
goal: CategoryTheory.Pairwise ι ⥤ α

full_name: CategoryTheory.Pairwise.coconeιApp
code: /-- Auxiliary definition for `cocone`. -/
def coconeιApp : ∀ o : Pairwise ι, diagramObj U o ⟶ iSup U
  
goal: CategoryTheory.Pairwise.diagramObj U o ⟶ iSup U

full_name: CategoryTheory.Pairwise.cocone_ι_app
code: /-- Given a function `U : ι → α` for `[CompleteLattice α]`,
`iSup U` provides a cocone over `diagram U`.
-/
@[simps]
def cocone : Cocone (diagram U) 
goal: (CategoryTheory.Pairwise.cocone U).ι.app o = CategoryTheory.Pairwise.coconeιApp U o

full_name: CategoryTheory.Pairwise.cocone
code: /-- Given a function `U : ι → α` for `[CompleteLattice α]`,
`iSup U` provides a cocone over `diagram U`.
-/
@[simps]
def cocone : Cocone (diagram U) 
goal: CategoryTheory.Limits.Cocone (CategoryTheory.Pairwise.diagram U)

full_name: CategoryTheory.Pairwise.cocone_pt
code: /-- Given a function `U : ι → α` for `[CompleteLattice α]`,
`iSup U` provides a cocone over `diagram U`.
-/
@[simps]
def cocone : Cocone (diagram U) 
goal: (CategoryTheory.Pairwise.cocone U).pt = iSup U

full_name: CategoryTheory.Pairwise.coconeIsColimit
code: /-- Given a function `U : ι → α` for `[CompleteLattice α]`,
`iInf U` provides a limit cone over `diagram U`.
-/
def coconeIsColimit : IsColimit (cocone U) 
goal: CategoryTheory.Limits.IsColimit (CategoryTheory.Pairwise.cocone U)