1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: OmegaCompletePartialOrder.Chain.mem_map_iff
File: Mathlib/Order/OmegaCompletePartialOrder.lean

tactic: rcases h with ⟨w, h, h'⟩
state_before: α : Type u
β : Type v
γ : Type u_1
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
c c' : Chain α
f : α →o β
g : β →o γ
b : β
h : ∃ a ∈ c, f a = b
⊢ b ∈ c.map f
state_after: case intro.intro
α : Type u
β : Type v
γ : Type u_1
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
c c' : Chain α
f : α →o β
g : β →o γ
b : β
w : α
h : w ∈ c
h' : f w = b
⊢ b ∈ c.map f

tactic: subst b
state_before: case intro.intro
α : Type u
β : Type v
γ : Type u_1
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
c c' : Chain α
f : α →o β
g : β →o γ
b : β
w : α
h : w ∈ c
h' : f w = b
⊢ b ∈ c.map f
state_after: case intro.intro
α : Type u
β : Type v
γ : Type u_1
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
c c' : Chain α
f : α →o β
g : β →o γ
w : α
h : w ∈ c
⊢ f w ∈ c.map f

tactic: apply mem_map c _ h
state_before: case intro.intro
α : Type u
β : Type v
γ : Type u_1
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
c c' : Chain α
f : α →o β
g : β →o γ
w : α
h : w ∈ c
⊢ f w ∈ c.map f
state_after: no goals
Theorem: CharTwo.multiset_sum_mul_self
File: Mathlib/Algebra/CharP/Two.lean

tactic: simp_rw [← pow_two, multiset_sum_sq]
state_before: R : Type u_1
ι : Type u_2
inst✝¹ : CommSemiring R
inst✝ : CharP R 2
l : Multiset R
⊢ l.sum * l.sum = (Multiset.map (fun x => x * x) l).sum
state_after: no goals
Theorem: ProbabilityTheory.condCount_inter
File: Mathlib/Probability/CondCount.lean

tactic: by_cases hst : s ∩ t = ∅
state_before: Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
⊢ (condCount s) (t ∩ u) = (condCount (s ∩ t)) u * (condCount s) t
state_after: case pos
Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
hst : s ∩ t = ∅
⊢ (condCount s) (t ∩ u) = (condCount (s ∩ t)) u * (condCount s) t

case neg
Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
hst : ¬s ∩ t = ∅
⊢ (condCount s) (t ∩ u) = (condCount (s ∩ t)) u * (condCount s) t

tactic: rw [condCount, condCount, cond_apply _ hs.measurableSet, cond_apply _ hs.measurableSet,
  cond_apply _ (hs.inter_of_left _).measurableSet, mul_comm _ (Measure.count (s ∩ t)),
  ← mul_assoc, mul_comm _ (Measure.count (s ∩ t)), ← mul_assoc, ENNReal.mul_inv_cancel, one_mul,
  mul_comm, Set.inter_assoc]
state_before: case neg
Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
hst : ¬s ∩ t = ∅
⊢ (condCount s) (t ∩ u) = (condCount (s ∩ t)) u * (condCount s) t
state_after: case neg.h0
Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
hst : ¬s ∩ t = ∅
⊢ Measure.count (s ∩ t) ≠ 0

case neg.ht
Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
hst : ¬s ∩ t = ∅
⊢ Measure.count (s ∩ t) ≠ ⊤

tactic: rw [hst, condCount_empty_meas, Measure.coe_zero, Pi.zero_apply, zero_mul,
  condCount_eq_zero_iff hs, ← Set.inter_assoc, hst, Set.empty_inter]
state_before: case pos
Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
hst : s ∩ t = ∅
⊢ (condCount s) (t ∩ u) = (condCount (s ∩ t)) u * (condCount s) t
state_after: no goals

