1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MvPolynomial.support_nonempty
File: Mathlib/Algebra/MvPolynomial/Basic.lean

tactic: rw [Finset.nonempty_iff_ne_empty, ne_eq, support_eq_empty]
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q p : MvPolynomial σ R
⊢ p.support.Nonempty ↔ p ≠ 0
state_after: no goals
Theorem: AddMonoidAlgebra.supDegree_sub_le
File: Mathlib/Algebra/MonoidAlgebra/Degree.lean

tactic: rw [sub_eq_add_neg, ← supDegree_neg (f := g)]
state_before: R : Type u_1
R' : Type u_2
A : Type u_3
T : Type u_4
B : Type u_5
ι : Type u_6
inst✝⁵ : Semiring R
inst✝⁴ : Ring R'
inst✝³ : AddZeroClass A
inst✝² : SemilatticeSup B
inst✝¹ : Add B
inst✝ : OrderBot B
D : A → B
f g : R'[A]
⊢ supDegree D (f - g) ≤ supDegree D f ⊔ supDegree D g
state_after: R : Type u_1
R' : Type u_2
A : Type u_3
T : Type u_4
B : Type u_5
ι : Type u_6
inst✝⁵ : Semiring R
inst✝⁴ : Ring R'
inst✝³ : AddZeroClass A
inst✝² : SemilatticeSup B
inst✝¹ : Add B
inst✝ : OrderBot B
D : A → B
f g : R'[A]
⊢ supDegree D (f + -g) ≤ supDegree D f ⊔ supDegree D (-g)

tactic: apply supDegree_add_le
state_before: R : Type u_1
R' : Type u_2
A : Type u_3
T : Type u_4
B : Type u_5
ι : Type u_6
inst✝⁵ : Semiring R
inst✝⁴ : Ring R'
inst✝³ : AddZeroClass A
inst✝² : SemilatticeSup B
inst✝¹ : Add B
inst✝ : OrderBot B
D : A → B
f g : R'[A]
⊢ supDegree D (f + -g) ≤ supDegree D f ⊔ supDegree D (-g)
state_after: no goals
Theorem: List.pmap_prev_eq_rotate_length_sub_one
File: Mathlib/Data/List/Cycle.lean

tactic: apply List.ext_nthLe
state_before: α : Type u_1
inst✝ : DecidableEq α
l : List α
x : α
h : l.Nodup
⊢ pmap l.prev l ⋯ = l.rotate (l.length - 1)
state_after: case hl
α : Type u_1
inst✝ : DecidableEq α
l : List α
x : α
h : l.Nodup
⊢ (pmap l.prev l ⋯).length = (l.rotate (l.length - 1)).length

case h
α : Type u_1
inst✝ : DecidableEq α
l : List α
x : α
h : l.Nodup
⊢ ∀ (n : ℕ) (h₁ : n < (pmap l.prev l ⋯).length) (h₂ : n < (l.rotate (l.length - 1)).length),
    (pmap l.prev l ⋯).nthLe n h₁ = (l.rotate (l.length - 1)).nthLe n h₂

tactic: simp
state_before: case hl
α : Type u_1
inst✝ : DecidableEq α
l : List α
x : α
h : l.Nodup
⊢ (pmap l.prev l ⋯).length = (l.rotate (l.length - 1)).length
state_after: no goals

tactic: intro n hn hn'
state_before: case h
α : Type u_1
inst✝ : DecidableEq α
l : List α
x : α
h : l.Nodup
⊢ ∀ (n : ℕ) (h₁ : n < (pmap l.prev l ⋯).length) (h₂ : n < (l.rotate (l.length - 1)).length),
    (pmap l.prev l ⋯).nthLe n h₁ = (l.rotate (l.length - 1)).nthLe n h₂
state_after: case h
α : Type u_1
inst✝ : DecidableEq α
l : List α
x : α
h : l.Nodup
n : ℕ
hn : n < (pmap l.prev l ⋯).length
hn' : n < (l.rotate (l.length - 1)).length
⊢ (pmap l.prev l ⋯).nthLe n hn = (l.rotate (l.length - 1)).nthLe n hn'

