ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: ExteriorAlgebra.liftAlternating_algebraMap
File: Mathlib/LinearAlgebra/ExteriorAlgebra/OfAlternating.lean

Proof steps:
state_before: R : Type u_1
M : Type u_2
N : Type u_3
N' : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup N
inst✝³ : AddCommGroup N'
inst✝² : Module R M
inst✝¹ : Module R N
inst✝ : Module R N'
f : (i : ℕ) → M [⋀^Fin i]→ₗ[R] N
r : R
⊢ (liftAlternating f) ((algebraMap R (ExteriorAlgebra R M)) r) = r • (f 0) 0
state_after: no goals
tactic: rw [Algebra.algebraMap_eq_smul_one, map_smul, liftAlternating_one]
Theorem: ppow_mul_assoc
File: Mathlib/Algebra/Group/PNatPowAssoc.lean

Proof steps:
state_before: M : Type u_1
inst✝² : Mul M
inst✝¹ : Pow M ℕ+
inst✝ : PNatPowAssoc M
k m n : ℕ+
x : M
⊢ x ^ k * x ^ m * x ^ n = x ^ k * (x ^ m * x ^ n)
state_after: no goals
tactic: simp only [← ppow_add, add_assoc]
Theorem: LieHom.surjective_rangeRestrict
File: Mathlib/Algebra/Lie/Subalgebra.lean

Proof steps:
state_before: R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
⊢ Function.Surjective ⇑f.rangeRestrict
state_after: case mk
R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
y : L₂
hy : y ∈ f.range
⊢ ∃ a, f.rangeRestrict a = ⟨y, hy⟩
tactic: rintro ⟨y, hy⟩
state_before: case mk
R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
y : L₂
hy : y ∈ f.range
⊢ ∃ a, f.rangeRestrict a = ⟨y, hy⟩
state_after: case mk
R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
y : L₂
hy✝ : y ∈ f.range
hy : ∃ y_1, f y_1 = y
⊢ ∃ a, f.rangeRestrict a = ⟨y, hy✝⟩
tactic: erw [mem_range] at hy
state_before: case mk
R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
y : L₂
hy✝ : y ∈ f.range
hy : ∃ y_1, f y_1 = y
⊢ ∃ a, f.rangeRestrict a = ⟨y, hy✝⟩
state_after: case mk.intro
R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
x : L
hy : f x ∈ f.range
⊢ ∃ a, f.rangeRestrict a = ⟨f x, hy⟩
tactic: obtain ⟨x, rfl⟩ := hy
state_before: case mk.intro
R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
x : L
hy : f x ∈ f.range
⊢ ∃ a, f.rangeRestrict a = ⟨f x, hy⟩
state_after: case h
R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
x : L
hy : f x ∈ f.range
⊢ f.rangeRestrict x = ⟨f x, hy⟩
tactic: use x
state_before: case h
R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
x : L
hy : f x ∈ f.range
⊢ f.rangeRestrict x = ⟨f x, hy⟩
state_after: no goals
tactic: simp only [Subtype.mk_eq_mk, rangeRestrict_apply]
Theorem: Polynomial.one_comp
File: Mathlib/Algebra/Polynomial/Eval.lean

Proof steps:
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
⊢ comp 1 p = 1
state_after: no goals
tactic: rw [← C_1, C_comp]
Theorem: Submodule.map_subtype_top
File: Mathlib/Algebra/Module/Submodule/Range.lean

