1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: DFinsupp.sum_single
File: Mathlib/Data/DFinsupp/Basic.lean

tactic: have := DFunLike.congr_fun (liftAddHom_singleAddHom (β := β)) f
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝² : DecidableEq ι
inst✝¹ : (i : ι) → AddCommMonoid (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
f : Π₀ (i : ι), β i
⊢ f.sum single = f
state_after: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝² : DecidableEq ι
inst✝¹ : (i : ι) → AddCommMonoid (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
f : Π₀ (i : ι), β i
this : (liftAddHom (singleAddHom β)) f = (AddMonoidHom.id (Π₀ (i : ι), β i)) f
⊢ f.sum single = f

tactic: rw [liftAddHom_apply, sumAddHom_apply] at this
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝² : DecidableEq ι
inst✝¹ : (i : ι) → AddCommMonoid (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
f : Π₀ (i : ι), β i
this : (liftAddHom (singleAddHom β)) f = (AddMonoidHom.id (Π₀ (i : ι), β i)) f
⊢ f.sum single = f
state_after: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝² : DecidableEq ι
inst✝¹ : (i : ι) → AddCommMonoid (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
f : Π₀ (i : ι), β i
this : (f.sum fun x => ⇑(singleAddHom β x)) = (AddMonoidHom.id (Π₀ (i : ι), β i)) f
⊢ f.sum single = f

tactic: exact this
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝² : DecidableEq ι
inst✝¹ : (i : ι) → AddCommMonoid (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
f : Π₀ (i : ι), β i
this : (f.sum fun x => ⇑(singleAddHom β x)) = (AddMonoidHom.id (Π₀ (i : ι), β i)) f
⊢ f.sum single = f
state_after: no goals
Theorem: Multiset.card_Ioo
File: Mathlib/Data/Multiset/Interval.lean

tactic: rw [Finset.card_Ioo_eq_card_Icc_sub_two, card_Icc]
state_before: α : Type u_1
inst✝ : DecidableEq α
s t : Multiset α
⊢ (Finset.Ioo s t).card = ∏ i ∈ s.toFinset ∪ t.toFinset, (count i t + 1 - count i s) - 2
state_after: no goals
Theorem: schnirelmannDensity_setOf_Odd
File: Mathlib/Combinatorics/Schnirelmann.lean

tactic: have h : setOf Odd = {n | n % 2 = 1} := Set.ext fun _ => Nat.odd_iff
state_before: ⊢ schnirelmannDensity (setOf Odd) = 2⁻¹
state_after: h : setOf Odd = {n | n % 2 = 1}
⊢ schnirelmannDensity (setOf Odd) = 2⁻¹

tactic: simp only [h]
state_before: h : setOf Odd = {n | n % 2 = 1}
⊢ schnirelmannDensity (setOf Odd) = 2⁻¹
state_after: h : setOf Odd = {n | n % 2 = 1}
⊢ schnirelmannDensity {n | n % 2 = 1} = 2⁻¹

tactic: rw [schnirelmannDensity_setOf_mod_eq_one (by norm_num1), Nat.cast_two]
state_before: h : setOf Odd = {n | n % 2 = 1}
⊢ schnirelmannDensity {n | n % 2 = 1} = 2⁻¹
state_after: no goals

tactic: norm_num1
state_before: h : setOf Odd = {n | n % 2 = 1}
⊢ 2 ≠ 1
state_after: no goals
Theorem: Profinite.NobelingProof.GoodProducts.linearIndependentAux
File: Mathlib/Topology/Category/Profinite/Nobeling.lean

tactic: refine Ordinal.limitRecOn μ P0 (fun o h ho C hC hsC ↦ ?_)
    (fun o ho h ↦ (GoodProducts.Plimit o ho (fun o' ho' ↦ (h o' ho'))))
state_before: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
μ : Ordinal.{u}
⊢ P I μ
state_after: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C✝ : Set (I → Bool)
μ o : Ordinal.{u}
h : P I o
ho : Order.succ o ≤ Ordinal.type fun x x_1 => x < x_1
C : Set (I → Bool)
hC : IsClosed C
hsC : contained C (Order.succ o)
⊢ LinearIndependent ℤ (eval C)

tactic: rw [linearIndependent_iff_sum C hsC ho']
state_before: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C✝ : Set (I → Bool)
μ o : Ordinal.{u}
h : P I o
ho : Order.succ o ≤ Ordinal.type fun x x_1 => x < x_1
C : Set (I → Bool)
hC : IsClosed C
hsC : contained C (Order.succ o)
ho' : o < Ordinal.type fun x x_1 => x < x_1
⊢ LinearIndependent ℤ (eval C)
state_after: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C✝ : Set (I → Bool)
μ o : Ordinal.{u}
h : P I o
ho : Order.succ o ≤ Ordinal.type fun x x_1 => x < x_1
C : Set (I → Bool)
hC : IsClosed C
hsC : contained C (Order.succ o)
ho' : o < Ordinal.type fun x x_1 => x < x_1
⊢ LinearIndependent ℤ (SumEval C ho')

tactic: refine ModuleCat.linearIndependent_leftExact (succ_exact C hC hsC ho') ?_ ?_ (succ_mono C o)
  (square_commutes C ho')
state_before: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C✝ : Set (I → Bool)
μ o : Ordinal.{u}
h : P I o
ho : Order.succ o ≤ Ordinal.type fun x x_1 => x < x_1
C : Set (I → Bool)
hC : IsClosed C
hsC : contained C (Order.succ o)
ho' : o < Ordinal.type fun x x_1 => x < x_1
⊢ LinearIndependent ℤ (SumEval C ho')
state_after: case refine_1
I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C✝ : Set (I → Bool)
μ o : Ordinal.{u}
h : P I o
ho : Order.succ o ≤ Ordinal.type fun x x_1 => x < x_1
C : Set (I → Bool)
hC : IsClosed C
hsC : contained C (Order.succ o)
ho' : o < Ordinal.type fun x x_1 => x < x_1
⊢ LinearIndependent (ι := ↑(GoodProducts (π C fun x => ord I x < o))) ℤ (eval (π C fun x => ord I x < o))

case refine_2
I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C✝ : Set (I → Bool)
μ o : Ordinal.{u}
h : P I o
ho : Order.succ o ≤ Ordinal.type fun x x_1 => x < x_1
C : Set (I → Bool)
hC : IsClosed C
hsC : contained C (Order.succ o)
ho' : o < Ordinal.type fun x x_1 => x < x_1
⊢ LinearIndependent (ι := ↑(MaxProducts C ho')) ℤ
    (⇑(ShortComplex.mk (ModuleCat.ofHom (πs C o)) (ModuleCat.ofHom (Linear_CC' C hsC ho')) ⋯).g ∘
      SumEval C ho' ∘ Sum.inr)
Theorem: Matrix.kronecker_natCast
File: Mathlib/Data/Matrix/Kronecker.lean

tactic: congr! 2
state_before: R : Type u_1
α : Type u_2
α' : Type u_3
β : Type u_4
β' : Type u_5
γ : Type u_6
γ' : Type u_7
l : Type u_8
m : Type u_9
n : Type u_10
p : Type u_11
q : Type u_12
r : Type u_13
l' : Type u_14
m' : Type u_15
n' : Type u_16
p' : Type u_17
inst✝¹ : NonAssocSemiring α
inst✝ : DecidableEq n
A : Matrix l m α
b : ℕ
⊢ (blockDiagonal fun i => A <• ↑b) = blockDiagonal fun x => b •> A
state_after: case h.e'_7.h
R : Type u_1
α : Type u_2
α' : Type u_3
β : Type u_4
β' : Type u_5
γ : Type u_6
γ' : Type u_7
l : Type u_8
m : Type u_9
n : Type u_10
p : Type u_11
q : Type u_12
r : Type u_13
l' : Type u_14
m' : Type u_15
n' : Type u_16
p' : Type u_17
inst✝¹ : NonAssocSemiring α
inst✝ : DecidableEq n
A : Matrix l m α
b : ℕ
x✝ : n
⊢ A <• ↑b = b •> A

tactic: ext
state_before: case h.e'_7.h
R : Type u_1
α : Type u_2
α' : Type u_3
β : Type u_4
β' : Type u_5
γ : Type u_6
γ' : Type u_7
l : Type u_8
m : Type u_9
n : Type u_10
p : Type u_11
q : Type u_12
r : Type u_13
l' : Type u_14
m' : Type u_15
n' : Type u_16
p' : Type u_17
inst✝¹ : NonAssocSemiring α
inst✝ : DecidableEq n
A : Matrix l m α
b : ℕ
x✝ : n
⊢ A <• ↑b = b •> A
state_after: case h.e'_7.h.a
R : Type u_1
α : Type u_2
α' : Type u_3
β : Type u_4
β' : Type u_5
γ : Type u_6
γ' : Type u_7
l : Type u_8
m : Type u_9
n : Type u_10
p : Type u_11
q : Type u_12
r : Type u_13
l' : Type u_14
m' : Type u_15
n' : Type u_16
p' : Type u_17
inst✝¹ : NonAssocSemiring α
inst✝ : DecidableEq n
A : Matrix l m α
b : ℕ
x✝ : n
i✝ : l
j✝ : m
⊢ (MulOpposite.op ↑b • A) i✝ j✝ = (b • A) i✝ j✝

tactic: simp [(Nat.cast_commute b _).eq]
state_before: case h.e'_7.h.a
R : Type u_1
α : Type u_2
α' : Type u_3
β : Type u_4
β' : Type u_5
γ : Type u_6
γ' : Type u_7
l : Type u_8
m : Type u_9
n : Type u_10
p : Type u_11
q : Type u_12
r : Type u_13
l' : Type u_14
m' : Type u_15
n' : Type u_16
p' : Type u_17
inst✝¹ : NonAssocSemiring α
inst✝ : DecidableEq n
A : Matrix l m α
b : ℕ
x✝ : n
i✝ : l
j✝ : m
⊢ (MulOpposite.op ↑b • A) i✝ j✝ = (b • A) i✝ j✝
state_after: no goals
Theorem: Real.totallyBounded_ball
File: Mathlib/Topology/Instances/Real.lean

tactic: rw [Real.ball_eq_Ioo]
state_before: α : Type u
β : Type v
γ : Type w
x ε : ℝ
⊢ TotallyBounded (ball x ε)
state_after: α : Type u
β : Type v
γ : Type w
x ε : ℝ
⊢ TotallyBounded (Ioo (x - ε) (x + ε))

tactic: apply totallyBounded_Ioo
state_before: α : Type u
β : Type v
γ : Type w
x ε : ℝ
⊢ TotallyBounded (Ioo (x - ε) (x + ε))
state_after: no goals
Theorem: div_mul
File: Mathlib/Algebra/Group/Basic.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionCommMonoid α
a b c d : α
⊢ a / b * c = a / (b / c)
state_after: no goals
Theorem: multiplicity.unique'
File: Mathlib/RingTheory/Multiplicity.lean

tactic: rw [← PartENat.natCast_inj, PartENat.natCast_get, unique hk hsucc]
state_before: α : Type u_1
β : Type u_2
inst✝³ : Monoid α
inst✝² : Monoid β
inst✝¹ : DecidableRel fun x x_1 => x ∣ x_1
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a b : α
k : ℕ
hk : a ^ k ∣ b
hsucc : ¬a ^ (k + 1) ∣ b
⊢ k = (multiplicity a b).get ⋯
state_after: no goals
Theorem: NormedCommGroup.cauchySeq_iff
File: Mathlib/Analysis/Normed/Group/Bounded.lean

tactic: simp [Metric.cauchySeq_iff, dist_eq_norm_div]
state_before: α : Type u_1
ι : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
inst✝⁴ : SeminormedGroup E
inst✝³ : SeminormedGroup F
inst✝² : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
inst✝¹ : Nonempty α
inst✝ : SemilatticeSup α
u : α → E
⊢ CauchySeq u ↔ ∀ ε > 0, ∃ N, ∀ (m : α), N ≤ m → ∀ (n : α), N ≤ n → ‖u m / u n‖ < ε
state_after: no goals
Theorem: FractionalIdeal.le_inv_comm
File: Mathlib/RingTheory/DedekindDomain/Ideal.lean

tactic: rw [inv_eq, inv_eq, le_div_iff_mul_le hI, le_div_iff_mul_le hJ, mul_comm]
state_before: R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I J : FractionalIdeal A⁰ K
hI : I ≠ 0
hJ : J ≠ 0
⊢ I ≤ J⁻¹ ↔ J ≤ I⁻¹
state_after: no goals
Theorem: CochainComplex.HomComplex.δ_ofHom_comp
File: Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean

tactic: rw [← Cocycle.ofHom_coe, δ_zero_cocycle_comp]
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n✝ m✝ n : ℤ
f : F ⟶ G
z : Cochain G K n
m : ℤ
⊢ δ n m ((Cochain.ofHom f).comp z ⋯) = (Cochain.ofHom f).comp (δ n m z) ⋯
state_after: no goals
Theorem: EMetric.mem_closure_iff_infEdist_zero
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: rw [← infEdist_closure]
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t : Set α
Φ : α → β
h : x ∈ closure s
⊢ infEdist x s = 0
state_after: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t : Set α
Φ : α → β
h : x ∈ closure s
⊢ infEdist x (closure s) = 0

tactic: exact infEdist_zero_of_mem h
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t : Set α
Φ : α → β
h : x ∈ closure s
⊢ infEdist x (closure s) = 0
state_after: no goals

tactic: rwa [h]
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t : Set α
Φ : α → β
h : infEdist x s = 0
ε : ℝ≥0∞
εpos : ε > 0
⊢ infEdist x s < ε
state_after: no goals
Theorem: MeasureTheory.Measure.haarMeasure_closure_self
File: Mathlib/MeasureTheory/Measure/Haar/Basic.lean

tactic: rw [K₀.isCompact.measure_closure, haarMeasure_self]
state_before: G : Type u_1
inst✝⁴ : Group G
inst✝³ : TopologicalSpace G
inst✝² : TopologicalGroup G
inst✝¹ : MeasurableSpace G
inst✝ : BorelSpace G
K₀ : PositiveCompacts G
⊢ (haarMeasure K₀) (closure ↑K₀) = 1
state_after: no goals
Theorem: ite_add_ite
File: Mathlib/Algebra/Ring/Defs.lean

tactic: split
state_before: α✝ : Type u
β : Type v
γ : Type w
R : Type x
α : Type u_1
inst✝¹ : Add α
P : Prop
inst✝ : Decidable P
a b c d : α
⊢ ((if P then a else b) + if P then c else d) = if P then a + c else b + d
state_after: case isTrue
α✝ : Type u
β : Type v
γ : Type w
R : Type x
α : Type u_1
inst✝¹ : Add α
P : Prop
inst✝ : Decidable P
a b c d : α
h✝ : P
⊢ a + c = a + c

case isFalse
α✝ : Type u
β : Type v
γ : Type w
R : Type x
α : Type u_1
inst✝¹ : Add α
P : Prop
inst✝ : Decidable P
a b c d : α
h✝ : ¬P
⊢ b + d = b + d

tactic: repeat rfl
state_before: case isTrue
α✝ : Type u
β : Type v
γ : Type w
R : Type x
α : Type u_1
inst✝¹ : Add α
P : Prop
inst✝ : Decidable P
a b c d : α
h✝ : P
⊢ a + c = a + c

case isFalse
α✝ : Type u
β : Type v
γ : Type w
R : Type x
α : Type u_1
inst✝¹ : Add α
P : Prop
inst✝ : Decidable P
a b c d : α
h✝ : ¬P
⊢ b + d = b + d
state_after: no goals

tactic: rfl
state_before: case isFalse
α✝ : Type u
β : Type v
γ : Type w
R : Type x
α : Type u_1
inst✝¹ : Add α
P : Prop
inst✝ : Decidable P
a b c d : α
h✝ : ¬P
⊢ b + d = b + d
state_after: no goals
Theorem: LinearMap.closedEmbedding_of_injective
File: Mathlib/Topology/Algebra/Module/FiniteDimension.lean

tactic: haveI := f.finiteDimensional_range
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹⁴ : NontriviallyNormedField 𝕜
inst✝¹³ : CompleteSpace 𝕜
inst✝¹² : AddCommGroup E
inst✝¹¹ : TopologicalSpace E
inst✝¹⁰ : T2Space E
inst✝⁹ : TopologicalAddGroup E
inst✝⁸ : Module 𝕜 E
inst✝⁷ : ContinuousSMul 𝕜 E
inst✝⁶ : AddCommGroup F
inst✝⁵ : TopologicalSpace F
inst✝⁴ : T2Space F
inst✝³ : TopologicalAddGroup F
inst✝² : Module 𝕜 F
inst✝¹ : ContinuousSMul 𝕜 F
inst✝ : FiniteDimensional 𝕜 E
f : E →ₗ[𝕜] F
hf : ker f = ⊥
g : E ≃ₗ[𝕜] ↥(range f) := LinearEquiv.ofInjective f ⋯
⊢ IsClosed (Set.range ⇑f)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹⁴ : NontriviallyNormedField 𝕜
inst✝¹³ : CompleteSpace 𝕜
inst✝¹² : AddCommGroup E
inst✝¹¹ : TopologicalSpace E
inst✝¹⁰ : T2Space E
inst✝⁹ : TopologicalAddGroup E
inst✝⁸ : Module 𝕜 E
inst✝⁷ : ContinuousSMul 𝕜 E
inst✝⁶ : AddCommGroup F
inst✝⁵ : TopologicalSpace F
inst✝⁴ : T2Space F
inst✝³ : TopologicalAddGroup F
inst✝² : Module 𝕜 F
inst✝¹ : ContinuousSMul 𝕜 F
inst✝ : FiniteDimensional 𝕜 E
f : E →ₗ[𝕜] F
hf : ker f = ⊥
g : E ≃ₗ[𝕜] ↥(range f) := LinearEquiv.ofInjective f ⋯
this : FiniteDimensional 𝕜 ↥(range f)
⊢ IsClosed (Set.range ⇑f)

tactic: simpa [LinearMap.range_coe f] using f.range.closed_of_finiteDimensional
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹⁴ : NontriviallyNormedField 𝕜
inst✝¹³ : CompleteSpace 𝕜
inst✝¹² : AddCommGroup E
inst✝¹¹ : TopologicalSpace E
inst✝¹⁰ : T2Space E
inst✝⁹ : TopologicalAddGroup E
inst✝⁸ : Module 𝕜 E
inst✝⁷ : ContinuousSMul 𝕜 E
inst✝⁶ : AddCommGroup F
inst✝⁵ : TopologicalSpace F
inst✝⁴ : T2Space F
inst✝³ : TopologicalAddGroup F
inst✝² : Module 𝕜 F
inst✝¹ : ContinuousSMul 𝕜 F
inst✝ : FiniteDimensional 𝕜 E
f : E →ₗ[𝕜] F
hf : ker f = ⊥
g : E ≃ₗ[𝕜] ↥(range f) := LinearEquiv.ofInjective f ⋯
this : FiniteDimensional 𝕜 ↥(range f)
⊢ IsClosed (Set.range ⇑f)
state_after: no goals
Theorem: not_squarefree_zero
File: Mathlib/Algebra/Squarefree/Basic.lean

tactic: erw [not_forall]
state_before: R : Type u_1
inst✝¹ : MonoidWithZero R
inst✝ : Nontrivial R
⊢ ¬Squarefree 0
state_after: R : Type u_1
inst✝¹ : MonoidWithZero R
inst✝ : Nontrivial R
⊢ ∃ x, ¬(x * x ∣ 0 → IsUnit x)

tactic: exact ⟨0, by simp⟩
state_before: R : Type u_1
inst✝¹ : MonoidWithZero R
inst✝ : Nontrivial R
⊢ ∃ x, ¬(x * x ∣ 0 → IsUnit x)
state_after: no goals

tactic: simp
state_before: R : Type u_1
inst✝¹ : MonoidWithZero R
inst✝ : Nontrivial R
⊢ ¬(0 * 0 ∣ 0 → IsUnit 0)
state_after: no goals
Theorem: MeasureTheory.Lp.simpleFunc.toSimpleFunc_toLp
File: Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean

tactic: rw [← AEEqFun.mk_eq_mk]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
f : α →ₛ E
hfi : Memℒp (↑f) p μ
⊢ ↑(toSimpleFunc (toLp f hfi)) =ᶠ[ae μ] ↑f
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
f : α →ₛ E
hfi : Memℒp (↑f) p μ
⊢ AEEqFun.mk ↑(toSimpleFunc (toLp f hfi)) ?m.235714 = AEEqFun.mk ↑f ?m.235715

α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
f : α →ₛ E
hfi : Memℒp (↑f) p μ
⊢ AEStronglyMeasurable (↑(toSimpleFunc (toLp f hfi))) μ

α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
f : α →ₛ E
hfi : Memℒp (↑f) p μ
⊢ AEStronglyMeasurable (↑f) μ

tactic: exact Classical.choose_spec (toLp f hfi).2
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
f : α →ₛ E
hfi : Memℒp (↑f) p μ
⊢ AEEqFun.mk ↑(toSimpleFunc (toLp f hfi)) ?m.235714 = AEEqFun.mk ↑f ?m.235715

α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
f : α →ₛ E
hfi : Memℒp (↑f) p μ
⊢ AEStronglyMeasurable (↑(toSimpleFunc (toLp f hfi))) μ

α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
f : α →ₛ E
hfi : Memℒp (↑f) p μ
⊢ AEStronglyMeasurable (↑f) μ
state_after: no goals
Theorem: lt_min
File: Mathlib/Init/Order/LinearOrder.lean

tactic: rwa [min_eq_left h]
state_before: α : Type u
inst✝ : LinearOrder α
a b c : α
h₁ : a < b
h₂ : a < c
h : b ≤ c
⊢ a < min b c
state_after: no goals

tactic: rwa [min_eq_right_of_lt h]
state_before: α : Type u
inst✝ : LinearOrder α
a b c : α
h₁ : a < b
h₂ : a < c
h : b > c
⊢ a < min b c
state_after: no goals
Theorem: CategoryTheory.MonoidalCategory.whiskerLeft_rightUnitor_inv
File: Mathlib/CategoryTheory/Monoidal/Category.lean

tactic: simp
state_before: C✝ : Type u
𝒞 : Category.{v, u} C✝
inst✝² : MonoidalCategory C✝
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : MonoidalCategory C
U V W X✝ Y✝ Z X Y : C
⊢ inv (X ◁ (ρ_ Y).inv) = inv ((ρ_ (X ⊗ Y)).inv ≫ (α_ X Y (𝟙_ C)).hom)
state_after: no goals
Theorem: SetTheory.Game.not_lf
File: Mathlib/SetTheory/Game/Basic.lean

tactic: rintro ⟨x⟩ ⟨y⟩
state_before: ⊢ ∀ {x y : Game}, ¬x ⧏ y ↔ y ≤ x
state_after: case mk.mk
x✝ : Game
x : PGame
y✝ : Game
y : PGame
⊢ ¬Quot.mk Setoid.r x ⧏ Quot.mk Setoid.r y ↔ Quot.mk Setoid.r y ≤ Quot.mk Setoid.r x

tactic: exact PGame.not_lf
state_before: case mk.mk
x✝ : Game
x : PGame
y✝ : Game
y : PGame
⊢ ¬Quot.mk Setoid.r x ⧏ Quot.mk Setoid.r y ↔ Quot.mk Setoid.r y ≤ Quot.mk Setoid.r x
state_after: no goals
Theorem: MvPolynomial.finsum_weightedHomogeneousComponent
File: Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean

tactic: rw [sum_weightedHomogeneousComponent]
state_before: R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : AddCommMonoid M
w : σ → M
n : M
φ ψ : MvPolynomial σ R
⊢ ∑ᶠ (m : M), (weightedHomogeneousComponent w m) φ = φ
state_after: no goals
Theorem: continuous_if
File: Mathlib/Topology/ContinuousOn.lean

tactic: rw [continuous_iff_continuousOn_univ]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁵ : TopologicalSpace α
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : (i : ι) → TopologicalSpace (π i)
inst✝³ : TopologicalSpace β
inst✝² : TopologicalSpace γ
inst✝¹ : TopologicalSpace δ
p : α → Prop
f g : α → β
inst✝ : (a : α) → Decidable (p a)
hp : ∀ a ∈ frontier {x | p x}, f a = g a
hf : ContinuousOn f (closure {x | p x})
hg : ContinuousOn g (closure {x | ¬p x})
⊢ Continuous fun a => if p a then f a else g a
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁵ : TopologicalSpace α
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : (i : ι) → TopologicalSpace (π i)
inst✝³ : TopologicalSpace β
inst✝² : TopologicalSpace γ
inst✝¹ : TopologicalSpace δ
p : α → Prop
f g : α → β
inst✝ : (a : α) → Decidable (p a)
hp : ∀ a ∈ frontier {x | p x}, f a = g a
hf : ContinuousOn f (closure {x | p x})
hg : ContinuousOn g (closure {x | ¬p x})
⊢ ContinuousOn (fun a => if p a then f a else g a) univ

tactic: apply ContinuousOn.if <;> simp <;> assumption
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁵ : TopologicalSpace α
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : (i : ι) → TopologicalSpace (π i)
inst✝³ : TopologicalSpace β
inst✝² : TopologicalSpace γ
inst✝¹ : TopologicalSpace δ
p : α → Prop
f g : α → β
inst✝ : (a : α) → Decidable (p a)
hp : ∀ a ∈ frontier {x | p x}, f a = g a
hf : ContinuousOn f (closure {x | p x})
hg : ContinuousOn g (closure {x | ¬p x})
⊢ ContinuousOn (fun a => if p a then f a else g a) univ
state_after: no goals
Theorem: Finset.exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum
File: Mathlib/Combinatorics/Pigeonhole.lean

tactic: simpa only [sum_fiberwise_of_maps_to hf, sum_const]
state_before: α : Type u
β : Type v
M : Type w
inst✝¹ : DecidableEq β
s : Finset α
t : Finset β
f : α → β
w : α → M
b : M
n : ℕ
inst✝ : LinearOrderedCancelAddCommMonoid M
hf : ∀ a ∈ s, f a ∈ t
ht : t.Nonempty
hb : t.card • b ≤ ∑ x ∈ s, w x
⊢ ∑ i ∈ t, b ≤ ∑ i ∈ t, ∑ x ∈ filter (fun x => f x = i) s, w x
state_after: no goals
Theorem: EuclideanDomain.gcd_zero_right
File: Mathlib/Algebra/EuclideanDomain/Basic.lean

tactic: rw [gcd]
state_before: R : Type u
inst✝¹ : EuclideanDomain R
inst✝ : DecidableEq R
a : R
⊢ gcd a 0 = a
state_after: R : Type u
inst✝¹ : EuclideanDomain R
inst✝ : DecidableEq R
a : R
⊢ (if a0 : a = 0 then 0
    else
      let_fun x := ⋯;
      gcd (0 % a) a) =
    a

tactic: split_ifs with h <;> simp only [h, zero_mod, gcd_zero_left]
state_before: R : Type u
inst✝¹ : EuclideanDomain R
inst✝ : DecidableEq R
a : R
⊢ (if a0 : a = 0 then 0
    else
      let_fun x := ⋯;
      gcd (0 % a) a) =
    a
state_after: no goals
Theorem: Real.tendsto_mul_exp_add_div_pow_atTop
File: Mathlib/Analysis/SpecialFunctions/Exp.lean

tactic: rcases eq_or_ne n 0 with (rfl | hn)
state_before: α : Type u_1
x y z : ℝ
l : Filter α
b c : ℝ
n : ℕ
hb : 0 < b
⊢ Tendsto (fun x => (b * rexp x + c) / x ^ n) atTop atTop
state_after: case inl
α : Type u_1
x y z : ℝ
l : Filter α
b c : ℝ
hb : 0 < b
⊢ Tendsto (fun x => (b * rexp x + c) / x ^ 0) atTop atTop

case inr
α : Type u_1
x y z : ℝ
l : Filter α
b c : ℝ
n : ℕ
hb : 0 < b
hn : n ≠ 0
⊢ Tendsto (fun x => (b * rexp x + c) / x ^ n) atTop atTop

tactic: simp only [add_div, mul_div_assoc]
state_before: case inr
α : Type u_1
x y z : ℝ
l : Filter α
b c : ℝ
n : ℕ
hb : 0 < b
hn : n ≠ 0
⊢ Tendsto (fun x => (b * rexp x + c) / x ^ n) atTop atTop
state_after: case inr
α : Type u_1
x y z : ℝ
l : Filter α
b c : ℝ
n : ℕ
hb : 0 < b
hn : n ≠ 0
⊢ Tendsto (fun x => b * (rexp x / x ^ n) + c / x ^ n) atTop atTop

tactic: exact
  ((tendsto_exp_div_pow_atTop n).const_mul_atTop hb).atTop_add
    (tendsto_const_nhds.div_atTop (tendsto_pow_atTop hn))
state_before: case inr
α : Type u_1
x y z : ℝ
l : Filter α
b c : ℝ
n : ℕ
hb : 0 < b
hn : n ≠ 0
⊢ Tendsto (fun x => b * (rexp x / x ^ n) + c / x ^ n) atTop atTop
state_after: no goals

tactic: simp only [pow_zero, div_one]
state_before: case inl
α : Type u_1
x y z : ℝ
l : Filter α
b c : ℝ
hb : 0 < b
⊢ Tendsto (fun x => (b * rexp x + c) / x ^ 0) atTop atTop
state_after: case inl
α : Type u_1
x y z : ℝ
l : Filter α
b c : ℝ
hb : 0 < b
⊢ Tendsto (fun x => b * rexp x + c) atTop atTop

tactic: exact (tendsto_exp_atTop.const_mul_atTop hb).atTop_add tendsto_const_nhds
state_before: case inl
α : Type u_1
x y z : ℝ
l : Filter α
b c : ℝ
hb : 0 < b
⊢ Tendsto (fun x => b * rexp x + c) atTop atTop
state_after: no goals
Theorem: Equiv.Perm.two_le_length_toList_iff_mem_support
File: Mathlib/GroupTheory/Perm/Cycle/Concrete.lean

tactic: simp
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p✝ : Perm α
x✝ : α
p : Perm α
x : α
⊢ 2 ≤ (p.toList x).length ↔ x ∈ p.support
state_after: no goals
Theorem: Filter.pi_inf_principal_pi_neBot
File: Mathlib/Order/Filter/Pi.lean

tactic: simp [neBot_iff]
state_before: ι : Type u_1
α : ι → Type u_2
f f₁ f₂ : (i : ι) → Filter (α i)
s : (i : ι) → Set (α i)
p : (i : ι) → α i → Prop
inst✝ : ∀ (i : ι), (f i).NeBot
I : Set ι
⊢ (pi f ⊓ 𝓟 (I.pi s)).NeBot ↔ ∀ i ∈ I, (f i ⊓ 𝓟 (s i)).NeBot
state_after: no goals