1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.ae_le_trim_of_stronglyMeasurable
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: rwa [EventuallyLE, ae_iff, trim_measurableSet_eq hm]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹⁴ : NormedAddCommGroup E
inst✝¹³ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : NormedSpace 𝕜 E
inst✝¹⁰ : SMulCommClass ℝ 𝕜 E
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace ℝ F
inst✝⁷ : CompleteSpace F
G : Type u_5
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
H : Type u_6
β : Type u_7
γ : Type u_8
inst✝⁴ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
inst✝³ : LinearOrder γ
inst✝² : TopologicalSpace γ
inst✝¹ : OrderClosedTopology γ
inst✝ : PseudoMetrizableSpace γ
hm : m ≤ m0
f g : β → γ
hf : StronglyMeasurable f
hg : StronglyMeasurable g
hfg : f ≤ᶠ[ae μ] g
⊢ f ≤ᶠ[ae (μ.trim hm)] g
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹⁴ : NormedAddCommGroup E
inst✝¹³ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : NormedSpace 𝕜 E
inst✝¹⁰ : SMulCommClass ℝ 𝕜 E
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace ℝ F
inst✝⁷ : CompleteSpace F
G : Type u_5
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
H : Type u_6
β : Type u_7
γ : Type u_8
inst✝⁴ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
inst✝³ : LinearOrder γ
inst✝² : TopologicalSpace γ
inst✝¹ : OrderClosedTopology γ
inst✝ : PseudoMetrizableSpace γ
hm : m ≤ m0
f g : β → γ
hf : StronglyMeasurable f
hg : StronglyMeasurable g
hfg : f ≤ᶠ[ae μ] g
⊢ MeasurableSet {a | ¬f a ≤ g a}

tactic: exact (hf.measurableSet_le hg).compl
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹⁴ : NormedAddCommGroup E
inst✝¹³ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : NormedSpace 𝕜 E
inst✝¹⁰ : SMulCommClass ℝ 𝕜 E
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace ℝ F
inst✝⁷ : CompleteSpace F
G : Type u_5
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
H : Type u_6
β : Type u_7
γ : Type u_8
inst✝⁴ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
inst✝³ : LinearOrder γ
inst✝² : TopologicalSpace γ
inst✝¹ : OrderClosedTopology γ
inst✝ : PseudoMetrizableSpace γ
hm : m ≤ m0
f g : β → γ
hf : StronglyMeasurable f
hg : StronglyMeasurable g
hfg : f ≤ᶠ[ae μ] g
⊢ MeasurableSet {a | ¬f a ≤ g a}
state_after: no goals
Theorem: fourierCoeff_liftIoc_eq
File: Mathlib/Analysis/Fourier/AddCircle.lean

tactic: rw [fourierCoeffOn_eq_integral, fourierCoeff_eq_intervalIntegral, add_sub_cancel_left a T]
state_before: T : ℝ
hT : Fact (0 < T)
E : Type
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
a : ℝ
f : ℝ → ℂ
n : ℤ
⊢ fourierCoeff (liftIoc T a f) n = fourierCoeffOn ⋯ f n
state_after: T : ℝ
hT : Fact (0 < T)
E : Type
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
a : ℝ
f : ℝ → ℂ
n : ℤ
⊢ (1 / T) • ∫ (x : ℝ) in ?a..?a + T, (fourier (-n)) ↑x • liftIoc T a f ↑x =
    (1 / T) • ∫ (x : ℝ) in a..a + T, (fourier (-n)) ↑x • f x

case a
T : ℝ
hT : Fact (0 < T)
E : Type
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
a : ℝ
f : ℝ → ℂ
n : ℤ
⊢ ℝ

tactic: congr 1
state_before: T : ℝ
hT : Fact (0 < T)
E : Type
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
a : ℝ
f : ℝ → ℂ
n : ℤ
⊢ (1 / T) • ∫ (x : ℝ) in ?a..?a + T, (fourier (-n)) ↑x • liftIoc T a f ↑x =
    (1 / T) • ∫ (x : ℝ) in a..a + T, (fourier (-n)) ↑x • f x
