1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: NonUnitalStarAlgebra.toNonUnitalSubalgebra_bot
File: Mathlib/Algebra/Star/NonUnitalSubalgebra.lean

tactic: ext x
state_before: F : Type v'
R' : Type u'
R : Type u
A : Type v
B : Type w
C : Type w'
inst✝¹⁶ : CommSemiring R
inst✝¹⁵ : StarRing R
inst✝¹⁴ : NonUnitalSemiring A
inst✝¹³ : StarRing A
inst✝¹² : Module R A
inst✝¹¹ : IsScalarTower R A A
inst✝¹⁰ : SMulCommClass R A A
inst✝⁹ : StarModule R A
inst✝⁸ : NonUnitalSemiring B
inst✝⁷ : StarRing B
inst✝⁶ : Module R B
inst✝⁵ : IsScalarTower R B B
inst✝⁴ : SMulCommClass R B B
inst✝³ : StarModule R B
inst✝² : FunLike F A B
inst✝¹ : NonUnitalAlgHomClass F R A B
inst✝ : NonUnitalStarAlgHomClass F R A B
⊢ ⊥.toNonUnitalSubalgebra = ⊥
state_after: case h
F : Type v'
R' : Type u'
R : Type u
A : Type v
B : Type w
C : Type w'
inst✝¹⁶ : CommSemiring R
inst✝¹⁵ : StarRing R
inst✝¹⁴ : NonUnitalSemiring A
inst✝¹³ : StarRing A
inst✝¹² : Module R A
inst✝¹¹ : IsScalarTower R A A
inst✝¹⁰ : SMulCommClass R A A
inst✝⁹ : StarModule R A
inst✝⁸ : NonUnitalSemiring B
inst✝⁷ : StarRing B
inst✝⁶ : Module R B
inst✝⁵ : IsScalarTower R B B
inst✝⁴ : SMulCommClass R B B
inst✝³ : StarModule R B
inst✝² : FunLike F A B
inst✝¹ : NonUnitalAlgHomClass F R A B
inst✝ : NonUnitalStarAlgHomClass F R A B
x : A
⊢ x ∈ ⊥.toNonUnitalSubalgebra ↔ x ∈ ⊥

tactic: simp only [mem_bot, NonUnitalStarSubalgebra.mem_toNonUnitalSubalgebra, NonUnitalAlgebra.mem_bot]
state_before: case h
F : Type v'
R' : Type u'
R : Type u
A : Type v
B : Type w
C : Type w'
inst✝¹⁶ : CommSemiring R
inst✝¹⁵ : StarRing R
inst✝¹⁴ : NonUnitalSemiring A
inst✝¹³ : StarRing A
inst✝¹² : Module R A
inst✝¹¹ : IsScalarTower R A A
inst✝¹⁰ : SMulCommClass R A A
inst✝⁹ : StarModule R A
inst✝⁸ : NonUnitalSemiring B
inst✝⁷ : StarRing B
inst✝⁶ : Module R B
inst✝⁵ : IsScalarTower R B B
inst✝⁴ : SMulCommClass R B B
inst✝³ : StarModule R B
inst✝² : FunLike F A B
inst✝¹ : NonUnitalAlgHomClass F R A B
inst✝ : NonUnitalStarAlgHomClass F R A B
x : A
⊢ x ∈ ⊥.toNonUnitalSubalgebra ↔ x ∈ ⊥
state_after: no goals
Theorem: intervalIntegrable_iff_integrableOn_Ioo_of_le
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: rw [intervalIntegrable_iff_integrableOn_Icc_of_le hab, integrableOn_Icc_iff_integrableOn_Ioo]
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝¹ : NormedAddCommGroup E
f : ℝ → E
a b : ℝ
μ : Measure ℝ
inst✝ : NoAtoms μ
hab : a ≤ b
⊢ IntervalIntegrable f μ a b ↔ IntegrableOn f (Ioo a b) μ
state_after: no goals
Theorem: jacobiSym.quadratic_reciprocity
File: Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean

tactic: rw [← qrSign.neg_one_pow ha hb, qrSign.symm ha hb, quadratic_reciprocity' ha hb]
state_before: a b : ℕ
ha : Odd a
hb : Odd b
⊢ J(↑a | b) = (-1) ^ (a / 2 * (b / 2)) * J(↑b | a)
state_after: no goals
Theorem: Convex.affine_image
File: Mathlib/Analysis/Convex/Basic.lean

tactic: rintro _ ⟨x, hx, rfl⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t : Set E
f : E →ᵃ[𝕜] F
hs : Convex 𝕜 s
⊢ Convex 𝕜 (⇑f '' s)
state_after: case intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t : Set E
f : E →ᵃ[𝕜] F
hs : Convex 𝕜 s
x : E
hx : x ∈ s
⊢ StarConvex 𝕜 (f x) (⇑f '' s)

tactic: exact (hs hx).affine_image _
state_before: case intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t : Set E
f : E →ᵃ[𝕜] F
hs : Convex 𝕜 s
x : E
hx : x ∈ s
⊢ StarConvex 𝕜 (f x) (⇑f '' s)
state_after: no goals
Theorem: Real.cast_natAbs_eq_nnabs_cast
File: Mathlib/Data/NNReal/Basic.lean

tactic: ext
state_before: n : ℤ
⊢ ↑n.natAbs = nnabs ↑n
state_after: case a
n : ℤ
⊢ ↑↑n.natAbs = ↑(nnabs ↑n)

tactic: rw [NNReal.coe_natCast, Int.cast_natAbs, Real.coe_nnabs, Int.cast_abs]
state_before: case a
n : ℤ
⊢ ↑↑n.natAbs = ↑(nnabs ↑n)
state_after: no goals
Theorem: Fintype.card_le_card_of_leftTotal_unique
File: Mathlib/Combinatorics/Enumerative/DoubleCounting.lean

tactic: simpa using h₁
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Fintype α
inst✝ : Fintype β
r : α → β → Prop
h₁ : LeftTotal r
h₂ : LeftUnique r
⊢ ∀ a ∈ univ, ∃ b ∈ univ, r a b
state_after: no goals
Theorem: NNReal.IsConjExponent.conj_eq
File: Mathlib/Data/Real/ConjExponents.lean

tactic: simpa only [← coe_one, ← NNReal.coe_sub h.one_le, ← NNReal.coe_div, coe_inj] using h.coe.conj_eq
state_before: a b p q : ℝ≥0
h : p.IsConjExponent q
⊢ q = p / (p - 1)
state_after: no goals
Theorem: HurwitzZeta.completedHurwitzZetaEven_residue_zero
File: Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean

tactic: have h1 : Tendsto (fun s : ℂ ↦ s * _) (𝓝[≠] 0)
  (𝓝 (-(if a = 0 then 1 else 0))) := (hurwitzEvenFEPair a).Λ_residue_zero
state_before: a : UnitAddCircle
⊢ Tendsto (fun s => s * completedHurwitzZetaEven a s) (𝓝[≠] 0) (𝓝 (if a = 0 then -1 else 0))
state_after: a : UnitAddCircle
h1 : Tendsto (fun s => s * (hurwitzEvenFEPair a).Λ s) (𝓝[≠] 0) (𝓝 (-if a = 0 then 1 else 0))
⊢ Tendsto (fun s => s * completedHurwitzZetaEven a s) (𝓝[≠] 0) (𝓝 (if a = 0 then -1 else 0))

tactic: have : -(if a = 0 then (1 : ℂ) else 0) = (if a = 0 then -1 else 0) := by { split_ifs <;> simp }
state_before: a : UnitAddCircle
h1 : Tendsto (fun s => s * (hurwitzEvenFEPair a).Λ s) (𝓝[≠] 0) (𝓝 (-if a = 0 then 1 else 0))
⊢ Tendsto (fun s => s * completedHurwitzZetaEven a s) (𝓝[≠] 0) (𝓝 (if a = 0 then -1 else 0))
state_after: a : UnitAddCircle
h1 : Tendsto (fun s => s * (hurwitzEvenFEPair a).Λ s) (𝓝[≠] 0) (𝓝 (-if a = 0 then 1 else 0))
this : (-if a = 0 then 1 else 0) = if a = 0 then -1 else 0
⊢ Tendsto (fun s => s * completedHurwitzZetaEven a s) (𝓝[≠] 0) (𝓝 (if a = 0 then -1 else 0))

tactic: simp only [this, push_cast, one_mul] at h1
state_before: a : UnitAddCircle
h1 : Tendsto (fun s => s * (hurwitzEvenFEPair a).Λ s) (𝓝[≠] 0) (𝓝 (-if a = 0 then 1 else 0))
this : (-if a = 0 then 1 else 0) = if a = 0 then -1 else 0
⊢ Tendsto (fun s => s * completedHurwitzZetaEven a s) (𝓝[≠] 0) (𝓝 (if a = 0 then -1 else 0))
state_after: a : UnitAddCircle
this : (-if a = 0 then 1 else 0) = if a = 0 then -1 else 0
h1 : Tendsto (fun s => s * (hurwitzEvenFEPair a).Λ s) (𝓝[≠] 0) (𝓝 (if a = 0 then -1 else 0))
⊢ Tendsto (fun s => s * completedHurwitzZetaEven a s) (𝓝[≠] 0) (𝓝 (if a = 0 then -1 else 0))

tactic: refine (h1.comp <| zero_div (2 : ℂ) ▸ (tendsto_div_two_punctured_nhds 0)).congr (fun s ↦ ?_)
state_before: a : UnitAddCircle
this : (-if a = 0 then 1 else 0) = if a = 0 then -1 else 0
h1 : Tendsto (fun s => s * (hurwitzEvenFEPair a).Λ s) (𝓝[≠] 0) (𝓝 (if a = 0 then -1 else 0))
⊢ Tendsto (fun s => s * completedHurwitzZetaEven a s) (𝓝[≠] 0) (𝓝 (if a = 0 then -1 else 0))
state_after: a : UnitAddCircle
this : (-if a = 0 then 1 else 0) = if a = 0 then -1 else 0
h1 : Tendsto (fun s => s * (hurwitzEvenFEPair a).Λ s) (𝓝[≠] 0) (𝓝 (if a = 0 then -1 else 0))
s : ℂ
⊢ ((fun s => s * (hurwitzEvenFEPair a).Λ s) ∘ fun s => s / 2) s = s * completedHurwitzZetaEven a s

tactic: rw [completedHurwitzZetaEven, Function.comp_apply, div_mul_eq_mul_div, mul_div_assoc]
state_before: a : UnitAddCircle
this : (-if a = 0 then 1 else 0) = if a = 0 then -1 else 0
h1 : Tendsto (fun s => s * (hurwitzEvenFEPair a).Λ s) (𝓝[≠] 0) (𝓝 (if a = 0 then -1 else 0))
s : ℂ
⊢ ((fun s => s * (hurwitzEvenFEPair a).Λ s) ∘ fun s => s / 2) s = s * completedHurwitzZetaEven a s
state_after: no goals

tactic: split_ifs <;> simp
state_before: a : UnitAddCircle
h1 : Tendsto (fun s => s * (hurwitzEvenFEPair a).Λ s) (𝓝[≠] 0) (𝓝 (-if a = 0 then 1 else 0))
⊢ (-if a = 0 then 1 else 0) = if a = 0 then -1 else 0
state_after: no goals
Theorem: Set.kernImage_union_preimage
File: Mathlib/Data/Set/Lattice.lean

tactic: rw [kernImage_eq_compl, kernImage_eq_compl, compl_union, ← preimage_compl, image_inter_preimage,
    compl_inter, compl_compl]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
f : α → β
s : Set α
t : Set β
⊢ kernImage f (s ∪ f ⁻¹' t) = kernImage f s ∪ t
state_after: no goals
Theorem: PowerSeries.trunc_one
File: Mathlib/RingTheory/PowerSeries/Trunc.lean

tactic: rw [coeff_trunc, coeff_one, Polynomial.coeff_one]
state_before: R : Type u_1
inst✝ : Semiring R
n m : ℕ
⊢ (trunc (n + 1) 1).coeff m = Polynomial.coeff 1 m
state_after: R : Type u_1
inst✝ : Semiring R
n m : ℕ
⊢ (if m < n + 1 then if m = 0 then 1 else 0 else 0) = if m = 0 then 1 else 0

tactic: split_ifs with h _ h'
state_before: R : Type u_1
inst✝ : Semiring R
n m : ℕ
⊢ (if m < n + 1 then if m = 0 then 1 else 0 else 0) = if m = 0 then 1 else 0
state_after: case pos
R : Type u_1
inst✝ : Semiring R
n m : ℕ
h : m < n + 1
_ : m = 0
⊢ 1 = 1

case neg
R : Type u_1
inst✝ : Semiring R
n m : ℕ
h : m < n + 1
_ : ¬m = 0
⊢ 0 = 0

case pos
R : Type u_1
inst✝ : Semiring R
n m : ℕ
h : ¬m < n + 1
h' : m = 0
⊢ 0 = 1

case neg
R : Type u_1
inst✝ : Semiring R
n m : ℕ
h : ¬m < n + 1
h' : ¬m = 0
⊢ 0 = 0

tactic: rfl
state_before: case pos
R : Type u_1
inst✝ : Semiring R
n m : ℕ
h : m < n + 1
_ : m = 0
⊢ 1 = 1
state_after: no goals

tactic: rfl
state_before: case neg
R : Type u_1
inst✝ : Semiring R
n m : ℕ
h : m < n + 1
_ : ¬m = 0
⊢ 0 = 0
state_after: no goals

tactic: subst h'
state_before: case pos
R : Type u_1
inst✝ : Semiring R
n m : ℕ
h : ¬m < n + 1
h' : m = 0
⊢ 0 = 1
state_after: case pos
R : Type u_1
inst✝ : Semiring R
n : ℕ
h : ¬0 < n + 1
⊢ 0 = 1

tactic: simp at h
state_before: case pos
R : Type u_1
inst✝ : Semiring R
n : ℕ
h : ¬0 < n + 1
⊢ 0 = 1
state_after: no goals

tactic: rfl
state_before: case neg
R : Type u_1
inst✝ : Semiring R
n m : ℕ
h : ¬m < n + 1
h' : ¬m = 0
⊢ 0 = 0
state_after: no goals
Theorem: Pell.isPell_star
File: Mathlib/NumberTheory/PellMatiyasevic.lean

tactic: simp [IsPell, Zsqrtd.star_mk]
state_before: d x y : ℤ
⊢ IsPell { re := x, im := y } ↔ IsPell (star { re := x, im := y })
state_after: no goals
Theorem: CategoryTheory.GrothendieckTopology.arrow_max
File: Mathlib/CategoryTheory/Sites/Grothendieck.lean

tactic: rw [Covers, (Sieve.pullback_eq_top_iff_mem f).1 hf]
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : C
S✝ R : Sieve X
J : GrothendieckTopology C
f : Y ⟶ X
S : Sieve X
hf : S.arrows f
⊢ J.Covers S f
state_after: C : Type u
inst✝ : Category.{v, u} C
X Y : C
S✝ R : Sieve X
J : GrothendieckTopology C
f : Y ⟶ X
S : Sieve X
hf : S.arrows f
⊢ ⊤ ∈ J.sieves Y

tactic: apply J.top_mem
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : C
S✝ R : Sieve X
J : GrothendieckTopology C
f : Y ⟶ X
S : Sieve X
hf : S.arrows f
⊢ ⊤ ∈ J.sieves Y
state_after: no goals
Theorem: nhdsSet_exterior
File: Mathlib/Topology/AlexandrovDiscrete.lean

tactic: ext t
state_before: ι : Sort u_1
κ : ι → Sort u_2
α : Type u_3
β : Type u_4
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
s✝ t : Set α
a x y : α
inst✝¹ : AlexandrovDiscrete α
inst✝ : AlexandrovDiscrete β
s : Set α
⊢ 𝓝ˢ (exterior s) = 𝓝ˢ s
state_after: case a
ι : Sort u_1
κ : ι → Sort u_2
α : Type u_3
β : Type u_4
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
s✝ t✝ : Set α
a x y : α
inst✝¹ : AlexandrovDiscrete α
inst✝ : AlexandrovDiscrete β
s t : Set α
⊢ t ∈ 𝓝ˢ (exterior s) ↔ t ∈ 𝓝ˢ s

tactic: simp_rw [← exterior_subset_iff_mem_nhdsSet, exterior_exterior]
state_before: case a
ι : Sort u_1
κ : ι → Sort u_2
α : Type u_3
β : Type u_4
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
s✝ t✝ : Set α
a x y : α
inst✝¹ : AlexandrovDiscrete α
inst✝ : AlexandrovDiscrete β
s t : Set α
⊢ t ∈ 𝓝ˢ (exterior s) ↔ t ∈ 𝓝ˢ s
state_after: no goals
Theorem: Function.Commute.iterate_pos_lt_of_map_lt
File: Mathlib/Order/Iterate.lean

tactic: apply hf.seq_pos_lt_seq_of_le_of_lt hn
state_before: α : Type u_1
inst✝ : Preorder α
f g : α → α
h : Commute f g
hf : Monotone f
hg : StrictMono g
x : α
hx : f x < g x
n : ℕ
hn : 0 < n
⊢ f^[n] x < g^[n] x
state_after: case h₀
α : Type u_1
inst✝ : Preorder α
f g : α → α
h : Commute f g
hf : Monotone f
hg : StrictMono g
x : α
hx : f x < g x
n : ℕ
hn : 0 < n
⊢ f^[0] x ≤ g^[0] x

case hx
α : Type u_1
inst✝ : Preorder α
f g : α → α
h : Commute f g
hf : Monotone f
hg : StrictMono g
x : α
hx : f x < g x
n : ℕ
hn : 0 < n
⊢ ∀ (k : ℕ), k < n → f^[k + 1] x ≤ f (f^[k] x)

case hy
α : Type u_1
inst✝ : Preorder α
f g : α → α
h : Commute f g
hf : Monotone f
hg : StrictMono g
x : α
hx : f x < g x
n : ℕ
hn : 0 < n
⊢ ∀ (k : ℕ), k < n → f (g^[k] x) < g^[k + 1] x

tactic: rfl
state_before: case h₀
α : Type u_1
inst✝ : Preorder α
f g : α → α
h : Commute f g
hf : Monotone f
hg : StrictMono g
x : α
hx : f x < g x
n : ℕ
hn : 0 < n
⊢ f^[0] x ≤ g^[0] x
state_after: no goals

tactic: intros
state_before: case hx
α : Type u_1
inst✝ : Preorder α
f g : α → α
h : Commute f g
hf : Monotone f
hg : StrictMono g
x : α
hx : f x < g x
n : ℕ
hn : 0 < n
⊢ ∀ (k : ℕ), k < n → f^[k + 1] x ≤ f (f^[k] x)
state_after: case hx
α : Type u_1
inst✝ : Preorder α
f g : α → α
h : Commute f g
hf : Monotone f
hg : StrictMono g
x : α
hx : f x < g x
n : ℕ
hn : 0 < n
k✝ : ℕ
a✝ : k✝ < n
⊢ f^[k✝ + 1] x ≤ f (f^[k✝] x)

tactic: rw [iterate_succ_apply']
state_before: case hx
α : Type u_1
inst✝ : Preorder α
f g : α → α
h : Commute f g
hf : Monotone f
hg : StrictMono g
x : α
hx : f x < g x
n : ℕ
hn : 0 < n
k✝ : ℕ
a✝ : k✝ < n
⊢ f^[k✝ + 1] x ≤ f (f^[k✝] x)
state_after: no goals

tactic: intros
state_before: case hy
α : Type u_1
inst✝ : Preorder α
f g : α → α
h : Commute f g
hf : Monotone f
hg : StrictMono g
x : α
hx : f x < g x
n : ℕ
hn : 0 < n
⊢ ∀ (k : ℕ), k < n → f (g^[k] x) < g^[k + 1] x
state_after: case hy
α : Type u_1
inst✝ : Preorder α
f g : α → α
h : Commute f g
hf : Monotone f
hg : StrictMono g
x : α
hx : f x < g x
n : ℕ
hn : 0 < n
k✝ : ℕ
a✝ : k✝ < n
⊢ f (g^[k✝] x) < g^[k✝ + 1] x

tactic: simp [h.iterate_right _ _, hg.iterate _ hx]
state_before: case hy
α : Type u_1
inst✝ : Preorder α
f g : α → α
h : Commute f g
hf : Monotone f
hg : StrictMono g
x : α
hx : f x < g x
n : ℕ
hn : 0 < n
k✝ : ℕ
a✝ : k✝ < n
⊢ f (g^[k✝] x) < g^[k✝ + 1] x
state_after: no goals
Theorem: Subgroup.IsComplement.rightCosetEquivalence_equiv_snd
File: Mathlib/GroupTheory/Complement.lean

tactic: rw [RightCosetEquivalence, rightCoset_eq_iff, equiv_snd_eq_inv_mul]
state_before: G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
hST : IsComplement S T
hHT : IsComplement (↑H) T
hSK : IsComplement S ↑K
g : G
⊢ RightCosetEquivalence (↑H) g ↑(hHT.equiv g).2
state_after: G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
hST : IsComplement S T
hHT : IsComplement (↑H) T
hSK : IsComplement S ↑K
g : G
⊢ (↑(hHT.equiv g).1)⁻¹ * g * g⁻¹ ∈ H

tactic: simp
state_before: G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
hST : IsComplement S T
hHT : IsComplement (↑H) T
hSK : IsComplement S ↑K
g : G
⊢ (↑(hHT.equiv g).1)⁻¹ * g * g⁻¹ ∈ H
state_after: no goals
Theorem: Ordinal.lsub_eq_zero_iff
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: refine ⟨fun h => ⟨fun i => ?_⟩, fun h => @lsub_empty _ h _⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
f : ι → Ordinal.{max u v}
⊢ lsub f = 0 ↔ IsEmpty ι
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
f : ι → Ordinal.{max u v}
h : lsub f = 0
i : ι
⊢ False

tactic: have := @lsub_pos.{_, v} _ ⟨i⟩ f
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
f : ι → Ordinal.{max u v}
h : lsub f = 0
i : ι
⊢ False
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
f : ι → Ordinal.{max u v}
h : lsub f = 0
i : ι
this : 0 < lsub f
⊢ False

tactic: rw [h] at this
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
f : ι → Ordinal.{max u v}
h : lsub f = 0
i : ι
this : 0 < lsub f
⊢ False
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
f : ι → Ordinal.{max u v}
h : lsub f = 0
i : ι
this : 0 < 0
⊢ False

tactic: exact this.false
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
f : ι → Ordinal.{max u v}
h : lsub f = 0
i : ι
this : 0 < 0
⊢ False
state_after: no goals
Theorem: aeSeq.aeSeq_eq_fun_of_mem_aeSeqSet
File: Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean

tactic: simp only [aeSeq_eq_mk_of_mem_aeSeqSet hf hx i, mk_eq_fun_of_mem_aeSeqSet hf hx i]
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
f : ι → α → β
μ : Measure α
p : α → (ι → β) → Prop
hf : ∀ (i : ι), AEMeasurable (f i) μ
x : α
hx : x ∈ aeSeqSet hf p
i : ι
⊢ aeSeq hf p i x = f i x
state_after: no goals
Theorem: ENNReal.mul_rpow_of_nonneg
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: simp [hz.not_lt, mul_rpow_eq_ite]
state_before: x y : ℝ≥0∞
z : ℝ
hz : 0 ≤ z
⊢ (x * y) ^ z = x ^ z * y ^ z
state_after: no goals
Theorem: IsFractionRing.div_surjective
File: Mathlib/RingTheory/Localization/FractionRing.lean

tactic: rwa [mk'_eq_div] at h
state_before: R : Type u_1
inst✝¹¹ : CommRing R
M : Submonoid R
S : Type u_2
inst✝¹⁰ : CommRing S
inst✝⁹ : Algebra R S
P : Type u_3
inst✝⁸ : CommRing P
A : Type u_4
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
K : Type u_5
B : Type u_6
inst✝⁵ : CommRing B
inst✝⁴ : IsDomain B
inst✝³ : Field K
L : Type u_7
inst✝² : Field L
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
g : A →+* L
z : K
x y : A
hy : y ∈ nonZeroDivisors A
h : mk' K x ⟨y, hy⟩ = z
⊢ (algebraMap A K) x / (algebraMap A K) y = z
state_after: no goals
Theorem: Real.deriv_tan_sub_id
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean

tactic: simpa using (hasDerivAt_tan h).add (hasDerivAt_id x).neg
state_before: x✝ x : ℝ
h : cos x ≠ 0
⊢ HasDerivAt (fun y => tan y - y) (1 / cos x ^ 2 - 1) x
state_after: no goals
Theorem: SimpleGraph.Walk.IsPath.dropUntil
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: rwa [← take_spec _ h] at hc
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u✝ v✝ w✝ x y : V
inst✝ : DecidableEq V
u v w : V
p : G.Walk v w
hc : p.IsPath
h : u ∈ p.support
⊢ (?m.135396.append (p.dropUntil u h)).IsPath
state_after: no goals
Theorem: DirectSum.mul_eq_sum_support_ghas_mul
File: Mathlib/Algebra/DirectSum/Ring.lean

tactic: simp only [mul_eq_dfinsupp_sum, DFinsupp.sum, Finset.sum_product]
state_before: ι : Type u_1
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → AddCommMonoid (A i)
inst✝² : AddMonoid ι
inst✝¹ : GSemiring A
inst✝ : (i : ι) → (x : A i) → Decidable (x ≠ 0)
a a' : ⨁ (i : ι), A i
⊢ a * a' =
    ∑ ij ∈ DFinsupp.support a ×ˢ DFinsupp.support a', (of A (ij.1 + ij.2)) (GradedMonoid.GMul.mul (a ij.1) (a' ij.2))
state_after: no goals
Theorem: IsCoprime.prod_left_iff
File: Mathlib/RingTheory/Coprime/Lemmas.lean

tactic: classical
refine Finset.induction_on t (iff_of_true isCoprime_one_left fun _ ↦ by simp) fun b t hbt ih ↦ ?_
rw [Finset.prod_insert hbt, IsCoprime.mul_left_iff, ih, Finset.forall_mem_insert]
state_before: R : Type u
I : Type v
inst✝ : CommSemiring R
x y z : R
s : I → R
t : Finset I
⊢ IsCoprime (∏ i ∈ t, s i) x ↔ ∀ i ∈ t, IsCoprime (s i) x
state_after: no goals

tactic: refine Finset.induction_on t (iff_of_true isCoprime_one_left fun _ ↦ by simp) fun b t hbt ih ↦ ?_
state_before: R : Type u
I : Type v
inst✝ : CommSemiring R
x y z : R
s : I → R
t : Finset I
⊢ IsCoprime (∏ i ∈ t, s i) x ↔ ∀ i ∈ t, IsCoprime (s i) x
state_after: R : Type u
I : Type v
inst✝ : CommSemiring R
x y z : R
s : I → R
t✝ : Finset I
b : I
t : Finset I
hbt : b ∉ t
ih : IsCoprime (∏ i ∈ t, s i) x ↔ ∀ i ∈ t, IsCoprime (s i) x
⊢ IsCoprime (∏ i ∈ insert b t, s i) x ↔ ∀ i ∈ insert b t, IsCoprime (s i) x

tactic: rw [Finset.prod_insert hbt, IsCoprime.mul_left_iff, ih, Finset.forall_mem_insert]
state_before: R : Type u
I : Type v
inst✝ : CommSemiring R
x y z : R
s : I → R
t✝ : Finset I
b : I
t : Finset I
hbt : b ∉ t
ih : IsCoprime (∏ i ∈ t, s i) x ↔ ∀ i ∈ t, IsCoprime (s i) x
⊢ IsCoprime (∏ i ∈ insert b t, s i) x ↔ ∀ i ∈ insert b t, IsCoprime (s i) x
state_after: no goals

tactic: simp
state_before: R : Type u
I : Type v
inst✝ : CommSemiring R
x y z : R
s : I → R
t : Finset I
x✝ : I
⊢ x✝ ∈ ∅ → IsCoprime (s x✝) x
state_after: no goals
Theorem: CategoryTheory.IsFiltered.coeq₃_condition₁
File: Mathlib/CategoryTheory/Filtered/Basic.lean

tactic: simp only [coeq₃Hom, ← Category.assoc, coeq_condition f g]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : IsFilteredOrEmpty C
j₁ j₂ : C
f g h : j₁ ⟶ j₂
⊢ f ≫ coeq₃Hom f g h = g ≫ coeq₃Hom f g h
state_after: no goals
Theorem: contDiffOn_iff_continuousOn_differentiableOn_deriv
File: Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean

tactic: simp only [contDiffOn_iff_continuousOn_differentiableOn hs, iteratedFDerivWithin_eq_equiv_comp,
  LinearIsometryEquiv.comp_continuousOn_iff, LinearIsometryEquiv.comp_differentiableOn_iff]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n✝ : ℕ
f : 𝕜 → F
s : Set 𝕜
x : 𝕜
n : ℕ∞
hs : UniqueDiffOn 𝕜 s
⊢ ContDiffOn 𝕜 n f s ↔
    (∀ (m : ℕ), ↑m ≤ n → ContinuousOn (iteratedDerivWithin m f s) s) ∧
      ∀ (m : ℕ), ↑m < n → DifferentiableOn 𝕜 (iteratedDerivWithin m f s) s
state_after: no goals
Theorem: TensorPower.algebraMap₀_mul_algebraMap₀
File: Mathlib/LinearAlgebra/TensorPower.lean

tactic: rw [← smul_eq_mul, LinearEquiv.map_smul]
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
r s : R
⊢ (cast R M ⋯) (GradedMonoid.GMul.mul (algebraMap₀ r) (algebraMap₀ s)) = algebraMap₀ (r * s)
state_after: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
r s : R
⊢ (cast R M ⋯) (GradedMonoid.GMul.mul (algebraMap₀ r) (algebraMap₀ s)) = r • algebraMap₀ s

tactic: exact algebraMap₀_mul r (@algebraMap₀ R M _ _ _ s)
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
r s : R
⊢ (cast R M ⋯) (GradedMonoid.GMul.mul (algebraMap₀ r) (algebraMap₀ s)) = r • algebraMap₀ s
state_after: no goals
Theorem: Computation.orElse_think
File: Mathlib/Data/Seq/Computation.lean

tactic: unfold_projs
state_before: α : Type u
β : Type v
γ : Type w
c₁ c₂ : Computation α
⊢ (HOrElse.hOrElse c₁.think fun x => c₂.think).destruct = Sum.inr (HOrElse.hOrElse c₁ fun x => c₂)
state_after: α : Type u
β : Type v
γ : Type w
c₁ c₂ : Computation α
⊢ (c₁.think.orElse fun x => c₂.think).destruct = Sum.inr (c₁.orElse fun x => c₂)

tactic: simp [orElse]
state_before: α : Type u
β : Type v
γ : Type w
c₁ c₂ : Computation α
⊢ (c₁.think.orElse fun x => c₂.think).destruct = Sum.inr (c₁.orElse fun x => c₂)
state_after: no goals