1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: ProjectiveSpectrum.vanishingIdeal_closure
File: Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean

tactic: have := (gc_ideal 𝒜).u_l_u_eq_u t
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 𝒜
t : Set (ProjectiveSpectrum 𝒜)
⊢ vanishingIdeal (closure t) = vanishingIdeal t
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 𝒜
t : Set (ProjectiveSpectrum 𝒜)
this : (vanishingIdeal (zeroLocus 𝒜 ↑(vanishingIdeal t).toIdeal)).toIdeal = (vanishingIdeal t).toIdeal
⊢ vanishingIdeal (closure t) = vanishingIdeal t

tactic: ext1
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 𝒜
t : Set (ProjectiveSpectrum 𝒜)
this : (vanishingIdeal (zeroLocus 𝒜 ↑(vanishingIdeal t).toIdeal)).toIdeal = (vanishingIdeal t).toIdeal
⊢ vanishingIdeal (closure t) = vanishingIdeal t
state_after: case h
R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
t : Set (ProjectiveSpectrum 𝒜)
this : (vanishingIdeal (zeroLocus 𝒜 ↑(vanishingIdeal t).toIdeal)).toIdeal = (vanishingIdeal t).toIdeal
⊢ (vanishingIdeal (closure t)).toIdeal = (vanishingIdeal t).toIdeal

tactic: erw [zeroLocus_vanishingIdeal_eq_closure 𝒜 t] at this
state_before: case h
R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
t : Set (ProjectiveSpectrum 𝒜)
this : (vanishingIdeal (zeroLocus 𝒜 ↑(vanishingIdeal t).toIdeal)).toIdeal = (vanishingIdeal t).toIdeal
⊢ (vanishingIdeal (closure t)).toIdeal = (vanishingIdeal t).toIdeal
state_after: case h
R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
t : Set (ProjectiveSpectrum 𝒜)
this : (vanishingIdeal (closure t)).toIdeal = (vanishingIdeal t).toIdeal
⊢ (vanishingIdeal (closure t)).toIdeal = (vanishingIdeal t).toIdeal

tactic: exact this
state_before: case h
R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
t : Set (ProjectiveSpectrum 𝒜)
this : (vanishingIdeal (closure t)).toIdeal = (vanishingIdeal t).toIdeal
⊢ (vanishingIdeal (closure t)).toIdeal = (vanishingIdeal t).toIdeal
state_after: no goals
Theorem: CategoryTheory.finrank_hom_simple_simple_eq_zero_of_not_iso
File: Mathlib/CategoryTheory/Preadditive/Schur.lean

tactic: have p := not_congr (isIso_iff_nonzero f)
state_before: C : Type u_1
inst✝⁶ : Category.{u_3, u_1} C
inst✝⁵ : Preadditive C
𝕜 : Type u_2
inst✝⁴ : DivisionRing 𝕜
inst✝³ : HasKernels C
inst✝² : Linear 𝕜 C
X Y : C
inst✝¹ : Simple X
inst✝ : Simple Y
h : (X ≅ Y) → False
f : X ⟶ Y
⊢ f = 0
state_after: C : Type u_1
inst✝⁶ : Category.{u_3, u_1} C
inst✝⁵ : Preadditive C
𝕜 : Type u_2
inst✝⁴ : DivisionRing 𝕜
inst✝³ : HasKernels C
inst✝² : Linear 𝕜 C
X Y : C
inst✝¹ : Simple X
inst✝ : Simple Y
h : (X ≅ Y) → False
f : X ⟶ Y
p : ¬IsIso f ↔ ¬f ≠ 0
⊢ f = 0

