ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: CategoryTheory.ShortComplex.quasiIso_iff_of_zeros
File: Mathlib/Algebra/Homology/ShortComplex/Exact.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
inst✝² : Category.{?u.158173, u_1} C
inst✝¹ : Category.{?u.158177, u_2} D
inst✝ : Abelian C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
hf₁ : S₁.f = 0
hg₁ : S₁.g = 0
hf₂ : S₂.f = 0
⊢ φ.τ₂ ≫ S₂.g = 0
state_after: no goals
tactic: rw [φ.comm₂₃, hg₁, zero_comp]
state_before: C : Type u_1
D : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Category.{?u.158177, u_2} D
inst✝ : Abelian C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
hf₁ : S₁.f = 0
hg₁ : S₁.g = 0
hf₂ : S₂.f = 0
⊢ QuasiIso φ ↔ (mk φ.τ₂ S₂.g ⋯).Exact ∧ Mono φ.τ₂
state_after: C : Type u_1
D : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Category.{?u.158177, u_2} D
inst✝ : Abelian C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
hf₁ : S₁.f = 0
hg₁ : S₁.g = 0
hf₂ : S₂.f = 0
w : φ.τ₂ ≫ S₂.g = 0
⊢ QuasiIso φ ↔ (mk φ.τ₂ S₂.g ⋯).Exact ∧ Mono φ.τ₂
tactic: have w : φ.τ₂ ≫ S₂.g = 0 := by rw [φ.comm₂₃, hg₁, zero_comp]
state_before: C : Type u_1
D : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Category.{?u.158177, u_2} D
inst✝ : Abelian C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
hf₁ : S₁.f = 0
hg₁ : S₁.g = 0
hf₂ : S₂.f = 0
w : φ.τ₂ ≫ S₂.g = 0
⊢ QuasiIso φ ↔ (mk φ.τ₂ S₂.g ⋯).Exact ∧ Mono φ.τ₂
state_after: C : Type u_1
D : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Category.{?u.158177, u_2} D
inst✝ : Abelian C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
hf₁ : S₁.f = 0
hg₁ : S₁.g = 0
hf₂ : S₂.f = 0
w : φ.τ₂ ≫ S₂.g = 0
⊢ IsIso (S₂.liftCycles φ.τ₂ ⋯) ↔ (mk φ.τ₂ S₂.g ⋯).Exact ∧ Mono φ.τ₂
tactic: rw [quasiIso_iff_isIso_liftCycles φ hf₁ hg₁ hf₂]
state_before: C : Type u_1
D : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Category.{?u.158177, u_2} D
inst✝ : Abelian C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
hf₁ : S₁.f = 0
hg₁ : S₁.g = 0
hf₂ : S₂.f = 0
w : φ.τ₂ ≫ S₂.g = 0
⊢ IsIso (S₂.liftCycles φ.τ₂ ⋯) ↔ (mk φ.τ₂ S₂.g ⋯).Exact ∧ Mono φ.τ₂
state_after: case mp
C : Type u_1
D : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Category.{?u.158177, u_2} D
inst✝ : Abelian C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
hf₁ : S₁.f = 0
hg₁ : S₁.g = 0
hf₂ : S₂.f = 0
w : φ.τ₂ ≫ S₂.g = 0
⊢ IsIso (S₂.liftCycles φ.τ₂ ⋯) → (mk φ.τ₂ S₂.g ⋯).Exact ∧ Mono φ.τ₂

case mpr
C : Type u_1
D : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Category.{?u.158177, u_2} D
inst✝ : Abelian C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
hf₁ : S₁.f = 0
hg₁ : S₁.g = 0
hf₂ : S₂.f = 0
w : φ.τ₂ ≫ S₂.g = 0
⊢ (mk φ.τ₂ S₂.g ⋯).Exact ∧ Mono φ.τ₂ → IsIso (S₂.liftCycles φ.τ₂ ⋯)
tactic: constructor
Theorem: AddSubmonoid.add_leftNegEquiv
File: Mathlib/GroupTheory/Submonoid/Inverses.lean

Proof steps:
state_before: M : Type u_1
inst✝ : CommMonoid M
S : Submonoid M
hS : S ≤ IsUnit.submonoid M
x : ↥S.leftInv
⊢ ↑x * ↑((S.leftInvEquiv hS) x) = 1
state_after: no goals
tactic: simp only [leftInvEquiv_apply, fromCommLeftInv, mul_fromLeftInv]
Theorem: Orientation.left_ne_zero_of_oangle_sign_eq_neg_one
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean

