Properties of objects on categories equipped with shift #
Given a predicate P : ObjectProperty C on objects of a category equipped with a shift
by A, we define shifted properties of objects P.shift a for all a : A.
We also introduce a typeclass P.IsStableUnderShift A to say that P X
implies P (X⟦a⟧) for all a : A.
def
CategoryTheory.ObjectProperty.shift
{C : Type u_1}
[Category.{u_3, u_1} C]
(P : ObjectProperty C)
{A : Type u_2}
[AddMonoid A]
[HasShift C A]
(a : A)
:
Given a predicate P : C → Prop on objects of a category equipped with a shift by A,
this is the predicate which is satisfied by X if P (X⟦a⟧).
Equations
- P.shift a X = P ((CategoryTheory.shiftFunctor C a).obj X)
Instances For
theorem
CategoryTheory.ObjectProperty.prop_shift_iff
{C : Type u_1}
[Category.{u_3, u_1} C]
(P : ObjectProperty C)
{A : Type u_2}
[AddMonoid A]
[HasShift C A]
(a : A)
(X : C)
:
instance
CategoryTheory.ObjectProperty.instIsClosedUnderIsomorphismsShift
{C : Type u_1}
[Category.{u_3, u_1} C]
(P : ObjectProperty C)
{A : Type u_2}
[AddMonoid A]
[HasShift C A]
(a : A)
[P.IsClosedUnderIsomorphisms]
:
@[simp]
theorem
CategoryTheory.ObjectProperty.shift_zero
{C : Type u_1}
[Category.{u_3, u_1} C]
(P : ObjectProperty C)
(A : Type u_2)
[AddMonoid A]
[HasShift C A]
[P.IsClosedUnderIsomorphisms]
:
theorem
CategoryTheory.ObjectProperty.shift_shift
{C : Type u_1}
[Category.{u_3, u_1} C]
(P : ObjectProperty C)
{A : Type u_2}
[AddMonoid A]
[HasShift C A]
(a b c : A)
(h : a + b = c)
[P.IsClosedUnderIsomorphisms]
:
class
CategoryTheory.ObjectProperty.IsStableUnderShiftBy
{C : Type u_1}
[Category.{u_3, u_1} C]
(P : ObjectProperty C)
{A : Type u_2}
[AddMonoid A]
[HasShift C A]
(a : A)
:
P : ObjectProperty C is stable under the shift by a : A if
P X implies P X⟦a⟧.
Instances
theorem
CategoryTheory.ObjectProperty.le_shift
{C : Type u_1}
[Category.{u_3, u_1} C]
(P : ObjectProperty C)
{A : Type u_2}
[AddMonoid A]
[HasShift C A]
(a : A)
[P.IsStableUnderShiftBy a]
:
instance
CategoryTheory.ObjectProperty.instIsStableUnderShiftByIsoClosure
{C : Type u_1}
[Category.{u_3, u_1} C]
(P : ObjectProperty C)
{A : Type u_2}
[AddMonoid A]
[HasShift C A]
(a : A)
[P.IsStableUnderShiftBy a]
:
class
CategoryTheory.ObjectProperty.IsStableUnderShift
{C : Type u_1}
[Category.{u_3, u_1} C]
(P : ObjectProperty C)
(A : Type u_2)
[AddMonoid A]
[HasShift C A]
:
P : ObjectProperty C is stable under the shift by A if
P X implies P X⟦a⟧ for any a : A.
- isStableUnderShiftBy (a : A) : P.IsStableUnderShiftBy a
Instances
instance
CategoryTheory.ObjectProperty.instIsStableUnderShiftIsoClosure
{C : Type u_1}
[Category.{u_3, u_1} C]
(P : ObjectProperty C)
{A : Type u_2}
[AddMonoid A]
[HasShift C A]
[P.IsStableUnderShift A]
:
theorem
CategoryTheory.ObjectProperty.prop_shift_iff_of_isStableUnderShift
{C : Type u_1}
[Category.{u_4, u_1} C]
(P : ObjectProperty C)
{G : Type u_3}
[AddGroup G]
[HasShift C G]
[P.IsStableUnderShift G]
[P.IsClosedUnderIsomorphisms]
(X : C)
(g : G)
: