ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Polynomial.separable_X_pow_sub_C_unit
theorem separable_X_pow_sub_C_unit {n : ℕ} (u : Rˣ) (hn : IsUnit (n : R)) :
    Separable (X ^ n - C (u : R)) 
Arguments: {R : Type u} [CommRing R] {n : ℕ} (u : Rˣ) (hn : IsUnit ↑n)
Goal: (Polynomial.X ^ n - Polynomial.C ↑u).Separable
-- Polynomial.rootMultiplicity_le_one_of_separable
theorem rootMultiplicity_le_one_of_separable [Nontrivial R] {p : R[X]} (hsep : Separable p)
    (x : R) : rootMultiplicity x p ≤ 1 
Arguments: {R : Type u} [CommRing R] [Nontrivial R] {p : R[X]} (hsep : p.Separable) (x : R)
Goal: Polynomial.rootMultiplicity x p ≤ 1
-- Polynomial.count_roots_le_one
theorem count_roots_le_one {p : R[X]} (hsep : Separable p) (x : R) : p.roots.count x ≤ 1 
Arguments: {R : Type u} [CommRing R] [IsDomain R] {p : R[X]} (hsep : p.Separable) (x : R)
Goal: Multiset.count x p.roots ≤ 1
-- Polynomial.nodup_roots
theorem nodup_roots {p : R[X]} (hsep : Separable p) : p.roots.Nodup 
Arguments: {R : Type u} [CommRing R] [IsDomain R] {p : R[X]} (hsep : p.Separable)
Goal: p.roots.Nodup
-- Polynomial.separable_iff_derivative_ne_zero
theorem separable_iff_derivative_ne_zero {f : F[X]} (hf : Irreducible f) :
    f.Separable ↔ derivative f ≠ 0 
Arguments: {F : Type u} [Field F] {f : F[X]} (hf : Irreducible f)
Goal: f.Separable ↔ Polynomial.derivative f ≠ 0
-- Polynomial.separable_map
theorem separable_map {S} [CommRing S] [Nontrivial S] (f : F →+* S) {p : F[X]} :
    (p.map f).Separable ↔ p.Separable 
Arguments: {F : Type u} [Field F] {S : Type u_1} [CommRing S] [Nontrivial S] (f : F →+* S) {p : F[X]}
Goal: (Polynomial.map f p).Separable ↔ p.Separable
-- Polynomial.separable_prod_X_sub_C_iff'
theorem separable_prod_X_sub_C_iff' {ι : Sort _} {f : ι → F} {s : Finset ι} :
    (∏ i ∈ s, (X - C (f i))).Separable ↔ ∀ x ∈ s, ∀ y ∈ s, f x = f y → x = y 
Arguments: {F : Type u} [Field F] {ι : Type u_1} {f : ι → F} {s : Finset ι}
Goal: (∏ i ∈ s, (Polynomial.X - Polynomial.C (f i))).Separable ↔ ∀ x ∈ s, ∀ y ∈ s, f x = f y → x = y
-- Polynomial.separable_prod_X_sub_C_iff
theorem separable_prod_X_sub_C_iff {ι : Sort _} [Fintype ι] {f : ι → F} :
    (∏ i, (X - C (f i))).Separable ↔ Function.Injective f 
Arguments: {F : Type u} [Field F] {ι : Type u_1} [Fintype ι] {f : ι → F}
Goal: (∏ i : ι, (Polynomial.X - Polynomial.C (f i))).Separable ↔ Function.Injective f
-- Polynomial.separable_or
theorem separable_or {f : F[X]} (hf : Irreducible f) :
    f.Separable ∨ ¬f.Separable ∧ ∃ g : F[X], Irreducible g ∧ expand F p g = f 
Arguments: {F : Type u} [Field F] (p : ℕ) [HF : CharP F p] {f : F[X]} (hf : Irreducible f)
Goal: f.Separable ∨ ¬f.Separable ∧ ∃ g, Irreducible g ∧ (Polynomial.expand F p) g = f
-- Polynomial.exists_separable_of_irreducible
theorem exists_separable_of_irreducible {f : F[X]} (hf : Irreducible f) (hp : p ≠ 0) :
    ∃ (n : ℕ) (g : F[X]), g.Separable ∧ expand F (p ^ n) g = f 
