1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: HurwitzKernelBounds.isBigO_exp_neg_mul_of_le
File: Mathlib/NumberTheory/ModularForms/JacobiTheta/Bounds.lean

tactic: apply Eventually.isBigO
state_before: c d : ℝ
hcd : c ≤ d
⊢ (fun t => rexp (-d * t)) =O[atTop] fun t => rexp (-c * t)
state_after: case hfg
c d : ℝ
hcd : c ≤ d
⊢ ∀ᶠ (x : ℝ) in atTop, ‖rexp (-d * x)‖ ≤ rexp (-c * x)

tactic: filter_upwards [eventually_gt_atTop 0] with t ht
state_before: case hfg
c d : ℝ
hcd : c ≤ d
⊢ ∀ᶠ (x : ℝ) in atTop, ‖rexp (-d * x)‖ ≤ rexp (-c * x)
state_after: case h
c d : ℝ
hcd : c ≤ d
t : ℝ
ht : 0 < t
⊢ ‖rexp (-d * t)‖ ≤ rexp (-c * t)

tactic: rwa [norm_of_nonneg (exp_pos _).le, exp_le_exp, mul_le_mul_right ht, neg_le_neg_iff]
state_before: case h
c d : ℝ
hcd : c ≤ d
t : ℝ
ht : 0 < t
⊢ ‖rexp (-d * t)‖ ≤ rexp (-c * t)
state_after: no goals
Theorem: IsAdjoinRoot.lift_map
File: Mathlib/RingTheory/IsAdjoinRoot.lean

tactic: rw [lift, RingHom.coe_mk]
state_before: R : Type u
S : Type v
inst✝³ : CommRing R
inst✝² : Ring S
f : R[X]
inst✝¹ : Algebra R S
T : Type u_1
inst✝ : CommRing T
i : R →+* T
x : T
hx : eval₂ i x f = 0
h : IsAdjoinRoot S f
z : R[X]
⊢ (lift i x hx h) (h.map z) = eval₂ i x z
state_after: R : Type u
S : Type v
inst✝³ : CommRing R
inst✝² : Ring S
f : R[X]
inst✝¹ : Algebra R S
T : Type u_1
inst✝ : CommRing T
i : R →+* T
x : T
hx : eval₂ i x f = 0
h : IsAdjoinRoot S f
z : R[X]
⊢ { toFun := fun z => eval₂ i x (h.repr z), map_one' := ⋯, map_mul' := ⋯ } (h.map z) = eval₂ i x z

tactic: dsimp
state_before: R : Type u
S : Type v
inst✝³ : CommRing R
inst✝² : Ring S
f : R[X]
inst✝¹ : Algebra R S
T : Type u_1
inst✝ : CommRing T
i : R →+* T
x : T
hx : eval₂ i x f = 0
h : IsAdjoinRoot S f
z : R[X]
⊢ { toFun := fun z => eval₂ i x (h.repr z), map_one' := ⋯, map_mul' := ⋯ } (h.map z) = eval₂ i x z
state_after: R : Type u
S : Type v
inst✝³ : CommRing R
inst✝² : Ring S
f : R[X]
inst✝¹ : Algebra R S
T : Type u_1
inst✝ : CommRing T
i : R →+* T
x : T
hx : eval₂ i x f = 0
h : IsAdjoinRoot S f
z : R[X]
⊢ eval₂ i x (h.repr (h.map z)) = eval₂ i x z

tactic: rw [h.eval₂_repr_eq_eval₂_of_map_eq hx _ _ rfl]
state_before: R : Type u
S : Type v
inst✝³ : CommRing R
inst✝² : Ring S
f : R[X]
inst✝¹ : Algebra R S
T : Type u_1
inst✝ : CommRing T
i : R →+* T
x : T
hx : eval₂ i x f = 0
h : IsAdjoinRoot S f
z : R[X]
⊢ eval₂ i x (h.repr (h.map z)) = eval₂ i x z
state_after: no goals
Theorem: Submodule.orthogonal_eq_bot_iff
File: Mathlib/Analysis/InnerProductSpace/Projection.lean