Proof steps:
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : (o.oangle x y).sign = -1
⊢ -1 ≠ 0
state_after: no goals
tactic: decide
Theorem: Set.infinite_iff_infinite_of_encard_eq_encard
File: Mathlib/Data/Set/Card.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
s t : Set α
h : s.encard = t.encard
⊢ s.Infinite ↔ t.Infinite
state_after: no goals
tactic: rw [← encard_eq_top_iff, h, encard_eq_top_iff]
Theorem: Monoid.not_isTorsionFree_iff
File: Mathlib/GroupTheory/Torsion.lean

Proof steps:
state_before: G : Type u_1
H : Type u_2
inst✝ : Monoid G
⊢ ¬IsTorsionFree G ↔ ∃ g, g ≠ 1 ∧ IsOfFinOrder g
state_after: no goals
tactic: simp_rw [IsTorsionFree, Ne, not_forall, Classical.not_not, exists_prop]
Theorem: Ordinal.add_le_add_iff_right
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b : Ordinal.{u_4}
⊢ a + ↑0 ≤ b + ↑0 ↔ a ≤ b
state_after: no goals
tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b : Ordinal.{u_4}
n : ℕ
⊢ a + ↑(n + 1) ≤ b + ↑(n + 1) ↔ a ≤ b
state_after: no goals
tactic: simp only [natCast_succ, add_succ, add_succ, succ_le_succ_iff, add_le_add_iff_right]
Theorem: Int.negOnePow_mul_self
File: Mathlib/Algebra/Ring/NegOnePow.lean

Proof steps:
state_before: n : ℤ
⊢ (n * n).negOnePow = n.negOnePow
state_after: no goals
tactic: simpa [mul_sub, negOnePow_eq_iff] using n.even_mul_pred_self
Theorem: ZMod.pow_totient
File: Mathlib/FieldTheory/Finite/Basic.lean

Proof steps:
state_before: K : Type u_1
R : Type u_2
n : ℕ
x : (ZMod n)ˣ
⊢ x ^ φ n = 1
state_after: case zero
K : Type u_1
R : Type u_2
x : (ZMod 0)ˣ
⊢ x ^ φ 0 = 1

case succ
K : Type u_1
R : Type u_2
n✝ : ℕ
x : (ZMod (n✝ + 1))ˣ
⊢ x ^ φ (n✝ + 1) = 1
tactic: cases n
Theorem: Nat.ceilRoot_one_left
File: Mathlib/Data/Nat/Factorization/Root.lean

Proof steps:
state_before: a✝ b n a : ℕ
⊢ ceilRoot 1 a = a
state_after: a✝ b n a : ℕ
⊢ (if a = 0 then 0 else a.factorization.prod fun p k => p ^ k) = a
tactic: simp [ceilRoot]
state_before: a✝ b n a : ℕ
⊢ (if a = 0 then 0 else a.factorization.prod fun p k => p ^ k) = a
state_after: no goals
tactic: split_ifs <;> simp [*]
Theorem: CommGroup.is_simple_iff_isCyclic_and_prime_card
File: Mathlib/GroupTheory/SpecificGroups/Cyclic.lean

Proof steps:
state_before: α : Type u
a : α
inst✝¹ : Fintype α
inst✝ : CommGroup α
⊢ IsSimpleGroup α ↔ IsCyclic α ∧ Nat.Prime (Fintype.card α)
state_after: case mp
α : Type u
a : α
inst✝¹ : Fintype α
inst✝ : CommGroup α
⊢ IsSimpleGroup α → IsCyclic α ∧ Nat.Prime (Fintype.card α)

case mpr
α : Type u
a : α
inst✝¹ : Fintype α
inst✝ : CommGroup α
⊢ IsCyclic α ∧ Nat.Prime (Fintype.card α) → IsSimpleGroup α
tactic: constructor
Theorem: CategoryTheory.Functor.pushforward_cover_iff_cover_pullback
File: Mathlib/CategoryTheory/Sites/InducedTopology.lean

