1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Polynomial.eq_X_add_C_of_degree_le_one
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: simp
state_before: R : Type u
S : Type v
a b c d : R
n✝ m : ℕ
inst✝ : Semiring R
p q r : R[X]
h : p.degree ≤ 1
n : ℕ
⊢ p.coeff Nat.zero = (C (p.coeff 1) * X + C (p.coeff 0)).coeff Nat.zero
state_after: no goals

tactic: simp [coeff_C]
state_before: R : Type u
S : Type v
a b c d : R
n✝¹ m : ℕ
inst✝ : Semiring R
p q r : R[X]
h : p.degree ≤ 1
n✝ n : ℕ
⊢ p.coeff Nat.zero.succ = (C (p.coeff 1) * X + C (p.coeff 0)).coeff Nat.zero.succ
state_after: no goals

tactic: have : degree p < m.succ.succ := lt_of_le_of_lt h
  (Iff.mpr WithBot.coe_lt_coe <| Nat.succ_lt_succ <| Nat.zero_lt_succ m)
state_before: R : Type u
S : Type v
a b c d : R
n✝¹ m✝ : ℕ
inst✝ : Semiring R
p q r : R[X]
h : p.degree ≤ 1
n✝ n m : ℕ
⊢ p.coeff m.succ.succ = (C (p.coeff 1) * X + C (p.coeff 0)).coeff m.succ.succ
state_after: R : Type u
S : Type v
a b c d : R
n✝¹ m✝ : ℕ
inst✝ : Semiring R
p q r : R[X]
h : p.degree ≤ 1
n✝ n m : ℕ
this : p.degree < ↑m.succ.succ
⊢ p.coeff m.succ.succ = (C (p.coeff 1) * X + C (p.coeff 0)).coeff m.succ.succ

tactic: simp [coeff_eq_zero_of_degree_lt this, coeff_C, Nat.succ_ne_zero, coeff_X, Nat.succ_inj',
  @eq_comm ℕ 0]
state_before: R : Type u
S : Type v
a b c d : R
n✝¹ m✝ : ℕ
inst✝ : Semiring R
p q r : R[X]
h : p.degree ≤ 1
n✝ n m : ℕ
this : p.degree < ↑m.succ.succ
⊢ p.coeff m.succ.succ = (C (p.coeff 1) * X + C (p.coeff 0)).coeff m.succ.succ
state_after: no goals
Theorem: CauchyFilter.nonempty_cauchyFilter_iff
File: Mathlib/Topology/UniformSpace/Completion.lean

tactic: constructor <;> rintro ⟨c⟩
state_before: α : Type u
inst✝² : UniformSpace α
β : Type v
γ : Type w
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
⊢ Nonempty (CauchyFilter α) ↔ Nonempty α
state_after: case mp.intro
α : Type u
inst✝² : UniformSpace α
β : Type v
γ : Type w
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
c : CauchyFilter α
⊢ Nonempty α

case mpr.intro
α : Type u
inst✝² : UniformSpace α
β : Type v
γ : Type w
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
c : α
⊢ Nonempty (CauchyFilter α)

tactic: have := eq_univ_iff_forall.1 denseEmbedding_pureCauchy.toDenseInducing.closure_range c
state_before: case mp.intro
α : Type u
inst✝² : UniformSpace α
β : Type v
γ : Type w
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
c : CauchyFilter α
⊢ Nonempty α
state_after: case mp.intro
α : Type u
inst✝² : UniformSpace α
β : Type v
γ : Type w
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
c : CauchyFilter α
this : c ∈ closure (range pureCauchy)
⊢ Nonempty α

tactic: obtain ⟨_, ⟨_, a, _⟩⟩ := mem_closure_iff.1 this _ isOpen_univ trivial
state_before: case mp.intro
α : Type u
inst✝² : UniformSpace α
β : Type v
γ : Type w
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
c : CauchyFilter α
this : c ∈ closure (range pureCauchy)
⊢ Nonempty α
state_after: case mp.intro.intro.intro.intro
α : Type u
inst✝² : UniformSpace α
β : Type v
γ : Type w
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
c : CauchyFilter α
this : c ∈ closure (range pureCauchy)
w✝ : CauchyFilter α
left✝ : w✝ ∈ univ
a : α
h✝ : pureCauchy a = w✝
⊢ Nonempty α

