1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: disjoint_sup_left
File: Mathlib/Order/Disjoint.lean

tactic: simp only [disjoint_iff, inf_sup_right, sup_eq_bot_iff]
state_before: α : Type u_1
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
a b c : α
⊢ Disjoint (a ⊔ b) c ↔ Disjoint a c ∧ Disjoint b c
state_after: no goals
Theorem: MeasureTheory.Lp.mem_Lp_iff_memℒp
File: Mathlib/MeasureTheory/Function/LpSpace.lean

tactic: simp [mem_Lp_iff_snorm_lt_top, Memℒp, f.stronglyMeasurable.aestronglyMeasurable]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α →ₘ[μ] E
⊢ f ∈ Lp E p μ ↔ Memℒp (↑f) p μ
state_after: no goals
Theorem: List.map_subset
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: simp only [mem_map]
state_before: α : Type u_1
β : Type u_2
l₁ l₂ : List α
f : α → β
H : l₁ ⊆ l₂
x : β
⊢ x ∈ map f l₁ → x ∈ map f l₂
state_after: α : Type u_1
β : Type u_2
l₁ l₂ : List α
f : α → β
H : l₁ ⊆ l₂
x : β
⊢ (∃ a, a ∈ l₁ ∧ f a = x) → ∃ a, a ∈ l₂ ∧ f a = x

tactic: exact .imp fun a => .imp_left (@H _)
state_before: α : Type u_1
β : Type u_2
l₁ l₂ : List α
f : α → β
H : l₁ ⊆ l₂
x : β
⊢ (∃ a, a ∈ l₁ ∧ f a = x) → ∃ a, a ∈ l₂ ∧ f a = x
state_after: no goals
Theorem: ModuleCat.homology'_ext'
File: Mathlib/Algebra/Homology/ModuleCat.lean

tactic: apply homology'_ext _ w
state_before: R : Type v
inst✝ : Ring R
ι : Type u_1
c : ComplexShape ι
C D : HomologicalComplex (ModuleCat R) c
M : ModuleCat R
i : ι
h k : C.homology' i ⟶ M
w : ∀ (x : ↥(LinearMap.ker (C.dFrom i))), h (toHomology' x) = k (toHomology' x)
⊢ h = k
state_after: no goals
Theorem: Set.algebraMap_mem_center
File: Mathlib/Algebra/Algebra/Subalgebra/Basic.lean

tactic: simp only [Semigroup.mem_center_iff, commutes, forall_const]
state_before: R : Type u
A : Type v
B : Type w
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
inst✝¹ : Semiring B
inst✝ : Algebra R B
S : Subalgebra R A
r : R
⊢ (algebraMap R A) r ∈ Set.center A
state_after: no goals
Theorem: Nat.fib_two_mul_add_one
File: Mathlib/Data/Nat/Fib/Basic.lean

tactic: rw [two_mul, fib_add]
state_before: n : ℕ
⊢ fib (2 * n + 1) = fib (n + 1) ^ 2 + fib n ^ 2
state_after: n : ℕ
⊢ fib n * fib n + fib (n + 1) * fib (n + 1) = fib (n + 1) ^ 2 + fib n ^ 2

tactic: ring
state_before: n : ℕ
⊢ fib n * fib n + fib (n + 1) * fib (n + 1) = fib (n + 1) ^ 2 + fib n ^ 2
state_after: no goals
Theorem: ZMod.χ₄_nat_one_mod_four
File: Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean

tactic: rw [χ₄_nat_mod_four, hn]
state_before: n : ℕ
hn : n % 4 = 1
⊢ χ₄ ↑n = 1
state_after: n : ℕ
hn : n % 4 = 1
⊢ χ₄ ↑1 = 1

tactic: rfl
state_before: n : ℕ
hn : n % 4 = 1
⊢ χ₄ ↑1 = 1
state_after: no goals
Theorem: algebra_compatible_smul
File: Mathlib/Algebra/Algebra/Basic.lean

