1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: ArithmeticFunction.coe_zeta_smul_apply
File: Mathlib/NumberTheory/ArithmeticFunction.lean

tactic: rw [smul_apply]
state_before: R : Type u_1
M : Type u_2
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
f : ArithmeticFunction M
x : ℕ
⊢ (↑ζ • f) x = ∑ i ∈ x.divisors, f i
state_after: R : Type u_1
M : Type u_2
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
f : ArithmeticFunction M
x : ℕ
⊢ ∑ x ∈ x.divisorsAntidiagonal, ↑ζ x.1 • f x.2 = ∑ i ∈ x.divisors, f i

tactic: trans ∑ i ∈ divisorsAntidiagonal x, f i.snd
state_before: R : Type u_1
M : Type u_2
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
f : ArithmeticFunction M
x : ℕ
⊢ ∑ x ∈ x.divisorsAntidiagonal, ↑ζ x.1 • f x.2 = ∑ i ∈ x.divisors, f i
state_after: R : Type u_1
M : Type u_2
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
f : ArithmeticFunction M
x : ℕ
⊢ ∑ x ∈ x.divisorsAntidiagonal, ↑ζ x.1 • f x.2 = ∑ i ∈ x.divisorsAntidiagonal, f i.2

R : Type u_1
M : Type u_2
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
f : ArithmeticFunction M
x : ℕ
⊢ ∑ i ∈ x.divisorsAntidiagonal, f i.2 = ∑ i ∈ x.divisors, f i

tactic: refine sum_congr rfl fun i hi => ?_
state_before: R : Type u_1
M : Type u_2
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
f : ArithmeticFunction M
x : ℕ
⊢ ∑ x ∈ x.divisorsAntidiagonal, ↑ζ x.1 • f x.2 = ∑ i ∈ x.divisorsAntidiagonal, f i.2
state_after: R : Type u_1
M : Type u_2
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
f : ArithmeticFunction M
x : ℕ
i : ℕ × ℕ
hi : i ∈ x.divisorsAntidiagonal
⊢ ↑ζ i.1 • f i.2 = f i.2

tactic: rcases mem_divisorsAntidiagonal.1 hi with ⟨rfl, h⟩
state_before: R : Type u_1
M : Type u_2
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
f : ArithmeticFunction M
x : ℕ
i : ℕ × ℕ
hi : i ∈ x.divisorsAntidiagonal
⊢ ↑ζ i.1 • f i.2 = f i.2
state_after: case intro
R : Type u_1
M : Type u_2
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
f : ArithmeticFunction M
i : ℕ × ℕ
hi : i ∈ (i.1 * i.2).divisorsAntidiagonal
h : i.1 * i.2 ≠ 0
⊢ ↑ζ i.1 • f i.2 = f i.2

tactic: rw [natCoe_apply, zeta_apply_ne (left_ne_zero_of_mul h), cast_one, one_smul]
state_before: case intro
R : Type u_1
M : Type u_2
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
f : ArithmeticFunction M
i : ℕ × ℕ
hi : i ∈ (i.1 * i.2).divisorsAntidiagonal
h : i.1 * i.2 ≠ 0
⊢ ↑ζ i.1 • f i.2 = f i.2
state_after: no goals

tactic: rw [← map_div_left_divisors, sum_map, Function.Embedding.coeFn_mk]
state_before: R : Type u_1
M : Type u_2
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
f : ArithmeticFunction M
x : ℕ
⊢ ∑ i ∈ x.divisorsAntidiagonal, f i.2 = ∑ i ∈ x.divisors, f i
state_after: no goals
Theorem: Set.strictMonoOn_iff_strictMono
File: Mathlib/Data/Set/Basic.lean

tactic: simp [StrictMono, StrictMonoOn]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s s₁ s₂ t t₁ t₂ u : Set α
inst✝¹ : Preorder α
inst✝ : Preorder β
f : α → β
⊢ StrictMonoOn f s ↔ StrictMono fun a => f ↑a
state_after: no goals
Theorem: nilpotent_iff_finite_ascending_central_series
File: Mathlib/GroupTheory/Nilpotent.lean

