tasksource/leandojo huggingface dataset:
Theorem: Submodule.mul_induction_on
File: Mathlib/Algebra/Algebra/Operations.lean

tactic: rw [← mem_toAddSubmonoid, mul_toAddSubmonoid] at hr
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : Semiring A
inst✝ : Algebra R A
S T : Set A
M N P Q : Submodule R A
m n : A
C : A → Prop
r : A
hr : r ∈ M * N
hm : ∀ (m : A), m ∈ M → ∀ (n : A), n ∈ N → C (m * n)
ha : ∀ (x y : A), C x → C y → C (x + y)
⊢ C r

tactic: exact AddSubmonoid.mul_induction_on hr hm ha
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : Semiring A
inst✝ : Algebra R A
S T : Set A
M N P Q : Submodule R A
m n : A
C : A → Prop
r : A
hr : r ∈ M.toAddSubmonoid * N.toAddSubmonoid
hm : ∀ (m : A), m ∈ M → ∀ (n : A), n ∈ N → C (m * n)
ha : ∀ (x y : A), C x → C y → C (x + y)
⊢ C r
Theorem: CategoryTheory.Functor.congr_map
File: Mathlib/CategoryTheory/EqToHom.lean

tactic: rw [h]
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F : C ⥤ D
X Y : C
f g : X ⟶ Y
h : f = g
⊢ F.map f = F.map g
Theorem: CategoryTheory.Limits.hasTerminal_of_hasTerminal_of_preservesLimit
File: Mathlib/CategoryTheory/Limits/Preserves/Shapes/Terminal.lean

tactic: haveI := HasLimit.mk ⟨_, isLimitOfHasTerminalOfPreservesLimit G⟩
state_before: C : Type u₁
inst✝³ : Category C
D : Type u₂
inst✝² : Category D
G : C ⥤ D
X : C
inst✝¹ : HasTerminal C
inst✝ : PreservesLimit (Functor.empty C) G
F : Discrete PEmpty ⥤ D
⊢ HasLimit F

tactic: apply hasLimitOfIso F.uniqueFromEmpty.symm
state_before: C : Type u₁
inst✝³ : Category C
D : Type u₂
inst✝² : Category D
G : C ⥤ D
X : C
inst✝¹ : HasTerminal C
inst✝ : PreservesLimit (Functor.empty C) G
F : Discrete PEmpty ⥤ D
this : HasLimit (Functor.empty D)
⊢ HasLimit F
Theorem: List.permutations_append
File: Mathlib/Data/List/Permutation.lean

tactic: simp [permutations, permutationsAux_append]
state_before: α : Type u_1
β : Type ?u.33481
is ts : List α
⊢ permutations (is ++ ts) = map (fun x => x ++ ts) (permutations is) ++ permutationsAux ts (reverse is)
Theorem: Real.volume_singleton
File: Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean

tactic: simp [volume_val]
state_before: ι : Type ?u.123265
inst✝ : Fintype ι
a : ℝ
⊢ ↑↑volume {a} = 0
Theorem: AdjoinRoot.mk_self
File: Mathlib/RingTheory/AdjoinRoot.lean

tactic: simp
state_before: R : Type u
S : Type v
K : Type w
inst✝ : CommRing R
f : R[X]
⊢ f ∣ -f + 0
Theorem: bernsteinApproximation.lt_of_mem_S
File: Mathlib/Analysis/SpecialFunctions/Bernstein.lean

tactic: apply f.dist_lt_of_dist_lt_modulus (ε / 2) (half_pos h)
state_before: f : C(↑I, ℝ)
ε : ℝ
h : 0 < ε
n : ℕ
x : ↑I
k : Fin (n + 1)
m : k ∈ S f ε h n x
⊢ abs (↑f k/ₙ - ↑f x) < ε / 2

tactic: simpa [S, (Set.mem_toFinset)] using m
state_before: f : C(↑I, ℝ)
ε : ℝ
h : 0 < ε
n : ℕ
x : ↑I
k : Fin (n + 1)
m : k ∈ S f ε h n x
⊢ dist k/ₙ x < ContinuousMap.modulus f (ε / 2) (_ : 0 < ε / 2)
Theorem: intervalIntegral.inv_smul_integral_comp_sub_div
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: by_cases hc : c = 0 <;> simp [hc, integral_comp_sub_div]
state_before: ι : Type ?u.14949594
𝕜 : Type ?u.14949597
E : Type u_1
F : Type ?u.14949603
A : Type ?u.14949606
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b c✝ d✝ : ℝ
f : ℝ → E
c d : ℝ
⊢ (c⁻¹ • ∫ (x : ℝ) in a..b, f (d - x / c)) = ∫ (x : ℝ) in d - b / c..d - a / c, f x
Theorem: TopCat.Presheaf.stalkSpecializes_refl
File: Mathlib/Topology/Sheaves/Stalks.lean

