tasksource/leandojo huggingface dataset:
Theorem: MultilinearMap.curryFinFinset_apply_const_aux
File: Mathlib/LinearAlgebra/Multilinear/Basic.lean

tactic: rw [← curryFinFinset_apply]
state_before: R : Type u
ι : Type u'
n✝ : ℕ
M : Fin (Nat.succ n✝) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝⁶ : CommSemiring R
inst✝⁵ : (i : Fin (Nat.succ n✝)) → AddCommMonoid (M i)
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M₂
inst✝² : (i : Fin (Nat.succ n✝)) → Module R (M i)
inst✝¹ : Module R M'
inst✝ : Module R M₂
ι' : Type ?u.776425
k l n : ℕ
s : Finset (Fin n)
hk : Finset.card s = k
hl : Finset.card (sᶜ) = l
f : MultilinearMap R (fun x => M') M₂
x y : M'
⊢ (↑f fun i => Sum.elim (fun x_1 => x) (fun x => y) (↑(finSumEquivOfFinset hk hl).symm i)) =
    ↑f (Finset.piecewise s (fun x_1 => x) fun x => y)

tactic: apply curryFinFinset_apply_const
state_before: R : Type u
ι : Type u'
n✝ : ℕ
M : Fin (Nat.succ n✝) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝⁶ : CommSemiring R
inst✝⁵ : (i : Fin (Nat.succ n✝)) → AddCommMonoid (M i)
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M₂
inst✝² : (i : Fin (Nat.succ n✝)) → Module R (M i)
inst✝¹ : Module R M'
inst✝ : Module R M₂
ι' : Type ?u.776425
k l n : ℕ
s : Finset (Fin n)
hk : Finset.card s = k
hl : Finset.card (sᶜ) = l
f : MultilinearMap R (fun x => M') M₂
x y : M'
⊢ (↑(↑(↑(curryFinFinset R M₂ M' hk hl) f) fun x_1 => x) fun x => y) = ↑f (Finset.piecewise s (fun x_1 => x) fun x => y)
Theorem: Nat.norm_cast_le
File: Mathlib/Analysis/Normed/Field/Basic.lean

tactic: simp
state_before: α : Type u_1
β : Type ?u.107793
γ : Type ?u.107796
ι : Type ?u.107799
inst✝ : SeminormedRing α
⊢ ‖↑0‖ ≤ ↑0 * ‖1‖

tactic: rw [n.cast_succ, n.cast_succ, add_mul, one_mul]
state_before: α : Type u_1
β : Type ?u.107793
γ : Type ?u.107796
ι : Type ?u.107799
inst✝ : SeminormedRing α
n : ℕ
⊢ ‖↑(n + 1)‖ ≤ ↑(n + 1) * ‖1‖

tactic: exact norm_add_le_of_le (Nat.norm_cast_le n) le_rfl
state_before: α : Type u_1
β : Type ?u.107793
γ : Type ?u.107796
ι : Type ?u.107799
inst✝ : SeminormedRing α
n : ℕ
⊢ ‖↑n + 1‖ ≤ ↑n * ‖1‖ + ‖1‖
Theorem: NNReal.exists_pos_sum_of_countable
File: Mathlib/Analysis/SpecificLimits/Basic.lean

tactic: cases nonempty_encodable ι
state_before: α : Type ?u.476292
β : Type ?u.476295
ι✝ : Type ?u.476298
ε : ℝ≥0
hε : ε ≠ 0
ι : Type u_1
inst✝ : Countable ι
⊢ ∃ ε', (∀ (i : ι), 0 < ε' i) ∧ ∃ c, HasSum ε' c ∧ c < ε

tactic: obtain ⟨a, a0, aε⟩ := exists_between (pos_iff_ne_zero.2 hε)
state_before: case intro
α : Type ?u.476292
β : Type ?u.476295
ι✝ : Type ?u.476298
ε : ℝ≥0
hε : ε ≠ 0
ι : Type u_1
inst✝ : Countable ι
val✝ : Encodable ι
⊢ ∃ ε', (∀ (i : ι), 0 < ε' i) ∧ ∃ c, HasSum ε' c ∧ c < ε

tactic: obtain ⟨ε', hε', c, hc, hcε⟩ := posSumOfEncodable a0 ι
state_before: case intro.intro.intro
α : Type ?u.476292
β : Type ?u.476295
ι✝ : Type ?u.476298
ε : ℝ≥0
hε : ε ≠ 0
ι : Type u_1
inst✝ : Countable ι
val✝ : Encodable ι
a : ℝ≥0
a0 : 0 < a
aε : a < ε
⊢ ∃ ε', (∀ (i : ι), 0 < ε' i) ∧ ∃ c, HasSum ε' c ∧ c < ε

tactic: exact
  ⟨fun i => ⟨ε' i, (hε' i).le⟩, fun i => NNReal.coe_lt_coe.1 <| hε' i,
    ⟨c, hasSum_le (fun i => (hε' i).le) hasSum_zero hc⟩, NNReal.hasSum_coe.1 hc,
    aε.trans_le' <| NNReal.coe_le_coe.1 hcε⟩
state_before: case intro.intro.intro.mk.intro.intro.intro
α : Type ?u.476292
β : Type ?u.476295
ι✝ : Type ?u.476298
ε : ℝ≥0
hε : ε ≠ 0
ι : Type u_1
inst✝ : Countable ι
val✝ : Encodable ι
a : ℝ≥0
a0 : 0 < a
aε : a < ε
ε' : ι → ℝ
hε' : ∀ (i : ι), 0 < ε' i
c : ℝ
hc : HasSum ε' c
hcε : c ≤ (fun a => ↑a) a
⊢ ∃ ε', (∀ (i : ι), 0 < ε' i) ∧ ∃ c, HasSum ε' c ∧ c < ε
Theorem: Finset.biUnion_image_left
File: Mathlib/Data/Finset/NAry.lean

tactic: push_cast
state_before: α : Type u_2
α' : Type ?u.56321
β : Type u_3
β' : Type ?u.56327
γ : Type u_1
γ' : Type ?u.56333
δ : Type ?u.56336
δ' : Type ?u.56339
ε : Type ?u.56342
ε' : Type ?u.56345
ζ : Type ?u.56348
ζ' : Type ?u.56351
ν : Type ?u.56354
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
⊢ ↑(Finset.biUnion s fun a => image (f a) t) = ↑(image₂ f s t)

tactic: exact Set.iUnion_image_left _
state_before: α : Type u_2
α' : Type ?u.56321
β : Type u_3
β' : Type ?u.56327
γ : Type u_1
γ' : Type ?u.56333
δ : Type ?u.56336
δ' : Type ?u.56339
ε : Type ?u.56342
ε' : Type ?u.56345
ζ : Type ?u.56348
ζ' : Type ?u.56351
ν : Type ?u.56354
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
⊢ (⋃ (x : α) (_ : x ∈ ↑s), f x '' ↑t) = image2 f ↑s ↑t
Theorem: tendsto_set_integral_pow_smul_of_unique_maximum_of_isCompact_of_continuousOn
File: Mathlib/MeasureTheory/Integral/PeakFunction.lean

tactic: rw [← hs.isClosed.closure_eq]
state_before: α : Type u_1
E : Type u_2
ι : Type ?u.898853
hm : MeasurableSpace α
μ : MeasureTheory.Measure α
inst✝⁷ : TopologicalSpace α
inst✝⁶ : BorelSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
g : α → E
l : Filter ι
x₀ : α
s : Set α
φ : ι → α → ℝ
inst✝³ : CompleteSpace E
inst✝² : MetrizableSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
inst✝ : IsOpenPosMeasure μ
hs : IsCompact s
c : α → ℝ
hc : ContinuousOn c s
h'c : ∀ (y : α), y ∈ s → y ≠ x₀ → c y < c x₀
hnc : ∀ (x : α), x ∈ s → 0 ≤ c x
hnc₀ : 0 < c x₀
h₀ : x₀ ∈ closure (interior s)
hmg : ContinuousOn g s
⊢ x₀ ∈ s

tactic: exact closure_mono interior_subset h₀
state_before: α : Type u_1
E : Type u_2
ι : Type ?u.898853
hm : MeasurableSpace α
μ : MeasureTheory.Measure α
inst✝⁷ : TopologicalSpace α
inst✝⁶ : BorelSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
g : α → E
l : Filter ι
x₀ : α
s : Set α
φ : ι → α → ℝ
inst✝³ : CompleteSpace E
inst✝² : MetrizableSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
inst✝ : IsOpenPosMeasure μ
hs : IsCompact s
c : α → ℝ
hc : ContinuousOn c s
h'c : ∀ (y : α), y ∈ s → y ≠ x₀ → c y < c x₀
hnc : ∀ (x : α), x ∈ s → 0 ≤ c x
hnc₀ : 0 < c x₀
h₀ : x₀ ∈ closure (interior s)
hmg : ContinuousOn g s
⊢ x₀ ∈ closure s
Theorem: MeasureTheory.set_integral_nonneg_ae
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

tactic: rwa [EventuallyLE, ae_restrict_iff' hs]
state_before: α : Type u_1
β : Type ?u.293210
E : Type ?u.293213
F : Type ?u.293216
inst✝ : MeasurableSpace α
μ : Measure α
f : α → ℝ
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (a : α) ∂μ, a ∈ s → 0 ≤ f a
⊢ 0 ≤ᵐ[Measure.restrict μ s] fun a => f a
Theorem: bex_eq_left
File: Mathlib/Logic/Basic.lean

tactic: simp only [exists_prop, exists_eq_left]
state_before: α : Sort u_1
r p q : α → Prop
P Q : (x : α) → p x → Prop
b : Prop
a : α
⊢ (∃ x x_1, p x) ↔ p a
Theorem: IsSubgroup.normalizer_isSubgroup
File: Mathlib/Deprecated/Subgroup.lean

tactic: simp [normalizer]
state_before: G : Type u_1
H : Type ?u.52507
A : Type ?u.52510
a a₁ a₂ b c : G
inst✝ : Group G
s : Set G
⊢ 1 ∈ normalizer s

tactic: rw [mul_inv_rev, ← mul_assoc, mul_assoc a, mul_assoc a, ← ha, ← hb]
state_before: G : Type u_1
H : Type ?u.52507
A : Type ?u.52510
a✝ a₁ a₂ b✝ c : G
inst✝ : Group G
s : Set G
a b : G
ha : ∀ (n : G), n ∈ s ↔ a * n * a⁻¹ ∈ s
hb : ∀ (n : G), n ∈ s ↔ b * n * b⁻¹ ∈ s
n : G
⊢ n ∈ s ↔ a * b * n * (a * b)⁻¹ ∈ s

tactic: rw [ha (a⁻¹ * n * a⁻¹⁻¹)]
state_before: G : Type u_1
H : Type ?u.52507
A : Type ?u.52510
a✝ a₁ a₂ b c : G
inst✝ : Group G
s : Set G
a : G
ha : ∀ (n : G), n ∈ s ↔ a * n * a⁻¹ ∈ s
n : G
⊢ n ∈ s ↔ a⁻¹ * n * a⁻¹⁻¹ ∈ s

tactic: simp [mul_assoc]
state_before: G : Type u_1
H : Type ?u.52507
A : Type ?u.52510
a✝ a₁ a₂ b c : G
inst✝ : Group G
s : Set G
a : G
ha : ∀ (n : G), n ∈ s ↔ a * n * a⁻¹ ∈ s
n : G
⊢ n ∈ s ↔ a * (a⁻¹ * n * a⁻¹⁻¹) * a⁻¹ ∈ s
Theorem: MeasureTheory.Lp.simpleFunc.coeFn_nonneg
File: Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean

tactic: rw [← Lp.simpleFunc.coeFn_le]
state_before: α : Type u_1
β : Type ?u.2310097
ι : Type ?u.2310100
E : Type ?u.2310103
F : Type ?u.2310106
𝕜 : Type ?u.2310109
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
G : Type u_2
inst✝ : NormedLatticeAddCommGroup G
f : { x // x ∈ simpleFunc G p μ }
⊢ 0 ≤ᵐ[μ] ↑↑↑f ↔ 0 ≤ f

tactic: have h0 : (0 : Lp.simpleFunc G p μ) =ᵐ[μ] (0 : α → G) := Lp.simpleFunc.coeFn_zero p μ G
state_before: α : Type u_1
β : Type ?u.2310097
ι : Type ?u.2310100
E : Type ?u.2310103
F : Type ?u.2310106
𝕜 : Type ?u.2310109
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
G : Type u_2
inst✝ : NormedLatticeAddCommGroup G
f : { x // x ∈ simpleFunc G p μ }
⊢ 0 ≤ᵐ[μ] ↑↑↑f ↔ ↑↑↑0 ≤ᵐ[μ] ↑↑↑f

tactic: constructor <;> intro h <;> filter_upwards [h, h0] with _ _ h2
state_before: α : Type u_1
β : Type ?u.2310097
ι : Type ?u.2310100
E : Type ?u.2310103
F : Type ?u.2310106
𝕜 : Type ?u.2310109
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
G : Type u_2
inst✝ : NormedLatticeAddCommGroup G
f : { x // x ∈ simpleFunc G p μ }
h0 : ↑↑↑0 =ᵐ[μ] 0
⊢ 0 ≤ᵐ[μ] ↑↑↑f ↔ ↑↑↑0 ≤ᵐ[μ] ↑↑↑f

tactic: rwa [h2]
state_before: case h
α : Type u_1
β : Type ?u.2310097
ι : Type ?u.2310100
E : Type ?u.2310103
F : Type ?u.2310106
𝕜 : Type ?u.2310109
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
G : Type u_2
inst✝ : NormedLatticeAddCommGroup G
f : { x // x ∈ simpleFunc G p μ }
h0 : ↑↑↑0 =ᵐ[μ] 0
h : 0 ≤ᵐ[μ] ↑↑↑f
a✝¹ : α
a✝ : OfNat.ofNat 0 a✝¹ ≤ ↑↑↑f a✝¹
h2 : ↑↑↑0 a✝¹ = OfNat.ofNat 0 a✝¹
⊢ ↑↑↑0 a✝¹ ≤ ↑↑↑f a✝¹

tactic: rwa [← h2]
state_before: case h
α : Type u_1
β : Type ?u.2310097
ι : Type ?u.2310100
E : Type ?u.2310103
F : Type ?u.2310106
𝕜 : Type ?u.2310109
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
G : Type u_2
inst✝ : NormedLatticeAddCommGroup G
f : { x // x ∈ simpleFunc G p μ }
h0 : ↑↑↑0 =ᵐ[μ] 0
h : ↑↑↑0 ≤ᵐ[μ] ↑↑↑f
a✝¹ : α
a✝ : ↑↑↑0 a✝¹ ≤ ↑↑↑f a✝¹
h2 : ↑↑↑0 a✝¹ = OfNat.ofNat 0 a✝¹
⊢ OfNat.ofNat 0 a✝¹ ≤ ↑↑↑f a✝¹
Theorem: UpperSet.compl_iInf
File: Mathlib/Order/UpperLower/Basic.lean

tactic: simp only [coe_compl, coe_iInf, compl_iUnion, LowerSet.coe_iInf]
state_before: α : Type u_1
β : Type ?u.84580
γ : Type ?u.84583
ι : Sort u_2
κ : ι → Sort ?u.84591
inst✝ : LE α
s t : UpperSet α
a : α
f : ι → UpperSet α
⊢ ↑(compl (⨅ (i : ι), f i)) = ↑(⨅ (i : ι), compl (f i))
Theorem: QuaternionAlgebra.star_eq_neg
File: Mathlib/Algebra/Quaternion.lean

tactic: simp [QuaternionAlgebra.ext_iff, eq_neg_iff_add_eq_zero]
state_before: S : Type ?u.321798
T : Type ?u.321801
R : Type u_1
inst✝² : CommRing R
c₁✝ c₂✝ r x y z : R
a✝ b c : ℍ[R,c₁✝,c₂✝]
inst✝¹ : NoZeroDivisors R
inst✝ : CharZero R
c₁ c₂ : R
a : ℍ[R,c₁,c₂]
⊢ star a = -a ↔ a.re = 0
Theorem: Geometry.SimplicialComplex.convexHull_subset_space
File: Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean

tactic: convert subset_biUnion_of_mem hs
state_before: 𝕜 : Type u_2
E : Type u_1
ι : Type ?u.10317
inst✝² : OrderedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
K : SimplicialComplex 𝕜 E
s t : Finset E
x : E
hs : s ∈ K.faces
⊢ ↑(convexHull 𝕜).toOrderHom ↑s ⊆ space K

tactic: rfl
state_before: case h.e'_3
𝕜 : Type u_2
E : Type u_1
ι : Type ?u.10317
inst✝² : OrderedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
K : SimplicialComplex 𝕜 E
s t : Finset E
x : E
hs : s ∈ K.faces
⊢ ↑(convexHull 𝕜).toOrderHom ↑s = ↑(convexHull 𝕜).toOrderHom ↑s
Theorem: Polynomial.hasseDeriv_eq_zero_of_lt_natDegree
File: Mathlib/Data/Polynomial/HasseDeriv.lean

tactic: rw [hasseDeriv_apply, sum_def]
state_before: R : Type u_1
inst✝ : Semiring R
k : ℕ
f p : R[X]
n : ℕ
h : natDegree p < n
⊢ ↑(hasseDeriv n) p = 0

tactic: refine' Finset.sum_eq_zero fun x hx => _
state_before: R : Type u_1
inst✝ : Semiring R
k : ℕ
f p : R[X]
n : ℕ
h : natDegree p < n
⊢ ∑ n_1 in support p, ↑(monomial (n_1 - n)) (↑(choose n_1 n) * coeff p n_1) = 0

tactic: simp [Nat.choose_eq_zero_of_lt ((le_natDegree_of_mem_supp _ hx).trans_lt h)]
state_before: R : Type u_1
inst✝ : Semiring R
k : ℕ
f p : R[X]
n : ℕ
h : natDegree p < n
x : ℕ
hx : x ∈ support p
⊢ ↑(monomial (x - n)) (↑(choose x n) * coeff p x) = 0
Theorem: Complex.tan_int_mul_pi_div_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean

tactic: use n
state_before: n : ℤ
⊢ ∃ k, ↑n * ↑π / 2 = ↑k * ↑π / 2
Theorem: MeasureTheory.Measure.haar.is_left_invariant_index
File: Mathlib/MeasureTheory/Measure/Haar/Basic.lean

tactic: refine' le_antisymm (mul_left_index_le hK hV g) _
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K : Set G
hK : IsCompact K
g : G
V : Set G
hV : Set.Nonempty (interior V)
⊢ index ((fun h => g * h) '' K) V = index K V

tactic: convert mul_left_index_le (hK.image <| continuous_mul_left g) hV g⁻¹
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K : Set G
hK : IsCompact K
g : G
V : Set G
hV : Set.Nonempty (interior V)
⊢ index K V ≤ index ((fun h => g * h) '' K) V

tactic: rw [image_image]
state_before: case h.e'_3.h.e'_3
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K : Set G
hK : IsCompact K
g : G
V : Set G
hV : Set.Nonempty (interior V)
⊢ K = (fun h => g⁻¹ * h) '' ((fun b => g * b) '' K)

tactic: symm
state_before: case h.e'_3.h.e'_3
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K : Set G
hK : IsCompact K
g : G
V : Set G
hV : Set.Nonempty (interior V)
⊢ K = (fun x => g⁻¹ * (g * x)) '' K

tactic: convert image_id' _ with h
state_before: case h.e'_3.h.e'_3
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K : Set G
hK : IsCompact K
g : G
V : Set G
hV : Set.Nonempty (interior V)
⊢ (fun x => g⁻¹ * (g * x)) '' K = K

tactic: apply inv_mul_cancel_left
state_before: case h.e'_2.h.e'_3.h
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K : Set G
hK : IsCompact K
g : G
V : Set G
hV : Set.Nonempty (interior V)
h : G
⊢ g⁻¹ * (g * h) = h
Theorem: Polynomial.degree_sub_le
File: Mathlib/Data/Polynomial/Degree/Definitions.lean

tactic: simpa only [degree_neg q] using degree_add_le p (-q)
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Ring R
p✝ q✝ p q : R[X]
⊢ degree (p - q) ≤ max (degree p) (degree q)
Theorem: Real.cosh_sub
File: Mathlib/Data/Complex/Exponential.lean

tactic: simp [sub_eq_add_neg, cosh_add, sinh_neg, cosh_neg]
state_before: x y : ℝ
⊢ cosh (x - y) = cosh x * cosh y - sinh x * sinh y
Theorem: Finset.weightedVSub_apply
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: simp [weightedVSub, LinearMap.sum_apply]
state_before: k : Type u_3
V : Type u_1
P : Type u_4
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
ι : Type u_2
s : Finset ι
ι₂ : Type ?u.145502
s₂ : Finset ι₂
w : ι → k
p : ι → P
⊢ ↑(weightedVSub s p) w = ∑ i in s, w i • (p i -ᵥ Classical.choice (_ : Nonempty P))
Theorem: Complex.sq_abs_sub_sq_im
File: Mathlib/Data/Complex/Basic.lean

tactic: rw [← sq_abs_sub_sq_re, sub_sub_cancel]
state_before: z : ℂ
⊢ ↑abs z ^ 2 - z.im ^ 2 = z.re ^ 2
Theorem: Nat.ArithmeticFunction.IsMultiplicative.nat_cast
File: Mathlib/NumberTheory/ArithmeticFunction.lean

tactic: simp [h]
state_before: R : Type u_1
f : ArithmeticFunction ℕ
inst✝ : Semiring R
h : IsMultiplicative f
⊢ ↑↑f 1 = 1

tactic: cases h
state_before: R : Type u_1
f : ArithmeticFunction ℕ
inst✝ : Semiring R
h : IsMultiplicative f
m n : ℕ
cop : coprime m n
⊢ ↑↑f (m * n) = ↑↑f m * ↑↑f n

tactic: rename_i j h
state_before: case intro
R : Type u_1
f : ArithmeticFunction ℕ
inst✝ : Semiring R
m n : ℕ
cop : coprime m n
left✝ : ↑f 1 = 1
right✝ : ∀ {m n : ℕ}, coprime m n → ↑f (m * n) = ↑f m * ↑f n
⊢ ↑↑f (m * n) = ↑↑f m * ↑↑f n

tactic: simp [h cop]
state_before: case intro
R : Type u_1
f : ArithmeticFunction ℕ
inst✝ : Semiring R
m n : ℕ
cop : coprime m n
j : ↑f 1 = 1
h : ∀ {m n : ℕ}, coprime m n → ↑f (m * n) = ↑f m * ↑f n
⊢ ↑↑f (m * n) = ↑↑f m * ↑↑f n
Theorem: CategoryTheory.reflects_mono_of_reflectsLimit
File: Mathlib/CategoryTheory/Limits/Constructions/EpiMono.lean

tactic: have := PullbackCone.isLimitMkIdId (F.map f)
state_before: C : Type u₁
D : Type u₂
inst✝³ : Category C
inst✝² : Category D
F : C ⥤ D
X Y : C
f : X ⟶ Y
inst✝¹ : ReflectsLimit (cospan f f) F
inst✝ : Mono (F.map f)
⊢ Mono f

tactic: simp_rw [← F.map_id] at this
state_before: C : Type u₁
D : Type u₂
inst✝³ : Category C
inst✝² : Category D
F : C ⥤ D
X Y : C
f : X ⟶ Y
inst✝¹ : ReflectsLimit (cospan f f) F
inst✝ : Mono (F.map f)
this : IsLimit (PullbackCone.mk (𝟙 (F.obj X)) (𝟙 (F.obj X)) (_ : 𝟙 (F.obj X) ≫ F.map f = 𝟙 (F.obj X) ≫ F.map f))
⊢ Mono f

tactic: apply PullbackCone.mono_of_isLimitMkIdId _ (isLimitOfIsLimitPullbackConeMap F _ this)
state_before: C : Type u₁
D : Type u₂
inst✝³ : Category C
inst✝² : Category D
F : C ⥤ D
X Y : C
f : X ⟶ Y
inst✝¹ : ReflectsLimit (cospan f f) F
inst✝ : Mono (F.map f)
this : IsLimit (PullbackCone.mk (F.map (𝟙 X)) (F.map (𝟙 X)) (_ : F.map (𝟙 X) ≫ F.map f = F.map (𝟙 X) ≫ F.map f))
⊢ Mono f
Theorem: List.Func.equiv_of_eq
File: Mathlib/Data/List/Func.lean

tactic: intro h1
state_before: α : Type u
β : Type v
γ : Type w
a : α
as as1 as2 as3 : List α
inst✝¹ : Inhabited α
inst✝ : Inhabited β
⊢ as1 = as2 → Equiv as1 as2

tactic: rw [h1]
state_before: α : Type u
β : Type v
γ : Type w
a : α
as as1 as2 as3 : List α
inst✝¹ : Inhabited α
inst✝ : Inhabited β
h1 : as1 = as2
⊢ Equiv as1 as2

tactic: apply equiv_refl
state_before: α : Type u
β : Type v
γ : Type w
a : α
as as1 as2 as3 : List α
inst✝¹ : Inhabited α
inst✝ : Inhabited β
h1 : as1 = as2
⊢ Equiv as2 as2
Theorem: pathComponent_subset_component
File: Mathlib/Topology/PathConnected.lean

tactic: simp
state_before: X : Type u_1
Y : Type ?u.625357
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y✝ z : X
ι : Type ?u.625372
F : Set X
x y : X
h : y ∈ pathComponent x
⊢ ↑(Joined.somePath h) 0 = x

tactic: simp
state_before: X : Type u_1
Y : Type ?u.625357
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y✝ z : X
ι : Type ?u.625372
F : Set X
x y : X
h : y ∈ pathComponent x
⊢ ↑(Joined.somePath h) 1 = y
Theorem: Pi.toLex_update_lt_self_iff
File: Mathlib/Data/Pi/Lex.lean

tactic: refine' ⟨_, fun h => toLex_strictMono <| update_lt_self_iff.2 h⟩
state_before: ι : Type u_1
β : ι → Type u_2
r : ι → ι → Prop
s : {i : ι} → β i → β i → Prop
inst✝² : LinearOrder ι
inst✝¹ : IsWellOrder ι fun x x_1 => x < x_1
inst✝ : (i : ι) → PartialOrder (β i)
x y : (i : ι) → β i
i : ι
a : β i
⊢ ↑toLex (update x i a) < ↑toLex x ↔ a < x i

tactic: rintro ⟨j, hj, h⟩
state_before: ι : Type u_1
β : ι → Type u_2
r : ι → ι → Prop
s : {i : ι} → β i → β i → Prop
inst✝² : LinearOrder ι
inst✝¹ : IsWellOrder ι fun x x_1 => x < x_1
inst✝ : (i : ι) → PartialOrder (β i)
x y : (i : ι) → β i
i : ι
a : β i
⊢ ↑toLex (update x i a) < ↑toLex x → a < x i

tactic: dsimp at h
state_before: case intro.intro
ι : Type u_1
β : ι → Type u_2
r : ι → ι → Prop
s : {i : ι} → β i → β i → Prop
inst✝² : LinearOrder ι
inst✝¹ : IsWellOrder ι fun x x_1 => x < x_1
inst✝ : (i : ι) → PartialOrder (β i)
x y : (i : ι) → β i
i : ι
a : β i
j : ι
hj : ∀ (j_1 : ι), (fun x x_1 => x < x_1) j_1 j → ↑toLex (update x i a) j_1 = ↑toLex x j_1
h : ↑toLex (update x i a) j < ↑toLex x j
⊢ a < x i

tactic: obtain rfl : j = i := by
  by_contra H
  rw [update_noteq H] at h
  exact h.false
state_before: case intro.intro
ι : Type u_1
β : ι → Type u_2
r : ι → ι → Prop
s : {i : ι} → β i → β i → Prop
inst✝² : LinearOrder ι
inst✝¹ : IsWellOrder ι fun x x_1 => x < x_1
inst✝ : (i : ι) → PartialOrder (β i)
x y : (i : ι) → β i
i : ι
a : β i
j : ι
hj : ∀ (j_1 : ι), (fun x x_1 => x < x_1) j_1 j → ↑toLex (update x i a) j_1 = ↑toLex x j_1
h : update x i a j < x j
⊢ a < x i

tactic: rwa [update_same] at h
state_before: case intro.intro
ι : Type u_1
β : ι → Type u_2
r : ι → ι → Prop
s : {i : ι} → β i → β i → Prop
inst✝² : LinearOrder ι
inst✝¹ : IsWellOrder ι fun x x_1 => x < x_1
inst✝ : (i : ι) → PartialOrder (β i)
x y : (i : ι) → β i
j : ι
a : β j
hj : ∀ (j_1 : ι), (fun x x_1 => x < x_1) j_1 j → ↑toLex (update x j a) j_1 = ↑toLex x j_1
h : update x j a j < x j
⊢ a < x j

tactic: by_contra H
state_before: ι : Type u_1
β : ι → Type u_2
r : ι → ι → Prop
s : {i : ι} → β i → β i → Prop
inst✝² : LinearOrder ι
inst✝¹ : IsWellOrder ι fun x x_1 => x < x_1
inst✝ : (i : ι) → PartialOrder (β i)
x y : (i : ι) → β i
i : ι
a : β i
j : ι
hj : ∀ (j_1 : ι), (fun x x_1 => x < x_1) j_1 j → ↑toLex (update x i a) j_1 = ↑toLex x j_1
h : update x i a j < x j
⊢ j = i

tactic: rw [update_noteq H] at h
state_before: ι : Type u_1
β : ι → Type u_2
r : ι → ι → Prop
s : {i : ι} → β i → β i → Prop
inst✝² : LinearOrder ι
inst✝¹ : IsWellOrder ι fun x x_1 => x < x_1
inst✝ : (i : ι) → PartialOrder (β i)
x y : (i : ι) → β i
i : ι
a : β i
j : ι
hj : ∀ (j_1 : ι), (fun x x_1 => x < x_1) j_1 j → ↑toLex (update x i a) j_1 = ↑toLex x j_1
h : update x i a j < x j
H : ¬j = i
⊢ False

tactic: exact h.false
state_before: ι : Type u_1
β : ι → Type u_2
r : ι → ι → Prop
s : {i : ι} → β i → β i → Prop
inst✝² : LinearOrder ι
inst✝¹ : IsWellOrder ι fun x x_1 => x < x_1
inst✝ : (i : ι) → PartialOrder (β i)
x y : (i : ι) → β i
i : ι
a : β i
j : ι
hj : ∀ (j_1 : ι), (fun x x_1 => x < x_1) j_1 j → ↑toLex (update x i a) j_1 = ↑toLex x j_1
h : x j < x j
H : ¬j = i
⊢ False
Theorem: MeasureTheory.L1.norm_def
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simp [Lp.norm_def, snorm, snorm']
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.1298892
δ : Type ?u.1298895
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : { x // x ∈ Lp β 1 }
⊢ ‖f‖ = ENNReal.toReal (∫⁻ (a : α), ↑‖↑↑f a‖₊ ∂μ)
Theorem: List.sublists_cons
File: Mathlib/Data/List/Sublists.lean

tactic: rw [sublists_append]
state_before: α : Type u
β : Type v
γ : Type w
a : α
l : List α
⊢ sublists ([a] ++ l) = do
    let x ← sublists l
    [x, a :: x]

tactic: simp only [sublists_singleton, map_cons, bind_eq_bind, nil_append, cons_append, map_nil]
state_before: α : Type u
β : Type v
γ : Type w
a : α
l : List α
⊢ (do
      let x ← sublists l
      map (fun x_1 => x_1 ++ x) (sublists [a])) =
    do
    let x ← sublists l
    [x, a :: x]