tactic: constructor
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
⊢ Group.IsNilpotent G ↔ ∃ n H, IsAscendingCentralSeries H ∧ H n = ⊤
state_after: case mp
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
⊢ Group.IsNilpotent G → ∃ n H, IsAscendingCentralSeries H ∧ H n = ⊤

case mpr
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
⊢ (∃ n H, IsAscendingCentralSeries H ∧ H n = ⊤) → Group.IsNilpotent G

tactic: rintro ⟨n, nH⟩
state_before: case mp
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
⊢ Group.IsNilpotent G → ∃ n H, IsAscendingCentralSeries H ∧ H n = ⊤
state_after: case mp.mk.intro
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
nH : upperCentralSeries G n = ⊤
⊢ ∃ n H, IsAscendingCentralSeries H ∧ H n = ⊤

tactic: exact ⟨_, _, upperCentralSeries_isAscendingCentralSeries G, nH⟩
state_before: case mp.mk.intro
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
nH : upperCentralSeries G n = ⊤
⊢ ∃ n H, IsAscendingCentralSeries H ∧ H n = ⊤
state_after: no goals

tactic: rintro ⟨n, H, hH, hn⟩
state_before: case mpr
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
⊢ (∃ n H, IsAscendingCentralSeries H ∧ H n = ⊤) → Group.IsNilpotent G
state_after: case mpr.intro.intro.intro
G : Type u_1
inst✝¹ : Group G
H✝ : Subgroup G
inst✝ : H✝.Normal
n : ℕ
H : ℕ → Subgroup G
hH : IsAscendingCentralSeries H
hn : H n = ⊤
⊢ Group.IsNilpotent G

tactic: use n
state_before: case mpr.intro.intro.intro
G : Type u_1
inst✝¹ : Group G
H✝ : Subgroup G
inst✝ : H✝.Normal
n : ℕ
H : ℕ → Subgroup G
hH : IsAscendingCentralSeries H
hn : H n = ⊤
⊢ Group.IsNilpotent G
state_after: case h
G : Type u_1
inst✝¹ : Group G
H✝ : Subgroup G
inst✝ : H✝.Normal
n : ℕ
H : ℕ → Subgroup G
hH : IsAscendingCentralSeries H
hn : H n = ⊤
⊢ upperCentralSeries G n = ⊤

tactic: rw [eq_top_iff, ← hn]
state_before: case h
G : Type u_1
inst✝¹ : Group G
H✝ : Subgroup G
inst✝ : H✝.Normal
n : ℕ
H : ℕ → Subgroup G
hH : IsAscendingCentralSeries H
hn : H n = ⊤
⊢ upperCentralSeries G n = ⊤
state_after: case h
G : Type u_1
inst✝¹ : Group G
H✝ : Subgroup G
inst✝ : H✝.Normal
n : ℕ
H : ℕ → Subgroup G
hH : IsAscendingCentralSeries H
hn : H n = ⊤
⊢ H n ≤ upperCentralSeries G n

tactic: exact ascending_central_series_le_upper H hH n
state_before: case h
G : Type u_1
inst✝¹ : Group G
H✝ : Subgroup G
inst✝ : H✝.Normal
n : ℕ
H : ℕ → Subgroup G
hH : IsAscendingCentralSeries H
hn : H n = ⊤
⊢ H n ≤ upperCentralSeries G n
state_after: no goals
Theorem: Mathlib.Tactic.ComputeDegree.coeff_intCast_ite
File: Mathlib/Tactic/ComputeDegree.lean

tactic: simp only [← C_eq_intCast, coeff_C, Int.cast_ite, Int.cast_zero]
state_before: R : Type u_1
inst✝ : Ring R
n : ℕ
a : ℤ
⊢ (↑a).coeff n = ↑(if n = 0 then a else 0)
state_after: no goals
Theorem: minimals_eq_minimals_of_subset_of_forall
File: Mathlib/Order/Minimal.lean

tactic: refine Set.ext fun a ↦ ⟨fun ⟨has, hmin⟩ ↦ ⟨?_,fun b hbt ↦ hmin (hts hbt)⟩,
  fun ⟨hat, hmin⟩ ↦ ⟨hts hat, fun b hbs hba ↦ ?_⟩⟩