tactic: dsimp
state_before: C✝ : Type u
inst✝³ : Category C✝
inst✝² : HasColimits C✝
X✝ Y Z : TopCat
C : Type u_1
inst✝¹ : Category C
inst✝ : HasColimits C
X : TopCat
F : Presheaf C X
x : ↑X
x✝¹ : Opens ↑X
x✝ : x ∈ x✝¹
⊢ germ F { val := x, property := x✝ } ≫ stalkSpecializes F (_ : x ⤳ x) =
    germ F { val := x, property := x✝ } ≫ 𝟙 (stalk F x)

tactic: simp
state_before: C✝ : Type u
inst✝³ : Category C✝
inst✝² : HasColimits C✝
X✝ Y Z : TopCat
C : Type u_1
inst✝¹ : Category C
inst✝ : HasColimits C
X : TopCat
F : Presheaf C X
x : ↑X
x✝¹ : Opens ↑X
x✝ : x ∈ x✝¹
⊢ germ F { val := x, property := x✝ } ≫ stalkSpecializes F (_ : x ⤳ x) =
    germ F { val := x, property := x✝ } ≫ 𝟙 (stalk F x)
Theorem: Mathlib.Tactic.Ring.natCast_add
File: Mathlib/Tactic/Ring/Basic.lean

tactic: subst_vars
state_before: u : Lean.Level
R : Type u_1
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝ : CommSemiring R
a₁ : ℕ
b₁ : R
a₂ : ℕ
b₂ : R
x✝¹ : ↑a₁ = b₁
x✝ : ↑a₂ = b₂
⊢ ↑(a₁ + a₂) = b₁ + b₂

tactic: simp
state_before: u : Lean.Level
R : Type u_1
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝ : CommSemiring R
a₁ a₂ : ℕ
⊢ ↑(a₁ + a₂) = ↑a₁ + ↑a₂
Theorem: inv_le_one_iff
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rcases em (a = 1) with (rfl | ha)
state_before: ι : Type ?u.58702
α : Type u_1
β : Type ?u.58708
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
⊢ a⁻¹ ≤ 1 ↔ a ≤ 0 ∨ 1 ≤ a

tactic: simp [le_rfl]
state_before: case inl
ι : Type ?u.58702
α : Type u_1
β : Type ?u.58708
inst✝ : LinearOrderedSemifield α
b c d e : α
m n : ℤ
⊢ 1⁻¹ ≤ 1 ↔ 1 ≤ 0 ∨ 1 ≤ 1

tactic: simp only [Ne.le_iff_lt (Ne.symm ha), Ne.le_iff_lt (mt inv_eq_one.1 ha), inv_lt_one_iff]
state_before: case inr
ι : Type ?u.58702
α : Type u_1
β : Type ?u.58708
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
ha : ¬a = 1
⊢ a⁻¹ ≤ 1 ↔ a ≤ 0 ∨ 1 ≤ a
Theorem: exists_subset_iUnion_ball_radius_lt
File: Mathlib/Topology/MetricSpace/ShrinkingLemma.lean

tactic: rcases exists_subset_iUnion_closed_subset hs (fun i => @isOpen_ball _ _ (c i) (r i)) uf us with
  ⟨v, hsv, hvc, hcv⟩
state_before: α : Type u
ι : Type v
inst✝¹ : MetricSpace α
inst✝ : ProperSpace α
c : ι → α
x : α
r✝ : ℝ
s : Set α
r : ι → ℝ
hs : IsClosed s
uf : ∀ (x : α), x ∈ s → Set.Finite {i | x ∈ ball (c i) (r i)}
us : s ⊆ ⋃ (i : ι), ball (c i) (r i)
⊢ ∃ r', (s ⊆ ⋃ (i : ι), ball (c i) (r' i)) ∧ ∀ (i : ι), r' i < r i