tactic: exact ⟨a⟩
state_before: case mp.intro.intro.intro.intro
α : Type u
inst✝² : UniformSpace α
β : Type v
γ : Type w
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
c : CauchyFilter α
this : c ∈ closure (range pureCauchy)
w✝ : CauchyFilter α
left✝ : w✝ ∈ univ
a : α
h✝ : pureCauchy a = w✝
⊢ Nonempty α
state_after: no goals

tactic: exact ⟨pureCauchy c⟩
state_before: case mpr.intro
α : Type u
inst✝² : UniformSpace α
β : Type v
γ : Type w
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
c : α
⊢ Nonempty (CauchyFilter α)
state_after: no goals
Theorem: Batteries.RBNode.insert_toList_zoom
File: .lake/packages/batteries/Batteries/Data/RBMap/Lemmas.lean

tactic: rw [← setBlack_toList, ← Path.zoom_insert ht e, setBlack_toList, Path.insert_toList]
state_before: α : Type u_1
c : RBColor
n : Nat
cmp : α → α → Ordering
t' : RBNode α
p : Path α
v : α
t : RBNode α
ht : t.Balanced c n
e : zoom (cmp v) t = (t', p)
⊢ (insert cmp t v).toList = p.withList (setRoot v t').toList
state_after: no goals
Theorem: List.prefix_of_prefix_length_le
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: injection e with _ e'
state_before: α : Type u_1
a : α
l₁ : List α
b : α
l₂ r₁ r₂ : List α
e : b :: l₂ ++ r₂ = a :: l₁ ++ r₁
ll : (a :: l₁).length ≤ (b :: l₂).length
⊢ a :: l₁ <+: b :: l₂
state_after: α : Type u_1
a : α
l₁ : List α
b : α
l₂ r₁ r₂ : List α
ll : (a :: l₁).length ≤ (b :: l₂).length
head_eq✝ : b = a
e' : l₂.append r₂ = l₁.append r₁
⊢ a :: l₁ <+: b :: l₂

tactic: subst b
state_before: α : Type u_1
a : α
l₁ : List α
b : α
l₂ r₁ r₂ : List α
ll : (a :: l₁).length ≤ (b :: l₂).length
head_eq✝ : b = a
e' : l₂.append r₂ = l₁.append r₁
⊢ a :: l₁ <+: b :: l₂
state_after: α : Type u_1
a : α
l₁ l₂ r₁ r₂ : List α
e' : l₂.append r₂ = l₁.append r₁
ll : (a :: l₁).length ≤ (a :: l₂).length
⊢ a :: l₁ <+: a :: l₂

tactic: rcases prefix_of_prefix_length_le ⟨_, rfl⟩ ⟨_, e'⟩ (le_of_succ_le_succ ll) with ⟨r₃, rfl⟩
state_before: α : Type u_1
a : α
l₁ l₂ r₁ r₂ : List α
e' : l₂.append r₂ = l₁.append r₁
ll : (a :: l₁).length ≤ (a :: l₂).length
⊢ a :: l₁ <+: a :: l₂
state_after: case intro
α : Type u_1
a : α
l₁ r₁ r₂ r₃ : List α
e' : (l₁ ++ r₃).append r₂ = l₁.append r₁
ll : (a :: l₁).length ≤ (a :: (l₁ ++ r₃)).length
⊢ a :: l₁ <+: a :: (l₁ ++ r₃)

tactic: exact ⟨r₃, rfl⟩
state_before: case intro
α : Type u_1
a : α
l₁ r₁ r₂ r₃ : List α
e' : (l₁ ++ r₃).append r₂ = l₁.append r₁
ll : (a :: l₁).length ≤ (a :: (l₁ ++ r₃)).length
⊢ a :: l₁ <+: a :: (l₁ ++ r₃)
state_after: no goals
Theorem: Finsupp.prod_equivMapDomain
File: Mathlib/Data/Finsupp/Basic.lean

tactic: simp [prod, equivMapDomain]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝¹ : Zero M
inst✝ : CommMonoid N
f : α ≃ β
l : α →₀ M
g : β → M → N
⊢ (equivMapDomain f l).prod g = l.prod fun a m => g (f a) m
state_after: no goals
Theorem: Real.le_rpow_iff_log_le
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rw [← Real.log_le_log_iff hx (Real.rpow_pos_of_pos hy z), Real.log_rpow hy]
state_before: x y z : ℝ
n : ℕ
hx : 0 < x
hy : 0 < y
⊢ x ≤ y ^ z ↔ log x ≤ z * log y
state_after: no goals
Theorem: Fin.castPred_inj
File: Mathlib/Data/Fin/Basic.lean

tactic: simp_rw [ext_iff, le_antisymm_iff, ← le_def, castPred_le_castPred_iff]
state_before: n m : ℕ
i j : Fin (n + 1)
hi : i ≠ last n
hj : j ≠ last n
⊢ i.castPred hi = j.castPred hj ↔ i = j
state_after: no goals
Theorem: CategoryTheory.Limits.Pi.reindex_inv_π
File: Mathlib/CategoryTheory/Limits/Shapes/Products.lean

tactic: simp [Iso.inv_comp_eq]
state_before: β : Type w
α : Type w₂
γ✝ : Type w₃
C : Type u
inst✝² : Category.{v, u} C
γ : Type w'
ε : β ≃ γ
f : γ → C
inst✝¹ : HasProduct f
inst✝ : HasProduct (f ∘ ⇑ε)
b : β
⊢ (reindex ε f).inv ≫ π (f ∘ ⇑ε) b = π f (ε b)
state_after: no goals
Theorem: Seminorm.closedBall_comp
File: Mathlib/Analysis/Seminorm.lean

tactic: ext
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜₂ E₂
f : E →ₛₗ[σ₁₂] E₂
x : E
r : ℝ
⊢ (p.comp f).closedBall x r = ⇑f ⁻¹' p.closedBall (f x) r
state_after: case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜₂ E₂
f : E →ₛₗ[σ₁₂] E₂
x : E
r : ℝ
x✝ : E
⊢ x✝ ∈ (p.comp f).closedBall x r ↔ x✝ ∈ ⇑f ⁻¹' p.closedBall (f x) r

tactic: simp_rw [closedBall, mem_preimage, comp_apply, Set.mem_setOf_eq, map_sub]
state_before: case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜₂ E₂
f : E →ₛₗ[σ₁₂] E₂
x : E
r : ℝ
x✝ : E
⊢ x✝ ∈ (p.comp f).closedBall x r ↔ x✝ ∈ ⇑f ⁻¹' p.closedBall (f x) r
state_after: no goals
Theorem: MvPolynomial.support_sdiff_support_subset_support_add
File: Mathlib/Algebra/MvPolynomial/Basic.lean

tactic: intro m hm
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S₁
p✝ q✝ : MvPolynomial σ R
inst✝ : DecidableEq σ
p q : MvPolynomial σ R
⊢ p.support \ q.support ⊆ (p + q).support
state_after: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m✝ : σ
s : σ →₀ ℕ
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S₁
p✝ q✝ : MvPolynomial σ R
inst✝ : DecidableEq σ
p q : MvPolynomial σ R
m : σ →₀ ℕ
hm : m ∈ p.support \ q.support
⊢ m ∈ (p + q).support

tactic: simp only [Classical.not_not, mem_support_iff, Finset.mem_sdiff, Ne] at hm
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m✝ : σ
s : σ →₀ ℕ
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S₁
p✝ q✝ : MvPolynomial σ R
inst✝ : DecidableEq σ
p q : MvPolynomial σ R
m : σ →₀ ℕ
hm : m ∈ p.support \ q.support
⊢ m ∈ (p + q).support
state_after: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m✝ : σ
s : σ →₀ ℕ
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S₁
p✝ q✝ : MvPolynomial σ R
inst✝ : DecidableEq σ
p q : MvPolynomial σ R
m : σ →₀ ℕ
hm : ¬coeff m p = 0 ∧ coeff m q = 0
⊢ m ∈ (p + q).support

tactic: simp [hm.2, hm.1]
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m✝ : σ
s : σ →₀ ℕ
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S₁
p✝ q✝ : MvPolynomial σ R
inst✝ : DecidableEq σ
p q : MvPolynomial σ R
m : σ →₀ ℕ
hm : ¬coeff m p = 0 ∧ coeff m q = 0
⊢ m ∈ (p + q).support
state_after: no goals
Theorem: Cardinal.three_le
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: have : ↑(3 : ℕ) ≤ #α := by simpa using h
state_before: α✝ β : Type u
c : Cardinal.{?u.239315}
α : Type u_1
h : 3 ≤ #α
x y : α
⊢ ∃ z, z ≠ x ∧ z ≠ y
state_after: α✝ β : Type u
c : Cardinal.{?u.239315}
α : Type u_1
h : 3 ≤ #α
x y : α
this : ↑3 ≤ #α
⊢ ∃ z, z ≠ x ∧ z ≠ y

tactic: have : ↑(2 : ℕ) < #α := by rwa [← succ_le_iff, ← Cardinal.nat_succ]
state_before: α✝ β : Type u
c : Cardinal.{?u.239315}
α : Type u_1
h : 3 ≤ #α
x y : α
this : ↑3 ≤ #α
⊢ ∃ z, z ≠ x ∧ z ≠ y
state_after: α✝ β : Type u
c : Cardinal.{?u.239315}
α : Type u_1
h : 3 ≤ #α
x y : α
this✝ : ↑3 ≤ #α
this : ↑2 < #α
⊢ ∃ z, z ≠ x ∧ z ≠ y

tactic: have := exists_not_mem_of_length_lt [x, y] this
state_before: α✝ β : Type u
c : Cardinal.{?u.239315}
α : Type u_1
h : 3 ≤ #α
x y : α
this✝ : ↑3 ≤ #α
this : ↑2 < #α
⊢ ∃ z, z ≠ x ∧ z ≠ y
state_after: α✝ β : Type u
c : Cardinal.{?u.239315}
α : Type u_1
h : 3 ≤ #α
x y : α
this✝¹ : ↑3 ≤ #α
this✝ : ↑2 < #α
this : ∃ z, z ∉ [x, y]
⊢ ∃ z, z ≠ x ∧ z ≠ y

tactic: simpa [not_or] using this
state_before: α✝ β : Type u
c : Cardinal.{?u.239315}
α : Type u_1
h : 3 ≤ #α
x y : α
this✝¹ : ↑3 ≤ #α
this✝ : ↑2 < #α
this : ∃ z, z ∉ [x, y]
⊢ ∃ z, z ≠ x ∧ z ≠ y
state_after: no goals

tactic: simpa using h
state_before: α✝ β : Type u
c : Cardinal.{?u.239315}
α : Type u_1
h : 3 ≤ #α
x y : α
⊢ ↑3 ≤ #α
state_after: no goals

tactic: rwa [← succ_le_iff, ← Cardinal.nat_succ]
state_before: α✝ β : Type u
c : Cardinal.{?u.239315}
α : Type u_1
h : 3 ≤ #α
x y : α
this : ↑3 ≤ #α
⊢ ↑2 < #α
state_after: no goals
Theorem: Finset.filter_not
File: Mathlib/Data/Finset/Basic.lean

tactic: simp only [Bool.decide_coe, Bool.not_eq_true', mem_filter, and_comm, mem_sdiff, not_and_or,
  Bool.not_eq_true, and_or_left, and_not_self, or_false]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
p q : α → Prop
inst✝² : DecidablePred p
inst✝¹ : DecidablePred q
s✝ : Finset α
inst✝ : DecidableEq α
s : Finset α
a : α
⊢ a ∈ filter (fun a => ¬p a) s ↔ a ∈ s \ filter p s
state_after: no goals
Theorem: support_fderiv_subset
File: Mathlib/Analysis/Calculus/FDeriv/Basic.lean

tactic: rw [← not_imp_not, nmem_support]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
x✝ x : E
⊢ x ∈ support (fderiv 𝕜 f) → x ∈ tsupport f
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
x✝ x : E
⊢ x ∉ tsupport f → fderiv 𝕜 f x = 0

tactic: exact fderiv_of_not_mem_tsupport _
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
x✝ x : E
⊢ x ∉ tsupport f → fderiv 𝕜 f x = 0
state_after: no goals
Theorem: Finsupp.total_comapDomain
File: Mathlib/LinearAlgebra/Finsupp.lean

tactic: rw [Finsupp.total_apply]
state_before: α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
inst✝⁹ : Semiring R
inst✝⁸ : Semiring S
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
inst✝⁵ : AddCommMonoid N
inst✝⁴ : Module R N
inst✝³ : AddCommMonoid P
inst✝² : Module R P
α' : Type u_7
M' : Type u_8
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
v : α → M
v' : α' → M'
f : α → α'
l : α' →₀ R
hf : InjOn f (f ⁻¹' ↑l.support)
⊢ (Finsupp.total α M R v) (comapDomain f l hf) = ∑ i ∈ l.support.preimage f hf, l (f i) • v i
state_after: α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
inst✝⁹ : Semiring R
inst✝⁸ : Semiring S
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
inst✝⁵ : AddCommMonoid N
inst✝⁴ : Module R N
inst✝³ : AddCommMonoid P
inst✝² : Module R P
α' : Type u_7
M' : Type u_8
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
v : α → M
v' : α' → M'
f : α → α'
l : α' →₀ R
hf : InjOn f (f ⁻¹' ↑l.support)
⊢ ((comapDomain f l hf).sum fun i a => a • v i) = ∑ i ∈ l.support.preimage f hf, l (f i) • v i

tactic: rfl
state_before: α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
inst✝⁹ : Semiring R
inst✝⁸ : Semiring S
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
inst✝⁵ : AddCommMonoid N
inst✝⁴ : Module R N
inst✝³ : AddCommMonoid P
inst✝² : Module R P
α' : Type u_7
M' : Type u_8
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
v : α → M
v' : α' → M'
f : α → α'
l : α' →₀ R
hf : InjOn f (f ⁻¹' ↑l.support)
⊢ ((comapDomain f l hf).sum fun i a => a • v i) = ∑ i ∈ l.support.preimage f hf, l (f i) • v i
state_after: no goals
Theorem: NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring_injective
File: Mathlib/Algebra/Ring/Ext.lean

tactic: intro _ _ h
state_before: R : Type u
⊢ Function.Injective (@toNonUnitalNonAssocSemiring R)
state_after: R : Type u
a₁✝ a₂✝ : NonUnitalNonAssocRing R
h : toNonUnitalNonAssocSemiring = toNonUnitalNonAssocSemiring
⊢ a₁✝ = a₂✝

tactic: ext x y
state_before: R : Type u
a₁✝ a₂✝ : NonUnitalNonAssocRing R
h : toNonUnitalNonAssocSemiring = toNonUnitalNonAssocSemiring
⊢ a₁✝ = a₂✝
state_after: case h_add.h.h
R : Type u
a₁✝ a₂✝ : NonUnitalNonAssocRing R
h : toNonUnitalNonAssocSemiring = toNonUnitalNonAssocSemiring
x y : R
⊢ x + y = x + y

case h_mul.h.h
R : Type u
a₁✝ a₂✝ : NonUnitalNonAssocRing R
h : toNonUnitalNonAssocSemiring = toNonUnitalNonAssocSemiring
x y : R
⊢ x * y = x * y
Theorem: Set.Ioc_inter_Ioo_of_right_le
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: simp [and_assoc, @and_left_comm (x ≤ _),
  and_iff_right_iff_imp.2 fun h' => (le_of_lt h').trans h]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : LinearOrder β
f : α → β
a a₁ a₂ b b₁ b₂ c d : α
h : b₂ ≤ b₁
x : α
⊢ x ∈ Ioc a₁ b₁ ∩ Ioo a₂ b₂ ↔ x ∈ Ioo (max a₁ a₂) b₂
state_after: no goals
Theorem: FreeGroup.red_invRev_iff
File: Mathlib/GroupTheory/FreeGroup/Basic.lean

tactic: simpa only [invRev_invRev] using h.invRev
state_before: α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
h : Red (invRev L₁) (invRev L₂)
⊢ Red L₁ L₂
state_after: no goals
Theorem: PrimeSpectrum.vanishingIdeal_strict_anti_mono_iff
File: Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean

tactic: rw [Set.ssubset_def, vanishingIdeal_anti_mono_iff hs, vanishingIdeal_anti_mono_iff ht,
  lt_iff_le_not_le]
state_before: R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
s t : Set (PrimeSpectrum R)
hs : IsClosed s
ht : IsClosed t
⊢ s ⊂ t ↔ vanishingIdeal t < vanishingIdeal s
state_after: no goals
Theorem: Submodule.le_traceDual
File: Mathlib/RingTheory/DedekindDomain/Different.lean

tactic: rw [← le_traceDual_mul_iff, mul_one]
state_before: A : Type u_1
K : Type u_2
L : Type u
B : Type u_3
inst✝¹⁷ : CommRing A
inst✝¹⁶ : Field K
inst✝¹⁵ : CommRing B
inst✝¹⁴ : Field L
inst✝¹³ : Algebra A K
inst✝¹² : Algebra B L
inst✝¹¹ : Algebra A B
inst✝¹⁰ : Algebra K L
inst✝⁹ : Algebra A L
inst✝⁸ : IsScalarTower A K L
inst✝⁷ : IsScalarTower A B L
inst✝⁶ : IsDomain A
inst✝⁵ : IsDomain B
inst✝⁴ : IsFractionRing A K
inst✝³ : IsIntegralClosure B A L
inst✝² : IsFractionRing B L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
I J : Submodule B L
⊢ I ≤ Jᵛ ↔ I * J ≤ 1ᵛ
state_after: no goals
Theorem: PartialHomeomorph.contDiff_univBall
File: Mathlib/Analysis/InnerProductSpace/Calculus.lean

tactic: unfold univBall
state_before: n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
c : E
r : ℝ
⊢ ContDiff ℝ n ↑(univBall c r)
state_after: n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
c : E
r : ℝ
⊢ ContDiff ℝ n
    ↑(if h : 0 < r then univUnitBall.trans' (unitBallBall c r h) ⋯
      else (IsometryEquiv.vaddConst c).toHomeomorph.toPartialHomeomorph)

tactic: split_ifs with h
state_before: n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
c : E
r : ℝ
⊢ ContDiff ℝ n
    ↑(if h : 0 < r then univUnitBall.trans' (unitBallBall c r h) ⋯
      else (IsometryEquiv.vaddConst c).toHomeomorph.toPartialHomeomorph)
state_after: case pos
n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
c : E
r : ℝ
h : 0 < r
⊢ ContDiff ℝ n ↑(univUnitBall.trans' (unitBallBall c r h) ⋯)

case neg
n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
c : E
r : ℝ
h : ¬0 < r
⊢ ContDiff ℝ n ↑(IsometryEquiv.vaddConst c).toHomeomorph.toPartialHomeomorph

tactic: exact (contDiff_unitBallBall h).comp contDiff_univUnitBall
state_before: case pos
n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
c : E
r : ℝ
h : 0 < r
⊢ ContDiff ℝ n ↑(univUnitBall.trans' (unitBallBall c r h) ⋯)
state_after: no goals

tactic: exact contDiff_id.add contDiff_const
state_before: case neg
n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
c : E
r : ℝ
h : ¬0 < r
⊢ ContDiff ℝ n ↑(IsometryEquiv.vaddConst c).toHomeomorph.toPartialHomeomorph
state_after: no goals
Theorem: Stream'.corec_eq
File: Mathlib/Data/Stream/Init.lean

tactic: rw [corec_def, map_eq, head_iterate, tail_iterate]
state_before: α : Type u
β : Type v
δ : Type w
f : α → β
g : α → α
a : α
⊢ corec f g a = f a :: corec f g (g a)
state_after: α : Type u
β : Type v
δ : Type w
f : α → β
g : α → α
a : α
⊢ f a :: map f (iterate g (g a)) = f a :: corec f g (g a)

tactic: rfl
state_before: α : Type u
β : Type v
δ : Type w
f : α → β
g : α → α
a : α
⊢ f a :: map f (iterate g (g a)) = f a :: corec f g (g a)
state_after: no goals
Theorem: IsUnit.dvd_mul_right
File: Mathlib/Algebra/Divisibility/Units.lean

tactic: rcases hu with ⟨u, rfl⟩
state_before: α : Type u_1
inst✝ : Monoid α
a b u : α
hu : IsUnit u
⊢ a ∣ b * u ↔ a ∣ b
state_after: case intro
α : Type u_1
inst✝ : Monoid α
a b : α
u : αˣ
⊢ a ∣ b * ↑u ↔ a ∣ b

tactic: apply Units.dvd_mul_right
state_before: case intro
α : Type u_1
inst✝ : Monoid α
a b : α
u : αˣ
⊢ a ∣ b * ↑u ↔ a ∣ b
state_after: no goals
Theorem: Complex.hasSum_cosh
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean

tactic: simpa [mul_assoc, cos_mul_I] using hasSum_cos' (z * I)
state_before: z : ℂ
⊢ HasSum (fun n => z ^ (2 * n) / ↑(2 * n)!) (cosh z)
state_after: no goals
Theorem: MeromorphicAt.neg
File: Mathlib/Analysis/Analytic/Meromorphic.lean

tactic: convert (MeromorphicAt.const (-1 : 𝕜) x).smul hf using 1
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : MeromorphicAt f x
⊢ MeromorphicAt (-f) x
state_after: case h.e'_6
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : MeromorphicAt f x
⊢ -f = (fun x => -1) • f

tactic: ext1 z
state_before: case h.e'_6
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : MeromorphicAt f x
⊢ -f = (fun x => -1) • f
state_after: case h.e'_6.h
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : MeromorphicAt f x
z : 𝕜
⊢ (-f) z = ((fun x => -1) • f) z

tactic: simp only [Pi.neg_apply, Pi.smul_apply', neg_smul, one_smul]
state_before: case h.e'_6.h
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : MeromorphicAt f x
z : 𝕜
⊢ (-f) z = ((fun x => -1) • f) z
state_after: no goals