File: Mathlib/Combinatorics/Quiver/Subquiver.lean

full_name: WideSubquiver
code: /-- A wide subquiver `H` of `G` picks out a set `H a b` of arrows from `a` to `b`
    for every pair of vertices `a b`.

    NB: this does not work for `Prop`-valued quivers. It requires `G : Quiver.{v+1} V`. -/
def WideSubquiver (V) [Quiver.{v + 1} V] 
goal: Type (max u_1 v)

full_name: WideSubquiver.toType
code: /-- A type synonym for `V`, when thought of as a quiver having only the arrows from
some `WideSubquiver`. -/
-- Porting note: no hasNonemptyInstance linter yet
@[nolint unusedArguments]
def WideSubquiver.toType (V) [Quiver V] (_ : WideSubquiver V) : Type u 
goal: WideSubquiver V → Type u

full_name: wideSubquiverHasCoeToSort
code: instance wideSubquiverHasCoeToSort {V} [Quiver V] :
    CoeSort (WideSubquiver V) (Type u) 
goal: CoeSort (WideSubquiver V) (Type u)

full_name: WideSubquiver.quiver
code: /-- A wide subquiver viewed as a quiver on its own. -/
instance WideSubquiver.quiver {V} [Quiver V] (H : WideSubquiver V) : Quiver H 
goal: Quiver (WideSubquiver.toType V H)

full_name: Quiver.instBotWideSubquiver
code: instance {V} [Quiver V] : Bot (WideSubquiver V) 
goal: Bot (WideSubquiver V)

full_name: Quiver.instTopWideSubquiver
code: instance {V} [Quiver V] : Top (WideSubquiver V) 
goal: Top (WideSubquiver V)

full_name: Quiver.instInhabitedWideSubquiver
code: noncomputable instance {V} [Quiver V] : Inhabited (WideSubquiver V) 
goal: Inhabited (WideSubquiver V)

full_name: Quiver.Total.left
code: /-- `Total V` is the type of _all_ arrows of `V`. -/
-- Porting note: no hasNonemptyInstance linter yet
@[ext]
structure Total (V : Type u) [Quiver.{v} V] : Sort max (u + 1) v where
  /-- the source vertex of an arrow -/
  left : V
  /-- the target vertex of an arrow -/
  right : V
  /-- an arrow -/
  hom : left ⟶ right
goal: V

full_name: Quiver.Total
code: /-- `Total V` is the type of _all_ arrows of `V`. -/
-- Porting note: no hasNonemptyInstance linter yet
@[ext]
structure Total (V : Type u) [Quiver.{v} V] : Sort max (u + 1) v where
  /-- the source vertex of an arrow -/
  left : V
  /-- the target vertex of an arrow -/
  right : V
  /-- an arrow -/
  hom : left ⟶ right
goal: Sort (max (u + 1) v)

full_name: Quiver.Total.right
code: /-- `Total V` is the type of _all_ arrows of `V`. -/
-- Porting note: no hasNonemptyInstance linter yet
@[ext]
structure Total (V : Type u) [Quiver.{v} V] : Sort max (u + 1) v where
  /-- the source vertex of an arrow -/
  left : V
  /-- the target vertex of an arrow -/
  right : V
  /-- an arrow -/
  hom : left ⟶ right
goal: V

full_name: Quiver.Total.hom
code: /-- `Total V` is the type of _all_ arrows of `V`. -/
-- Porting note: no hasNonemptyInstance linter yet
@[ext]
structure Total (V : Type u) [Quiver.{v} V] : Sort max (u + 1) v where
  /-- the source vertex of an arrow -/
  left : V
  /-- the target vertex of an arrow -/
  right : V
  /-- an arrow -/
  hom : left ⟶ right
goal: self.left ⟶ self.right

full_name: Quiver.wideSubquiverEquivSetTotal
code: /-- A wide subquiver of `G` can equivalently be viewed as a total set of arrows. -/
def wideSubquiverEquivSetTotal {V} [Quiver V] :
    WideSubquiver V ≃
      Set (Total V) 
goal: WideSubquiver V ≃ Set (Quiver.Total V)

full_name: Quiver.Labelling
code: /-- An `L`-labelling of a quiver assigns to every arrow an element of `L`. -/
def Labelling (V : Type u) [Quiver V] (L : Sort*) 
goal: Sort (imax (u + 1) (u + 1) u_2 u_1)

full_name: Quiver.instInhabitedLabelling
code: instance {V : Type u} [Quiver V] (L) [Inhabited L] : Inhabited (Labelling V L) 
goal: Inhabited (Quiver.Labelling V L)