1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Filter.CompleteLatticeHom.apply_limsup_iterate
File: Mathlib/Order/LiminfLimsup.lean

tactic: rw [limsup_eq_iInf_iSup_of_nat', map_iInf]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteLattice α
f : CompleteLatticeHom α α
a : α
⊢ f (limsup (fun n => (⇑f)^[n] a) atTop) = limsup (fun n => (⇑f)^[n] a) atTop
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteLattice α
f : CompleteLatticeHom α α
a : α
⊢ ⨅ i, f (⨆ i_1, (⇑f)^[i_1 + i] a) = ⨅ n, ⨆ i, (⇑f)^[i + n] a

tactic: simp_rw [_root_.map_iSup, ← Function.comp_apply (f := f), ← Function.iterate_succ' f,
  ← Nat.add_succ]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteLattice α
f : CompleteLatticeHom α α
a : α
⊢ ⨅ i, f (⨆ i_1, (⇑f)^[i_1 + i] a) = ⨅ n, ⨆ i, (⇑f)^[i + n] a
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteLattice α
f : CompleteLatticeHom α α
a : α
⊢ ⨅ i, ⨆ i_1, (⇑f)^[i_1 + i.succ] a = ⨅ n, ⨆ i, (⇑f)^[i + n] a

tactic: simp only [not_lt, Nat.le_zero, iInf_iInf_eq_left, add_zero, iInf_nat_gt_zero_eq, left_eq_inf]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteLattice α
f : CompleteLatticeHom α α
a : α
⊢ ⨅ i, ⨆ i_1, (⇑f)^[i_1 + i.succ] a =
    (⨅ i, ⨅ (_ : 0 < i), ⨆ i_1, (⇑f)^[i_1 + i] a) ⊓ ⨅ i, ⨅ (_ : ¬0 < i), ⨆ i_1, (⇑f)^[i_1 + i] a
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteLattice α
f : CompleteLatticeHom α α
a : α
⊢ ⨅ i, ⨆ i_1, (⇑f)^[i_1 + i.succ] a ≤ ⨆ i, (⇑f)^[i] a

tactic: refine (iInf_le (fun i => ⨆ j, f^[j + (i + 1)] a) 0).trans ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteLattice α
f : CompleteLatticeHom α α
a : α
⊢ ⨅ i, ⨆ i_1, (⇑f)^[i_1 + i.succ] a ≤ ⨆ i, (⇑f)^[i] a
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteLattice α
f : CompleteLatticeHom α α
a : α
⊢ ⨆ j, (⇑f)^[j + (0 + 1)] a ≤ ⨆ i, (⇑f)^[i] a

tactic: simp only [zero_add, Function.comp_apply, iSup_le_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteLattice α
f : CompleteLatticeHom α α
a : α
⊢ ⨆ j, (⇑f)^[j + (0 + 1)] a ≤ ⨆ i, (⇑f)^[i] a
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteLattice α
f : CompleteLatticeHom α α
a : α
⊢ ∀ (i : ℕ), (⇑f)^[i + 1] a ≤ ⨆ i, (⇑f)^[i] a

tactic: exact fun i => le_iSup (fun i => f^[i] a) (i + 1)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteLattice α
f : CompleteLatticeHom α α
a : α
⊢ ∀ (i : ℕ), (⇑f)^[i + 1] a ≤ ⨆ i, (⇑f)^[i] a
state_after: no goals
Theorem: derivWithin_const_add
File: Mathlib/Analysis/Calculus/Deriv/Add.lean

tactic: simp only [derivWithin, fderivWithin_const_add hxs]
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L : Filter 𝕜
hxs : UniqueDiffWithinAt 𝕜 s x
c : F
⊢ derivWithin (fun y => c + f y) s x = derivWithin f s x
state_after: no goals
Theorem: FDerivMeasurableAux.isOpen_B
File: Mathlib/Analysis/Calculus/FDeriv/Measurable.lean

tactic: simp [B, isOpen_biUnion, IsOpen.inter, isOpen_A]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
K✝ K : Set (E →L[𝕜] F)
r s ε : ℝ
⊢ IsOpen (B f K r s ε)
state_after: no goals
Theorem: Metric.eventually_prod_nhds_iff
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: rw [eventually_swap_iff, Metric.eventually_nhds_prod_iff]
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
f : Filter ι
x₀ : α
p : ι × α → Prop
⊢ (∀ᶠ (x : ι × α) in f ×ˢ 𝓝 x₀, p x) ↔
    ∃ pa, (∀ᶠ (i : ι) in f, pa i) ∧ ∃ ε > 0, ∀ {i : ι}, pa i → ∀ {x : α}, dist x x₀ < ε → p (i, x)
state_after: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
f : Filter ι
x₀ : α
p : ι × α → Prop
⊢ (∃ ε > 0, ∃ pa, (∀ᶠ (i : ι) in f, pa i) ∧ ∀ {x : α}, dist x x₀ < ε → ∀ {i : ι}, pa i → p (x, i).swap) ↔
    ∃ pa, (∀ᶠ (i : ι) in f, pa i) ∧ ∃ ε > 0, ∀ {i : ι}, pa i → ∀ {x : α}, dist x x₀ < ε → p (i, x)

tactic: rintro ⟨a1, a2, a3, a4, a5⟩
state_before: case mpr
α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
f : Filter ι
x₀ : α
p : ι × α → Prop
⊢ (∃ pa, (∀ᶠ (i : ι) in f, pa i) ∧ ∃ ε > 0, ∀ {i : ι}, pa i → ∀ {x : α}, dist x x₀ < ε → p (i, x)) →
    ∃ ε > 0, ∃ pa, (∀ᶠ (i : ι) in f, pa i) ∧ ∀ {x : α}, dist x x₀ < ε → ∀ {i : ι}, pa i → p (x, i).swap
state_after: case mpr.intro.intro.intro.intro
α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
f : Filter ι
x₀ : α
p : ι × α → Prop
a1 : ι → Prop
a2 : ∀ᶠ (i : ι) in f, a1 i
a3 : ℝ
a4 : a3 > 0
a5 : ∀ {i : ι}, a1 i → ∀ {x : α}, dist x x₀ < a3 → p (i, x)
⊢ ∃ ε > 0, ∃ pa, (∀ᶠ (i : ι) in f, pa i) ∧ ∀ {x : α}, dist x x₀ < ε → ∀ {i : ι}, pa i → p (x, i).swap

tactic: exact ⟨a3, a4, a1, a2, fun b1 b2 b3 => a5 b3 b1⟩
state_before: case mpr.intro.intro.intro.intro
α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
f : Filter ι
x₀ : α
p : ι × α → Prop
a1 : ι → Prop
a2 : ∀ᶠ (i : ι) in f, a1 i
a3 : ℝ
a4 : a3 > 0
a5 : ∀ {i : ι}, a1 i → ∀ {x : α}, dist x x₀ < a3 → p (i, x)
⊢ ∃ ε > 0, ∃ pa, (∀ᶠ (i : ι) in f, pa i) ∧ ∀ {x : α}, dist x x₀ < ε → ∀ {i : ι}, pa i → p (x, i).swap
state_after: no goals
Theorem: ZNum.zneg_pred
File: Mathlib/Data/Num/Lemmas.lean

tactic: rw [← zneg_zneg (succ (-n)), zneg_succ, zneg_zneg]
state_before: α : Type u_1
n : ZNum
⊢ -n.pred = (-n).succ
state_after: no goals
Theorem: Int.Ioc_filter_modEq_card
File: Mathlib/Data/Int/CardIntervalMod.lean

tactic: simp [Ioc_filter_modEq_eq, Ioc_filter_dvd_eq, toNat_eq_max, hr]
state_before: a b r : ℤ
hr : 0 < r
v : ℤ
⊢ ↑(filter (fun x => x ≡ v [ZMOD r]) (Ioc a b)).card = max (⌊(↑b - ↑v) / ↑r⌋ - ⌊(↑a - ↑v) / ↑r⌋) 0
state_after: no goals
Theorem: Turing.PartrecToTM2.codeSupp_comp
File: Mathlib/Computability/TMToPartrec.lean

tactic: simp only [codeSupp, codeSupp', trNormal, Finset.union_assoc, contSupp]
state_before: f g : Code
k : Cont'
⊢ codeSupp (f.comp g) k = trStmts₁ (trNormal (f.comp g) k) ∪ codeSupp g (Cont'.comp f k)
state_after: f g : Code
k : Cont'
⊢ trStmts₁ (trNormal g (Cont'.comp f k)) ∪
      (codeSupp' g (Cont'.comp f k) ∪ (trStmts₁ (trNormal f k) ∪ (codeSupp' f k ∪ contSupp k))) =
    trStmts₁ (trNormal g (Cont'.comp f k)) ∪ (codeSupp' g (Cont'.comp f k) ∪ (codeSupp' f k ∪ contSupp k))

tactic: rw [← Finset.union_assoc _ _ (contSupp k),
  Finset.union_eq_right.2 (codeSupp'_self _ _)]
state_before: f g : Code
k : Cont'
⊢ trStmts₁ (trNormal g (Cont'.comp f k)) ∪
      (codeSupp' g (Cont'.comp f k) ∪ (trStmts₁ (trNormal f k) ∪ (codeSupp' f k ∪ contSupp k))) =
    trStmts₁ (trNormal g (Cont'.comp f k)) ∪ (codeSupp' g (Cont'.comp f k) ∪ (codeSupp' f k ∪ contSupp k))
state_after: no goals
Theorem: Orientation.areaForm_map_complex
File: Mathlib/Analysis/InnerProductSpace/TwoDim.lean

tactic: rw [← Complex.areaForm, ← hf, areaForm_map (hF := _)]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
f : E ≃ₗᵢ[ℝ] ℂ
hf : (map (Fin 2) f.toLinearEquiv) o = Complex.orientation
x y : E
⊢ (o.areaForm x) y = ((starRingEnd ℂ) (f x) * f y).im
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
f : E ≃ₗᵢ[ℝ] ℂ
hf : (map (Fin 2) f.toLinearEquiv) o = Complex.orientation
x y : E
⊢ (o.areaForm x) y = (o.areaForm (f.symm (f x))) (f.symm (f y))

tactic: iterate 2 rw [LinearIsometryEquiv.symm_apply_apply]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
f : E ≃ₗᵢ[ℝ] ℂ
hf : (map (Fin 2) f.toLinearEquiv) o = Complex.orientation
x y : E
⊢ (o.areaForm x) y = (o.areaForm (f.symm (f x))) (f.symm (f y))
state_after: no goals

tactic: rw [LinearIsometryEquiv.symm_apply_apply]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
f : E ≃ₗᵢ[ℝ] ℂ
hf : (map (Fin 2) f.toLinearEquiv) o = Complex.orientation
x y : E
⊢ (o.areaForm x) y = (o.areaForm x) (f.symm (f y))
state_after: no goals
Theorem: List.exists_duplicate_iff_not_nodup
File: Mathlib/Data/List/Duplicate.lean

tactic: simp [nodup_iff_forall_not_duplicate]
state_before: α : Type u_1
l : List α
x : α
⊢ (∃ x, x ∈+ l) ↔ ¬l.Nodup
state_after: no goals
Theorem: NNReal.continuousAt_rpow_const
File: Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean

tactic: simp only [rpow_zero, continuousAt_const]
state_before: x : ℝ≥0
y : ℝ
h✝¹ : x ≠ 0 ∨ 0 ≤ y
h✝ : 0 ≤ y
h : 0 = y
⊢ ContinuousAt (fun z => z ^ 0) x
state_after: no goals
Theorem: mulPosMono_iff_covariant_pos
File: Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean

tactic: obtain ha | ha := a.prop.eq_or_lt
state_before: α : Type u_1
a✝ b✝ c✝ d : α
inst✝¹ : MulZeroClass α
inst✝ : PartialOrder α
h✝ : CovariantClass { x // 0 < x } α (fun x y => y * ↑x) fun x x_1 => x ≤ x_1
a : { x // 0 ≤ x }
b c : α
h : b ≤ c
⊢ b * ↑a ≤ c * ↑a
state_after: case inl
α : Type u_1
a✝ b✝ c✝ d : α
inst✝¹ : MulZeroClass α
inst✝ : PartialOrder α
h✝ : CovariantClass { x // 0 < x } α (fun x y => y * ↑x) fun x x_1 => x ≤ x_1
a : { x // 0 ≤ x }
b c : α
h : b ≤ c
ha : 0 = ↑a
⊢ b * ↑a ≤ c * ↑a

case inr
α : Type u_1
a✝ b✝ c✝ d : α
inst✝¹ : MulZeroClass α
inst✝ : PartialOrder α
h✝ : CovariantClass { x // 0 < x } α (fun x y => y * ↑x) fun x x_1 => x ≤ x_1
a : { x // 0 ≤ x }
b c : α
h : b ≤ c
ha : 0 < ↑a
⊢ b * ↑a ≤ c * ↑a

tactic: simp [← ha]
state_before: case inl
α : Type u_1
a✝ b✝ c✝ d : α
inst✝¹ : MulZeroClass α
inst✝ : PartialOrder α
h✝ : CovariantClass { x // 0 < x } α (fun x y => y * ↑x) fun x x_1 => x ≤ x_1
a : { x // 0 ≤ x }
b c : α
h : b ≤ c
ha : 0 = ↑a
⊢ b * ↑a ≤ c * ↑a
state_after: no goals
Theorem: Filter.map₂_neBot_iff
File: Mathlib/Order/Filter/NAry.lean

tactic: simp [neBot_iff, not_or]
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
m : α → β → γ
f f₁ f₂ : Filter α
g g₁ g₂ : Filter β
h h₁ h₂ : Filter γ
s s₁ s₂ : Set α
t t₁ t₂ : Set β
u : Set γ
v : Set δ
a : α
b : β
c : γ
⊢ (map₂ m f g).NeBot ↔ f.NeBot ∧ g.NeBot
state_after: no goals
Theorem: inf_right_idem
File: Mathlib/Order/Lattice.lean

tactic: simp
state_before: α : Type u
β : Type v
inst✝ : SemilatticeInf α
a✝ b✝ c d a b : α
⊢ a ⊓ b ⊓ b = a ⊓ b
state_after: no goals
Theorem: ProbabilityTheory.integral_truncation_le_integral_of_nonneg
File: Mathlib/Probability/StrongLaw.lean

tactic: apply integral_mono_of_nonneg
  (eventually_of_forall fun x => ?_) hf (eventually_of_forall fun x => ?_)
state_before: α : Type u_1
m : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Integrable f μ
h'f : 0 ≤ f
A : ℝ
⊢ ∫ (x : α), truncation f A x ∂μ ≤ ∫ (x : α), f x ∂μ
state_after: α : Type u_1
m : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Integrable f μ
h'f : 0 ≤ f
A : ℝ
x : α
⊢ 0 x ≤ truncation f A x

α : Type u_1
m : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Integrable f μ
h'f : 0 ≤ f
A : ℝ
x : α
⊢ truncation f A x ≤ f x

tactic: exact truncation_nonneg _ (h'f x)
state_before: α : Type u_1
m : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Integrable f μ
h'f : 0 ≤ f
A : ℝ
x : α
⊢ 0 x ≤ truncation f A x
state_after: no goals

tactic: calc
  truncation f A x ≤ |truncation f A x| := le_abs_self _
  _ ≤ |f x| := abs_truncation_le_abs_self _ _ _
  _ = f x := abs_of_nonneg (h'f x)
state_before: α : Type u_1
m : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Integrable f μ
h'f : 0 ≤ f
A : ℝ
x : α
⊢ truncation f A x ≤ f x
state_after: no goals
Theorem: EMetric.isOpen_iff
File: Mathlib/Topology/EMetricSpace/Basic.lean

tactic: simp [isOpen_iff_nhds, mem_nhds_iff]
state_before: α : Type u
β : Type v
X : Type u_1
inst✝ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s t : Set α
⊢ IsOpen s ↔ ∀ x ∈ s, ∃ ε > 0, ball x ε ⊆ s
state_after: no goals
Theorem: Ordinal.bsup_eq_bsup
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rw [bsup_eq_sup', bsup_eq_sup']
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r r' : ι → ι → Prop
inst✝¹ : IsWellOrder ι r
inst✝ : IsWellOrder ι r'
f : ι → Ordinal.{max u v}
⊢ (type r).bsup (bfamilyOfFamily' r f) = (type r').bsup (bfamilyOfFamily' r' f)
state_after: no goals
Theorem: Cardinal.mk_eq_nat_iff_finset
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rw [← mk_univ, mk_set_eq_nat_iff_finset]
state_before: α β : Type u
c : Cardinal.{?u.212252}
n : ℕ
⊢ #α = ↑n ↔ ∃ t, ↑t = univ ∧ t.card = n
state_after: no goals
Theorem: Ordinal.nmul_lt_nmul_of_pos_left
File: Mathlib/SetTheory/Ordinal/NaturalOps.lean

tactic: simp
state_before: a b c d : Ordinal.{u}
h₁ : a < b
h₂ : 0 < c
⊢ c ⨳ a ♯ 0 ⨳ a ≤ 0 ⨳ b ♯ c ⨳ a
state_after: no goals
Theorem: StieltjesFunction.measure_add
File: Mathlib/MeasureTheory/Measure/Stieltjes.lean

tactic: refine Measure.ext_of_Ioc _ _ (fun a b h ↦ ?_)
state_before: f✝ f g : StieltjesFunction
⊢ (f + g).measure = f.measure + g.measure
state_after: f✝ f g : StieltjesFunction
a b : ℝ
h : a < b
⊢ (f + g).measure (Ioc a b) = (f.measure + g.measure) (Ioc a b)

tactic: simp only [measure_Ioc, add_apply, Measure.coe_add, Pi.add_apply]
state_before: f✝ f g : StieltjesFunction
a b : ℝ
h : a < b
⊢ (f + g).measure (Ioc a b) = (f.measure + g.measure) (Ioc a b)
state_after: f✝ f g : StieltjesFunction
a b : ℝ
h : a < b
⊢ ofReal (↑f b + ↑g b - (↑f a + ↑g a)) = ofReal (↑f b - ↑f a) + ofReal (↑g b - ↑g a)

tactic: rw [← ENNReal.ofReal_add (sub_nonneg_of_le (f.mono h.le)) (sub_nonneg_of_le (g.mono h.le))]
state_before: f✝ f g : StieltjesFunction
a b : ℝ
h : a < b
⊢ ofReal (↑f b + ↑g b - (↑f a + ↑g a)) = ofReal (↑f b - ↑f a) + ofReal (↑g b - ↑g a)
state_after: f✝ f g : StieltjesFunction
a b : ℝ
h : a < b
⊢ ofReal (↑f b + ↑g b - (↑f a + ↑g a)) = ofReal (↑f b - ↑f a + (↑g b - ↑g a))

tactic: ring_nf
state_before: f✝ f g : StieltjesFunction
a b : ℝ
h : a < b
⊢ ofReal (↑f b + ↑g b - (↑f a + ↑g a)) = ofReal (↑f b - ↑f a + (↑g b - ↑g a))
state_after: no goals
Theorem: AlgebraicGeometry.IsAffineOpen.fromSpec_preimage_basicOpen
File: Mathlib/AlgebraicGeometry/AffineScheme.lean

tactic: rw [fromSpec_preimage_basicOpen', ← basicOpen_eq_of_affine]
state_before: X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f : ↑Γ(X, U)
⊢ hU.fromSpec ⁻¹ᵁ X.basicOpen f = PrimeSpectrum.basicOpen f
state_after: no goals
Theorem: UniformCauchySeqOn.mul
File: Mathlib/Topology/Algebra/UniformGroup.lean

tactic: simpa using (uniformContinuous_mul.comp_uniformCauchySeqOn (hf.prod' hf')) u hu
state_before: α : Type u_1
β : Type u_2
inst✝² : UniformSpace α
inst✝¹ : Group α
inst✝ : UniformGroup α
ι : Type u_3
l : Filter ι
l' : Filter β
f f' : ι → β → α
g g' : β → α
s : Set β
hf : UniformCauchySeqOn f l s
hf' : UniformCauchySeqOn f' l s
u : Set (α × α)
hu : u ∈ 𝓤 α
⊢ ∀ᶠ (m : ι × ι) in l ×ˢ l, ∀ x ∈ s, ((f * f') m.1 x, (f * f') m.2 x) ∈ u
state_after: no goals
Theorem: CategoryTheory.ConcreteCategory.injective_eq_monomorphisms
File: Mathlib/CategoryTheory/ConcreteCategory/EpiMono.lean

tactic: rw [injective_eq_monomorphisms_iff]
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : ConcreteCategory C
inst✝ : (forget C).PreservesMonomorphisms
⊢ MorphismProperty.injective C = monomorphisms C
state_after: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : ConcreteCategory C
inst✝ : (forget C).PreservesMonomorphisms
⊢ (forget C).PreservesMonomorphisms

tactic: infer_instance
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : ConcreteCategory C
inst✝ : (forget C).PreservesMonomorphisms
⊢ (forget C).PreservesMonomorphisms
state_after: no goals
Theorem: isBounded_iff_forall_norm_le'
File: Mathlib/Analysis/Normed/Group/Bounded.lean

tactic: simpa only [Set.subset_def, mem_closedBall_one_iff] using isBounded_iff_subset_closedBall (1 : E)
state_before: α : Type u_1
ι : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
⊢ Bornology.IsBounded s ↔ ∃ C, ∀ x ∈ s, ‖x‖ ≤ C
state_after: no goals
Theorem: Polynomial.smul_eq_map
File: Mathlib/Algebra/Polynomial/GroupRingAction.lean

tactic: suffices DistribMulAction.toAddMonoidHom R[X] m =
    (mapRingHom (MulSemiringAction.toRingHom M R m)).toAddMonoidHom by
  ext1 r
  exact DFunLike.congr_fun this r
state_before: M : Type u_1
inst✝² : Monoid M
R : Type u_2
inst✝¹ : Semiring R
inst✝ : MulSemiringAction M R
m : M
⊢ HSMul.hSMul m = map (MulSemiringAction.toRingHom M R m)
state_after: M : Type u_1
inst✝² : Monoid M
R : Type u_2
inst✝¹ : Semiring R
inst✝ : MulSemiringAction M R
m : M
⊢ DistribMulAction.toAddMonoidHom R[X] m = (mapRingHom (MulSemiringAction.toRingHom M R m)).toAddMonoidHom

tactic: ext n r : 2
state_before: M : Type u_1
inst✝² : Monoid M
R : Type u_2
inst✝¹ : Semiring R
inst✝ : MulSemiringAction M R
m : M
⊢ DistribMulAction.toAddMonoidHom R[X] m = (mapRingHom (MulSemiringAction.toRingHom M R m)).toAddMonoidHom
state_after: case h.h
M : Type u_1
inst✝² : Monoid M
R : Type u_2
inst✝¹ : Semiring R
inst✝ : MulSemiringAction M R
m : M
n : ℕ
r : R
⊢ ((DistribMulAction.toAddMonoidHom R[X] m).comp (monomial n).toAddMonoidHom) r =
    ((mapRingHom (MulSemiringAction.toRingHom M R m)).toAddMonoidHom.comp (monomial n).toAddMonoidHom) r

tactic: change m • monomial n r = map (MulSemiringAction.toRingHom M R m) (monomial n r)
state_before: case h.h
M : Type u_1
inst✝² : Monoid M
R : Type u_2
inst✝¹ : Semiring R
inst✝ : MulSemiringAction M R
m : M
n : ℕ
r : R
⊢ ((DistribMulAction.toAddMonoidHom R[X] m).comp (monomial n).toAddMonoidHom) r =
    ((mapRingHom (MulSemiringAction.toRingHom M R m)).toAddMonoidHom.comp (monomial n).toAddMonoidHom) r
state_after: case h.h
M : Type u_1
inst✝² : Monoid M
R : Type u_2
inst✝¹ : Semiring R
inst✝ : MulSemiringAction M R
m : M
n : ℕ
r : R
⊢ m • (monomial n) r = map (MulSemiringAction.toRingHom M R m) ((monomial n) r)

tactic: rw [Polynomial.map_monomial, Polynomial.smul_monomial, MulSemiringAction.toRingHom_apply]
state_before: case h.h
M : Type u_1
inst✝² : Monoid M
R : Type u_2
inst✝¹ : Semiring R
inst✝ : MulSemiringAction M R
m : M
n : ℕ
r : R
⊢ m • (monomial n) r = map (MulSemiringAction.toRingHom M R m) ((monomial n) r)
state_after: no goals

tactic: ext1 r
state_before: M : Type u_1
inst✝² : Monoid M
R : Type u_2
inst✝¹ : Semiring R
inst✝ : MulSemiringAction M R
m : M
this : DistribMulAction.toAddMonoidHom R[X] m = (mapRingHom (MulSemiringAction.toRingHom M R m)).toAddMonoidHom
⊢ HSMul.hSMul m = map (MulSemiringAction.toRingHom M R m)
state_after: case h
M : Type u_1
inst✝² : Monoid M
R : Type u_2
inst✝¹ : Semiring R
inst✝ : MulSemiringAction M R
m : M
this : DistribMulAction.toAddMonoidHom R[X] m = (mapRingHom (MulSemiringAction.toRingHom M R m)).toAddMonoidHom
r : R[X]
⊢ m • r = map (MulSemiringAction.toRingHom M R m) r

tactic: exact DFunLike.congr_fun this r
state_before: case h
M : Type u_1
inst✝² : Monoid M
R : Type u_2
inst✝¹ : Semiring R
inst✝ : MulSemiringAction M R
m : M
this : DistribMulAction.toAddMonoidHom R[X] m = (mapRingHom (MulSemiringAction.toRingHom M R m)).toAddMonoidHom
r : R[X]
⊢ m • r = map (MulSemiringAction.toRingHom M R m) r
state_after: no goals
Theorem: CategoryTheory.coyonedaEquiv_symm_map
File: Mathlib/CategoryTheory/Yoneda.lean

tactic: obtain ⟨u, rfl⟩ := coyonedaEquiv.surjective t
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
X Y : C
f : X ⟶ Y
F : C ⥤ Type v₁
t : F.obj X
⊢ coyonedaEquiv.symm (F.map f t) = coyoneda.map f.op ≫ coyonedaEquiv.symm t
state_after: case intro
C : Type u₁
inst✝ : Category.{v₁, u₁} C
X Y : C
f : X ⟶ Y
F : C ⥤ Type v₁
u : coyoneda.obj { unop := X } ⟶ F
⊢ coyonedaEquiv.symm (F.map f (coyonedaEquiv u)) = coyoneda.map f.op ≫ coyonedaEquiv.symm (coyonedaEquiv u)

tactic: simp [coyonedaEquiv_naturality u f]
state_before: case intro
C : Type u₁
inst✝ : Category.{v₁, u₁} C
X Y : C
f : X ⟶ Y
F : C ⥤ Type v₁
u : coyoneda.obj { unop := X } ⟶ F
⊢ coyonedaEquiv.symm (F.map f (coyonedaEquiv u)) = coyoneda.map f.op ≫ coyonedaEquiv.symm (coyonedaEquiv u)
state_after: no goals
Theorem: WeierstrassCurve.map_preΨ'
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean

tactic: simp only [preΨ', map_Ψ₂Sq, map_Ψ₃, map_preΨ₄, ← coe_mapRingHom, map_preNormEDS']
state_before: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
f : R →+* S
n : ℕ
⊢ (W.map f).preΨ' n = Polynomial.map f (W.preΨ' n)
state_after: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
f : R →+* S
n : ℕ
⊢ preNormEDS' ((mapRingHom f) W.Ψ₂Sq ^ 2) ((mapRingHom f) W.Ψ₃) ((mapRingHom f) W.preΨ₄) n =
    preNormEDS' ((mapRingHom f) (W.Ψ₂Sq ^ 2)) ((mapRingHom f) W.Ψ₃) ((mapRingHom f) W.preΨ₄) n

tactic: map_simp
state_before: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
f : R →+* S
n : ℕ
⊢ preNormEDS' ((mapRingHom f) W.Ψ₂Sq ^ 2) ((mapRingHom f) W.Ψ₃) ((mapRingHom f) W.preΨ₄) n =
    preNormEDS' ((mapRingHom f) (W.Ψ₂Sq ^ 2)) ((mapRingHom f) W.Ψ₃) ((mapRingHom f) W.preΨ₄) n
state_after: no goals
Theorem: Metric.dense_iff
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: simp only [mem_closure_iff, Set.Nonempty, exists_prop, mem_inter_iff, mem_ball', and_comm]
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x✝ y z : α
ε ε₁ ε₂ : ℝ
s✝ s : Set α
x : α
⊢ x ∈ closure s ↔ ∀ r > 0, (ball x r ∩ s).Nonempty
state_after: no goals
Theorem: SetTheory.PGame.birthday_nat_add
File: Mathlib/SetTheory/Game/Birthday.lean

tactic: simp
state_before: a b x : PGame
n : ℕ
⊢ (↑n + a).birthday = a.birthday + ↑n
state_after: no goals
Theorem: measurableSet_inr_image
File: Mathlib/MeasureTheory/MeasurableSpace/Basic.lean

tactic: simp [measurableSet_sum_iff, Sum.inr_injective.preimage_image]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s✝ t u : Set α
m : MeasurableSpace α
mβ : MeasurableSpace β
s : Set β
⊢ MeasurableSet (Sum.inr '' s) ↔ MeasurableSet s
state_after: no goals
Theorem: norm_sub_eq_sqrt_iff_real_inner_eq_zero
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: rw [← norm_sub_sq_eq_norm_sq_add_norm_sq_iff_real_inner_eq_zero, eq_comm,
  sqrt_eq_iff_mul_self_eq (add_nonneg (mul_self_nonneg _) (mul_self_nonneg _)) (norm_nonneg _)]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
x y : F
⊢ ‖x - y‖ = √(‖x‖ * ‖x‖ + ‖y‖ * ‖y‖) ↔ ⟪x, y⟫_ℝ = 0
state_after: no goals
Theorem: NumberField.InfinitePlace.isReal_or_isComplex
File: Mathlib/NumberTheory/NumberField/Embeddings.lean

tactic: rw [← not_isReal_iff_isComplex]
state_before: k : Type u_1
inst✝² : Field k
K : Type u_2
inst✝¹ : Field K
F : Type u_3
inst✝ : Field F
w : InfinitePlace K
⊢ w.IsReal ∨ w.IsComplex
state_after: k : Type u_1
inst✝² : Field k
K : Type u_2
inst✝¹ : Field K
F : Type u_3
inst✝ : Field F
w : InfinitePlace K
⊢ w.IsReal ∨ ¬w.IsReal

tactic: exact em _
state_before: k : Type u_1
inst✝² : Field k
K : Type u_2
inst✝¹ : Field K
F : Type u_3
inst✝ : Field F
w : InfinitePlace K
⊢ w.IsReal ∨ ¬w.IsReal
state_after: no goals