ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Zspan.discreteTopology_pi_basisFun
File: Mathlib/Algebra/Module/Zlattice/Basic.lean

Proof steps:
state_before: E : Type u_1
ι : Type u_2
inst✝ : Finite ι
⊢ DiscreteTopology ↥(span ℤ (Set.range ⇑(Pi.basisFun ℝ ι)))
state_after: case intro
E : Type u_1
ι : Type u_2
inst✝ : Finite ι
val✝ : Fintype ι
⊢ DiscreteTopology ↥(span ℤ (Set.range ⇑(Pi.basisFun ℝ ι)))
tactic: cases nonempty_fintype ι
state_before: case intro
E : Type u_1
ι : Type u_2
inst✝ : Finite ι
val✝ : Fintype ι
⊢ DiscreteTopology ↥(span ℤ (Set.range ⇑(Pi.basisFun ℝ ι)))
state_after: case intro
E : Type u_1
ι : Type u_2
inst✝ : Finite ι
val✝ : Fintype ι
⊢ Subtype.val ⁻¹' Metric.ball 0 1 = {0}
tactic: refine discreteTopology_iff_isOpen_singleton_zero.mpr ⟨Metric.ball 0 1, Metric.isOpen_ball, ?_⟩
state_before: case intro
E : Type u_1
ι : Type u_2
inst✝ : Finite ι
val✝ : Fintype ι
⊢ Subtype.val ⁻¹' Metric.ball 0 1 = {0}
state_after: case intro.h
E : Type u_1
ι : Type u_2
inst✝ : Finite ι
val✝ : Fintype ι
x : ↥(span ℤ (Set.range ⇑(Pi.basisFun ℝ ι)))
⊢ x ∈ Subtype.val ⁻¹' Metric.ball 0 1 ↔ x ∈ {0}
tactic: ext x
state_before: case intro.h
E : Type u_1
ι : Type u_2
inst✝ : Finite ι
val✝ : Fintype ι
x : ↥(span ℤ (Set.range ⇑(Pi.basisFun ℝ ι)))
⊢ x ∈ Subtype.val ⁻¹' Metric.ball 0 1 ↔ x ∈ {0}
state_after: case intro.h
E : Type u_1
ι : Type u_2
inst✝ : Finite ι
val✝ : Fintype ι
x : ↥(span ℤ (Set.range ⇑(Pi.basisFun ℝ ι)))
⊢ (∀ (i : ι), ‖↑x i‖ < 1) ↔ x = 0
tactic: rw [Set.mem_preimage, mem_ball_zero_iff, pi_norm_lt_iff zero_lt_one, Set.mem_singleton_iff]
state_before: case intro.h
E : Type u_1
ι : Type u_2
inst✝ : Finite ι
val✝ : Fintype ι
x : ↥(span ℤ (Set.range ⇑(Pi.basisFun ℝ ι)))
⊢ (∀ (i : ι), ‖↑x i‖ < 1) ↔ x = 0
state_after: case intro.h
E : Type u_1
ι : Type u_2
inst✝ : Finite ι
val✝ : Fintype ι
x : ↥(span ℤ (Set.range ⇑(Pi.basisFun ℝ ι)))
⊢ (∀ (i : ι), |↑x i| < 1) ↔ ∀ (a : ι), ↑x a = 0
tactic: simp_rw [← coe_eq_zero, Function.funext_iff, Pi.zero_apply, Real.norm_eq_abs]
state_before: case intro.h
E : Type u_1
ι : Type u_2
inst✝ : Finite ι
val✝ : Fintype ι
x : ↥(span ℤ (Set.range ⇑(Pi.basisFun ℝ ι)))
⊢ (∀ (i : ι), |↑x i| < 1) ↔ ∀ (a : ι), ↑x a = 0
state_after: case intro.h
E : Type u_1
ι : Type u_2
inst✝ : Finite ι
val✝ : Fintype ι
x : ↥(span ℤ (Set.range ⇑(Pi.basisFun ℝ ι)))
i : ι
⊢ |↑x i| < 1 ↔ ↑x i = 0
tactic: refine forall_congr' (fun i => ?_)
state_before: case intro.h
E : Type u_1
ι : Type u_2
inst✝ : Finite ι
val✝ : Fintype ι
x : ↥(span ℤ (Set.range ⇑(Pi.basisFun ℝ ι)))
i : ι
⊢ |↑x i| < 1 ↔ ↑x i = 0
state_after: case intro.h.intro
E : Type u_1
ι : Type u_2
inst✝ : Finite ι
val✝ : Fintype ι
x : ↥(span ℤ (Set.range ⇑(Pi.basisFun ℝ ι)))
i : ι
y : ℤ
hy : ↑y = ↑x i
⊢ |↑x i| < 1 ↔ ↑x i = 0