tactic: rwa [← Measure.count_eq_zero_iff] at hst
state_before: case neg.h0
Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
hst : ¬s ∩ t = ∅
⊢ Measure.count (s ∩ t) ≠ 0
state_after: no goals

tactic: exact (Measure.count_apply_lt_top.2 <| hs.inter_of_left _).ne
state_before: case neg.ht
Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t u : Set Ω
hs : s.Finite
hst : ¬s ∩ t = ∅
⊢ Measure.count (s ∩ t) ≠ ⊤
state_after: no goals
Theorem: CircleDeg1Lift.le_iterate_of_add_int_le_map
File: Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean

tactic: simpa only [nsmul_eq_mul, add_right_iterate] using
  (f.commute_add_int m).symm.iterate_le_of_map_le (monotone_id.add_const (m : ℝ)) f.monotone h n
state_before: f g : CircleDeg1Lift
x : ℝ
m : ℤ
h : x + ↑m ≤ f x
n : ℕ
⊢ x + ↑n * ↑m ≤ (⇑f)^[n] x
state_after: no goals
Theorem: RingHom.rangeS_eq_map
File: Mathlib/Algebra/Ring/Subsemiring/Basic.lean

tactic: ext
state_before: R : Type u
S : Type v
T : Type w
inst✝² : NonAssocSemiring R
M : Submonoid R
inst✝¹ : NonAssocSemiring S
inst✝ : NonAssocSemiring T
g : S →+* T
f✝ f : R →+* S
⊢ f.rangeS = Subsemiring.map f ⊤
state_after: case h
R : Type u
S : Type v
T : Type w
inst✝² : NonAssocSemiring R
M : Submonoid R
inst✝¹ : NonAssocSemiring S
inst✝ : NonAssocSemiring T
g : S →+* T
f✝ f : R →+* S
x✝ : S
⊢ x✝ ∈ f.rangeS ↔ x✝ ∈ Subsemiring.map f ⊤

tactic: simp
state_before: case h
R : Type u
S : Type v
T : Type w
inst✝² : NonAssocSemiring R
M : Submonoid R
inst✝¹ : NonAssocSemiring S
inst✝ : NonAssocSemiring T
g : S →+* T
f✝ f : R →+* S
x✝ : S
⊢ x✝ ∈ f.rangeS ↔ x✝ ∈ Subsemiring.map f ⊤
state_after: no goals
Theorem: MeasurableSpace.DynkinSystem.has_compl_iff
File: Mathlib/MeasureTheory/PiSystem.lean

tactic: simpa using d.has_compl h
state_before: α : Type u_1
d : DynkinSystem α
a : Set α
h : d.Has aᶜ
⊢ d.Has a
state_after: no goals
Theorem: MeasureTheory.Lp.edist_toLp_toLp
File: Mathlib/MeasureTheory/Function/LpSpace.lean

tactic: rw [edist_def]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : Memℒp f p μ
hg : Memℒp g p μ
⊢ edist (Memℒp.toLp f hf) (Memℒp.toLp g hg) = snorm (f - g) p μ
state_after: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : Memℒp f p μ
hg : Memℒp g p μ
⊢ snorm (↑↑(Memℒp.toLp f hf) - ↑↑(Memℒp.toLp g hg)) p μ = snorm (f - g) p μ

tactic: exact snorm_congr_ae (hf.coeFn_toLp.sub hg.coeFn_toLp)
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : Memℒp f p μ
hg : Memℒp g p μ
⊢ snorm (↑↑(Memℒp.toLp f hf) - ↑↑(Memℒp.toLp g hg)) p μ = snorm (f - g) p μ
state_after: no goals
Theorem: Real.mul_logb
File: Mathlib/Analysis/SpecialFunctions/Log/Base.lean

tactic: unfold logb
state_before: b✝ x y a b c : ℝ
h₁ : b ≠ 0
h₂ : b ≠ 1
h₃ : b ≠ -1
⊢ logb a b * logb b c = logb a c
state_after: b✝ x y a b c : ℝ
h₁ : b ≠ 0
h₂ : b ≠ 1
h₃ : b ≠ -1
⊢ log b / log a * (log c / log b) = log c / log a