Proof steps:
state_before: R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
K : Type u_4
K₂ : Type u_5
M : Type u_6
M₂ : Type u_7
M₃ : Type u_8
V : Type u_9
V₂ : Type u_10
inst✝⁷ : Semiring R
inst✝⁶ : Semiring R₂
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M₂
inst✝³ : Module R M
inst✝² : Module R₂ M₂
p p' : Submodule R M
q : Submodule R₂ M₂
τ₁₂ : R →+* R₂
F : Type u_11
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F τ₁₂ M M₂
⊢ map p.subtype ⊤ = p
state_after: no goals
tactic: simp
Theorem: contMDiffOn_extChartAt_symm
File: Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
H : Type u_3
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝⁸ : TopologicalSpace M
inst✝⁷ : ChartedSpace H M
inst✝⁶ : SmoothManifoldWithCorners I M
E' : Type u_5
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝³ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : SmoothManifoldWithCorners I' M'
e : PartialHomeomorph M H
x✝ : M
m n : ℕ∞
x : M
⊢ ContMDiffOn 𝓘(𝕜, E) I n (↑(extChartAt I x).symm) (extChartAt I x).target
state_after: case h.e'_23
𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
H : Type u_3
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝⁸ : TopologicalSpace M
inst✝⁷ : ChartedSpace H M
inst✝⁶ : SmoothManifoldWithCorners I M
E' : Type u_5
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝³ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : SmoothManifoldWithCorners I' M'
e : PartialHomeomorph M H
x✝ : M
m n : ℕ∞
x : M
⊢ (extChartAt I x).target = ↑I '' (chartAt H x).target
tactic: convert contMDiffOn_extend_symm (chart_mem_maximalAtlas I x)
state_before: case h.e'_23
𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
H : Type u_3
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝⁸ : TopologicalSpace M
inst✝⁷ : ChartedSpace H M
inst✝⁶ : SmoothManifoldWithCorners I M
E' : Type u_5
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝³ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : SmoothManifoldWithCorners I' M'
e : PartialHomeomorph M H
x✝ : M
m n : ℕ∞
x : M
⊢ (extChartAt I x).target = ↑I '' (chartAt H x).target
state_after: no goals
tactic: rw [extChartAt_target, I.image_eq]
Theorem: solvableByRad.isIntegral
File: Mathlib/FieldTheory/AbelRuffini.lean

Proof steps:
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
α✝ : E
α : ↥(solvableByRad F E)
⊢ IsIntegral F α
state_after: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
α : E
⊢ ∀ (α : ↥(solvableByRad F E)), IsIntegral F α
tactic: revert α
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
α : E
⊢ ∀ (α : ↥(solvableByRad F E)), IsIntegral F α
state_after: case base
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
α : E
⊢ ∀ (α : F), IsIntegral F ((algebraMap F ↥(solvableByRad F E)) α)

case add
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
α : E
⊢ ∀ (α β : ↥(solvableByRad F E)), IsIntegral F α → IsIntegral F β → IsIntegral F (α + β)

case neg
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
α : E
⊢ ∀ (α : ↥(solvableByRad F E)), IsIntegral F α → IsIntegral F (-α)

case mul
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
α : E
⊢ ∀ (α β : ↥(solvableByRad F E)), IsIntegral F α → IsIntegral F β → IsIntegral F (α * β)

case inv
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
α : E
⊢ ∀ (α : ↥(solvableByRad F E)), IsIntegral F α → IsIntegral F α⁻¹

case rad
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
α : E
⊢ ∀ (α : ↥(solvableByRad F E)) (n : ℕ), n ≠ 0 → IsIntegral F (α ^ n) → IsIntegral F α
tactic: apply solvableByRad.induction
Theorem: Set.offDiag_eq_empty
File: Mathlib/Data/Set/Prod.lean

Proof steps:
state_before: α : Type u_1
s t : Set α
x : α × α
a : α
⊢ s.offDiag = ∅ ↔ s.Subsingleton
state_after: no goals
tactic: rw [← not_nonempty_iff_eq_empty, ← not_nontrivial_iff, offDiag_nonempty.not]
Theorem: Matrix.IsAdjMatrix.toGraph_adj
File: Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean

Proof steps:
state_before: V : Type u_1
α : Type u_2
β : Type u_3
A : Matrix V V α
inst✝¹ : MulZeroOneClass α
inst✝ : Nontrivial α
h : A.IsAdjMatrix
i j : V
hij : (fun i j => A i j = 1) i j
⊢ (fun i j => A i j = 1) j i
state_after: V : Type u_1
α : Type u_2
β : Type u_3
A : Matrix V V α
inst✝¹ : MulZeroOneClass α
inst✝ : Nontrivial α
h : A.IsAdjMatrix
i j : V
hij : (fun i j => A i j = 1) i j
⊢ A j i = 1
tactic: simp only
state_before: V : Type u_1
α : Type u_2
β : Type u_3
A : Matrix V V α
inst✝¹ : MulZeroOneClass α
inst✝ : Nontrivial α
h : A.IsAdjMatrix
i j : V
hij : (fun i j => A i j = 1) i j
⊢ A j i = 1
state_after: no goals
tactic: rwa [h.symm.apply i j]
state_before: V : Type u_1
α : Type u_2
β : Type u_3
A : Matrix V V α
inst✝¹ : MulZeroOneClass α
inst✝ : Nontrivial α
h : A.IsAdjMatrix
i : V
⊢ ¬(fun i j => A i j = 1) i i
state_after: no goals
tactic: simp [h]
Theorem: EulerProduct.one_sub_inv_eq_geometric_of_summable_norm
File: Mathlib/NumberTheory/EulerProduct/Basic.lean

Proof steps:
state_before: F : Type u_1
inst✝¹ : NormedField F
inst✝ : CompleteSpace F
f : ℕ →*₀ F
p : ℕ
hp : Nat.Prime p
hsum : Summable fun x => ‖f x‖
⊢ (1 - f p)⁻¹ = ∑' (e : ℕ), f (p ^ e)
state_after: F : Type u_1
inst✝¹ : NormedField F
inst✝ : CompleteSpace F
f : ℕ →*₀ F
p : ℕ
hp : Nat.Prime p
hsum : Summable fun x => ‖f x‖
⊢ (1 - f p)⁻¹ = ∑' (e : ℕ), f p ^ e
tactic: simp only [map_pow]
state_before: F : Type u_1
inst✝¹ : NormedField F
inst✝ : CompleteSpace F
f : ℕ →*₀ F
p : ℕ
hp : Nat.Prime p
hsum : Summable fun x => ‖f x‖
⊢ (1 - f p)⁻¹ = ∑' (e : ℕ), f p ^ e
state_after: F : Type u_1
inst✝¹ : NormedField F
inst✝ : CompleteSpace F
f : ℕ →*₀ F
p : ℕ
hp : Nat.Prime p
hsum : Summable fun x => ‖f x‖
⊢ Summable fun n => f p ^ n
tactic: refine (tsum_geometric_of_norm_lt_one <| summable_geometric_iff_norm_lt_one.mp ?_).symm
state_before: F : Type u_1
inst✝¹ : NormedField F
inst✝ : CompleteSpace F
f : ℕ →*₀ F
p : ℕ
hp : Nat.Prime p
hsum : Summable fun x => ‖f x‖
⊢ Summable fun n => f p ^ n
state_after: F : Type u_1
inst✝¹ : NormedField F
inst✝ : CompleteSpace F
f : ℕ →*₀ F
p : ℕ
hp : Nat.Prime p
hsum : Summable fun x => ‖f x‖
⊢ Summable fun a => ‖f p ^ a‖
tactic: refine Summable.of_norm ?_
state_before: F : Type u_1
inst✝¹ : NormedField F
inst✝ : CompleteSpace F
f : ℕ →*₀ F
p : ℕ
hp : Nat.Prime p
hsum : Summable fun x => ‖f x‖
⊢ Summable fun a => ‖f p ^ a‖
state_after: no goals
tactic: simpa only [Function.comp_def, map_pow]
    using hsum.comp_injective <| Nat.pow_right_injective hp.one_lt
Theorem: Filter.subseq_tendsto_of_neBot
File: Mathlib/Order/Filter/AtTopBot.lean