Arguments: {F : Type u} [Field F] (p : ℕ) [HF : CharP F p] {f : F[X]} (hf : Irreducible f) (hp : p ≠ 0)
Goal: ∃ n g, g.Separable ∧ (Polynomial.expand F (p ^ n)) g = f
-- Polynomial.isUnit_or_eq_zero_of_separable_expand
theorem isUnit_or_eq_zero_of_separable_expand {f : F[X]} (n : ℕ) (hp : 0 < p)
    (hf : (expand F (p ^ n) f).Separable) : IsUnit f ∨ n = 0 
Arguments: {F : Type u} [Field F] (p : ℕ) [HF : CharP F p] {f : F[X]} (n : ℕ) (hp : 0 < p) (hf : ((Polynomial.expand F (p ^ n)) f).Separable)
Goal: IsUnit f ∨ n = 0
-- Polynomial.unique_separable_of_irreducible
theorem unique_separable_of_irreducible {f : F[X]} (hf : Irreducible f) (hp : 0 < p) (n₁ : ℕ)
    (g₁ : F[X]) (hg₁ : g₁.Separable) (hgf₁ : expand F (p ^ n₁) g₁ = f) (n₂ : ℕ) (g₂ : F[X])
    (hg₂ : g₂.Separable) (hgf₂ : expand F (p ^ n₂) g₂ = f) : n₁ = n₂ ∧ g₁ = g₂ 
Arguments: {F : Type u} [Field F] (p : ℕ) [HF : CharP F p] {f : F[X]} (hf : Irreducible f) (hp : 0 < p) (n₁ : ℕ) (g₁ : F[X]) (hg₁ : g₁.Separable) (hgf₁ : (Polynomial.expand F (p ^ n₁)) g₁ = f) (n₂ : ℕ) (g₂ : F[X]) (hg₂ : g₂.Separable) (hgf₂ : (Polynomial.expand F (p ^ n₂)) g₂ = f)
Goal: n₁ = n₂ ∧ g₁ = g₂
-- Polynomial.separable_X_pow_sub_C
theorem separable_X_pow_sub_C {n : ℕ} (a : F) (hn : (n : F) ≠ 0) (ha : a ≠ 0) :
    Separable (X ^ n - C a) 
Arguments: {F : Type u} [Field F] {n : ℕ} (a : F) (hn : ↑n ≠ 0) (ha : a ≠ 0)
Goal: (Polynomial.X ^ n - Polynomial.C a).Separable
-- Polynomial.X_pow_sub_one_separable_iff
theorem X_pow_sub_one_separable_iff {n : ℕ} : (X ^ n - 1 : F[X]).Separable ↔ (n : F) ≠ 0 
Arguments: {F : Type u} [Field F] {n : ℕ}
Goal: (Polynomial.X ^ n - 1).Separable ↔ ↑n ≠ 0
-- Polynomial.card_rootSet_eq_natDegree
theorem card_rootSet_eq_natDegree [Algebra F K] {p : F[X]} (hsep : p.Separable)
    (hsplit : Splits (algebraMap F K) p) : Fintype.card (p.rootSet K) = p.natDegree 
Arguments: {F : Type u} [Field F] {K : Type v} [Field K] [Algebra F K] {p : F[X]} (hsep : p.Separable) (hsplit : Polynomial.Splits (algebraMap F K) p)
Goal: Fintype.card ↑(p.rootSet K) = p.natDegree
-- Polynomial.nodup_roots_iff_of_splits
theorem nodup_roots_iff_of_splits {f : F[X]} (hf : f ≠ 0) (h : f.Splits (RingHom.id F)) :
    f.roots.Nodup ↔ f.Separable 
Arguments: {F : Type u} [Field F] {f : F[X]} (hf : f ≠ 0) (h : Polynomial.Splits (RingHom.id F) f)
Goal: f.roots.Nodup ↔ f.Separable
-- Polynomial.nodup_aroots_iff_of_splits
theorem nodup_aroots_iff_of_splits [Algebra F K] {f : F[X]} (hf : f ≠ 0)
    (h : f.Splits (algebraMap F K)) : (f.aroots K).Nodup ↔ f.Separable 
Arguments: {F : Type u} [Field F] {K : Type v} [Field K] [Algebra F K] {f : F[X]} (hf : f ≠ 0) (h : Polynomial.Splits (algebraMap F K) f)
Goal: (f.aroots K).Nodup ↔ f.Separable
-- Polynomial.card_rootSet_eq_natDegree_iff_of_splits
theorem card_rootSet_eq_natDegree_iff_of_splits [Algebra F K] {f : F[X]} (hf : f ≠ 0)
    (h : f.Splits (algebraMap F K)) : Fintype.card (f.rootSet K) = f.natDegree ↔ f.Separable 