state_before: α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
s t : Set α
a b x : α
inst✝¹ : IsAntisymm α r
inst✝ : IsTrans α r
hts : t ⊆ s
h : ∀ x ∈ s, ∃ y ∈ t, r y x
⊢ minimals r s = minimals r t
state_after: case refine_1
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
s t : Set α
a✝ b x : α
inst✝¹ : IsAntisymm α r
inst✝ : IsTrans α r
hts : t ⊆ s
h : ∀ x ∈ s, ∃ y ∈ t, r y x
a : α
x✝ : a ∈ minimals r s
has : a ∈ s
hmin : ∀ ⦃b : α⦄, b ∈ s → r b a → r a b
⊢ a ∈ t

case refine_2
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
s t : Set α
a✝ b✝ x : α
inst✝¹ : IsAntisymm α r
inst✝ : IsTrans α r
hts : t ⊆ s
h : ∀ x ∈ s, ∃ y ∈ t, r y x
a : α
x✝ : a ∈ minimals r t
hat : a ∈ t
hmin : ∀ ⦃b : α⦄, b ∈ t → r b a → r a b
b : α
hbs : b ∈ s
hba : r b a
⊢ r a b

tactic: obtain ⟨b', hb't, hb'b⟩ := h b hbs
state_before: case refine_2
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
s t : Set α
a✝ b✝ x : α
inst✝¹ : IsAntisymm α r
inst✝ : IsTrans α r
hts : t ⊆ s
h : ∀ x ∈ s, ∃ y ∈ t, r y x
a : α
x✝ : a ∈ minimals r t
hat : a ∈ t
hmin : ∀ ⦃b : α⦄, b ∈ t → r b a → r a b
b : α
hbs : b ∈ s
hba : r b a
⊢ r a b
state_after: case refine_2.intro.intro
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
s t : Set α
a✝ b✝ x : α
inst✝¹ : IsAntisymm α r
inst✝ : IsTrans α r
hts : t ⊆ s
h : ∀ x ∈ s, ∃ y ∈ t, r y x
a : α
x✝ : a ∈ minimals r t
hat : a ∈ t
hmin : ∀ ⦃b : α⦄, b ∈ t → r b a → r a b
b : α
hbs : b ∈ s
hba : r b a
b' : α
hb't : b' ∈ t
hb'b : r b' b
⊢ r a b