Proof steps:
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : Filter α
inst✝ : f.IsCountablyGenerated
u : ℕ → α
hx : (f ⊓ map u atTop).NeBot
⊢ ∃ θ, StrictMono θ ∧ Tendsto (u ∘ θ) atTop f
state_after: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : Filter α
inst✝ : f.IsCountablyGenerated
u : ℕ → α
hx : (comap u f ⊓ atTop).NeBot
⊢ ∃ θ, StrictMono θ ∧ Tendsto (u ∘ θ) atTop f
tactic: rw [← Filter.push_pull', map_neBot_iff] at hx
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : Filter α
inst✝ : f.IsCountablyGenerated
u : ℕ → α
hx : (comap u f ⊓ atTop).NeBot
⊢ ∃ θ, StrictMono θ ∧ Tendsto (u ∘ θ) atTop f
state_after: case intro
ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : Filter α
inst✝ : f.IsCountablyGenerated
u : ℕ → α
hx : (comap u f ⊓ atTop).NeBot
φ : ℕ → ℕ
hφ : Tendsto φ atTop (comap u f ⊓ atTop)
⊢ ∃ θ, StrictMono θ ∧ Tendsto (u ∘ θ) atTop f
tactic: rcases exists_seq_tendsto (comap u f ⊓ atTop) with ⟨φ, hφ⟩
state_before: case intro
ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : Filter α
inst✝ : f.IsCountablyGenerated
u : ℕ → α
hx : (comap u f ⊓ atTop).NeBot
φ : ℕ → ℕ
hφ : Tendsto φ atTop (comap u f ⊓ atTop)
⊢ ∃ θ, StrictMono θ ∧ Tendsto (u ∘ θ) atTop f
state_after: case intro
ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : Filter α
inst✝ : f.IsCountablyGenerated
u : ℕ → α
hx : (comap u f ⊓ atTop).NeBot
φ : ℕ → ℕ
hφ : Tendsto (u ∘ φ) atTop f ∧ Tendsto φ atTop atTop
⊢ ∃ θ, StrictMono θ ∧ Tendsto (u ∘ θ) atTop f
tactic: rw [tendsto_inf, tendsto_comap_iff] at hφ
state_before: case intro
ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : Filter α
inst✝ : f.IsCountablyGenerated
u : ℕ → α
hx : (comap u f ⊓ atTop).NeBot
φ : ℕ → ℕ
hφ : Tendsto (u ∘ φ) atTop f ∧ Tendsto φ atTop atTop
⊢ ∃ θ, StrictMono θ ∧ Tendsto (u ∘ θ) atTop f
state_after: case intro.intro.intro
ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : Filter α
inst✝ : f.IsCountablyGenerated
u : ℕ → α
hx : (comap u f ⊓ atTop).NeBot
φ : ℕ → ℕ
hφ : Tendsto (u ∘ φ) atTop f ∧ Tendsto φ atTop atTop
ψ : ℕ → ℕ
hψ : StrictMono ψ
hψφ : StrictMono (φ ∘ ψ)
⊢ ∃ θ, StrictMono θ ∧ Tendsto (u ∘ θ) atTop f
tactic: obtain ⟨ψ, hψ, hψφ⟩ : ∃ ψ : ℕ → ℕ, StrictMono ψ ∧ StrictMono (φ ∘ ψ) :=
    strictMono_subseq_of_tendsto_atTop hφ.2
state_before: case intro.intro.intro
ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : Filter α
inst✝ : f.IsCountablyGenerated
u : ℕ → α
hx : (comap u f ⊓ atTop).NeBot
φ : ℕ → ℕ
hφ : Tendsto (u ∘ φ) atTop f ∧ Tendsto φ atTop atTop
ψ : ℕ → ℕ
hψ : StrictMono ψ
hψφ : StrictMono (φ ∘ ψ)
⊢ ∃ θ, StrictMono θ ∧ Tendsto (u ∘ θ) atTop f
state_after: no goals
tactic: exact ⟨φ ∘ ψ, hψφ, hφ.1.comp hψ.tendsto_atTop⟩
Theorem: CategoryTheory.Iso.hom_inv_id_triangle_hom₁
File: Mathlib/CategoryTheory/Triangulated/Basic.lean

Proof steps:
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasShift C ℤ
T₁ T₂ T₃ A B : Triangle C
e : A ≅ B
⊢ e.hom.hom₁ ≫ e.inv.hom₁ = 𝟙 A.obj₁
state_after: no goals
tactic: rw [← comp_hom₁, e.hom_inv_id, id_hom₁]
Theorem: uniformity_eq_comap_neg_add_nhds_zero
File: Mathlib/Topology/Algebra/UniformGroup.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝² : UniformSpace α
inst✝¹ : Group α
inst✝ : UniformGroup α
⊢ 𝓤 α = comap (fun x => x.1⁻¹ * x.2) (𝓝 1)
state_after: α : Type u_1
β : Type u_2
inst✝² : UniformSpace α
inst✝¹ : Group α
inst✝ : UniformGroup α
⊢ comap (unop ∘ (fun x => x.2 / x.1) ∘ fun p => (op p.1, op p.2)) (𝓝 1) = comap (fun x => x.1⁻¹ * x.2) (𝓝 1)
tactic: rw [← comap_uniformity_mulOpposite, uniformity_eq_comap_nhds_one, ← op_one, ← comap_unop_nhds,
    comap_comap, comap_comap]
Theorem: MeasureTheory.restrict_withDensity
File: Mathlib/MeasureTheory/Measure/WithDensity.lean

Proof steps:
state_before: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
s : Set α
hs : MeasurableSet s
f : α → ℝ≥0∞
⊢ (μ.withDensity f).restrict s = (μ.restrict s).withDensity f
state_after: case h
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
s : Set α
hs : MeasurableSet s
f : α → ℝ≥0∞
t : Set α
ht : MeasurableSet t
⊢ ((μ.withDensity f).restrict s) t = ((μ.restrict s).withDensity f) t
tactic: ext1 t ht
state_before: case h
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
s : Set α
hs : MeasurableSet s
f : α → ℝ≥0∞
t : Set α
ht : MeasurableSet t
⊢ ((μ.withDensity f).restrict s) t = ((μ.restrict s).withDensity f) t
state_after: no goals
tactic: rw [restrict_apply ht, withDensity_apply _ ht, withDensity_apply _ (ht.inter hs),
    restrict_restrict ht]
Theorem: CategoryTheory.Cokleisli.Adjunction.fromCokleisli_map
File: Mathlib/CategoryTheory/Monad/Kleisli.lean

Proof steps:
state_before: C : Type u
inst✝ : Category.{v, u} C
U : Comonad C
X Y x✝ : Cokleisli U
f : X ⟶ Y
g : Y ⟶ x✝
⊢ { obj := fun X => U.obj X, map := fun {X x} f => U.δ.app X ≫ U.map f }.map (f ≫ g) =
    { obj := fun X => U.obj X, map := fun {X x} f => U.δ.app X ≫ U.map f }.map f ≫
      { obj := fun X => U.obj X, map := fun {X x} f => U.δ.app X ≫ U.map f }.map g
state_after: C : Type u
inst✝ : Category.{v, u} C
U : Comonad C
X Y x✝ : Cokleisli U
f : X ⟶ Y
g : Y ⟶ x✝
⊢ U.δ.app X ≫ U.map (U.δ.app X ≫ U.map f ≫ g) = (U.δ.app X ≫ U.map f) ≫ U.δ.app Y ≫ U.map g
tactic: change U.δ.app X ≫ U.map (U.δ.app X ≫ U.map f ≫ g) =
      (U.δ.app X ≫ U.map f) ≫ (U.δ.app Y ≫ U.map g)
state_before: C : Type u
inst✝ : Category.{v, u} C
U : Comonad C
X Y x✝ : Cokleisli U
f : X ⟶ Y
g : Y ⟶ x✝
⊢ U.δ.app X ≫ U.map (U.δ.app X ≫ U.map f ≫ g) = (U.δ.app X ≫ U.map f) ≫ U.δ.app Y ≫ U.map g
state_after: C : Type u
inst✝ : Category.{v, u} C
U : Comonad C
X Y x✝ : Cokleisli U
f : X ⟶ Y
g : Y ⟶ x✝
⊢ ((U.δ.app X ≫ U.map (U.δ.app X)) ≫ U.map (U.map f)) ≫ U.map g = ((U.δ.app X ≫ U.map f) ≫ U.δ.app Y) ≫ U.map g
tactic: simp only [Functor.map_comp, ← Category.assoc]
state_before: C : Type u
inst✝ : Category.{v, u} C
U : Comonad C
X Y x✝ : Cokleisli U
f : X ⟶ Y
g : Y ⟶ x✝
⊢ ((U.δ.app X ≫ U.map (U.δ.app X)) ≫ U.map (U.map f)) ≫ U.map g = ((U.δ.app X ≫ U.map f) ≫ U.δ.app Y) ≫ U.map g
state_after: C : Type u
inst✝ : Category.{v, u} C
U : Comonad C
X Y x✝ : Cokleisli U
f : X ⟶ Y
g : Y ⟶ x✝
⊢ ((U.δ.app X ≫ U.δ.app (U.obj X)) ≫ U.map (U.map f)) ≫ U.map g = ((U.δ.app X ≫ U.map f) ≫ U.δ.app Y) ≫ U.map g
tactic: rw [Comonad.coassoc]
state_before: C : Type u
inst✝ : Category.{v, u} C
U : Comonad C
X Y x✝ : Cokleisli U
f : X ⟶ Y
g : Y ⟶ x✝
⊢ ((U.δ.app X ≫ U.δ.app (U.obj X)) ≫ U.map (U.map f)) ≫ U.map g = ((U.δ.app X ≫ U.map f) ≫ U.δ.app Y) ≫ U.map g
state_after: no goals
tactic: simp only [Category.assoc, NatTrans.naturality, Functor.comp_map]
Theorem: _private.Mathlib.NumberTheory.Rayleigh.0.Beatty.hit_or_miss'
File: Mathlib/NumberTheory/Rayleigh.lean

Proof steps:
state_before: r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
⊢ j ∈ {x | ∃ k, beattySeq' r k = x} ∨ ∃ k, ↑k ≤ ↑j / r ∧ (↑j + 1) / r < ↑k + 1
state_after: case inl
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : ↑⌊(↑j + 1) / r⌋ * r ≤ ↑j
⊢ j ∈ {x | ∃ k, beattySeq' r k = x} ∨ ∃ k, ↑k ≤ ↑j / r ∧ (↑j + 1) / r < ↑k + 1

case inr
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : ↑⌊(↑j + 1) / r⌋ * r > ↑j
⊢ j ∈ {x | ∃ k, beattySeq' r k = x} ∨ ∃ k, ↑k ≤ ↑j / r ∧ (↑j + 1) / r < ↑k + 1
tactic: cases le_or_gt (⌊(j + 1) / r⌋ * r) j
Theorem: CategoryTheory.LocalizerMorphism.isIso_iff_of_hasLeftResolutions
File: Mathlib/CategoryTheory/Localization/Resolution.lean

Proof steps:
state_before: C₁ : Type u_1
C₂ : Type u_2
D₂ : Type u_3
H : Type u_4
inst✝⁵ : Category.{u_5, u_1} C₁
inst✝⁴ : Category.{u_6, u_2} C₂
inst✝³ : Category.{u_7, u_3} D₂
inst✝² : Category.{u_8, u_4} H
W₁ : MorphismProperty C₁
W₂ : MorphismProperty C₂
Φ : LocalizerMorphism W₁ W₂
L₂ : C₂ ⥤ D₂
inst✝¹ : L₂.IsLocalization W₂
inst✝ : Φ.HasLeftResolutions
F G : D₂ ⥤ H
α : F ⟶ G
⊢ IsIso α ↔ ∀ (X₁ : C₁), IsIso (α.app (L₂.obj (Φ.functor.obj X₁)))
state_after: case mp
C₁ : Type u_1
C₂ : Type u_2
D₂ : Type u_3
H : Type u_4
inst✝⁵ : Category.{u_5, u_1} C₁
inst✝⁴ : Category.{u_6, u_2} C₂
inst✝³ : Category.{u_7, u_3} D₂
inst✝² : Category.{u_8, u_4} H
W₁ : MorphismProperty C₁
W₂ : MorphismProperty C₂
Φ : LocalizerMorphism W₁ W₂
L₂ : C₂ ⥤ D₂
inst✝¹ : L₂.IsLocalization W₂
inst✝ : Φ.HasLeftResolutions
F G : D₂ ⥤ H
α : F ⟶ G
⊢ IsIso α → ∀ (X₁ : C₁), IsIso (α.app (L₂.obj (Φ.functor.obj X₁)))

case mpr
C₁ : Type u_1
C₂ : Type u_2
D₂ : Type u_3
H : Type u_4
inst✝⁵ : Category.{u_5, u_1} C₁
inst✝⁴ : Category.{u_6, u_2} C₂
inst✝³ : Category.{u_7, u_3} D₂
inst✝² : Category.{u_8, u_4} H
W₁ : MorphismProperty C₁
W₂ : MorphismProperty C₂
Φ : LocalizerMorphism W₁ W₂
L₂ : C₂ ⥤ D₂
inst✝¹ : L₂.IsLocalization W₂
inst✝ : Φ.HasLeftResolutions
F G : D₂ ⥤ H
α : F ⟶ G
⊢ (∀ (X₁ : C₁), IsIso (α.app (L₂.obj (Φ.functor.obj X₁)))) → IsIso α
tactic: constructor
Theorem: div_nonneg_iff
File: Mathlib/Algebra/Order/Field/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
⊢ 0 ≤ a / b ↔ 0 ≤ a ∧ 0 ≤ b ∨ a ≤ 0 ∧ b ≤ 0
state_after: no goals
tactic: simp [division_def, mul_nonneg_iff]
Theorem: LinearMap.polyCharpolyAux_eval_eq_toMatrix_charpoly_coeff
File: Mathlib/Algebra/Module/LinearMap/Polynomial.lean

Proof steps:
state_before: R : Type u_1
L : Type u_2
M : Type u_3
n : Type u_4
ι : Type u_5
ι' : Type u_6
ιM : Type u_7
inst✝¹⁰ : CommRing R
inst✝⁹ : AddCommGroup L
inst✝⁸ : Module R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
φ : L →ₗ[R] Module.End R M
inst✝⁵ : Fintype ι
inst✝⁴ : Fintype ι'
inst✝³ : Fintype ιM
inst✝² : DecidableEq ι
inst✝¹ : DecidableEq ι'
inst✝ : DecidableEq ιM
b : Basis ι R L
bₘ : Basis ιM R M
x : L
i : ℕ
⊢ (MvPolynomial.eval ⇑(b.repr x)) ((φ.polyCharpolyAux b bₘ).coeff i) = ((toMatrix bₘ bₘ) (φ x)).charpoly.coeff i
state_after: no goals
tactic: simp [← polyCharpolyAux_map_eq_toMatrix_charpoly φ b bₘ x]
Theorem: Set.nonempty_sUnion
File: Mathlib/Data/Set/Lattice.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
S : Set (Set α)
⊢ (⋃₀ S).Nonempty ↔ ∃ s ∈ S, s.Nonempty
state_after: no goals
tactic: simp [nonempty_iff_ne_empty]
Theorem: Int.toNat_lt_toNat
File: Mathlib/Data/Int/Defs.lean

Proof steps:
state_before: a✝ b✝ c d m n a b : ℤ
hb : 0 < b
h : a.toNat < b.toNat
⊢ a < b
state_after: case ofNat
a b✝ c d m n b : ℤ
hb : 0 < b
a✝ : ℕ
h : (ofNat a✝).toNat < b.toNat
⊢ ofNat a✝ < b

case negSucc
a b✝ c d m n b : ℤ
hb : 0 < b
a✝ : ℕ
h : -[a✝+1].toNat < b.toNat
⊢ -[a✝+1] < b
tactic: cases a
state_before: case ofNat
a b✝ c d m n b : ℤ
hb : 0 < b
a✝ : ℕ
h : (ofNat a✝).toNat < b.toNat
⊢ ofNat a✝ < b

case negSucc
a b✝ c d m n b : ℤ
hb : 0 < b
a✝ : ℕ
h : -[a✝+1].toNat < b.toNat
⊢ -[a✝+1] < b
state_after: no goals
tactic: exacts [lt_toNat.1 h, Int.lt_trans (neg_of_sign_eq_neg_one rfl) hb]
state_before: a✝ b✝ c d m n a b : ℤ
hb : 0 < b
h : a < b
⊢ a.toNat < b.toNat
state_after: a✝ b✝ c d m n a b : ℤ
hb : 0 < b
h : a < b
⊢ ↑a.toNat < b
tactic: rw [lt_toNat]
state_before: a✝ b✝ c d m n a b : ℤ
hb : 0 < b
h : a < b
⊢ ↑a.toNat < b
state_after: case ofNat
a b✝ c d m n b : ℤ
hb : 0 < b
a✝ : ℕ
h : ofNat a✝ < b
⊢ ↑(ofNat a✝).toNat < b

case negSucc
a b✝ c d m n b : ℤ
hb : 0 < b
a✝ : ℕ
h : -[a✝+1] < b
⊢ ↑-[a✝+1].toNat < b
tactic: cases a
state_before: case ofNat
a b✝ c d m n b : ℤ
hb : 0 < b
a✝ : ℕ
h : ofNat a✝ < b
⊢ ↑(ofNat a✝).toNat < b

case negSucc
a b✝ c d m n b : ℤ
hb : 0 < b
a✝ : ℕ
h : -[a✝+1] < b
⊢ ↑-[a✝+1].toNat < b
state_after: no goals
tactic: exacts [h, hb]
Theorem: BoundedContinuousFunction.apply_le_nndist_zero
File: Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean

Proof steps:
state_before: X : Type u_1
inst✝ : TopologicalSpace X
f : X →ᵇ ℝ≥0
x : X
⊢ f x ≤ nndist 0 f
state_after: case h.e'_3
X : Type u_1
inst✝ : TopologicalSpace X
f : X →ᵇ ℝ≥0
x : X
⊢ f x = nndist (0 x) (f x)
tactic: convert nndist_coe_le_nndist x
state_before: case h.e'_3
X : Type u_1
inst✝ : TopologicalSpace X
f : X →ᵇ ℝ≥0
x : X
⊢ f x = nndist (0 x) (f x)
state_after: no goals
tactic: simp only [coe_zero, Pi.zero_apply, NNReal.nndist_zero_eq_val]
Theorem: map_div_le_add
File: Mathlib/Algebra/Order/Hom/Basic.lean

Proof steps:
state_before: ι : Type u_1
F : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
inst✝³ : FunLike F α β
inst✝² : Group α
inst✝¹ : OrderedAddCommMonoid β
inst✝ : GroupSeminormClass F α β
f : F
x y : α
⊢ f (x / y) ≤ f x + f y
state_after: ι : Type u_1
F : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
inst✝³ : FunLike F α β
inst✝² : Group α
inst✝¹ : OrderedAddCommMonoid β
inst✝ : GroupSeminormClass F α β
f : F
x y : α
⊢ f (x * y⁻¹) ≤ f x + f y⁻¹
tactic: rw [div_eq_mul_inv, ← map_inv_eq_map f y]
state_before: ι : Type u_1
F : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
inst✝³ : FunLike F α β
inst✝² : Group α
inst✝¹ : OrderedAddCommMonoid β
inst✝ : GroupSeminormClass F α β
f : F
x y : α
⊢ f (x * y⁻¹) ≤ f x + f y⁻¹
state_after: no goals
tactic: exact map_mul_le_add _ _ _