Arguments: {F : Type u} [Field F] {K : Type v} [Field K] [Algebra F K] {f : F[X]} (hf : f ≠ 0) (h : Polynomial.Splits (algebraMap F K) f)
Goal: Fintype.card ↑(f.rootSet K) = f.natDegree ↔ f.Separable
-- Polynomial.eq_X_sub_C_of_separable_of_root_eq
theorem eq_X_sub_C_of_separable_of_root_eq {x : F} {h : F[X]} (h_sep : h.Separable)
    (h_root : h.eval x = 0) (h_splits : Splits i h) (h_roots : ∀ y ∈ (h.map i).roots, y = i x) :
    h = C (leadingCoeff h) * (X - C x) 
Arguments: {F : Type u} [Field F] {K : Type v} [Field K] {i : F →+* K} {x : F} {h : F[X]} (h_sep : h.Separable) (h_root : Polynomial.eval x h = 0) (h_splits : Polynomial.Splits i h) (h_roots : ∀ y ∈ (Polynomial.map i h).roots, y = i x)
Goal: h = Polynomial.C h.leadingCoeff * (Polynomial.X - Polynomial.C x)
-- Polynomial.exists_finset_of_splits
theorem exists_finset_of_splits (i : F →+* K) {f : F[X]} (sep : Separable f) (sp : Splits i f) :
    ∃ s : Finset K, f.map i = C (i f.leadingCoeff) * s.prod fun a : K => X - C a 
Arguments: {F : Type u} [Field F] {K : Type v} [Field K] (i : F →+* K) {f : F[X]} (sep : f.Separable) (sp : Polynomial.Splits i f)
Goal: ∃ s, Polynomial.map i f = Polynomial.C (i f.leadingCoeff) * ∏ a ∈ s, (Polynomial.X - Polynomial.C a)
-- Irreducible.separable
theorem _root_.Irreducible.separable [CharZero F] {f : F[X]} (hf : Irreducible f) :
    f.Separable 
Arguments: {F : Type u} [Field F] [CharZero F] {f : F[X]} (hf : Irreducible f)
Goal: f.Separable
-- Algebra.isSeparable_def
@[mk_iff isSeparable_def] protected class Algebra.IsSeparable : Prop where
  isSeparable' : ∀ x : K, IsSeparable F x
Arguments: (F : Type u_1) (K : Type u_2) [CommRing F] [Ring K] [Algebra F K]
Goal: Algebra.IsSeparable F K ↔ ∀ (x : K), IsSeparable F x
-- Algebra.IsSeparable.isSeparable'
@[mk_iff isSeparable_def] protected class Algebra.IsSeparable : Prop where
  isSeparable' : ∀ x : K, IsSeparable F x
Arguments: {F : Type u_1} {K : Type u_2} [CommRing F] [Ring K] [Algebra F K] [self : Algebra.IsSeparable F K] (x : K)
Goal: IsSeparable F x
-- Algebra.IsSeparable.isSeparable
theorem Algebra.IsSeparable.isSeparable [Algebra.IsSeparable F K] : ∀ x : K, IsSeparable F x 
Arguments: (F : Type u_1) {K : Type u_2} [CommRing F] [Ring K] [Algebra F K] [Algebra.IsSeparable F K] (x : K)
Goal: IsSeparable F x
-- IsSeparable.isIntegral
theorem IsSeparable.isIntegral {x : K} (h : IsSeparable F x) : IsIntegral F x 
Arguments: {F : Type u_1} {K : Type u_2} [CommRing F] [Ring K] [Algebra F K] {x : K} (h : IsSeparable F x)
Goal: IsIntegral F x
-- Algebra.IsSeparable.isIntegral
theorem Algebra.IsSeparable.isIntegral [Algebra.IsSeparable F K] : ∀ x : K, IsIntegral F x 
Arguments: (F : Type u_1) {K : Type u_2} [CommRing F] [Ring K] [Algebra F K] [Algebra.IsSeparable F K] (x : K)
Goal: IsIntegral F x
-- Algebra.isSeparable_iff
theorem Algebra.isSeparable_iff :
    Algebra.IsSeparable F K ↔ ∀ x : K, IsIntegral F x ∧ IsSeparable F x 