state_after: case e_a
T : ℝ
hT : Fact (0 < T)
E : Type
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
a : ℝ
f : ℝ → ℂ
n : ℤ
⊢ ∫ (x : ℝ) in ?a..?a + T, (fourier (-n)) ↑x • liftIoc T a f ↑x = ∫ (x : ℝ) in a..a + T, (fourier (-n)) ↑x • f x

tactic: refine intervalIntegral.integral_congr_ae (ae_of_all _ fun x hx => ?_)
state_before: case e_a
T : ℝ
hT : Fact (0 < T)
E : Type
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
a : ℝ
f : ℝ → ℂ
n : ℤ
⊢ ∫ (x : ℝ) in ?a..?a + T, (fourier (-n)) ↑x • liftIoc T a f ↑x = ∫ (x : ℝ) in a..a + T, (fourier (-n)) ↑x • f x
state_after: case e_a
T : ℝ
hT : Fact (0 < T)
E : Type
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
a : ℝ
f : ℝ → ℂ
n : ℤ
x : ℝ
hx : x ∈ Ι a (a + T)
⊢ (fourier (-n)) ↑x • liftIoc T a f ↑x = (fourier (-n)) ↑x • f x

tactic: rw [liftIoc_coe_apply]
state_before: case e_a
T : ℝ
hT : Fact (0 < T)
E : Type
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
a : ℝ
f : ℝ → ℂ
n : ℤ
x : ℝ
hx : x ∈ Ι a (a + T)
⊢ (fourier (-n)) ↑x • liftIoc T a f ↑x = (fourier (-n)) ↑x • f x
state_after: case e_a
T : ℝ
hT : Fact (0 < T)
E : Type
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
a : ℝ
f : ℝ → ℂ
n : ℤ
x : ℝ
hx : x ∈ Ι a (a + T)
⊢ x ∈ Ioc a (a + T)

tactic: rwa [uIoc_of_le (lt_add_of_pos_right a hT.out).le] at hx
state_before: case e_a
T : ℝ
hT : Fact (0 < T)
E : Type
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
a : ℝ
f : ℝ → ℂ
n : ℤ
x : ℝ
hx : x ∈ Ι a (a + T)
⊢ x ∈ Ioc a (a + T)
state_after: no goals
Theorem: Matrix.nonsing_inv_mul_cancel_left
File: Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean

tactic: simp [← Matrix.mul_assoc, nonsing_inv_mul A h]
state_before: l : Type u_1
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B✝ : Matrix n n α
B : Matrix n m α
h : IsUnit A.det
⊢ A⁻¹ * (A * B) = B
state_after: no goals
Theorem: Ideal.exists_ideal_over_prime_of_isIntegral
File: Mathlib/RingTheory/Ideal/Over.lean

tactic: have ⟨P', hP, hP', hP''⟩ := exists_ideal_comap_le_prime P I hIP
state_before: R : Type u_1
inst✝⁴ : CommRing R
S : Type u_2
inst✝³ : CommRing S
f : R →+* S
I✝ J : Ideal S
inst✝² : Algebra R S
inst✝¹ : Algebra.IsIntegral R S
P : Ideal R
inst✝ : P.IsPrime
I : Ideal S
hIP : comap (algebraMap R S) I ≤ P
⊢ ∃ Q ≥ I, Q.IsPrime ∧ comap (algebraMap R S) Q = P
state_after: R : Type u_1
inst✝⁴ : CommRing R
S : Type u_2
inst✝³ : CommRing S
f : R →+* S
I✝ J : Ideal S
inst✝² : Algebra R S
inst✝¹ : Algebra.IsIntegral R S
P : Ideal R
inst✝ : P.IsPrime
I : Ideal S
hIP : comap (algebraMap R S) I ≤ P
P' : Ideal S
hP : P' ≥ I
hP' : P'.IsPrime
hP'' : comap (algebraMap R S) P' ≤ P
⊢ ∃ Q ≥ I, Q.IsPrime ∧ comap (algebraMap R S) Q = P

