File: Mathlib/CategoryTheory/Noetherian.lean

full_name: CategoryTheory.NoetherianObject
code: /-- A noetherian object is an object
which does not have infinite increasing sequences of subobjects.

See https://stacks.math.columbia.edu/tag/0FCG
-/
class NoetherianObject (X : C) : Prop where
  subobject_gt_wellFounded' : WellFounded ((· > ·) : Subobject X → Subobject X → Prop)
goal: Prop

full_name: CategoryTheory.NoetherianObject.subobject_gt_wellFounded'
code: /-- A noetherian object is an object
which does not have infinite increasing sequences of subobjects.

See https://stacks.math.columbia.edu/tag/0FCG
-/
class NoetherianObject (X : C) : Prop where
  subobject_gt_wellFounded' : WellFounded ((· > ·) : Subobject X → Subobject X → Prop)
goal: WellFounded fun x x_1 => x > x_1

full_name: CategoryTheory.NoetherianObject.subobject_gt_wellFounded
code: lemma NoetherianObject.subobject_gt_wellFounded (X : C) [NoetherianObject X] :
    WellFounded ((· > ·) : Subobject X → Subobject X → Prop) 
goal: WellFounded fun x x_1 => x > x_1

full_name: CategoryTheory.ArtinianObject
code: /-- An artinian object is an object
which does not have infinite decreasing sequences of subobjects.

See https://stacks.math.columbia.edu/tag/0FCF
-/
class ArtinianObject (X : C) : Prop where
  subobject_lt_wellFounded' : WellFounded ((· < ·) : Subobject X → Subobject X → Prop)
goal: Prop

full_name: CategoryTheory.ArtinianObject.subobject_lt_wellFounded'
code: /-- An artinian object is an object
which does not have infinite decreasing sequences of subobjects.

See https://stacks.math.columbia.edu/tag/0FCF
-/
class ArtinianObject (X : C) : Prop where
  subobject_lt_wellFounded' : WellFounded ((· < ·) : Subobject X → Subobject X → Prop)
goal: WellFounded fun x x_1 => x < x_1

full_name: CategoryTheory.ArtinianObject.subobject_lt_wellFounded
code: lemma ArtinianObject.subobject_lt_wellFounded (X : C) [ArtinianObject X] :
    WellFounded ((· < ·) : Subobject X → Subobject X → Prop) 
goal: WellFounded fun x x_1 => x < x_1

full_name: CategoryTheory.Noetherian.noetherianObject
code: /-- A category is noetherian if it is essentially small and all objects are noetherian. -/
class Noetherian extends EssentiallySmall C : Prop where
  noetherianObject : ∀ X : C, NoetherianObject X
goal: CategoryTheory.NoetherianObject X

full_name: CategoryTheory.Noetherian
code: /-- A category is noetherian if it is essentially small and all objects are noetherian. -/
class Noetherian extends EssentiallySmall C : Prop where
  noetherianObject : ∀ X : C, NoetherianObject X
goal: Prop

full_name: CategoryTheory.Artinian
code: /-- A category is artinian if it is essentially small and all objects are artinian. -/
class Artinian extends EssentiallySmall C : Prop where
  artinianObject : ∀ X : C, ArtinianObject X
goal: Prop

full_name: CategoryTheory.Artinian.artinianObject
code: /-- A category is artinian if it is essentially small and all objects are artinian. -/
class Artinian extends EssentiallySmall C : Prop where
  artinianObject : ∀ X : C, ArtinianObject X
goal: CategoryTheory.ArtinianObject X

full_name: CategoryTheory.exists_simple_subobject
code: theorem exists_simple_subobject {X : C} [ArtinianObject X] (h : ¬IsZero X) :
    ∃ Y : Subobject X, Simple (Y : C) 
goal: ∃ Y, CategoryTheory.Simple (CategoryTheory.Subobject.underlying.obj Y)

full_name: CategoryTheory.simpleSubobject
code: /-- Choose an arbitrary simple subobject of a non-zero artinian object. -/
noncomputable def simpleSubobject {X : C} [ArtinianObject X] (h : ¬IsZero X) : C 
goal: C

full_name: CategoryTheory.simpleSubobjectArrow
code: /-- The monomorphism from the arbitrary simple subobject of a non-zero artinian object. -/
noncomputable def simpleSubobjectArrow {X : C} [ArtinianObject X] (h : ¬IsZero X) :
    simpleSubobject h ⟶ X 
goal: CategoryTheory.simpleSubobject h ⟶ X

full_name: CategoryTheory.mono_simpleSubobjectArrow
code: instance mono_simpleSubobjectArrow {X : C} [ArtinianObject X] (h : ¬IsZero X) :
    Mono (simpleSubobjectArrow h) 
goal: CategoryTheory.Mono (CategoryTheory.simpleSubobjectArrow h)

full_name: CategoryTheory.instSimpleSimpleSubobject
code: instance {X : C} [ArtinianObject X] (h : ¬IsZero X) : Simple (simpleSubobject h) 
goal: CategoryTheory.Simple (CategoryTheory.simpleSubobject h)