tactic: rw [nthLe_rotate, nthLe_pmap, prev_nthLe _ h]
state_before: case h
α : Type u_1
inst✝ : DecidableEq α
l : List α
x : α
h : l.Nodup
n : ℕ
hn : n < (pmap l.prev l ⋯).length
hn' : n < (l.rotate (l.length - 1)).length
⊢ (pmap l.prev l ⋯).nthLe n hn = (l.rotate (l.length - 1)).nthLe n hn'
state_after: no goals
Theorem: SmoothBumpFunction.support_subset_source
File: Mathlib/Geometry/Manifold/BumpFunction.lean

tactic: rw [f.support_eq_inter_preimage, ← extChartAt_source I]
state_before: E : Type uE
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : FiniteDimensional ℝ E
H : Type uH
inst✝³ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : SmoothManifoldWithCorners I M
c : M
f : SmoothBumpFunction I c
x : M
⊢ support ↑f ⊆ (chartAt H c).source
state_after: E : Type uE
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : FiniteDimensional ℝ E
H : Type uH
inst✝³ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : SmoothManifoldWithCorners I M
c : M
f : SmoothBumpFunction I c
x : M
⊢ (extChartAt I c).source ∩ ↑(extChartAt I c) ⁻¹' ball (↑(extChartAt I c) c) f.rOut ⊆ (extChartAt I c).source

tactic: exact inter_subset_left
state_before: E : Type uE
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : FiniteDimensional ℝ E
H : Type uH
inst✝³ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : SmoothManifoldWithCorners I M
c : M
f : SmoothBumpFunction I c
x : M
⊢ (extChartAt I c).source ∩ ↑(extChartAt I c) ⁻¹' ball (↑(extChartAt I c) c) f.rOut ⊆ (extChartAt I c).source
state_after: no goals
Theorem: InfTopHom.cancel_left
File: Mathlib/Order/Hom/Lattice.lean

tactic: rw [← comp_apply, h, comp_apply]
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
inst✝⁸ : FunLike F α β
inst✝⁷ : Inf α
inst✝⁶ : Top α
inst✝⁵ : Inf β
inst✝⁴ : Top β
inst✝³ : Inf γ
inst✝² : Top γ
inst✝¹ : Inf δ
inst✝ : Top δ
g : InfTopHom β γ
f₁ f₂ : InfTopHom α β
hg : Injective ⇑g
h : g.comp f₁ = g.comp f₂
a : α
⊢ g (f₁ a) = g (f₂ a)
state_after: no goals
Theorem: isCyclic_of_subgroup_isDomain
File: Mathlib/RingTheory/IntegralDomain.lean

tactic: classical
  cases nonempty_fintype G
  apply isCyclic_of_card_pow_eq_one_le
  intro n hn
  exact le_trans (card_nthRoots_subgroup_units f hf hn 1) (card_nthRoots n (f 1))
state_before: R : Type u_1
G : Type u_2
inst✝³ : CommRing R
inst✝² : IsDomain R
inst✝¹ : Group G
inst✝ : Finite G
f : G →* R
hf : Injective ⇑f
⊢ IsCyclic G
state_after: no goals

tactic: cases nonempty_fintype G
state_before: R : Type u_1
G : Type u_2
inst✝³ : CommRing R
inst✝² : IsDomain R
inst✝¹ : Group G
inst✝ : Finite G
f : G →* R
hf : Injective ⇑f
⊢ IsCyclic G
state_after: case intro
R : Type u_1
G : Type u_2
inst✝³ : CommRing R
inst✝² : IsDomain R
inst✝¹ : Group G
inst✝ : Finite G
f : G →* R
hf : Injective ⇑f
val✝ : Fintype G
⊢ IsCyclic G