tactic: obtain ⟨Q, hQ, hQ', hQ''⟩ := exists_ideal_over_prime_of_isIntegral_of_isPrime P P' hP''
state_before: R : Type u_1
inst✝⁴ : CommRing R
S : Type u_2
inst✝³ : CommRing S
f : R →+* S
I✝ J : Ideal S
inst✝² : Algebra R S
inst✝¹ : Algebra.IsIntegral R S
P : Ideal R
inst✝ : P.IsPrime
I : Ideal S
hIP : comap (algebraMap R S) I ≤ P
P' : Ideal S
hP : P' ≥ I
hP' : P'.IsPrime
hP'' : comap (algebraMap R S) P' ≤ P
⊢ ∃ Q ≥ I, Q.IsPrime ∧ comap (algebraMap R S) Q = P
state_after: case intro.intro.intro
R : Type u_1
inst✝⁴ : CommRing R
S : Type u_2
inst✝³ : CommRing S
f : R →+* S
I✝ J : Ideal S
inst✝² : Algebra R S
inst✝¹ : Algebra.IsIntegral R S
P : Ideal R
inst✝ : P.IsPrime
I : Ideal S
hIP : comap (algebraMap R S) I ≤ P
P' : Ideal S
hP : P' ≥ I
hP' : P'.IsPrime
hP'' : comap (algebraMap R S) P' ≤ P
Q : Ideal S
hQ : Q ≥ P'
hQ' : Q.IsPrime
hQ'' : comap (algebraMap R S) Q = P
⊢ ∃ Q ≥ I, Q.IsPrime ∧ comap (algebraMap R S) Q = P

tactic: exact ⟨Q, hP.trans hQ, hQ', hQ''⟩
state_before: case intro.intro.intro
R : Type u_1
inst✝⁴ : CommRing R
S : Type u_2
inst✝³ : CommRing S
f : R →+* S
I✝ J : Ideal S
inst✝² : Algebra R S
inst✝¹ : Algebra.IsIntegral R S
P : Ideal R
inst✝ : P.IsPrime
I : Ideal S
hIP : comap (algebraMap R S) I ≤ P
P' : Ideal S
hP : P' ≥ I
hP' : P'.IsPrime
hP'' : comap (algebraMap R S) P' ≤ P
Q : Ideal S
hQ : Q ≥ P'
hQ' : Q.IsPrime
hQ'' : comap (algebraMap R S) Q = P
⊢ ∃ Q ≥ I, Q.IsPrime ∧ comap (algebraMap R S) Q = P
state_after: no goals
Theorem: OnePoint.continuous_iff_from_discrete
File: Mathlib/Topology/Compactification/OnePoint.lean

tactic: simp [continuous_iff, cocompact_eq_cofinite, continuous_of_discreteTopology]
state_before: X : Type u_1
inst✝² : TopologicalSpace X
s : Set (OnePoint X)
t : Set X
Y : Type u_2
inst✝¹ : TopologicalSpace Y
inst✝ : DiscreteTopology X
f : OnePoint X → Y
⊢ Continuous f ↔ Tendsto (fun x => f ↑x) cofinite (𝓝 (f ∞))
state_after: no goals
Theorem: AlgebraicTopology.DoldKan.PInfty_add_QInfty
File: Mathlib/AlgebraicTopology/DoldKan/PInfty.lean

tactic: dsimp only [QInfty]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
⊢ PInfty + QInfty = 𝟙 K[X]
state_after: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
⊢ PInfty + (𝟙 K[X] - PInfty) = 𝟙 K[X]

tactic: simp only [add_sub_cancel]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
⊢ PInfty + (𝟙 K[X] - PInfty) = 𝟙 K[X]
state_after: no goals
Theorem: PadicSeq.norm_eq_pow_val
File: Mathlib/NumberTheory/Padics/PadicNumbers.lean

tactic: rw [norm, valuation, dif_neg hf, dif_neg hf, padicNorm, if_neg]
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
⊢ f.norm = ↑p ^ (-f.valuation)
state_after: case hnc
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
⊢ ¬↑f (stationaryPoint hf) = 0

