ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Polynomial.tendsto_atTop_iff_leadingCoeff_nonneg
File: Mathlib/Analysis/SpecialFunctions/Polynomials.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
⊢ Tendsto (fun x => eval x P) atTop atTop ↔ 0 < P.degree ∧ 0 ≤ P.leadingCoeff
state_after: 𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
h : Tendsto (fun x => eval x P) atTop atTop
⊢ 0 < P.degree ∧ 0 ≤ P.leadingCoeff
tactic: refine ⟨fun h => ?_, fun h => tendsto_atTop_of_leadingCoeff_nonneg P h.1 h.2⟩
state_before: 𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
h : Tendsto (fun x => eval x P) atTop atTop
⊢ 0 < P.degree ∧ 0 ≤ P.leadingCoeff
state_after: 𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
h : Tendsto (fun x => eval x P) atTop atTop
this : Tendsto (fun x => P.leadingCoeff * x ^ P.natDegree) atTop atTop
⊢ 0 < P.degree ∧ 0 ≤ P.leadingCoeff
tactic: have : Tendsto (fun x => P.leadingCoeff * x ^ P.natDegree) atTop atTop :=
    (isEquivalent_atTop_lead P).tendsto_atTop h
state_before: 𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
h : Tendsto (fun x => eval x P) atTop atTop
this : Tendsto (fun x => P.leadingCoeff * x ^ P.natDegree) atTop atTop
⊢ 0 < P.degree ∧ 0 ≤ P.leadingCoeff
state_after: 𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
h : Tendsto (fun x => eval x P) atTop atTop
this : 0 < P.degree ∧ 0 < P.leadingCoeff
⊢ 0 < P.degree ∧ 0 ≤ P.leadingCoeff
tactic: rw [tendsto_const_mul_pow_atTop_iff, ← pos_iff_ne_zero, natDegree_pos_iff_degree_pos] at this
state_before: 𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
h : Tendsto (fun x => eval x P) atTop atTop
this : 0 < P.degree ∧ 0 < P.leadingCoeff
⊢ 0 < P.degree ∧ 0 ≤ P.leadingCoeff
state_after: no goals
tactic: exact ⟨this.1, this.2.le⟩
Theorem: Complex.hasStrictDerivAt_cos
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean

Proof steps:
state_before: x : ℂ
⊢ HasStrictDerivAt cos (-sin x) x
state_after: x : ℂ
⊢ HasStrictDerivAt cos (-(cexp (-x * I) - cexp (x * I)) * I * 2⁻¹) x
tactic: simp only [sin, div_eq_mul_inv, neg_mul_eq_neg_mul]
state_before: x : ℂ
⊢ HasStrictDerivAt cos (-(cexp (-x * I) - cexp (x * I)) * I * 2⁻¹) x
state_after: case h.e'_7
x : ℂ
⊢ -(cexp (-x * I) - cexp (x * I)) * I * 2⁻¹ = (cexp (id x * I) * (1 * I) + cexp (-id x * I) * (-1 * I)) * 2⁻¹
tactic: convert (((hasStrictDerivAt_id x).mul_const I).cexp.add
    ((hasStrictDerivAt_id x).neg.mul_const I).cexp).mul_const (2 : ℂ)⁻¹ using 1
state_before: case h.e'_7
x : ℂ
⊢ -(cexp (-x * I) - cexp (x * I)) * I * 2⁻¹ = (cexp (id x * I) * (1 * I) + cexp (-id x * I) * (-1 * I)) * 2⁻¹
state_after: case h.e'_7
x : ℂ
⊢ -(cexp (-x * I) - cexp (x * I)) * I * 2⁻¹ = (cexp (x * I) * (1 * I) + cexp (-x * I) * (-1 * I)) * 2⁻¹
tactic: simp only [Function.comp, id]
state_before: case h.e'_7
x : ℂ
⊢ -(cexp (-x * I) - cexp (x * I)) * I * 2⁻¹ = (cexp (x * I) * (1 * I) + cexp (-x * I) * (-1 * I)) * 2⁻¹
state_after: no goals
tactic: ring
Theorem: Mathlib.Vector.mem_of_mem_tail
File: Mathlib/Data/Vector/Mem.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
n : ℕ
a a' : α
v : Vector α n
ha : a ∈ v.tail.toList
⊢ a ∈ v.toList
state_after: case zero
α : Type u_1
β : Type u_2
n : ℕ
a a' : α
v : Vector α 0
ha : a ∈ v.tail.toList
⊢ a ∈ v.toList

