1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: hasFPowerSeriesAt_iff'
File: Mathlib/Analysis/Analytic/Basic.lean

tactic: rw [← map_add_left_nhds_zero, eventually_map, hasFPowerSeriesAt_iff]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p : FormalMultilinearSeries 𝕜 𝕜 E
f : 𝕜 → E
z₀ : 𝕜
⊢ HasFPowerSeriesAt f p z₀ ↔ ∀ᶠ (z : 𝕜) in 𝓝 z₀, HasSum (fun n => (z - z₀) ^ n • p.coeff n) (f z)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p : FormalMultilinearSeries 𝕜 𝕜 E
f : 𝕜 → E
z₀ : 𝕜
⊢ (∀ᶠ (z : 𝕜) in 𝓝 0, HasSum (fun n => z ^ n • p.coeff n) (f (z₀ + z))) ↔
    ∀ᶠ (a : 𝕜) in 𝓝 0, HasSum (fun n => (z₀ + a - z₀) ^ n • p.coeff n) (f (z₀ + a))

tactic: simp_rw [add_sub_cancel_left]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p : FormalMultilinearSeries 𝕜 𝕜 E
f : 𝕜 → E
z₀ : 𝕜
⊢ (∀ᶠ (z : 𝕜) in 𝓝 0, HasSum (fun n => z ^ n • p.coeff n) (f (z₀ + z))) ↔
    ∀ᶠ (a : 𝕜) in 𝓝 0, HasSum (fun n => (z₀ + a - z₀) ^ n • p.coeff n) (f (z₀ + a))
state_after: no goals
Theorem: DirichletCharacter.LSeries.mul_mu_eq_one
File: Mathlib/NumberTheory/LSeries/Dirichlet.lean

tactic: rw [← LSeries_convolution' (LSeriesSummable_of_one_lt_re χ hs) <|
        LSeriesSummable_mul χ <| ArithmeticFunction.LSeriesSummable_moebius_iff.mpr hs,
  convolution_mul_moebius, LSeries_delta, Pi.one_apply]
state_before: N : ℕ
χ : DirichletCharacter ℂ N
s : ℂ
hs : 1 < s.re
⊢ L (fun n => χ ↑n) s * L ((fun n => χ ↑n) * fun n => ↑(μ n)) s = 1
state_after: no goals
Theorem: hensels_lemma
File: Mathlib/NumberTheory/Padics/Hensel.lean