tactic: intro H
state_before: case hnc
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
⊢ ¬↑f (stationaryPoint hf) = 0
state_after: case hnc
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
H : ↑f (stationaryPoint hf) = 0
⊢ False

tactic: apply CauSeq.not_limZero_of_not_congr_zero hf
state_before: case hnc
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
H : ↑f (stationaryPoint hf) = 0
⊢ False
state_after: case hnc
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
H : ↑f (stationaryPoint hf) = 0
⊢ LimZero f

tactic: intro ε hε
state_before: case hnc
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
H : ↑f (stationaryPoint hf) = 0
⊢ LimZero f
state_after: case hnc
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
H : ↑f (stationaryPoint hf) = 0
ε : ℚ
hε : ε > 0
⊢ ∃ i, ∀ j ≥ i, padicNorm p (↑f j) < ε

tactic: use stationaryPoint hf
state_before: case hnc
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
H : ↑f (stationaryPoint hf) = 0
ε : ℚ
hε : ε > 0
⊢ ∃ i, ∀ j ≥ i, padicNorm p (↑f j) < ε
state_after: case h
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
H : ↑f (stationaryPoint hf) = 0
ε : ℚ
hε : ε > 0
⊢ ∀ j ≥ stationaryPoint hf, padicNorm p (↑f j) < ε

tactic: intro n hn
state_before: case h
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
H : ↑f (stationaryPoint hf) = 0
ε : ℚ
hε : ε > 0
⊢ ∀ j ≥ stationaryPoint hf, padicNorm p (↑f j) < ε
state_after: case h
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
H : ↑f (stationaryPoint hf) = 0
ε : ℚ
hε : ε > 0
n : ℕ
hn : n ≥ stationaryPoint hf
⊢ padicNorm p (↑f n) < ε

tactic: rw [stationaryPoint_spec hf le_rfl hn]
state_before: case h
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
H : ↑f (stationaryPoint hf) = 0
ε : ℚ
hε : ε > 0
n : ℕ
hn : n ≥ stationaryPoint hf
⊢ padicNorm p (↑f n) < ε
state_after: case h
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
H : ↑f (stationaryPoint hf) = 0
ε : ℚ
hε : ε > 0
n : ℕ
hn : n ≥ stationaryPoint hf
⊢ padicNorm p (↑f (stationaryPoint hf)) < ε

tactic: simpa [H] using hε
state_before: case h
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
H : ↑f (stationaryPoint hf) = 0
ε : ℚ
hε : ε > 0
n : ℕ
hn : n ≥ stationaryPoint hf
⊢ padicNorm p (↑f (stationaryPoint hf)) < ε
state_after: no goals
Theorem: Finite.injective_iff_bijective
File: Mathlib/Data/Fintype/Card.lean

tactic: simp [Bijective, injective_iff_surjective]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Finite α
f : α → α
⊢ Injective f ↔ Bijective f
state_after: no goals
Theorem: Fin.rev_last_eq_bot
File: Mathlib/Order/Fin.lean

tactic: rw [rev_last, bot_eq_zero]
state_before: m n✝ n : ℕ
⊢ (last n).rev = ⊥
state_after: no goals
Theorem: apply_dite₂
File: Mathlib/Logic/Basic.lean

tactic: by_cases h : P <;> simp [h]
state_before: α✝ : Sort u_1
σ : α✝ → Sort u_2
P✝ Q R : Prop
inst✝² : Decidable P✝
inst✝¹ : Decidable Q
a✝ b✝ c✝ : α✝
A : P✝ → α✝
B : ¬P✝ → α✝
α : Sort u_3
β : Sort u_4
γ : Sort u_5
f : α → β → γ
P : Prop
inst✝ : Decidable P
a : P → α
b : ¬P → α
c : P → β
d : ¬P → β
⊢ f (dite P a b) (dite P c d) = if h : P then f (a h) (c h) else f (b h) (d h)
state_after: no goals
Theorem: CategoryTheory.ShortComplex.RightHomologyData.homologyIso_hom_comp_ι
File: Mathlib/Algebra/Homology/ShortComplex/Homology.lean