case succ
α : Type u_1
β : Type u_2
n✝ : ℕ
a a' : α
n : ℕ
a✝ : ∀ (v : Vector α n), a ∈ v.tail.toList → a ∈ v.toList
v : Vector α (n + 1)
ha : a ∈ v.tail.toList
⊢ a ∈ v.toList
tactic: induction' n with n _
Theorem: CategoryTheory.Bicategory.whiskerRight_id_symm
File: Mathlib/CategoryTheory/Bicategory/Basic.lean

Proof steps:
state_before: B : Type u
inst✝ : Bicategory B
a b c d e : B
f g : a ⟶ b
η : f ⟶ g
⊢ η = (ρ_ f).inv ≫ η ▷ 𝟙 b ≫ (ρ_ g).hom
state_after: no goals
tactic: simp
Theorem: QuaternionAlgebra.swapEquiv_apply_imK
File: Mathlib/Algebra/Quaternion.lean

Proof steps:
state_before: S : Type u_1
T : Type u_2
R : Type u_3
inst✝ : CommRing R
c₁ c₂ r x y z : R
a b c x✝ : ℍ[R,c₁,c₂]
⊢ (fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK })
      ((fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK }) x✝) =
    x✝
state_after: no goals
tactic: simp
state_before: S : Type u_1
T : Type u_2
R : Type u_3
inst✝ : CommRing R
c₁ c₂ r x y z : R
a b c : ℍ[R,c₁,c₂]
x✝ : ℍ[R,c₂,c₁]
⊢ (fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK })
      ((fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK }) x✝) =
    x✝
state_after: no goals
tactic: simp
state_before: S : Type u_1
T : Type u_2
R : Type u_3
inst✝ : CommRing R
c₁ c₂ r x y z : R
a b c x✝¹ x✝ : ℍ[R,c₁,c₂]
⊢ { toFun := fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK },
          invFun := fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK }, left_inv := ⋯,
          right_inv := ⋯ }.toFun
      (x✝¹ * x✝) =
    { toFun := fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK },
            invFun := fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK }, left_inv := ⋯,
            right_inv := ⋯ }.toFun
        x✝¹ *
      { toFun := fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK },
            invFun := fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK }, left_inv := ⋯,
            right_inv := ⋯ }.toFun
        x✝
state_after: no goals
tactic: ext
      <;> simp only [mul_re, mul_imJ, mul_imI, add_left_inj, mul_imK, neg_mul, neg_add_rev,
                     neg_sub, mk_mul_mk, mul_neg, neg_neg, sub_neg_eq_add]
      <;> ring
state_before: S : Type u_1
T : Type u_2
R : Type u_3
inst✝ : CommRing R
c₁ c₂ r x y z : R
a b c x✝¹ x✝ : ℍ[R,c₁,c₂]
⊢ { toFun := fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK },
          invFun := fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK }, left_inv := ⋯,
          right_inv := ⋯ }.toFun
      (x✝¹ + x✝) =
    { toFun := fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK },
            invFun := fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK }, left_inv := ⋯,
            right_inv := ⋯ }.toFun
        x✝¹ +
      { toFun := fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK },
            invFun := fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK }, left_inv := ⋯,
            right_inv := ⋯ }.toFun
        x✝
state_after: no goals
tactic: ext <;> simp [add_comm]
state_before: S : Type u_1
T : Type u_2
R : Type u_3
inst✝ : CommRing R
c₁ c₂ r x y z : R
a b c : ℍ[R,c₁,c₂]
x✝ : R
⊢ { toFun := fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK },
          invFun := fun t => { re := t.re, imI := t.imJ, imJ := t.imI, imK := -t.imK }, left_inv := ⋯,
          right_inv := ⋯ }.toFun
      ((algebraMap R ℍ[R,c₁,c₂]) x✝) =
    (algebraMap R ℍ[R,c₂,c₁]) x✝