tactic: apply isCyclic_of_card_pow_eq_one_le
state_before: case intro
R : Type u_1
G : Type u_2
inst✝³ : CommRing R
inst✝² : IsDomain R
inst✝¹ : Group G
inst✝ : Finite G
f : G →* R
hf : Injective ⇑f
val✝ : Fintype G
⊢ IsCyclic G
state_after: case intro.hn
R : Type u_1
G : Type u_2
inst✝³ : CommRing R
inst✝² : IsDomain R
inst✝¹ : Group G
inst✝ : Finite G
f : G →* R
hf : Injective ⇑f
val✝ : Fintype G
⊢ ∀ (n : ℕ), 0 < n → (filter (fun a => a ^ n = 1) univ).card ≤ n

tactic: intro n hn
state_before: case intro.hn
R : Type u_1
G : Type u_2
inst✝³ : CommRing R
inst✝² : IsDomain R
inst✝¹ : Group G
inst✝ : Finite G
f : G →* R
hf : Injective ⇑f
val✝ : Fintype G
⊢ ∀ (n : ℕ), 0 < n → (filter (fun a => a ^ n = 1) univ).card ≤ n
state_after: case intro.hn
R : Type u_1
G : Type u_2
inst✝³ : CommRing R
inst✝² : IsDomain R
inst✝¹ : Group G
inst✝ : Finite G
f : G →* R
hf : Injective ⇑f
val✝ : Fintype G
n : ℕ
hn : 0 < n
⊢ (filter (fun a => a ^ n = 1) univ).card ≤ n

tactic: exact le_trans (card_nthRoots_subgroup_units f hf hn 1) (card_nthRoots n (f 1))
state_before: case intro.hn
R : Type u_1
G : Type u_2
inst✝³ : CommRing R
inst✝² : IsDomain R
inst✝¹ : Group G
inst✝ : Finite G
f : G →* R
hf : Injective ⇑f
val✝ : Fintype G
n : ℕ
hn : 0 < n
⊢ (filter (fun a => a ^ n = 1) univ).card ≤ n
state_after: no goals
Theorem: Matrix.cons_val_succ'
File: Mathlib/Data/Fin/VecNotation.lean