tactic: dsimp only [homologyι, homologyIso]
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ : S₁ ⟶ S₂
h₁ : S₁.HomologyData
h₂ : S₂.HomologyData
A : C
inst✝¹ : S.HasHomology
h : S.RightHomologyData
inst✝ : S.HasHomology
⊢ h.homologyIso.hom ≫ h.ι = S.homologyι ≫ h.opcyclesIso.hom
state_after: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ : S₁ ⟶ S₂
h₁ : S₁.HomologyData
h₂ : S₂.HomologyData
A : C
inst✝¹ : S.HasHomology
h : S.RightHomologyData
inst✝ : S.HasHomology
⊢ (S.rightHomologyIso.symm ≪≫ h.rightHomologyIso).hom ≫ h.ι =
    (S.rightHomologyIso.inv ≫ S.rightHomologyι) ≫ h.opcyclesIso.hom

tactic: simp only [Iso.trans_hom, Iso.symm_hom, assoc, rightHomologyIso_hom_comp_ι]
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ : S₁ ⟶ S₂
h₁ : S₁.HomologyData
h₂ : S₂.HomologyData
A : C
inst✝¹ : S.HasHomology
h : S.RightHomologyData
inst✝ : S.HasHomology
⊢ (S.rightHomologyIso.symm ≪≫ h.rightHomologyIso).hom ≫ h.ι =
    (S.rightHomologyIso.inv ≫ S.rightHomologyι) ≫ h.opcyclesIso.hom
state_after: no goals
Theorem: sq_sum_le_card_mul_sum_sq
File: Mathlib/Algebra/Order/Chebyshev.lean

tactic: simp_rw [sq]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedRing α
s : Finset ι
σ : Perm ι
f g : ι → α
⊢ (∑ i ∈ s, f i) ^ 2 ≤ ↑s.card * ∑ i ∈ s, f i ^ 2
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedRing α
s : Finset ι
σ : Perm ι
f g : ι → α
⊢ (∑ i ∈ s, f i) * ∑ i ∈ s, f i ≤ ↑s.card * ∑ x ∈ s, f x * f x

tactic: exact (monovaryOn_self _ _).sum_mul_sum_le_card_mul_sum
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedRing α
s : Finset ι
σ : Perm ι
f g : ι → α
⊢ (∑ i ∈ s, f i) * ∑ i ∈ s, f i ≤ ↑s.card * ∑ x ∈ s, f x * f x
state_after: no goals
Theorem: NFA.stepSet_empty
File: Mathlib/Computability/NFA.lean

tactic: simp [stepSet]
state_before: α : Type u
σ σ' : Type v
M : NFA α σ
a : α
⊢ M.stepSet ∅ a = ∅
state_after: no goals
Theorem: padicNorm.sum_lt'
File: Mathlib/NumberTheory/Padics/PadicNorm.lean

tactic: obtain rfl | hs := Finset.eq_empty_or_nonempty s
state_before: p : ℕ
hp : Fact (Nat.Prime p)
α : Type u_1
F : α → ℚ
t : ℚ
s : Finset α
hF : ∀ i ∈ s, padicNorm p (F i) < t
ht : 0 < t
⊢ padicNorm p (∑ i ∈ s, F i) < t
state_after: case inl
p : ℕ
hp : Fact (Nat.Prime p)
α : Type u_1
F : α → ℚ
t : ℚ
ht : 0 < t
hF : ∀ i ∈ ∅, padicNorm p (F i) < t
⊢ padicNorm p (∑ i ∈ ∅, F i) < t

case inr
p : ℕ
hp : Fact (Nat.Prime p)
α : Type u_1
F : α → ℚ
t : ℚ
s : Finset α
hF : ∀ i ∈ s, padicNorm p (F i) < t
ht : 0 < t
hs : s.Nonempty
⊢ padicNorm p (∑ i ∈ s, F i) < t