tactic: rw [mul_comm, div_mul_div_cancel _ (log_ne_zero.mpr ⟨h₁, h₂, h₃⟩)]
state_before: b✝ x y a b c : ℝ
h₁ : b ≠ 0
h₂ : b ≠ 1
h₃ : b ≠ -1
⊢ log b / log a * (log c / log b) = log c / log a
state_after: no goals
Theorem: Finset.noncommProd_map
File: Mathlib/Data/Finset/NoncommProd.lean

tactic: simp [noncommProd, Multiset.noncommProd_map]
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f✝ : α → β → β
op : α → α → α
inst✝³ : Monoid β
inst✝² : Monoid γ
inst✝¹ : FunLike F β γ
inst✝ : MonoidHomClass F β γ
s : Finset α
f : α → β
comm : (↑s).Pairwise fun a b => Commute (f a) (f b)
g : F
⊢ g (s.noncommProd f comm) = s.noncommProd (fun i => g (f i)) ⋯
state_after: no goals
Theorem: CategoryTheory.Limits.Concrete.widePullback_ext'
File: Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean

tactic: apply Concrete.widePullback_ext _ _ _ _ h
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : ConcreteCategory C
B : C
ι : Type w
inst✝² : Nonempty ι
X : ι → C
f : (j : ι) → X j ⟶ B
inst✝¹ : HasWidePullback B X f
inst✝ : PreservesLimit (wideCospan B X f) (forget C)
x y : (forget C).obj (widePullback B X f)
h : ∀ (j : ι), (π f j) x = (π f j) y
⊢ x = y
state_after: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : ConcreteCategory C
B : C
ι : Type w
inst✝² : Nonempty ι
X : ι → C
f : (j : ι) → X j ⟶ B
inst✝¹ : HasWidePullback B X f
inst✝ : PreservesLimit (wideCospan B X f) (forget C)
x y : (forget C).obj (widePullback B X f)
h : ∀ (j : ι), (π f j) x = (π f j) y
⊢ (base f) x = (base f) y

tactic: inhabit ι
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : ConcreteCategory C
B : C
ι : Type w
inst✝² : Nonempty ι
X : ι → C
f : (j : ι) → X j ⟶ B
inst✝¹ : HasWidePullback B X f
inst✝ : PreservesLimit (wideCospan B X f) (forget C)
x y : (forget C).obj (widePullback B X f)
h : ∀ (j : ι), (π f j) x = (π f j) y
⊢ (base f) x = (base f) y
state_after: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : ConcreteCategory C
B : C
ι : Type w
inst✝² : Nonempty ι
X : ι → C
f : (j : ι) → X j ⟶ B
inst✝¹ : HasWidePullback B X f
inst✝ : PreservesLimit (wideCospan B X f) (forget C)
x y : (forget C).obj (widePullback B X f)
h : ∀ (j : ι), (π f j) x = (π f j) y
inhabited_h : Inhabited ι
⊢ (base f) x = (base f) y

tactic: simp only [← π_arrow f default, comp_apply, h]
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : ConcreteCategory C
B : C
ι : Type w
inst✝² : Nonempty ι
X : ι → C
f : (j : ι) → X j ⟶ B
inst✝¹ : HasWidePullback B X f
inst✝ : PreservesLimit (wideCospan B X f) (forget C)
x y : (forget C).obj (widePullback B X f)
h : ∀ (j : ι), (π f j) x = (π f j) y
inhabited_h : Inhabited ι
⊢ (base f) x = (base f) y
state_after: no goals
Theorem: Complex.div_natCast_re
File: Mathlib/Data/Complex/Basic.lean