Proof steps:
state_before: C : Type u_1
inst✝⁷ : Category.{u_3, u_1} C
D : Type u_2
inst✝⁶ : Category.{u_4, u_2} D
G : C ⥤ D
J : GrothendieckTopology C
K : GrothendieckTopology D
A : Type v
inst✝⁵ : Category.{u, v} A
inst✝⁴ : G.LocallyCoverDense K
inst✝³ : G.IsLocallyFull K
inst✝² : G.IsLocallyFaithful K
inst✝¹ : G.Full
inst✝ : G.Faithful
X : C
S : Sieve X
⊢ K.sieves (G.obj X) (Sieve.functorPushforward G S) ↔ ∃ T, Sieve.functorPullback G ↑T = S
state_after: case mp
C : Type u_1
inst✝⁷ : Category.{u_3, u_1} C
D : Type u_2
inst✝⁶ : Category.{u_4, u_2} D
G : C ⥤ D
J : GrothendieckTopology C
K : GrothendieckTopology D
A : Type v
inst✝⁵ : Category.{u, v} A
inst✝⁴ : G.LocallyCoverDense K
inst✝³ : G.IsLocallyFull K
inst✝² : G.IsLocallyFaithful K
inst✝¹ : G.Full
inst✝ : G.Faithful
X : C
S : Sieve X
⊢ K.sieves (G.obj X) (Sieve.functorPushforward G S) → ∃ T, Sieve.functorPullback G ↑T = S

case mpr
C : Type u_1
inst✝⁷ : Category.{u_3, u_1} C
D : Type u_2
inst✝⁶ : Category.{u_4, u_2} D
G : C ⥤ D
J : GrothendieckTopology C
K : GrothendieckTopology D
A : Type v
inst✝⁵ : Category.{u, v} A
inst✝⁴ : G.LocallyCoverDense K
inst✝³ : G.IsLocallyFull K
inst✝² : G.IsLocallyFaithful K
inst✝¹ : G.Full
inst✝ : G.Faithful
X : C
S : Sieve X
⊢ (∃ T, Sieve.functorPullback G ↑T = S) → K.sieves (G.obj X) (Sieve.functorPushforward G S)
tactic: constructor
Theorem: Complex.taylorSeries_eq_of_entire'
File: Mathlib/Analysis/Complex/TaylorSeries.lean

Proof steps:
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
f✝¹ f✝ : ℂ → E
hf✝ : Differentiable ℂ f✝
c z : ℂ
f : ℂ → ℂ
hf : Differentiable ℂ f
⊢ ∑' (n : ℕ), (↑n !)⁻¹ * iteratedDeriv n f c * (z - c) ^ n = f z
state_after: case h.e'_2.h.e'_5.h
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
f✝¹ f✝ : ℂ → E
hf✝ : Differentiable ℂ f✝
c z : ℂ
f : ℂ → ℂ
hf : Differentiable ℂ f
n : ℕ
⊢ (↑n !)⁻¹ * iteratedDeriv n f c * (z - c) ^ n = (↑n !)⁻¹ • (z - c) ^ n • iteratedDeriv n f c
tactic: convert taylorSeries_eq_of_entire hf c z using 3 with n
state_before: case h.e'_2.h.e'_5.h
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
f✝¹ f✝ : ℂ → E
hf✝ : Differentiable ℂ f✝
c z : ℂ
f : ℂ → ℂ
hf : Differentiable ℂ f
n : ℕ
⊢ (↑n !)⁻¹ * iteratedDeriv n f c * (z - c) ^ n = (↑n !)⁻¹ • (z - c) ^ n • iteratedDeriv n f c
state_after: no goals
tactic: rw [mul_right_comm, smul_eq_mul, smul_eq_mul, mul_assoc]
Theorem: Normal.tower_top_of_normal
File: Mathlib/FieldTheory/Normal.lean