tactic: refine ⟨?_, fun h => by rw [h, Submodule.top_orthogonal_eq_bot]⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection K
⊢ Kᗮ = ⊥ ↔ K = ⊤
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection K
⊢ Kᗮ = ⊥ → K = ⊤

tactic: intro h
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection K
⊢ Kᗮ = ⊥ → K = ⊤
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection K
h : Kᗮ = ⊥
⊢ K = ⊤

tactic: have : K ⊔ Kᗮ = ⊤ := Submodule.sup_orthogonal_of_completeSpace
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection K
h : Kᗮ = ⊥
⊢ K = ⊤
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection K
h : Kᗮ = ⊥
this : K ⊔ Kᗮ = ⊤
⊢ K = ⊤

tactic: rwa [h, sup_comm, bot_sup_eq] at this
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection K
h : Kᗮ = ⊥
this : K ⊔ Kᗮ = ⊤
⊢ K = ⊤
state_after: no goals

tactic: rw [h, Submodule.top_orthogonal_eq_bot]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection K
h : K = ⊤
⊢ Kᗮ = ⊥
state_after: no goals
Theorem: Int.coprime_of_sq_sum
File: Mathlib/NumberTheory/FLT/Four.lean

tactic: rw [sq, sq]
state_before: r s : ℤ
h2 : IsCoprime s r
⊢ IsCoprime (r ^ 2 + s ^ 2) r
state_after: r s : ℤ
h2 : IsCoprime s r
⊢ IsCoprime (r * r + s * s) r

tactic: exact (IsCoprime.mul_left h2 h2).mul_add_left_left r
state_before: r s : ℤ
h2 : IsCoprime s r
⊢ IsCoprime (r * r + s * s) r
state_after: no goals
Theorem: Function.Surjective.iSup_comp
File: Mathlib/Order/CompleteLattice.lean

tactic: simp only [iSup.eq_1]
state_before: α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : SupSet α
f✝ g✝ : ι → α
f : ι → ι'
hf : Surjective f
g : ι' → α
⊢ ⨆ x, g (f x) = ⨆ y, g y
state_after: α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : SupSet α
f✝ g✝ : ι → α
f : ι → ι'
hf : Surjective f
g : ι' → α
⊢ sSup (range fun x => g (f x)) = sSup (range fun y => g y)

tactic: congr
state_before: α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : SupSet α
f✝ g✝ : ι → α
f : ι → ι'
hf : Surjective f
g : ι' → α
⊢ sSup (range fun x => g (f x)) = sSup (range fun y => g y)
state_after: case e_a
α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : SupSet α
f✝ g✝ : ι → α
f : ι → ι'
hf : Surjective f
g : ι' → α
⊢ (range fun x => g (f x)) = range fun y => g y

tactic: exact hf.range_comp g
state_before: case e_a
α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : SupSet α
f✝ g✝ : ι → α
f : ι → ι'
hf : Surjective f
g : ι' → α
⊢ (range fun x => g (f x)) = range fun y => g y
state_after: no goals
Theorem: EMetric.diam_triple
File: Mathlib/Topology/EMetricSpace/Basic.lean

tactic: simp only [diam_insert, iSup_insert, iSup_singleton, diam_singleton, ENNReal.max_zero_right,
  ENNReal.sup_eq_max]
state_before: α : Type u
β : Type v
X : Type u_1
inst✝ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s t : Set α
⊢ diam {x, y, z} = max (max (edist x y) (edist x z)) (edist y z)
state_after: no goals
Theorem: Matrix.Fin.circulant_isSymm_iff
File: Mathlib/LinearAlgebra/Matrix/Circulant.lean