tactic: rw [← one_smul A m, ← smul_assoc, Algebra.smul_def, mul_one, one_smul]
state_before: R : Type u_1
inst✝¹⁰ : CommSemiring R
A : Type u_2
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
M : Type u_3
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module A M
inst✝⁵ : Module R M
inst✝⁴ : IsScalarTower R A M
N : Type u_4
inst✝³ : AddCommMonoid N
inst✝² : Module A N
inst✝¹ : Module R N
inst✝ : IsScalarTower R A N
r : R
m : M
⊢ r • m = (algebraMap R A) r • m
state_after: no goals
Theorem: Algebra.sInf_toSubsemiring
File: Mathlib/Algebra/Algebra/Subalgebra/Basic.lean

tactic: simp
state_before: R : Type u
A : Type v
B : Type w
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
inst✝¹ : Semiring B
inst✝ : Algebra R B
S : Set (Subalgebra R A)
⊢ ↑(sInf S).toSubsemiring = ↑(sInf (Subalgebra.toSubsemiring '' S))
state_after: no goals
Theorem: exists_one_lt_mul_of_lt
File: Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean

tactic: obtain ⟨c, hc⟩ := le_iff_exists_mul.1 h.le
state_before: α : Type u
inst✝ : CanonicallyOrderedCommMonoid α
a b c d : α
h : a < b
⊢ ∃ c x, a * c = b
state_after: case intro
α : Type u
inst✝ : CanonicallyOrderedCommMonoid α
a b c✝ d : α
h : a < b
c : α
hc : b = a * c
⊢ ∃ c x, a * c = b

tactic: refine ⟨c, one_lt_iff_ne_one.2 ?_, hc.symm⟩
state_before: case intro
α : Type u
inst✝ : CanonicallyOrderedCommMonoid α
a b c✝ d : α
h : a < b
c : α
hc : b = a * c
⊢ ∃ c x, a * c = b
state_after: case intro
α : Type u
inst✝ : CanonicallyOrderedCommMonoid α
a b c✝ d : α
h : a < b
c : α
hc : b = a * c
⊢ c ≠ 1

tactic: rintro rfl
state_before: case intro
α : Type u
inst✝ : CanonicallyOrderedCommMonoid α
a b c✝ d : α
h : a < b
c : α
hc : b = a * c
⊢ c ≠ 1
state_after: case intro
α : Type u
inst✝ : CanonicallyOrderedCommMonoid α
a b c d : α
h : a < b
hc : b = a * 1
⊢ False

tactic: simp [hc, lt_irrefl] at h
state_before: case intro
α : Type u
inst✝ : CanonicallyOrderedCommMonoid α
a b c d : α
h : a < b
hc : b = a * 1
⊢ False
state_after: no goals
Theorem: PiTensorProduct.map_add_smul_aux
File: Mathlib/LinearAlgebra/PiTensorProduct.lean