Proof steps:
state_before: F : Type u_1
K : Type u_2
inst✝⁶ : Field F
inst✝⁵ : Field K
inst✝⁴ : Algebra F K
E : Type u_3
inst✝³ : Field E
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : Normal F E
x : E
⊢ IsIntegral K x ∧ Splits (algebraMap K E) (minpoly K x)
state_after: case intro
F : Type u_1
K : Type u_2
inst✝⁶ : Field F
inst✝⁵ : Field K
inst✝⁴ : Algebra F K
E : Type u_3
inst✝³ : Field E
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : Normal F E
x : E
hx : IsIntegral F x
hhx : Splits (algebraMap F E) (minpoly F x)
⊢ IsIntegral K x ∧ Splits (algebraMap K E) (minpoly K x)
tactic: cases' h.out x with hx hhx
state_before: case intro
F : Type u_1
K : Type u_2
inst✝⁶ : Field F
inst✝⁵ : Field K
inst✝⁴ : Algebra F K
E : Type u_3
inst✝³ : Field E
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : Normal F E
x : E
hx : IsIntegral F x
hhx : Splits (algebraMap F E) (minpoly F x)
⊢ IsIntegral K x ∧ Splits (algebraMap K E) (minpoly K x)
state_after: case intro
F : Type u_1
K : Type u_2
inst✝⁶ : Field F
inst✝⁵ : Field K
inst✝⁴ : Algebra F K
E : Type u_3
inst✝³ : Field E
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : Normal F E
x : E
hx : IsIntegral F x
hhx : Splits ((algebraMap K E).comp (algebraMap F K)) (minpoly F x)
⊢ IsIntegral K x ∧ Splits (algebraMap K E) (minpoly K x)
tactic: rw [algebraMap_eq F K E] at hhx
state_before: case intro
F : Type u_1
K : Type u_2
inst✝⁶ : Field F
inst✝⁵ : Field K
inst✝⁴ : Algebra F K
E : Type u_3
inst✝³ : Field E
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : Normal F E
x : E
hx : IsIntegral F x
hhx : Splits ((algebraMap K E).comp (algebraMap F K)) (minpoly F x)
⊢ IsIntegral K x ∧ Splits (algebraMap K E) (minpoly K x)
state_after: no goals
tactic: exact
      ⟨hx.tower_top,
        Polynomial.splits_of_splits_of_dvd (algebraMap K E)
          (Polynomial.map_ne_zero (minpoly.ne_zero hx))
          ((Polynomial.splits_map_iff (algebraMap F K) (algebraMap K E)).mpr hhx)
          (minpoly.dvd_map_of_isScalarTower F K x)⟩
Theorem: Polynomial.coeff_mul_X_zero
File: Mathlib/Algebra/Polynomial/Coeff.lean

Proof steps:
state_before: R : Type u
S : Type v
a b : R
n m : ℕ
inst✝ : Semiring R
p✝ q r p : R[X]
⊢ (p * X).coeff 0 = 0
state_after: no goals
tactic: simp
Theorem: integral_eq_zero_of_forall_integral_inner_eq_zero
File: Mathlib/MeasureTheory/Function/L2Space.lean

Proof steps:
state_before: α : Type u_1
m : MeasurableSpace α
p : ℝ≥0∞
μ : Measure α
E : Type u_2
𝕜 : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
f✝ : α → E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f : α → E
hf : Integrable f μ
hf_int : ∀ (c : E), ∫ (x : α), ⟪c, f x⟫_𝕜 ∂μ = 0
⊢ ∫ (x : α), f x ∂μ = 0
state_after: α : Type u_1
m : MeasurableSpace α
p : ℝ≥0∞
μ : Measure α
E : Type u_2
𝕜 : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
f✝ : α → E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f : α → E
hf : Integrable f μ
hf_int : ∫ (x : α), ⟪∫ (x : α), f x ∂μ, f x⟫_𝕜 ∂μ = 0
⊢ ∫ (x : α), f x ∂μ = 0
tactic: specialize hf_int (∫ x, f x ∂μ)
state_before: α : Type u_1
m : MeasurableSpace α
p : ℝ≥0∞
μ : Measure α
E : Type u_2
𝕜 : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
f✝ : α → E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f : α → E
hf : Integrable f μ
hf_int : ∫ (x : α), ⟪∫ (x : α), f x ∂μ, f x⟫_𝕜 ∂μ = 0
⊢ ∫ (x : α), f x ∂μ = 0
state_after: no goals
tactic: rwa [integral_inner hf, inner_self_eq_zero] at hf_int
Theorem: Prop.isCoatom_iff
File: Mathlib/Order/Atoms.lean

Proof steps:
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
p : Prop
⊢ IsCoatom p ↔ ¬p
state_after: ι : Sort u_1
α : Type u_2
β : Type u_3
p : Prop
⊢ ¬p → ∀ (b : Prop), (p → b) → b → ¬p → b
tactic: simp [IsCoatom, show ⊤ = True from rfl, fun q r : Prop => show q < r ↔ _ ∧ _ from .rfl]
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
p : Prop
⊢ ¬p → ∀ (b : Prop), (p → b) → b → ¬p → b
state_after: no goals
tactic: tauto
Theorem: Polynomial.modByMonic_eq_self_iff
File: Mathlib/Algebra/Polynomial/Div.lean