tactic: have := fun i => exists_lt_subset_ball (hvc i) (hcv i)
state_before: case intro.intro.intro
α : Type u
ι : Type v
inst✝¹ : MetricSpace α
inst✝ : ProperSpace α
c : ι → α
x : α
r✝ : ℝ
s : Set α
r : ι → ℝ
hs : IsClosed s
uf : ∀ (x : α), x ∈ s → Set.Finite {i | x ∈ ball (c i) (r i)}
us : s ⊆ ⋃ (i : ι), ball (c i) (r i)
v : ι → Set α
hsv : s ⊆ iUnion v
hvc : ∀ (i : ι), IsClosed (v i)
hcv : ∀ (i : ι), v i ⊆ ball (c i) (r i)
⊢ ∃ r', (s ⊆ ⋃ (i : ι), ball (c i) (r' i)) ∧ ∀ (i : ι), r' i < r i

tactic: choose r' hlt hsub using this
state_before: case intro.intro.intro
α : Type u
ι : Type v
inst✝¹ : MetricSpace α
inst✝ : ProperSpace α
c : ι → α
x : α
r✝ : ℝ
s : Set α
r : ι → ℝ
hs : IsClosed s
uf : ∀ (x : α), x ∈ s → Set.Finite {i | x ∈ ball (c i) (r i)}
us : s ⊆ ⋃ (i : ι), ball (c i) (r i)
v : ι → Set α
hsv : s ⊆ iUnion v
hvc : ∀ (i : ι), IsClosed (v i)
hcv : ∀ (i : ι), v i ⊆ ball (c i) (r i)
this : ∀ (i : ι), ∃ r', r' < r i ∧ v i ⊆ ball (c i) r'
⊢ ∃ r', (s ⊆ ⋃ (i : ι), ball (c i) (r' i)) ∧ ∀ (i : ι), r' i < r i

tactic: exact ⟨r', hsv.trans <| iUnion_mono <| hsub, hlt⟩
state_before: case intro.intro.intro
α : Type u
ι : Type v
inst✝¹ : MetricSpace α
inst✝ : ProperSpace α
c : ι → α
x : α
r✝ : ℝ
s : Set α
r : ι → ℝ
hs : IsClosed s
uf : ∀ (x : α), x ∈ s → Set.Finite {i | x ∈ ball (c i) (r i)}
us : s ⊆ ⋃ (i : ι), ball (c i) (r i)
v : ι → Set α
hsv : s ⊆ iUnion v
hvc : ∀ (i : ι), IsClosed (v i)
hcv : ∀ (i : ι), v i ⊆ ball (c i) (r i)
r' : ι → ℝ
hlt : ∀ (i : ι), r' i < r i
hsub : ∀ (i : ι), v i ⊆ ball (c i) (r' i)
⊢ ∃ r', (s ⊆ ⋃ (i : ι), ball (c i) (r' i)) ∧ ∀ (i : ι), r' i < r i
Theorem: Subgroup.leftTransversals.smul_diff_smul
File: Mathlib/GroupTheory/Transfer.lean

tactic: simp_rw [coe_mk, smul_apply_eq_smul_apply_inv_smul, smul_eq_mul, mul_inv_rev, mul_assoc,
  inv_mul_cancel_left]