tactic: exact ⟨soln_gen hnorm, eval_soln hnorm,
  soln_dist_to_a_lt_deriv hnorm ha, soln_deriv_norm hnorm, fun z => soln_unique hnorm ha z⟩
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (Polynomial.derivative F)‖ ^ 2
ha : ¬Polynomial.eval a F = 0
⊢ ∃ z,
    Polynomial.eval z F = 0 ∧
      ‖z - a‖ < ‖Polynomial.eval a (Polynomial.derivative F)‖ ∧
        ‖Polynomial.eval z (Polynomial.derivative F)‖ = ‖Polynomial.eval a (Polynomial.derivative F)‖ ∧
          ∀ (z' : ℤ_[p]), Polynomial.eval z' F = 0 → ‖z' - a‖ < ‖Polynomial.eval a (Polynomial.derivative F)‖ → z' = z
state_after: no goals
Theorem: bernoulliFun_eval_zero
File: Mathlib/NumberTheory/ZetaValues.lean

tactic: rw [bernoulliFun, Polynomial.eval_zero_map, Polynomial.bernoulli_eval_zero, eq_ratCast]
state_before: k : ℕ
⊢ bernoulliFun k 0 = ↑(bernoulli k)
state_after: no goals
Theorem: Polynomial.separable_prod_X_sub_C_iff
File: Mathlib/FieldTheory/Separable.lean

tactic: simp_rw [mem_univ, true_imp_iff, Function.Injective]
state_before: F : Type u
inst✝² : Field F
K : Type v
inst✝¹ : Field K
ι : Type u_1
inst✝ : Fintype ι
f : ι → F
⊢ (∀ x ∈ univ, ∀ y ∈ univ, f x = f y → x = y) ↔ Function.Injective f
state_after: no goals
Theorem: fermatLastTheoremThree_case_1
File: Mathlib/NumberTheory/FLT/Three.lean

tactic: simp_rw [Int.prime_three.dvd_mul, not_or] at hdvd
state_before: a b c : ℤ
hdvd : ¬3 ∣ a * b * c
⊢ a ^ 3 + b ^ 3 ≠ c ^ 3
state_after: a b c : ℤ
hdvd : (¬3 ∣ a ∧ ¬3 ∣ b) ∧ ¬3 ∣ c
⊢ a ^ 3 + b ^ 3 ≠ c ^ 3

tactic: apply mt (congrArg (Int.cast : ℤ → ZMod 9))
state_before: a b c : ℤ
hdvd : (¬3 ∣ a ∧ ¬3 ∣ b) ∧ ¬3 ∣ c
⊢ a ^ 3 + b ^ 3 ≠ c ^ 3
state_after: a b c : ℤ
hdvd : (¬3 ∣ a ∧ ¬3 ∣ b) ∧ ¬3 ∣ c
⊢ ¬↑(a ^ 3 + b ^ 3) = ↑(c ^ 3)

tactic: simp_rw [Int.cast_add, Int.cast_pow]
state_before: a b c : ℤ
hdvd : (¬3 ∣ a ∧ ¬3 ∣ b) ∧ ¬3 ∣ c
⊢ ¬↑(a ^ 3 + b ^ 3) = ↑(c ^ 3)
state_after: a b c : ℤ
hdvd : (¬3 ∣ a ∧ ¬3 ∣ b) ∧ ¬3 ∣ c
⊢ ¬↑a ^ 3 + ↑b ^ 3 = ↑c ^ 3

tactic: rcases cube_of_not_dvd hdvd.1.1 with ha | ha <;>
rcases cube_of_not_dvd hdvd.1.2 with hb | hb <;>
rcases cube_of_not_dvd hdvd.2 with hc | hc <;>
rw [ha, hb, hc] <;> decide
state_before: a b c : ℤ
hdvd : (¬3 ∣ a ∧ ¬3 ∣ b) ∧ ¬3 ∣ c
⊢ ¬↑a ^ 3 + ↑b ^ 3 = ↑c ^ 3
state_after: no goals
Theorem: Monoid.CoprodI.NeWord.toList_getLast?
File: Mathlib/GroupTheory/CoprodI.lean

tactic: rw [← Option.mem_def]
state_before: ι : Type u_1
M : ι → Type u_2
inst✝¹ : (i : ι) → Monoid (M i)
N : Type u_3
inst✝ : Monoid N
i j : ι
w : NeWord M i j
⊢ w.toList.getLast? = some ⟨j, w.last⟩
state_after: ι : Type u_1
M : ι → Type u_2
inst✝¹ : (i : ι) → Monoid (M i)
N : Type u_3
inst✝ : Monoid N
i j : ι
w : NeWord M i j
⊢ ⟨j, w.last⟩ ∈ w.toList.getLast?

tactic: induction w
state_before: ι : Type u_1
M : ι → Type u_2
inst✝¹ : (i : ι) → Monoid (M i)
N : Type u_3
inst✝ : Monoid N
i j : ι
w : NeWord M i j
⊢ ⟨j, w.last⟩ ∈ w.toList.getLast?
state_after: case singleton
ι : Type u_1
M : ι → Type u_2
inst✝¹ : (i : ι) → Monoid (M i)
N : Type u_3
inst✝ : Monoid N
i j i✝ : ι
x✝ : M i✝
a✝ : x✝ ≠ 1
⊢ ⟨i✝, (singleton x✝ a✝).last⟩ ∈ (singleton x✝ a✝).toList.getLast?

case append
ι : Type u_1
M : ι → Type u_2
inst✝¹ : (i : ι) → Monoid (M i)
N : Type u_3
inst✝ : Monoid N
i j i✝ j✝ k✝ l✝ : ι
_w₁✝ : NeWord M i✝ j✝
_hne✝ : j✝ ≠ k✝
_w₂✝ : NeWord M k✝ l✝
_w₁_ih✝ : ⟨j✝, _w₁✝.last⟩ ∈ _w₁✝.toList.getLast?
_w₂_ih✝ : ⟨l✝, _w₂✝.last⟩ ∈ _w₂✝.toList.getLast?
⊢ ⟨l✝, (_w₁✝.append _hne✝ _w₂✝).last⟩ ∈ (_w₁✝.append _hne✝ _w₂✝).toList.getLast?

tactic: rw [Option.mem_def]
state_before: case singleton
ι : Type u_1
M : ι → Type u_2
inst✝¹ : (i : ι) → Monoid (M i)
N : Type u_3
inst✝ : Monoid N
i j i✝ : ι
x✝ : M i✝
a✝ : x✝ ≠ 1
⊢ ⟨i✝, (singleton x✝ a✝).last⟩ ∈ (singleton x✝ a✝).toList.getLast?
state_after: case singleton
ι : Type u_1
M : ι → Type u_2
inst✝¹ : (i : ι) → Monoid (M i)
N : Type u_3
inst✝ : Monoid N
i j i✝ : ι
x✝ : M i✝
a✝ : x✝ ≠ 1
⊢ (singleton x✝ a✝).toList.getLast? = some ⟨i✝, (singleton x✝ a✝).last⟩

tactic: rfl
state_before: case singleton
ι : Type u_1
M : ι → Type u_2
inst✝¹ : (i : ι) → Monoid (M i)
N : Type u_3
inst✝ : Monoid N
i j i✝ : ι
x✝ : M i✝
a✝ : x✝ ≠ 1
⊢ (singleton x✝ a✝).toList.getLast? = some ⟨i✝, (singleton x✝ a✝).last⟩
state_after: no goals

tactic: exact List.getLast?_append (by assumption)
state_before: case append
ι : Type u_1
M : ι → Type u_2
inst✝¹ : (i : ι) → Monoid (M i)
N : Type u_3
inst✝ : Monoid N
i j i✝ j✝ k✝ l✝ : ι
_w₁✝ : NeWord M i✝ j✝
_hne✝ : j✝ ≠ k✝
_w₂✝ : NeWord M k✝ l✝
_w₁_ih✝ : ⟨j✝, _w₁✝.last⟩ ∈ _w₁✝.toList.getLast?
_w₂_ih✝ : ⟨l✝, _w₂✝.last⟩ ∈ _w₂✝.toList.getLast?
⊢ ⟨l✝, (_w₁✝.append _hne✝ _w₂✝).last⟩ ∈ (_w₁✝.append _hne✝ _w₂✝).toList.getLast?
state_after: no goals

tactic: assumption
state_before: ι : Type u_1
M : ι → Type u_2
inst✝¹ : (i : ι) → Monoid (M i)
N : Type u_3
inst✝ : Monoid N
i j i✝ j✝ k✝ l✝ : ι
_w₁✝ : NeWord M i✝ j✝
_hne✝ : j✝ ≠ k✝
_w₂✝ : NeWord M k✝ l✝
_w₁_ih✝ : ⟨j✝, _w₁✝.last⟩ ∈ _w₁✝.toList.getLast?
_w₂_ih✝ : ⟨l✝, _w₂✝.last⟩ ∈ _w₂✝.toList.getLast?
⊢ ⟨l✝, (_w₁✝.append _hne✝ _w₂✝).last⟩ ∈ _w₂✝.toList.getLast?
state_after: no goals
Theorem: EuclideanDomain.mod_eq_sub_mul_div
File: Mathlib/Algebra/EuclideanDomain/Defs.lean

tactic: rw [div_add_mod]
state_before: R✝ : Type u
inst✝¹ : EuclideanDomain R✝
R : Type u_1
inst✝ : EuclideanDomain R
a b : R
⊢ b * (a / b) + a % b - b * (a / b) = a - b * (a / b)
state_after: no goals
Theorem: UpperSet.map_Ioi
File: Mathlib/Order/UpperLower/Basic.lean

tactic: ext
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝¹ : Preorder α
inst✝ : Preorder β
s : UpperSet α
a✝ b : α
f : α ≃o β
a : α
⊢ (map f) (Ioi a) = Ioi (f a)
state_after: case a.h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝¹ : Preorder α
inst✝ : Preorder β
s : UpperSet α
a✝ b : α
f : α ≃o β
a : α
x✝ : β
⊢ x✝ ∈ ↑((map f) (Ioi a)) ↔ x✝ ∈ ↑(Ioi (f a))

tactic: simp
state_before: case a.h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝¹ : Preorder α
inst✝ : Preorder β
s : UpperSet α
a✝ b : α
f : α ≃o β
a : α
x✝ : β
⊢ x✝ ∈ ↑((map f) (Ioi a)) ↔ x✝ ∈ ↑(Ioi (f a))
state_after: no goals
Theorem: Ioo_mem_nhdsWithin_Ioi
File: Mathlib/Topology/Order/OrderClosed.lean

tactic: rw [inter_comm, Ioi_inter_Iio]
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : ClosedIciTopology α
inst✝ : TopologicalSpace β
a✝ b✝ c✝ : α
f : α → β
a b c : α
H : b ∈ Ico a c
⊢ Iio c ∩ Ioi b ⊆ Ioo a c
state_after: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : ClosedIciTopology α
inst✝ : TopologicalSpace β
a✝ b✝ c✝ : α
f : α → β
a b c : α
H : b ∈ Ico a c
⊢ Ioo b c ⊆ Ioo a c

tactic: exact Ioo_subset_Ioo_left H.1
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : ClosedIciTopology α
inst✝ : TopologicalSpace β
a✝ b✝ c✝ : α
f : α → β
a b c : α
H : b ∈ Ico a c
⊢ Ioo b c ⊆ Ioo a c
state_after: no goals
Theorem: CategoryTheory.regularTopology.mapToEqualizer_eq_comp
File: Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean

tactic: rw [← Iso.comp_inv_eq (α := Types.equalizerIso _ _)]
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝³ : Category.{u_5, u_1} C
inst✝² : Category.{?u.35200, u_2} D
inst✝¹ : Category.{?u.35204, u_3} E
P : Cᵒᵖ ⥤ Type u_4
X B : C
π : X ⟶ B
inst✝ : HasPullback π π
⊢ MapToEqualizer P π pullback.fst pullback.snd ⋯ =
    equalizer.lift (P.map π.op) ⋯ ≫ (Types.equalizerIso (P.map pullback.fst.op) (P.map pullback.snd.op)).hom
state_after: C : Type u_1
D : Type u_2
E : Type u_3
inst✝³ : Category.{u_5, u_1} C
inst✝² : Category.{?u.35200, u_2} D
inst✝¹ : Category.{?u.35204, u_3} E
P : Cᵒᵖ ⥤ Type u_4
X B : C
π : X ⟶ B
inst✝ : HasPullback π π
⊢ MapToEqualizer P π pullback.fst pullback.snd ⋯ ≫
      (Types.equalizerIso (P.map pullback.fst.op) (P.map pullback.snd.op)).inv =
    equalizer.lift (P.map π.op) ⋯

tactic: apply equalizer.hom_ext
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝³ : Category.{u_5, u_1} C
inst✝² : Category.{?u.35200, u_2} D
inst✝¹ : Category.{?u.35204, u_3} E
P : Cᵒᵖ ⥤ Type u_4
X B : C
π : X ⟶ B
inst✝ : HasPullback π π
⊢ MapToEqualizer P π pullback.fst pullback.snd ⋯ ≫
      (Types.equalizerIso (P.map pullback.fst.op) (P.map pullback.snd.op)).inv =
    equalizer.lift (P.map π.op) ⋯
state_after: case h
C : Type u_1
D : Type u_2
E : Type u_3
inst✝³ : Category.{u_5, u_1} C
inst✝² : Category.{?u.35200, u_2} D
inst✝¹ : Category.{?u.35204, u_3} E
P : Cᵒᵖ ⥤ Type u_4
X B : C
π : X ⟶ B
inst✝ : HasPullback π π
⊢ (MapToEqualizer P π pullback.fst pullback.snd ⋯ ≫
        (Types.equalizerIso (P.map pullback.fst.op) (P.map pullback.snd.op)).inv) ≫
      equalizer.ι (P.map pullback.fst.op) (P.map pullback.snd.op) =
    equalizer.lift (P.map π.op) ⋯ ≫ equalizer.ι (P.map pullback.fst.op) (P.map pullback.snd.op)

tactic: aesop
state_before: case h
C : Type u_1
D : Type u_2
E : Type u_3
inst✝³ : Category.{u_5, u_1} C
inst✝² : Category.{?u.35200, u_2} D
inst✝¹ : Category.{?u.35204, u_3} E
P : Cᵒᵖ ⥤ Type u_4
X B : C
π : X ⟶ B
inst✝ : HasPullback π π
⊢ (MapToEqualizer P π pullback.fst pullback.snd ⋯ ≫
        (Types.equalizerIso (P.map pullback.fst.op) (P.map pullback.snd.op)).inv) ≫
      equalizer.ι (P.map pullback.fst.op) (P.map pullback.snd.op) =
    equalizer.lift (P.map π.op) ⋯ ≫ equalizer.ι (P.map pullback.fst.op) (P.map pullback.snd.op)
state_after: no goals
Theorem: BoxIntegral.Prepartition.iUnion_split
File: Mathlib/Analysis/BoxIntegral/Partition/Split.lean

tactic: simp [split, ← inter_union_distrib_left, ← setOf_or, le_or_lt]
state_before: ι : Type u_1
M : Type u_2
n : ℕ
I✝ J : Box ι
i✝ : ι
x✝ : ℝ
I : Box ι
i : ι
x : ℝ
⊢ (split I i x).iUnion = ↑I
state_after: no goals
Theorem: CategoryTheory.ComposableArrows.Precomp.map_one_one
File: Mathlib/CategoryTheory/ComposableArrows.lean

tactic: simp
state_before: C : Type u_1
inst✝ : Category.{?u.95036, u_1} C
n m : ℕ
F G : ComposableArrows C n
X : C
f : X ⟶ F.left
⊢ 1 ≤ 1
state_after: no goals
Theorem: one_le_div_iff
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rcases lt_trichotomy b 0 with (hb | rfl | hb)
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
⊢ 1 ≤ a / b ↔ 0 < b ∧ b ≤ a ∨ b < 0 ∧ a ≤ b
state_after: case inl
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
hb : b < 0
⊢ 1 ≤ a / b ↔ 0 < b ∧ b ≤ a ∨ b < 0 ∧ a ≤ b

case inr.inl
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a c d : α
n : ℤ
⊢ 1 ≤ a / 0 ↔ 0 < 0 ∧ 0 ≤ a ∨ 0 < 0 ∧ a ≤ 0

case inr.inr
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
hb : 0 < b
⊢ 1 ≤ a / b ↔ 0 < b ∧ b ≤ a ∨ b < 0 ∧ a ≤ b

tactic: simp [hb, hb.not_lt, one_le_div_of_neg]
state_before: case inl
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
hb : b < 0
⊢ 1 ≤ a / b ↔ 0 < b ∧ b ≤ a ∨ b < 0 ∧ a ≤ b
state_after: no goals

tactic: simp [lt_irrefl, zero_lt_one.not_le, zero_lt_one]
state_before: case inr.inl
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a c d : α
n : ℤ
⊢ 1 ≤ a / 0 ↔ 0 < 0 ∧ 0 ≤ a ∨ 0 < 0 ∧ a ≤ 0
state_after: no goals

tactic: simp [hb, hb.not_lt, one_le_div]
state_before: case inr.inr
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
hb : 0 < b
⊢ 1 ≤ a / b ↔ 0 < b ∧ b ≤ a ∨ b < 0 ∧ a ≤ b
state_after: no goals
Theorem: Rat.zero_of_num_zero
File: Mathlib/Data/Rat/Defs.lean

tactic: simpa [hq] using q.num_divInt_den.symm
state_before: q✝ a b c q : ℚ
hq : q.num = 0
⊢ q = 0
state_after: no goals
Theorem: Substring.Valid.next_stop
File: .lake/packages/batteries/Batteries/Data/String/Lemmas.lean

tactic: simp [h.bsize, h.next_stop]
state_before: x✝ : Substring
h✝ : x✝.Valid
l m r : List Char
h : ValidFor l m r x✝
⊢ x✝.next { byteIdx := x✝.bsize } = { byteIdx := x✝.bsize }
state_after: no goals
Theorem: exists_lt_of_directed_ge
File: Mathlib/Order/Directed.lean

tactic: rcases exists_pair_ne β with ⟨a, b, hne⟩
state_before: α : Type u
β : Type v
ι : Sort w
r r' s : α → α → Prop
inst✝³ : Preorder α
a : α
inst✝² : PartialOrder β
inst✝¹ : IsDirected β fun x x_1 => x ≥ x_1
inst✝ : Nontrivial β
⊢ ∃ a b, a < b
state_after: case intro.intro
α : Type u
β : Type v
ι : Sort w
r r' s : α → α → Prop
inst✝³ : Preorder α
a✝ : α
inst✝² : PartialOrder β
inst✝¹ : IsDirected β fun x x_1 => x ≥ x_1
inst✝ : Nontrivial β
a b : β
hne : a ≠ b
⊢ ∃ a b, a < b

tactic: rcases isBot_or_exists_lt a with (ha | ⟨c, hc⟩)
state_before: case intro.intro
α : Type u
β : Type v
ι : Sort w
r r' s : α → α → Prop
inst✝³ : Preorder α
a✝ : α
inst✝² : PartialOrder β
inst✝¹ : IsDirected β fun x x_1 => x ≥ x_1
inst✝ : Nontrivial β
a b : β
hne : a ≠ b
⊢ ∃ a b, a < b
state_after: case intro.intro.inl
α : Type u
β : Type v
ι : Sort w
r r' s : α → α → Prop
inst✝³ : Preorder α
a✝ : α
inst✝² : PartialOrder β
inst✝¹ : IsDirected β fun x x_1 => x ≥ x_1
inst✝ : Nontrivial β
a b : β
hne : a ≠ b
ha : IsBot a
⊢ ∃ a b, a < b

case intro.intro.inr.intro
α : Type u
β : Type v
ι : Sort w
r r' s : α → α → Prop
inst✝³ : Preorder α
a✝ : α
inst✝² : PartialOrder β
inst✝¹ : IsDirected β fun x x_1 => x ≥ x_1
inst✝ : Nontrivial β
a b : β
hne : a ≠ b
c : β
hc : c < a
⊢ ∃ a b, a < b

tactic: exacts [⟨a, b, (ha b).lt_of_ne hne⟩, ⟨_, _, hc⟩]
state_before: case intro.intro.inl
α : Type u
β : Type v
ι : Sort w
r r' s : α → α → Prop
inst✝³ : Preorder α
a✝ : α
inst✝² : PartialOrder β
inst✝¹ : IsDirected β fun x x_1 => x ≥ x_1
inst✝ : Nontrivial β
a b : β
hne : a ≠ b
ha : IsBot a
⊢ ∃ a b, a < b

case intro.intro.inr.intro
α : Type u
β : Type v
ι : Sort w
r r' s : α → α → Prop
inst✝³ : Preorder α
a✝ : α
inst✝² : PartialOrder β
inst✝¹ : IsDirected β fun x x_1 => x ≥ x_1
inst✝ : Nontrivial β
a b : β
hne : a ≠ b
c : β
hc : c < a
⊢ ∃ a b, a < b
state_after: no goals
Theorem: leftCoset_rightCoset
File: Mathlib/GroupTheory/Coset.lean

tactic: simp [← image_smul, (image_comp _ _ _).symm, Function.comp, mul_assoc]
state_before: α : Type u_1
inst✝ : Semigroup α
s : Set α
a b : α
⊢ op b • a • s = a • op b • s
state_after: no goals
Theorem: IsSelfAdjoint.conjugate'
File: Mathlib/Algebra/Star/SelfAdjoint.lean

tactic: simp only [isSelfAdjoint_iff, star_mul, star_star, mul_assoc, hx.star_eq]
state_before: R : Type u_1
A : Type u_2
inst✝¹ : Semigroup R
inst✝ : StarMul R
x : R
hx : IsSelfAdjoint x
z : R
⊢ IsSelfAdjoint (star z * x * z)
state_after: no goals
Theorem: Complementeds.disjoint_coe
File: Mathlib/Order/Disjoint.lean

tactic: rw [disjoint_iff, disjoint_iff, ← coe_inf, ← coe_bot, coe_inj]
state_before: α : Type u_1
inst✝¹ : DistribLattice α
inst✝ : BoundedOrder α
a b : Complementeds α
⊢ Disjoint ↑a ↑b ↔ Disjoint a b
state_after: no goals
Theorem: ProbabilityTheory.kernel.measure_sum_seq
File: Mathlib/Probability/Kernel/Basic.lean

tactic: rw [← kernel.sum_apply, kernel_sum_seq κ]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ κ : ↥(kernel α β)
h : IsSFiniteKernel κ
a : α
⊢ (Measure.sum fun n => (seq κ n) a) = κ a
state_after: no goals
Theorem: ProbabilityTheory.iIndep.meas_iInter
File: Mathlib/Probability/Independence/Basic.lean

tactic: simp [← hμ.meas_biInter fun _ _ ↦ hs _]
state_before: Ω : Type u_1
ι : Type u_2
β : Type u_3
γ : Type u_4
κ : ι → Type u_5
π : ι → Set (Set Ω)
m : ι → MeasurableSpace Ω
x✝ : MeasurableSpace Ω
μ : Measure Ω
S : Finset ι
s : ι → Set Ω
inst✝ : Fintype ι
hμ : iIndep m μ
hs : ∀ (i : ι), MeasurableSet (s i)
⊢ μ (⋂ i, s i) = ∏ i : ι, μ (s i)
state_after: no goals
Theorem: PartENat.withTopEquiv_symm_ofNat
File: Mathlib/Data/Nat/PartENat.lean

tactic: simp
state_before: n : ℕ
inst✝ : n.AtLeastTwo
⊢ withTopEquiv.symm (OfNat.ofNat n) = OfNat.ofNat n
state_after: no goals
Theorem: ForInStep.bind_bindList_assoc
File: .lake/packages/batteries/Batteries/Control/ForInStep/Lemmas.lean

tactic: cases s <;> simp
state_before: m : Type u_1 → Type u_2
β : Type u_1
α : Type u_3
inst✝¹ : Monad m
inst✝ : LawfulMonad m
f : β → m (ForInStep β)
g : α → β → m (ForInStep β)
s : ForInStep β
l : List α
⊢ (do
      let x ← s.bind f
      bindList g l x) =
    s.bind fun b => do
      let x ← f b
      bindList g l x
state_after: no goals
Theorem: Finsupp.single_tsub
File: Mathlib/Data/Finsupp/Order.lean

tactic: ext j
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : CanonicallyOrderedAddCommMonoid α
f✝ g✝ : ι →₀ α
inst✝¹ : Sub α
inst✝ : OrderedSub α
f g : ι →₀ α
i : ι
a b : α
⊢ single i (a - b) = single i a - single i b
state_after: case h
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : CanonicallyOrderedAddCommMonoid α
f✝ g✝ : ι →₀ α
inst✝¹ : Sub α
inst✝ : OrderedSub α
f g : ι →₀ α
i : ι
a b : α
j : ι
⊢ (single i (a - b)) j = (single i a - single i b) j

tactic: obtain rfl | h := eq_or_ne i j
state_before: case h
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : CanonicallyOrderedAddCommMonoid α
f✝ g✝ : ι →₀ α
inst✝¹ : Sub α
inst✝ : OrderedSub α
f g : ι →₀ α
i : ι
a b : α
j : ι
⊢ (single i (a - b)) j = (single i a - single i b) j
state_after: case h.inl
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : CanonicallyOrderedAddCommMonoid α
f✝ g✝ : ι →₀ α
inst✝¹ : Sub α
inst✝ : OrderedSub α
f g : ι →₀ α
i : ι
a b : α
⊢ (single i (a - b)) i = (single i a - single i b) i

case h.inr
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : CanonicallyOrderedAddCommMonoid α
f✝ g✝ : ι →₀ α
inst✝¹ : Sub α
inst✝ : OrderedSub α
f g : ι →₀ α
i : ι
a b : α
j : ι
h : i ≠ j
⊢ (single i (a - b)) j = (single i a - single i b) j

tactic: rw [tsub_apply, single_eq_same, single_eq_same, single_eq_same]
state_before: case h.inl
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : CanonicallyOrderedAddCommMonoid α
f✝ g✝ : ι →₀ α
inst✝¹ : Sub α
inst✝ : OrderedSub α
f g : ι →₀ α
i : ι
a b : α
⊢ (single i (a - b)) i = (single i a - single i b) i
state_after: no goals

tactic: rw [tsub_apply, single_eq_of_ne h, single_eq_of_ne h, single_eq_of_ne h, tsub_self]
state_before: case h.inr
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : CanonicallyOrderedAddCommMonoid α
f✝ g✝ : ι →₀ α
inst✝¹ : Sub α
inst✝ : OrderedSub α
f g : ι →₀ α
i : ι
a b : α
j : ι
h : i ≠ j
⊢ (single i (a - b)) j = (single i a - single i b) j
state_after: no goals
Theorem: IsCompl.prod_mul_prod
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: classical rw [Finset.disjUnion_eq_union, ← Finset.sup_eq_union, h.sup_eq_top]; rfl
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : Fintype α
inst✝ : CommMonoid β
s t : Finset α
h : IsCompl s t
f : α → β
⊢ ∏ x ∈ s.disjUnion t ⋯, f x = ∏ i : α, f i
state_after: no goals

tactic: rw [Finset.disjUnion_eq_union, ← Finset.sup_eq_union, h.sup_eq_top]
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : Fintype α
inst✝ : CommMonoid β
s t : Finset α
h : IsCompl s t
f : α → β
⊢ ∏ x ∈ s.disjUnion t ⋯, f x = ∏ i : α, f i
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : Fintype α
inst✝ : CommMonoid β
s t : Finset α
h : IsCompl s t
f : α → β
⊢ ∏ x ∈ ⊤, f x = ∏ i : α, f i

tactic: rfl
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : Fintype α
inst✝ : CommMonoid β
s t : Finset α
h : IsCompl s t
f : α → β
⊢ ∏ x ∈ ⊤, f x = ∏ i : α, f i
state_after: no goals
Theorem: HomologicalComplex.d_comp_d
File: Mathlib/Algebra/Homology/HomologicalComplex.lean

tactic: by_cases hij : c.Rel i j
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i j k : ι
⊢ C.d i j ≫ C.d j k = 0
state_after: case pos
ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i j k : ι
hij : c.Rel i j
⊢ C.d i j ≫ C.d j k = 0

case neg
ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i j k : ι
hij : ¬c.Rel i j
⊢ C.d i j ≫ C.d j k = 0

tactic: by_cases hjk : c.Rel j k
state_before: case pos
ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i j k : ι
hij : c.Rel i j
⊢ C.d i j ≫ C.d j k = 0
state_after: case pos
ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i j k : ι
hij : c.Rel i j
hjk : c.Rel j k
⊢ C.d i j ≫ C.d j k = 0

case neg
ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i j k : ι
hij : c.Rel i j
hjk : ¬c.Rel j k
⊢ C.d i j ≫ C.d j k = 0

tactic: exact C.d_comp_d' i j k hij hjk
state_before: case pos
ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i j k : ι
hij : c.Rel i j
hjk : c.Rel j k
⊢ C.d i j ≫ C.d j k = 0
state_after: no goals

tactic: rw [C.shape j k hjk, comp_zero]
state_before: case neg
ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i j k : ι
hij : c.Rel i j
hjk : ¬c.Rel j k
⊢ C.d i j ≫ C.d j k = 0
state_after: no goals

tactic: rw [C.shape i j hij, zero_comp]
state_before: case neg
ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i j k : ι
hij : ¬c.Rel i j
⊢ C.d i j ≫ C.d j k = 0
state_after: no goals
Theorem: PartitionOfUnity.sum_finsupport
File: Mathlib/Topology/PartitionOfUnity.lean

tactic: rw [← ρ.sum_eq_one hx₀, finsum_eq_sum_of_support_subset _ (ρ.coe_finsupport x₀).superset]
state_before: ι : Type u
X : Type v
inst✝⁴ : TopologicalSpace X
E : Type u_1
inst✝³ : AddCommMonoid E
inst✝² : SMulWithZero ℝ E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
s✝ : Set X
f : PartitionOfUnity ι X s✝
s : Set X
ρ : PartitionOfUnity ι X s
x₀✝ x₀ : X
hx₀ : x₀ ∈ s
⊢ ∑ i ∈ ρ.finsupport x₀, (ρ i) x₀ = 1
state_after: no goals