state_after: no goals
tactic: simp [algebraMap_eq]
Theorem: CategoryTheory.ShortComplex.FunctorEquivalence.counitIso_inv_app_app_τ₂
File: Mathlib/Algebra/Homology/ShortComplex/FunctorEquivalence.lean

Proof steps:
state_before: J : Type u_1
C : Type u_2
inst✝² : Category.{?u.66473, u_1} J
inst✝¹ : Category.{?u.66477, u_2} C
inst✝ : HasZeroMorphisms C
x✝¹ : J ⥤ ShortComplex C
x✝ : J
⊢ (Iso.refl (((inverse J C ⋙ functor J C).obj x✝¹).obj x✝).X₁).hom ≫ (((𝟭 (J ⥤ ShortComplex C)).obj x✝¹).obj x✝).f =
    (((inverse J C ⋙ functor J C).obj x✝¹).obj x✝).f ≫ (Iso.refl (((inverse J C ⋙ functor J C).obj x✝¹).obj x✝).X₂).hom
state_after: no goals
tactic: aesop_cat
state_before: J : Type u_1
C : Type u_2
inst✝² : Category.{?u.66473, u_1} J
inst✝¹ : Category.{?u.66477, u_2} C
inst✝ : HasZeroMorphisms C
x✝¹ : J ⥤ ShortComplex C
x✝ : J
⊢ (Iso.refl (((inverse J C ⋙ functor J C).obj x✝¹).obj x✝).X₂).hom ≫ (((𝟭 (J ⥤ ShortComplex C)).obj x✝¹).obj x✝).g =
    (((inverse J C ⋙ functor J C).obj x✝¹).obj x✝).g ≫ (Iso.refl (((inverse J C ⋙ functor J C).obj x✝¹).obj x✝).X₃).hom
state_after: no goals
tactic: aesop_cat
state_before: J : Type u_1
C : Type u_2
inst✝² : Category.{?u.66473, u_1} J
inst✝¹ : Category.{?u.66477, u_2} C
inst✝ : HasZeroMorphisms C
x✝ : J ⥤ ShortComplex C
⊢ ∀ {X Y : J} (f : X ⟶ Y),
    ((inverse J C ⋙ functor J C).obj x✝).map f ≫
        ((fun x =>
              isoMk (Iso.refl (((inverse J C ⋙ functor J C).obj x✝).obj x).X₁)
                (Iso.refl (((inverse J C ⋙ functor J C).obj x✝).obj x).X₂)
                (Iso.refl (((inverse J C ⋙ functor J C).obj x✝).obj x).X₃) ⋯ ⋯)
            Y).hom =
      ((fun x =>
              isoMk (Iso.refl (((inverse J C ⋙ functor J C).obj x✝).obj x).X₁)
                (Iso.refl (((inverse J C ⋙ functor J C).obj x✝).obj x).X₂)
                (Iso.refl (((inverse J C ⋙ functor J C).obj x✝).obj x).X₃) ⋯ ⋯)
            X).hom ≫
        ((𝟭 (J ⥤ ShortComplex C)).obj x✝).map f
state_after: no goals
tactic: aesop_cat
state_before: J : Type u_1
C : Type u_2
inst✝² : Category.{?u.66473, u_1} J
inst✝¹ : Category.{?u.66477, u_2} C
inst✝ : HasZeroMorphisms C
⊢ ∀ {X Y : J ⥤ ShortComplex C} (f : X ⟶ Y),
    (inverse J C ⋙ functor J C).map f ≫
        ((fun x =>
              NatIso.ofComponents
                (fun x_1 =>
                  isoMk (Iso.refl (((inverse J C ⋙ functor J C).obj x).obj x_1).X₁)
                    (Iso.refl (((inverse J C ⋙ functor J C).obj x).obj x_1).X₂)
                    (Iso.refl (((inverse J C ⋙ functor J C).obj x).obj x_1).X₃) ⋯ ⋯)
                ⋯)
            Y).hom =
      ((fun x =>
              NatIso.ofComponents
                (fun x_1 =>
                  isoMk (Iso.refl (((inverse J C ⋙ functor J C).obj x).obj x_1).X₁)
                    (Iso.refl (((inverse J C ⋙ functor J C).obj x).obj x_1).X₂)
                    (Iso.refl (((inverse J C ⋙ functor J C).obj x).obj x_1).X₃) ⋯ ⋯)
                ⋯)
            X).hom ≫
        (𝟭 (J ⥤ ShortComplex C)).map f