tactic: rw [div_natCast]
state_before: z : ℂ
n : ℕ
⊢ (z / ↑n).re = z.re / ↑n
state_after: no goals
Theorem: spectrum.resolventSet_of_subsingleton
File: Mathlib/Algebra/Algebra/Spectrum.lean

tactic: simp_rw [resolventSet, Subsingleton.elim (algebraMap R A _ - a) 1, isUnit_one, Set.setOf_true]
state_before: R : Type u
A : Type v
inst✝³ : CommSemiring R
inst✝² : Ring A
inst✝¹ : Algebra R A
inst✝ : Subsingleton A
a : A
⊢ resolventSet R a = univ
state_after: no goals
Theorem: Complex.normSq_eq_conj_mul_self
File: Mathlib/Data/Complex/Basic.lean

tactic: ext <;> simp [normSq, mul_comm, ofReal']
state_before: z : ℂ
⊢ ↑(normSq z) = (starRingEnd ℂ) z * z
state_after: no goals
Theorem: WeierstrassCurve.Affine.map_polynomial
File: Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean

tactic: simp only [polynomial]
state_before: R : Type u
inst✝¹ : CommRing R
W : Affine R
S : Type v
inst✝ : CommRing S
f : R →+* S
⊢ (map W f).toAffine.polynomial = Polynomial.map (mapRingHom f) W.polynomial
state_after: R : Type u
inst✝¹ : CommRing R
W : Affine R
S : Type v
inst✝ : CommRing S
f : R →+* S
⊢ Y ^ 2 + C (C (map W f).toAffine.a₁ * X + C (map W f).toAffine.a₃) * Y -
      C (X ^ 3 + C (map W f).toAffine.a₂ * X ^ 2 + C (map W f).toAffine.a₄ * X + C (map W f).toAffine.a₆) =
    Polynomial.map (mapRingHom f)
      (Y ^ 2 + C (C W.a₁ * X + C W.a₃) * Y - C (X ^ 3 + C W.a₂ * X ^ 2 + C W.a₄ * X + C W.a₆))

tactic: map_simp
state_before: R : Type u
inst✝¹ : CommRing R
W : Affine R
S : Type v
inst✝ : CommRing S
f : R →+* S
⊢ Y ^ 2 + C (C (map W f).toAffine.a₁ * X + C (map W f).toAffine.a₃) * Y -
      C (X ^ 3 + C (map W f).toAffine.a₂ * X ^ 2 + C (map W f).toAffine.a₄ * X + C (map W f).toAffine.a₆) =
    Polynomial.map (mapRingHom f)
      (Y ^ 2 + C (C W.a₁ * X + C W.a₃) * Y - C (X ^ 3 + C W.a₂ * X ^ 2 + C W.a₄ * X + C W.a₆))
state_after: no goals
Theorem: Set.ite_left
File: Mathlib/Data/Set/Basic.lean

tactic: simp [Set.ite]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁ s₂ t✝ t₁ t₂ u s t : Set α
⊢ s.ite s t = s ∪ t
state_after: no goals
Theorem: Multiset.length_toList
File: Mathlib/Data/Multiset/Basic.lean

tactic: rw [← coe_card, coe_toList]
state_before: α : Type u_1
β : Type v
γ : Type u_2
s : Multiset α
⊢ s.toList.length = card s
state_after: no goals
Theorem: jacobiSym.pow_right
File: Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean

tactic: induction' e with e ih
state_before: a : ℤ
b e : ℕ
⊢ J(a | b ^ e) = J(a | b) ^ e
state_after: case zero
a : ℤ
b : ℕ
⊢ J(a | b ^ 0) = J(a | b) ^ 0

case succ
a : ℤ
b e : ℕ
ih : J(a | b ^ e) = J(a | b) ^ e
⊢ J(a | b ^ (e + 1)) = J(a | b) ^ (e + 1)

tactic: rw [Nat.pow_zero, _root_.pow_zero, one_right]
state_before: case zero
a : ℤ
b : ℕ
⊢ J(a | b ^ 0) = J(a | b) ^ 0
state_after: no goals

tactic: cases' eq_zero_or_neZero b with hb
state_before: case succ
a : ℤ
b e : ℕ
ih : J(a | b ^ e) = J(a | b) ^ e
⊢ J(a | b ^ (e + 1)) = J(a | b) ^ (e + 1)
state_after: case succ.inl
a : ℤ
b e : ℕ
ih : J(a | b ^ e) = J(a | b) ^ e
hb : b = 0
⊢ J(a | b ^ (e + 1)) = J(a | b) ^ (e + 1)

case succ.inr
a : ℤ
b e : ℕ
ih : J(a | b ^ e) = J(a | b) ^ e
h✝ : NeZero b
⊢ J(a | b ^ (e + 1)) = J(a | b) ^ (e + 1)

tactic: rw [hb, zero_pow e.succ_ne_zero, zero_right, one_pow]
state_before: case succ.inl
a : ℤ
b e : ℕ
ih : J(a | b ^ e) = J(a | b) ^ e
hb : b = 0
⊢ J(a | b ^ (e + 1)) = J(a | b) ^ (e + 1)
state_after: no goals

tactic: rw [_root_.pow_succ, _root_.pow_succ, mul_right, ih]
state_before: case succ.inr
a : ℤ
b e : ℕ
ih : J(a | b ^ e) = J(a | b) ^ e
h✝ : NeZero b
⊢ J(a | b ^ (e + 1)) = J(a | b) ^ (e + 1)
state_after: no goals
Theorem: MeasureTheory.AEStronglyMeasurable'.const_inner
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean

tactic: rcases hfm with ⟨f', hf'_meas, hf_ae⟩
state_before: α : Type u_1
β✝ : Type u_2
𝕜✝ : Type u_3
m m0 : MeasurableSpace α
μ : Measure α
inst✝³ : TopologicalSpace β✝
f✝ g : α → β✝
𝕜 : Type u_4
β : Type u_5
inst✝² : RCLike 𝕜
inst✝¹ : NormedAddCommGroup β
inst✝ : InnerProductSpace 𝕜 β
f : α → β
hfm : AEStronglyMeasurable' m f μ
c : β
⊢ AEStronglyMeasurable' m (fun x => ⟪c, f x⟫_𝕜) μ
state_after: case intro.intro
α : Type u_1
β✝ : Type u_2
𝕜✝ : Type u_3
m m0 : MeasurableSpace α
μ : Measure α
inst✝³ : TopologicalSpace β✝
f✝ g : α → β✝
𝕜 : Type u_4
β : Type u_5
inst✝² : RCLike 𝕜
inst✝¹ : NormedAddCommGroup β
inst✝ : InnerProductSpace 𝕜 β
f : α → β
c : β
f' : α → β
hf'_meas : StronglyMeasurable f'
hf_ae : f =ᶠ[ae μ] f'
⊢ AEStronglyMeasurable' m (fun x => ⟪c, f x⟫_𝕜) μ

tactic: refine
  ⟨fun x => (inner c (f' x) : 𝕜), (@stronglyMeasurable_const _ _ m _ c).inner hf'_meas,
    hf_ae.mono fun x hx => ?_⟩
state_before: case intro.intro
α : Type u_1
β✝ : Type u_2
𝕜✝ : Type u_3
m m0 : MeasurableSpace α
μ : Measure α
inst✝³ : TopologicalSpace β✝
f✝ g : α → β✝
𝕜 : Type u_4
β : Type u_5
inst✝² : RCLike 𝕜
inst✝¹ : NormedAddCommGroup β
inst✝ : InnerProductSpace 𝕜 β
f : α → β
c : β
f' : α → β
hf'_meas : StronglyMeasurable f'
hf_ae : f =ᶠ[ae μ] f'
⊢ AEStronglyMeasurable' m (fun x => ⟪c, f x⟫_𝕜) μ
state_after: case intro.intro
α : Type u_1
β✝ : Type u_2
𝕜✝ : Type u_3
m m0 : MeasurableSpace α
μ : Measure α
inst✝³ : TopologicalSpace β✝
f✝ g : α → β✝
𝕜 : Type u_4
β : Type u_5
inst✝² : RCLike 𝕜
inst✝¹ : NormedAddCommGroup β
inst✝ : InnerProductSpace 𝕜 β
f : α → β
c : β
f' : α → β
hf'_meas : StronglyMeasurable f'
hf_ae : f =ᶠ[ae μ] f'
x : α
hx : f x = f' x
⊢ (fun x => ⟪c, f x⟫_𝕜) x = (fun x => ⟪c, f' x⟫_𝕜) x

tactic: dsimp only
state_before: case intro.intro
α : Type u_1
β✝ : Type u_2
𝕜✝ : Type u_3
m m0 : MeasurableSpace α
μ : Measure α
inst✝³ : TopologicalSpace β✝
f✝ g : α → β✝
𝕜 : Type u_4
β : Type u_5
inst✝² : RCLike 𝕜
inst✝¹ : NormedAddCommGroup β
inst✝ : InnerProductSpace 𝕜 β
f : α → β
c : β
f' : α → β
hf'_meas : StronglyMeasurable f'
hf_ae : f =ᶠ[ae μ] f'
x : α
hx : f x = f' x
⊢ (fun x => ⟪c, f x⟫_𝕜) x = (fun x => ⟪c, f' x⟫_𝕜) x
state_after: case intro.intro
α : Type u_1
β✝ : Type u_2
𝕜✝ : Type u_3
m m0 : MeasurableSpace α
μ : Measure α
inst✝³ : TopologicalSpace β✝
f✝ g : α → β✝
𝕜 : Type u_4
β : Type u_5
inst✝² : RCLike 𝕜
inst✝¹ : NormedAddCommGroup β
inst✝ : InnerProductSpace 𝕜 β
f : α → β
c : β
f' : α → β
hf'_meas : StronglyMeasurable f'
hf_ae : f =ᶠ[ae μ] f'
x : α
hx : f x = f' x
⊢ ⟪c, f x⟫_𝕜 = ⟪c, f' x⟫_𝕜

tactic: rw [hx]
state_before: case intro.intro
α : Type u_1
β✝ : Type u_2
𝕜✝ : Type u_3
m m0 : MeasurableSpace α
μ : Measure α
inst✝³ : TopologicalSpace β✝
f✝ g : α → β✝
𝕜 : Type u_4
β : Type u_5
inst✝² : RCLike 𝕜
inst✝¹ : NormedAddCommGroup β
inst✝ : InnerProductSpace 𝕜 β
f : α → β
c : β
f' : α → β
hf'_meas : StronglyMeasurable f'
hf_ae : f =ᶠ[ae μ] f'
x : α
hx : f x = f' x
⊢ ⟪c, f x⟫_𝕜 = ⟪c, f' x⟫_𝕜
state_after: no goals
Theorem: HasStrictFDerivAt.implicitToPartialHomeomorphOfComplemented_self
File: Mathlib/Analysis/Calculus/Implicit.lean

tactic: simp [hf.implicitToPartialHomeomorphOfComplemented_apply]
state_before: 𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : CompleteSpace E
F : Type u_3
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
inst✝ : CompleteSpace F
f : E → F
f' : E →L[𝕜] F
a : E
hf : HasStrictFDerivAt f f' a
hf' : range f' = ⊤
hker : (LinearMap.ker f').ClosedComplemented
⊢ ↑(implicitToPartialHomeomorphOfComplemented f f' hf hf' hker) a = (f a, 0)
state_after: no goals
Theorem: ZMod.map_smul
File: Mathlib/Data/ZMod/Module.lean

tactic: rw [← ZMod.intCast_zmod_cast c]
state_before: n : ℕ
M : Type u_1
M₁ : Type u_2
F : Type u_3
S : Type u_4
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₁
inst✝⁵ : FunLike F M M₁
inst✝⁴ : AddMonoidHomClass F M M₁
inst✝³ : Module (ZMod n) M
inst✝² : Module (ZMod n) M₁
inst✝¹ : SetLike S M
inst✝ : AddSubgroupClass S M
x✝ : M
K : S
f : F
c : ZMod n
x : M
⊢ f (c • x) = c • f x
state_after: n : ℕ
M : Type u_1
M₁ : Type u_2
F : Type u_3
S : Type u_4
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₁
inst✝⁵ : FunLike F M M₁
inst✝⁴ : AddMonoidHomClass F M M₁
inst✝³ : Module (ZMod n) M
inst✝² : Module (ZMod n) M₁
inst✝¹ : SetLike S M
inst✝ : AddSubgroupClass S M
x✝ : M
K : S
f : F
c : ZMod n
x : M
⊢ f (↑c.cast • x) = ↑c.cast • f x

tactic: exact map_intCast_smul f _ _ (cast c) x
state_before: n : ℕ
M : Type u_1
M₁ : Type u_2
F : Type u_3
S : Type u_4
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₁
inst✝⁵ : FunLike F M M₁
inst✝⁴ : AddMonoidHomClass F M M₁
inst✝³ : Module (ZMod n) M
inst✝² : Module (ZMod n) M₁
inst✝¹ : SetLike S M
inst✝ : AddSubgroupClass S M
x✝ : M
K : S
f : F
c : ZMod n
x : M
⊢ f (↑c.cast • x) = ↑c.cast • f x
state_after: no goals
Theorem: CovBy.Ioi_eq
File: Mathlib/Order/Cover.lean

tactic: rw [← Ioo_union_Ici_eq_Ioi h.lt, h.Ioo_eq, empty_union]
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b c : α
h : a ⋖ b
⊢ Ioi a = Ici b
state_after: no goals
Theorem: Polynomial.natDegree_pos_of_nextCoeff_ne_zero
File: Mathlib/Algebra/Polynomial/Degree/Lemmas.lean

tactic: rw [nextCoeff] at h
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
h : p.nextCoeff ≠ 0
⊢ 0 < p.natDegree
state_after: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
h : (if p.natDegree = 0 then 0 else p.coeff (p.natDegree - 1)) ≠ 0
⊢ 0 < p.natDegree

tactic: by_cases hpz : p.natDegree = 0
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
h : (if p.natDegree = 0 then 0 else p.coeff (p.natDegree - 1)) ≠ 0
⊢ 0 < p.natDegree
state_after: case pos
R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
h : (if p.natDegree = 0 then 0 else p.coeff (p.natDegree - 1)) ≠ 0
hpz : p.natDegree = 0
⊢ 0 < p.natDegree

case neg
R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
h : (if p.natDegree = 0 then 0 else p.coeff (p.natDegree - 1)) ≠ 0
hpz : ¬p.natDegree = 0
⊢ 0 < p.natDegree

tactic: simp_all only [ne_eq, zero_le, ite_true, not_true_eq_false]
state_before: case pos
R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
h : (if p.natDegree = 0 then 0 else p.coeff (p.natDegree - 1)) ≠ 0
hpz : p.natDegree = 0
⊢ 0 < p.natDegree
state_after: no goals

tactic: apply Nat.zero_lt_of_ne_zero hpz
state_before: case neg
R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
h : (if p.natDegree = 0 then 0 else p.coeff (p.natDegree - 1)) ≠ 0
hpz : ¬p.natDegree = 0
⊢ 0 < p.natDegree
state_after: no goals
Theorem: LinearIndependent.localization
File: Mathlib/RingTheory/Localization/Module.lean

tactic: have := isLocalizedModule_id S M Rₛ
state_before: R : Type u_1
Rₛ : Type u_2
inst✝¹¹ : CommSemiring R
S : Submonoid R
inst✝¹⁰ : CommSemiring Rₛ
inst✝⁹ : Algebra R Rₛ
hT : IsLocalization S Rₛ
M : Type u_3
M' : Type u_4
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
inst✝⁶ : Module Rₛ M
inst✝⁵ : IsScalarTower R Rₛ M
inst✝⁴ : AddCommMonoid M'
inst✝³ : Module R M'
inst✝² : Module Rₛ M'
inst✝¹ : IsScalarTower R Rₛ M'
f : M →ₗ[R] M'
inst✝ : IsLocalizedModule S f
ι : Type u_5
b : ι → M
hli : LinearIndependent R b
⊢ LinearIndependent Rₛ b
state_after: R : Type u_1
Rₛ : Type u_2
inst✝¹¹ : CommSemiring R
S : Submonoid R
inst✝¹⁰ : CommSemiring Rₛ
inst✝⁹ : Algebra R Rₛ
hT : IsLocalization S Rₛ
M : Type u_3
M' : Type u_4
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
inst✝⁶ : Module Rₛ M
inst✝⁵ : IsScalarTower R Rₛ M
inst✝⁴ : AddCommMonoid M'
inst✝³ : Module R M'
inst✝² : Module Rₛ M'
inst✝¹ : IsScalarTower R Rₛ M'
f : M →ₗ[R] M'
inst✝ : IsLocalizedModule S f
ι : Type u_5
b : ι → M
hli : LinearIndependent R b
this : IsLocalizedModule S LinearMap.id
⊢ LinearIndependent Rₛ b

tactic: exact hli.of_isLocalizedModule Rₛ S .id
state_before: R : Type u_1
Rₛ : Type u_2
inst✝¹¹ : CommSemiring R
S : Submonoid R
inst✝¹⁰ : CommSemiring Rₛ
inst✝⁹ : Algebra R Rₛ
hT : IsLocalization S Rₛ
M : Type u_3
M' : Type u_4
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
inst✝⁶ : Module Rₛ M
inst✝⁵ : IsScalarTower R Rₛ M
inst✝⁴ : AddCommMonoid M'
inst✝³ : Module R M'
inst✝² : Module Rₛ M'
inst✝¹ : IsScalarTower R Rₛ M'
f : M →ₗ[R] M'
inst✝ : IsLocalizedModule S f
ι : Type u_5
b : ι → M
hli : LinearIndependent R b
this : IsLocalizedModule S LinearMap.id
⊢ LinearIndependent Rₛ b
state_after: no goals
Theorem: Real.arcsin_neg_one
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

tactic: rw [sin_neg, sin_pi_div_two]
state_before: x y : ℝ
⊢ sin (-(π / 2)) = -1
state_after: no goals
Theorem: Multiset.prod_join
File: Mathlib/Data/Multiset/Bind.lean

tactic: induction S using Multiset.induction with
| empty => simp
| cons _ _ ih => simp [ih]
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
inst✝ : CommMonoid α
S : Multiset (Multiset α)
⊢ S.join.prod = (map prod S).prod
state_after: no goals

tactic: simp
state_before: case empty
α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
inst✝ : CommMonoid α
⊢ (join 0).prod = (map prod 0).prod
state_after: no goals

tactic: simp [ih]
state_before: case cons
α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
inst✝ : CommMonoid α
a✝ : Multiset α
s✝ : Multiset (Multiset α)
ih : s✝.join.prod = (map prod s✝).prod
⊢ (a✝ ::ₘ s✝).join.prod = (map prod (a✝ ::ₘ s✝)).prod
state_after: no goals