tactic: simp only [Classical.not_not, Ne] at p
state_before: C : Type u_1
inst✝⁶ : Category.{u_3, u_1} C
inst✝⁵ : Preadditive C
𝕜 : Type u_2
inst✝⁴ : DivisionRing 𝕜
inst✝³ : HasKernels C
inst✝² : Linear 𝕜 C
X Y : C
inst✝¹ : Simple X
inst✝ : Simple Y
h : (X ≅ Y) → False
f : X ⟶ Y
p : ¬IsIso f ↔ ¬f ≠ 0
⊢ f = 0
state_after: C : Type u_1
inst✝⁶ : Category.{u_3, u_1} C
inst✝⁵ : Preadditive C
𝕜 : Type u_2
inst✝⁴ : DivisionRing 𝕜
inst✝³ : HasKernels C
inst✝² : Linear 𝕜 C
X Y : C
inst✝¹ : Simple X
inst✝ : Simple Y
h : (X ≅ Y) → False
f : X ⟶ Y
p : ¬IsIso f ↔ f = 0
⊢ f = 0

tactic: exact p.mp fun _ => h (asIso f)
state_before: C : Type u_1
inst✝⁶ : Category.{u_3, u_1} C
inst✝⁵ : Preadditive C
𝕜 : Type u_2
inst✝⁴ : DivisionRing 𝕜
inst✝³ : HasKernels C
inst✝² : Linear 𝕜 C
X Y : C
inst✝¹ : Simple X
inst✝ : Simple Y
h : (X ≅ Y) → False
f : X ⟶ Y
p : ¬IsIso f ↔ f = 0
⊢ f = 0
state_after: no goals
Theorem: Nat.image_cast_int_Iio
File: Mathlib/Data/Nat/Cast/SetInterval.lean

tactic: rw [← Ico_bot, image_cast_int_Ico]
state_before: a : ℕ
⊢ Nat.cast '' Iio a = Ico 0 ↑a
state_after: a : ℕ
⊢ Ico ↑⊥ ↑a = Ico 0 ↑a

tactic: rfl
state_before: a : ℕ
⊢ Ico ↑⊥ ↑a = Ico 0 ↑a
state_after: no goals
Theorem: SetTheory.PGame.relabel_moveRight
File: Mathlib/SetTheory/Game/PGame.lean

tactic: simp
state_before: xl xr : Type u
x : PGame
xl' xr' : Type u_1
el : xl' ≃ x.LeftMoves
er : xr' ≃ x.RightMoves
j : x.RightMoves
⊢ (relabel el er).moveRight (er.symm j) = x.moveRight j
state_after: no goals
Theorem: Ordinal.IsNormal.le_iff_deriv
File: Mathlib/SetTheory/Ordinal/FixedPoint.lean

tactic: unfold deriv
state_before: f✝ : Ordinal.{u} → Ordinal.{u}
f : Ordinal.{u_1} → Ordinal.{u_1}
H : IsNormal f
a : Ordinal.{u_1}
⊢ f a ≤ a ↔ ∃ o, deriv f o = a
state_after: f✝ : Ordinal.{u} → Ordinal.{u}
f : Ordinal.{u_1} → Ordinal.{u_1}
H : IsNormal f
a : Ordinal.{u_1}
⊢ f a ≤ a ↔ ∃ o, derivFamily (fun x => f) o = a

tactic: rw [← le_iff_derivFamily fun _ : Unit => H]
state_before: f✝ : Ordinal.{u} → Ordinal.{u}
f : Ordinal.{u_1} → Ordinal.{u_1}
H : IsNormal f
a : Ordinal.{u_1}
⊢ f a ≤ a ↔ ∃ o, derivFamily (fun x => f) o = a
state_after: f✝ : Ordinal.{u} → Ordinal.{u}
f : Ordinal.{u_1} → Ordinal.{u_1}
H : IsNormal f
a : Ordinal.{u_1}
⊢ f a ≤ a ↔ Unit → f a ≤ a

tactic: exact ⟨fun h _ => h, fun h => h Unit.unit⟩
state_before: f✝ : Ordinal.{u} → Ordinal.{u}
f : Ordinal.{u_1} → Ordinal.{u_1}
H : IsNormal f
a : Ordinal.{u_1}
⊢ f a ≤ a ↔ Unit → f a ≤ a
state_after: no goals
Theorem: Quaternion.coe_real_complex_mul
File: Mathlib/Analysis/Quaternion.lean