tactic: simp [IsSymm.ext_iff, IsEmpty.forall_iff]
state_before: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
R : Type u_5
v✝ : Fin 0 → α
⊢ (circulant v✝).IsSymm ↔ ∀ (i : Fin 0), v✝ (-i) = v✝ i
state_after: no goals
Theorem: tprod_eq_mulSingle
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: rw [tprod_eq_prod (s := {b}), prod_singleton]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : CommMonoid α
inst✝ : TopologicalSpace α
f✝ g : β → α
a a₁ a₂ : α
f : β → α
b : β
hf : ∀ (b' : β), b' ≠ b → f b' = 1
⊢ ∏' (b : β), f b = f b
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : CommMonoid α
inst✝ : TopologicalSpace α
f✝ g : β → α
a a₁ a₂ : α
f : β → α
b : β
hf : ∀ (b' : β), b' ≠ b → f b' = 1
⊢ ∀ b_1 ∉ {b}, f b_1 = 1

tactic: exact fun b' hb' ↦ hf b' (by simpa using hb')
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : CommMonoid α
inst✝ : TopologicalSpace α
f✝ g : β → α
a a₁ a₂ : α
f : β → α
b : β
hf : ∀ (b' : β), b' ≠ b → f b' = 1
⊢ ∀ b_1 ∉ {b}, f b_1 = 1
state_after: no goals

tactic: simpa using hb'
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : CommMonoid α
inst✝ : TopologicalSpace α
f✝ g : β → α
a a₁ a₂ : α
f : β → α
b : β
hf : ∀ (b' : β), b' ≠ b → f b' = 1
b' : β
hb' : b' ∉ {b}
⊢ b' ≠ b
state_after: no goals
Theorem: dimH_mono
File: Mathlib/Topology/MetricSpace/HausdorffDimension.lean

tactic: borelize X
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹ : EMetricSpace X
inst✝ : EMetricSpace Y
s t : Set X
h : s ⊆ t
⊢ dimH s ≤ dimH t
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹ : EMetricSpace X
inst✝ : EMetricSpace Y
s t : Set X
h : s ⊆ t
this✝¹ : MeasurableSpace X := borel X
this✝ : BorelSpace X
⊢ dimH s ≤ dimH t

tactic: exact dimH_le fun d hd => le_dimH_of_hausdorffMeasure_eq_top <| top_unique <| hd ▸ measure_mono h
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹ : EMetricSpace X
inst✝ : EMetricSpace Y
s t : Set X
h : s ⊆ t
this✝¹ : MeasurableSpace X := borel X
this✝ : BorelSpace X
⊢ dimH s ≤ dimH t
state_after: no goals
Theorem: FormalMultilinearSeries.ne_zero_of_order_ne_zero
File: Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean

tactic: simp [h] at hp
state_before: 𝕜 : Type u
𝕜' : Type u'
E : Type v
F : Type w
G : Type x
inst✝¹⁰ : Ring 𝕜
n : ℕ
inst✝⁹ : AddCommGroup E
inst✝⁸ : Module 𝕜 E
inst✝⁷ : TopologicalSpace E
inst✝⁶ : TopologicalAddGroup E
inst✝⁵ : ContinuousConstSMul 𝕜 E
inst✝⁴ : AddCommGroup F
inst✝³ : Module 𝕜 F
inst✝² : TopologicalSpace F
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousConstSMul 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
hp : p.order ≠ 0
h : p = 0
⊢ False
state_after: no goals
Theorem: multiplicity.multiplicity_self
File: Mathlib/RingTheory/Multiplicity.lean

tactic: rw [← Nat.cast_one]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a : α
ha : ¬IsUnit a
ha0 : a ≠ 0
⊢ multiplicity a a = 1
state_after: α : Type u_1
β : Type u_2
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a : α
ha : ¬IsUnit a
ha0 : a ≠ 0
⊢ multiplicity a a = ↑1

tactic: exact eq_coe_iff.2 ⟨by simp, fun ⟨b, hb⟩ => ha (isUnit_iff_dvd_one.2
          ⟨b, mul_left_cancel₀ ha0 <| by simpa [_root_.pow_succ, mul_assoc] using hb⟩)⟩
state_before: α : Type u_1
β : Type u_2
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a : α
ha : ¬IsUnit a
ha0 : a ≠ 0
⊢ multiplicity a a = ↑1
state_after: no goals

tactic: simp
state_before: α : Type u_1
β : Type u_2
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a : α
ha : ¬IsUnit a
ha0 : a ≠ 0
⊢ a ^ 1 ∣ a
state_after: no goals

tactic: simpa [_root_.pow_succ, mul_assoc] using hb
state_before: α : Type u_1
β : Type u_2
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a : α
ha : ¬IsUnit a
ha0 : a ≠ 0
x✝ : a ^ (1 + 1) ∣ a
b : α
hb : a = a ^ (1 + 1) * b
⊢ a * 1 = a * (a * b)
state_after: no goals
Theorem: SupClosed.infClosure
File: Mathlib/Order/SupClosed.lean

tactic: rintro _ ⟨t, ht, hts, rfl⟩ _ ⟨u, hu, hus, rfl⟩
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : DistribLattice α
inst✝ : DistribLattice β
s : Set α
hs : SupClosed s
⊢ SupClosed (infClosure s)
state_after: case intro.intro.intro.intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : DistribLattice α
inst✝ : DistribLattice β
s : Set α
hs : SupClosed s
t : Finset α
ht : t.Nonempty
hts : ↑t ⊆ s
u : Finset α
hu : u.Nonempty
hus : ↑u ⊆ s
⊢ t.inf' ht id ⊔ u.inf' hu id ∈ infClosure s

tactic: rw [inf'_sup_inf']
state_before: case intro.intro.intro.intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : DistribLattice α
inst✝ : DistribLattice β
s : Set α
hs : SupClosed s
t : Finset α
ht : t.Nonempty
hts : ↑t ⊆ s
u : Finset α
hu : u.Nonempty
hus : ↑u ⊆ s
⊢ t.inf' ht id ⊔ u.inf' hu id ∈ infClosure s
state_after: case intro.intro.intro.intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : DistribLattice α
inst✝ : DistribLattice β
s : Set α
hs : SupClosed s
t : Finset α
ht : t.Nonempty
hts : ↑t ⊆ s
u : Finset α
hu : u.Nonempty
hus : ↑u ⊆ s
⊢ ((t ×ˢ u).inf' ⋯ fun i => id i.1 ⊔ id i.2) ∈ infClosure s

tactic: exact finsetInf'_mem_infClosure _
  fun i hi ↦ hs (hts (mem_product.1 hi).1) (hus (mem_product.1 hi).2)
state_before: case intro.intro.intro.intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : DistribLattice α
inst✝ : DistribLattice β
s : Set α
hs : SupClosed s
t : Finset α
ht : t.Nonempty
hts : ↑t ⊆ s
u : Finset α
hu : u.Nonempty
hus : ↑u ⊆ s
⊢ ((t ×ˢ u).inf' ⋯ fun i => id i.1 ⊔ id i.2) ∈ infClosure s
state_after: no goals
Theorem: Stream'.Seq.mem_cons_iff
File: Mathlib/Data/Seq/Seq.lean

tactic: rintro (rfl | m) <;> [apply mem_cons; exact mem_cons_of_mem _ m]
state_before: α : Type u
β : Type v
γ : Type w
a b : α
s : Seq α
⊢ a = b ∨ a ∈ s → a ∈ cons b s
state_after: no goals
Theorem: Matrix.nonsing_inv_apply
File: Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean

tactic: rw [inv_def, ← Ring.inverse_unit h.unit, IsUnit.unit_spec]
state_before: l : Type u_1
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
h : IsUnit A.det
⊢ A⁻¹ = ↑h.unit⁻¹ • A.adjugate
state_after: no goals
Theorem: closedBall_one_mul_singleton
File: Mathlib/Analysis/Normed/Group/Pointwise.lean

tactic: simp
state_before: E : Type u_1
inst✝ : SeminormedCommGroup E
ε δ : ℝ
s t : Set E
x y : E
⊢ closedBall 1 δ * {x} = closedBall x δ
state_after: no goals
Theorem: Nat.cast_descFactorial_two
File: Mathlib/Data/Nat/Factorial/Cast.lean

tactic: rw [cast_descFactorial]
state_before: S : Type u_1
inst✝ : Ring S
a b : ℕ
⊢ ↑(a.descFactorial 2) = ↑a * (↑a - 1)
state_after: S : Type u_1
inst✝ : Ring S
a b : ℕ
⊢ Polynomial.eval (↑(a - (2 - 1))) (ascPochhammer S 2) = ↑a * (↑a - 1)

tactic: cases a
state_before: S : Type u_1
inst✝ : Ring S
a b : ℕ
⊢ Polynomial.eval (↑(a - (2 - 1))) (ascPochhammer S 2) = ↑a * (↑a - 1)
state_after: case zero
S : Type u_1
inst✝ : Ring S
b : ℕ
⊢ Polynomial.eval (↑(0 - (2 - 1))) (ascPochhammer S 2) = ↑0 * (↑0 - 1)

case succ
S : Type u_1
inst✝ : Ring S
b n✝ : ℕ
⊢ Polynomial.eval (↑(n✝ + 1 - (2 - 1))) (ascPochhammer S 2) = ↑(n✝ + 1) * (↑(n✝ + 1) - 1)

tactic: simp
state_before: case zero
S : Type u_1
inst✝ : Ring S
b : ℕ
⊢ Polynomial.eval (↑(0 - (2 - 1))) (ascPochhammer S 2) = ↑0 * (↑0 - 1)
state_after: no goals

tactic: rw [succ_sub_succ, tsub_zero, cast_succ, add_sub_cancel_right, ascPochhammer_succ_right,
  ascPochhammer_one, Polynomial.X_mul, Polynomial.eval_mul_X, Polynomial.eval_add,
  Polynomial.eval_X, cast_one, Polynomial.eval_one]
state_before: case succ
S : Type u_1
inst✝ : Ring S
b n✝ : ℕ
⊢ Polynomial.eval (↑(n✝ + 1 - (2 - 1))) (ascPochhammer S 2) = ↑(n✝ + 1) * (↑(n✝ + 1) - 1)
state_after: no goals
Theorem: MeasureTheory.SimpleFunc.integrable_pair
File: Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean

tactic: simpa only [integrable_iff_finMeasSupp] using FinMeasSupp.pair
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
f : α →ₛ E
g : α →ₛ F
⊢ Integrable (↑f) μ → Integrable (↑g) μ → Integrable (↑(f.pair g)) μ
state_after: no goals
Theorem: CategoryTheory.Adjunction.he'
File: Mathlib/CategoryTheory/Adjunction/Basic.lean

tactic: rw [Equiv.symm_apply_eq, he]
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
F : C ⥤ D
G : D ⥤ C
F_obj : C → D
e : (X : C) → (Y : D) → (F_obj X ⟶ Y) ≃ (X ⟶ G.obj Y)
he : ∀ (X : C) (Y Y' : D) (g : Y ⟶ Y') (h : F_obj X ⟶ Y), (e X Y') (h ≫ g) = (e X Y) h ≫ G.map g
X : C
Y Y' : D
f : X ⟶ G.obj Y
g : Y ⟶ Y'
⊢ (e X Y').symm (f ≫ G.map g) = (e X Y).symm f ≫ g
state_after: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
F : C ⥤ D
G : D ⥤ C
F_obj : C → D
e : (X : C) → (Y : D) → (F_obj X ⟶ Y) ≃ (X ⟶ G.obj Y)
he : ∀ (X : C) (Y Y' : D) (g : Y ⟶ Y') (h : F_obj X ⟶ Y), (e X Y') (h ≫ g) = (e X Y) h ≫ G.map g
X : C
Y Y' : D
f : X ⟶ G.obj Y
g : Y ⟶ Y'
⊢ f ≫ G.map g = (e X Y) ((e X Y).symm f) ≫ G.map g

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
F : C ⥤ D
G : D ⥤ C
F_obj : C → D
e : (X : C) → (Y : D) → (F_obj X ⟶ Y) ≃ (X ⟶ G.obj Y)
he : ∀ (X : C) (Y Y' : D) (g : Y ⟶ Y') (h : F_obj X ⟶ Y), (e X Y') (h ≫ g) = (e X Y) h ≫ G.map g
X : C
Y Y' : D
f : X ⟶ G.obj Y
g : Y ⟶ Y'
⊢ f ≫ G.map g = (e X Y) ((e X Y).symm f) ≫ G.map g
state_after: no goals
Theorem: Real.Angle.expMapCircle_zero
File: Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean

tactic: rw [← Real.Angle.coe_zero, Real.Angle.expMapCircle_coe, _root_.expMapCircle_zero]
state_before: ⊢ expMapCircle 0 = 1
state_after: no goals
Theorem: AffineSubspace.lt_iff_le_and_exists
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: rw [lt_iff_le_not_le, not_le_iff_exists]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
s1 s2 : AffineSubspace k P
⊢ s1 < s2 ↔ s1 ≤ s2 ∧ ∃ p ∈ s2, p ∉ s1
state_after: no goals
Theorem: intrinsicFrontier_union_intrinsicInterior
File: Mathlib/Analysis/Convex/Intrinsic.lean

tactic: rw [union_comm, intrinsicInterior_union_intrinsicFrontier]
state_before: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
Q : Type u_4
P : Type u_5
inst✝⁴ : Ring 𝕜
inst✝³ : AddCommGroup V
inst✝² : Module 𝕜 V
inst✝¹ : TopologicalSpace P
inst✝ : AddTorsor V P
s✝ t : Set P
x : P
s : Set P
⊢ intrinsicFrontier 𝕜 s ∪ intrinsicInterior 𝕜 s = intrinsicClosure 𝕜 s
state_after: no goals
Theorem: Polynomial.expand_injective
File: Mathlib/Algebra/Polynomial/Expand.lean

tactic: rw [← coeff_expand_mul hn, H, coeff_expand_mul hn]
state_before: R : Type u
inst✝¹ : CommSemiring R
S : Type v
inst✝ : CommSemiring S
p q n : ℕ
hn : 0 < n
g g' : R[X]
H : (expand R n) g = (expand R n) g'
k : ℕ
⊢ g.coeff k = g'.coeff k
state_after: no goals
Theorem: Algebra.norm_zero
File: Mathlib/RingTheory/Norm.lean

tactic: nontriviality
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹¹ : CommRing R
inst✝¹⁰ : Ring S
inst✝⁹ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁸ : Field K
inst✝⁷ : Field L
inst✝⁶ : Field F
inst✝⁵ : Algebra K L
inst✝⁴ : Algebra K F
ι : Type w
inst✝³ : Finite ι
inst✝² : Nontrivial S
inst✝¹ : Module.Free R S
inst✝ : Module.Finite R S
⊢ (norm R) 0 = 0
state_after: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹¹ : CommRing R
inst✝¹⁰ : Ring S
inst✝⁹ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁸ : Field K
inst✝⁷ : Field L
inst✝⁶ : Field F
inst✝⁵ : Algebra K L
inst✝⁴ : Algebra K F
ι : Type w
inst✝³ : Finite ι
inst✝² : Nontrivial S
inst✝¹ : Module.Free R S
inst✝ : Module.Finite R S
a✝ : Nontrivial R
⊢ (norm R) 0 = 0

tactic: rw [norm_apply, coe_lmul_eq_mul, map_zero, LinearMap.det_zero' (Module.Free.chooseBasis R S)]
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹¹ : CommRing R
inst✝¹⁰ : Ring S
inst✝⁹ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁸ : Field K
inst✝⁷ : Field L
inst✝⁶ : Field F
inst✝⁵ : Algebra K L
inst✝⁴ : Algebra K F
ι : Type w
inst✝³ : Finite ι
inst✝² : Nontrivial S
inst✝¹ : Module.Free R S
inst✝ : Module.Finite R S
a✝ : Nontrivial R
⊢ (norm R) 0 = 0
state_after: no goals
Theorem: CircleDeg1Lift.translate_iterate
File: Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean

tactic: rw [← coe_pow, ← Units.val_pow_eq_pow_val, translate_pow]
state_before: f g : CircleDeg1Lift
x : ℝ
n : ℕ
⊢ (⇑↑(translate (Multiplicative.ofAdd x)))^[n] = ⇑↑(translate (Multiplicative.ofAdd (↑n * x)))
state_after: no goals
Theorem: CategoryTheory.isCoseparator_unop_iff
File: Mathlib/CategoryTheory/Generator.lean

tactic: rw [IsSeparator, IsCoseparator, ← isCoseparating_unop_iff, Set.singleton_unop]
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
G : Cᵒᵖ
⊢ IsCoseparator G.unop ↔ IsSeparator G
state_after: no goals
Theorem: UniformCauchySeqOn.comp
File: Mathlib/Topology/UniformSpace/UniformConvergence.lean

tactic: rw [uniformCauchySeqOn_iff_uniformCauchySeqOnFilter] at hf ⊢
state_before: α : Type u
β : Type v
γ✝ : Type w
ι : Type x
inst✝ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g✝ : ι → α
γ : Type u_1
hf : UniformCauchySeqOn F p s
g : γ → α
⊢ UniformCauchySeqOn (fun n => F n ∘ g) p (g ⁻¹' s)
state_after: α : Type u
β : Type v
γ✝ : Type w
ι : Type x
inst✝ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g✝ : ι → α
γ : Type u_1
hf : UniformCauchySeqOnFilter F p (𝓟 s)
g : γ → α
⊢ UniformCauchySeqOnFilter (fun n => F n ∘ g) p (𝓟 (g ⁻¹' s))

tactic: simpa only [UniformCauchySeqOn, comap_principal] using hf.comp g
state_before: α : Type u
β : Type v
γ✝ : Type w
ι : Type x
inst✝ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g✝ : ι → α
γ : Type u_1
hf : UniformCauchySeqOnFilter F p (𝓟 s)
g : γ → α
⊢ UniformCauchySeqOnFilter (fun n => F n ∘ g) p (𝓟 (g ⁻¹' s))
state_after: no goals
Theorem: GeneralizedContinuedFraction.first_numerator_eq
File: Mathlib/Algebra/ContinuedFractions/Translations.lean

tactic: simp [num_eq_conts_a, first_continuant_eq zeroth_s_eq]
state_before: K : Type u_1
g : GeneralizedContinuedFraction K
n : ℕ
inst✝ : DivisionRing K
gp : Pair K
zeroth_s_eq : g.s.get? 0 = some gp
⊢ g.numerators 1 = gp.b * g.h + gp.a
state_after: no goals
Theorem: pow_eq_zero
File: Mathlib/Algebra/GroupWithZero/Basic.lean

tactic: rw [pow_succ, mul_eq_zero] at ha
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
a : M₀
m n✝ : ℕ
inst✝ : NoZeroDivisors M₀
n : ℕ
ha : a ^ (n + 1) = 0
⊢ a = 0
state_after: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
a : M₀
m n✝ : ℕ
inst✝ : NoZeroDivisors M₀
n : ℕ
ha : a ^ n = 0 ∨ a = 0
⊢ a = 0

tactic: exact ha.elim pow_eq_zero id
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
a : M₀
m n✝ : ℕ
inst✝ : NoZeroDivisors M₀
n : ℕ
ha : a ^ n = 0 ∨ a = 0
⊢ a = 0
state_after: no goals
Theorem: intrinsicClosure_diff_intrinsicFrontier
File: Mathlib/Analysis/Convex/Intrinsic.lean

tactic: rw [closure_diff_frontier, intrinsicInterior]
state_before: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
Q : Type u_4
P : Type u_5
inst✝⁴ : Ring 𝕜
inst✝³ : AddCommGroup V
inst✝² : Module 𝕜 V
inst✝¹ : TopologicalSpace P
inst✝ : AddTorsor V P
s✝ t : Set P
x : P
s : Set P
⊢ (fun a => ↑a) '' (closure (Subtype.val ⁻¹' s) \ frontier (Subtype.val ⁻¹' s)) = intrinsicInterior 𝕜 s
state_after: no goals
Theorem: List.eraseIdx_sublist
File: .lake/packages/batteries/Batteries/Data/List/EraseIdx.lean

tactic: simp
state_before: α : Type u
β : Type v
x✝ : Nat
⊢ [].eraseIdx x✝ <+ []
state_after: no goals

tactic: simp
state_before: α : Type u
β : Type v
a : α
l : List α
⊢ (a :: l).eraseIdx 0 <+ a :: l
state_after: no goals

tactic: simp [eraseIdx_sublist l k]
state_before: α : Type u
β : Type v
a : α
l : List α
k : Nat
⊢ (a :: l).eraseIdx (k + 1) <+ a :: l
state_after: no goals