tactic: ext j
state_before: ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝¹² : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝¹¹ : (i : ι) → AddCommMonoid (s i)
inst✝¹⁰ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
E : Type u_9
inst✝⁷ : AddCommMonoid E
inst✝⁶ : Module R E
F : Type u_10
inst✝⁵ : AddCommMonoid F
t : ι → Type u_11
t' : ι → Type u_12
inst✝⁴ : (i : ι) → AddCommMonoid (t i)
inst✝³ : (i : ι) → Module R (t i)
inst✝² : (i : ι) → AddCommMonoid (t' i)
inst✝¹ : (i : ι) → Module R (t' i)
g : (i : ι) → t i →ₗ[R] t' i
f : (i : ι) → s i →ₗ[R] t i
inst✝ : DecidableEq ι
i : ι
x : (i : ι) → s i
u : s i →ₗ[R] t i
⊢ (fun j => (update f i u j) (x j)) = update (fun j => (f j) (x j)) i (u (x i))
state_after: case h
ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝¹² : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝¹¹ : (i : ι) → AddCommMonoid (s i)
inst✝¹⁰ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
E : Type u_9
inst✝⁷ : AddCommMonoid E
inst✝⁶ : Module R E
F : Type u_10
inst✝⁵ : AddCommMonoid F
t : ι → Type u_11
t' : ι → Type u_12
inst✝⁴ : (i : ι) → AddCommMonoid (t i)
inst✝³ : (i : ι) → Module R (t i)
inst✝² : (i : ι) → AddCommMonoid (t' i)
inst✝¹ : (i : ι) → Module R (t' i)
g : (i : ι) → t i →ₗ[R] t' i
f : (i : ι) → s i →ₗ[R] t i
inst✝ : DecidableEq ι
i : ι
x : (i : ι) → s i
u : s i →ₗ[R] t i
j : ι
⊢ (update f i u j) (x j) = update (fun j => (f j) (x j)) i (u (x i)) j

tactic: exact apply_update (fun i F => F (x i)) f i u j
state_before: case h
ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝¹² : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝¹¹ : (i : ι) → AddCommMonoid (s i)
inst✝¹⁰ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
E : Type u_9
inst✝⁷ : AddCommMonoid E
inst✝⁶ : Module R E
F : Type u_10
inst✝⁵ : AddCommMonoid F
t : ι → Type u_11
t' : ι → Type u_12
inst✝⁴ : (i : ι) → AddCommMonoid (t i)
inst✝³ : (i : ι) → Module R (t i)
inst✝² : (i : ι) → AddCommMonoid (t' i)
inst✝¹ : (i : ι) → Module R (t' i)
g : (i : ι) → t i →ₗ[R] t' i
f : (i : ι) → s i →ₗ[R] t i
inst✝ : DecidableEq ι
i : ι
x : (i : ι) → s i
u : s i →ₗ[R] t i
j : ι
⊢ (update f i u j) (x j) = update (fun j => (f j) (x j)) i (u (x i)) j
state_after: no goals
Theorem: Multiset.gcd_add
File: Mathlib/Algebra/GCDMonoid/Multiset.lean

tactic: simp [gcd]
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : NormalizedGCDMonoid α
s₁ s₂ : Multiset α
⊢ (s₁ + s₂).gcd = fold GCDMonoid.gcd (GCDMonoid.gcd 0 0) (s₁ + s₂)
state_after: no goals
Theorem: Filter.Tendsto.continuousAt_of_equicontinuousAt
File: Mathlib/Topology/UniformSpace/Equicontinuity.lean

tactic: rw [← continuousWithinAt_univ, ← equicontinuousWithinAt_univ, tendsto_pi_nhds] at *
state_before: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
l : Filter ι
inst✝ : l.NeBot
F : ι → X → α
f : X → α
x₀ : X
h₁ : Tendsto F l (𝓝 f)
h₂ : EquicontinuousAt F x₀
⊢ ContinuousAt f x₀
state_after: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
l : Filter ι
inst✝ : l.NeBot
F : ι → X → α
f : X → α
x₀ : X
h₁ : ∀ (x : X), Tendsto (fun i => F i x) l (𝓝 (f x))
h₂ : EquicontinuousWithinAt F univ x₀
⊢ ContinuousWithinAt f univ x₀

tactic: exact continuousWithinAt_of_equicontinuousWithinAt (fun x _ ↦ h₁ x) (h₁ x₀) h₂
state_before: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
l : Filter ι
inst✝ : l.NeBot
F : ι → X → α
f : X → α
x₀ : X
h₁ : ∀ (x : X), Tendsto (fun i => F i x) l (𝓝 (f x))
h₂ : EquicontinuousWithinAt F univ x₀
⊢ ContinuousWithinAt f univ x₀
state_after: no goals
Theorem: Finsupp.support_mapRange_of_injective
File: Mathlib/Data/Finsupp/Defs.lean

tactic: ext
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✝¹ : Zero N
inst✝ : Zero P
e : M → N
he0 : e 0 = 0
f : ι →₀ M
he : Injective e
⊢ (mapRange e he0 f).support = f.support
state_after: case a
α : 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✝¹ : Zero N
inst✝ : Zero P
e : M → N
he0 : e 0 = 0
f : ι →₀ M
he : Injective e
a✝ : ι
⊢ a✝ ∈ (mapRange e he0 f).support ↔ a✝ ∈ f.support

tactic: simp only [Finsupp.mem_support_iff, Ne, Finsupp.mapRange_apply]
state_before: case a
α : 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✝¹ : Zero N
inst✝ : Zero P
e : M → N
he0 : e 0 = 0
f : ι →₀ M
he : Injective e
a✝ : ι
⊢ a✝ ∈ (mapRange e he0 f).support ↔ a✝ ∈ f.support
state_after: case a
α : 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✝¹ : Zero N
inst✝ : Zero P
e : M → N
he0 : e 0 = 0
f : ι →₀ M
he : Injective e
a✝ : ι
⊢ ¬e (f a✝) = 0 ↔ ¬f a✝ = 0

tactic: exact he.ne_iff' he0
state_before: case a
α : 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✝¹ : Zero N
inst✝ : Zero P
e : M → N
he0 : e 0 = 0
f : ι →₀ M
he : Injective e
a✝ : ι
⊢ ¬e (f a✝) = 0 ↔ ¬f a✝ = 0
state_after: no goals
Theorem: Finmap.extract_eq_lookup_erase
File: Mathlib/Data/Finmap.lean

tactic: simp [extract]
state_before: α : Type u
β : α → Type v
inst✝ : DecidableEq α
a : α
s✝ : Finmap β
s : AList β
⊢ extract a ⟦s⟧ = (lookup a ⟦s⟧, erase a ⟦s⟧)
state_after: no goals
Theorem: DiscreteValuationRing.exists_irreducible
File: Mathlib/RingTheory/DiscreteValuationRing/Basic.lean

tactic: simp_rw [irreducible_iff_uniformizer]
state_before: R : Type u
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
⊢ ∃ ϖ, Irreducible ϖ
state_after: R : Type u
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
⊢ ∃ ϖ, maximalIdeal R = span {ϖ}

tactic: exact (IsPrincipalIdealRing.principal <| maximalIdeal R).principal
state_before: R : Type u
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
⊢ ∃ ϖ, maximalIdeal R = span {ϖ}
state_after: no goals
Theorem: Complex.iter_deriv_exp
File: Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean

tactic: rw [iterate_succ_apply, deriv_exp, iter_deriv_exp n]
state_before: 𝕜 : Type u_1
inst✝¹ : NontriviallyNormedField 𝕜
inst✝ : NormedAlgebra 𝕜 ℂ
n : ℕ
⊢ deriv^[n + 1] cexp = cexp
state_after: no goals
Theorem: Function.Periodic.mul
File: Mathlib/Algebra/Periodic.lean

tactic: simp_all
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f g : α → β
c c₁ c₂ x : α
inst✝¹ : Add α
inst✝ : Mul β
hf : Periodic f c
hg : Periodic g c
⊢ Periodic (f * g) c
state_after: no goals
Theorem: ArithmeticFunction.cardFactors_mul
File: Mathlib/NumberTheory/ArithmeticFunction.lean

tactic: rw [cardFactors_apply, cardFactors_apply, cardFactors_apply, ← Multiset.coe_card, ← factors_eq,
  UniqueFactorizationMonoid.normalizedFactors_mul m0 n0, factors_eq, factors_eq,
  Multiset.card_add, Multiset.coe_card, Multiset.coe_card]
state_before: R : Type u_1
m n : ℕ
m0 : m ≠ 0
n0 : n ≠ 0
⊢ Ω (m * n) = Ω m + Ω n
state_after: no goals
Theorem: Topology.IsUpperSet.closure_eq_lowerClosure
File: Mathlib/Topology/Order/UpperLowerSetTopology.lean

tactic: rw [subset_antisymm_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : Topology.IsUpperSet α
s✝ s : Set α
⊢ closure s = ↑(lowerClosure s)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : Topology.IsUpperSet α
s✝ s : Set α
⊢ closure s ⊆ ↑(lowerClosure s) ∧ ↑(lowerClosure s) ⊆ closure s

tactic: refine ⟨?_, lowerClosure_min subset_closure (isClosed_iff_isLower.1 isClosed_closure)⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : Topology.IsUpperSet α
s✝ s : Set α
⊢ closure s ⊆ ↑(lowerClosure s) ∧ ↑(lowerClosure s) ⊆ closure s
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : Topology.IsUpperSet α
s✝ s : Set α
⊢ closure s ⊆ ↑(lowerClosure s)

tactic: apply closure_minimal subset_lowerClosure _
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : Topology.IsUpperSet α
s✝ s : Set α
⊢ closure s ⊆ ↑(lowerClosure s)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : Topology.IsUpperSet α
s✝ s : Set α
⊢ IsClosed ↑(lowerClosure s)

tactic: rw [isClosed_iff_isLower]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : Topology.IsUpperSet α
s✝ s : Set α
⊢ IsClosed ↑(lowerClosure s)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : Topology.IsUpperSet α
s✝ s : Set α
⊢ IsLowerSet ↑(lowerClosure s)

tactic: exact LowerSet.lower (lowerClosure s)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : Topology.IsUpperSet α
s✝ s : Set α
⊢ IsLowerSet ↑(lowerClosure s)
state_after: no goals
Theorem: Cardinal.succ_aleph0
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

tactic: rw [← aleph_zero, ← aleph_succ, Ordinal.succ_zero]
state_before: ⊢ succ ℵ₀ = aleph 1
state_after: no goals
Theorem: Num.add_ofNat'
File: Mathlib/Data/Num/Lemmas.lean

tactic: induction n
state_before: α : Type u_1
m n : ℕ
⊢ ofNat' (m + n) = ofNat' m + ofNat' n
state_after: case zero
α : Type u_1
m : ℕ
⊢ ofNat' (m + 0) = ofNat' m + ofNat' 0

case succ
α : Type u_1
m n✝ : ℕ
a✝ : ofNat' (m + n✝) = ofNat' m + ofNat' n✝
⊢ ofNat' (m + (n✝ + 1)) = ofNat' m + ofNat' (n✝ + 1)

tactic: simp only [Nat.add_zero, ofNat'_zero, add_zero]
state_before: case zero
α : Type u_1
m : ℕ
⊢ ofNat' (m + 0) = ofNat' m + ofNat' 0
state_after: no goals

tactic: simp only [Nat.add_succ, Nat.add_zero, ofNat'_succ, add_one, add_succ, *]
state_before: case succ
α : Type u_1
m n✝ : ℕ
a✝ : ofNat' (m + n✝) = ofNat' m + ofNat' n✝
⊢ ofNat' (m + (n✝ + 1)) = ofNat' m + ofNat' (n✝ + 1)
state_after: no goals
Theorem: WithTop.add_coe_eq_top_iff
File: Mathlib/Algebra/Order/Monoid/WithTop.lean

tactic: simp
state_before: α : Type u
β : Type v
inst✝ : Add α
a b c d : WithTop α
x✝ y✝ : α
x : WithTop α
y : α
⊢ x + ↑y = ⊤ ↔ x = ⊤
state_after: no goals
Theorem: ProjectiveSpectrum.le_iff_mem_closure
File: Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean

tactic: rw [← as_ideal_le_as_ideal, ← zeroLocus_vanishingIdeal_eq_closure, mem_zeroLocus,
  vanishingIdeal_singleton]
state_before: R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
x y : ProjectiveSpectrum 𝒜
⊢ x ≤ y ↔ y ∈ closure {x}
state_after: R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
x y : ProjectiveSpectrum 𝒜
⊢ x.asHomogeneousIdeal ≤ y.asHomogeneousIdeal ↔ ↑x.asHomogeneousIdeal ⊆ ↑y.asHomogeneousIdeal

tactic: simp only [as_ideal_le_as_ideal, coe_subset_coe]
state_before: R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
x y : ProjectiveSpectrum 𝒜
⊢ x.asHomogeneousIdeal ≤ y.asHomogeneousIdeal ↔ ↑x.asHomogeneousIdeal ⊆ ↑y.asHomogeneousIdeal
state_after: no goals
Theorem: Set.image2_subset_iff_right
File: Mathlib/Data/Set/NAry.lean

tactic: simp_rw [image2_subset_iff, image_subset_iff, subset_def, mem_preimage, @forall₂_swap α]
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
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a a' : α
b b' : β
c c' : γ
d d' : δ
⊢ image2 f s t ⊆ u ↔ ∀ b ∈ t, (fun a => f a b) '' s ⊆ u
state_after: no goals
Theorem: Multiset.measurable_prod'
File: Mathlib/MeasureTheory/Group/Arithmetic.lean

tactic: rcases l with ⟨l⟩
state_before: α✝ : Type u_1
M : Type u_2
ι : Type u_3
α : Type u_4
inst✝² : CommMonoid M
inst✝¹ : MeasurableSpace M
inst✝ : MeasurableMul₂ M
m : MeasurableSpace α
μ : Measure α
f : ι → α → M
l : Multiset (α → M)
hl : ∀ f ∈ l, Measurable f
⊢ Measurable l.prod
state_after: case mk
α✝ : Type u_1
M : Type u_2
ι : Type u_3
α : Type u_4
inst✝² : CommMonoid M
inst✝¹ : MeasurableSpace M
inst✝ : MeasurableMul₂ M
m : MeasurableSpace α
μ : Measure α
f : ι → α → M
l✝ : Multiset (α → M)
l : List (α → M)
hl : ∀ f ∈ Quot.mk Setoid.r l, Measurable f
⊢ Measurable (prod (Quot.mk Setoid.r l))

tactic: simpa using l.measurable_prod' (by simpa using hl)
state_before: case mk
α✝ : Type u_1
M : Type u_2
ι : Type u_3
α : Type u_4
inst✝² : CommMonoid M
inst✝¹ : MeasurableSpace M
inst✝ : MeasurableMul₂ M
m : MeasurableSpace α
μ : Measure α
f : ι → α → M
l✝ : Multiset (α → M)
l : List (α → M)
hl : ∀ f ∈ Quot.mk Setoid.r l, Measurable f
⊢ Measurable (prod (Quot.mk Setoid.r l))
state_after: no goals

tactic: simpa using hl
state_before: α✝ : Type u_1
M : Type u_2
ι : Type u_3
α : Type u_4
inst✝² : CommMonoid M
inst✝¹ : MeasurableSpace M
inst✝ : MeasurableMul₂ M
m : MeasurableSpace α
μ : Measure α
f : ι → α → M
l✝ : Multiset (α → M)
l : List (α → M)
hl : ∀ f ∈ Quot.mk Setoid.r l, Measurable f
⊢ ∀ f ∈ l, Measurable f
state_after: no goals
Theorem: Set.OrdConnected.interior
File: Mathlib/Topology/Algebra/Order/UpperLower.lean

tactic: rw [← h.upperClosure_inter_lowerClosure, interior_inter]
state_before: α : Type u_1
inst✝² : TopologicalSpace α
inst✝¹ : Preorder α
inst✝ : HasUpperLowerClosure α
s : Set α
h : s.OrdConnected
⊢ (interior s).OrdConnected
state_after: α : Type u_1
inst✝² : TopologicalSpace α
inst✝¹ : Preorder α
inst✝ : HasUpperLowerClosure α
s : Set α
h : s.OrdConnected
⊢ (interior ↑(upperClosure s) ∩ interior ↑(lowerClosure s)).OrdConnected

tactic: exact
  (upperClosure s).upper.interior.ordConnected.inter (lowerClosure s).lower.interior.ordConnected
state_before: α : Type u_1
inst✝² : TopologicalSpace α
inst✝¹ : Preorder α
inst✝ : HasUpperLowerClosure α
s : Set α
h : s.OrdConnected
⊢ (interior ↑(upperClosure s) ∩ interior ↑(lowerClosure s)).OrdConnected
state_after: no goals
Theorem: HNNExtension.NormalWord.t_pow_smul_eq_unitsSMul
File: Mathlib/GroupTheory/HNNExtension.lean

tactic: rcases Int.units_eq_one_or u with (rfl | rfl) <;>
  simp [instHSMul, SMul.smul, MulAction.toEndHom, Equiv.Perm.inv_def]
state_before: G : Type u_1
inst✝³ : Group G
A B : Subgroup G
φ : ↥A ≃* ↥B
H : Type u_2
inst✝² : Group H
M : Type u_3
inst✝¹ : Monoid M
d : TransversalPair G A B
inst✝ : DecidableEq G
u : ℤˣ
w : NormalWord d
⊢ t ^ ↑u • w = unitsSMul φ u w
state_after: no goals
Theorem: hammingNorm_smul
File: Mathlib/InformationTheory/Hamming.lean

tactic: simp_rw [smul_zero]
state_before: α : Type u_1
ι : Type u_2
β : ι → Type u_3
inst✝⁶ : Fintype ι
inst✝⁵ : (i : ι) → DecidableEq (β i)
γ : ι → Type u_4
inst✝⁴ : (i : ι) → DecidableEq (γ i)
inst✝³ : (i : ι) → Zero (β i)
inst✝² : (i : ι) → Zero (γ i)
inst✝¹ : Zero α
inst✝ : (i : ι) → SMulWithZero α (β i)
k : α
hk : ∀ (i : ι), IsSMulRegular (β i) k
x : (i : ι) → β i
i : ι
⊢ (fun i c => k • c) i 0 = 0
state_after: no goals
Theorem: Polynomial.mkDerivation_one_eq_derivative'
File: Mathlib/Algebra/Polynomial/Derivation.lean

tactic: ext : 1
state_before: R : Type u_1
A : Type u_2
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid A
inst✝² : Module R A
inst✝¹ : Module R[X] A
inst✝ : IsScalarTower R R[X] A
⊢ (mkDerivation R) 1 = derivative'
state_after: case h
R : Type u_1
A : Type u_2
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid A
inst✝² : Module R A
inst✝¹ : Module R[X] A
inst✝ : IsScalarTower R R[X] A
⊢ ((mkDerivation R) 1) X = derivative' X

tactic: simp [derivative']
state_before: case h
R : Type u_1
A : Type u_2
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid A
inst✝² : Module R A
inst✝¹ : Module R[X] A
inst✝ : IsScalarTower R R[X] A
⊢ ((mkDerivation R) 1) X = derivative' X
state_after: no goals
Theorem: Submodule.dualAnnihilator_top
File: Mathlib/LinearAlgebra/Dual.lean

tactic: rw [eq_bot_iff]
state_before: R : Type u
M : Type v
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
W : Submodule R M
⊢ ⊤.dualAnnihilator = ⊥
state_after: R : Type u
M : Type v
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
W : Submodule R M
⊢ ⊤.dualAnnihilator ≤ ⊥

tactic: intro v
state_before: R : Type u
M : Type v
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
W : Submodule R M
⊢ ⊤.dualAnnihilator ≤ ⊥
state_after: R : Type u
M : Type v
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
W : Submodule R M
v : Module.Dual R M
⊢ v ∈ ⊤.dualAnnihilator → v ∈ ⊥

tactic: simp_rw [mem_dualAnnihilator, mem_bot, mem_top, forall_true_left]
state_before: R : Type u
M : Type v
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
W : Submodule R M
v : Module.Dual R M
⊢ v ∈ ⊤.dualAnnihilator → v ∈ ⊥
state_after: R : Type u
M : Type v
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
W : Submodule R M
v : Module.Dual R M
⊢ (∀ (w : M), v w = 0) → v = 0

tactic: exact fun h => LinearMap.ext h
state_before: R : Type u
M : Type v
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
W : Submodule R M
v : Module.Dual R M
⊢ (∀ (w : M), v w = 0) → v = 0
state_after: no goals
Theorem: CategoryTheory.Limits.biproduct.ι_π_ne
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

tactic: simp [biproduct.ι_π, h]
state_before: J : Type w
K : Type u_1
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
f : J → C
inst✝ : HasBiproduct f
j j' : J
h : j ≠ j'
⊢ ι f j ≫ π f j' = 0
state_after: no goals
Theorem: image_le_kernel
File: Mathlib/Algebra/Homology/ImageToKernel.lean

tactic: simp
state_before: ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasZeroMorphisms V
A B C : V
f : A ⟶ B
inst✝¹ : HasImage f
g : B ⟶ C
inst✝ : HasKernel g
w : f ≫ g = 0
⊢ kernel.lift g f w ≫ kernel.ι g = f
state_after: no goals
Theorem: WeierstrassCurve.Φ_zero
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean

tactic: rw [Φ, ΨSq_zero, mul_zero, zero_sub, zero_add, preΨ_one, one_mul, zero_sub, preΨ_neg, preΨ_one,
  neg_one_mul, neg_neg, if_pos even_zero]
state_before: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
⊢ W.Φ 0 = 1
state_after: no goals