state_after: no goals
tactic: aesop_cat
Theorem: PartialEquiv.trans_source'
File: Mathlib/Logic/Equiv/PartialEquiv.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e : PartialEquiv α β
e' : PartialEquiv β γ
⊢ (e.trans e').source = e.source ∩ ↑e ⁻¹' (e.target ∩ e'.source)
state_after: no goals
tactic: mfld_set_tac
Theorem: MeasureTheory.measure_isOpen_pos_of_smulInvariant_of_compact_ne_zero
File: Mathlib/MeasureTheory/Group/Action.lean

Proof steps:
state_before: G : Type u
M : Type v
α : Type w
s : Set α
m : MeasurableSpace α
inst✝⁷ : Group G
inst✝⁶ : MulAction G α
inst✝⁵ : MeasurableSpace G
inst✝⁴ : MeasurableSMul G α
c : G
μ : Measure α
inst✝³ : SMulInvariantMeasure G α μ
inst✝² : TopologicalSpace α
inst✝¹ : ContinuousConstSMul G α
inst✝ : MulAction.IsMinimal G α
K U : Set α
hK : IsCompact K
hμK : μ K ≠ 0
hU : IsOpen U
hne : U.Nonempty
t : Finset G
ht : K ⊆ ⋃ g ∈ t, g • U
hμU : μ U = 0
x✝¹ : G
x✝ : x✝¹ ∈ ↑t
⊢ μ (x✝¹ • U) = 0
state_after: no goals
tactic: rwa [measure_smul]
Theorem: Set.mulIndicator_eq_one
File: Mathlib/Algebra/Group/Indicator.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
M : Type u_4
N : Type u_5
inst✝¹ : One M
inst✝ : One N
s t : Set α
f g : α → M
a : α
⊢ (s.mulIndicator f = fun x => 1) ↔ Disjoint (mulSupport f) s
state_after: no goals
tactic: simp only [funext_iff, mulIndicator_apply_eq_one, Set.disjoint_left, mem_mulSupport,
    not_imp_not]
Theorem: SimpleGraph.CliqueFreeOn.mono
File: Mathlib/Combinatorics/SimpleGraph/Clique.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
s s₁ s₂ : Set α
t : Finset α
a b : α
m n : ℕ
hmn : m ≤ n
hG : G.CliqueFreeOn s m
⊢ G.CliqueFreeOn s n
state_after: α : Type u_1
β : Type u_2
G H : SimpleGraph α
s s₁ s₂ : Set α
t✝ : Finset α
a b : α
m n : ℕ
hmn : m ≤ n
hG : G.CliqueFreeOn s m
t : Finset α
hts : ↑t ⊆ s
ht : G.IsNClique n t
⊢ False
tactic: rintro t hts ht
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
s s₁ s₂ : Set α
t✝ : Finset α
a b : α
m n : ℕ
hmn : m ≤ n
hG : G.CliqueFreeOn s m
t : Finset α
hts : ↑t ⊆ s
ht : G.IsNClique n t
⊢ False
state_after: case intro.intro
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s s₁ s₂ : Set α
t✝ : Finset α
a b : α
m n : ℕ
hmn : m ≤ n
hG : G.CliqueFreeOn s m
t : Finset α
hts : ↑t ⊆ s
ht : G.IsNClique n t
u : Finset α
hut : u ⊆ t
hu : u.card = m
⊢ False
tactic: obtain ⟨u, hut, hu⟩ := exists_subset_card_eq (hmn.trans ht.card_eq.ge)
state_before: case intro.intro
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s s₁ s₂ : Set α
t✝ : Finset α
a b : α
m n : ℕ
hmn : m ≤ n
hG : G.CliqueFreeOn s m
t : Finset α
hts : ↑t ⊆ s
ht : G.IsNClique n t
u : Finset α
hut : u ⊆ t
hu : u.card = m
⊢ False
state_after: no goals
tactic: exact hG ((coe_subset.2 hut).trans hts) ⟨ht.clique.subset hut, hu⟩
Theorem: CategoryTheory.Limits.parallelPair_initial_mk'
File: Mathlib/CategoryTheory/Limits/Final/ParallelPair.lean

Proof steps:
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
X Y : C
f g : X ⟶ Y
h₁ : ∀ (Z : C), Nonempty (X ⟶ Z)
h₂ : ∀ ⦃Z : C⦄ (i j : X ⟶ Z), Zigzag (mk i) (mk j)
Z : C
⊢ IsConnected (CostructuredArrow (parallelPair f g) Z)
state_after: C : Type u_1
inst✝ : Category.{u_2, u_1} C
X Y : C
f g : X ⟶ Y
h₁ : ∀ (Z : C), Nonempty (X ⟶ Z)
h₂ : ∀ ⦃Z : C⦄ (i j : X ⟶ Z), Zigzag (mk i) (mk j)
Z : C
this : Nonempty (CostructuredArrow (parallelPair f g) Z)
⊢ IsConnected (CostructuredArrow (parallelPair f g) Z)
tactic: have : Nonempty (CostructuredArrow (parallelPair f g) Z) :=
      ⟨mk (Y := zero) (h₁ Z).some⟩
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
X Y : C
f g : X ⟶ Y
h₁ : ∀ (Z : C), Nonempty (X ⟶ Z)
h₂ : ∀ ⦃Z : C⦄ (i j : X ⟶ Z), Zigzag (mk i) (mk j)
Z : C
this✝ : Nonempty (CostructuredArrow (parallelPair f g) Z)
this : ∀ (x : CostructuredArrow (parallelPair f g) Z), Zigzag x (mk ⋯.some)
⊢ IsConnected (CostructuredArrow (parallelPair f g) Z)
state_after: no goals
tactic: exact zigzag_isConnected (fun x y => (this x).trans (this y).symm)
Theorem: CochainComplex.prev_nat_zero
File: Mathlib/Algebra/Homology/HomologicalComplex.lean

Proof steps:
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
⊢ (ComplexShape.up ℕ).prev 0 = 0
state_after: no goals
tactic: classical
    refine dif_neg ?_
    push_neg
    intro
    apply Nat.noConfusion
Theorem: CategoryTheory.finitaryExtensive_of_preserves_and_reflects_isomorphism
File: Mathlib/CategoryTheory/Extensive.lean

Proof steps:
state_before: J : Type v'
inst✝⁸ : Category.{u', v'} J
C : Type u
inst✝⁷ : Category.{v, u} C
D : Type u''
inst✝⁶ : Category.{v'', u''} D
X Y : C
F : C ⥤ D
inst✝⁵ : FinitaryExtensive D
inst✝⁴ : HasFiniteCoproducts C
inst✝³ : HasPullbacks C
inst✝² : PreservesLimitsOfShape WalkingCospan F
inst✝¹ : PreservesColimitsOfShape (Discrete WalkingPair) F
inst✝ : F.ReflectsIsomorphisms
⊢ FinitaryExtensive C
state_after: J : Type v'
inst✝⁸ : Category.{u', v'} J
C : Type u
inst✝⁷ : Category.{v, u} C
D : Type u''
inst✝⁶ : Category.{v'', u''} D
X Y : C
F : C ⥤ D
inst✝⁵ : FinitaryExtensive D
inst✝⁴ : HasFiniteCoproducts C
inst✝³ : HasPullbacks C
inst✝² : PreservesLimitsOfShape WalkingCospan F
inst✝¹ : PreservesColimitsOfShape (Discrete WalkingPair) F
inst✝ : F.ReflectsIsomorphisms
this : ReflectsLimitsOfShape WalkingCospan F
⊢ FinitaryExtensive C
tactic: haveI : ReflectsLimitsOfShape WalkingCospan F := reflectsLimitsOfShapeOfReflectsIsomorphisms
state_before: J : Type v'
inst✝⁸ : Category.{u', v'} J
C : Type u
inst✝⁷ : Category.{v, u} C
D : Type u''
inst✝⁶ : Category.{v'', u''} D
X Y : C
F : C ⥤ D
inst✝⁵ : FinitaryExtensive D
inst✝⁴ : HasFiniteCoproducts C
inst✝³ : HasPullbacks C
inst✝² : PreservesLimitsOfShape WalkingCospan F
inst✝¹ : PreservesColimitsOfShape (Discrete WalkingPair) F
inst✝ : F.ReflectsIsomorphisms
this : ReflectsLimitsOfShape WalkingCospan F
⊢ FinitaryExtensive C
state_after: J : Type v'
inst✝⁸ : Category.{u', v'} J
C : Type u
inst✝⁷ : Category.{v, u} C
D : Type u''
inst✝⁶ : Category.{v'', u''} D
X Y : C
F : C ⥤ D
inst✝⁵ : FinitaryExtensive D
inst✝⁴ : HasFiniteCoproducts C
inst✝³ : HasPullbacks C
inst✝² : PreservesLimitsOfShape WalkingCospan F
inst✝¹ : PreservesColimitsOfShape (Discrete WalkingPair) F
inst✝ : F.ReflectsIsomorphisms
this✝ : ReflectsLimitsOfShape WalkingCospan F
this : ReflectsColimitsOfShape (Discrete WalkingPair) F
⊢ FinitaryExtensive C
tactic: haveI : ReflectsColimitsOfShape (Discrete WalkingPair) F :=
    reflectsColimitsOfShapeOfReflectsIsomorphisms
state_before: J : Type v'
inst✝⁸ : Category.{u', v'} J
C : Type u
inst✝⁷ : Category.{v, u} C
D : Type u''
inst✝⁶ : Category.{v'', u''} D
X Y : C
F : C ⥤ D
inst✝⁵ : FinitaryExtensive D
inst✝⁴ : HasFiniteCoproducts C
inst✝³ : HasPullbacks C
inst✝² : PreservesLimitsOfShape WalkingCospan F
inst✝¹ : PreservesColimitsOfShape (Discrete WalkingPair) F
inst✝ : F.ReflectsIsomorphisms
this✝ : ReflectsLimitsOfShape WalkingCospan F
this : ReflectsColimitsOfShape (Discrete WalkingPair) F
⊢ FinitaryExtensive C
state_after: no goals
tactic: exact finitaryExtensive_of_preserves_and_reflects F
Theorem: AddCommute.addOrderOf_add_eq_mul_addOrderOf_of_coprime
File: Mathlib/GroupTheory/OrderOfElement.lean

Proof steps:
state_before: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : Monoid G
a b x y : G
n m : ℕ
h : Commute x y
hco : (orderOf x).Coprime (orderOf y)
⊢ orderOf (x * y) = orderOf x * orderOf y
state_after: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : Monoid G
a b x y : G
n m : ℕ
h : Commute x y
hco : (orderOf x).Coprime (orderOf y)
⊢ minimalPeriod ((fun x_1 => x * x_1) ∘ fun x => y * x) 1 = orderOf x * orderOf y
tactic: rw [orderOf, ← comp_mul_left]
state_before: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : Monoid G
a b x y : G
n m : ℕ
h : Commute x y
hco : (orderOf x).Coprime (orderOf y)
⊢ minimalPeriod ((fun x_1 => x * x_1) ∘ fun x => y * x) 1 = orderOf x * orderOf y
state_after: no goals
tactic: exact h.function_commute_mul_left.minimalPeriod_of_comp_eq_mul_of_coprime hco
Theorem: NNReal.tendsto_pow_atTop_nhds_zero_of_lt_one
File: Mathlib/Analysis/SpecificLimits/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
r : ℝ≥0
hr : r < 1
⊢ Tendsto (fun a => ↑(r ^ a)) atTop (𝓝 ↑0)
state_after: no goals
tactic: simp only [NNReal.coe_pow, NNReal.coe_zero,
      _root_.tendsto_pow_atTop_nhds_zero_of_lt_one r.coe_nonneg hr]
Theorem: sub_one_mul
File: Mathlib/Algebra/Ring/Defs.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
R : Type x
inst✝ : NonAssocRing α
a b : α
⊢ (a - 1) * b = a * b - b
state_after: no goals
tactic: rw [sub_mul, one_mul]
Theorem: MeasureTheory.IsAddFundamentalDomain.measure_eq_tsum
File: Mathlib/MeasureTheory/Group/FundamentalDomain.lean

Proof steps:
state_before: G : Type u_1
H : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝¹⁰ : Group G
inst✝⁹ : Group H
inst✝⁸ : MulAction G α
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MulAction H β
inst✝⁵ : MeasurableSpace β
inst✝⁴ : NormedAddCommGroup E
s t✝ : Set α
μ : Measure α
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSMul G α
inst✝¹ : SMulInvariantMeasure G α μ
inst✝ : Countable G
ν : Measure α
h : IsFundamentalDomain G s μ
t : Set α
⊢ μ t = ∑' (g : G), μ (g • t ∩ s)
state_after: no goals
tactic: simpa only [setLIntegral_one] using h.setLIntegral_eq_tsum' (fun _ => 1) t
Theorem: PiLp.nnnorm_eq_of_L2
File: Mathlib/Analysis/Normed/Lp/PiLp.lean

Proof steps:
state_before: p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β✝ : ι → Type u_4
inst✝² : Fact (1 ≤ p)
inst✝¹ : Fintype ι
β : ι → Type u_5
inst✝ : (i : ι) → SeminormedAddCommGroup (β i)
x : PiLp 2 β
⊢ ↑‖x‖₊ = ↑(NNReal.sqrt (∑ i : ι, ‖x i‖₊ ^ 2))
state_after: p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β✝ : ι → Type u_4
inst✝² : Fact (1 ≤ p)
inst✝¹ : Fintype ι
β : ι → Type u_5
inst✝ : (i : ι) → SeminormedAddCommGroup (β i)
x : PiLp 2 β
⊢ ‖x‖ = √(∑ x_1 : ι, ‖x x_1‖ ^ 2)
tactic: push_cast
state_before: p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β✝ : ι → Type u_4
inst✝² : Fact (1 ≤ p)
inst✝¹ : Fintype ι
β : ι → Type u_5
inst✝ : (i : ι) → SeminormedAddCommGroup (β i)
x : PiLp 2 β
⊢ ‖x‖ = √(∑ x_1 : ι, ‖x x_1‖ ^ 2)
state_after: no goals
tactic: exact norm_eq_of_L2 x
Theorem: MeasureTheory.lintegral_add_left'
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
hf : AEMeasurable f μ
g : α → ℝ≥0∞
⊢ ∫⁻ (a : α), f a + g a ∂μ = ∫⁻ (a : α), f a ∂μ + ∫⁻ (a : α), g a ∂μ
state_after: no goals
tactic: rw [lintegral_congr_ae hf.ae_eq_mk, ← lintegral_add_left hf.measurable_mk,
    lintegral_congr_ae (hf.ae_eq_mk.add (ae_eq_refl g))]
Theorem: GenContFract.get?_of_eq_some_of_succ_get?_intFractPair_stream
File: Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean

Proof steps:
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
ifp_succ_n : IntFractPair K
stream_succ_nth_eq : IntFractPair.stream v (n + 1) = some ifp_succ_n
⊢ (of v).s.get? n = some { a := 1, b := ↑ifp_succ_n.b }
state_after: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
ifp_succ_n : IntFractPair K
stream_succ_nth_eq : IntFractPair.stream v (n + 1) = some ifp_succ_n
⊢ (match (IntFractPair.of v, Stream'.Seq.tail ⟨IntFractPair.stream v, ⋯⟩) with
          | (h, s) => { h := ↑h.b, s := Stream'.Seq.map (fun p => { a := 1, b := ↑p.b }) s }).s.get?
      n =
    some { a := 1, b := ↑ifp_succ_n.b }
tactic: unfold of IntFractPair.seq1
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
ifp_succ_n : IntFractPair K
stream_succ_nth_eq : IntFractPair.stream v (n + 1) = some ifp_succ_n
⊢ (match (IntFractPair.of v, Stream'.Seq.tail ⟨IntFractPair.stream v, ⋯⟩) with
          | (h, s) => { h := ↑h.b, s := Stream'.Seq.map (fun p => { a := 1, b := ↑p.b }) s }).s.get?
      n =
    some { a := 1, b := ↑ifp_succ_n.b }
state_after: no goals
tactic: simp [Stream'.Seq.map_tail, Stream'.Seq.get?_tail, Stream'.Seq.map_get?, stream_succ_nth_eq]