E : Type u_1
ι : Type u_2
inst✝ : Finite ι
val✝ : Fintype ι
x : ↥(span ℤ (Set.range ⇑(Pi.basisFun ℝ ι)))
i : ι
⊢ ∃ y, ↑y = ↑x i
tactic: rsuffices ⟨y, hy⟩ : ∃ (y : ℤ), (y : ℝ) = (x : ι → ℝ) i
state_before: E : Type u_1
ι : Type u_2
inst✝ : Finite ι
val✝ : Fintype ι
x : ↥(span ℤ (Set.range ⇑(Pi.basisFun ℝ ι)))
i : ι
⊢ ∃ y, ↑y = ↑x i
state_after: no goals
tactic: exact ((Pi.basisFun ℝ ι).mem_span_iff_repr_mem ℤ x).mp (SetLike.coe_mem x) i
Theorem: MeasureTheory.measure_eq_trim
File: Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
inst✝ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t s : Set α
⊢ μ s = μ.trim s
state_after: no goals
tactic: rw [μ.trimmed, μ.coe_toOuterMeasure]
Theorem: StarOrderedRing.of_le_iff
File: Mathlib/Algebra/Star/Order.lean

Proof steps:
state_before: R : Type u
inst✝² : NonUnitalSemiring R
inst✝¹ : PartialOrder R
inst✝ : StarRing R
h_le_iff : ∀ (x y : R), x ≤ y ↔ ∃ s, y = x + star s * s
x y : R
⊢ x ≤ y ↔ ∃ p ∈ AddSubmonoid.closure (range fun s => star s * s), y = x + p
state_after: case refine_1
R : Type u
inst✝² : NonUnitalSemiring R
inst✝¹ : PartialOrder R
inst✝ : StarRing R
h_le_iff : ∀ (x y : R), x ≤ y ↔ ∃ s, y = x + star s * s
x y : R
h : x ≤ y
⊢ ∃ p ∈ AddSubmonoid.closure (range fun s => star s * s), y = x + p

case refine_2
R : Type u
inst✝² : NonUnitalSemiring R
inst✝¹ : PartialOrder R
inst✝ : StarRing R
h_le_iff : ∀ (x y : R), x ≤ y ↔ ∃ s, y = x + star s * s
x y : R
⊢ (∃ p ∈ AddSubmonoid.closure (range fun s => star s * s), y = x + p) → x ≤ y
tactic: refine ⟨fun h => ?_, ?_⟩
Theorem: BoxIntegral.IntegrationParams.henstock_le_riemann
File: Mathlib/Analysis/BoxIntegral/Partition/Filter.lean

Proof steps:
state_before: ι : Type u_1
inst✝ : Fintype ι
I J : Box ι
c c₁ c₂ : ℝ≥0
r r₁ r₂ : (ι → ℝ) → ↑(Set.Ioi 0)
π π₁ π₂ : TaggedPrepartition I
l l₁ l₂ : IntegrationParams
⊢ Henstock ≤ Riemann
state_after: no goals
tactic: trivial
Theorem: Set.Ico_diff_left
File: Mathlib/Order/Interval/Set/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝ : PartialOrder α
a b c x : α
⊢ x ∈ Ico a b \ {a} ↔ x ∈ Ioo a b
state_after: no goals
tactic: simp [and_right_comm, ← lt_iff_le_and_ne, eq_comm]
Theorem: Rel.inv_bot
File: Mathlib/Data/Rel.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
⊢ ⊥.inv = ⊥
state_after: no goals
tactic: simp [Bot.bot, inv, Function.flip_def]
Theorem: IsIntegralClosure.mk'_zero
File: Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean

Proof steps:
state_before: R : Type u_1
A : Type u_2
B : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : CommRing B
inst✝² : Algebra R B
inst✝¹ : Algebra A B
inst✝ : IsIntegralClosure A R B
h : optParam (IsIntegral R 0) ⋯
⊢ (algebraMap A B) (mk' A 0 h) = (algebraMap A B) 0
state_after: no goals
tactic: rw [algebraMap_mk', RingHom.map_zero]
Theorem: frontier_Ico
File: Mathlib/Topology/Order/DenselyOrdered.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
a✝ b✝ : α
s : Set α
inst✝ : NoMinOrder α
a b : α
h : a < b
⊢ frontier (Ico a b) = {a, b}
state_after: no goals
tactic: rw [frontier, closure_Ico h.ne, interior_Ico, Icc_diff_Ioo_same h.le]
Theorem: Real.cos_lt_one_div_sqrt_sq_add_one
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean

Proof steps:
state_before: x✝ x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
⊢ ∀ {y : ℝ}, 0 < y → y ≤ 3 * π / 2 → cos y < 1 / √(y ^ 2 + 1)
state_after: x✝ x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
⊢ cos y < 1 / √(y ^ 2 + 1)
tactic: intro y hy1 hy2
state_before: x✝ x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
⊢ cos y < 1 / √(y ^ 2 + 1)
state_after: x✝ x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < y ^ 2 + 1
⊢ cos y < 1 / √(y ^ 2 + 1)
tactic: have hy3 : ↑0 < y ^ 2 + 1 := by linarith [sq_nonneg y]
state_before: x✝ x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < y ^ 2 + 1
⊢ cos y < 1 / √(y ^ 2 + 1)
state_after: case inl
x✝ x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < y ^ 2 + 1
hy2' : y < π / 2
⊢ cos y < 1 / √(y ^ 2 + 1)

case inr
x✝ x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < y ^ 2 + 1
hy1' : π / 2 ≤ y
⊢ cos y < 1 / √(y ^ 2 + 1)
tactic: rcases lt_or_le y (π / 2) with (hy2' | hy1')
Theorem: _private.Mathlib.NumberTheory.PythagoreanTriples.0.coprime_sq_sub_mul
File: Mathlib/NumberTheory/PythagoreanTriples.lean

Proof steps:
state_before: m n : ℤ
h : m.gcd n = 1
hmn : m % 2 = 0 ∧ n % 2 = 1 ∨ m % 2 = 1 ∧ n % 2 = 0
⊢ (m ^ 2 - n ^ 2).gcd (2 * m * n) = 1
state_after: case inl
m n : ℤ
h : m.gcd n = 1
h1 : m % 2 = 0 ∧ n % 2 = 1
⊢ (m ^ 2 - n ^ 2).gcd (2 * m * n) = 1

case inr
m n : ℤ
h : m.gcd n = 1
h2 : m % 2 = 1 ∧ n % 2 = 0
⊢ (m ^ 2 - n ^ 2).gcd (2 * m * n) = 1
tactic: cases' hmn with h1 h2
Theorem: CategoryTheory.Functor.shiftIso_add
File: Mathlib/CategoryTheory/Shift/ShiftSequence.lean

Proof steps:
state_before: C : Type u_1
A : Type u_2
inst✝⁶ : Category.{?u.41960, u_1} C
inst✝⁵ : Category.{?u.41964, u_2} A
F : C ⥤ A
M : Type u_3
inst✝⁴ : AddMonoid M
inst✝³ : HasShift C M
G : Type u_4
inst✝² : AddGroup G
inst✝¹ : HasShift C G
inst✝ : F.ShiftSequence M
n m a a' a'' : M
ha' : n + a = a'
ha'' : m + a' = a''
⊢ m + n + a = a''
state_after: no goals
tactic: rw [add_assoc, ha', ha'']
Theorem: MeasureTheory.volume_sum_rpow_lt
File: Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean

Proof steps:
state_before: ι : Type u_1
inst✝¹ : Fintype ι
p✝ : ℝ
hp✝ : 1 ≤ p✝
inst✝ : Nonempty ι
p : ℝ
hp : 1 ≤ p
r : ℝ
⊢ volume {x | (∑ i : ι, |x i| ^ p) ^ (1 / p) < r} =
    ENNReal.ofReal r ^ card ι * ENNReal.ofReal ((2 * Gamma (1 / p + 1)) ^ card ι / Gamma (↑(card ι) / p + 1))
state_after: ι : Type u_1
inst✝¹ : Fintype ι
p✝ : ℝ
hp✝ : 1 ≤ p✝
inst✝ : Nonempty ι
p : ℝ
hp : 1 ≤ p
r : ℝ
h₁ : ∀ (x : ι → ℝ), 0 ≤ ∑ i : ι, |x i| ^ p
⊢ volume {x | (∑ i : ι, |x i| ^ p) ^ (1 / p) < r} =
    ENNReal.ofReal r ^ card ι * ENNReal.ofReal ((2 * Gamma (1 / p + 1)) ^ card ι / Gamma (↑(card ι) / p + 1))
tactic: have h₁ (x : ι → ℝ) : 0 ≤ ∑ i, |x i| ^ p := by positivity
state_before: ι : Type u_1
inst✝¹ : Fintype ι
p✝ : ℝ
hp✝ : 1 ≤ p✝
inst✝ : Nonempty ι
p : ℝ
hp : 1 ≤ p
r : ℝ
h₁ : ∀ (x : ι → ℝ), 0 ≤ ∑ i : ι, |x i| ^ p
⊢ volume {x | (∑ i : ι, |x i| ^ p) ^ (1 / p) < r} =
    ENNReal.ofReal r ^ card ι * ENNReal.ofReal ((2 * Gamma (1 / p + 1)) ^ card ι / Gamma (↑(card ι) / p + 1))
state_after: ι : Type u_1
inst✝¹ : Fintype ι
p✝ : ℝ
hp✝ : 1 ≤ p✝
inst✝ : Nonempty ι
p : ℝ
hp : 1 ≤ p
r : ℝ
h₁ : ∀ (x : ι → ℝ), 0 ≤ ∑ i : ι, |x i| ^ p
h₂ : ∀ (x : ι → ℝ), 0 ≤ (∑ i : ι, |x i| ^ p) ^ (1 / p)
⊢ volume {x | (∑ i : ι, |x i| ^ p) ^ (1 / p) < r} =
    ENNReal.ofReal r ^ card ι * ENNReal.ofReal ((2 * Gamma (1 / p + 1)) ^ card ι / Gamma (↑(card ι) / p + 1))
tactic: have h₂ : ∀ x : ι → ℝ, 0 ≤ (∑ i, |x i| ^ p) ^ (1 / p) := fun x => rpow_nonneg (h₁ x) _
state_before: ι : Type u_1
inst✝¹ : Fintype ι
p✝ : ℝ
hp✝ : 1 ≤ p✝
inst✝ : Nonempty ι
p : ℝ
hp : 1 ≤ p
r : ℝ
h₁ : ∀ (x : ι → ℝ), 0 ≤ ∑ i : ι, |x i| ^ p
h₂ : ∀ (x : ι → ℝ), 0 ≤ (∑ i : ι, |x i| ^ p) ^ (1 / p)
⊢ volume {x | (∑ i : ι, |x i| ^ p) ^ (1 / p) < r} =
    ENNReal.ofReal r ^ card ι * ENNReal.ofReal ((2 * Gamma (1 / p + 1)) ^ card ι / Gamma (↑(card ι) / p + 1))
state_after: case inl
ι : Type u_1
inst✝¹ : Fintype ι
p✝ : ℝ
hp✝ : 1 ≤ p✝
inst✝ : Nonempty ι
p : ℝ
hp : 1 ≤ p
r : ℝ
h₁ : ∀ (x : ι → ℝ), 0 ≤ ∑ i : ι, |x i| ^ p
h₂ : ∀ (x : ι → ℝ), 0 ≤ (∑ i : ι, |x i| ^ p) ^ (1 / p)
hr : r ≤ 0
⊢ volume {x | (∑ i : ι, |x i| ^ p) ^ (1 / p) < r} =
    ENNReal.ofReal r ^ card ι * ENNReal.ofReal ((2 * Gamma (1 / p + 1)) ^ card ι / Gamma (↑(card ι) / p + 1))

case inr
ι : Type u_1
inst✝¹ : Fintype ι
p✝ : ℝ
hp✝ : 1 ≤ p✝
inst✝ : Nonempty ι
p : ℝ
hp : 1 ≤ p
r : ℝ
h₁ : ∀ (x : ι → ℝ), 0 ≤ ∑ i : ι, |x i| ^ p
h₂ : ∀ (x : ι → ℝ), 0 ≤ (∑ i : ι, |x i| ^ p) ^ (1 / p)
hr : 0 < r
⊢ volume {x | (∑ i : ι, |x i| ^ p) ^ (1 / p) < r} =
    ENNReal.ofReal r ^ card ι * ENNReal.ofReal ((2 * Gamma (1 / p + 1)) ^ card ι / Gamma (↑(card ι) / p + 1))
tactic: obtain hr | hr := le_or_lt r 0
Theorem: le_suffixLevenshtein_append_minimum
File: Mathlib/Data/List/EditDistance/Bounds.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
C : Levenshtein.Cost α β δ
inst✝ : CanonicallyLinearOrderedAddCommMonoid δ
xs : List α
ys₁ ys₂ : List β
⊢ (↑(suffixLevenshtein C xs ys₂)).minimum ≤ (↑(suffixLevenshtein C xs (ys₁ ++ ys₂))).minimum
state_after: no goals
tactic: induction ys₁ with
  | nil => exact le_refl _
  | cons y ys₁ ih => exact ih.trans (le_suffixLevenshtein_cons_minimum _ _ _)
Theorem: CategoryTheory.Limits.coprod.desc_inl_inr
File: Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean

Proof steps:
state_before: C : Type u
inst✝¹ : Category.{v, u} C
X✝ Y✝ X Y : C
inst✝ : HasBinaryCoproduct X Y
⊢ desc inl inr = 𝟙 (X ⨿ Y)
state_after: no goals
tactic: ext <;> simp
Theorem: Order.succ_le_succ
File: Mathlib/Order/SuccPred/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : SuccOrder α
a b : α
h : a ≤ b
⊢ succ a ≤ succ b
state_after: case pos
α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : SuccOrder α
a b : α
h : a ≤ b
hb : IsMax b
⊢ succ a ≤ succ b

case neg
α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : SuccOrder α
a b : α
h : a ≤ b
hb : ¬IsMax b
⊢ succ a ≤ succ b
tactic: by_cases hb : IsMax b
Theorem: Subring.prod_top
File: Mathlib/Algebra/Ring/Subring/Basic.lean

Proof steps:
state_before: R : Type u
S : Type v
T : Type w
inst✝² : Ring R
inst✝¹ : Ring S
inst✝ : Ring T
s : Subring R
x : R × S
⊢ x ∈ s.prod ⊤ ↔ x ∈ comap (RingHom.fst R S) s
state_after: no goals
tactic: simp [mem_prod, MonoidHom.coe_fst]
Theorem: MeasureTheory.VectorMeasure.restrict_add
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
m inst✝⁴ : MeasurableSpace α
inst✝³ : MeasurableSpace β
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
v✝ : VectorMeasure α M
inst✝ : ContinuousAdd M
v w : VectorMeasure α M
i : Set α
⊢ (v + w).restrict i = v.restrict i + w.restrict i
state_after: case pos
α : Type u_1
β : Type u_2
m inst✝⁴ : MeasurableSpace α
inst✝³ : MeasurableSpace β
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
v✝ : VectorMeasure α M
inst✝ : ContinuousAdd M
v w : VectorMeasure α M
i : Set α
hi : MeasurableSet i
⊢ (v + w).restrict i = v.restrict i + w.restrict i

case neg
α : Type u_1
β : Type u_2
m inst✝⁴ : MeasurableSpace α
inst✝³ : MeasurableSpace β
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
v✝ : VectorMeasure α M
inst✝ : ContinuousAdd M
v w : VectorMeasure α M
i : Set α
hi : ¬MeasurableSet i
⊢ (v + w).restrict i = v.restrict i + w.restrict i
tactic: by_cases hi : MeasurableSet i
Theorem: YoungDiagram.row_eq_prod
File: Mathlib/Combinatorics/Young/YoungDiagram.lean

Proof steps:
state_before: μ : YoungDiagram
i : ℕ
⊢ μ.row i = {i} ×ˢ Finset.range (μ.rowLen i)
state_after: case a.mk
μ : YoungDiagram
i a b : ℕ
⊢ (a, b) ∈ μ.row i ↔ (a, b) ∈ {i} ×ˢ Finset.range (μ.rowLen i)
tactic: ext ⟨a, b⟩
state_before: case a.mk
μ : YoungDiagram
i a b : ℕ
⊢ (a, b) ∈ μ.row i ↔ (a, b) ∈ {i} ×ˢ Finset.range (μ.rowLen i)
state_after: case a.mk
μ : YoungDiagram
i a b : ℕ
⊢ a = i → (b < μ.rowLen a ↔ b < μ.rowLen i)
tactic: simp only [Finset.mem_product, Finset.mem_singleton, Finset.mem_range, mem_row_iff,
    mem_iff_lt_rowLen, and_comm, and_congr_right_iff]
state_before: case a.mk
μ : YoungDiagram
i a b : ℕ
⊢ a = i → (b < μ.rowLen a ↔ b < μ.rowLen i)
state_after: case a.mk
μ : YoungDiagram
a b : ℕ
⊢ b < μ.rowLen a ↔ b < μ.rowLen a
tactic: rintro rfl
state_before: case a.mk
μ : YoungDiagram
a b : ℕ
⊢ b < μ.rowLen a ↔ b < μ.rowLen a
state_after: no goals
tactic: rfl
Theorem: Real.toNNReal_eq_nnnorm_of_nonneg
File: Mathlib/Analysis/Normed/Group/Basic.lean

Proof steps:
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
hr : 0 ≤ r
⊢ r.toNNReal = ‖r‖₊
state_after: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
hr : 0 ≤ r
⊢ ⟨r, hr⟩ = ‖r‖₊
tactic: rw [Real.toNNReal_of_nonneg hr]
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
hr : 0 ≤ r
⊢ ⟨r, hr⟩ = ‖r‖₊
state_after: case a
𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
hr : 0 ≤ r
⊢ ↑⟨r, hr⟩ = ↑‖r‖₊
tactic: ext
state_before: case a
𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
hr : 0 ≤ r
⊢ ↑⟨r, hr⟩ = ↑‖r‖₊
state_after: no goals
tactic: rw [coe_mk, coe_nnnorm r, Real.norm_eq_abs r, abs_of_nonneg hr]
Theorem: MvPolynomial.homogeneousComponent_eq_zero'
File: Mathlib/RingTheory/MvPolynomial/Homogeneous.lean

Proof steps:
state_before: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝¹ inst✝ : CommSemiring R
n : ℕ
φ ψ : MvPolynomial σ R
h : ∀ d ∈ φ.support, d.degree ≠ n
⊢ (homogeneousComponent n) φ = 0
state_after: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝¹ inst✝ : CommSemiring R
n : ℕ
φ ψ : MvPolynomial σ R
h : ∀ d ∈ φ.support, (weight 1) d ≠ n
⊢ (homogeneousComponent n) φ = 0
tactic: simp_rw [degree_eq_weight_one] at h
state_before: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝¹ inst✝ : CommSemiring R
n : ℕ
φ ψ : MvPolynomial σ R
h : ∀ d ∈ φ.support, (weight 1) d ≠ n
⊢ (homogeneousComponent n) φ = 0
state_after: no goals
tactic: exact weightedHomogeneousComponent_eq_zero' n φ h
Theorem: Function.IsFixedPt.birkhoffAverage_eq
File: Mathlib/Dynamics/BirkhoffSum/Average.lean

Proof steps:
state_before: R : Type u_1
α : Type u_2
M : Type u_3
inst✝³ : DivisionSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : CharZero R
f : α → α
x : α
h : IsFixedPt f x
g : α → M
n : ℕ
hn : n ≠ 0
⊢ birkhoffAverage R f g n x = g x
state_after: case hc
R : Type u_1
α : Type u_2
M : Type u_3
inst✝³ : DivisionSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : CharZero R
f : α → α
x : α
h : IsFixedPt f x
g : α → M
n : ℕ
hn : n ≠ 0
⊢ ↑n ≠ 0
tactic: rw [birkhoffAverage, h.birkhoffSum_eq, ← Nat.cast_smul_eq_nsmul R, inv_smul_smul₀]
state_before: case hc
R : Type u_1
α : Type u_2
M : Type u_3
inst✝³ : DivisionSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : CharZero R
f : α → α
x : α
h : IsFixedPt f x
g : α → M
n : ℕ
hn : n ≠ 0
⊢ ↑n ≠ 0
state_after: no goals
tactic: rwa [Nat.cast_ne_zero]
Theorem: AdicCompletion.ofTensorProduct_tmul
File: Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean

Proof steps:
state_before: R : Type u_1
inst✝⁴ : CommRing R
I : Ideal R
M : Type u_2
inst✝³ : AddCommGroup M
inst✝² : Module R M
N : Type u_3
inst✝¹ : AddCommGroup N
inst✝ : Module R N
r : AdicCompletion I R
x : M
⊢ (ofTensorProduct I M) (r ⊗ₜ[R] x) = r • (of I M) x
state_after: no goals
tactic: simp [ofTensorProduct]
Theorem: Polynomial.content_mul_aux
File: Mathlib/RingTheory/Polynomial/Content.lean

Proof steps:
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
⊢ gcd (p * q).eraseLead.content p.leadingCoeff = gcd (p.eraseLead * q).content p.leadingCoeff
state_after: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
⊢ gcd p.leadingCoeff (p * q).eraseLead.content = gcd p.leadingCoeff (p.eraseLead * q).content
tactic: rw [gcd_comm (content _) _, gcd_comm (content _) _]
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
⊢ gcd p.leadingCoeff (p * q).eraseLead.content = gcd p.leadingCoeff (p.eraseLead * q).content
state_after: case h
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
⊢ C p.leadingCoeff ∣ (p * q).eraseLead - p.eraseLead * q
tactic: apply gcd_content_eq_of_dvd_sub
state_before: case h
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
⊢ C p.leadingCoeff ∣ (p * q).eraseLead - p.eraseLead * q
state_after: case h
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
⊢ C p.leadingCoeff ∣
    C p.leadingCoeff * (X ^ p.natDegree * q) - C p.leadingCoeff * (C q.leadingCoeff * X ^ (p * q).natDegree)
tactic: rw [← self_sub_C_mul_X_pow, ← self_sub_C_mul_X_pow, sub_mul, sub_sub, add_comm, sub_add,
    sub_sub_cancel, leadingCoeff_mul, RingHom.map_mul, mul_assoc, mul_assoc]
state_before: case h
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
⊢ C p.leadingCoeff ∣
    C p.leadingCoeff * (X ^ p.natDegree * q) - C p.leadingCoeff * (C q.leadingCoeff * X ^ (p * q).natDegree)
state_after: no goals
tactic: apply dvd_sub (Dvd.intro _ rfl) (Dvd.intro _ rfl)
Theorem: CategoryTheory.Functor.rightDerivedNatTrans_app
File: Mathlib/CategoryTheory/Functor/Derived/RightDerived.lean

Proof steps:
state_before: C : Type u_1
C' : Type ?u.42902
D : Type u_6
D' : Type ?u.42908
H : Type u_3
H' : Type ?u.42914
inst✝⁹ : Category.{u_4, u_1} C
inst✝⁸ : Category.{?u.42922, ?u.42902} C'
inst✝⁷ : Category.{u_5, u_6} D
inst✝⁶ : Category.{?u.42930, ?u.42908} D'
inst✝⁵ : Category.{u_2, u_3} H
inst✝⁴ : Category.{?u.42938, ?u.42914} H'
RF RF' RF'' : D ⥤ H
F F' F'' : C ⥤ H
e : F ≅ F'
L : C ⥤ D
α : F ⟶ L ⋙ RF
α' : F' ⟶ L ⋙ RF'
α'' : F'' ⟶ L ⋙ RF''
α'₂ : F ⟶ L ⋙ RF'
W : MorphismProperty C
inst✝³ : L.IsLocalization W
inst✝² : RF.IsRightDerivedFunctor α W
inst✝¹ : RF'.IsRightDerivedFunctor α' W
inst✝ : RF''.IsRightDerivedFunctor α'' W
τ : F ⟶ F'
X : C
⊢ α.app X ≫ (RF.rightDerivedNatTrans RF' α α' W τ).app (L.obj X) = τ.app X ≫ α'.app X
state_after: C : Type u_1
C' : Type ?u.42902
D : Type u_6
D' : Type ?u.42908
H : Type u_3
H' : Type ?u.42914
inst✝⁹ : Category.{u_4, u_1} C
inst✝⁸ : Category.{?u.42922, ?u.42902} C'
inst✝⁷ : Category.{u_5, u_6} D
inst✝⁶ : Category.{?u.42930, ?u.42908} D'
inst✝⁵ : Category.{u_2, u_3} H
inst✝⁴ : Category.{?u.42938, ?u.42914} H'
RF RF' RF'' : D ⥤ H
F F' F'' : C ⥤ H
e : F ≅ F'
L : C ⥤ D
α : F ⟶ L ⋙ RF
α' : F' ⟶ L ⋙ RF'
α'' : F'' ⟶ L ⋙ RF''
α'₂ : F ⟶ L ⋙ RF'
W : MorphismProperty C
inst✝³ : L.IsLocalization W
inst✝² : RF.IsRightDerivedFunctor α W
inst✝¹ : RF'.IsRightDerivedFunctor α' W
inst✝ : RF''.IsRightDerivedFunctor α'' W
τ : F ⟶ F'
X : C
⊢ α.app X ≫ (RF.rightDerivedDesc α W RF' (τ ≫ α')).app (L.obj X) = τ.app X ≫ α'.app X
tactic: dsimp only [rightDerivedNatTrans]
state_before: C : Type u_1
C' : Type ?u.42902
D : Type u_6
D' : Type ?u.42908
H : Type u_3
H' : Type ?u.42914
inst✝⁹ : Category.{u_4, u_1} C
inst✝⁸ : Category.{?u.42922, ?u.42902} C'
inst✝⁷ : Category.{u_5, u_6} D
inst✝⁶ : Category.{?u.42930, ?u.42908} D'
inst✝⁵ : Category.{u_2, u_3} H
inst✝⁴ : Category.{?u.42938, ?u.42914} H'
RF RF' RF'' : D ⥤ H
F F' F'' : C ⥤ H
e : F ≅ F'
L : C ⥤ D
α : F ⟶ L ⋙ RF
α' : F' ⟶ L ⋙ RF'
α'' : F'' ⟶ L ⋙ RF''
α'₂ : F ⟶ L ⋙ RF'
W : MorphismProperty C
inst✝³ : L.IsLocalization W
inst✝² : RF.IsRightDerivedFunctor α W
inst✝¹ : RF'.IsRightDerivedFunctor α' W
inst✝ : RF''.IsRightDerivedFunctor α'' W
τ : F ⟶ F'
X : C
⊢ α.app X ≫ (RF.rightDerivedDesc α W RF' (τ ≫ α')).app (L.obj X) = τ.app X ≫ α'.app X
state_after: no goals
tactic: simp
Theorem: InnerProductGeometry.angle_smul_left_of_pos
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean

Proof steps:
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x✝ y✝ x y : V
r : ℝ
hr : 0 < r
⊢ angle (r • x) y = angle x y
state_after: no goals
tactic: rw [angle_comm, angle_smul_right_of_pos y x hr, angle_comm]
Theorem: MeasureTheory.integral_add_compl₀
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝² : MeasurableSpace X
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f g : X → E
s t : Set X
μ ν : Measure X
l l' : Filter X
hs : NullMeasurableSet s μ
hfi : Integrable f μ
⊢ ∫ (x : X) in s, f x ∂μ + ∫ (x : X) in sᶜ, f x ∂μ = ∫ (x : X), f x ∂μ
state_after: no goals
tactic: rw [
    ← integral_union_ae disjoint_compl_right.aedisjoint hs.compl hfi.integrableOn hfi.integrableOn,
    union_compl_self, integral_univ]
Theorem: Nat.ofDigits_eq_foldr
File: Mathlib/Data/Nat/Digits.lean

Proof steps:
state_before: n : ℕ
α : Type u_1
inst✝ : Semiring α
b : α
L : List ℕ
⊢ ofDigits b L = List.foldr (fun x y => ↑x + b * y) 0 L
state_after: case nil
n : ℕ
α : Type u_1
inst✝ : Semiring α
b : α
⊢ ofDigits b [] = List.foldr (fun x y => ↑x + b * y) 0 []

case cons
n : ℕ
α : Type u_1
inst✝ : Semiring α
b : α
d : ℕ
L : List ℕ
ih : ofDigits b L = List.foldr (fun x y => ↑x + b * y) 0 L
⊢ ofDigits b (d :: L) = List.foldr (fun x y => ↑x + b * y) 0 (d :: L)
tactic: induction' L with d L ih