tactic: simp only [vecCons, Fin.cons, Fin.cases_succ']
state_before: α : Type u
m n o : ℕ
m' : Type u_1
n' : Type u_2
o' : Type u_3
i : ℕ
h : i.succ < m.succ
x : α
u : Fin m → α
⊢ vecCons x u ⟨i.succ, h⟩ = u ⟨i, ⋯⟩
state_after: no goals
Theorem: CategoryTheory.MorphismProperty.RightFraction.map_eq_iff
File: Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean

tactic: rw [← leftFractionRel_op_iff, ← LeftFraction.map_eq_iff L.op W.op φ.op ψ.op,
  ← φ.op_map L (Localization.inverts _ _), ← ψ.op_map L (Localization.inverts _ _)]
state_before: C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{u_4, u_2} D
L : C ⥤ D
W : MorphismProperty C
inst✝¹ : L.IsLocalization W
inst✝ : W.HasRightCalculusOfFractions
X Y : C
φ ψ : W.RightFraction X Y
⊢ φ.map L ⋯ = ψ.map L ⋯ ↔ RightFractionRel φ ψ
state_after: C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{u_4, u_2} D
L : C ⥤ D
W : MorphismProperty C
inst✝¹ : L.IsLocalization W
inst✝ : W.HasRightCalculusOfFractions
X Y : C
φ ψ : W.RightFraction X Y
⊢ φ.map L ⋯ = ψ.map L ⋯ ↔ (φ.map L ⋯).op = (ψ.map L ⋯).op

tactic: constructor
state_before: C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{u_4, u_2} D
L : C ⥤ D
W : MorphismProperty C
inst✝¹ : L.IsLocalization W
inst✝ : W.HasRightCalculusOfFractions
X Y : C
φ ψ : W.RightFraction X Y
⊢ φ.map L ⋯ = ψ.map L ⋯ ↔ (φ.map L ⋯).op = (ψ.map L ⋯).op
state_after: case mp
C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{u_4, u_2} D
L : C ⥤ D
W : MorphismProperty C
inst✝¹ : L.IsLocalization W
inst✝ : W.HasRightCalculusOfFractions
X Y : C
φ ψ : W.RightFraction X Y
⊢ φ.map L ⋯ = ψ.map L ⋯ → (φ.map L ⋯).op = (ψ.map L ⋯).op

case mpr
C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{u_4, u_2} D
L : C ⥤ D
W : MorphismProperty C
inst✝¹ : L.IsLocalization W
inst✝ : W.HasRightCalculusOfFractions
X Y : C
φ ψ : W.RightFraction X Y
⊢ (φ.map L ⋯).op = (ψ.map L ⋯).op → φ.map L ⋯ = ψ.map L ⋯

tactic: apply Quiver.Hom.unop_inj
state_before: case mp
C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{u_4, u_2} D
L : C ⥤ D
W : MorphismProperty C
inst✝¹ : L.IsLocalization W
inst✝ : W.HasRightCalculusOfFractions
X Y : C
φ ψ : W.RightFraction X Y
⊢ φ.map L ⋯ = ψ.map L ⋯ → (φ.map L ⋯).op = (ψ.map L ⋯).op
state_after: no goals

tactic: apply Quiver.Hom.op_inj
state_before: case mpr
C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{u_4, u_2} D
L : C ⥤ D
W : MorphismProperty C
inst✝¹ : L.IsLocalization W
inst✝ : W.HasRightCalculusOfFractions
X Y : C
φ ψ : W.RightFraction X Y
⊢ (φ.map L ⋯).op = (ψ.map L ⋯).op → φ.map L ⋯ = ψ.map L ⋯
state_after: no goals
Theorem: Fin.predAbove_zero_succ
File: Mathlib/Data/Fin/Basic.lean

tactic: rw [predAbove_succ_of_le _ _ (Fin.zero_le' _)]
state_before: n m : ℕ
inst✝ : NeZero n
i : Fin n
⊢ predAbove 0 i.succ = i
state_after: no goals
Theorem: CategoryTheory.ProjectiveResolution.complex_d_comp_π_f_zero
File: Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean

tactic: rw [← P.π.comm 1 0, single_obj_d, comp_zero]
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
Z : C
P : ProjectiveResolution Z
⊢ P.complex.d 1 0 ≫ P.π.f 0 = 0
state_after: no goals
Theorem: toIcoMod_add_right
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simpa only [one_zsmul] using toIcoMod_add_zsmul hp a b 1
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
⊢ toIcoMod hp a (b + p) = toIcoMod hp a b
state_after: no goals
Theorem: Sum.noMinOrder_iff
File: Mathlib/Data/Sum/Order.lean

tactic: obtain ⟨b | b, h⟩ := exists_lt (inl a : Sum α β)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : LT α
inst✝ : LT β
x✝ : NoMinOrder (α ⊕ β)
a : α
⊢ ∃ b, b < a
state_after: case intro.inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : LT α
inst✝ : LT β
x✝ : NoMinOrder (α ⊕ β)
a b : α
h : inl b < inl a
⊢ ∃ b, b < a

case intro.inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : LT α
inst✝ : LT β
x✝ : NoMinOrder (α ⊕ β)
a : α
b : β
h : inr b < inl a
⊢ ∃ b, b < a

tactic: exact ⟨b, inl_lt_inl_iff.1 h⟩
state_before: case intro.inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : LT α
inst✝ : LT β
x✝ : NoMinOrder (α ⊕ β)
a b : α
h : inl b < inl a
⊢ ∃ b, b < a
state_after: no goals

tactic: exact (not_inr_lt_inl h).elim
state_before: case intro.inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : LT α
inst✝ : LT β
x✝ : NoMinOrder (α ⊕ β)
a : α
b : β
h : inr b < inl a
⊢ ∃ b, b < a
state_after: no goals

tactic: obtain ⟨b | b, h⟩ := exists_lt (inr a : Sum α β)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : LT α
inst✝ : LT β
x✝ : NoMinOrder (α ⊕ β)
a : β
⊢ ∃ b, b < a
state_after: case intro.inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : LT α
inst✝ : LT β
x✝ : NoMinOrder (α ⊕ β)
a : β
b : α
h : inl b < inr a
⊢ ∃ b, b < a

case intro.inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : LT α
inst✝ : LT β
x✝ : NoMinOrder (α ⊕ β)
a b : β
h : inr b < inr a
⊢ ∃ b, b < a

tactic: exact (not_inl_lt_inr h).elim
state_before: case intro.inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : LT α
inst✝ : LT β
x✝ : NoMinOrder (α ⊕ β)
a : β
b : α
h : inl b < inr a
⊢ ∃ b, b < a
state_after: no goals

tactic: exact ⟨b, inr_lt_inr_iff.1 h⟩
state_before: case intro.inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : LT α
inst✝ : LT β
x✝ : NoMinOrder (α ⊕ β)
a b : β
h : inr b < inr a
⊢ ∃ b, b < a
state_after: no goals
Theorem: CategoryTheory.eq_of_comp_left_eq'
File: Mathlib/CategoryTheory/Category/Basic.lean

tactic: convert congr_fun (congr_fun w Z) h
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y Z✝ : C
f g : X ⟶ Y
w : (fun {Z} h => f ≫ h) = fun {Z} h => g ≫ h
Z : C
h : Y ⟶ Z
⊢ f ≫ h = g ≫ h
state_after: no goals
Theorem: CategoryTheory.Paths.lift_toPath
File: Mathlib/CategoryTheory/PathCategory.lean

tactic: dsimp [Quiver.Hom.toPath, lift]
state_before: V : Type u₁
inst✝¹ : Quiver V
C : Type u_1
inst✝ : Category.{u_2, u_1} C
φ : V ⥤q C
X Y : V
f : X ⟶ Y
⊢ (lift φ).map f.toPath = φ.map f
state_after: V : Type u₁
inst✝¹ : Quiver V
C : Type u_1
inst✝ : Category.{u_2, u_1} C
φ : V ⥤q C
X Y : V
f : X ⟶ Y
⊢ 𝟙 (φ.obj X) ≫ φ.map f = φ.map f

tactic: simp
state_before: V : Type u₁
inst✝¹ : Quiver V
C : Type u_1
inst✝ : Category.{u_2, u_1} C
φ : V ⥤q C
X Y : V
f : X ⟶ Y
⊢ 𝟙 (φ.obj X) ≫ φ.map f = φ.map f
state_after: no goals
Theorem: Commute.isNilpotent_mul_right_iff
File: Mathlib/RingTheory/Nilpotent/Basic.lean

tactic: refine ⟨?_, h_comm.isNilpotent_mul_right⟩
state_before: R : Type u_1
S : Type u_2
x y : R
inst✝ : Semiring R
h_comm : Commute x y
hx : x ∈ nonZeroDivisorsRight R
⊢ IsNilpotent (x * y) ↔ IsNilpotent y
state_after: R : Type u_1
S : Type u_2
x y : R
inst✝ : Semiring R
h_comm : Commute x y
hx : x ∈ nonZeroDivisorsRight R
⊢ IsNilpotent (x * y) → IsNilpotent y

tactic: rintro ⟨k, hk⟩
state_before: R : Type u_1
S : Type u_2
x y : R
inst✝ : Semiring R
h_comm : Commute x y
hx : x ∈ nonZeroDivisorsRight R
⊢ IsNilpotent (x * y) → IsNilpotent y
state_after: case intro
R : Type u_1
S : Type u_2
x y : R
inst✝ : Semiring R
h_comm : Commute x y
hx : x ∈ nonZeroDivisorsRight R
k : ℕ
hk : (x * y) ^ k = 0
⊢ IsNilpotent y

tactic: rw [mul_pow h_comm] at hk
state_before: case intro
R : Type u_1
S : Type u_2
x y : R
inst✝ : Semiring R
h_comm : Commute x y
hx : x ∈ nonZeroDivisorsRight R
k : ℕ
hk : (x * y) ^ k = 0
⊢ IsNilpotent y
state_after: case intro
R : Type u_1
S : Type u_2
x y : R
inst✝ : Semiring R
h_comm : Commute x y
hx : x ∈ nonZeroDivisorsRight R
k : ℕ
hk : x ^ k * y ^ k = 0
⊢ IsNilpotent y

tactic: exact ⟨k, (nonZeroDivisorsRight R).pow_mem hx k _ hk⟩
state_before: case intro
R : Type u_1
S : Type u_2
x y : R
inst✝ : Semiring R
h_comm : Commute x y
hx : x ∈ nonZeroDivisorsRight R
k : ℕ
hk : x ^ k * y ^ k = 0
⊢ IsNilpotent y
state_after: no goals
Theorem: Cardinal.aleph'_limit
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

tactic: refine le_antisymm ?_ (ciSup_le' fun i => aleph'_le.2 (le_of_lt i.2))
state_before: o : Ordinal.{u_1}
ho : o.IsLimit
⊢ aleph' o = ⨆ a, aleph' ↑a
state_after: o : Ordinal.{u_1}
ho : o.IsLimit
⊢ aleph' o ≤ ⨆ a, aleph' ↑a

tactic: rw [aleph'_le_of_limit ho]
state_before: o : Ordinal.{u_1}
ho : o.IsLimit
⊢ aleph' o ≤ ⨆ a, aleph' ↑a
state_after: o : Ordinal.{u_1}
ho : o.IsLimit
⊢ ∀ o' < o, aleph' o' ≤ ⨆ a, aleph' ↑a

tactic: exact fun a ha => le_ciSup (bddAbove_of_small _) (⟨a, ha⟩ : Iio o)
state_before: o : Ordinal.{u_1}
ho : o.IsLimit
⊢ ∀ o' < o, aleph' o' ≤ ⨆ a, aleph' ↑a
state_after: no goals
Theorem: Surreal.Multiplication.P2_neg_left
File: Mathlib/SetTheory/Surreal/Multiplication.lean

tactic: rw [P2, P2]
state_before: x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
⊢ P2 x₁ x₂ y ↔ P2 (-x₂) (-x₁) y
state_after: x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
⊢ x₁ ≈ x₂ → ⟦x₁ * y⟧ = ⟦x₂ * y⟧ ↔ -x₂ ≈ -x₁ → ⟦-x₂ * y⟧ = ⟦-x₁ * y⟧

tactic: constructor
state_before: x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
⊢ x₁ ≈ x₂ → ⟦x₁ * y⟧ = ⟦x₂ * y⟧ ↔ -x₂ ≈ -x₁ → ⟦-x₂ * y⟧ = ⟦-x₁ * y⟧
state_after: case mp
x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
⊢ (x₁ ≈ x₂ → ⟦x₁ * y⟧ = ⟦x₂ * y⟧) → -x₂ ≈ -x₁ → ⟦-x₂ * y⟧ = ⟦-x₁ * y⟧

case mpr
x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
⊢ (-x₂ ≈ -x₁ → ⟦-x₂ * y⟧ = ⟦-x₁ * y⟧) → x₁ ≈ x₂ → ⟦x₁ * y⟧ = ⟦x₂ * y⟧

tactic: rw [quot_neg_mul, quot_neg_mul, eq_comm, neg_inj, neg_equiv_neg_iff, PGame.equiv_comm]
state_before: case mp
x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
⊢ (x₁ ≈ x₂ → ⟦x₁ * y⟧ = ⟦x₂ * y⟧) → -x₂ ≈ -x₁ → ⟦-x₂ * y⟧ = ⟦-x₁ * y⟧
state_after: case mp
x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
⊢ (x₂ ≈ x₁ → ⟦x₂ * y⟧ = ⟦x₁ * y⟧) → x₂ ≈ x₁ → ⟦x₂ * y⟧ = ⟦x₁ * y⟧

tactic: rw [PGame.equiv_comm, neg_equiv_neg_iff, quot_neg_mul, quot_neg_mul, neg_inj, eq_comm]
state_before: case mpr
x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
⊢ (-x₂ ≈ -x₁ → ⟦-x₂ * y⟧ = ⟦-x₁ * y⟧) → x₁ ≈ x₂ → ⟦x₁ * y⟧ = ⟦x₂ * y⟧
state_after: case mpr
x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
⊢ (x₁ ≈ x₂ → ⟦x₁ * y⟧ = ⟦x₂ * y⟧) → x₁ ≈ x₂ → ⟦x₁ * y⟧ = ⟦x₂ * y⟧
Theorem: Euclidean.exists_pos_lt_subset_ball
File: Mathlib/Analysis/InnerProductSpace/EuclideanDist.lean

tactic: rw [ball_eq_preimage, ← image_subset_iff] at h
state_before: E : Type u_1
inst✝⁶ : AddCommGroup E
inst✝⁵ : TopologicalSpace E
inst✝⁴ : TopologicalAddGroup E
inst✝³ : T2Space E
inst✝² : Module ℝ E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : FiniteDimensional ℝ E
R : ℝ
s : Set E
x : E
hR : 0 < R
hs : IsClosed s
h : s ⊆ ball x R
⊢ ∃ r ∈ Ioo 0 R, s ⊆ ball x r
state_after: E : Type u_1
inst✝⁶ : AddCommGroup E
inst✝⁵ : TopologicalSpace E
inst✝⁴ : TopologicalAddGroup E
inst✝³ : T2Space E
inst✝² : Module ℝ E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : FiniteDimensional ℝ E
R : ℝ
s : Set E
x : E
hR : 0 < R
hs : IsClosed s
h : ⇑toEuclidean '' s ⊆ Metric.ball (toEuclidean x) R
⊢ ∃ r ∈ Ioo 0 R, s ⊆ ball x r

tactic: rcases exists_pos_lt_subset_ball hR (toEuclidean.isClosed_image.2 hs) h with ⟨r, hr, hsr⟩
state_before: E : Type u_1
inst✝⁶ : AddCommGroup E
inst✝⁵ : TopologicalSpace E
inst✝⁴ : TopologicalAddGroup E
inst✝³ : T2Space E
inst✝² : Module ℝ E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : FiniteDimensional ℝ E
R : ℝ
s : Set E
x : E
hR : 0 < R
hs : IsClosed s
h : ⇑toEuclidean '' s ⊆ Metric.ball (toEuclidean x) R
⊢ ∃ r ∈ Ioo 0 R, s ⊆ ball x r
state_after: case intro.intro
E : Type u_1
inst✝⁶ : AddCommGroup E
inst✝⁵ : TopologicalSpace E
inst✝⁴ : TopologicalAddGroup E
inst✝³ : T2Space E
inst✝² : Module ℝ E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : FiniteDimensional ℝ E
R : ℝ
s : Set E
x : E
hR : 0 < R
hs : IsClosed s
h : ⇑toEuclidean '' s ⊆ Metric.ball (toEuclidean x) R
r : ℝ
hr : r ∈ Ioo 0 R
hsr : ⇑toEuclidean '' s ⊆ Metric.ball (toEuclidean x) r
⊢ ∃ r ∈ Ioo 0 R, s ⊆ ball x r

tactic: exact ⟨r, hr, image_subset_iff.1 hsr⟩
state_before: case intro.intro
E : Type u_1
inst✝⁶ : AddCommGroup E
inst✝⁵ : TopologicalSpace E
inst✝⁴ : TopologicalAddGroup E
inst✝³ : T2Space E
inst✝² : Module ℝ E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : FiniteDimensional ℝ E
R : ℝ
s : Set E
x : E
hR : 0 < R
hs : IsClosed s
h : ⇑toEuclidean '' s ⊆ Metric.ball (toEuclidean x) R
r : ℝ
hr : r ∈ Ioo 0 R
hsr : ⇑toEuclidean '' s ⊆ Metric.ball (toEuclidean x) r
⊢ ∃ r ∈ Ioo 0 R, s ⊆ ball x r
state_after: no goals
Theorem: finprod_mem_eq_prod_filter
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: ext x
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
f : α → M
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
hf : (mulSupport f).Finite
⊢ s ∩ mulSupport f = ↑(Finset.filter (fun x => x ∈ s) hf.toFinset) ∩ mulSupport f
state_after: case h
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
f : α → M
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
hf : (mulSupport f).Finite
x : α
⊢ x ∈ s ∩ mulSupport f ↔ x ∈ ↑(Finset.filter (fun x => x ∈ s) hf.toFinset) ∩ mulSupport f

tactic: simp [and_comm]
state_before: case h
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
f : α → M
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
hf : (mulSupport f).Finite
x : α
⊢ x ∈ s ∩ mulSupport f ↔ x ∈ ↑(Finset.filter (fun x => x ∈ s) hf.toFinset) ∩ mulSupport f
state_after: no goals
Theorem: CochainComplex.mappingCone.rotateHomotopyEquiv_comm₃
File: Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean

tactic: ext p
state_before: C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
⊢ (rotateHomotopyEquiv φ).hom ≫ (triangle (inr φ)).mor₃ = -(CategoryTheory.shiftFunctor (CochainComplex C ℤ) 1).map φ
state_after: case h
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
p : ℤ
⊢ ((rotateHomotopyEquiv φ).hom ≫ (triangle (inr φ)).mor₃).f p =
    (-(CategoryTheory.shiftFunctor (CochainComplex C ℤ) 1).map φ).f p

tactic: dsimp [rotateHomotopyEquiv]
state_before: case h
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
p : ℤ
⊢ ((rotateHomotopyEquiv φ).hom ≫ (triangle (inr φ)).mor₃).f p =
    (-(CategoryTheory.shiftFunctor (CochainComplex C ℤ) 1).map φ).f p
state_after: case h
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
p : ℤ
⊢ (lift (inr φ) (-(Cocycle.ofHom φ).leftShift 1 1 rotateHomotopyEquiv.proof_3)
            (-(inl φ).leftShift 1 0 rotateHomotopyEquiv.proof_4) ⋯).f
        p ≫
      (triangle (inr φ)).mor₃.f p =
    -φ.f (p + 1)

tactic: simp [lift_f _ _ _ _ _ (p + 1) rfl,
  (Cochain.ofHom φ).leftShift_v 1 1 (zero_add 1) p (p + 1) rfl (p + 1) (by omega)]
state_before: case h
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
p : ℤ
⊢ (lift (inr φ) (-(Cocycle.ofHom φ).leftShift 1 1 rotateHomotopyEquiv.proof_3)
            (-(inl φ).leftShift 1 0 rotateHomotopyEquiv.proof_4) ⋯).f
        p ≫
      (triangle (inr φ)).mor₃.f p =
    -φ.f (p + 1)
state_after: no goals

tactic: omega
state_before: C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
p : ℤ
⊢ p + 1 + 0 = p + 1
state_after: no goals
Theorem: Finsupp.mem_graph_iff
File: Mathlib/Data/Finsupp/Basic.lean

tactic: cases c
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
c : α × M
f : α →₀ M
⊢ c ∈ f.graph ↔ f c.1 = c.2 ∧ c.2 ≠ 0
state_after: case mk
α : 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
f : α →₀ M
fst✝ : α
snd✝ : M
⊢ (fst✝, snd✝) ∈ f.graph ↔ f (fst✝, snd✝).1 = (fst✝, snd✝).2 ∧ (fst✝, snd✝).2 ≠ 0

tactic: exact mk_mem_graph_iff
state_before: case mk
α : 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
f : α →₀ M
fst✝ : α
snd✝ : M
⊢ (fst✝, snd✝) ∈ f.graph ↔ f (fst✝, snd✝).1 = (fst✝, snd✝).2 ∧ (fst✝, snd✝).2 ≠ 0
state_after: no goals
Theorem: Matrix.dotProductᵣ_eq
File: Mathlib/Data/Matrix/Reflection.lean

tactic: simp_rw [dotProductᵣ, dotProduct, FinVec.sum_eq, FinVec.seq_eq, FinVec.map_eq,
    Function.comp_apply]
state_before: l m✝ n : ℕ
α : Type u_1
β : Type u_2
inst✝¹ : Mul α
inst✝ : AddCommMonoid α
m : ℕ
a b : Fin m → α
⊢ dotProductᵣ a b = a ⬝ᵥ b
state_after: no goals