tactic: ext <;> simp
state_before: r : ℝ
z : ℂ
⊢ r • ↑z = ↑r * ↑z
state_after: no goals
Theorem: ContDiffBump.hasCompactSupport_normed
File: Mathlib/Analysis/Calculus/BumpFunction/Normed.lean

tactic: simp only [HasCompactSupport, f.tsupport_normed_eq (μ := μ), isCompact_closedBall]
state_before: E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : HasContDiffBump E
inst✝⁴ : MeasurableSpace E
c : E
f : ContDiffBump c
x : E
n : ℕ∞
μ : Measure E
inst✝³ : BorelSpace E
inst✝² : FiniteDimensional ℝ E
inst✝¹ : IsLocallyFiniteMeasure μ
inst✝ : μ.IsOpenPosMeasure
⊢ HasCompactSupport (f.normed μ)
state_after: no goals
Theorem: Finsupp.embDomain_injective
File: Mathlib/Data/Finsupp/Defs.lean

tactic: simpa only [embDomain_apply] using DFunLike.ext_iff.1 h (f a)
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
f : α ↪ β
l₁ l₂ : α →₀ M
h : embDomain f l₁ = embDomain f l₂
a : α
⊢ l₁ a = l₂ a
state_after: no goals
Theorem: WeierstrassCurve.Φ_two
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean

tactic: erw [Φ_ofNat, preΨ'_two, if_neg Nat.not_even_one, Ψ₂Sq, preΨ'_three, preΨ'_one, mul_one, Ψ₃]
state_before: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
⊢ W.Φ 2 = X ^ 4 - C W.b₄ * X ^ 2 - C (2 * W.b₆) * X - C W.b₈
state_after: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
⊢ X * 1 ^ 2 * (C 4 * X ^ 3 + C W.b₂ * X ^ 2 + C (2 * W.b₄) * X + C W.b₆) -
      (3 * X ^ 4 + C W.b₂ * X ^ 3 + 3 * C W.b₄ * X ^ 2 + 3 * C W.b₆ * X + C W.b₈) * 1 =
    X ^ 4 - C W.b₄ * X ^ 2 - C (2 * W.b₆) * X - C W.b₈

tactic: C_simp
state_before: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
⊢ X * 1 ^ 2 * (C 4 * X ^ 3 + C W.b₂ * X ^ 2 + C (2 * W.b₄) * X + C W.b₆) -
      (3 * X ^ 4 + C W.b₂ * X ^ 3 + 3 * C W.b₄ * X ^ 2 + 3 * C W.b₆ * X + C W.b₈) * 1 =
    X ^ 4 - C W.b₄ * X ^ 2 - C (2 * W.b₆) * X - C W.b₈
state_after: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
⊢ X * 1 ^ 2 * (4 * X ^ 3 + C W.b₂ * X ^ 2 + 2 * C W.b₄ * X + C W.b₆) -
      (3 * X ^ 4 + C W.b₂ * X ^ 3 + 3 * C W.b₄ * X ^ 2 + 3 * C W.b₆ * X + C W.b₈) * 1 =
    X ^ 4 - C W.b₄ * X ^ 2 - 2 * C W.b₆ * X - C W.b₈

tactic: ring1
state_before: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
⊢ X * 1 ^ 2 * (4 * X ^ 3 + C W.b₂ * X ^ 2 + 2 * C W.b₄ * X + C W.b₆) -
      (3 * X ^ 4 + C W.b₂ * X ^ 3 + 3 * C W.b₄ * X ^ 2 + 3 * C W.b₆ * X + C W.b₈) * 1 =
    X ^ 4 - C W.b₄ * X ^ 2 - 2 * C W.b₆ * X - C W.b₈
state_after: no goals
Theorem: Set.covBy_iff_exists_insert
File: Mathlib/Order/Cover.lean

tactic: rintro ⟨a, ha, rfl⟩
state_before: α : Type u_1
β : Type u_2
s t : Set α
a : α
⊢ (∃ a ∉ s, insert a s = t) → s ⋖ t
state_after: case intro.intro
α : Type u_1
β : Type u_2
s : Set α
a✝ a : α
ha : a ∉ s
⊢ s ⋖ insert a s

tactic: exact covBy_insert ha
state_before: case intro.intro
α : Type u_1
β : Type u_2
s : Set α
a✝ a : α
ha : a ∉ s
⊢ s ⋖ insert a s
state_after: no goals
Theorem: intervalIntegral.sum_integral_adjacent_intervals
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: rw [← Nat.Ico_zero_eq_range]
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a✝ b c d : ℝ
f g : ℝ → E
μ : Measure ℝ
a : ℕ → ℝ
n : ℕ
hint : ∀ k < n, IntervalIntegrable f μ (a k) (a (k + 1))
⊢ ∑ k ∈ Finset.range n, ∫ (x : ℝ) in a k..a (k + 1), f x ∂μ = ∫ (x : ℝ) in a 0 ..a n, f x ∂μ
state_after: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a✝ b c d : ℝ
f g : ℝ → E
μ : Measure ℝ
a : ℕ → ℝ
n : ℕ
hint : ∀ k < n, IntervalIntegrable f μ (a k) (a (k + 1))
⊢ ∑ k ∈ Finset.Ico 0 n, ∫ (x : ℝ) in a k..a (k + 1), f x ∂μ = ∫ (x : ℝ) in a 0 ..a n, f x ∂μ

tactic: exact sum_integral_adjacent_intervals_Ico (zero_le n) fun k hk => hint k hk.2
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a✝ b c d : ℝ
f g : ℝ → E
μ : Measure ℝ
a : ℕ → ℝ
n : ℕ
hint : ∀ k < n, IntervalIntegrable f μ (a k) (a (k + 1))
⊢ ∑ k ∈ Finset.Ico 0 n, ∫ (x : ℝ) in a k..a (k + 1), f x ∂μ = ∫ (x : ℝ) in a 0 ..a n, f x ∂μ
state_after: no goals
Theorem: List.formPerm_apply_nthLe
File: Mathlib/GroupTheory/Perm/List.lean

tactic: apply formPerm_apply_get _ h
state_before: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
l : List α
x : α
xs : List α
h : xs.Nodup
n : ℕ
hn : n < xs.length
⊢ xs.formPerm (xs.nthLe n hn) = xs.nthLe ((n + 1) % xs.length) ⋯
state_after: no goals
Theorem: Fin.succ_predAbove_zero
File: Mathlib/Data/Fin/Basic.lean

tactic: rcases exists_succ_eq_of_ne_zero h with ⟨k, rfl⟩
state_before: n m : ℕ
inst✝ : NeZero n
j : Fin (n + 1)
h : j ≠ 0
⊢ (predAbove 0 j).succ = j
state_after: case intro
n m : ℕ
inst✝ : NeZero n
k : Fin n
h : k.succ ≠ 0
⊢ (predAbove 0 k.succ).succ = k.succ

tactic: rw [predAbove_zero_succ]
state_before: case intro
n m : ℕ
inst✝ : NeZero n
k : Fin n
h : k.succ ≠ 0
⊢ (predAbove 0 k.succ).succ = k.succ
state_after: no goals
Theorem: nhds_prod_eq
File: Mathlib/Topology/Constructions.lean

tactic: dsimp only [SProd.sprod]
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
x : X
y : Y
⊢ 𝓝 (x, y) = 𝓝 x ×ˢ 𝓝 y
state_after: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
x : X
y : Y
⊢ 𝓝 (x, y) = (𝓝 x).prod (𝓝 y)

tactic: rw [Filter.prod, instTopologicalSpaceProd, nhds_inf (t₁ := TopologicalSpace.induced Prod.fst _)
  (t₂ := TopologicalSpace.induced Prod.snd _), nhds_induced, nhds_induced]
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
x : X
y : Y
⊢ 𝓝 (x, y) = (𝓝 x).prod (𝓝 y)
state_after: no goals
Theorem: Prime.abs
File: Mathlib/RingTheory/Prime.lean

tactic: obtain h | h := abs_choice p <;> rw [h]
state_before: α : Type u_1
inst✝¹ : CommRing α
inst✝ : LinearOrder α
p : α
hp : Prime p
⊢ Prime |p|
state_after: case inl
α : Type u_1
inst✝¹ : CommRing α
inst✝ : LinearOrder α
p : α
hp : Prime p
h : |p| = p
⊢ Prime p

case inr
α : Type u_1
inst✝¹ : CommRing α
inst✝ : LinearOrder α
p : α
hp : Prime p
h : |p| = -p
⊢ Prime (-p)

tactic: exact hp
state_before: case inl
α : Type u_1
inst✝¹ : CommRing α
inst✝ : LinearOrder α
p : α
hp : Prime p
h : |p| = p
⊢ Prime p
state_after: no goals

tactic: exact hp.neg
state_before: case inr
α : Type u_1
inst✝¹ : CommRing α
inst✝ : LinearOrder α
p : α
hp : Prime p
h : |p| = -p
⊢ Prime (-p)
state_after: no goals
Theorem: Finpartition.bot_isUniform
File: Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean

tactic: rw [Finpartition.IsUniform, Finpartition.card_bot, nonUniforms_bot _ hε, Finset.card_empty,
  Nat.cast_zero]
state_before: α : Type u_1
𝕜 : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : DecidableEq α
A : Finset α
P : Finpartition A
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε δ : 𝕜
u v : Finset α
hε : 0 < ε
⊢ ⊥.IsUniform G ε
state_after: α : Type u_1
𝕜 : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : DecidableEq α
A : Finset α
P : Finpartition A
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε δ : 𝕜
u v : Finset α
hε : 0 < ε
⊢ 0 ≤ ↑(A.card * (A.card - 1)) * ε

tactic: exact mul_nonneg (Nat.cast_nonneg _) hε.le
state_before: α : Type u_1
𝕜 : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : DecidableEq α
A : Finset α
P : Finpartition A
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε δ : 𝕜
u v : Finset α
hε : 0 < ε
⊢ 0 ≤ ↑(A.card * (A.card - 1)) * ε
state_after: no goals
Theorem: Matrix.fromRows_zero
File: Mathlib/Data/Matrix/ColumnRowPartitioned.lean

tactic: ext (_ | _) _ <;> simp
state_before: R : Type u_1
m : Type u_2
m₁ : Type u_3
m₂ : Type u_4
n : Type u_5
n₁ : Type u_6
n₂ : Type u_7
inst✝¹² : Fintype m
inst✝¹¹ : Fintype m₁
inst✝¹⁰ : Fintype m₂
inst✝⁹ : Fintype n
inst✝⁸ : Fintype n₁
inst✝⁷ : Fintype n₂
inst✝⁶ : DecidableEq m
inst✝⁵ : DecidableEq m₁
inst✝⁴ : DecidableEq m₂
inst✝³ : DecidableEq n
inst✝² : DecidableEq n₁
inst✝¹ : DecidableEq n₂
inst✝ : Semiring R
⊢ fromRows 0 0 = 0
state_after: no goals
Theorem: IsSubgroup.mem_norm_comm
File: Mathlib/Deprecated/Subgroup.lean

tactic: have h : a⁻¹ * (a * b) * a⁻¹⁻¹ ∈ s := hs.normal (a * b) hab a⁻¹
state_before: G : Type u_1
H : Type u_2
A : Type u_3
a✝ a₁ a₂ b✝ c : G
inst✝ : Group G
s : Set G
hs : IsNormalSubgroup s
a b : G
hab : a * b ∈ s
⊢ b * a ∈ s
state_after: G : Type u_1
H : Type u_2
A : Type u_3
a✝ a₁ a₂ b✝ c : G
inst✝ : Group G
s : Set G
hs : IsNormalSubgroup s
a b : G
hab : a * b ∈ s
h : a⁻¹ * (a * b) * a⁻¹⁻¹ ∈ s
⊢ b * a ∈ s

tactic: simp at h
state_before: G : Type u_1
H : Type u_2
A : Type u_3
a✝ a₁ a₂ b✝ c : G
inst✝ : Group G
s : Set G
hs : IsNormalSubgroup s
a b : G
hab : a * b ∈ s
h : a⁻¹ * (a * b) * a⁻¹⁻¹ ∈ s
⊢ b * a ∈ s
state_after: G : Type u_1
H : Type u_2
A : Type u_3
a✝ a₁ a₂ b✝ c : G
inst✝ : Group G
s : Set G
hs : IsNormalSubgroup s
a b : G
hab : a * b ∈ s
h : b * a ∈ s
⊢ b * a ∈ s

tactic: exact h
state_before: G : Type u_1
H : Type u_2
A : Type u_3
a✝ a₁ a₂ b✝ c : G
inst✝ : Group G
s : Set G
hs : IsNormalSubgroup s
a b : G
hab : a * b ∈ s
h : b * a ∈ s
⊢ b * a ∈ s
state_after: no goals
Theorem: Combinatorics.Line.apply_none
File: Mathlib/Combinatorics/HalesJewett.lean

tactic: simp only [Option.getD_none, h, l.apply]
state_before: α : Type u_1
ι : Type u_2
l : Line α ι
x : α
i : ι
h : l.idxFun i = none
⊢ (fun x i => (l.idxFun i).getD x) x i = x
state_after: no goals
Theorem: inv_mul_le_one_iff
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [mul_one]
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c d : α
⊢ b ≤ a * 1 ↔ b ≤ a
state_after: no goals
Theorem: IsConformalMap.smul
File: Mathlib/Analysis/NormedSpace/ConformalLinearMap.lean

tactic: rcases hf with ⟨c', hc', li, rfl⟩
state_before: R : Type u_1
M : Type u_2
N : Type u_3
G : Type u_4
M' : Type u_5
inst✝⁸ : NormedField R
inst✝⁷ : SeminormedAddCommGroup M
inst✝⁶ : SeminormedAddCommGroup N
inst✝⁵ : SeminormedAddCommGroup G
inst✝⁴ : NormedSpace R M
inst✝³ : NormedSpace R N
inst✝² : NormedSpace R G
inst✝¹ : NormedAddCommGroup M'
inst✝ : NormedSpace R M'
f : M →L[R] N
g : N →L[R] G
c✝ : R
hf : IsConformalMap f
c : R
hc : c ≠ 0
⊢ IsConformalMap (c • f)
state_after: case intro.intro.intro
R : Type u_1
M : Type u_2
N : Type u_3
G : Type u_4
M' : Type u_5
inst✝⁸ : NormedField R
inst✝⁷ : SeminormedAddCommGroup M
inst✝⁶ : SeminormedAddCommGroup N
inst✝⁵ : SeminormedAddCommGroup G
inst✝⁴ : NormedSpace R M
inst✝³ : NormedSpace R N
inst✝² : NormedSpace R G
inst✝¹ : NormedAddCommGroup M'
inst✝ : NormedSpace R M'
g : N →L[R] G
c✝ c : R
hc : c ≠ 0
c' : R
hc' : c' ≠ 0
li : M →ₗᵢ[R] N
⊢ IsConformalMap (c • c' • li.toContinuousLinearMap)

tactic: exact ⟨c * c', mul_ne_zero hc hc', li, smul_smul _ _ _⟩
state_before: case intro.intro.intro
R : Type u_1
M : Type u_2
N : Type u_3
G : Type u_4
M' : Type u_5
inst✝⁸ : NormedField R
inst✝⁷ : SeminormedAddCommGroup M
inst✝⁶ : SeminormedAddCommGroup N
inst✝⁵ : SeminormedAddCommGroup G
inst✝⁴ : NormedSpace R M
inst✝³ : NormedSpace R N
inst✝² : NormedSpace R G
inst✝¹ : NormedAddCommGroup M'
inst✝ : NormedSpace R M'
g : N →L[R] G
c✝ c : R
hc : c ≠ 0
c' : R
hc' : c' ≠ 0
li : M →ₗᵢ[R] N
⊢ IsConformalMap (c • c' • li.toContinuousLinearMap)
state_after: no goals
Theorem: Finset.strongInductionOn_eq
File: Mathlib/Data/Finset/Card.lean

tactic: dsimp only [strongInductionOn]
state_before: α : Type u_1
β : Type u_2
R : Type u_3
s✝ t u : Finset α
f : α → β
n : ℕ
p : Finset α → Sort u_4
s : Finset α
H : (s : Finset α) → ((t : Finset α) → t ⊂ s → p t) → p s
⊢ s.strongInductionOn H = H s fun t x => t.strongInductionOn H
state_after: α : Type u_1
β : Type u_2
R : Type u_3
s✝ t u : Finset α
f : α → β
n : ℕ
p : Finset α → Sort u_4
s : Finset α
H : (s : Finset α) → ((t : Finset α) → t ⊂ s → p t) → p s
⊢ strongInduction H s = H s fun t x => strongInduction H t

tactic: rw [strongInduction]
state_before: α : Type u_1
β : Type u_2
R : Type u_3
s✝ t u : Finset α
f : α → β
n : ℕ
p : Finset α → Sort u_4
s : Finset α
H : (s : Finset α) → ((t : Finset α) → t ⊂ s → p t) → p s
⊢ strongInduction H s = H s fun t x => strongInduction H t
state_after: no goals
Theorem: Prod.openSegment_subset
File: Mathlib/Analysis/Convex/Segment.lean

tactic: rintro z ⟨a, b, ha, hb, hab, hz⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y : E × F
⊢ openSegment 𝕜 x y ⊆ openSegment 𝕜 x.1 y.1 ×ˢ openSegment 𝕜 x.2 y.2
state_after: case intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y z : E × F
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
hz : a • x + b • y = z
⊢ z ∈ openSegment 𝕜 x.1 y.1 ×ˢ openSegment 𝕜 x.2 y.2

tactic: exact ⟨⟨a, b, ha, hb, hab, congr_arg Prod.fst hz⟩, a, b, ha, hb, hab, congr_arg Prod.snd hz⟩
state_before: case intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y z : E × F
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
hz : a • x + b • y = z
⊢ z ∈ openSegment 𝕜 x.1 y.1 ×ˢ openSegment 𝕜 x.2 y.2
state_after: no goals
Theorem: Group.sum_card_conj_classes_eq_card
File: Mathlib/GroupTheory/ClassEquation.lean

tactic: classical
cases nonempty_fintype G
rw [Nat.card_eq_fintype_card, ← sum_conjClasses_card_eq_card, finsum_eq_sum_of_fintype]
simp [Set.ncard_eq_toFinset_card']
state_before: G : Type u_1
inst✝¹ : Group G
inst✝ : Finite G
⊢ ∑ᶠ (x : ConjClasses G), x.carrier.ncard = Nat.card G
state_after: no goals

tactic: cases nonempty_fintype G
state_before: G : Type u_1
inst✝¹ : Group G
inst✝ : Finite G
⊢ ∑ᶠ (x : ConjClasses G), x.carrier.ncard = Nat.card G
state_after: case intro
G : Type u_1
inst✝¹ : Group G
inst✝ : Finite G
val✝ : Fintype G
⊢ ∑ᶠ (x : ConjClasses G), x.carrier.ncard = Nat.card G

tactic: rw [Nat.card_eq_fintype_card, ← sum_conjClasses_card_eq_card, finsum_eq_sum_of_fintype]
state_before: case intro
G : Type u_1
inst✝¹ : Group G
inst✝ : Finite G
val✝ : Fintype G
⊢ ∑ᶠ (x : ConjClasses G), x.carrier.ncard = Nat.card G
state_after: case intro
G : Type u_1
inst✝¹ : Group G
inst✝ : Finite G
val✝ : Fintype G
⊢ ∑ i : ConjClasses G, i.carrier.ncard = ∑ x : ConjClasses G, x.carrier.toFinset.card

tactic: simp [Set.ncard_eq_toFinset_card']
state_before: case intro
G : Type u_1
inst✝¹ : Group G
inst✝ : Finite G
val✝ : Fintype G
⊢ ∑ i : ConjClasses G, i.carrier.ncard = ∑ x : ConjClasses G, x.carrier.toFinset.card
state_after: no goals
Theorem: CauSeq.Completion.inv_mk
File: Mathlib/Algebra/Order/CauSeq/Completion.lean

tactic: rw [dif_neg]
state_before: α : Type u_1
inst✝² : LinearOrderedField α
β : Type u_2
inst✝¹ : DivisionRing β
abv : β → α
inst✝ : IsAbsoluteValue abv
f : CauSeq β abv
hf : ¬f.LimZero
⊢ (if h : f.LimZero then 0 else f.inv h) = f.inv hf
state_after: no goals
Theorem: Opens.pretopology_toGrothendieck
File: Mathlib/CategoryTheory/Sites/Spaces.lean

tactic: rw [← pretopology_ofGrothendieck]
state_before: T : Type u
inst✝ : TopologicalSpace T
⊢ Pretopology.toGrothendieck (Opens T) (pretopology T) = grothendieckTopology T
state_after: T : Type u
inst✝ : TopologicalSpace T
⊢ Pretopology.toGrothendieck (Opens T) (Pretopology.ofGrothendieck (Opens T) (grothendieckTopology T)) =
    grothendieckTopology T

tactic: apply (Pretopology.gi (Opens T)).l_u_eq
state_before: T : Type u
inst✝ : TopologicalSpace T
⊢ Pretopology.toGrothendieck (Opens T) (Pretopology.ofGrothendieck (Opens T) (grothendieckTopology T)) =
    grothendieckTopology T
state_after: no goals
Theorem: CategoryTheory.Functor.IsLocalization.mk'
File: Mathlib/CategoryTheory/Localization/Predicate.lean

tactic: simp only [← Functor.assoc, Localization.Construction.fac, h₂.fac, Functor.comp_id]
state_before: C : Type u_1
D : Type u_2
inst✝² : Category.{u_4, u_1} C
inst✝¹ : Category.{u_5, u_2} D
L : C ⥤ D
W : MorphismProperty C
E : Type u_3
inst✝ : Category.{?u.5160, u_3} E
h₁ : Localization.StrictUniversalPropertyFixedTarget L W D
h₂ : Localization.StrictUniversalPropertyFixedTarget L W W.Localization
⊢ W.Q ⋙ 𝟭 W.Localization = W.Q ⋙ Localization.Construction.lift L ⋯ ⋙ h₂.lift W.Q ⋯
state_after: no goals

tactic: simp only [← Functor.assoc, h₂.fac, Localization.Construction.fac, Functor.comp_id]
state_before: C : Type u_1
D : Type u_2
inst✝² : Category.{u_4, u_1} C
inst✝¹ : Category.{u_5, u_2} D
L : C ⥤ D
W : MorphismProperty C
E : Type u_3
inst✝ : Category.{?u.5160, u_3} E
h₁ : Localization.StrictUniversalPropertyFixedTarget L W D
h₂ : Localization.StrictUniversalPropertyFixedTarget L W W.Localization
⊢ L ⋙ h₂.lift W.Q ⋯ ⋙ Localization.Construction.lift L ⋯ = L ⋙ 𝟭 D
state_after: no goals
Theorem: Batteries.HashMap.Imp.empty_buckets
File: .lake/packages/batteries/Batteries/Data/HashMap/Lemmas.lean

tactic: simp
state_before: α : Type ?u.21
β : Type ?u.20
⊢ 0 < (mkArray 8 AssocList.nil).size
state_after: no goals
Theorem: Finset.shatters_empty
File: Mathlib/Combinatorics/SetFamily/Shatter.lean

tactic: rwa [empty_inter, eq_comm, ← subset_empty]
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s✝ t✝ : Finset α
a : α
n : ℕ
x✝ : 𝒜.Nonempty
t : Finset α
ht : t ⊆ ∅
s : Finset α
hs : s ∈ 𝒜
⊢ ∅ ∩ s = t
state_after: no goals