tasksource/leandojo huggingface dataset:
Theorem: CategoryTheory.Iso.symm_self_id_assoc
File: Mathlib/CategoryTheory/Iso.lean

tactic: rw [← trans_assoc, symm_self_id, refl_trans]
state_before: C : Type u
inst✝ : Category C
X Y Z : C
α : X ≅ Y
β : Y ≅ Z
⊢ α.symm ≪≫ α ≪≫ β = β
Theorem: Substring.ValidFor.bsize
File: Std/Data/String/Lemmas.lean

tactic: simp [Substring.bsize, Nat.add_sub_cancel_left]
state_before: l m r : List Char
⊢ Substring.bsize
      { str := { data := l ++ m ++ r }, startPos := { byteIdx := utf8Len l },
        stopPos := { byteIdx := utf8Len l + utf8Len m } } =
    utf8Len m
Theorem: bernsteinPolynomial.flip'
File: Mathlib/RingTheory/Polynomial/Bernstein.lean

tactic: simp [← flip _ _ _ h, Polynomial.comp_assoc]
state_before: R : Type u_1
inst✝ : CommRing R
n ν : ℕ
h : ν ≤ n
⊢ bernsteinPolynomial R n ν = Polynomial.comp (bernsteinPolynomial R n (n - ν)) (1 - X)
Theorem: Mathlib.Tactic.Ring.mul_pf_left
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 c a₁ : R
a₂ : ℕ
x✝ : a₃ * b = c
⊢ a₁ ^ a₂ * a₃ * b = a₁ ^ a₂ * c

tactic: rw [mul_assoc]
state_before: u : Lean.Level
R : Type u_1
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝ : CommSemiring R
a₃ b a₁ : R
a₂ : ℕ
⊢ a₁ ^ a₂ * a₃ * b = a₁ ^ a₂ * (a₃ * b)
Theorem: Finite.of_summable_const
File: Mathlib/Topology/Algebra/InfiniteSum/Order.lean

tactic: have H : ∀ s : Finset ι, s.card • b ≤ ∑' _ : ι, b := fun s => by
  simpa using sum_le_hasSum s (fun a _ => hb.le) hf.hasSum
state_before: ι : Type u_2
κ : Type ?u.66748
α : Type u_1
inst✝³ : LinearOrderedAddCommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : Archimedean α
inst✝ : OrderClosedTopology α
b : α
hb : 0 < b
hf : Summable fun x => b
⊢ Finite ι

