1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Composition.length_gather
File: Mathlib/Analysis/Analytic/Composition.lean

tactic: rw [length_map, length_splitWrtComposition]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup H
inst✝ : NormedSpace 𝕜 H
n : ℕ
a : Composition n
b : Composition a.length
⊢ (List.map sum (a.blocks.splitWrtComposition b)).length = b.blocks.length
state_after: no goals
Theorem: MeasureTheory.ae_restrict_iff'₀
File: Mathlib/MeasureTheory/Measure/Restrict.lean

tactic: simp only [ae_iff, ← compl_setOf, restrict_apply₀' hs]
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hs : NullMeasurableSet s μ
⊢ (∀ᵐ (x : α) ∂μ.restrict s, p x) ↔ ∀ᵐ (x : α) ∂μ, x ∈ s → p x
state_after: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hs : NullMeasurableSet s μ
⊢ μ ({x | p x}ᶜ ∩ s) = 0 ↔ μ {x | x ∈ s → p x}ᶜ = 0

tactic: rw [iff_iff_eq]
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hs : NullMeasurableSet s μ
⊢ μ ({x | p x}ᶜ ∩ s) = 0 ↔ μ {x | x ∈ s → p x}ᶜ = 0
state_after: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hs : NullMeasurableSet s μ
⊢ (μ ({x | p x}ᶜ ∩ s) = 0) = (μ {x | x ∈ s → p x}ᶜ = 0)

tactic: congr with x
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hs : NullMeasurableSet s μ
⊢ (μ ({x | p x}ᶜ ∩ s) = 0) = (μ {x | x ∈ s → p x}ᶜ = 0)
state_after: case e_a.h.e_6.h.h
R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hs : NullMeasurableSet s μ
x : α
⊢ x ∈ {x | p x}ᶜ ∩ s ↔ x ∈ {x | x ∈ s → p x}ᶜ

tactic: simp [and_comm]
state_before: case e_a.h.e_6.h.h
R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hs : NullMeasurableSet s μ
x : α
⊢ x ∈ {x | p x}ᶜ ∩ s ↔ x ∈ {x | x ∈ s → p x}ᶜ
state_after: no goals
Theorem: Equiv.Perm.support_swap_iff
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: refine ⟨fun h => ?_, fun h => support_swap h⟩
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x y : α
⊢ (swap x y).support = {x, y} ↔ x ≠ y
state_after: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x y : α
h : (swap x y).support = {x, y}
⊢ x ≠ y

tactic: rintro rfl
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x y : α
h : (swap x y).support = {x, y}
⊢ x ≠ y
state_after: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x : α
h : (swap x x).support = {x, x}
⊢ False

tactic: simp [Finset.ext_iff] at h
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x : α
h : (swap x x).support = {x, x}
⊢ False
state_after: no goals
Theorem: Complex.comap_exp_nhds_zero
File: Mathlib/Analysis/SpecialFunctions/Exp.lean

tactic: rw [Real.comap_exp_nhds_zero]
state_before: ⊢ comap re (comap Real.exp (𝓝 0)) = comap re atBot
state_after: no goals
Theorem: Polynomial.algHom_eval₂_algebraMap
File: Mathlib/Algebra/Polynomial/AlgebraMap.lean

tactic: simp only [eval₂_eq_sum, sum_def]
state_before: R✝ : Type u
S : Type v
T : Type w
A✝ : Type z
A' : Type u_1
B✝ : Type u_2
a✝ b : R✝
n : ℕ
inst✝⁹ : CommSemiring R✝
inst✝⁸ : Semiring A✝
inst✝⁷ : Semiring B✝
inst✝⁶ : Algebra R✝ A✝
inst✝⁵ : Algebra R✝ B✝
p✝ q r : R✝[X]
R : Type u_3
A : Type u_4
B : Type u_5
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Semiring B
inst✝¹ : Algebra R A
inst✝ : Algebra R B
p : R[X]
f : A →ₐ[R] B
a : A
⊢ f (eval₂ (algebraMap R A) a p) = eval₂ (algebraMap R B) (f a) p
state_after: R✝ : Type u
S : Type v
T : Type w
A✝ : Type z
A' : Type u_1
B✝ : Type u_2
a✝ b : R✝
n : ℕ
inst✝⁹ : CommSemiring R✝
inst✝⁸ : Semiring A✝
inst✝⁷ : Semiring B✝
inst✝⁶ : Algebra R✝ A✝
inst✝⁵ : Algebra R✝ B✝
p✝ q r : R✝[X]
R : Type u_3
A : Type u_4
B : Type u_5
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Semiring B
inst✝¹ : Algebra R A
inst✝ : Algebra R B
p : R[X]
f : A →ₐ[R] B
a : A
⊢ f (∑ n ∈ p.support, (algebraMap R A) (p.coeff n) * a ^ n) = ∑ n ∈ p.support, (algebraMap R B) (p.coeff n) * f a ^ n

tactic: simp only [f.map_sum, f.map_mul, f.map_pow, eq_intCast, map_intCast, AlgHom.commutes]
state_before: R✝ : Type u
S : Type v
T : Type w
A✝ : Type z
A' : Type u_1
B✝ : Type u_2
a✝ b : R✝
n : ℕ
inst✝⁹ : CommSemiring R✝
inst✝⁸ : Semiring A✝
inst✝⁷ : Semiring B✝
inst✝⁶ : Algebra R✝ A✝
inst✝⁵ : Algebra R✝ B✝
p✝ q r : R✝[X]
R : Type u_3
A : Type u_4
B : Type u_5
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Semiring B
inst✝¹ : Algebra R A
inst✝ : Algebra R B
p : R[X]
f : A →ₐ[R] B
a : A
⊢ f (∑ n ∈ p.support, (algebraMap R A) (p.coeff n) * a ^ n) = ∑ n ∈ p.support, (algebraMap R B) (p.coeff n) * f a ^ n
state_after: no goals
Theorem: ModelWithCorners.range_prod
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: simp_rw [← ModelWithCorners.target_eq]
state_before: 𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
E' : Type u_3
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : NormedSpace 𝕜 E'
F : Type u_4
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
F' : Type u_5
inst✝⁵ : NormedAddCommGroup F'
inst✝⁴ : NormedSpace 𝕜 F'
H : Type u_6
inst✝³ : TopologicalSpace H
H' : Type u_7
inst✝² : TopologicalSpace H'
G : Type u_8
inst✝¹ : TopologicalSpace G
G' : Type u_9
inst✝ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
J : ModelWithCorners 𝕜 F G
⊢ range ↑(I.prod J) = range ↑I ×ˢ range ↑J
state_after: 𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
E' : Type u_3
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : NormedSpace 𝕜 E'
F : Type u_4
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
F' : Type u_5
inst✝⁵ : NormedAddCommGroup F'
inst✝⁴ : NormedSpace 𝕜 F'
H : Type u_6
inst✝³ : TopologicalSpace H
H' : Type u_7
inst✝² : TopologicalSpace H'
G : Type u_8
inst✝¹ : TopologicalSpace G
G' : Type u_9
inst✝ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
J : ModelWithCorners 𝕜 F G
⊢ (I.prod J).target = I.target ×ˢ J.target

tactic: rfl
state_before: 𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
E' : Type u_3
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : NormedSpace 𝕜 E'
F : Type u_4
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
F' : Type u_5
inst✝⁵ : NormedAddCommGroup F'
inst✝⁴ : NormedSpace 𝕜 F'
H : Type u_6
inst✝³ : TopologicalSpace H
H' : Type u_7
inst✝² : TopologicalSpace H'
G : Type u_8
inst✝¹ : TopologicalSpace G
G' : Type u_9
inst✝ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
J : ModelWithCorners 𝕜 F G
⊢ (I.prod J).target = I.target ×ˢ J.target
state_after: no goals
Theorem: MeasurableSpace.DynkinSystem.has_iUnion
File: Mathlib/MeasureTheory/PiSystem.lean

tactic: cases nonempty_encodable β
state_before: α : Type u_1
d : DynkinSystem α
β : Type u_2
inst✝ : Countable β
f : β → Set α
hd : Pairwise (Disjoint on f)
h : ∀ (i : β), d.Has (f i)
⊢ d.Has (⋃ i, f i)
state_after: case intro
α : Type u_1
d : DynkinSystem α
β : Type u_2
inst✝ : Countable β
f : β → Set α
hd : Pairwise (Disjoint on f)
h : ∀ (i : β), d.Has (f i)
val✝ : Encodable β
⊢ d.Has (⋃ i, f i)

tactic: rw [← Encodable.iUnion_decode₂]
state_before: case intro
α : Type u_1
d : DynkinSystem α
β : Type u_2
inst✝ : Countable β
f : β → Set α
hd : Pairwise (Disjoint on f)
h : ∀ (i : β), d.Has (f i)
val✝ : Encodable β
⊢ d.Has (⋃ i, f i)
state_after: case intro
α : Type u_1
d : DynkinSystem α
β : Type u_2
inst✝ : Countable β
f : β → Set α
hd : Pairwise (Disjoint on f)
h : ∀ (i : β), d.Has (f i)
val✝ : Encodable β
⊢ d.Has (⋃ i, ⋃ b ∈ Encodable.decode₂ β i, f b)

tactic: exact
  d.has_iUnion_nat (Encodable.iUnion_decode₂_disjoint_on hd) fun n =>
    Encodable.iUnion_decode₂_cases d.has_empty h
state_before: case intro
α : Type u_1
d : DynkinSystem α
β : Type u_2
inst✝ : Countable β
f : β → Set α
hd : Pairwise (Disjoint on f)
h : ∀ (i : β), d.Has (f i)
val✝ : Encodable β
⊢ d.Has (⋃ i, ⋃ b ∈ Encodable.decode₂ β i, f b)
state_after: no goals
Theorem: split_by_characteristic_localRing
File: Mathlib/Algebra/CharP/MixedCharZero.lean

tactic: refine split_by_characteristic R ?_ h_equal h_mixed
state_before: R : Type u_1
inst✝¹ : CommRing R
P : Prop
inst✝ : LocalRing R
h_pos : ∀ (p : ℕ), IsPrimePow p → CharP R p → P
h_equal : Algebra ℚ R → P
h_mixed : ∀ (p : ℕ), Nat.Prime p → MixedCharZero R p → P
⊢ P
state_after: R : Type u_1
inst✝¹ : CommRing R
P : Prop
inst✝ : LocalRing R
h_pos : ∀ (p : ℕ), IsPrimePow p → CharP R p → P
h_equal : Algebra ℚ R → P
h_mixed : ∀ (p : ℕ), Nat.Prime p → MixedCharZero R p → P
⊢ ∀ (p : ℕ), p ≠ 0 → CharP R p → P

tactic: intro p p_pos p_char
state_before: R : Type u_1
inst✝¹ : CommRing R
P : Prop
inst✝ : LocalRing R
h_pos : ∀ (p : ℕ), IsPrimePow p → CharP R p → P
h_equal : Algebra ℚ R → P
h_mixed : ∀ (p : ℕ), Nat.Prime p → MixedCharZero R p → P
⊢ ∀ (p : ℕ), p ≠ 0 → CharP R p → P
state_after: R : Type u_1
inst✝¹ : CommRing R
P : Prop
inst✝ : LocalRing R
h_pos : ∀ (p : ℕ), IsPrimePow p → CharP R p → P
h_equal : Algebra ℚ R → P
h_mixed : ∀ (p : ℕ), Nat.Prime p → MixedCharZero R p → P
p : ℕ
p_pos : p ≠ 0
p_char : CharP R p
⊢ P

tactic: have p_ppow : IsPrimePow (p : ℕ) := or_iff_not_imp_left.mp (charP_zero_or_prime_power R p) p_pos
state_before: R : Type u_1
inst✝¹ : CommRing R
P : Prop
inst✝ : LocalRing R
h_pos : ∀ (p : ℕ), IsPrimePow p → CharP R p → P
h_equal : Algebra ℚ R → P
h_mixed : ∀ (p : ℕ), Nat.Prime p → MixedCharZero R p → P
p : ℕ
p_pos : p ≠ 0
p_char : CharP R p
⊢ P
state_after: R : Type u_1
inst✝¹ : CommRing R
P : Prop
inst✝ : LocalRing R
h_pos : ∀ (p : ℕ), IsPrimePow p → CharP R p → P
h_equal : Algebra ℚ R → P
h_mixed : ∀ (p : ℕ), Nat.Prime p → MixedCharZero R p → P
p : ℕ
p_pos : p ≠ 0
p_char : CharP R p
p_ppow : IsPrimePow p
⊢ P

tactic: exact h_pos p p_ppow p_char
state_before: R : Type u_1
inst✝¹ : CommRing R
P : Prop
inst✝ : LocalRing R
h_pos : ∀ (p : ℕ), IsPrimePow p → CharP R p → P
h_equal : Algebra ℚ R → P
h_mixed : ∀ (p : ℕ), Nat.Prime p → MixedCharZero R p → P
p : ℕ
p_pos : p ≠ 0
p_char : CharP R p
p_ppow : IsPrimePow p
⊢ P
state_after: no goals
Theorem: MeasureTheory.integral_prod_symm
File: Mathlib/MeasureTheory/Constructions/Prod/Integral.lean

tactic: rw [← integral_prod_swap f]
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝¹⁰ : MeasurableSpace α
inst✝⁹ : MeasurableSpace α'
inst✝⁸ : MeasurableSpace β
inst✝⁷ : MeasurableSpace β'
inst✝⁶ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : SigmaFinite ν
inst✝³ : NormedSpace ℝ E
inst✝² : SigmaFinite μ
E' : Type u_7
inst✝¹ : NormedAddCommGroup E'
inst✝ : NormedSpace ℝ E'
f : α × β → E
hf : Integrable f (μ.prod ν)
⊢ ∫ (z : α × β), f z ∂μ.prod ν = ∫ (y : β), ∫ (x : α), f (x, y) ∂μ ∂ν
state_after: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝¹⁰ : MeasurableSpace α
inst✝⁹ : MeasurableSpace α'
inst✝⁸ : MeasurableSpace β
inst✝⁷ : MeasurableSpace β'
inst✝⁶ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : SigmaFinite ν
inst✝³ : NormedSpace ℝ E
inst✝² : SigmaFinite μ
E' : Type u_7
inst✝¹ : NormedAddCommGroup E'
inst✝ : NormedSpace ℝ E'
f : α × β → E
hf : Integrable f (μ.prod ν)
⊢ ∫ (z : β × α), f z.swap ∂ν.prod μ = ∫ (y : β), ∫ (x : α), f (x, y) ∂μ ∂ν

tactic: exact integral_prod _ hf.swap
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝¹⁰ : MeasurableSpace α
inst✝⁹ : MeasurableSpace α'
inst✝⁸ : MeasurableSpace β
inst✝⁷ : MeasurableSpace β'
inst✝⁶ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : SigmaFinite ν
inst✝³ : NormedSpace ℝ E
inst✝² : SigmaFinite μ
E' : Type u_7
inst✝¹ : NormedAddCommGroup E'
inst✝ : NormedSpace ℝ E'
f : α × β → E
hf : Integrable f (μ.prod ν)
⊢ ∫ (z : β × α), f z.swap ∂ν.prod μ = ∫ (y : β), ∫ (x : α), f (x, y) ∂μ ∂ν
state_after: no goals
Theorem: MeasureTheory.Measure.haar.haarContent_outerMeasure_self_pos
File: Mathlib/MeasureTheory/Measure/Haar/Basic.lean

tactic: refine zero_lt_one.trans_le ?_
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
⊢ 0 < (haarContent K₀).outerMeasure ↑K₀
state_after: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
⊢ 1 ≤ (haarContent K₀).outerMeasure ↑K₀

tactic: rw [Content.outerMeasure_eq_iInf]
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
⊢ 1 ≤ (haarContent K₀).outerMeasure ↑K₀
state_after: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
⊢ 1 ≤ ⨅ U, ⨅ (hU : IsOpen U), ⨅ (_ : ↑K₀ ⊆ U), (haarContent K₀).innerContent { carrier := U, is_open' := hU }

tactic: refine le_iInf₂ fun U hU => le_iInf fun hK₀ => le_trans ?_ <| le_iSup₂ K₀.toCompacts hK₀
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
⊢ 1 ≤ ⨅ U, ⨅ (hU : IsOpen U), ⨅ (_ : ↑K₀ ⊆ U), (haarContent K₀).innerContent { carrier := U, is_open' := hU }
state_after: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
U : Set G
hU : IsOpen U
hK₀ : ↑K₀ ⊆ U
⊢ 1 ≤ (fun s => ↑((haarContent K₀).toFun s)) K₀.toCompacts

tactic: exact haarContent_self.ge
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
U : Set G
hU : IsOpen U
hK₀ : ↑K₀ ⊆ U
⊢ 1 ≤ (fun s => ↑((haarContent K₀).toFun s)) K₀.toCompacts
state_after: no goals
Theorem: Finset.prod_Ico_eq_prod_range
File: Mathlib/Algebra/BigOperators/Intervals.lean

tactic: by_cases h : m ≤ n
state_before: α : Type u_1
M : Type u_2
inst✝ : CommMonoid M
s₂ s₁ s : Finset α
a : α
g f✝ : α → M
f : ℕ → M
m n : ℕ
⊢ ∏ k ∈ Ico m n, f k = ∏ k ∈ range (n - m), f (m + k)
state_after: case pos
α : Type u_1
M : Type u_2
inst✝ : CommMonoid M
s₂ s₁ s : Finset α
a : α
g f✝ : α → M
f : ℕ → M
m n : ℕ
h : m ≤ n
⊢ ∏ k ∈ Ico m n, f k = ∏ k ∈ range (n - m), f (m + k)

case neg
α : Type u_1
M : Type u_2
inst✝ : CommMonoid M
s₂ s₁ s : Finset α
a : α
g f✝ : α → M
f : ℕ → M
m n : ℕ
h : ¬m ≤ n
⊢ ∏ k ∈ Ico m n, f k = ∏ k ∈ range (n - m), f (m + k)

tactic: rw [← Nat.Ico_zero_eq_range, prod_Ico_add, zero_add, tsub_add_cancel_of_le h]
state_before: case pos
α : Type u_1
M : Type u_2
inst✝ : CommMonoid M
s₂ s₁ s : Finset α
a : α
g f✝ : α → M
f : ℕ → M
m n : ℕ
h : m ≤ n
⊢ ∏ k ∈ Ico m n, f k = ∏ k ∈ range (n - m), f (m + k)
state_after: no goals

tactic: replace h : n ≤ m := le_of_not_ge h
state_before: case neg
α : Type u_1
M : Type u_2
inst✝ : CommMonoid M
s₂ s₁ s : Finset α
a : α
g f✝ : α → M
f : ℕ → M
m n : ℕ
h : ¬m ≤ n
⊢ ∏ k ∈ Ico m n, f k = ∏ k ∈ range (n - m), f (m + k)
state_after: case neg
α : Type u_1
M : Type u_2
inst✝ : CommMonoid M
s₂ s₁ s : Finset α
a : α
g f✝ : α → M
f : ℕ → M
m n : ℕ
h : n ≤ m
⊢ ∏ k ∈ Ico m n, f k = ∏ k ∈ range (n - m), f (m + k)

tactic: rw [Ico_eq_empty_of_le h, tsub_eq_zero_iff_le.mpr h, range_zero, prod_empty, prod_empty]
state_before: case neg
α : Type u_1
M : Type u_2
inst✝ : CommMonoid M
s₂ s₁ s : Finset α
a : α
g f✝ : α → M
f : ℕ → M
m n : ℕ
h : n ≤ m
⊢ ∏ k ∈ Ico m n, f k = ∏ k ∈ range (n - m), f (m + k)
state_after: no goals
Theorem: Zsqrtd.add_le_add_left
File: Mathlib/NumberTheory/Zsqrtd/Basic.lean

tactic: rw [add_sub_add_left_eq_sub]
state_before: d : ℕ
a b : ℤ√↑d
ab : a ≤ b
c : ℤ√↑d
⊢ (c + b - (c + a)).Nonneg
state_after: d : ℕ
a b : ℤ√↑d
ab : a ≤ b
c : ℤ√↑d
⊢ (b - a).Nonneg

tactic: exact ab
state_before: d : ℕ
a b : ℤ√↑d
ab : a ≤ b
c : ℤ√↑d
⊢ (b - a).Nonneg
state_after: no goals
Theorem: BoxIntegral.Box.dist_le_distortion_mul
File: Mathlib/Analysis/BoxIntegral/Box/Basic.lean

tactic: have A : I.lower i - I.upper i < 0 := sub_neg.2 (I.lower_lt_upper i)
state_before: ι : Type u_1
I✝ J : Box ι
x y : ι → ℝ
inst✝ : Fintype ι
I : Box ι
i : ι
⊢ dist I.lower I.upper ≤ ↑I.distortion * (I.upper i - I.lower i)
state_after: ι : Type u_1
I✝ J : Box ι
x y : ι → ℝ
inst✝ : Fintype ι
I : Box ι
i : ι
A : I.lower i - I.upper i < 0
⊢ dist I.lower I.upper ≤ ↑I.distortion * (I.upper i - I.lower i)

tactic: simpa only [← NNReal.coe_le_coe, ← dist_nndist, NNReal.coe_mul, Real.dist_eq, abs_of_neg A,
  neg_sub] using I.nndist_le_distortion_mul i
state_before: ι : Type u_1
I✝ J : Box ι
x y : ι → ℝ
inst✝ : Fintype ι
I : Box ι
i : ι
A : I.lower i - I.upper i < 0
⊢ dist I.lower I.upper ≤ ↑I.distortion * (I.upper i - I.lower i)
state_after: no goals
Theorem: Ordinal.div_opow_log_lt
File: Mathlib/SetTheory/Ordinal/Exponential.lean

tactic: rw [div_lt (opow_pos _ (zero_lt_one.trans hb)).ne', ← opow_succ]
state_before: b o : Ordinal.{u_1}
hb : 1 < b
⊢ o / b ^ log b o < b
state_after: b o : Ordinal.{u_1}
hb : 1 < b
⊢ o < b ^ succ (log b o)

tactic: exact lt_opow_succ_log_self hb o
state_before: b o : Ordinal.{u_1}
hb : 1 < b
⊢ o < b ^ succ (log b o)
state_after: no goals
Theorem: Filter.Tendsto.add_atTop
File: Mathlib/Topology/Order/LeftRightNhds.lean

tactic: nontriviality α
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l (𝓝 C)
hg : Tendsto g l atTop
⊢ Tendsto (fun x => f x + g x) l atTop
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l (𝓝 C)
hg : Tendsto g l atTop
a✝ : Nontrivial α
⊢ Tendsto (fun x => f x + g x) l atTop

tactic: obtain ⟨C', hC'⟩ : ∃ C', C' < C := exists_lt C
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l (𝓝 C)
hg : Tendsto g l atTop
a✝ : Nontrivial α
⊢ Tendsto (fun x => f x + g x) l atTop
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l (𝓝 C)
hg : Tendsto g l atTop
a✝ : Nontrivial α
C' : α
hC' : C' < C
⊢ Tendsto (fun x => f x + g x) l atTop

tactic: refine tendsto_atTop_add_left_of_le' _ C' ?_ hg
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l (𝓝 C)
hg : Tendsto g l atTop
a✝ : Nontrivial α
C' : α
hC' : C' < C
⊢ Tendsto (fun x => f x + g x) l atTop
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l (𝓝 C)
hg : Tendsto g l atTop
a✝ : Nontrivial α
C' : α
hC' : C' < C
⊢ ∀ᶠ (x : β) in l, C' ≤ f x

tactic: exact (hf.eventually (lt_mem_nhds hC')).mono fun x => le_of_lt
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l (𝓝 C)
hg : Tendsto g l atTop
a✝ : Nontrivial α
C' : α
hC' : C' < C
⊢ ∀ᶠ (x : β) in l, C' ≤ f x
state_after: no goals
Theorem: SimpleGraph.Iso.connectedComponentEquiv_refl
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: ext ⟨v⟩
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
⊢ refl.connectedComponentEquiv = Equiv.refl G.ConnectedComponent
state_after: case H.mk
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
x✝ : G.ConnectedComponent
v : V
⊢ refl.connectedComponentEquiv (Quot.mk G.Reachable v) = (Equiv.refl G.ConnectedComponent) (Quot.mk G.Reachable v)

tactic: rfl
state_before: case H.mk
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
x✝ : G.ConnectedComponent
v : V
⊢ refl.connectedComponentEquiv (Quot.mk G.Reachable v) = (Equiv.refl G.ConnectedComponent) (Quot.mk G.Reachable v)
state_after: no goals
Theorem: MeasureTheory.ProbabilityMeasure.tendsto_measure_of_null_frontier_of_tendsto
File: Mathlib/MeasureTheory/Measure/Portmanteau.lean

tactic: have E_nullbdry' : (μ : Measure Ω) (frontier E) = 0 := by
  rw [← ProbabilityMeasure.ennreal_coeFn_eq_coeFn_toMeasure, E_nullbdry, ENNReal.coe_zero]
state_before: Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝³ : MeasurableSpace Ω
inst✝² : PseudoEMetricSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
inst✝ : HasOuterApproxClosed Ω
μ : ProbabilityMeasure Ω
μs : ι → ProbabilityMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
E : Set Ω
E_nullbdry : μ (frontier E) = 0
⊢ Tendsto (fun i => (μs i) E) L (𝓝 (μ E))
state_after: Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝³ : MeasurableSpace Ω
inst✝² : PseudoEMetricSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
inst✝ : HasOuterApproxClosed Ω
μ : ProbabilityMeasure Ω
μs : ι → ProbabilityMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
E : Set Ω
E_nullbdry : μ (frontier E) = 0
E_nullbdry' : ↑μ (frontier E) = 0
⊢ Tendsto (fun i => (μs i) E) L (𝓝 (μ E))

tactic: have key := ProbabilityMeasure.tendsto_measure_of_null_frontier_of_tendsto' μs_lim E_nullbdry'
state_before: Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝³ : MeasurableSpace Ω
inst✝² : PseudoEMetricSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
inst✝ : HasOuterApproxClosed Ω
μ : ProbabilityMeasure Ω
μs : ι → ProbabilityMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
E : Set Ω
E_nullbdry : μ (frontier E) = 0
E_nullbdry' : ↑μ (frontier E) = 0
⊢ Tendsto (fun i => (μs i) E) L (𝓝 (μ E))
state_after: Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝³ : MeasurableSpace Ω
inst✝² : PseudoEMetricSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
inst✝ : HasOuterApproxClosed Ω
μ : ProbabilityMeasure Ω
μs : ι → ProbabilityMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
E : Set Ω
E_nullbdry : μ (frontier E) = 0
E_nullbdry' : ↑μ (frontier E) = 0
key : Tendsto (fun i => ↑(μs i) E) L (𝓝 (↑μ E))
⊢ Tendsto (fun i => (μs i) E) L (𝓝 (μ E))

tactic: exact (ENNReal.tendsto_toNNReal (measure_ne_top (↑μ) E)).comp key
state_before: Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝³ : MeasurableSpace Ω
inst✝² : PseudoEMetricSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
inst✝ : HasOuterApproxClosed Ω
μ : ProbabilityMeasure Ω
μs : ι → ProbabilityMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
E : Set Ω
E_nullbdry : μ (frontier E) = 0
E_nullbdry' : ↑μ (frontier E) = 0
key : Tendsto (fun i => ↑(μs i) E) L (𝓝 (↑μ E))
⊢ Tendsto (fun i => (μs i) E) L (𝓝 (μ E))
state_after: no goals

tactic: rw [← ProbabilityMeasure.ennreal_coeFn_eq_coeFn_toMeasure, E_nullbdry, ENNReal.coe_zero]
state_before: Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝³ : MeasurableSpace Ω
inst✝² : PseudoEMetricSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
inst✝ : HasOuterApproxClosed Ω
μ : ProbabilityMeasure Ω
μs : ι → ProbabilityMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
E : Set Ω
E_nullbdry : μ (frontier E) = 0
⊢ ↑μ (frontier E) = 0
state_after: no goals