Proof steps:
state_before: R : Type u
S : Type v
T : Type w
A : Type z
a b : R
n : ℕ
inst✝¹ : Ring R
p q : R[X]
inst✝ : Nontrivial R
hq : q.Monic
h : p.degree < q.degree
⊢ p %ₘ q = p
state_after: no goals
tactic: classical
    have : ¬degree q ≤ degree p := not_le_of_gt h
    unfold modByMonic divModByMonicAux; dsimp; rw [dif_pos hq, if_neg (mt And.left this)]
Theorem: List.zip_of_prod
File: Mathlib/Data/List/Zip.lean

Proof steps:
state_before: α : Type u
β : Type u_1
γ : Type u_2
δ : Type u_3
ε : Type u_4
l : List α
l' : List β
lp : List (α × β)
hl : map Prod.fst lp = l
hr : map Prod.snd lp = l'
⊢ lp = l.zip l'
state_after: no goals
tactic: rw [← hl, ← hr, ← zip_unzip lp, ← unzip_left, ← unzip_right, zip_unzip, zip_unzip]
Theorem: CategoryTheory.GradedObject.mapMap_comp
File: Mathlib/CategoryTheory/GradedObject.lean

Proof steps:
state_before: I : Type u_1
J : Type u_2
K : Type u_3
C : Type u_4
inst✝³ : Category.{u_5, u_4} C
X Y Z : GradedObject I C
φ : X ⟶ Y
e : X ≅ Y
ψ : Y ⟶ Z
p : I → J
j : J
inst✝² : X.HasMap p
inst✝¹ : Y.HasMap p
inst✝ : Z.HasMap p
⊢ mapMap (φ ≫ ψ) p = mapMap φ p ≫ mapMap ψ p
state_after: no goals
tactic: aesop_cat
Theorem: Function.Involutive.iterate_bit0
File: Mathlib/Algebra/Ring/Parity.lean

Proof steps:
state_before: F : Type u_1
α✝ : Type u_2
β : Type u_3
R : Type u_4
α : Type u_5
f : α → α
n✝ : ℕ
hf : Involutive f
n : ℕ
⊢ f^[2 * n] = id
state_after: no goals
tactic: rw [iterate_mul, involutive_iff_iter_2_eq_id.1 hf, iterate_id]
Theorem: PiLp.norm_eq_of_nat
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 ι
p : ℝ≥0∞
inst✝¹ : Fact (1 ≤ p)
β : ι → Type u_5
inst✝ : (i : ι) → SeminormedAddCommGroup (β i)
n : ℕ
h : p = ↑n
f : PiLp p β
⊢ ‖f‖ = (∑ i : ι, ‖f i‖ ^ n) ^ (1 / ↑n)
state_after: p✝ : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β✝ : ι → Type u_4
inst✝³ : Fact (1 ≤ p✝)
inst✝² : Fintype ι
p : ℝ≥0∞
inst✝¹ : Fact (1 ≤ p)
β : ι → Type u_5
inst✝ : (i : ι) → SeminormedAddCommGroup (β i)
n : ℕ
h : p = ↑n
f : PiLp p β
this : 0 < p.toReal
⊢ ‖f‖ = (∑ i : ι, ‖f i‖ ^ n) ^ (1 / ↑n)
tactic: have := p.toReal_pos_iff_ne_top.mpr (ne_of_eq_of_ne h <| ENNReal.natCast_ne_top n)
state_before: p✝ : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β✝ : ι → Type u_4
inst✝³ : Fact (1 ≤ p✝)
inst✝² : Fintype ι
p : ℝ≥0∞
inst✝¹ : Fact (1 ≤ p)
β : ι → Type u_5
inst✝ : (i : ι) → SeminormedAddCommGroup (β i)
n : ℕ
h : p = ↑n
f : PiLp p β
this : 0 < p.toReal
⊢ ‖f‖ = (∑ i : ι, ‖f i‖ ^ n) ^ (1 / ↑n)
state_after: no goals
tactic: simp only [one_div, h, Real.rpow_natCast, ENNReal.toReal_nat, eq_self_iff_true, Finset.sum_congr,
    norm_eq_sum this]
Theorem: DirectSum.coe_decompose_mul_of_right_mem
File: Mathlib/RingTheory/GradedAlgebra/Basic.lean