tactic: obtain ⟨n, hn⟩ := Archimedean.arch (∑' _ : ι, b) hb
state_before: ι : Type u_2
κ : Type ?u.66748
α : Type u_1
inst✝³ : LinearOrderedAddCommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : Archimedean α
inst✝ : OrderClosedTopology α
b : α
hb : 0 < b
hf : Summable fun x => b
H : ∀ (s : Finset ι), card s • b ≤ ∑' (x : ι), b
⊢ Finite ι

tactic: have : ∀ s : Finset ι, s.card ≤ n := fun s => by
  simpa [nsmul_le_nsmul_iff hb] using (H s).trans hn
state_before: case intro
ι : Type u_2
κ : Type ?u.66748
α : Type u_1
inst✝³ : LinearOrderedAddCommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : Archimedean α
inst✝ : OrderClosedTopology α
b : α
hb : 0 < b
hf : Summable fun x => b
H : ∀ (s : Finset ι), card s • b ≤ ∑' (x : ι), b
n : ℕ
hn : (∑' (x : ι), b) ≤ n • b
⊢ Finite ι

tactic: have : Fintype ι := fintypeOfFinsetCardLe n this
state_before: case intro
ι : Type u_2
κ : Type ?u.66748
α : Type u_1
inst✝³ : LinearOrderedAddCommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : Archimedean α
inst✝ : OrderClosedTopology α
b : α
hb : 0 < b
hf : Summable fun x => b
H : ∀ (s : Finset ι), card s • b ≤ ∑' (x : ι), b
n : ℕ
hn : (∑' (x : ι), b) ≤ n • b
this : ∀ (s : Finset ι), card s ≤ n
⊢ Finite ι

tactic: infer_instance
state_before: case intro
ι : Type u_2
κ : Type ?u.66748
α : Type u_1
inst✝³ : LinearOrderedAddCommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : Archimedean α
inst✝ : OrderClosedTopology α
b : α
hb : 0 < b
hf : Summable fun x => b
H : ∀ (s : Finset ι), card s • b ≤ ∑' (x : ι), b
n : ℕ
hn : (∑' (x : ι), b) ≤ n • b
this✝ : ∀ (s : Finset ι), card s ≤ n
this : Fintype ι
⊢ Finite ι

tactic: simpa using sum_le_hasSum s (fun a _ => hb.le) hf.hasSum
state_before: ι : Type u_2
κ : Type ?u.66748
α : Type u_1
inst✝³ : LinearOrderedAddCommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : Archimedean α
inst✝ : OrderClosedTopology α
b : α
hb : 0 < b
hf : Summable fun x => b
s : Finset ι
⊢ card s • b ≤ ∑' (x : ι), b

tactic: simpa [nsmul_le_nsmul_iff hb] using (H s).trans hn
state_before: ι : Type u_2
κ : Type ?u.66748
α : Type u_1
inst✝³ : LinearOrderedAddCommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : Archimedean α
inst✝ : OrderClosedTopology α
b : α
hb : 0 < b
hf : Summable fun x => b
H : ∀ (s : Finset ι), card s • b ≤ ∑' (x : ι), b
n : ℕ
hn : (∑' (x : ι), b) ≤ n • b
s : Finset ι
⊢ card s ≤ n
Theorem: norm_combo_lt_of_ne
File: Mathlib/Analysis/Convex/StrictConvexSpace.lean

tactic: simp only [← mem_ball_zero_iff, ← mem_closedBall_zero_iff] at hx hy⊢
state_before: 𝕜 : Type ?u.50303
E : Type u_1
inst✝⁴ : NormedLinearOrderedField 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace ℝ E
inst✝ : StrictConvexSpace ℝ E
x y z : E
a b r : ℝ
hx : ‖x‖ ≤ r
hy : ‖y‖ ≤ r
hne : x ≠ y
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ ‖a • x + b • y‖ < r

tactic: exact combo_mem_ball_of_ne hx hy hne ha hb hab
state_before: 𝕜 : Type ?u.50303
E : Type u_1
inst✝⁴ : NormedLinearOrderedField 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace ℝ E
inst✝ : StrictConvexSpace ℝ E
x y z : E
a b r : ℝ
hne : x ≠ y
ha : 0 < a
hb : 0 < b
hab : a + b = 1
hx : x ∈ closedBall 0 r
hy : y ∈ closedBall 0 r
⊢ a • x + b • y ∈ ball 0 r
Theorem: List.aemeasurable_prod
File: Mathlib/MeasureTheory/Group/Arithmetic.lean

tactic: simpa only [← Pi.list_prod_apply] using l.aemeasurable_prod' hl
state_before: M : Type u_1
α : Type u_2
inst✝² : Monoid M
inst✝¹ : MeasurableSpace M
inst✝ : MeasurableMul₂ M
m : MeasurableSpace α
μ : MeasureTheory.Measure α
l : List (α → M)
hl : ∀ (f : α → M), f ∈ l → AEMeasurable f
⊢ AEMeasurable fun x => prod (map (fun f => f x) l)
Theorem: Set.image_update_Ioc
File: Mathlib/Data/Set/Intervals/Pi.lean

tactic: rw [← Icc_diff_left, ← Icc_diff_left, image_diff (update_injective _ _), image_singleton,
  image_update_Icc]
state_before: ι : Type u_1
α : ι → Type u_2
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → PartialOrder (α i)
f : (i : ι) → α i
i : ι
a b : α i
⊢ update f i '' Ioc a b = Ioc (update f i a) (update f i b)
Theorem: Real.Angle.coe_expMapCircle
File: Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean

tactic: induction θ using Real.Angle.induction_on
state_before: θ : Angle
⊢ ↑(expMapCircle θ) = ↑(cos θ) + ↑(sin θ) * I

tactic: simp [Complex.exp_mul_I]
state_before: case h
x✝ : ℝ
⊢ ↑(expMapCircle ↑x✝) = ↑(cos ↑x✝) + ↑(sin ↑x✝) * I
Theorem: Filter.disjoint_atBot_atTop
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: rcases exists_pair_ne α with ⟨x, y, hne⟩
state_before: ι : Type ?u.4780
ι' : Type ?u.4783
α : Type u_1
β : Type ?u.4789
γ : Type ?u.4792
inst✝¹ : PartialOrder α
inst✝ : Nontrivial α
⊢ Disjoint atBot atTop

tactic: by_cases hle : x ≤ y
state_before: case intro.intro
ι : Type ?u.4780
ι' : Type ?u.4783
α : Type u_1
β : Type ?u.4789
γ : Type ?u.4792
inst✝¹ : PartialOrder α
inst✝ : Nontrivial α
x y : α
hne : x ≠ y
⊢ Disjoint atBot atTop

tactic: refine' disjoint_of_disjoint_of_mem _ (Iic_mem_atBot x) (Ici_mem_atTop y)
state_before: case pos
ι : Type ?u.4780
ι' : Type ?u.4783
α : Type u_1
β : Type ?u.4789
γ : Type ?u.4792
inst✝¹ : PartialOrder α
inst✝ : Nontrivial α
x y : α
hne : x ≠ y
hle : x ≤ y
⊢ Disjoint atBot atTop

tactic: exact Iic_disjoint_Ici.2 (hle.lt_of_ne hne).not_le
state_before: case pos
ι : Type ?u.4780
ι' : Type ?u.4783
α : Type u_1
β : Type ?u.4789
γ : Type ?u.4792
inst✝¹ : PartialOrder α
inst✝ : Nontrivial α
x y : α
hne : x ≠ y
hle : x ≤ y
⊢ Disjoint (Iic x) (Ici y)

tactic: refine' disjoint_of_disjoint_of_mem _ (Iic_mem_atBot y) (Ici_mem_atTop x)
state_before: case neg
ι : Type ?u.4780
ι' : Type ?u.4783
α : Type u_1
β : Type ?u.4789
γ : Type ?u.4792
inst✝¹ : PartialOrder α
inst✝ : Nontrivial α
x y : α
hne : x ≠ y
hle : ¬x ≤ y
⊢ Disjoint atBot atTop

tactic: exact Iic_disjoint_Ici.2 hle
state_before: case neg
ι : Type ?u.4780
ι' : Type ?u.4783
α : Type u_1
β : Type ?u.4789
γ : Type ?u.4792
inst✝¹ : PartialOrder α
inst✝ : Nontrivial α
x y : α
hne : x ≠ y
hle : ¬x ≤ y
⊢ Disjoint (Iic y) (Ici x)
Theorem: Matrix.empty_vecAlt0
File: Mathlib/Data/Fin/VecNotation.lean

tactic: simp
state_before: α✝ : Type u
m n o : ℕ
m' : Type ?u.51912
n' : Type ?u.51915
o' : Type ?u.51918
α : Type u_1
h : 0 = 0 + 0
⊢ vecAlt0 h ![] = ![]
Theorem: MeasureTheory.FinMeasAdditive.smul_measure
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

tactic: refine' of_eq_top_imp_eq_top (fun s _ hμs => _) hT
state_before: α : Type u_1
E : Type ?u.29157
F : Type ?u.29160
F' : Type ?u.29163
G : Type ?u.29166
𝕜 : Type ?u.29169
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
β : Type u_2
inst✝ : AddCommMonoid β
T T' : Set α → β
c : ℝ≥0∞
hc_ne_zero : c ≠ 0
hT : FinMeasAdditive μ T
⊢ FinMeasAdditive (c • μ) T

tactic: rw [Measure.smul_apply, smul_eq_mul, ENNReal.mul_eq_top]
state_before: α : Type u_1
E : Type ?u.29157
F : Type ?u.29160
F' : Type ?u.29163
G : Type ?u.29166
𝕜 : Type ?u.29169
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
β : Type u_2
inst✝ : AddCommMonoid β
T T' : Set α → β
c : ℝ≥0∞
hc_ne_zero : c ≠ 0
hT : FinMeasAdditive μ T
s : Set α
x✝ : MeasurableSet s
hμs : ↑↑μ s = ⊤
⊢ ↑↑(c • μ) s = ⊤

tactic: simp only [hc_ne_zero, true_and_iff, Ne.def, not_false_iff]
state_before: α : Type u_1
E : Type ?u.29157
F : Type ?u.29160
F' : Type ?u.29163
G : Type ?u.29166
𝕜 : Type ?u.29169
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
β : Type u_2
inst✝ : AddCommMonoid β
T T' : Set α → β
c : ℝ≥0∞
hc_ne_zero : c ≠ 0
hT : FinMeasAdditive μ T
s : Set α
x✝ : MeasurableSet s
hμs : ↑↑μ s = ⊤
⊢ c ≠ 0 ∧ ↑↑μ s = ⊤ ∨ c = ⊤ ∧ ↑↑μ s ≠ 0

tactic: exact Or.inl hμs
state_before: α : Type u_1
E : Type ?u.29157
F : Type ?u.29160
F' : Type ?u.29163
G : Type ?u.29166
𝕜 : Type ?u.29169
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
β : Type u_2
inst✝ : AddCommMonoid β
T T' : Set α → β
c : ℝ≥0∞
hc_ne_zero : c ≠ 0
hT : FinMeasAdditive μ T
s : Set α
x✝ : MeasurableSet s
hμs : ↑↑μ s = ⊤
⊢ ↑↑μ s = ⊤ ∨ c = ⊤ ∧ ¬↑↑μ s = 0
Theorem: Finset.card_insertNone
File: Mathlib/Data/Finset/Option.lean

tactic: simp [insertNone]
state_before: α : Type u_1
β : Type ?u.4974
s : Finset α
⊢ card (↑insertNone s) = card s + 1
Theorem: IsAlgClosed.ringEquivOfCardinalEqOfCharZero
File: Mathlib/FieldTheory/IsAlgClosed/Classification.lean

tactic: apply Classical.choice
state_before: K L : Type
inst✝⁵ : Field K
inst✝⁴ : Field L
inst✝³ : IsAlgClosed K
inst✝² : IsAlgClosed L
inst✝¹ : CharZero K
inst✝ : CharZero L
hK : ℵ₀ < (#K)
hKL : (#K) = (#L)
⊢ K ≃+* L

tactic: cases' exists_isTranscendenceBasis ℤ
  (show Function.Injective (algebraMap ℤ K) from Int.cast_injective) with s hs
state_before: case a
K L : Type
inst✝⁵ : Field K
inst✝⁴ : Field L
inst✝³ : IsAlgClosed K
inst✝² : IsAlgClosed L
inst✝¹ : CharZero K
inst✝ : CharZero L
hK : ℵ₀ < (#K)
hKL : (#K) = (#L)
⊢ Nonempty (K ≃+* L)

tactic: cases' exists_isTranscendenceBasis ℤ
  (show Function.Injective (algebraMap ℤ L) from Int.cast_injective) with t ht
state_before: case a.intro
K L : Type
inst✝⁵ : Field K
inst✝⁴ : Field L
inst✝³ : IsAlgClosed K
inst✝² : IsAlgClosed L
inst✝¹ : CharZero K
inst✝ : CharZero L
hK : ℵ₀ < (#K)
hKL : (#K) = (#L)
s : Set K
hs : IsTranscendenceBasis ℤ Subtype.val
⊢ Nonempty (K ≃+* L)

tactic: have : (#s) = (#t) := by
  rw [← cardinal_eq_cardinal_transcendence_basis_of_aleph0_lt _ hs (le_of_eq mk_int) hK, ←
    cardinal_eq_cardinal_transcendence_basis_of_aleph0_lt _ ht (le_of_eq mk_int), hKL]
  rwa [← hKL]
state_before: case a.intro.intro
K L : Type
inst✝⁵ : Field K
inst✝⁴ : Field L
inst✝³ : IsAlgClosed K
inst✝² : IsAlgClosed L
inst✝¹ : CharZero K
inst✝ : CharZero L
hK : ℵ₀ < (#K)
hKL : (#K) = (#L)
s : Set K
hs : IsTranscendenceBasis ℤ Subtype.val
t : Set L
ht : IsTranscendenceBasis ℤ Subtype.val
⊢ Nonempty (K ≃+* L)

tactic: cases' Cardinal.eq.1 this with e
state_before: case a.intro.intro
K L : Type
inst✝⁵ : Field K
inst✝⁴ : Field L
inst✝³ : IsAlgClosed K
inst✝² : IsAlgClosed L
inst✝¹ : CharZero K
inst✝ : CharZero L
hK : ℵ₀ < (#K)
hKL : (#K) = (#L)
s : Set K
hs : IsTranscendenceBasis ℤ Subtype.val
t : Set L
ht : IsTranscendenceBasis ℤ Subtype.val
this : (#↑s) = (#↑t)
⊢ Nonempty (K ≃+* L)

tactic: exact ⟨equivOfTranscendenceBasis _ _ e hs ht⟩
state_before: case a.intro.intro.intro
K L : Type
inst✝⁵ : Field K
inst✝⁴ : Field L
inst✝³ : IsAlgClosed K
inst✝² : IsAlgClosed L
inst✝¹ : CharZero K
inst✝ : CharZero L
hK : ℵ₀ < (#K)
hKL : (#K) = (#L)
s : Set K
hs : IsTranscendenceBasis ℤ Subtype.val
t : Set L
ht : IsTranscendenceBasis ℤ Subtype.val
this : (#↑s) = (#↑t)
e : ↑s ≃ ↑t
⊢ Nonempty (K ≃+* L)

tactic: rw [← cardinal_eq_cardinal_transcendence_basis_of_aleph0_lt _ hs (le_of_eq mk_int) hK, ←
  cardinal_eq_cardinal_transcendence_basis_of_aleph0_lt _ ht (le_of_eq mk_int), hKL]
state_before: K L : Type
inst✝⁵ : Field K
inst✝⁴ : Field L
inst✝³ : IsAlgClosed K
inst✝² : IsAlgClosed L
inst✝¹ : CharZero K
inst✝ : CharZero L
hK : ℵ₀ < (#K)
hKL : (#K) = (#L)
s : Set K
hs : IsTranscendenceBasis ℤ Subtype.val
t : Set L
ht : IsTranscendenceBasis ℤ Subtype.val
⊢ (#↑s) = (#↑t)

tactic: rwa [← hKL]
state_before: K L : Type
inst✝⁵ : Field K
inst✝⁴ : Field L
inst✝³ : IsAlgClosed K
inst✝² : IsAlgClosed L
inst✝¹ : CharZero K
inst✝ : CharZero L
hK : ℵ₀ < (#K)
hKL : (#K) = (#L)
s : Set K
hs : IsTranscendenceBasis ℤ Subtype.val
t : Set L
ht : IsTranscendenceBasis ℤ Subtype.val
⊢ ℵ₀ < (#L)
Theorem: ae_eq_restrict_iff_indicator_ae_eq
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [Filter.EventuallyEq, ae_restrict_iff' hs]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.5024740
δ : Type ?u.5024743
ι : Type ?u.5024746
R : Type ?u.5024749
R' : Type ?u.5024752
inst✝¹ : MeasurableSpace α
μ : MeasureTheory.Measure α
s t : Set α
f : α → β
inst✝ : Zero β
g : α → β
hs : MeasurableSet s
⊢ f =ᶠ[ae (Measure.restrict μ s)] g ↔ indicator s f =ᶠ[ae μ] indicator s g

tactic: refine' ⟨fun h => _, fun h => _⟩ <;> filter_upwards [h]with x hx
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.5024740
δ : Type ?u.5024743
ι : Type ?u.5024746
R : Type ?u.5024749
R' : Type ?u.5024752
inst✝¹ : MeasurableSpace α
μ : MeasureTheory.Measure α
s t : Set α
f : α → β
inst✝ : Zero β
g : α → β
hs : MeasurableSet s
⊢ (∀ᵐ (x : α) ∂μ, x ∈ s → f x = g x) ↔ indicator s f =ᶠ[ae μ] indicator s g

tactic: by_cases hxs : x ∈ s
state_before: case h
α : Type u_1
β : Type u_2
γ : Type ?u.5024740
δ : Type ?u.5024743
ι : Type ?u.5024746
R : Type ?u.5024749
R' : Type ?u.5024752
inst✝¹ : MeasurableSpace α
μ : MeasureTheory.Measure α
s t : Set α
f : α → β
inst✝ : Zero β
g : α → β
hs : MeasurableSet s
h : ∀ᵐ (x : α) ∂μ, x ∈ s → f x = g x
x : α
hx : x ∈ s → f x = g x
⊢ indicator s f x = indicator s g x

tactic: simp [hxs, hx hxs]
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type ?u.5024740
δ : Type ?u.5024743
ι : Type ?u.5024746
R : Type ?u.5024749
R' : Type ?u.5024752
inst✝¹ : MeasurableSpace α
μ : MeasureTheory.Measure α
s t : Set α
f : α → β
inst✝ : Zero β
g : α → β
hs : MeasurableSet s
h : ∀ᵐ (x : α) ∂μ, x ∈ s → f x = g x
x : α
hx : x ∈ s → f x = g x
hxs : x ∈ s
⊢ indicator s f x = indicator s g x

tactic: simp [hxs]
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type ?u.5024740
δ : Type ?u.5024743
ι : Type ?u.5024746
R : Type ?u.5024749
R' : Type ?u.5024752
inst✝¹ : MeasurableSpace α
μ : MeasureTheory.Measure α
s t : Set α
f : α → β
inst✝ : Zero β
g : α → β
hs : MeasurableSet s
h : ∀ᵐ (x : α) ∂μ, x ∈ s → f x = g x
x : α
hx : x ∈ s → f x = g x
hxs : ¬x ∈ s
⊢ indicator s f x = indicator s g x

tactic: intro hxs
state_before: case h
α : Type u_1
β : Type u_2
γ : Type ?u.5024740
δ : Type ?u.5024743
ι : Type ?u.5024746
R : Type ?u.5024749
R' : Type ?u.5024752
inst✝¹ : MeasurableSpace α
μ : MeasureTheory.Measure α
s t : Set α
f : α → β
inst✝ : Zero β
g : α → β
hs : MeasurableSet s
h : indicator s f =ᶠ[ae μ] indicator s g
x : α
hx : indicator s f x = indicator s g x
⊢ x ∈ s → f x = g x

tactic: simpa [hxs] using hx
state_before: case h
α : Type u_1
β : Type u_2
γ : Type ?u.5024740
δ : Type ?u.5024743
ι : Type ?u.5024746
R : Type ?u.5024749
R' : Type ?u.5024752
inst✝¹ : MeasurableSpace α
μ : MeasureTheory.Measure α
s t : Set α
f : α → β
inst✝ : Zero β
g : α → β
hs : MeasurableSet s
h : indicator s f =ᶠ[ae μ] indicator s g
x : α
hx : indicator s f x = indicator s g x
hxs : x ∈ s
⊢ f x = g x
Theorem: MeasureTheory.VectorMeasure.of_diff
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: rw [← of_add_of_diff hA hB h, add_sub_cancel']
state_before: α : Type u_2
β : Type ?u.25485
m : MeasurableSpace α
M✝ : Type ?u.25491
inst✝⁵ : AddCommMonoid M✝
inst✝⁴ : TopologicalSpace M✝
inst✝³ : T2Space M✝
v✝ : VectorMeasure α M✝
f : ℕ → Set α
M : Type u_1
inst✝² : AddCommGroup M
inst✝¹ : TopologicalSpace M
inst✝ : T2Space M
v : VectorMeasure α M
A B : Set α
hA : MeasurableSet A
hB : MeasurableSet B
h : A ⊆ B
⊢ ↑v (B \ A) = ↑v B - ↑v A
Theorem: Associates.coe_unit_eq_one
File: Mathlib/Algebra/Associated.lean

tactic: simp
state_before: α : Type u_1
β : Type ?u.291289
γ : Type ?u.291292
δ : Type ?u.291295
inst✝ : CommMonoid α
u : (Associates α)ˣ
⊢ ↑u = 1
Theorem: Complex.sinh_three_mul
File: Mathlib/Data/Complex/Exponential.lean

tactic: have h1 : x + 2 * x = 3 * x := by ring
state_before: x y : ℂ
⊢ sinh (3 * x) = 4 * sinh x ^ 3 + 3 * sinh x

tactic: rw [← h1, sinh_add x (2 * x)]
state_before: x y : ℂ
h1 : x + 2 * x = 3 * x
⊢ sinh (3 * x) = 4 * sinh x ^ 3 + 3 * sinh x

tactic: simp only [cosh_two_mul, sinh_two_mul]
state_before: x y : ℂ
h1 : x + 2 * x = 3 * x
⊢ sinh x * cosh (2 * x) + cosh x * sinh (2 * x) = 4 * sinh x ^ 3 + 3 * sinh x

tactic: have h2 : cosh x * (2 * sinh x * cosh x) = 2 * sinh x * cosh x ^ 2 := by ring
state_before: x y : ℂ
h1 : x + 2 * x = 3 * x
⊢ sinh x * (cosh x ^ 2 + sinh x ^ 2) + cosh x * (2 * sinh x * cosh x) = 4 * sinh x ^ 3 + 3 * sinh x

tactic: rw [h2, cosh_sq]
state_before: x y : ℂ
h1 : x + 2 * x = 3 * x
h2 : cosh x * (2 * sinh x * cosh x) = 2 * sinh x * cosh x ^ 2
⊢ sinh x * (cosh x ^ 2 + sinh x ^ 2) + cosh x * (2 * sinh x * cosh x) = 4 * sinh x ^ 3 + 3 * sinh x

tactic: ring
state_before: x y : ℂ
h1 : x + 2 * x = 3 * x
h2 : cosh x * (2 * sinh x * cosh x) = 2 * sinh x * cosh x ^ 2
⊢ sinh x * (sinh x ^ 2 + 1 + sinh x ^ 2) + 2 * sinh x * (sinh x ^ 2 + 1) = 4 * sinh x ^ 3 + 3 * sinh x

tactic: ring
state_before: x y : ℂ
⊢ x + 2 * x = 3 * x

tactic: ring
state_before: x y : ℂ
h1 : x + 2 * x = 3 * x
⊢ cosh x * (2 * sinh x * cosh x) = 2 * sinh x * cosh x ^ 2
Theorem: MonoidHom.comp_one
File: Mathlib/Algebra/Hom/Group.lean

tactic: ext
state_before: α : Type ?u.214013
β : Type ?u.214016
M : Type u_1
N : Type u_2
P : Type u_3
G : Type ?u.214028
H : Type ?u.214031
F : Type ?u.214034
inst✝⁴ : Group G
inst✝³ : CommGroup H
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
f : N →* P
⊢ comp f 1 = 1

tactic: simp only [map_one, coe_comp, Function.comp_apply, one_apply]
state_before: case h
α : Type ?u.214013
β : Type ?u.214016
M : Type u_1
N : Type u_2
P : Type u_3
G : Type ?u.214028
H : Type ?u.214031
F : Type ?u.214034
inst✝⁴ : Group G
inst✝³ : CommGroup H
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
f : N →* P
x✝ : M
⊢ ↑(comp f 1) x✝ = ↑1 x✝
Theorem: norm_sup_sub_sup_le_add_norm
File: Mathlib/Analysis/Normed/Order/Lattice.lean

tactic: rw [← norm_abs_eq_norm (a - c), ← norm_abs_eq_norm (b - d)]
state_before: α : Type u_1
inst✝ : NormedLatticeAddCommGroup α
a b c d : α
⊢ ‖a ⊔ b - c ⊔ d‖ ≤ ‖a - c‖ + ‖b - d‖

tactic: refine' le_trans (solid _) (norm_add_le (|a - c|) (|b - d|))
state_before: α : Type u_1
inst✝ : NormedLatticeAddCommGroup α
a b c d : α
⊢ ‖a ⊔ b - c ⊔ d‖ ≤ ‖abs (a - c)‖ + ‖abs (b - d)‖

tactic: rw [abs_of_nonneg (|a - c| + |b - d|) (add_nonneg (abs_nonneg (a - c)) (abs_nonneg (b - d)))]
state_before: α : Type u_1
inst✝ : NormedLatticeAddCommGroup α
a b c d : α
⊢ abs (a ⊔ b - c ⊔ d) ≤ abs (abs (a - c) + abs (b - d))

tactic: rw [sub_add_sub_cancel]
state_before: α : Type u_1
inst✝ : NormedLatticeAddCommGroup α
a b c d : α
⊢ abs (a ⊔ b - c ⊔ d) = abs (a ⊔ b - c ⊔ b + (c ⊔ b - c ⊔ d))

tactic: apply add_le_add
state_before: α : Type u_1
inst✝ : NormedLatticeAddCommGroup α
a b c d : α
⊢ abs (a ⊔ b - c ⊔ b) + abs (c ⊔ b - c ⊔ d) ≤ abs (a - c) + abs (b - d)

tactic: exact abs_sup_sub_sup_le_abs _ _ _
state_before: case h₁
α : Type u_1
inst✝ : NormedLatticeAddCommGroup α
a b c d : α
⊢ abs (a ⊔ b - c ⊔ b) ≤ abs (a - c)

tactic: rw [@sup_comm _ _ c, @sup_comm _ _ c]
state_before: case h₂
α : Type u_1
inst✝ : NormedLatticeAddCommGroup α
a b c d : α
⊢ abs (c ⊔ b - c ⊔ d) ≤ abs (b - d)

tactic: exact abs_sup_sub_sup_le_abs _ _ _
state_before: case h₂
α : Type u_1
inst✝ : NormedLatticeAddCommGroup α
a b c d : α
⊢ abs (b ⊔ c - d ⊔ c) ≤ abs (b - d)
Theorem: padicValNat.eq_zero_iff
File: Mathlib/NumberTheory/Padics/PadicVal.lean

tactic: simp only [padicValNat, dite_eq_right_iff, PartENat.get_eq_iff_eq_coe, Nat.cast_zero,
  multiplicity_eq_zero, and_imp, pos_iff_ne_zero, Ne.def, ← or_iff_not_imp_left]
state_before: p n : ℕ
⊢ padicValNat p n = 0 ↔ p = 1 ∨ n = 0 ∨ ¬p ∣ n
Theorem: MeasureTheory.Measure.haar_singleton
File: Mathlib/MeasureTheory/Group/Measure.lean

tactic: convert measure_preimage_mul μ g⁻¹ _
state_before: 𝕜 : Type ?u.585203
G : Type u_1
H : Type ?u.585209
inst✝⁶ : MeasurableSpace G
inst✝⁵ : MeasurableSpace H
inst✝⁴ : Group G
inst✝³ : TopologicalSpace G
μ : Measure G
inst✝² : IsHaarMeasure μ
inst✝¹ : TopologicalGroup G
inst✝ : BorelSpace G
g : G
⊢ ↑↑μ {g} = ↑↑μ {1}

tactic: simp only [mul_one, preimage_mul_left_singleton, inv_inv]
state_before: case h.e'_2.h.e'_3
𝕜 : Type ?u.585203
G : Type u_1
H : Type ?u.585209
inst✝⁶ : MeasurableSpace G
inst✝⁵ : MeasurableSpace H
inst✝⁴ : Group G
inst✝³ : TopologicalSpace G
μ : Measure G
inst✝² : IsHaarMeasure μ
inst✝¹ : TopologicalGroup G
inst✝ : BorelSpace G
g : G
⊢ {g} = (fun h => g⁻¹ * h) ⁻¹' {1}
Theorem: EuclideanDomain.mod_add_div'
File: Mathlib/Algebra/EuclideanDomain/Defs.lean

tactic: rw [mul_comm]
state_before: R : Type u
inst✝ : EuclideanDomain R
m k : R
⊢ m % k + m / k * k = m

tactic: exact mod_add_div _ _
state_before: R : Type u
inst✝ : EuclideanDomain R
m k : R
⊢ m % k + k * (m / k) = m
Theorem: zpow_sub₀
File: Mathlib/Algebra/GroupWithZero/Power.lean

tactic: rw [sub_eq_add_neg, zpow_add₀ ha, zpow_neg, div_eq_mul_inv]
state_before: G₀ : Type u_1
inst✝ : GroupWithZero G₀
a : G₀
ha : a ≠ 0
z1 z2 : ℤ
⊢ a ^ (z1 - z2) = a ^ z1 / a ^ z2
Theorem: ContinuousMap.tendsto_iff_tendstoUniformly
File: Mathlib/Topology/UniformSpace/CompactConvergence.lean

tactic: rw [tendsto_iff_forall_compact_tendstoUniformlyOn, ← tendstoUniformlyOn_univ]
state_before: α : Type u₁
β : Type u₂
inst✝² : TopologicalSpace α
inst✝¹ : UniformSpace β
K : Set α
V : Set (β × β)
f : C(α, β)
ι : Type u₃
p : Filter ι
F : ι → C(α, β)
inst✝ : CompactSpace α
⊢ Tendsto F p (𝓝 f) ↔ TendstoUniformly (fun i a => ↑(F i) a) (↑f) p

tactic: exact ⟨fun h => h univ isCompact_univ, fun h K _hK => h.mono (subset_univ K)⟩
state_before: α : Type u₁
β : Type u₂
inst✝² : TopologicalSpace α
inst✝¹ : UniformSpace β
K : Set α
V : Set (β × β)
f : C(α, β)
ι : Type u₃
p : Filter ι
F : ι → C(α, β)
inst✝ : CompactSpace α
⊢ (∀ (K : Set α), IsCompact K → TendstoUniformlyOn (fun i a => ↑(F i) a) (↑f) p K) ↔
    TendstoUniformlyOn (fun i a => ↑(F i) a) (↑f) p univ
Theorem: Complex.log_re
File: Mathlib/Analysis/SpecialFunctions/Complex/Log.lean

tactic: simp [log]
state_before: x : ℂ
⊢ (log x).re = Real.log (↑abs x)