tactic: simp [ht]
state_before: case inl
p : ℕ
hp : Fact (Nat.Prime p)
α : Type u_1
F : α → ℚ
t : ℚ
ht : 0 < t
hF : ∀ i ∈ ∅, padicNorm p (F i) < t
⊢ padicNorm p (∑ i ∈ ∅, F i) < t
state_after: no goals

tactic: exact sum_lt hs hF
state_before: case inr
p : ℕ
hp : Fact (Nat.Prime p)
α : Type u_1
F : α → ℚ
t : ℚ
s : Finset α
hF : ∀ i ∈ s, padicNorm p (F i) < t
ht : 0 < t
hs : s.Nonempty
⊢ padicNorm p (∑ i ∈ s, F i) < t
state_after: no goals
Theorem: IsCoprime.symm
File: Mathlib/RingTheory/Coprime/Basic.lean

tactic: rw [add_comm, H]
state_before: R : Type u
inst✝ : CommSemiring R
x y z : R
H✝ : IsCoprime x y
a b : R
H : a * x + b * y = 1
⊢ b * y + a * x = 1
state_after: no goals
Theorem: ContinuousMap.setOfIdeal_eq_compl_singleton
File: Mathlib/Topology/ContinuousFunction/Ideals.lean

tactic: have h : (idealOfSet 𝕜 (setOfIdeal I)).IsMaximal :=
  (idealOfSet_ofIdeal_isClosed (inferInstance : IsClosed (I : Set C(X, 𝕜)))).symm ▸ hI
state_before: X : Type u_1
𝕜 : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : TopologicalSpace X
inst✝¹ : CompactSpace X
inst✝ : T2Space X
I : Ideal C(X, 𝕜)
hI : I.IsMaximal
⊢ ∃ x, setOfIdeal I = {x}ᶜ
state_after: X : Type u_1
𝕜 : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : TopologicalSpace X
inst✝¹ : CompactSpace X
inst✝ : T2Space X
I : Ideal C(X, 𝕜)
hI : I.IsMaximal
h : (idealOfSet 𝕜 (setOfIdeal I)).IsMaximal
⊢ ∃ x, setOfIdeal I = {x}ᶜ

tactic: obtain ⟨x, hx⟩ := Opens.isCoatom_iff.1 ((idealOfSet_isMaximal_iff 𝕜 (opensOfIdeal I)).1 h)
state_before: X : Type u_1
𝕜 : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : TopologicalSpace X
inst✝¹ : CompactSpace X
inst✝ : T2Space X
I : Ideal C(X, 𝕜)
hI : I.IsMaximal
h : (idealOfSet 𝕜 (setOfIdeal I)).IsMaximal
⊢ ∃ x, setOfIdeal I = {x}ᶜ
state_after: case intro
X : Type u_1
𝕜 : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : TopologicalSpace X
inst✝¹ : CompactSpace X
inst✝ : T2Space X
I : Ideal C(X, 𝕜)
hI : I.IsMaximal
h : (idealOfSet 𝕜 (setOfIdeal I)).IsMaximal
x : X
hx : opensOfIdeal I = (Closeds.singleton x).compl
⊢ ∃ x, setOfIdeal I = {x}ᶜ

tactic: exact ⟨x, congr_arg (fun (s : Opens X) => (s : Set X)) hx⟩
state_before: case intro
X : Type u_1
𝕜 : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : TopologicalSpace X
inst✝¹ : CompactSpace X
inst✝ : T2Space X
I : Ideal C(X, 𝕜)
hI : I.IsMaximal
h : (idealOfSet 𝕜 (setOfIdeal I)).IsMaximal
x : X
hx : opensOfIdeal I = (Closeds.singleton x).compl
⊢ ∃ x, setOfIdeal I = {x}ᶜ
state_after: no goals
Theorem: Polynomial.support_binomial
File: Mathlib/Algebra/Polynomial/Coeff.lean