Proof steps:
state_before: ι : Type u_1
R : Type u_2
A : Type u_3
σ : Type u_4
inst✝⁹ : Semiring A
inst✝⁸ : DecidableEq ι
inst✝⁷ : CanonicallyOrderedAddCommMonoid ι
inst✝⁶ : SetLike σ A
inst✝⁵ : AddSubmonoidClass σ A
𝒜 : ι → σ
inst✝⁴ : GradedRing 𝒜
a b : A
n✝ i : ι
inst✝³ : Sub ι
inst✝² : OrderedSub ι
inst✝¹ : ContravariantClass ι ι (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
n : ι
inst✝ : Decidable (i ≤ n)
b_mem : b ∈ 𝒜 i
⊢ ↑(((decompose 𝒜) (a * b)) n) = if i ≤ n then ↑(((decompose 𝒜) a) (n - i)) * b else 0
state_after: case intro
ι : Type u_1
R : Type u_2
A : Type u_3
σ : Type u_4
inst✝⁹ : Semiring A
inst✝⁸ : DecidableEq ι
inst✝⁷ : CanonicallyOrderedAddCommMonoid ι
inst✝⁶ : SetLike σ A
inst✝⁵ : AddSubmonoidClass σ A
𝒜 : ι → σ
inst✝⁴ : GradedRing 𝒜
a : A
n✝ i : ι
inst✝³ : Sub ι
inst✝² : OrderedSub ι
inst✝¹ : ContravariantClass ι ι (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
n : ι
inst✝ : Decidable (i ≤ n)
b : ↥(𝒜 i)
⊢ ↑(((decompose 𝒜) (a * ↑b)) n) = if i ≤ n then ↑(((decompose 𝒜) a) (n - i)) * ↑b else 0
tactic: lift b to 𝒜 i using b_mem
state_before: case intro
ι : Type u_1
R : Type u_2
A : Type u_3
σ : Type u_4
inst✝⁹ : Semiring A
inst✝⁸ : DecidableEq ι
inst✝⁷ : CanonicallyOrderedAddCommMonoid ι
inst✝⁶ : SetLike σ A
inst✝⁵ : AddSubmonoidClass σ A
𝒜 : ι → σ
inst✝⁴ : GradedRing 𝒜
a : A
n✝ i : ι
inst✝³ : Sub ι
inst✝² : OrderedSub ι
inst✝¹ : ContravariantClass ι ι (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
n : ι
inst✝ : Decidable (i ≤ n)
b : ↥(𝒜 i)
⊢ ↑(((decompose 𝒜) (a * ↑b)) n) = if i ≤ n then ↑(((decompose 𝒜) a) (n - i)) * ↑b else 0
state_after: no goals
tactic: rw [decompose_mul, decompose_coe, coe_mul_of_apply]
Theorem: Computation.rel_of_liftRel
File: Mathlib/Data/Seq/Computation.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
R : α → β → Prop
ca : Computation α
cb : Computation β
l : ∀ {a : α}, a ∈ ca → ∃ b, b ∈ cb ∧ R a b
right✝ : ∀ {b : β}, b ∈ cb → ∃ a, a ∈ ca ∧ R a b
a : α
b : β
ma : a ∈ ca
mb : b ∈ cb
⊢ R a b
state_after: α : Type u
β : Type v
γ : Type w
R : α → β → Prop
ca : Computation α
cb : Computation β
l : ∀ {a : α}, a ∈ ca → ∃ b, b ∈ cb ∧ R a b
right✝ : ∀ {b : β}, b ∈ cb → ∃ a, a ∈ ca ∧ R a b
a : α
b : β
ma : a ∈ ca
mb : b ∈ cb
b' : β
mb' : b' ∈ cb
ab' : R a b'
⊢ R a b
tactic: let ⟨b', mb', ab'⟩ := l ma
state_before: α : Type u
β : Type v
γ : Type w
R : α → β → Prop
ca : Computation α
cb : Computation β
l : ∀ {a : α}, a ∈ ca → ∃ b, b ∈ cb ∧ R a b
right✝ : ∀ {b : β}, b ∈ cb → ∃ a, a ∈ ca ∧ R a b
a : α
b : β
ma : a ∈ ca
mb : b ∈ cb
b' : β
mb' : b' ∈ cb
ab' : R a b'
⊢ R a b
state_after: α : Type u
β : Type v
γ : Type w
R : α → β → Prop
ca : Computation α
cb : Computation β
l : ∀ {a : α}, a ∈ ca → ∃ b, b ∈ cb ∧ R a b
right✝ : ∀ {b : β}, b ∈ cb → ∃ a, a ∈ ca ∧ R a b
a : α
b : β
ma : a ∈ ca
mb : b ∈ cb
b' : β
mb' : b' ∈ cb
ab' : R a b'
⊢ R a b'
tactic: rw [mem_unique mb mb']
state_before: α : Type u
β : Type v
γ : Type w
R : α → β → Prop
ca : Computation α
cb : Computation β
l : ∀ {a : α}, a ∈ ca → ∃ b, b ∈ cb ∧ R a b
right✝ : ∀ {b : β}, b ∈ cb → ∃ a, a ∈ ca ∧ R a b
a : α
b : β
ma : a ∈ ca
mb : b ∈ cb
b' : β
mb' : b' ∈ cb
ab' : R a b'
⊢ R a b'
state_after: no goals
tactic: exact ab'
Theorem: Real.self_le_sinh_iff
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean

Proof steps:
state_before: x y z : ℝ
⊢ x ≤ sinh x ↔ sinh 0 - 0 ≤ sinh x - x
state_after: no goals
tactic: simp
Theorem: CircleDeg1Lift.tendsto_translationNumber
File: Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean

Proof steps:
state_before: f g : CircleDeg1Lift
x : ℝ
⊢ Tendsto (fun n => ((f ^ n) x - x) / ↑n) atTop (𝓝 (τ f))
state_after: f g : CircleDeg1Lift
x : ℝ
⊢ Tendsto (fun n => ((f ^ n) x - x) / ↑n) atTop
    (𝓝 (τ (↑(translate (Multiplicative.ofAdd x))⁻¹ * f * ↑(translate (Multiplicative.ofAdd x)))))
tactic: rw [← translationNumber_conj_eq' (translate <| Multiplicative.ofAdd x)]
state_before: f g : CircleDeg1Lift
x : ℝ
⊢ Tendsto (fun n => ((f ^ n) x - x) / ↑n) atTop
    (𝓝 (τ (↑(translate (Multiplicative.ofAdd x))⁻¹ * f * ↑(translate (Multiplicative.ofAdd x)))))
state_after: f g : CircleDeg1Lift
x : ℝ
n : ℕ
⊢ ((↑(translate (Multiplicative.ofAdd x))⁻¹ * f * ↑(translate (Multiplicative.ofAdd x))) ^ n) 0 / ↑n =
    ((f ^ n) x - x) / ↑n
tactic: refine (tendsto_translation_number₀ _).congr fun n ↦ ?_
state_before: f g : CircleDeg1Lift
x : ℝ
n : ℕ
⊢ ((↑(translate (Multiplicative.ofAdd x))⁻¹ * f * ↑(translate (Multiplicative.ofAdd x))) ^ n) 0 / ↑n =
    ((f ^ n) x - x) / ↑n
state_after: no goals
tactic: simp [sub_eq_neg_add, Units.conj_pow']
Theorem: NormedAddGroupHom.completion_comp
File: Mathlib/Analysis/Normed/Group/HomCompletion.lean

Proof steps:
state_before: G : Type u_1
inst✝² : SeminormedAddCommGroup G
H : Type u_2
inst✝¹ : SeminormedAddCommGroup H
K : Type u_3
inst✝ : SeminormedAddCommGroup K
f : NormedAddGroupHom G H
g : NormedAddGroupHom H K
⊢ g.completion.comp f.completion = (g.comp f).completion
state_after: case H
G : Type u_1
inst✝² : SeminormedAddCommGroup G
H : Type u_2
inst✝¹ : SeminormedAddCommGroup H
K : Type u_3
inst✝ : SeminormedAddCommGroup K
f : NormedAddGroupHom G H
g : NormedAddGroupHom H K
x : Completion G
⊢ (g.completion.comp f.completion) x = (g.comp f).completion x
tactic: ext x
state_before: case H
G : Type u_1
inst✝² : SeminormedAddCommGroup G
H : Type u_2
inst✝¹ : SeminormedAddCommGroup H
K : Type u_3
inst✝ : SeminormedAddCommGroup K
f : NormedAddGroupHom G H
g : NormedAddGroupHom H K
x : Completion G
⊢ (g.completion.comp f.completion) x = (g.comp f).completion x
state_after: case H
G : Type u_1
inst✝² : SeminormedAddCommGroup G
H : Type u_2
inst✝¹ : SeminormedAddCommGroup H
K : Type u_3
inst✝ : SeminormedAddCommGroup K
f : NormedAddGroupHom G H
g : NormedAddGroupHom H K
x : Completion G
⊢ Completion.map (⇑g ∘ ⇑f) x = Completion.map (⇑(g.comp f)) x
tactic: rw [NormedAddGroupHom.coe_comp, NormedAddGroupHom.completion_def,
    NormedAddGroupHom.completion_coe_to_fun, NormedAddGroupHom.completion_coe_to_fun,
    Completion.map_comp g.uniformContinuous f.uniformContinuous]
state_before: case H
G : Type u_1
inst✝² : SeminormedAddCommGroup G
H : Type u_2
inst✝¹ : SeminormedAddCommGroup H
K : Type u_3
inst✝ : SeminormedAddCommGroup K
f : NormedAddGroupHom G H
g : NormedAddGroupHom H K
x : Completion G
⊢ Completion.map (⇑g ∘ ⇑f) x = Completion.map (⇑(g.comp f)) x
state_after: no goals
tactic: rfl
Theorem: Finset.Colex.isInitSeg_initSeg
File: Mathlib/Combinatorics/Colex.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : LinearOrder β
f : α → β
𝒜 𝒜₁ 𝒜₂ : Finset (Finset α)
s t u : Finset α
a b : α
r : ℕ
inst✝ : Fintype α
⊢ IsInitSeg (initSeg s) s.card
state_after: α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : LinearOrder β
f : α → β
𝒜 𝒜₁ 𝒜₂ : Finset (Finset α)
s t u : Finset α
a b : α
r : ℕ
inst✝ : Fintype α
t₁ t₂ : Finset α
ht₁ : t₁ ∈ initSeg s
ht₂ : { ofColex := t₂ } < { ofColex := t₁ } ∧ t₂.card = s.card
⊢ { ofColex := t₂ } ≤ { ofColex := s }
tactic: refine ⟨fun t ht => (mem_initSeg.1 ht).1.symm, fun t₁ t₂ ht₁ ht₂ ↦ mem_initSeg.2 ⟨ht₂.2.symm, ?_⟩⟩
state_before: α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : LinearOrder β
f : α → β
𝒜 𝒜₁ 𝒜₂ : Finset (Finset α)
s t u : Finset α
a b : α
r : ℕ
inst✝ : Fintype α
t₁ t₂ : Finset α
ht₁ : t₁ ∈ initSeg s
ht₂ : { ofColex := t₂ } < { ofColex := t₁ } ∧ t₂.card = s.card
⊢ { ofColex := t₂ } ≤ { ofColex := s }
state_after: α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : LinearOrder β
f : α → β
𝒜 𝒜₁ 𝒜₂ : Finset (Finset α)
s t u : Finset α
a b : α
r : ℕ
inst✝ : Fintype α
t₁ t₂ : Finset α
ht₁ : s.card = t₁.card ∧ { ofColex := t₁ } ≤ { ofColex := s }
ht₂ : { ofColex := t₂ } < { ofColex := t₁ } ∧ t₂.card = s.card
⊢ { ofColex := t₂ } ≤ { ofColex := s }
tactic: rw [mem_initSeg] at ht₁
state_before: α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : LinearOrder β
f : α → β
𝒜 𝒜₁ 𝒜₂ : Finset (Finset α)
s t u : Finset α
a b : α
r : ℕ
inst✝ : Fintype α
t₁ t₂ : Finset α
ht₁ : s.card = t₁.card ∧ { ofColex := t₁ } ≤ { ofColex := s }
ht₂ : { ofColex := t₂ } < { ofColex := t₁ } ∧ t₂.card = s.card
⊢ { ofColex := t₂ } ≤ { ofColex := s }
state_after: no goals
tactic: exact ht₂.1.le.trans ht₁.2
Theorem: strictConcaveOn_sqrt_mul_log_Ioi
File: Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean

Proof steps:
state_before: ⊢ StrictConcaveOn ℝ (Ioi 1) fun x => √x * log x
state_after: ⊢ ContinuousOn (fun x => √x * log x) (Ioi 1)

x : ℝ
hx : x ∈ Ioi 1
⊢ deriv^[2] (fun x => √x * log x) x < 0
tactic: apply strictConcaveOn_of_deriv2_neg' (convex_Ioi 1) _ fun x hx => ?_