1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Asymptotics.IsBigOWith.rpow
File: Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean

tactic: apply IsBigOWith.of_bound
state_before: α : Type u_1
r c : ℝ
l : Filter α
f g : α → ℝ
h : IsBigOWith c l f g
hc : 0 ≤ c
hr : 0 ≤ r
hg : 0 ≤ᶠ[l] g
⊢ IsBigOWith (c ^ r) l (fun x => f x ^ r) fun x => g x ^ r
state_after: case a
α : Type u_1
r c : ℝ
l : Filter α
f g : α → ℝ
h : IsBigOWith c l f g
hc : 0 ≤ c
hr : 0 ≤ r
hg : 0 ≤ᶠ[l] g
⊢ ∀ᶠ (x : α) in l, ‖f x ^ r‖ ≤ c ^ r * ‖g x ^ r‖

tactic: filter_upwards [hg, h.bound] with x hgx hx
state_before: case a
α : Type u_1
r c : ℝ
l : Filter α
f g : α → ℝ
h : IsBigOWith c l f g
hc : 0 ≤ c
hr : 0 ≤ r
hg : 0 ≤ᶠ[l] g
⊢ ∀ᶠ (x : α) in l, ‖f x ^ r‖ ≤ c ^ r * ‖g x ^ r‖
state_after: case h
α : Type u_1
r c : ℝ
l : Filter α
f g : α → ℝ
h : IsBigOWith c l f g
hc : 0 ≤ c
hr : 0 ≤ r
hg : 0 ≤ᶠ[l] g
x : α
hgx : 0 x ≤ g x
hx : ‖f x‖ ≤ c * ‖g x‖
⊢ ‖f x ^ r‖ ≤ c ^ r * ‖g x ^ r‖

tactic: calc
  |f x ^ r| ≤ |f x| ^ r := abs_rpow_le_abs_rpow _ _
  _ ≤ (c * |g x|) ^ r := rpow_le_rpow (abs_nonneg _) hx hr
  _ = c ^ r * |g x ^ r| := by rw [mul_rpow hc (abs_nonneg _), abs_rpow_of_nonneg hgx]
state_before: case h
α : Type u_1
r c : ℝ
l : Filter α
f g : α → ℝ
h : IsBigOWith c l f g
hc : 0 ≤ c
hr : 0 ≤ r
hg : 0 ≤ᶠ[l] g
x : α
hgx : 0 x ≤ g x
hx : ‖f x‖ ≤ c * ‖g x‖
⊢ ‖f x ^ r‖ ≤ c ^ r * ‖g x ^ r‖
state_after: no goals

tactic: rw [mul_rpow hc (abs_nonneg _), abs_rpow_of_nonneg hgx]
state_before: α : Type u_1
r c : ℝ
l : Filter α
f g : α → ℝ
h : IsBigOWith c l f g
hc : 0 ≤ c
hr : 0 ≤ r
hg : 0 ≤ᶠ[l] g
x : α
hgx : 0 x ≤ g x
hx : ‖f x‖ ≤ c * ‖g x‖
⊢ (c * |g x|) ^ r = c ^ r * |g x ^ r|
state_after: no goals
Theorem: MvPolynomial.map_aeval
File: Mathlib/Algebra/MvPolynomial/Basic.lean

tactic: rw [← comp_eval₂Hom]
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S₁
p✝ q : MvPolynomial σ R
inst✝² : Algebra R S₁
inst✝¹ : CommSemiring S₂
f : σ → S₁
B : Type u_2
inst✝ : CommSemiring B
g : σ → S₁
φ : S₁ →+* B
p : MvPolynomial σ R
⊢ φ ((aeval g) p) = (eval₂Hom (φ.comp (algebraMap R S₁)) fun i => φ (g i)) p
state_after: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S₁
p✝ q : MvPolynomial σ R
inst✝² : Algebra R S₁
inst✝¹ : CommSemiring S₂
f : σ → S₁
B : Type u_2
inst✝ : CommSemiring B
g : σ → S₁
φ : S₁ →+* B
p : MvPolynomial σ R
⊢ φ ((aeval g) p) = (φ.comp (eval₂Hom (algebraMap R S₁) g)) p