tactic: rwa [antisymm (hmin hb't (Trans.trans hb'b hba)) (Trans.trans hb'b hba)]
state_before: case refine_2.intro.intro
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
s t : Set α
a✝ b✝ x : α
inst✝¹ : IsAntisymm α r
inst✝ : IsTrans α r
hts : t ⊆ s
h : ∀ x ∈ s, ∃ y ∈ t, r y x
a : α
x✝ : a ∈ minimals r t
hat : a ∈ t
hmin : ∀ ⦃b : α⦄, b ∈ t → r b a → r a b
b : α
hbs : b ∈ s
hba : r b a
b' : α
hb't : b' ∈ t
hb'b : r b' b
⊢ r a b
state_after: no goals

tactic: obtain ⟨a', ha', haa'⟩ := h _ has
state_before: case refine_1
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
s t : Set α
a✝ b x : α
inst✝¹ : IsAntisymm α r
inst✝ : IsTrans α r
hts : t ⊆ s
h : ∀ x ∈ s, ∃ y ∈ t, r y x
a : α
x✝ : a ∈ minimals r s
has : a ∈ s
hmin : ∀ ⦃b : α⦄, b ∈ s → r b a → r a b
⊢ a ∈ t
state_after: case refine_1.intro.intro
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
s t : Set α
a✝ b x : α
inst✝¹ : IsAntisymm α r
inst✝ : IsTrans α r
hts : t ⊆ s
h : ∀ x ∈ s, ∃ y ∈ t, r y x
a : α
x✝ : a ∈ minimals r s
has : a ∈ s
hmin : ∀ ⦃b : α⦄, b ∈ s → r b a → r a b
a' : α
ha' : a' ∈ t
haa' : r a' a
⊢ a ∈ t

tactic: rwa [antisymm (hmin (hts ha') haa') haa']
state_before: case refine_1.intro.intro
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
s t : Set α
a✝ b x : α
inst✝¹ : IsAntisymm α r
inst✝ : IsTrans α r
hts : t ⊆ s
h : ∀ x ∈ s, ∃ y ∈ t, r y x
a : α
x✝ : a ∈ minimals r s
has : a ∈ s
hmin : ∀ ⦃b : α⦄, b ∈ s → r b a → r a b
a' : α
ha' : a' ∈ t
haa' : r a' a
⊢ a ∈ t
state_after: no goals
Theorem: Rel.preimage_bot
File: Mathlib/Data/Rel.lean

tactic: rw [preimage, inv_bot, image_bot]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
s : Set β
⊢ ⊥.preimage s = ∅
state_after: no goals
Theorem: List.prod_map_hom
File: Mathlib/Algebra/BigOperators/Group/List.lean

tactic: rw [← prod_hom, map_map]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G✝ : Type u_7
inst✝⁴ : Monoid M
inst✝³ : Monoid N
inst✝² : Monoid P
l l₁ l₂ : List M
a : M
L : List ι
f : ι → M
G : Type u_8
inst✝¹ : FunLike G M N
inst✝ : MonoidHomClass G M N
g : G
⊢ (map (⇑g ∘ f) L).prod = g (map f L).prod
state_after: no goals
Theorem: Monoid.CoprodI.Word.smul_induction
File: Mathlib/GroupTheory/CoprodI.lean

tactic: induction w using consRecOn with
| h_empty => exact h_empty
| h_cons _ _ _ _ _ ih =>
  rw [cons_eq_smul]
  exact h_smul _ _ _ ih
state_before: ι : Type u_1
M : ι → Type u_2
inst✝³ : (i : ι) → Monoid (M i)
N : Type u_3
inst✝² : Monoid N
inst✝¹ : (i : ι) → DecidableEq (M i)
inst✝ : DecidableEq ι
C : Word M → Prop
h_empty : C empty
h_smul : ∀ (i : ι) (m : M i) (w : Word M), C w → C (of m • w)
w : Word M
⊢ C w
state_after: no goals

tactic: exact h_empty
state_before: case h_empty
ι : Type u_1
M : ι → Type u_2
inst✝³ : (i : ι) → Monoid (M i)
N : Type u_3
inst✝² : Monoid N
inst✝¹ : (i : ι) → DecidableEq (M i)
inst✝ : DecidableEq ι
C : Word M → Prop
h_empty : C empty
h_smul : ∀ (i : ι) (m : M i) (w : Word M), C w → C (of m • w)
⊢ C empty
state_after: no goals

tactic: rw [cons_eq_smul]
state_before: case h_cons
ι : Type u_1
M : ι → Type u_2
inst✝³ : (i : ι) → Monoid (M i)
N : Type u_3
inst✝² : Monoid N
inst✝¹ : (i : ι) → DecidableEq (M i)
inst✝ : DecidableEq ι
C : Word M → Prop
h_empty : C empty
h_smul : ∀ (i : ι) (m : M i) (w : Word M), C w → C (of m • w)
i✝ : ι
m✝ : M i✝
w✝ : Word M
h1✝ : w✝.fstIdx ≠ some i✝
h2✝ : m✝ ≠ 1
ih : C w✝
⊢ C (cons m✝ w✝ h1✝ h2✝)
state_after: case h_cons
ι : Type u_1
M : ι → Type u_2
inst✝³ : (i : ι) → Monoid (M i)
N : Type u_3
inst✝² : Monoid N
inst✝¹ : (i : ι) → DecidableEq (M i)
inst✝ : DecidableEq ι
C : Word M → Prop
h_empty : C empty
h_smul : ∀ (i : ι) (m : M i) (w : Word M), C w → C (of m • w)
i✝ : ι
m✝ : M i✝
w✝ : Word M
h1✝ : w✝.fstIdx ≠ some i✝
h2✝ : m✝ ≠ 1
ih : C w✝
⊢ C (of m✝ • w✝)

tactic: exact h_smul _ _ _ ih
state_before: case h_cons
ι : Type u_1
M : ι → Type u_2
inst✝³ : (i : ι) → Monoid (M i)
N : Type u_3
inst✝² : Monoid N
inst✝¹ : (i : ι) → DecidableEq (M i)
inst✝ : DecidableEq ι
C : Word M → Prop
h_empty : C empty
h_smul : ∀ (i : ι) (m : M i) (w : Word M), C w → C (of m • w)
i✝ : ι
m✝ : M i✝
w✝ : Word M
h1✝ : w✝.fstIdx ≠ some i✝
h2✝ : m✝ ≠ 1
ih : C w✝
⊢ C (of m✝ • w✝)
state_after: no goals
Theorem: MeasureTheory.SimpleFunc.approx_comp
File: Mathlib/MeasureTheory/Function/SimpleFunc.lean

tactic: rw [approx_apply _ hf, approx_apply _ (hf.comp hg), Function.comp_apply]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁸ : MeasurableSpace α
K : Type u_5
inst✝⁷ : SemilatticeSup β
inst✝⁶ : OrderBot β
inst✝⁵ : Zero β
inst✝⁴ : TopologicalSpace β
inst✝³ : OrderClosedTopology β
inst✝² : MeasurableSpace β
inst✝¹ : OpensMeasurableSpace β
inst✝ : MeasurableSpace γ
i : ℕ → β
f : γ → β
g : α → γ
n : ℕ
a : α
hf : Measurable f
hg : Measurable g
⊢ ↑(approx i (f ∘ g) n) a = ↑(approx i f n) (g a)
state_after: no goals
Theorem: YoungDiagram.colLen_transpose
File: Mathlib/Combinatorics/Young/YoungDiagram.lean

tactic: simp [rowLen, colLen]
state_before: μ : YoungDiagram
j : ℕ
⊢ μ.transpose.colLen j = μ.rowLen j
state_after: no goals
Theorem: mul_div_mul_right_eq_div
File: Mathlib/Algebra/Group/Basic.lean

tactic: rw [div_mul_eq_div_div_swap]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Group G
a✝ b✝ c✝ d : G
n : ℤ
a b c : G
⊢ a * c / (b * c) = a / b
state_after: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Group G
a✝ b✝ c✝ d : G
n : ℤ
a b c : G
⊢ a * c / c / b = a / b

tactic: simp only [mul_left_inj, eq_self_iff_true, mul_div_cancel_right]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Group G
a✝ b✝ c✝ d : G
n : ℤ
a b c : G
⊢ a * c / c / b = a / b
state_after: no goals
Theorem: Subtype.exists_pi_extension
File: Mathlib/Tactic/Lift.lean

tactic: haveI : DecidablePred p := fun i ↦ Classical.propDecidable (p i)
state_before: ι : Sort u_1
α : ι → Sort u_2
ne : ∀ (i : ι), Nonempty (α i)
p : ι → Prop
f : (i : Subtype p) → α i.val
⊢ ∃ g, (fun i => g i.val) = f
state_after: ι : Sort u_1
α : ι → Sort u_2
ne : ∀ (i : ι), Nonempty (α i)
p : ι → Prop
f : (i : Subtype p) → α i.val
this : DecidablePred p
⊢ ∃ g, (fun i => g i.val) = f

tactic: exact ⟨fun i => if hi : p i then f ⟨i, hi⟩ else Classical.choice (ne i),
  funext fun i ↦ dif_pos i.2⟩
state_before: ι : Sort u_1
α : ι → Sort u_2
ne : ∀ (i : ι), Nonempty (α i)
p : ι → Prop
f : (i : Subtype p) → α i.val
this : DecidablePred p
⊢ ∃ g, (fun i => g i.val) = f
state_after: no goals
Theorem: Polynomial.eq_C_content_mul_primPart
File: Mathlib/RingTheory/Polynomial/Content.lean

tactic: by_cases h : p = 0
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p : R[X]
⊢ p = C p.content * p.primPart
state_after: case pos
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p : R[X]
h : p = 0
⊢ p = C p.content * p.primPart

case neg
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p : R[X]
h : ¬p = 0
⊢ p = C p.content * p.primPart

tactic: rw [primPart, if_neg h, ← Classical.choose_spec (C_content_dvd p)]
state_before: case neg
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p : R[X]
h : ¬p = 0
⊢ p = C p.content * p.primPart
state_after: no goals

tactic: simp [h]
state_before: case pos
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p : R[X]
h : p = 0
⊢ p = C p.content * p.primPart
state_after: no goals
Theorem: SimpleGraph.Subgraph.neighborSet_sInf
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: ext
state_before: ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : G.Subgraph
a b : V
s : Set G.Subgraph
v : V
⊢ (sInf s).neighborSet v = (⋂ G' ∈ s, G'.neighborSet v) ∩ G.neighborSet v
state_after: case h
ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : G.Subgraph
a b : V
s : Set G.Subgraph
v x✝ : V
⊢ x✝ ∈ (sInf s).neighborSet v ↔ x✝ ∈ (⋂ G' ∈ s, G'.neighborSet v) ∩ G.neighborSet v

tactic: simp
state_before: case h
ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : G.Subgraph
a b : V
s : Set G.Subgraph
v x✝ : V
⊢ x✝ ∈ (sInf s).neighborSet v ↔ x✝ ∈ (⋂ G' ∈ s, G'.neighborSet v) ∩ G.neighborSet v
state_after: no goals
Theorem: String.Pos.Valid.le_endPos
File: .lake/packages/batteries/Batteries/Data/String/Lemmas.lean

tactic: simp [Nat.le_add_right]
state_before: cs cs' : List Char
⊢ { byteIdx := utf8ByteSize.go cs } ≤ { data := cs ++ cs' }.endPos
state_after: no goals
Theorem: CommGrp.isZero_of_subsingleton
File: Mathlib/Algebra/Category/Grp/Zero.lean

tactic: refine ⟨fun X => ⟨⟨⟨1⟩, fun f => ?_⟩⟩, fun X => ⟨⟨⟨1⟩, fun f => ?_⟩⟩⟩
state_before: G : CommGrp
inst✝ : Subsingleton ↑G
⊢ IsZero G
state_after: case refine_1
G : CommGrp
inst✝ : Subsingleton ↑G
X : CommGrp
f : G ⟶ X
⊢ f = default

case refine_2
G : CommGrp
inst✝ : Subsingleton ↑G
X : CommGrp
f : X ⟶ G
⊢ f = default

tactic: ext x
state_before: case refine_1
G : CommGrp
inst✝ : Subsingleton ↑G
X : CommGrp
f : G ⟶ X
⊢ f = default
state_after: case refine_1.w
G : CommGrp
inst✝ : Subsingleton ↑G
X : CommGrp
f : G ⟶ X
x : ↑G
⊢ f x = default x

tactic: have : x = 1 := Subsingleton.elim _ _
state_before: case refine_1.w
G : CommGrp
inst✝ : Subsingleton ↑G
X : CommGrp
f : G ⟶ X
x : ↑G
⊢ f x = default x
state_after: case refine_1.w
G : CommGrp
inst✝ : Subsingleton ↑G
X : CommGrp
f : G ⟶ X
x : ↑G
this : x = 1
⊢ f x = default x

tactic: rw [this, map_one, map_one]
state_before: case refine_1.w
G : CommGrp
inst✝ : Subsingleton ↑G
X : CommGrp
f : G ⟶ X
x : ↑G
this : x = 1
⊢ f x = default x
state_after: no goals

tactic: ext
state_before: case refine_2
G : CommGrp
inst✝ : Subsingleton ↑G
X : CommGrp
f : X ⟶ G
⊢ f = default
state_after: case refine_2.w
G : CommGrp
inst✝ : Subsingleton ↑G
X : CommGrp
f : X ⟶ G
x✝ : ↑X
⊢ f x✝ = default x✝

tactic: apply Subsingleton.elim
state_before: case refine_2.w
G : CommGrp
inst✝ : Subsingleton ↑G
X : CommGrp
f : X ⟶ G
x✝ : ↑X
⊢ f x✝ = default x✝
state_after: no goals
Theorem: Multiset.untrop_prod
File: Mathlib/Algebra/Tropical/BigOperators.lean

tactic: simpa using List.untrop_prod
state_before: R : Type u_1
S : Type u_2
inst✝ : AddCommMonoid R
s : Multiset (Tropical R)
⊢ ∀ (a : List (Tropical R)), untrop (prod ⟦a⟧) = (map untrop ⟦a⟧).sum
state_after: no goals
Theorem: NumberField.mixedEmbedding.norm_le_convexBodySumFun
File: Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean

tactic: rw [norm_eq_sup'_normAtPlace]
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
⊢ ‖x‖ ≤ convexBodySumFun x
state_after: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
⊢ (Finset.univ.sup' ⋯ fun w => (normAtPlace w) x) ≤ convexBodySumFun x

tactic: refine (Finset.sup'_le_iff _ _).mpr fun w _ ↦ ?_
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
⊢ (Finset.univ.sup' ⋯ fun w => (normAtPlace w) x) ≤ convexBodySumFun x
state_after: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
w : InfinitePlace K
x✝ : w ∈ Finset.univ
⊢ (normAtPlace w) x ≤ convexBodySumFun x

tactic: rw [convexBodySumFun_apply, ← Finset.univ.add_sum_erase _ (Finset.mem_univ w)]
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
w : InfinitePlace K
x✝ : w ∈ Finset.univ
⊢ (normAtPlace w) x ≤ convexBodySumFun x
state_after: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
w : InfinitePlace K
x✝ : w ∈ Finset.univ
⊢ (normAtPlace w) x ≤ ↑w.mult * (normAtPlace w) x + ∑ x_1 ∈ Finset.univ.erase w, ↑x_1.mult * (normAtPlace x_1) x

tactic: refine le_add_of_le_of_nonneg  ?_ ?_
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
w : InfinitePlace K
x✝ : w ∈ Finset.univ
⊢ (normAtPlace w) x ≤ ↑w.mult * (normAtPlace w) x + ∑ x_1 ∈ Finset.univ.erase w, ↑x_1.mult * (normAtPlace x_1) x
state_after: case refine_1
K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
w : InfinitePlace K
x✝ : w ∈ Finset.univ
⊢ (normAtPlace w) x ≤ ↑w.mult * (normAtPlace w) x

case refine_2
K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
w : InfinitePlace K
x✝ : w ∈ Finset.univ
⊢ 0 ≤ ∑ x_1 ∈ Finset.univ.erase w, ↑x_1.mult * (normAtPlace x_1) x

tactic: exact le_mul_of_one_le_left (normAtPlace_nonneg w x) one_le_mult
state_before: case refine_1
K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
w : InfinitePlace K
x✝ : w ∈ Finset.univ
⊢ (normAtPlace w) x ≤ ↑w.mult * (normAtPlace w) x
state_after: no goals

tactic: exact Finset.sum_nonneg (fun _ _ => mul_nonneg (Nat.cast_pos.mpr mult_pos).le
  (normAtPlace_nonneg _ _))
state_before: case refine_2
K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
w : InfinitePlace K
x✝ : w ∈ Finset.univ
⊢ 0 ≤ ∑ x_1 ∈ Finset.univ.erase w, ↑x_1.mult * (normAtPlace x_1) x
state_after: no goals
Theorem: PadicInt.toZMod_spec
File: Mathlib/NumberTheory/Padics/RingHoms.lean

tactic: convert sub_zmodRepr_mem x using 2
state_before: p : ℕ
hp_prime : Fact (Nat.Prime p)
r : ℚ
x : ℤ_[p]
⊢ x - (toZMod x).cast ∈ maximalIdeal ℤ_[p]
state_after: case h.e'_4.h.e'_6
p : ℕ
hp_prime : Fact (Nat.Prime p)
r : ℚ
x : ℤ_[p]
⊢ (toZMod x).cast = ↑x.zmodRepr

tactic: dsimp [toZMod, toZModHom]
state_before: case h.e'_4.h.e'_6
p : ℕ
hp_prime : Fact (Nat.Prime p)
r : ℚ
x : ℤ_[p]
⊢ (toZMod x).cast = ↑x.zmodRepr
state_after: case h.e'_4.h.e'_6
p : ℕ
hp_prime : Fact (Nat.Prime p)
r : ℚ
x : ℤ_[p]
⊢ (↑x.zmodRepr).cast = ↑x.zmodRepr

tactic: rcases Nat.exists_eq_add_of_lt hp_prime.1.pos with ⟨p', rfl⟩
state_before: case h.e'_4.h.e'_6
p : ℕ
hp_prime : Fact (Nat.Prime p)
r : ℚ
x : ℤ_[p]
⊢ (↑x.zmodRepr).cast = ↑x.zmodRepr
state_after: case h.e'_4.h.e'_6.intro
r : ℚ
p' : ℕ
hp_prime : Fact (Nat.Prime (0 + p' + 1))
x : ℤ_[0 + p' + 1]
⊢ (↑x.zmodRepr).cast = ↑x.zmodRepr

tactic: change ↑((_ : ZMod (0 + p' + 1)).val) = (_ : ℤ_[0 + p' + 1])
state_before: case h.e'_4.h.e'_6.intro
r : ℚ
p' : ℕ
hp_prime : Fact (Nat.Prime (0 + p' + 1))
x : ℤ_[0 + p' + 1]
⊢ (↑x.zmodRepr).cast = ↑x.zmodRepr
state_after: case h.e'_4.h.e'_6.intro
r : ℚ
p' : ℕ
hp_prime : Fact (Nat.Prime (0 + p' + 1))
x : ℤ_[0 + p' + 1]
⊢ ↑(↑x.zmodRepr).val = ↑x.zmodRepr

tactic: simp only [ZMod.val_natCast, add_zero, add_def, Nat.cast_inj, zero_add]
state_before: case h.e'_4.h.e'_6.intro
r : ℚ
p' : ℕ
hp_prime : Fact (Nat.Prime (0 + p' + 1))
x : ℤ_[0 + p' + 1]
⊢ ↑(↑x.zmodRepr).val = ↑x.zmodRepr
state_after: case h.e'_4.h.e'_6.intro
r : ℚ
p' : ℕ
hp_prime : Fact (Nat.Prime (0 + p' + 1))
x : ℤ_[0 + p' + 1]
⊢ x.zmodRepr % (p' + 1) = x.zmodRepr

tactic: apply mod_eq_of_lt
state_before: case h.e'_4.h.e'_6.intro
r : ℚ
p' : ℕ
hp_prime : Fact (Nat.Prime (0 + p' + 1))
x : ℤ_[0 + p' + 1]
⊢ x.zmodRepr % (p' + 1) = x.zmodRepr
state_after: case h.e'_4.h.e'_6.intro.h
r : ℚ
p' : ℕ
hp_prime : Fact (Nat.Prime (0 + p' + 1))
x : ℤ_[0 + p' + 1]
⊢ x.zmodRepr < p' + 1

tactic: simpa only [zero_add] using zmodRepr_lt_p x
state_before: case h.e'_4.h.e'_6.intro.h
r : ℚ
p' : ℕ
hp_prime : Fact (Nat.Prime (0 + p' + 1))
x : ℤ_[0 + p' + 1]
⊢ x.zmodRepr < p' + 1
state_after: no goals
Theorem: ProbabilityTheory.kernel.setIntegral_deterministic'
File: Mathlib/Probability/Kernel/Basic.lean

tactic: rw [kernel.deterministic_apply, setIntegral_dirac' hf _ hs]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ : ↥(kernel α β)
E : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
f : β → E
g : α → β
a : α
hg : Measurable g
hf : StronglyMeasurable f
s : Set β
hs : MeasurableSet s
inst✝ : Decidable (g a ∈ s)
⊢ ∫ (x : β) in s, f x ∂(deterministic g hg) a = if g a ∈ s then f (g a) else 0
state_after: no goals
Theorem: Polynomial.leadingCoeff_pow_X_add_C
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: nontriviality
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
r : R
i : ℕ
⊢ ((X + C r) ^ i).leadingCoeff = 1
state_after: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
r : R
i : ℕ
a✝ : Nontrivial R
⊢ ((X + C r) ^ i).leadingCoeff = 1

tactic: rw [leadingCoeff_pow'] <;> simp
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
r : R
i : ℕ
a✝ : Nontrivial R
⊢ ((X + C r) ^ i).leadingCoeff = 1
state_after: no goals