Arguments: {F : Type u_1} {K : Type u_2} [CommRing F] [Ring K] [Algebra F K]
Goal: Algebra.IsSeparable F K ↔ ∀ (x : K), IsIntegral F x ∧ IsSeparable F x
-- AlgEquiv.isSeparable
theorem AlgEquiv.isSeparable [Algebra.IsSeparable F K] : Algebra.IsSeparable F E 
Arguments: {F : Type u_1} {K : Type u_2} [CommRing F] [Ring K] [Algebra F K] {E : Type u_3} [Ring E] [Algebra F E] (e : K ≃ₐ[F] E) [Algebra.IsSeparable F K]
Goal: Algebra.IsSeparable F E
-- AlgEquiv.isSeparable_iff
theorem AlgEquiv.isSeparable_iff : Algebra.IsSeparable F K ↔ Algebra.IsSeparable F E 
Arguments: {F : Type u_1} {K : Type u_2} [CommRing F] [Ring K] [Algebra F K] {E : Type u_3} [Ring E] [Algebra F E] (e : K ≃ₐ[F] E)
Goal: Algebra.IsSeparable F K ↔ Algebra.IsSeparable F E
-- IsSeparable.of_isScalarTower
theorem IsSeparable.of_isScalarTower {A : Type*} [CommRing A]
    (K : Type*) [Field K] [Algebra A K] {R : Type*} [CommRing R] [Algebra A R] [Algebra K R]
    [IsScalarTower A K R] {x : R} (h : IsSeparable A x) : IsSeparable K x 
Arguments: {A : Type u_1} [CommRing A] (K : Type u_2) [Field K] [Algebra A K] {R : Type u_3} [CommRing R] [Algebra A R] [Algebra K R] [IsScalarTower A K R] {x : R} (h : IsSeparable A x)
Goal: IsSeparable K x
-- Algebra.isSeparable_tower_top_of_isSeparable
theorem Algebra.isSeparable_tower_top_of_isSeparable [Algebra.IsSeparable F E] :
    Algebra.IsSeparable K E 
Arguments: (F : Type u_1) (K : Type u_2) (E : Type u_3) [Field F] [Field K] [Field E] [Algebra F K] [Algebra F E] [Algebra K E] [IsScalarTower F K E] [Algebra.IsSeparable F E]
Goal: Algebra.IsSeparable K E
-- Algebra.isSeparable_tower_bot_of_isSeparable
theorem Algebra.isSeparable_tower_bot_of_isSeparable [h : Algebra.IsSeparable F E] :
    Algebra.IsSeparable F K 