tactic: rfl
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝⁴ : CommSemiring R
inst✝³ : CommSemiring S₁
p✝ q : MvPolynomial σ R
inst✝² : Algebra R S₁
inst✝¹ : CommSemiring S₂
f : σ → S₁
B : Type u_2
inst✝ : CommSemiring B
g : σ → S₁
φ : S₁ →+* B
p : MvPolynomial σ R
⊢ φ ((aeval g) p) = (φ.comp (eval₂Hom (algebraMap R S₁) g)) p
state_after: no goals
Theorem: Equiv.Perm.mem_support_swap_mul_imp_mem_support_ne
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: simp only [mem_support, swap_apply_def, mul_apply, f.injective.eq_iff] at *
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x y : α
hy : y ∈ (swap x (f x) * f).support
⊢ y ∈ f.support ∧ y ≠ x
state_after: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x y : α
hy : (if f y = x then f x else if y = x then x else f y) ≠ y
⊢ f y ≠ y ∧ y ≠ x

tactic: by_cases h : f y = x
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x y : α
hy : (if f y = x then f x else if y = x then x else f y) ≠ y
⊢ f y ≠ y ∧ y ≠ x
state_after: case pos
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x y : α
hy : (if f y = x then f x else if y = x then x else f y) ≠ y
h : f y = x
⊢ f y ≠ y ∧ y ≠ x

case neg
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x y : α
hy : (if f y = x then f x else if y = x then x else f y) ≠ y
h : ¬f y = x
⊢ f y ≠ y ∧ y ≠ x

tactic: constructor <;> intro <;> simp_all only [if_true, eq_self_iff_true, not_true, Ne]
state_before: case pos
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x y : α
hy : (if f y = x then f x else if y = x then x else f y) ≠ y
h : f y = x
⊢ f y ≠ y ∧ y ≠ x
state_after: no goals

tactic: split_ifs at hy with heq
state_before: case neg
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x y : α
hy : (if f y = x then f x else if y = x then x else f y) ≠ y
h : ¬f y = x
⊢ f y ≠ y ∧ y ≠ x
state_after: case pos
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x y : α
h : ¬f y = x
heq : y = x
hy : x ≠ y
⊢ f y ≠ y ∧ y ≠ x

case neg
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x y : α
h : ¬f y = x
heq : ¬y = x
hy : f y ≠ y
⊢ f y ≠ y ∧ y ≠ x

tactic: subst heq
state_before: case pos
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x y : α
h : ¬f y = x
heq : y = x
hy : x ≠ y
⊢ f y ≠ y ∧ y ≠ x
state_after: case pos
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
y : α
h : ¬f y = y
hy : y ≠ y
⊢ f y ≠ y ∧ y ≠ y

tactic: exact ⟨h, hy⟩
state_before: case pos
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
y : α
h : ¬f y = y
hy : y ≠ y
⊢ f y ≠ y ∧ y ≠ y
state_after: no goals

tactic: exact ⟨hy, heq⟩
state_before: case neg
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x y : α
h : ¬f y = x
heq : ¬y = x
hy : f y ≠ y
⊢ f y ≠ y ∧ y ≠ x
state_after: no goals
Theorem: inv_lt_zero
File: Mathlib/Algebra/Order/Field/Defs.lean

tactic: simp only [← not_le, inv_nonneg]
state_before: α : Type u_1
inst✝ : LinearOrderedSemifield α
a b : α
⊢ a⁻¹ < 0 ↔ a < 0
state_after: no goals
Theorem: cfcₙ_star_id
File: Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean

tactic: rw [cfcₙ_star _ a, cfcₙ_id' R a]
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹² : CommSemiring R
inst✝¹¹ : Nontrivial R
inst✝¹⁰ : StarRing R
inst✝⁹ : MetricSpace R
inst✝⁸ : TopologicalSemiring R
inst✝⁷ : ContinuousStar R
inst✝⁶ : NonUnitalRing A
inst✝⁵ : StarRing A
inst✝⁴ : TopologicalSpace A
inst✝³ : Module R A
inst✝² : IsScalarTower R A A
inst✝¹ : SMulCommClass R A A
inst✝ : NonUnitalContinuousFunctionalCalculus R p
f g : R → R
a : A
hf : autoParam (ContinuousOn f (σₙ R a)) _auto✝
hf0 : autoParam (f 0 = 0) _auto✝
hg : autoParam (ContinuousOn g (σₙ R a)) _auto✝
hg0 : autoParam (g 0 = 0) _auto✝
ha : autoParam (p a) _auto✝
⊢ cfcₙ (fun x => star x) a = star a
state_after: no goals
Theorem: ENNReal.ofReal_pos
File: Mathlib/Data/ENNReal/Real.lean

tactic: simp [ENNReal.ofReal]
state_before: a b c d : ℝ≥0∞
r p✝ q : ℝ≥0
p : ℝ
⊢ 0 < ENNReal.ofReal p ↔ 0 < p
state_after: no goals
Theorem: MeasureTheory.lintegral_countable
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: rw [biUnion_of_singleton]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝ : MeasurableSingletonClass α
f : α → ℝ≥0∞
s : Set α
hs : s.Countable
⊢ ∫⁻ (a : α) in s, f a ∂μ = ∫⁻ (a : α) in ⋃ x ∈ s, {x}, f a ∂μ
state_after: no goals

tactic: simp only [lintegral_singleton]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝ : MeasurableSingletonClass α
f : α → ℝ≥0∞
s : Set α
hs : s.Countable
⊢ ∑' (a : ↑s), ∫⁻ (x : α) in {↑a}, f x ∂μ = ∑' (a : ↑s), f ↑a * μ {↑a}
state_after: no goals
Theorem: Mathlib.Meta.NormNum.IsNatPowT.bit0
File: Mathlib/Tactic/NormNum/Pow.lean

tactic: simp [two_mul, pow_add, ← h1]
state_before: a b : ℕ
c : ℕ
h1 : a.pow b = c
⊢ a.pow (2 * b) = c.mul c
state_after: no goals
Theorem: Set.range_extend_subset
File: Mathlib/Data/Set/Function.lean

tactic: classical
rintro _ ⟨y, rfl⟩
rw [extend_def]
split_ifs with h
exacts [Or.inl (mem_range_self _), Or.inr (mem_image_of_mem _ h)]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
f : α → β
g : α → γ
g' : β → γ
⊢ range (extend f g g') ⊆ range g ∪ g' '' (range f)ᶜ
state_after: no goals

tactic: rintro _ ⟨y, rfl⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
f : α → β
g : α → γ
g' : β → γ
⊢ range (extend f g g') ⊆ range g ∪ g' '' (range f)ᶜ
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
f : α → β
g : α → γ
g' : β → γ
y : β
⊢ extend f g g' y ∈ range g ∪ g' '' (range f)ᶜ

tactic: rw [extend_def]
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
f : α → β
g : α → γ
g' : β → γ
y : β
⊢ extend f g g' y ∈ range g ∪ g' '' (range f)ᶜ
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
f : α → β
g : α → γ
g' : β → γ
y : β
⊢ (if h : ∃ a, f a = y then g (Classical.choose h) else g' y) ∈ range g ∪ g' '' (range f)ᶜ

tactic: split_ifs with h
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
f : α → β
g : α → γ
g' : β → γ
y : β
⊢ (if h : ∃ a, f a = y then g (Classical.choose h) else g' y) ∈ range g ∪ g' '' (range f)ᶜ
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
f : α → β
g : α → γ
g' : β → γ
y : β
h : ∃ a, f a = y
⊢ g (Classical.choose h) ∈ range g ∪ g' '' (range f)ᶜ

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
f : α → β
g : α → γ
g' : β → γ
y : β
h : ¬∃ a, f a = y
⊢ g' y ∈ range g ∪ g' '' (range f)ᶜ

tactic: exacts [Or.inl (mem_range_self _), Or.inr (mem_image_of_mem _ h)]
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
f : α → β
g : α → γ
g' : β → γ
y : β
h : ∃ a, f a = y
⊢ g (Classical.choose h) ∈ range g ∪ g' '' (range f)ᶜ

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
f : α → β
g : α → γ
g' : β → γ
y : β
h : ¬∃ a, f a = y
⊢ g' y ∈ range g ∪ g' '' (range f)ᶜ
state_after: no goals
Theorem: Submodule.inf_genEigenspace
File: Mathlib/LinearAlgebra/Eigenspace/Basic.lean

tactic: rw [f.genEigenspace_restrict _ _ _ hfp, Submodule.map_comap_eq, Submodule.range_subtype]
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End R M
p : Submodule R M
k : ℕ
μ : R
hfp : ∀ x ∈ p, f x ∈ p
⊢ p ⊓ (f.genEigenspace μ) k = Submodule.map p.subtype ((genEigenspace (LinearMap.restrict f hfp) μ) k)
state_after: no goals
Theorem: Ordinal.le_cof_iff_blsub
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: simpa using H _ hf
state_before: α : Type u_1
r : α → α → Prop
b : Ordinal.{u}
a : Cardinal.{u}
H : ∀ {ι : Type u} (f : ι → Ordinal.{u}), lsub f = b → a ≤ #ι
o : Ordinal.{u}
f : (a : Ordinal.{u}) → a < o → Ordinal.{u}
hf : o.blsub f = b
⊢ a ≤ o.card
state_after: no goals

tactic: rcases Cardinal.ord_eq ι with ⟨r, hr, hι'⟩
state_before: α : Type u_1
r : α → α → Prop
b : Ordinal.{u}
a : Cardinal.{u}
H : ∀ {o : Ordinal.{u}} (f : (a : Ordinal.{u}) → a < o → Ordinal.{u}), o.blsub f = b → a ≤ o.card
ι : Type u
f : ι → Ordinal.{u}
hf : lsub f = b
⊢ a ≤ #ι
state_after: case intro.intro
α : Type u_1
r✝ : α → α → Prop
b : Ordinal.{u}
a : Cardinal.{u}
H : ∀ {o : Ordinal.{u}} (f : (a : Ordinal.{u}) → a < o → Ordinal.{u}), o.blsub f = b → a ≤ o.card
ι : Type u
f : ι → Ordinal.{u}
hf : lsub f = b
r : ι → ι → Prop
hr : IsWellOrder ι r
hι' : (#ι).ord = type r
⊢ a ≤ #ι

tactic: rw [← @blsub_eq_lsub' ι r hr] at hf
state_before: case intro.intro
α : Type u_1
r✝ : α → α → Prop
b : Ordinal.{u}
a : Cardinal.{u}
H : ∀ {o : Ordinal.{u}} (f : (a : Ordinal.{u}) → a < o → Ordinal.{u}), o.blsub f = b → a ≤ o.card
ι : Type u
f : ι → Ordinal.{u}
hf : lsub f = b
r : ι → ι → Prop
hr : IsWellOrder ι r
hι' : (#ι).ord = type r
⊢ a ≤ #ι
state_after: case intro.intro
α : Type u_1
r✝ : α → α → Prop
b : Ordinal.{u}
a : Cardinal.{u}
H : ∀ {o : Ordinal.{u}} (f : (a : Ordinal.{u}) → a < o → Ordinal.{u}), o.blsub f = b → a ≤ o.card
ι : Type u
f : ι → Ordinal.{u}
r : ι → ι → Prop
hr : IsWellOrder ι r
hf : (type r).blsub (bfamilyOfFamily' r f) = b
hι' : (#ι).ord = type r
⊢ a ≤ #ι

tactic: simpa using H _ hf
state_before: case intro.intro
α : Type u_1
r✝ : α → α → Prop
b : Ordinal.{u}
a : Cardinal.{u}
H : ∀ {o : Ordinal.{u}} (f : (a : Ordinal.{u}) → a < o → Ordinal.{u}), o.blsub f = b → a ≤ o.card
ι : Type u
f : ι → Ordinal.{u}
r : ι → ι → Prop
hr : IsWellOrder ι r
hf : (type r).blsub (bfamilyOfFamily' r f) = b
hι' : (#ι).ord = type r
⊢ a ≤ #ι
state_after: no goals
Theorem: Set.image_add_const_Iio
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
⊢ (fun x => x + a) '' Iio b = Iio (b + a)
state_after: no goals
Theorem: IntermediateField.lift_top
File: Mathlib/FieldTheory/Adjoin.lean

tactic: rw [lift, ← AlgHom.fieldRange_eq_map, fieldRange_val]
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
K : IntermediateField F E
⊢ lift ⊤ = K
state_after: no goals
Theorem: Real.IsConjExponent.symm
File: Mathlib/Data/Real/ConjExponents.lean

tactic: simpa only [h.conj_eq] using (one_lt_div h.sub_one_pos).mpr (sub_one_lt p)
state_before: a b p q : ℝ
h : p.IsConjExponent q
⊢ 1 < q
state_after: no goals

tactic: simpa [add_comm] using h.inv_add_inv_conj
state_before: a b p q : ℝ
h : p.IsConjExponent q
⊢ q⁻¹ + p⁻¹ = 1
state_after: no goals
Theorem: εNFA.evalFrom_empty
File: Mathlib/Computability/EpsilonNFA.lean

tactic: induction' x using List.reverseRecOn with x a ih
state_before: α : Type u
σ σ' : Type v
M : εNFA α σ
S : Set σ
x✝ : List α
s : σ
a : α
x : List α
⊢ M.evalFrom ∅ x = ∅
state_after: case nil
α : Type u
σ σ' : Type v
M : εNFA α σ
S : Set σ
x : List α
s : σ
a : α
⊢ M.evalFrom ∅ [] = ∅

case append_singleton
α : Type u
σ σ' : Type v
M : εNFA α σ
S : Set σ
x✝ : List α
s : σ
a✝ : α
x : List α
a : α
ih : M.evalFrom ∅ x = ∅
⊢ M.evalFrom ∅ (x ++ [a]) = ∅

tactic: rw [evalFrom_nil, εClosure_empty]
state_before: case nil
α : Type u
σ σ' : Type v
M : εNFA α σ
S : Set σ
x : List α
s : σ
a : α
⊢ M.evalFrom ∅ [] = ∅
state_after: no goals

tactic: rw [evalFrom_append_singleton, ih, stepSet_empty]
state_before: case append_singleton
α : Type u
σ σ' : Type v
M : εNFA α σ
S : Set σ
x✝ : List α
s : σ
a✝ : α
x : List α
a : α
ih : M.evalFrom ∅ x = ∅
⊢ M.evalFrom ∅ (x ++ [a]) = ∅
state_after: no goals
Theorem: Finsupp.filter_smul
File: Mathlib/Data/Finsupp/Basic.lean

tactic: simp only [filter_eq_indicator, coe_smul]
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
p : α → Prop
inst✝² : DecidablePred p
x✝ : Monoid R
inst✝¹ : AddMonoid M
inst✝ : DistribMulAction R M
b : R
v : α →₀ M
⊢ (fun f => ⇑f) (filter p (b • v)) = (fun f => ⇑f) (b • filter p v)
state_after: α : 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
p : α → Prop
inst✝² : DecidablePred p
x✝ : Monoid R
inst✝¹ : AddMonoid M
inst✝ : DistribMulAction R M
b : R
v : α →₀ M
⊢ {x | p x}.indicator (b • ⇑v) = b • {x | p x}.indicator ⇑v

tactic: exact Set.indicator_const_smul { x | p x } b v
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
p : α → Prop
inst✝² : DecidablePred p
x✝ : Monoid R
inst✝¹ : AddMonoid M
inst✝ : DistribMulAction R M
b : R
v : α →₀ M
⊢ {x | p x}.indicator (b • ⇑v) = b • {x | p x}.indicator ⇑v
state_after: no goals
Theorem: Int.squarefree_natAbs
File: Mathlib/Algebra/Squarefree/Basic.lean

tactic: simp_rw [Squarefree, natAbs_surjective.forall, ← natAbs_mul, natAbs_dvd_natAbs,
  isUnit_iff_natAbs_eq, Nat.isUnit_iff]
state_before: R : Type u_1
n : ℤ
⊢ Squarefree n.natAbs ↔ Squarefree n
state_after: no goals
Theorem: Fin.univ_image_get'
File: Mathlib/Data/Fintype/Basic.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq β
l : List α
f : α → β
⊢ image (fun x => f (l.get x)) univ = (List.map f l).toFinset
state_after: no goals
Theorem: Subgroup.coe_iSup_of_directed
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: simp [mem_iSup_of_directed hS]
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁴ : Group G
inst✝³ : Group G'
inst✝² : Group G''
A : Type u_4
inst✝¹ : AddGroup A
H K : Subgroup G
k : Set G
ι : Sort u_5
inst✝ : Nonempty ι
S : ι → Subgroup G
hS : Directed (fun x x_1 => x ≤ x_1) S
x : G
⊢ x ∈ ↑(⨆ i, S i) ↔ x ∈ ⋃ i, ↑(S i)
state_after: no goals
Theorem: map_mul_right_nhds_one
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: simp
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝³ : TopologicalSpace G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : TopologicalSpace α
f : α → G
s : Set α
x✝ : α
x : G
⊢ map (fun x_1 => x_1 * x) (𝓝 1) = 𝓝 x
state_after: no goals
Theorem: Cardinal.mk_toPartENat_eq_coe_card
File: Mathlib/SetTheory/Cardinal/PartENat.lean

tactic: simp
state_before: α : Type u
inst✝ : Fintype α
⊢ toPartENat #α = ↑(Fintype.card α)
state_after: no goals
Theorem: List.attach_map_coe'
File: Mathlib/Data/List/Basic.lean

tactic: rw [attach, attachWith, map_pmap]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ l : List α
f : α → β
⊢ map (fun i => f ↑i) l.attach = map f l
state_after: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ l : List α
f : α → β
⊢ pmap (fun a h => f ↑⟨a, h⟩) l ⋯ = map f l

tactic: exact pmap_eq_map _ _ _ _
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ l : List α
f : α → β
⊢ pmap (fun a h => f ↑⟨a, h⟩) l ⋯ = map f l
state_after: no goals
Theorem: BoxIntegral.Prepartition.inf_splitMany
File: Mathlib/Analysis/BoxIntegral/Partition/Split.lean

tactic: induction' s using Finset.induction_on with p s _ ihp
state_before: ι : Type u_1
M : Type u_2
n : ℕ
I✝ J : Box ι
i : ι
x : ℝ
I : Box ι
π : Prepartition I
s : Finset (ι × ℝ)
⊢ π ⊓ splitMany I s = π.biUnion fun J => splitMany J s
state_after: case empty
ι : Type u_1
M : Type u_2
n : ℕ
I✝ J : Box ι
i : ι
x : ℝ
I : Box ι
π : Prepartition I
⊢ π ⊓ splitMany I ∅ = π.biUnion fun J => splitMany J ∅

case insert
ι : Type u_1
M : Type u_2
n : ℕ
I✝ J : Box ι
i : ι
x : ℝ
I : Box ι
π : Prepartition I
p : ι × ℝ
s : Finset (ι × ℝ)
a✝ : p ∉ s
ihp : π ⊓ splitMany I s = π.biUnion fun J => splitMany J s
⊢ π ⊓ splitMany I (insert p s) = π.biUnion fun J => splitMany J (insert p s)

tactic: simp
state_before: case empty
ι : Type u_1
M : Type u_2
n : ℕ
I✝ J : Box ι
i : ι
x : ℝ
I : Box ι
π : Prepartition I
⊢ π ⊓ splitMany I ∅ = π.biUnion fun J => splitMany J ∅
state_after: no goals

tactic: simp_rw [splitMany_insert, ← inf_assoc, ihp, inf_split, biUnion_assoc]
state_before: case insert
ι : Type u_1
M : Type u_2
n : ℕ
I✝ J : Box ι
i : ι
x : ℝ
I : Box ι
π : Prepartition I
p : ι × ℝ
s : Finset (ι × ℝ)
a✝ : p ∉ s
ihp : π ⊓ splitMany I s = π.biUnion fun J => splitMany J s
⊢ π ⊓ splitMany I (insert p s) = π.biUnion fun J => splitMany J (insert p s)
state_after: no goals
Theorem: ContinuousLinearMap.opNorm_neg
File: Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean

tactic: simp only [norm_def, neg_apply, norm_neg]
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type u_3
E : Type u_4
Eₗ : Type u_5
F : Type u_6
Fₗ : Type u_7
G : Type u_8
Gₗ : Type u_9
𝓕 : Type u_10
inst✝¹⁵ : SeminormedAddCommGroup E
inst✝¹⁴ : SeminormedAddCommGroup Eₗ
inst✝¹³ : SeminormedAddCommGroup F
inst✝¹² : SeminormedAddCommGroup Fₗ
inst✝¹¹ : SeminormedAddCommGroup G
inst✝¹⁰ : SeminormedAddCommGroup Gₗ
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NontriviallyNormedField 𝕜₂
inst✝⁷ : NontriviallyNormedField 𝕜₃
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedSpace 𝕜 Eₗ
inst✝⁴ : NormedSpace 𝕜₂ F
inst✝³ : NormedSpace 𝕜 Fₗ
inst✝² : NormedSpace 𝕜₃ G
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝ : FunLike 𝓕 E F
f : E →SL[σ₁₂] F
⊢ ‖-f‖ = ‖f‖
state_after: no goals
Theorem: FiniteInter.finiteInter_mem
File: Mathlib/Data/Set/Constructions.lean

tactic: refine Finset.induction_on F (fun _ => ?_) ?_
state_before: α : Type u_1
S : Set (Set α)
cond : FiniteInter S
F : Finset (Set α)
⊢ ↑F ⊆ S → ⋂₀ ↑F ∈ S
state_after: case refine_1
α : Type u_1
S : Set (Set α)
cond : FiniteInter S
F : Finset (Set α)
x✝ : ↑∅ ⊆ S
⊢ ⋂₀ ↑∅ ∈ S

case refine_2
α : Type u_1
S : Set (Set α)
cond : FiniteInter S
F : Finset (Set α)
⊢ ∀ ⦃a : Set α⦄ {s : Finset (Set α)}, a ∉ s → (↑s ⊆ S → ⋂₀ ↑s ∈ S) → ↑(insert a s) ⊆ S → ⋂₀ ↑(insert a s) ∈ S

tactic: simp [cond.univ_mem]
state_before: case refine_1
α : Type u_1
S : Set (Set α)
cond : FiniteInter S
F : Finset (Set α)
x✝ : ↑∅ ⊆ S
⊢ ⋂₀ ↑∅ ∈ S
state_after: no goals

tactic: intro a s _ h1 h2
state_before: case refine_2
α : Type u_1
S : Set (Set α)
cond : FiniteInter S
F : Finset (Set α)
⊢ ∀ ⦃a : Set α⦄ {s : Finset (Set α)}, a ∉ s → (↑s ⊆ S → ⋂₀ ↑s ∈ S) → ↑(insert a s) ⊆ S → ⋂₀ ↑(insert a s) ∈ S
state_after: case refine_2
α : Type u_1
S : Set (Set α)
cond : FiniteInter S
F : Finset (Set α)
a : Set α
s : Finset (Set α)
a✝ : a ∉ s
h1 : ↑s ⊆ S → ⋂₀ ↑s ∈ S
h2 : ↑(insert a s) ⊆ S
⊢ ⋂₀ ↑(insert a s) ∈ S

tactic: suffices a ∩ ⋂₀ ↑s ∈ S by simpa
state_before: case refine_2
α : Type u_1
S : Set (Set α)
cond : FiniteInter S
F : Finset (Set α)
a : Set α
s : Finset (Set α)
a✝ : a ∉ s
h1 : ↑s ⊆ S → ⋂₀ ↑s ∈ S
h2 : ↑(insert a s) ⊆ S
⊢ ⋂₀ ↑(insert a s) ∈ S
state_after: case refine_2
α : Type u_1
S : Set (Set α)
cond : FiniteInter S
F : Finset (Set α)
a : Set α
s : Finset (Set α)
a✝ : a ∉ s
h1 : ↑s ⊆ S → ⋂₀ ↑s ∈ S
h2 : ↑(insert a s) ⊆ S
⊢ a ∩ ⋂₀ ↑s ∈ S

tactic: exact
  cond.inter_mem (h2 (Finset.mem_insert_self a s))
    (h1 fun x hx => h2 <| Finset.mem_insert_of_mem hx)
state_before: case refine_2
α : Type u_1
S : Set (Set α)
cond : FiniteInter S
F : Finset (Set α)
a : Set α
s : Finset (Set α)
a✝ : a ∉ s
h1 : ↑s ⊆ S → ⋂₀ ↑s ∈ S
h2 : ↑(insert a s) ⊆ S
⊢ a ∩ ⋂₀ ↑s ∈ S
state_after: no goals

tactic: simpa
state_before: α : Type u_1
S : Set (Set α)
cond : FiniteInter S
F : Finset (Set α)
a : Set α
s : Finset (Set α)
a✝ : a ∉ s
h1 : ↑s ⊆ S → ⋂₀ ↑s ∈ S
h2 : ↑(insert a s) ⊆ S
this : a ∩ ⋂₀ ↑s ∈ S
⊢ ⋂₀ ↑(insert a s) ∈ S
state_after: no goals
Theorem: MeasureTheory.OuterMeasure.map_top_of_surjective
File: Mathlib/MeasureTheory/OuterMeasure/Operations.lean

tactic: rw [map_top, hf.range_eq, restrict_univ]
state_before: α : Type u_1
β : Type u_2
m : OuterMeasure α
f : α → β
hf : Surjective f
⊢ (map f) ⊤ = ⊤
state_after: no goals
Theorem: Ordinal.card_le_one
File: Mathlib/SetTheory/Ordinal/Basic.lean

tactic: simpa using card_le_nat (n := 1)
state_before: α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal.{u_3}
⊢ o.card ≤ 1 ↔ o ≤ 1
state_after: no goals
Theorem: toIocDiv_sub_zsmul
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [sub_eq_add_neg, ← neg_smul, toIocDiv_add_zsmul, sub_eq_add_neg]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
m : ℤ
⊢ toIocDiv hp a (b - m • p) = toIocDiv hp a b - m
state_after: no goals