tactic: apply subset_antisymm (support_binomial' k m x y)
state_before: R : Type u
S : Type v
a b : R
n m✝ : ℕ
inst✝ : Semiring R
p q r : R[X]
k m : ℕ
hkm : k ≠ m
x y : R
hx : x ≠ 0
hy : y ≠ 0
⊢ (C x * X ^ k + C y * X ^ m).support = {k, m}
state_after: R : Type u
S : Type v
a b : R
n m✝ : ℕ
inst✝ : Semiring R
p q r : R[X]
k m : ℕ
hkm : k ≠ m
x y : R
hx : x ≠ 0
hy : y ≠ 0
⊢ {k, m} ⊆ (C x * X ^ k + C y * X ^ m).support

tactic: simp_rw [insert_subset_iff, singleton_subset_iff, mem_support_iff, coeff_add, coeff_C_mul,
  coeff_X_pow_self, mul_one, coeff_X_pow, if_neg hkm, if_neg hkm.symm, mul_zero, zero_add,
  add_zero, Ne, hx, hy, not_false_eq_true, and_true]
state_before: R : Type u
S : Type v
a b : R
n m✝ : ℕ
inst✝ : Semiring R
p q r : R[X]
k m : ℕ
hkm : k ≠ m
x y : R
hx : x ≠ 0
hy : y ≠ 0
⊢ {k, m} ⊆ (C x * X ^ k + C y * X ^ m).support
state_after: no goals
Theorem: CategoryTheory.braiding_leftUnitor_aux₁
File: Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean

tactic: coherence
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X : C
⊢ (α_ (𝟙_ C) (𝟙_ C) X).hom ≫ 𝟙_ C ◁ (β_ X (𝟙_ C)).inv ≫ (α_ (𝟙_ C) X (𝟙_ C)).inv ≫ (λ_ X).hom ▷ 𝟙_ C =
    (λ_ (𝟙_ C)).hom ▷ X ≫ (β_ X (𝟙_ C)).inv
state_after: no goals
Theorem: Set.Finite.infsep
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: simpa
state_before: α : Type u_1
β : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
s t : Set α
inst✝ : Decidable s.Nontrivial
hsf : s.Finite
hs : s.Nontrivial
⊢ ⋯.toFinset.Nonempty
state_after: no goals

tactic: split_ifs with hs
state_before: α : Type u_1
β : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
s t : Set α
inst✝ : Decidable s.Nontrivial
hsf : s.Finite
⊢ s.infsep = if hs : s.Nontrivial then ⋯.toFinset.inf' ⋯ (uncurry dist) else 0
state_after: case pos
α : Type u_1
β : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
s t : Set α
inst✝ : Decidable s.Nontrivial
hsf : s.Finite
hs : s.Nontrivial
⊢ s.infsep = ⋯.toFinset.inf' ⋯ (uncurry dist)

case neg
α : Type u_1
β : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
s t : Set α
inst✝ : Decidable s.Nontrivial
hsf : s.Finite
hs : ¬s.Nontrivial
⊢ s.infsep = 0

tactic: refine eq_of_forall_le_iff fun _ => ?_
state_before: case pos
α : Type u_1
β : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
s t : Set α
inst✝ : Decidable s.Nontrivial
hsf : s.Finite
hs : s.Nontrivial
⊢ s.infsep = ⋯.toFinset.inf' ⋯ (uncurry dist)
state_after: case pos
α : Type u_1
β : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
s t : Set α
inst✝ : Decidable s.Nontrivial
hsf : s.Finite
hs : s.Nontrivial
x✝ : ℝ
⊢ x✝ ≤ s.infsep ↔ x✝ ≤ ⋯.toFinset.inf' ⋯ (uncurry dist)

tactic: simp_rw [hs.le_infsep_iff, imp_forall_iff, Finset.le_inf'_iff, Finite.mem_toFinset,
  mem_offDiag, Prod.forall, uncurry_apply_pair, and_imp]
state_before: case pos
α : Type u_1
β : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
s t : Set α
inst✝ : Decidable s.Nontrivial
hsf : s.Finite
hs : s.Nontrivial
x✝ : ℝ
⊢ x✝ ≤ s.infsep ↔ x✝ ≤ ⋯.toFinset.inf' ⋯ (uncurry dist)
state_after: no goals

tactic: rw [not_nontrivial_iff] at hs
state_before: case neg
α : Type u_1
β : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
s t : Set α
inst✝ : Decidable s.Nontrivial
hsf : s.Finite
hs : ¬s.Nontrivial
⊢ s.infsep = 0
state_after: case neg
α : Type u_1
β : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
s t : Set α
inst✝ : Decidable s.Nontrivial
hsf : s.Finite
hs : s.Subsingleton
⊢ s.infsep = 0

tactic: exact hs.infsep_zero
state_before: case neg
α : Type u_1
β : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
s t : Set α
inst✝ : Decidable s.Nontrivial
hsf : s.Finite
hs : s.Subsingleton
⊢ s.infsep = 0
state_after: no goals
Theorem: FreeSemigroup.traverse_mul
File: Mathlib/Algebra/Free.lean

tactic: rw [ih]
state_before: α β : Type u
m : Type u → Type u
inst✝¹ : Applicative m
F : α → m β
inst✝ : LawfulApplicative m
x✝¹ y✝ : FreeSemigroup α
x✝ : α
L1 : List α
y : α
L2 : List α
hd : α
tl : List α
ih :
  ∀ (x : α),
    traverse F ({ head := x, tail := tl } * { head := y, tail := L2 }) =
      Seq.seq ((fun x x_1 => x * x_1) <$> traverse F { head := x, tail := tl }) fun x =>
        traverse F { head := y, tail := L2 }
x : α
⊢ (Seq.seq ((fun x x_1 => x * x_1) <$> pure <$> F x) fun x =>
      traverse F ({ head := hd, tail := tl } * { head := y, tail := L2 })) =
    Seq.seq
      ((fun x x_1 => x * x_1) <$>
        Seq.seq ((fun x x_1 => x * x_1) <$> pure <$> F x) fun x => traverse F { head := hd, tail := tl })
      fun x => traverse F { head := y, tail := L2 }
state_after: α β : Type u
m : Type u → Type u
inst✝¹ : Applicative m
F : α → m β
inst✝ : LawfulApplicative m
x✝¹ y✝ : FreeSemigroup α
x✝ : α
L1 : List α
y : α
L2 : List α
hd : α
tl : List α
ih :
  ∀ (x : α),
    traverse F ({ head := x, tail := tl } * { head := y, tail := L2 }) =
      Seq.seq ((fun x x_1 => x * x_1) <$> traverse F { head := x, tail := tl }) fun x =>
        traverse F { head := y, tail := L2 }
x : α
⊢ (Seq.seq ((fun x x_1 => x * x_1) <$> pure <$> F x) fun x =>
      Seq.seq ((fun x x_1 => x * x_1) <$> traverse F { head := hd, tail := tl }) fun x =>
        traverse F { head := y, tail := L2 }) =
    Seq.seq
      ((fun x x_1 => x * x_1) <$>
        Seq.seq ((fun x x_1 => x * x_1) <$> pure <$> F x) fun x => traverse F { head := hd, tail := tl })
      fun x => traverse F { head := y, tail := L2 }
Theorem: Nat.properDivisors.not_self_mem
File: Mathlib/NumberTheory/Divisors.lean

tactic: simp [properDivisors]
state_before: n : ℕ
⊢ n ∉ n.properDivisors
state_after: no goals
Theorem: Finsupp.subtypeDomain_eq_zero_iff'
File: Mathlib/Data/Finsupp/Basic.lean

tactic: classical simp_rw [← support_eq_empty, support_subtypeDomain, subtype_eq_empty,
    not_mem_support_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
p : α → Prop
f : α →₀ M
⊢ subtypeDomain p f = 0 ↔ ∀ (x : α), p x → f x = 0
state_after: no goals

tactic: simp_rw [← support_eq_empty, support_subtypeDomain, subtype_eq_empty,
not_mem_support_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
p : α → Prop
f : α →₀ M
⊢ subtypeDomain p f = 0 ↔ ∀ (x : α), p x → f x = 0
state_after: no goals