state_before: G : Type u_2
inst✝² : Group G
H : Subgroup G
A : Type u_1
inst✝¹ : CommGroup A
ϕ : { x // x ∈ H } →* A
R S T : ↑(leftTransversals ↑H)
inst✝ : FiniteIndex H
g : G
x✝² : Fintype (G ⧸ H) := fintypeQuotientOfFiniteIndex H
x✝¹ : G ⧸ H
x✝ : x✝¹ ∈ univ
⊢ {
      val :=
        (↑(↑(MemLeftTransversals.toEquiv (_ : ↑(g • S) ∈ leftTransversals ↑H)) x✝¹))⁻¹ *
          ↑(↑(MemLeftTransversals.toEquiv (_ : ↑(g • T) ∈ leftTransversals ↑H)) x✝¹),
      property :=
        (_ :
          (↑(↑(MemLeftTransversals.toEquiv (_ : ↑(g • S) ∈ leftTransversals ↑H)) x✝¹))⁻¹ *
              ↑(↑(MemLeftTransversals.toEquiv (_ : ↑(g • T) ∈ leftTransversals ↑H)) x✝¹) ∈
            H) } =
    {
      val :=
        (↑(↑(MemLeftTransversals.toEquiv (_ : ↑S ∈ leftTransversals ↑H)) ((fun q x => g⁻¹ • q) x✝¹ x✝)))⁻¹ *
          ↑(↑(MemLeftTransversals.toEquiv (_ : ↑T ∈ leftTransversals ↑H)) ((fun q x => g⁻¹ • q) x✝¹ x✝)),
      property :=
        (_ :
          (↑(↑(MemLeftTransversals.toEquiv (_ : ↑S ∈ leftTransversals ↑H)) ((fun q x => g⁻¹ • q) x✝¹ x✝)))⁻¹ *
              ↑(↑(MemLeftTransversals.toEquiv (_ : ↑T ∈ leftTransversals ↑H)) ((fun q x => g⁻¹ • q) x✝¹ x✝)) ∈
            H) }
Theorem: lcm_eq_right_iff
File: Mathlib/Algebra/GCDMonoid/Basic.lean

tactic: simpa only [lcm_comm b a] using lcm_eq_left_iff b a h
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : NormalizedGCDMonoid α
a b : α
h : ↑normalize b = b
⊢ lcm a b = b ↔ a ∣ b
Theorem: Complex.eventually_eq_of_isLocalMax_norm
File: Mathlib/Analysis/Complex/AbsMax.lean

tactic: rcases nhds_basis_closedBall.eventually_iff.1 (hd.and hc) with ⟨r, hr₀, hr⟩
state_before: E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℂ E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℂ F
inst✝ : StrictConvexSpace ℝ F
f : E → F
c : E
hd : ∀ᶠ (z : E) in 𝓝 c, DifferentiableAt ℂ f z
hc : IsLocalMax (norm ∘ f) c
⊢ ∀ᶠ (y : E) in 𝓝 c, f y = f c

tactic: exact nhds_basis_closedBall.eventually_iff.2
  ⟨r, hr₀, eqOn_closedBall_of_isMaxOn_norm (DifferentiableOn.diffContOnCl fun x hx =>
      (hr <| closure_ball_subset_closedBall hx).1.differentiableWithinAt) fun x hx =>
    (hr <| ball_subset_closedBall hx).2⟩
state_before: case intro.intro
E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℂ E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℂ F
inst✝ : StrictConvexSpace ℝ F
f : E → F
c : E
hd : ∀ᶠ (z : E) in 𝓝 c, DifferentiableAt ℂ f z
hc : IsLocalMax (norm ∘ f) c
r : ℝ
hr₀ : 0 < r
hr : ∀ ⦃x : E⦄, x ∈ closedBall c r → DifferentiableAt ℂ f x ∧ (fun x => (norm ∘ f) x ≤ (norm ∘ f) c) x
⊢ ∀ᶠ (y : E) in 𝓝 c, f y = f c
Theorem: LocalRing.jacobson_eq_maximalIdeal
File: Mathlib/RingTheory/Ideal/LocalRing.lean

tactic: apply le_antisymm
state_before: R : Type u
S : Type v
T : Type w
K : Type u'
inst✝¹ : CommRing R
inst✝ : LocalRing R
I : Ideal R
h : I ≠ ⊤
⊢ Ideal.jacobson I = maximalIdeal R

tactic: exact sInf_le ⟨LocalRing.le_maximalIdeal h, LocalRing.maximalIdeal.isMaximal R⟩
state_before: case a
R : Type u
S : Type v
T : Type w
K : Type u'
inst✝¹ : CommRing R
inst✝ : LocalRing R
I : Ideal R
h : I ≠ ⊤
⊢ Ideal.jacobson I ≤ maximalIdeal R

tactic: exact le_sInf fun J (hJ : I ≤ J ∧ J.IsMaximal) => le_of_eq (LocalRing.eq_maximalIdeal hJ.2).symm
state_before: case a
R : Type u
S : Type v
T : Type w
K : Type u'
inst✝¹ : CommRing R
inst✝ : LocalRing R
I : Ideal R
h : I ≠ ⊤
⊢ maximalIdeal R ≤ Ideal.jacobson I
Theorem: SameRay.sameRay_nonneg_smul_right
File: Mathlib/LinearAlgebra/Ray.lean

tactic: nontriviality R
state_before: R : Type u_1
inst✝⁵ : StrictOrderedCommSemiring R
M : Type u_2
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
N : Type ?u.19931
inst✝² : AddCommMonoid N
inst✝¹ : Module R N
ι : Type ?u.20013
inst✝ : DecidableEq ι
x y z v : M
r : R
h✝ : 0 ≤ r
h : 0 < r
⊢ 0 < 1

tactic: exact zero_lt_one
state_before: R : Type u_1
inst✝⁶ : StrictOrderedCommSemiring R
M : Type u_2
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
N : Type ?u.19931
inst✝³ : AddCommMonoid N
inst✝² : Module R N
ι : Type ?u.20013
inst✝¹ : DecidableEq ι
x y z v : M
r : R
h✝ : 0 ≤ r
h : 0 < r
inst✝ : Nontrivial R
⊢ 0 < 1
Theorem: Associates.eq_pow_find_of_dvd_irreducible_pow
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

tactic: classical rw [count_factors_eq_find_of_dvd_pow hp, ← eq_pow_count_factors_of_dvd_pow hp h]
state_before: α : Type u_1
inst✝² : CancelCommMonoidWithZero α
dec_irr : (p : Associates α) → Decidable (Irreducible p)
inst✝¹ : UniqueFactorizationMonoid α
dec : DecidableEq α
dec' : DecidableEq (Associates α)
a p : Associates α
hp : Irreducible p
inst✝ : (n : ℕ) → Decidable (a ∣ p ^ n)
n : ℕ
h : a ∣ p ^ n
⊢ a = p ^ Nat.find (_ : ∃ n, (fun n => a ∣ p ^ n) n)

tactic: exact h
state_before: α : Type u_1
inst✝² : CancelCommMonoidWithZero α
dec_irr : (p : Associates α) → Decidable (Irreducible p)
inst✝¹ : UniqueFactorizationMonoid α
dec : DecidableEq α
dec' : DecidableEq (Associates α)
a p : Associates α
hp : Irreducible p
inst✝ : (n : ℕ) → Decidable (a ∣ p ^ n)
n : ℕ
h : a ∣ p ^ n
⊢ a ∣ p ^ ?m.3437671

α : Type u_1
inst✝² : CancelCommMonoidWithZero α
dec_irr : (p : Associates α) → Decidable (Irreducible p)
inst✝¹ : UniqueFactorizationMonoid α
dec : DecidableEq α
dec' : DecidableEq (Associates α)
a p : Associates α
hp : Irreducible p
inst✝ : (n : ℕ) → Decidable (a ∣ p ^ n)
n : ℕ
h : a ∣ p ^ n
⊢ ℕ

tactic: rw [count_factors_eq_find_of_dvd_pow hp, ← eq_pow_count_factors_of_dvd_pow hp h]
state_before: α : Type u_1
inst✝² : CancelCommMonoidWithZero α
dec_irr : (p : Associates α) → Decidable (Irreducible p)
inst✝¹ : UniqueFactorizationMonoid α
dec : DecidableEq α
dec' : DecidableEq (Associates α)
a p : Associates α
hp : Irreducible p
inst✝ : (n : ℕ) → Decidable (a ∣ p ^ n)
n : ℕ
h : a ∣ p ^ n
⊢ a = p ^ Nat.find (_ : ∃ n, (fun n => a ∣ p ^ n) n)
Theorem: Finset.card_insert_of_mem
File: Mathlib/Data/Finset/Card.lean

tactic: rw [insert_eq_of_mem h]
state_before: α : Type u_1
β : Type ?u.4665
s t : Finset α
a b : α
inst✝ : DecidableEq α
h : a ∈ s
⊢ card (insert a s) = card s
Theorem: LocalizedModule.induction_on
File: Mathlib/Algebra/Module/LocalizedModule.lean

tactic: rintro ⟨⟨m, s⟩⟩
state_before: R : Type u
inst✝² : CommSemiring R
S : Submonoid R
M : Type v
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
β : LocalizedModule S M → Prop
h : ∀ (m : M) (s : { x // x ∈ S }), β (mk m s)
⊢ ∀ (x : LocalizedModule S M), β x

tactic: exact h m s
state_before: case mk.mk
R : Type u
inst✝² : CommSemiring R
S : Submonoid R
M : Type v
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
β : LocalizedModule S M → Prop
h : ∀ (m : M) (s : { x // x ∈ S }), β (mk m s)
x✝ : LocalizedModule S M
m : M
s : { x // x ∈ S }
⊢ β (Quot.mk Setoid.r (m, s))
Theorem: Basis.toDual_total_right
File: Mathlib/LinearAlgebra/Dual.lean

tactic: rw [Finsupp.total_apply, Finsupp.sum, LinearMap.map_sum]
state_before: R : Type u
M : Type v
K : Type u₁
V : Type u₂
ι : Type w
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : DecidableEq ι
b : Basis ι R M
f : ι →₀ R
i : ι
⊢ ↑(↑(toDual b) (↑b i)) (↑(Finsupp.total ι M R ↑b) f) = ↑f i

tactic: simp_rw [LinearMap.map_smul, toDual_apply, smul_eq_mul, mul_boole, Finset.sum_ite_eq]
state_before: R : Type u
M : Type v
K : Type u₁
V : Type u₂
ι : Type w
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : DecidableEq ι
b : Basis ι R M
f : ι →₀ R
i : ι
⊢ ∑ i_1 in f.support, ↑(↑(toDual b) (↑b i)) (↑f i_1 • ↑b i_1) = ↑f i

tactic: split_ifs with h
state_before: R : Type u
M : Type v
K : Type u₁
V : Type u₂
ι : Type w
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : DecidableEq ι
b : Basis ι R M
f : ι →₀ R
i : ι
⊢ (if i ∈ f.support then ↑f i else 0) = ↑f i

tactic: rfl
state_before: case inl
R : Type u
M : Type v
K : Type u₁
V : Type u₂
ι : Type w
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : DecidableEq ι
b : Basis ι R M
f : ι →₀ R
i : ι
h : i ∈ f.support
⊢ ↑f i = ↑f i

tactic: rw [Finsupp.not_mem_support_iff.mp h]
state_before: case inr
R : Type u
M : Type v
K : Type u₁
V : Type u₂
ι : Type w
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : DecidableEq ι
b : Basis ι R M
f : ι →₀ R
i : ι
h : ¬i ∈ f.support
⊢ 0 = ↑f i
Theorem: toIcoMod_eq_self
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [toIcoMod_eq_iff, and_iff_left]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a b c : α
n : ℤ
⊢ toIcoMod hp a b = b ↔ b ∈ Set.Ico a (a + p)

tactic: exact ⟨0, by simp⟩
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a b c : α
n : ℤ
⊢ ∃ z, b = b + z • p

tactic: simp
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a b c : α
n : ℤ
⊢ b = b + 0 • p
Theorem: ENNReal.toReal_add_le
File: Mathlib/Data/Real/ENNReal.lean

tactic: simp only [ha, top_add, top_toReal, zero_add, toReal_nonneg]
state_before: α : Type ?u.793099
β : Type ?u.793102
a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a = ⊤
⊢ ENNReal.toReal (a + b) ≤ ENNReal.toReal a + ENNReal.toReal b

tactic: simp only [hb, add_top, top_toReal, add_zero, toReal_nonneg]
state_before: α : Type ?u.793099
β : Type ?u.793102
a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : ¬a = ⊤
hb : b = ⊤
⊢ ENNReal.toReal (a + b) ≤ ENNReal.toReal a + ENNReal.toReal b
Theorem: Set.image_add_const_uIcc
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
a b c d : α
⊢ (fun x => x + a) '' [[b, c]] = [[b + a, c + a]]
Theorem: Polynomial.prod_cyclotomic_eq_geom_sum
File: Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean

tactic: suffices (∏ i in n.divisors.erase 1, cyclotomic i ℤ) = ∑ i in Finset.range n, X ^ i by
  simpa only [Polynomial.map_prod, map_cyclotomic_int, Polynomial.map_sum, Polynomial.map_pow,
    Polynomial.map_X] using congr_arg (map (Int.castRingHom R)) this
state_before: n : ℕ
h : 0 < n
R : Type u_1
inst✝ : CommRing R
⊢ ∏ i in Finset.erase (Nat.divisors n) 1, cyclotomic i R = ∑ i in range n, X ^ i

tactic: rw [← mul_left_inj' (cyclotomic_ne_zero 1 ℤ), prod_erase_mul _ _ (Nat.one_mem_divisors.2 h.ne'),
  cyclotomic_one, geom_sum_mul, prod_cyclotomic_eq_X_pow_sub_one h]
state_before: n : ℕ
h : 0 < n
R : Type u_1
inst✝ : CommRing R
⊢ ∏ i in Finset.erase (Nat.divisors n) 1, cyclotomic i ℤ = ∑ i in range n, X ^ i

tactic: simpa only [Polynomial.map_prod, map_cyclotomic_int, Polynomial.map_sum, Polynomial.map_pow,
  Polynomial.map_X] using congr_arg (map (Int.castRingHom R)) this
state_before: n : ℕ
h : 0 < n
R : Type u_1
inst✝ : CommRing R
this : ∏ i in Finset.erase (Nat.divisors n) 1, cyclotomic i ℤ = ∑ i in range n, X ^ i
⊢ ∏ i in Finset.erase (Nat.divisors n) 1, cyclotomic i R = ∑ i in range n, X ^ i
Theorem: MeasureTheory.Integrable.edist_toL1_zero
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simp [Integrable.toL1, snorm, snorm']
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.1329799
δ : Type ?u.1329802
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
hf : Integrable f
⊢ edist (toL1 f hf) 0 = ∫⁻ (a : α), edist (f a) 0 ∂μ

tactic: simp [edist_eq_coe_nnnorm]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.1329799
δ : Type ?u.1329802
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
hf : Integrable f
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ∂μ) = ∫⁻ (a : α), edist (f a) 0 ∂μ
Theorem: expSeries_radius_eq_top
File: Mathlib/Analysis/NormedSpace/Exponential.lean

tactic: refine' (expSeries 𝕂 𝔸).radius_eq_top_of_summable_norm fun r => _
state_before: 𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type ?u.329102
inst✝⁴ : IsROrC 𝕂
inst✝³ : NormedRing 𝔸
inst✝² : NormedAlgebra 𝕂 𝔸
inst✝¹ : NormedRing 𝔹
inst✝ : NormedAlgebra 𝕂 𝔹
⊢ FormalMultilinearSeries.radius (expSeries 𝕂 𝔸) = ⊤

tactic: refine' summable_of_norm_bounded_eventually _ (Real.summable_pow_div_factorial r) _
state_before: 𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type ?u.329102
inst✝⁴ : IsROrC 𝕂
inst✝³ : NormedRing 𝔸
inst✝² : NormedAlgebra 𝕂 𝔸
inst✝¹ : NormedRing 𝔹
inst✝ : NormedAlgebra 𝕂 𝔹
r : NNReal
⊢ Summable fun n => ‖expSeries 𝕂 𝔸 n‖ * ↑r ^ n

tactic: filter_upwards [eventually_cofinite_ne 0] with n hn
state_before: 𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type ?u.329102
inst✝⁴ : IsROrC 𝕂
inst✝³ : NormedRing 𝔸
inst✝² : NormedAlgebra 𝕂 𝔸
inst✝¹ : NormedRing 𝔹
inst✝ : NormedAlgebra 𝕂 𝔹
r : NNReal
⊢ ∀ᶠ (i : ℕ) in cofinite, ‖‖expSeries 𝕂 𝔸 i‖ * ↑r ^ i‖ ≤ ↑r ^ i / ↑i !

tactic: rw [norm_mul, norm_norm (expSeries 𝕂 𝔸 n), expSeries]
state_before: case h
𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type ?u.329102
inst✝⁴ : IsROrC 𝕂
inst✝³ : NormedRing 𝔸
inst✝² : NormedAlgebra 𝕂 𝔸
inst✝¹ : NormedRing 𝔹
inst✝ : NormedAlgebra 𝕂 𝔹
r : NNReal
n : ℕ
hn : n ≠ 0
⊢ ‖‖expSeries 𝕂 𝔸 n‖ * ↑r ^ n‖ ≤ ↑r ^ n / ↑n !

tactic: rw [norm_smul (n ! : 𝕂)⁻¹ (ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸)]
state_before: case h
𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type ?u.329102
inst✝⁴ : IsROrC 𝕂
inst✝³ : NormedRing 𝔸
inst✝² : NormedAlgebra 𝕂 𝔸
inst✝¹ : NormedRing 𝔹
inst✝ : NormedAlgebra 𝕂 𝔹
r : NNReal
n : ℕ
hn : n ≠ 0
⊢ ‖(↑n !)⁻¹ • ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸‖ * ‖↑r ^ n‖ ≤ ↑r ^ n / ↑n !

tactic: rw [norm_inv, norm_pow, NNReal.norm_eq, norm_natCast, mul_comm, ← mul_assoc, ← div_eq_mul_inv]
state_before: case h
𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type ?u.329102
inst✝⁴ : IsROrC 𝕂
inst✝³ : NormedRing 𝔸
inst✝² : NormedAlgebra 𝕂 𝔸
inst✝¹ : NormedRing 𝔹
inst✝ : NormedAlgebra 𝕂 𝔹
r : NNReal
n : ℕ
hn : n ≠ 0
⊢ ‖(↑n !)⁻¹‖ * ‖ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸‖ * ‖↑r ^ n‖ ≤ ↑r ^ n / ↑n !

tactic: have : ‖ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸‖ ≤ 1 :=
  norm_mkPiAlgebraFin_le_of_pos (Ei := fun _ => 𝔸) (Nat.pos_of_ne_zero hn)
state_before: case h
𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type ?u.329102
inst✝⁴ : IsROrC 𝕂
inst✝³ : NormedRing 𝔸
inst✝² : NormedAlgebra 𝕂 𝔸
inst✝¹ : NormedRing 𝔹
inst✝ : NormedAlgebra 𝕂 𝔹
r : NNReal
n : ℕ
hn : n ≠ 0
⊢ ↑r ^ n / ↑n ! * ‖ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸‖ ≤ ↑r ^ n / ↑n !

tactic: exact mul_le_of_le_one_right (div_nonneg (pow_nonneg r.coe_nonneg n) n !.cast_nonneg) this
state_before: case h
𝕂 : Type u_1
𝔸 : Type u_2
𝔹 : Type ?u.329102
inst✝⁴ : IsROrC 𝕂
inst✝³ : NormedRing 𝔸
inst✝² : NormedAlgebra 𝕂 𝔸
inst✝¹ : NormedRing 𝔹
inst✝ : NormedAlgebra 𝕂 𝔹
r : NNReal
n : ℕ
hn : n ≠ 0
this : ‖ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸‖ ≤ 1
⊢ ↑r ^ n / ↑n ! * ‖ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸‖ ≤ ↑r ^ n / ↑n !
Theorem: Multiset.toFinset_union
File: Mathlib/Data/Finset/Basic.lean

tactic: ext
state_before: α : Type u_1
β : Type ?u.451772
γ : Type ?u.451775
inst✝ : DecidableEq α
s✝ t✝ s t : Multiset α
⊢ toFinset (s ∪ t) = toFinset s ∪ toFinset t

tactic: simp
state_before: case a
α : Type u_1
β : Type ?u.451772
γ : Type ?u.451775
inst✝ : DecidableEq α
s✝ t✝ s t : Multiset α
a✝ : α
⊢ a✝ ∈ toFinset (s ∪ t) ↔ a✝ ∈ toFinset s ∪ toFinset t
Theorem: zorn_preorder₀
File: Mathlib/Order/Zorn.lean

tactic: rintro _ ⟨p, hpc, rfl⟩ _ ⟨q, hqc, rfl⟩ hpq
state_before: α : Type u_1
β : Type ?u.3853
r : α → α → Prop
c✝ : Set α
inst✝ : Preorder α
s : Set α
ih : ∀ (c : Set α), c ⊆ s → IsChain (fun x x_1 => x ≤ x_1) c → ∃ ub, ub ∈ s ∧ ∀ (z : α), z ∈ c → z ≤ ub
c : Set ↑s
hc : IsChain (fun x x_1 => x ≤ x_1) c
⊢ IsChain (fun x x_1 => x ≤ x_1) (Subtype.val '' c)

tactic: refine' hc hpc hqc fun t => hpq (Subtype.ext_iff.1 t)
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type ?u.3853
r : α → α → Prop
c✝ : Set α
inst✝ : Preorder α
s : Set α
ih : ∀ (c : Set α), c ⊆ s → IsChain (fun x x_1 => x ≤ x_1) c → ∃ ub, ub ∈ s ∧ ∀ (z : α), z ∈ c → z ≤ ub
c : Set ↑s
hc : IsChain (fun x x_1 => x ≤ x_1) c
p : { x // x ∈ s }
hpc : p ∈ c
q : { x // x ∈ s }
hqc : q ∈ c
hpq : ↑p ≠ ↑q
⊢ (fun x x_1 => x ≤ x_1) ↑p ↑q ∨ (fun x x_1 => x ≤ x_1) ↑q ↑p