Arguments: (F : Type u_1) (K : Type u_2) (E : Type u_3) [Field F] [Field K] [Field E] [Algebra F K] [Algebra F E] [Algebra K E] [IsScalarTower F K E] [h : Algebra.IsSeparable F E]
Goal: Algebra.IsSeparable F K
-- Algebra.IsSeparable.of_algHom
theorem Algebra.IsSeparable.of_algHom (E' : Type*) [Field E'] [Algebra F E'] (f : E →ₐ[F] E')
    [Algebra.IsSeparable F E'] : Algebra.IsSeparable F E 
Arguments: (F : Type u_1) {E : Type u_3} [Field F] [Field E] [Algebra F E] (E' : Type u_4) [Field E'] [Algebra F E'] (f : E →ₐ[F] E') [Algebra.IsSeparable F E']
Goal: Algebra.IsSeparable F E
-- Algebra.IsSeparable.of_equiv_equiv
lemma Algebra.IsSeparable.of_equiv_equiv {A₁ B₁ A₂ B₂ : Type*} [Field A₁] [Field B₁]
    [Field A₂] [Field B₂] [Algebra A₁ B₁] [Algebra A₂ B₂] (e₁ : A₁ ≃+* A₂) (e₂ : B₁ ≃+* B₂)
    (he : RingHom.comp (algebraMap A₂ B₂) ↑e₁ = RingHom.comp ↑e₂ (algebraMap A₁ B₁))
    [Algebra.IsSeparable A₁ B₁] : Algebra.IsSeparable A₂ B₂ 
Arguments: {A₁ : Type u_4} {B₁ : Type u_5} {A₂ : Type u_6} {B₂ : Type u_7} [Field A₁] [Field B₁] [Field A₂] [Field B₂] [Algebra A₁ B₁] [Algebra A₂ B₂] (e₁ : A₁ ≃+* A₂) (e₂ : B₁ ≃+* B₂) (he : (algebraMap A₂ B₂).comp ↑e₁ = (↑e₂).comp (algebraMap A₁ B₁)) [Algebra.IsSeparable A₁ B₁]
Goal: Algebra.IsSeparable A₂ B₂
-- AlgHom.card_of_powerBasis
theorem AlgHom.card_of_powerBasis (pb : PowerBasis K S) (h_sep : IsSeparable K pb.gen)
    (h_splits : (minpoly K pb.gen).Splits (algebraMap K L)) :
    @Fintype.card (S →ₐ[K] L) (PowerBasis.AlgHom.fintype pb) = pb.dim 
Arguments: {S : Type u_2} [CommRing S] {K : Type u_4} {L : Type u_5} [Field K] [Field L] [Algebra K S] [Algebra K L] (pb : PowerBasis K S) (h_sep : IsSeparable K pb.gen) (h_splits : Polynomial.Splits (algebraMap K L) (minpoly K pb.gen))
Goal: Fintype.card (S →ₐ[K] L) = pb.dim
-- CategoryTheory.inducedFunctor_obj
@[simps]
def inducedFunctor : InducedCategory D F ⥤ D 
Arguments: {C : Type u₁} {D : Type u₂} [CategoryTheory.Category.{v, u₂} D] (F : C → D)
Goal: ∀ (a : C), (CategoryTheory.inducedFunctor F).obj a = F a
-- CategoryTheory.inducedFunctor_map
@[simps]
def inducedFunctor : InducedCategory D F ⥤ D 
Arguments: {C : Type u₁} {D : Type u₂} [CategoryTheory.Category.{v, u₂} D] (F : C → D)
Goal: ∀ {X Y : CategoryTheory.InducedCategory D F} (f : X ⟶ Y), (CategoryTheory.inducedFunctor F).map f = f
-- CategoryTheory.FullSubcategory.property
@[ext]
structure FullSubcategory where
    obj : C
    property : Z obj
Arguments: {C : Type u₁} {Z : C → Prop} (self : CategoryTheory.FullSubcategory Z)
Goal: Z self.obj
-- CategoryTheory.FullSubcategory.id_def
lemma FullSubcategory.id_def (X : FullSubcategory Z) : 𝟙 X = 𝟙 X.obj 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] (Z : C → Prop) (X : CategoryTheory.FullSubcategory Z)
Goal: CategoryTheory.CategoryStruct.id X = CategoryTheory.CategoryStruct.id X.obj
-- CategoryTheory.FullSubcategory.comp_def
lemma FullSubcategory.comp_def {X Y Z : FullSubcategory Z} (f : X ⟶ Y) (g : Y ⟶ Z) :
    f ≫ g = (f ≫ g : X.obj ⟶ Z.obj) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] (Z : C → Prop) {X Y : CategoryTheory.FullSubcategory Z}
Goal: ∀ {Z_1 : CategoryTheory.FullSubcategory Z} (f : X ⟶ Y) (g : Y ⟶ Z_1),
  CategoryTheory.CategoryStruct.comp f g = CategoryTheory.CategoryStruct.comp f g
-- CategoryTheory.fullSubcategoryInclusion.obj
@[simp]
theorem fullSubcategoryInclusion.obj {X} : (fullSubcategoryInclusion Z).obj X = X.obj 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] (Z : C → Prop) {X : CategoryTheory.FullSubcategory Z}
Goal: (CategoryTheory.fullSubcategoryInclusion Z).obj X = X.obj
-- CategoryTheory.fullSubcategoryInclusion.map
@[simp]
theorem fullSubcategoryInclusion.map {X Y} {f : X ⟶ Y} : (fullSubcategoryInclusion Z).map f = f 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] (Z : C → Prop) {X Y : CategoryTheory.FullSubcategory Z} {f : X ⟶ Y}
Goal: (CategoryTheory.fullSubcategoryInclusion Z).map f = f
-- CategoryTheory.FullSubcategory.map_obj_obj
@[simps]
def FullSubcategory.map (h : ∀ ⦃X⦄, Z X → Z' X) : FullSubcategory Z ⥤ FullSubcategory Z' 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] {Z Z' : C → Prop} (h : ∀ ⦃X : C⦄, Z X → Z' X) (X : CategoryTheory.FullSubcategory Z)
Goal: ((CategoryTheory.FullSubcategory.map h).obj X).obj = X.obj
-- CategoryTheory.FullSubcategory.map_map
@[simps]
def FullSubcategory.map (h : ∀ ⦃X⦄, Z X → Z' X) : FullSubcategory Z ⥤ FullSubcategory Z' 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] {Z Z' : C → Prop} (h : ∀ ⦃X : C⦄, Z X → Z' X)
Goal: ∀ {X Y : CategoryTheory.FullSubcategory Z} (f : X ⟶ Y), (CategoryTheory.FullSubcategory.map h).map f = f
-- CategoryTheory.FullSubcategory.map_inclusion
@[simp]
theorem FullSubcategory.map_inclusion (h : ∀ ⦃X⦄, Z X → Z' X) :
    FullSubcategory.map h ⋙ fullSubcategoryInclusion Z' = fullSubcategoryInclusion Z 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] {Z Z' : C → Prop} (h : ∀ ⦃X : C⦄, Z X → Z' X)
Goal: (CategoryTheory.FullSubcategory.map h).comp (CategoryTheory.fullSubcategoryInclusion Z') =
  CategoryTheory.fullSubcategoryInclusion Z
-- CategoryTheory.FullSubcategory.lift_obj_obj
@[simps]
def FullSubcategory.lift (F : C ⥤ D) (hF : ∀ X, P (F.obj X)) : C ⥤ FullSubcategory P 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (P : D → Prop) (F : CategoryTheory.Functor C D) (hF : ∀ (X : C), P (F.obj X)) (X : C)
Goal: ((CategoryTheory.FullSubcategory.lift P F hF).obj X).obj = F.obj X
-- CategoryTheory.FullSubcategory.lift_map
@[simps]
def FullSubcategory.lift (F : C ⥤ D) (hF : ∀ X, P (F.obj X)) : C ⥤ FullSubcategory P 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (P : D → Prop) (F : CategoryTheory.Functor C D) (hF : ∀ (X : C), P (F.obj X))
Goal: ∀ {X Y : C} (f : X ⟶ Y), (CategoryTheory.FullSubcategory.lift P F hF).map f = F.map f
-- CategoryTheory.FullSubcategory.lift_comp_inclusion_eq
@[simp]
theorem FullSubcategory.lift_comp_inclusion_eq (F : C ⥤ D) (hF : ∀ X, P (F.obj X)) :
    FullSubcategory.lift P F hF ⋙ fullSubcategoryInclusion P = F 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (P : D → Prop) (F : CategoryTheory.Functor C D) (hF : ∀ (X : C), P (F.obj X))
Goal: (CategoryTheory.FullSubcategory.lift P F hF).comp (CategoryTheory.fullSubcategoryInclusion P) = F
-- CategoryTheory.fullSubcategoryInclusion_obj_lift_obj
@[simp]
theorem fullSubcategoryInclusion_obj_lift_obj (F : C ⥤ D) (hF : ∀ X, P (F.obj X)) {X : C} :
    (fullSubcategoryInclusion P).obj ((FullSubcategory.lift P F hF).obj X) = F.obj X 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (P : D → Prop) (F : CategoryTheory.Functor C D) (hF : ∀ (X : C), P (F.obj X)) {X : C}
Goal: (CategoryTheory.fullSubcategoryInclusion P).obj ((CategoryTheory.FullSubcategory.lift P F hF).obj X) = F.obj X
-- CategoryTheory.fullSubcategoryInclusion_map_lift_map
@[simp]
theorem fullSubcategoryInclusion_map_lift_map (F : C ⥤ D) (hF : ∀ X, P (F.obj X)) {X Y : C}
    (f : X ⟶ Y) :
    (fullSubcategoryInclusion P).map ((FullSubcategory.lift P F hF).map f) = F.map f 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (P : D → Prop) (F : CategoryTheory.Functor C D) (hF : ∀ (X : C), P (F.obj X)) {X Y : C} (f : X ⟶ Y)
Goal: (CategoryTheory.fullSubcategoryInclusion P).map ((CategoryTheory.FullSubcategory.lift P F hF).map f) = F.map f
-- CategoryTheory.FullSubcategory.lift_comp_map
@[simp]
theorem FullSubcategory.lift_comp_map (F : C ⥤ D) (hF : ∀ X, P (F.obj X)) (h : ∀ ⦃X⦄, P X → Q X) :
    FullSubcategory.lift P F hF ⋙ FullSubcategory.map h =
      FullSubcategory.lift Q F fun X => h (hF X) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (P Q : D → Prop) (F : CategoryTheory.Functor C D) (hF : ∀ (X : C), P (F.obj X)) (h : ∀ ⦃X : D⦄, P X → Q X)
Goal: (CategoryTheory.FullSubcategory.lift P F hF).comp (CategoryTheory.FullSubcategory.map h) =
  CategoryTheory.FullSubcategory.lift Q F ⋯
-- QuasiErgodic.ae_eq_const_of_ae_eq_comp_of_ae_range₀
theorem QuasiErgodic.ae_eq_const_of_ae_eq_comp_of_ae_range₀ [Nonempty X] [MeasurableSpace X]
    {s : Set X} [MeasurableSpace.CountablySeparated s] {f : α → α} {g : α → X}
    (h : QuasiErgodic f μ) (hs : ∀ᵐ x ∂μ, g x ∈ s) (hgm : NullMeasurable g μ)
    (hg_eq : g ∘ f =ᵐ[μ] g) :
    ∃ c, g =ᵐ[μ] const α c 
Arguments: {α : Type u_1} {X : Type u_2} [MeasurableSpace α] {μ : MeasureTheory.Measure α} [Nonempty X] [MeasurableSpace X] {s : Set X} [MeasurableSpace.CountablySeparated ↑s] {f : α → α} {g : α → X} (h : QuasiErgodic f μ) (hs : ∀ᵐ (x : α) ∂μ, g x ∈ s) (hgm : MeasureTheory.NullMeasurable g μ) (hg_eq : g ∘ f =ᵐ[μ] g)
Goal: ∃ c, g =ᵐ[μ] Function.const α c
-- PreErgodic.ae_eq_const_of_ae_eq_comp
theorem PreErgodic.ae_eq_const_of_ae_eq_comp (h : PreErgodic f μ) (hgm : Measurable g)
    (hg_eq : g ∘ f = g) : ∃ c, g =ᵐ[μ] const α c 
Arguments: {α : Type u_1} {X : Type u_2} [MeasurableSpace α] {μ : MeasureTheory.Measure α} [Nonempty X] [MeasurableSpace X] [MeasurableSpace.CountablySeparated X] {f : α → α} {g : α → X} (h : PreErgodic f μ) (hgm : Measurable g) (hg_eq : g ∘ f = g)
Goal: ∃ c, g =ᵐ[μ] Function.const α c
-- QuasiErgodic.ae_eq_const_of_ae_eq_comp₀
theorem QuasiErgodic.ae_eq_const_of_ae_eq_comp₀ (h : QuasiErgodic f μ) (hgm : NullMeasurable g μ)
    (hg_eq : g ∘ f =ᵐ[μ] g) : ∃ c, g =ᵐ[μ] const α c 
Arguments: {α : Type u_1} {X : Type u_2} [MeasurableSpace α] {μ : MeasureTheory.Measure α} [Nonempty X] [MeasurableSpace X] [MeasurableSpace.CountablySeparated X] {f : α → α} {g : α → X} (h : QuasiErgodic f μ) (hgm : MeasureTheory.NullMeasurable g μ) (hg_eq : g ∘ f =ᵐ[μ] g)
Goal: ∃ c, g =ᵐ[μ] Function.const α c
-- Ergodic.ae_eq_const_of_ae_eq_comp₀
theorem Ergodic.ae_eq_const_of_ae_eq_comp₀ (h : Ergodic f μ) (hgm : NullMeasurable g μ)
    (hg_eq : g ∘ f =ᵐ[μ] g) : ∃ c, g =ᵐ[μ] const α c 
Arguments: {α : Type u_1} {X : Type u_2} [MeasurableSpace α] {μ : MeasureTheory.Measure α} [Nonempty X] [MeasurableSpace X] [MeasurableSpace.CountablySeparated X] {f : α → α} {g : α → X} (h : Ergodic f μ) (hgm : MeasureTheory.NullMeasurable g μ) (hg_eq : g ∘ f =ᵐ[μ] g)
Goal: ∃ c, g =ᵐ[μ] Function.const α c
-- QuasiErgodic.ae_eq_const_of_ae_eq_comp_ae
theorem ae_eq_const_of_ae_eq_comp_ae {g : α → X} (h : QuasiErgodic f μ)
    (hgm : AEStronglyMeasurable g μ) (hg_eq : g ∘ f =ᵐ[μ] g) : ∃ c, g =ᵐ[μ] const α c 
Arguments: {α : Type u_1} {X : Type u_2} [MeasurableSpace α] {μ : MeasureTheory.Measure α} [TopologicalSpace X] [TopologicalSpace.MetrizableSpace X] [Nonempty X] {f : α → α} {g : α → X} (h : QuasiErgodic f μ) (hgm : MeasureTheory.AEStronglyMeasurable g μ) (hg_eq : g ∘ f =ᵐ[μ] g)
Goal: ∃ c, g =ᵐ[μ] Function.const α c
-- QuasiErgodic.eq_const_of_compQuasiMeasurePreserving_eq
theorem eq_const_of_compQuasiMeasurePreserving_eq (h : QuasiErgodic f μ) {g : α →ₘ[μ] X}
    (hg_eq : g.compQuasiMeasurePreserving f h.1 = g) : ∃ c, g = .const α c 
Arguments: {α : Type u_1} {X : Type u_2} [MeasurableSpace α] {μ : MeasureTheory.Measure α} [TopologicalSpace X] [TopologicalSpace.MetrizableSpace X] [Nonempty X] {f : α → α} (h : QuasiErgodic f μ) {g : α →ₘ[μ] X} (hg_eq : g.compQuasiMeasurePreserving f ⋯ = g)
Goal: ∃ c, g = MeasureTheory.AEEqFun.const α c
-- Ergodic.ae_eq_const_of_ae_eq_comp_ae
theorem ae_eq_const_of_ae_eq_comp_ae {g : α → X} (h : Ergodic f μ) (hgm : AEStronglyMeasurable g μ)
    (hg_eq : g ∘ f =ᵐ[μ] g) : ∃ c, g =ᵐ[μ] const α c 
Arguments: {α : Type u_1} {X : Type u_2} [MeasurableSpace α] {μ : MeasureTheory.Measure α} [TopologicalSpace X] [TopologicalSpace.MetrizableSpace X] [Nonempty X] {f : α → α} {g : α → X} (h : Ergodic f μ) (hgm : MeasureTheory.AEStronglyMeasurable g μ) (hg_eq : g ∘ f =ᵐ[μ] g)
Goal: ∃ c, g =ᵐ[μ] Function.const α c
-- Ergodic.eq_const_of_compMeasurePreserving_eq
theorem eq_const_of_compMeasurePreserving_eq (h : Ergodic f μ) {g : α →ₘ[μ] X}
    (hg_eq : g.compMeasurePreserving f h.1 = g) : ∃ c, g = .const α c 
Arguments: {α : Type u_1} {X : Type u_2} [MeasurableSpace α] {μ : MeasureTheory.Measure α} [TopologicalSpace X] [TopologicalSpace.MetrizableSpace X] [Nonempty X] {f : α → α} (h : Ergodic f μ) {g : α →ₘ[μ] X} (hg_eq : g.compMeasurePreserving f ⋯ = g)
Goal: ∃ c, g = MeasureTheory.AEEqFun.const α c
-- PreErgodic.ae_empty_or_univ
structure PreErgodic (μ : Measure α := by volume_tac) : Prop where
  ae_empty_or_univ : ∀ ⦃s⦄, MeasurableSet s → f ⁻¹' s = s → s =ᵐ[μ] (∅ : Set α) ∨ s =ᵐ[μ] univ
Arguments: {α : Type u_1} {m : MeasurableSpace α} {f : α → α} {μ : autoParam (MeasureTheory.Measure α) _auto✝} (self : PreErgodic f μ) ⦃s : Set α⦄
Goal: MeasurableSet s → f ⁻¹' s = s → s =ᵐ[μ] ∅ ∨ s =ᵐ[μ] Set.univ
-- PreErgodic.measure_self_or_compl_eq_zero
theorem measure_self_or_compl_eq_zero (hf : PreErgodic f μ) (hs : MeasurableSet s)
    (hs' : f ⁻¹' s = s) : μ s = 0 ∨ μ sᶜ = 0 
Arguments: {α : Type u_1} {m : MeasurableSpace α} {f : α → α} {s : Set α} {μ : MeasureTheory.Measure α} (hf : PreErgodic f μ) (hs : MeasurableSet s) (hs' : f ⁻¹' s = s)
Goal: μ s = 0 ∨ μ sᶜ = 0
-- PreErgodic.ae_mem_or_ae_nmem
theorem ae_mem_or_ae_nmem (hf : PreErgodic f μ) (hsm : MeasurableSet s) (hs : f ⁻¹' s = s) :
    (∀ᵐ x ∂μ, x ∈ s) ∨ ∀ᵐ x ∂μ, x ∉ s 
Arguments: {α : Type u_1} {m : MeasurableSpace α} {f : α → α} {s : Set α} {μ : MeasureTheory.Measure α} (hf : PreErgodic f μ) (hsm : MeasurableSet s) (hs : f ⁻¹' s = s)
Goal: (∀ᵐ (x : α) ∂μ, x ∈ s) ∨ ∀ᵐ (x : α) ∂μ, x ∉ s