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

tactic: rw [zpow_natCast, zpow_natCast, inv_pow]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a✝ b c d a : α
n : ℕ
⊢ a⁻¹ ^ ↑n = (a ^ ↑n)⁻¹
state_after: no goals

tactic: rw [zpow_negSucc, zpow_negSucc, inv_pow]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a✝ b c d a : α
n : ℕ
⊢ a⁻¹ ^ Int.negSucc n = (a ^ Int.negSucc n)⁻¹
state_after: no goals
Theorem: Ordinal.one_add_of_omega_le
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rw [← Ordinal.add_sub_cancel_of_le h, ← add_assoc, one_add_omega]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal.{u_4}
h : ω ≤ o
⊢ 1 + o = o
state_after: no goals
Theorem: InnerProductSpace.Core.inner_sub_sub_self
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: simp only [inner_sub_left, inner_sub_right]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ ⟪x - y, x - y⟫_𝕜 = ⟪x, x⟫_𝕜 - ⟪x, y⟫_𝕜 - ⟪y, x⟫_𝕜 + ⟪y, y⟫_𝕜
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ ⟪x, x⟫_𝕜 - ⟪y, x⟫_𝕜 - (⟪x, y⟫_𝕜 - ⟪y, y⟫_𝕜) = ⟪x, x⟫_𝕜 - ⟪x, y⟫_𝕜 - ⟪y, x⟫_𝕜 + ⟪y, y⟫_𝕜

tactic: ring
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ ⟪x, x⟫_𝕜 - ⟪y, x⟫_𝕜 - (⟪x, y⟫_𝕜 - ⟪y, y⟫_𝕜) = ⟪x, x⟫_𝕜 - ⟪x, y⟫_𝕜 - ⟪y, x⟫_𝕜 + ⟪y, y⟫_𝕜
state_after: no goals
Theorem: biSup_inf_biSup
File: Mathlib/Order/CompleteBooleanAlgebra.lean

tactic: simp only [iSup_subtype', iSup_inf_iSup]
state_before: α : Type u
β : Type v
ι✝ : Sort w
κ : ι✝ → Sort w'
inst✝ : Frame α
s✝ t✝ : Set α
a b : α
ι : Type u_1
ι' : Type u_2
f : ι → α
g : ι' → α
s : Set ι
t : Set ι'
⊢ (⨆ i ∈ s, f i) ⊓ ⨆ j ∈ t, g j = ⨆ p ∈ s ×ˢ t, f p.1 ⊓ g p.2
state_after: α : Type u
β : Type v
ι✝ : Sort w
κ : ι✝ → Sort w'
inst✝ : Frame α
s✝ t✝ : Set α
a b : α
ι : Type u_1
ι' : Type u_2
f : ι → α
g : ι' → α
s : Set ι
t : Set ι'
⊢ ⨆ i, f ↑i.1 ⊓ g ↑i.2 = ⨆ x, f (↑x).1 ⊓ g (↑x).2

tactic: exact (Equiv.surjective _).iSup_congr (Equiv.Set.prod s t).symm fun x => rfl
state_before: α : Type u
β : Type v
ι✝ : Sort w
κ : ι✝ → Sort w'
inst✝ : Frame α
s✝ t✝ : Set α
a b : α
ι : Type u_1
ι' : Type u_2
f : ι → α
g : ι' → α
s : Set ι
t : Set ι'
⊢ ⨆ i, f ↑i.1 ⊓ g ↑i.2 = ⨆ x, f (↑x).1 ⊓ g (↑x).2
state_after: no goals
Theorem: Function.mulSupport_eq_iff
File: Mathlib/Algebra/Group/Support.lean

tactic: simp (config := { contextual := true }) only [ext_iff, mem_mulSupport, ne_eq, iff_def,
  not_imp_comm, and_comm, forall_and]
state_before: α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝² : One M
inst✝¹ : One N
inst✝ : One P
f : α → M
s : Set α
⊢ mulSupport f = s ↔ (∀ x ∈ s, f x ≠ 1) ∧ ∀ x ∉ s, f x = 1
state_after: no goals
Theorem: Subgroup.closure_mul_image_eq_top'
File: Mathlib/GroupTheory/Schreier.lean

tactic: rw [Finset.coe_image, Finset.coe_mul]
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
R✝ S✝ : Set G
inst✝ : DecidableEq G
R S : Finset G
hR : ↑R ∈ rightTransversals ↑H
hR1 : 1 ∈ R
hS : closure ↑S = ⊤
⊢ closure ↑(Finset.image (fun g => ⟨g * (↑(toFun hR g))⁻¹, ⋯⟩) (R * S)) = ⊤
state_after: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
R✝ S✝ : Set G
inst✝ : DecidableEq G
R S : Finset G
hR : ↑R ∈ rightTransversals ↑H
hR1 : 1 ∈ R
hS : closure ↑S = ⊤
⊢ closure ((fun g => ⟨g * (↑(toFun hR g))⁻¹, ⋯⟩) '' (↑R * ↑S)) = ⊤

tactic: exact closure_mul_image_eq_top hR hR1 hS
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
R✝ S✝ : Set G
inst✝ : DecidableEq G
R S : Finset G
hR : ↑R ∈ rightTransversals ↑H
hR1 : 1 ∈ R
hS : closure ↑S = ⊤
⊢ closure ((fun g => ⟨g * (↑(toFun hR g))⁻¹, ⋯⟩) '' (↑R * ↑S)) = ⊤
state_after: no goals
Theorem: Vector.map_id
File: Mathlib/Data/Vector/Basic.lean

tactic: simp only [List.map_id, Vector.toList_map]
state_before: n✝ : ℕ
α : Type u_1
n : ℕ
v : Vector α n
⊢ (map id v).toList = v.toList
state_after: no goals
Theorem: HahnSeries.coeff_orderTop_ne
File: Mathlib/RingTheory/HahnSeries/Basic.lean

tactic: have h : orderTop x ≠ ⊤ := by simp_all only [ne_eq, WithTop.coe_ne_top, not_false_eq_true]
state_before: Γ : Type u_1
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : Zero R
a b : Γ
r : R
x : HahnSeries Γ R
g : Γ
hg : x.orderTop = ↑g
⊢ x.coeff g ≠ 0
state_after: Γ : Type u_1
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : Zero R
a b : Γ
r : R
x : HahnSeries Γ R
g : Γ
hg : x.orderTop = ↑g
h : x.orderTop ≠ ⊤
⊢ x.coeff g ≠ 0

tactic: have hx : x ≠ 0 := ne_zero_iff_orderTop.mpr h
state_before: Γ : Type u_1
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : Zero R
a b : Γ
r : R
x : HahnSeries Γ R
g : Γ
hg : x.orderTop = ↑g
h : x.orderTop ≠ ⊤
⊢ x.coeff g ≠ 0
state_after: Γ : Type u_1
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : Zero R
a b : Γ
r : R
x : HahnSeries Γ R
g : Γ
hg : x.orderTop = ↑g
h : x.orderTop ≠ ⊤
hx : x ≠ 0
⊢ x.coeff g ≠ 0

tactic: rw [orderTop_of_ne hx, WithTop.coe_eq_coe] at hg
state_before: Γ : Type u_1
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : Zero R
a b : Γ
r : R
x : HahnSeries Γ R
g : Γ
hg : x.orderTop = ↑g
h : x.orderTop ≠ ⊤
hx : x ≠ 0
⊢ x.coeff g ≠ 0
state_after: Γ : Type u_1
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : Zero R
a b : Γ
r : R
x : HahnSeries Γ R
g : Γ
h : x.orderTop ≠ ⊤
hx : x ≠ 0
hg : ⋯.min ⋯ = g
⊢ x.coeff g ≠ 0

tactic: rw [← hg]
state_before: Γ : Type u_1
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : Zero R
a b : Γ
r : R
x : HahnSeries Γ R
g : Γ
h : x.orderTop ≠ ⊤
hx : x ≠ 0
hg : ⋯.min ⋯ = g
⊢ x.coeff g ≠ 0
state_after: Γ : Type u_1
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : Zero R
a b : Γ
r : R
x : HahnSeries Γ R
g : Γ
h : x.orderTop ≠ ⊤
hx : x ≠ 0
hg : ⋯.min ⋯ = g
⊢ x.coeff (⋯.min ⋯) ≠ 0

tactic: exact x.isWF_support.min_mem (support_nonempty_iff.2 hx)
state_before: Γ : Type u_1
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : Zero R
a b : Γ
r : R
x : HahnSeries Γ R
g : Γ
h : x.orderTop ≠ ⊤
hx : x ≠ 0
hg : ⋯.min ⋯ = g
⊢ x.coeff (⋯.min ⋯) ≠ 0
state_after: no goals

tactic: simp_all only [ne_eq, WithTop.coe_ne_top, not_false_eq_true]
state_before: Γ : Type u_1
R : Type u_2
inst✝¹ : PartialOrder Γ
inst✝ : Zero R
a b : Γ
r : R
x : HahnSeries Γ R
g : Γ
hg : x.orderTop = ↑g
⊢ x.orderTop ≠ ⊤
state_after: no goals
Theorem: DFinsupp.mk_neg
File: Mathlib/Data/DFinsupp/Basic.lean

tactic: simp only [neg_apply, mk_apply]
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → AddGroup (β i)
s : Finset ι
x : (i : ↑↑s) → β ↑i
i : ι
⊢ (mk s (-x)) i = (-mk s x) i
state_after: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → AddGroup (β i)
s : Finset ι
x : (i : ↑↑s) → β ↑i
i : ι
⊢ (if H : i ∈ s then (-x) ⟨i, H⟩ else 0) = -if H : i ∈ s then x ⟨i, H⟩ else 0

tactic: split_ifs <;> [rfl; rw [neg_zero]]
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → AddGroup (β i)
s : Finset ι
x : (i : ↑↑s) → β ↑i
i : ι
⊢ (if H : i ∈ s then (-x) ⟨i, H⟩ else 0) = -if H : i ∈ s then x ⟨i, H⟩ else 0
state_after: no goals
Theorem: UniversalEnvelopingAlgebra.hom_ext
File: Mathlib/Algebra/Lie/UniversalEnveloping.lean

tactic: ext
state_before: R : Type u₁
L : Type u₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
A : Type u₃
inst✝¹ : Ring A
inst✝ : Algebra R A
f : L →ₗ⁅R⁆ A
g₁ g₂ : UniversalEnvelopingAlgebra R L →ₐ[R] A
h : g₁.toLieHom.comp (ι R) = g₂.toLieHom.comp (ι R)
⊢ (lift R).symm g₁ = (lift R).symm g₂
state_after: case h
R : Type u₁
L : Type u₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
A : Type u₃
inst✝¹ : Ring A
inst✝ : Algebra R A
f : L →ₗ⁅R⁆ A
g₁ g₂ : UniversalEnvelopingAlgebra R L →ₐ[R] A
h : g₁.toLieHom.comp (ι R) = g₂.toLieHom.comp (ι R)
x✝ : L
⊢ ((lift R).symm g₁) x✝ = ((lift R).symm g₂) x✝

tactic: simp [h]
state_before: case h
R : Type u₁
L : Type u₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
A : Type u₃
inst✝¹ : Ring A
inst✝ : Algebra R A
f : L →ₗ⁅R⁆ A
g₁ g₂ : UniversalEnvelopingAlgebra R L →ₐ[R] A
h : g₁.toLieHom.comp (ι R) = g₂.toLieHom.comp (ι R)
x✝ : L
⊢ ((lift R).symm g₁) x✝ = ((lift R).symm g₂) x✝
state_after: no goals
Theorem: ProbabilityTheory.IndepSet_iff
File: Mathlib/Probability/Independence/Basic.lean

tactic: simp only [IndepSet_iff_Indep, Indep_iff]
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 Ω
s t : Set Ω
μ : Measure Ω
⊢ IndepSet s t μ ↔ ∀ (t1 t2 : Set Ω), MeasurableSet t1 → MeasurableSet t2 → μ (t1 ∩ t2) = μ t1 * μ t2
state_after: no goals
Theorem: Option.map₂_swap
File: Mathlib/Data/Option/NAry.lean

tactic: cases a <;> cases b <;> rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
f✝ : α → β → γ
a✝ : Option α
b✝ : Option β
c : Option γ
f : α → β → γ
a : Option α
b : Option β
⊢ map₂ f a b = map₂ (fun a b => f b a) b a
state_after: no goals
Theorem: Polynomial.hermite_one
File: Mathlib/RingTheory/Polynomial/Hermite/Basic.lean

tactic: rw [hermite_succ, hermite_zero]
state_before: ⊢ hermite 1 = X
state_after: ⊢ X * C 1 - derivative (C 1) = X

tactic: simp only [map_one, mul_one, derivative_one, sub_zero]
state_before: ⊢ X * C 1 - derivative (C 1) = X
state_after: no goals
Theorem: Monoid.Coprod.fst_comp_toProd
File: Mathlib/GroupTheory/Coprod/Basic.lean

tactic: rw [← fst_prod_snd, MonoidHom.fst_comp_prod]
state_before: M : Type u_1
N : Type u_2
inst✝¹ : Monoid M
inst✝ : Monoid N
⊢ (MonoidHom.fst M N).comp toProd = fst
state_after: no goals
Theorem: wcovBy_iff_Ioo_eq
File: Mathlib/Order/Cover.lean

tactic: simp [eq_empty_iff_forall_not_mem]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
a b c : α
⊢ (∀ ⦃c : α⦄, a < c → ¬c < b) ↔ Ioo a b = ∅
state_after: no goals
Theorem: HahnSeries.order_smul_not_lt
File: Mathlib/RingTheory/HahnSeries/Addition.lean

tactic: have hx : x ≠ 0 := right_ne_zero_of_smul h
state_before: Γ : Type u_1
R : Type u_2
inst✝⁴ : PartialOrder Γ
V : Type u_3
inst✝³ : Monoid R
inst✝² : AddMonoid V
inst✝¹ : DistribMulAction R V
inst✝ : Zero Γ
r : R
x : HahnSeries Γ V
h : r • x ≠ 0
⊢ ¬(r • x).order < x.order
state_after: Γ : Type u_1
R : Type u_2
inst✝⁴ : PartialOrder Γ
V : Type u_3
inst✝³ : Monoid R
inst✝² : AddMonoid V
inst✝¹ : DistribMulAction R V
inst✝ : Zero Γ
r : R
x : HahnSeries Γ V
h : r • x ≠ 0
hx : x ≠ 0
⊢ ¬(r • x).order < x.order

tactic: simp_all only [order, dite_false]
state_before: Γ : Type u_1
R : Type u_2
inst✝⁴ : PartialOrder Γ
V : Type u_3
inst✝³ : Monoid R
inst✝² : AddMonoid V
inst✝¹ : DistribMulAction R V
inst✝ : Zero Γ
r : R
x : HahnSeries Γ V
h : r • x ≠ 0
hx : x ≠ 0
⊢ ¬(r • x).order < x.order
state_after: Γ : Type u_1
R : Type u_2
inst✝⁴ : PartialOrder Γ
V : Type u_3
inst✝³ : Monoid R
inst✝² : AddMonoid V
inst✝¹ : DistribMulAction R V
inst✝ : Zero Γ
r : R
x : HahnSeries Γ V
h : r • x ≠ 0
hx : x ≠ 0
⊢ ¬⋯.min ⋯ < ⋯.min ⋯

tactic: exact Set.IsWF.min_of_subset_not_lt_min (Function.support_smul_subset_right (fun _ => r) x.coeff)
state_before: Γ : Type u_1
R : Type u_2
inst✝⁴ : PartialOrder Γ
V : Type u_3
inst✝³ : Monoid R
inst✝² : AddMonoid V
inst✝¹ : DistribMulAction R V
inst✝ : Zero Γ
r : R
x : HahnSeries Γ V
h : r • x ≠ 0
hx : x ≠ 0
⊢ ¬⋯.min ⋯ < ⋯.min ⋯
state_after: no goals
Theorem: CategoryTheory.MorphismProperty.LeftFraction₂.map_add
File: Mathlib/CategoryTheory/Localization/CalculusOfFractions/Preadditive.lean

tactic: have := hF φ.s φ.hs
state_before: C : Type u_1
D : Type u_2
inst✝⁶ : Category.{u_3, u_1} C
inst✝⁵ : Category.{u_4, u_2} D
inst✝⁴ : Preadditive C
L : C ⥤ D
W : MorphismProperty C
inst✝³ : L.IsLocalization W
inst✝² : W.HasLeftCalculusOfFractions
X Y : C
φ : W.LeftFraction₂ X Y
F : C ⥤ D
hF : W.IsInvertedBy F
inst✝¹ : Preadditive D
inst✝ : F.Additive
⊢ φ.add.map F hF = φ.fst.map F hF + φ.snd.map F hF
state_after: C : Type u_1
D : Type u_2
inst✝⁶ : Category.{u_3, u_1} C
inst✝⁵ : Category.{u_4, u_2} D
inst✝⁴ : Preadditive C
L : C ⥤ D
W : MorphismProperty C
inst✝³ : L.IsLocalization W
inst✝² : W.HasLeftCalculusOfFractions
X Y : C
φ : W.LeftFraction₂ X Y
F : C ⥤ D
hF : W.IsInvertedBy F
inst✝¹ : Preadditive D
inst✝ : F.Additive
this : IsIso (F.map φ.s)
⊢ φ.add.map F hF = φ.fst.map F hF + φ.snd.map F hF

tactic: rw [← cancel_mono (F.map φ.s), add_comp, LeftFraction.map_comp_map_s,
  LeftFraction.map_comp_map_s, LeftFraction.map_comp_map_s, F.map_add]
state_before: C : Type u_1
D : Type u_2
inst✝⁶ : Category.{u_3, u_1} C
inst✝⁵ : Category.{u_4, u_2} D
inst✝⁴ : Preadditive C
L : C ⥤ D
W : MorphismProperty C
inst✝³ : L.IsLocalization W
inst✝² : W.HasLeftCalculusOfFractions
X Y : C
φ : W.LeftFraction₂ X Y
F : C ⥤ D
hF : W.IsInvertedBy F
inst✝¹ : Preadditive D
inst✝ : F.Additive
this : IsIso (F.map φ.s)
⊢ φ.add.map F hF = φ.fst.map F hF + φ.snd.map F hF
state_after: no goals
Theorem: Set.exists_isOpen_lt_of_lt
File: Mathlib/MeasureTheory/Measure/Regular.lean

tactic: rcases OuterRegular.outerRegular (measurableSet_toMeasurable μ A) r
    (by rwa [measure_toMeasurable]) with
  ⟨U, hAU, hUo, hU⟩
state_before: α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : μ.OuterRegular
A : Set α
r : ℝ≥0∞
hr : μ A < r
⊢ ∃ U ⊇ A, IsOpen U ∧ μ U < r
state_after: case intro.intro.intro
α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : μ.OuterRegular
A : Set α
r : ℝ≥0∞
hr : μ A < r
U : Set α
hAU : U ⊇ toMeasurable μ A
hUo : IsOpen U
hU : μ U < r
⊢ ∃ U ⊇ A, IsOpen U ∧ μ U < r

tactic: exact ⟨U, (subset_toMeasurable _ _).trans hAU, hUo, hU⟩
state_before: case intro.intro.intro
α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : μ.OuterRegular
A : Set α
r : ℝ≥0∞
hr : μ A < r
U : Set α
hAU : U ⊇ toMeasurable μ A
hUo : IsOpen U
hU : μ U < r
⊢ ∃ U ⊇ A, IsOpen U ∧ μ U < r
state_after: no goals

tactic: rwa [measure_toMeasurable]
state_before: α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : μ.OuterRegular
A : Set α
r : ℝ≥0∞
hr : μ A < r
⊢ r > ?m.11370 (toMeasurable μ A)
state_after: no goals
Theorem: εNFA.evalFrom_append_singleton
File: Mathlib/Computability/EpsilonNFA.lean

tactic: rw [evalFrom, List.foldl_append, List.foldl_cons, List.foldl_nil]
state_before: α : Type u
σ σ' : Type v
M : εNFA α σ
S✝ : Set σ
x✝ : List α
s : σ
a✝ : α
S : Set σ
x : List α
a : α
⊢ M.evalFrom S (x ++ [a]) = M.stepSet (M.evalFrom S x) a
state_after: no goals
Theorem: WCovBy.Ioc_subset
File: Mathlib/Order/Cover.lean

tactic: rw [← Icc_diff_left, h.Icc_eq, diff_singleton_subset_iff]
state_before: α : Type u_1
β : Type u_2
inst✝ : PartialOrder α
a b c : α
h : a ⩿ b
⊢ Ioc a b ⊆ {b}
state_after: no goals
Theorem: sSup_inf_eq
File: Mathlib/Order/CompleteBooleanAlgebra.lean

tactic: simpa only [inf_comm] using @inf_sSup_eq α _ s b
state_before: α : Type u
β : Type v
ι : Sort w
κ : ι → Sort w'
inst✝ : Frame α
s t : Set α
a b : α
⊢ sSup s ⊓ b = ⨆ a ∈ s, a ⊓ b
state_after: no goals
Theorem: AlgebraicTopology.alternatingFaceMapComplex_obj_d
File: Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean

tactic: dsimp only [alternatingFaceMapComplex, AlternatingFaceMapComplex.obj]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
n : ℕ
⊢ ((alternatingFaceMapComplex C).obj X).d (n + 1) n = AlternatingFaceMapComplex.objD X n
state_after: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
n : ℕ
⊢ (ChainComplex.of (fun n => X _[n]) (AlternatingFaceMapComplex.objD X) ⋯).d (n + 1) n =
    AlternatingFaceMapComplex.objD X n

tactic: apply ChainComplex.of_d
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
n : ℕ
⊢ (ChainComplex.of (fun n => X _[n]) (AlternatingFaceMapComplex.objD X) ⋯).d (n + 1) n =
    AlternatingFaceMapComplex.objD X n
state_after: no goals
Theorem: Relation.ReflGen.to_reflTransGen
File: Mathlib/Logic/Relation.lean

tactic: rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → α → Prop
a✝ b c d a : α
⊢ ReflTransGen r a a
state_after: no goals
Theorem: Cardinal.add_eq_left
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

tactic: rw [add_eq_max ha, max_eq_left hb]
state_before: a b : Cardinal.{u_1}
ha : ℵ₀ ≤ a
hb : b ≤ a
⊢ a + b = a
state_after: no goals
Theorem: Ordinal.le_nadd_self
File: Mathlib/SetTheory/Ordinal/NaturalOps.lean

tactic: simpa using nadd_le_nadd_right (Ordinal.zero_le b) a
state_before: a b : Ordinal.{u_1}
⊢ a ≤ b ♯ a
state_after: no goals
Theorem: CategoryTheory.NonPreadditiveAbelian.sub_self
File: Mathlib/CategoryTheory/Abelian/NonPreadditive.lean

tactic: rw [sub_def, ← Category.comp_id a, ← prod.comp_lift, Category.assoc, diag_σ, comp_zero]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : NonPreadditiveAbelian C
X Y : C
a : X ⟶ Y
⊢ a - a = 0
state_after: no goals
Theorem: Set.mulIndicator_image
File: Mathlib/Algebra/Group/Indicator.lean

tactic: rw [← mulIndicator_comp_right, preimage_image_eq _ hg]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
M : Type u_4
N : Type u_5
inst✝¹ : One M
inst✝ : One N
s✝ t : Set α
f✝ g✝ : α → M
a : α
s : Set α
f : β → M
g : α → β
hg : Injective g
x : α
⊢ (g '' s).mulIndicator f (g x) = s.mulIndicator (f ∘ g) x
state_after: no goals
Theorem: MeasureTheory.Measure.integral_comp_inv_smul
File: Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean

tactic: rw [integral_comp_smul μ f R⁻¹, inv_pow, inv_inv]
state_before: E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : MeasurableSpace E
inst✝⁴ : BorelSpace E
inst✝³ : FiniteDimensional ℝ E
μ : Measure E
inst✝² : μ.IsAddHaarMeasure
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
s : Set E
f : E → F
R : ℝ
⊢ ∫ (x : E), f (R⁻¹ • x) ∂μ = |R ^ finrank ℝ E| • ∫ (x : E), f x ∂μ
state_after: no goals
Theorem: Polynomial.coeff_ofFinsupp
File: Mathlib/Algebra/Polynomial/Basic.lean

tactic: rw [coeff]
state_before: R : Type u
a b : R
m n : ℕ
inst✝ : Semiring R
p✝ q : R[X]
p : R[ℕ]
⊢ { toFinsupp := p }.coeff = ⇑p
state_after: no goals
Theorem: Ordinal.principal_add_of_le_one
File: Mathlib/SetTheory/Ordinal/Principal.lean

tactic: rcases le_one_iff.1 ho with (rfl | rfl)
state_before: o : Ordinal.{u_1}
ho : o ≤ 1
⊢ Principal (fun x x_1 => x + x_1) o
state_after: case inl
ho : 0 ≤ 1
⊢ Principal (fun x x_1 => x + x_1) 0

case inr
ho : 1 ≤ 1
⊢ Principal (fun x x_1 => x + x_1) 1

tactic: exact principal_zero
state_before: case inl
ho : 0 ≤ 1
⊢ Principal (fun x x_1 => x + x_1) 0
state_after: no goals

tactic: exact principal_add_one
state_before: case inr
ho : 1 ≤ 1
⊢ Principal (fun x x_1 => x + x_1) 1
state_after: no goals
Theorem: AkraBazziRecurrence.GrowsPolynomially.neg_iff
File: Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean

tactic: rw [← neg_neg f]
state_before: f✝ f : ℝ → ℝ
hf : GrowsPolynomially (-f)
⊢ GrowsPolynomially f
state_after: f✝ f : ℝ → ℝ
hf : GrowsPolynomially (-f)
⊢ GrowsPolynomially (- -f)

tactic: exact hf.neg
state_before: f✝ f : ℝ → ℝ
hf : GrowsPolynomially (-f)
⊢ GrowsPolynomially (- -f)
state_after: no goals
Theorem: Finset.swap_mem_antidiagonal
File: Mathlib/Algebra/Order/Antidiag/Prod.lean

tactic: simp [add_comm]
state_before: A : Type u_1
inst✝¹ : AddCommMonoid A
inst✝ : HasAntidiagonal A
n : A
xy : A × A
⊢ xy.swap ∈ antidiagonal n ↔ xy ∈ antidiagonal n
state_after: no goals
Theorem: IsAlgebraic.algHom
File: Mathlib/RingTheory/Algebraic.lean

tactic: rw [aeval_algHom, f.comp_apply, ha, map_zero]
state_before: R : Type u
S : Type u_1
A : Type v
inst✝⁸ : CommRing R
inst✝⁷ : CommRing S
inst✝⁶ : Ring A
inst✝⁵ : Algebra R A
inst✝⁴ : Algebra R S
inst✝³ : Algebra S A
inst✝² : IsScalarTower R S A
B : Type u_2
inst✝¹ : Ring B
inst✝ : Algebra R B
f : A →ₐ[R] B
a : A
h : IsAlgebraic R a
p : R[X]
hp : p ≠ 0
ha : (aeval a) p = 0
⊢ (aeval (f a)) p = 0
state_after: no goals
Theorem: Ideal.pow_lt_self
File: Mathlib/RingTheory/DedekindDomain/Ideal.lean

tactic: convert I.pow_right_strictAnti hI0 hI1 he
state_before: R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I : Ideal A
hI0 : I ≠ ⊥
hI1 : I ≠ ⊤
e : ℕ
he : 2 ≤ e
⊢ I ^ e < I
state_after: case h.e'_4
R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I : Ideal A
hI0 : I ≠ ⊥
hI1 : I ≠ ⊤
e : ℕ
he : 2 ≤ e
⊢ I = (fun x => I ^ x) 1

tactic: dsimp only
state_before: case h.e'_4
R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I : Ideal A
hI0 : I ≠ ⊥
hI1 : I ≠ ⊤
e : ℕ
he : 2 ≤ e
⊢ I = (fun x => I ^ x) 1
state_after: case h.e'_4
R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I : Ideal A
hI0 : I ≠ ⊥
hI1 : I ≠ ⊤
e : ℕ
he : 2 ≤ e
⊢ I = I ^ 1

tactic: rw [pow_one]
state_before: case h.e'_4
R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I : Ideal A
hI0 : I ≠ ⊥
hI1 : I ≠ ⊤
e : ℕ
he : 2 ≤ e
⊢ I = I ^ 1
state_after: no goals
Theorem: ENNReal.toNNReal_nat
File: Mathlib/Data/ENNReal/Basic.lean

tactic: rw [← ENNReal.coe_natCast n, ENNReal.toNNReal_coe]
state_before: α : Type u_1
a b c d : ℝ≥0∞
r p q : ℝ≥0
n : ℕ
⊢ (↑n).toNNReal = ↑n
state_after: no goals
Theorem: Nat.prime_iff_prime_int
File: Mathlib/Data/Nat/Prime.lean

tactic: rw [← Int.dvd_natAbs, Int.natCast_dvd_natCast, Int.natAbs_mul, hp.dvd_mul] at h
state_before: n p : ℕ
hp : Prime p
a b : ℤ
h : ↑p ∣ a * b
⊢ ↑p ∣ a ∨ ↑p ∣ b
state_after: n p : ℕ
hp : Prime p
a b : ℤ
h : p ∣ a.natAbs ∨ p ∣ b.natAbs
⊢ ↑p ∣ a ∨ ↑p ∣ b

tactic: rwa [← Int.dvd_natAbs, Int.natCast_dvd_natCast, ← Int.dvd_natAbs, Int.natCast_dvd_natCast]
state_before: n p : ℕ
hp : Prime p
a b : ℤ
h : p ∣ a.natAbs ∨ p ∣ b.natAbs
⊢ ↑p ∣ a ∨ ↑p ∣ b
state_after: no goals

tactic: simp [h, not_prime_one] at hp
state_before: n p : ℕ
hp : _root_.Prime ↑p
h : p = 1
⊢ False
state_after: no goals

tactic: simpa only [Int.natCast_dvd_natCast, (Int.ofNat_mul _ _).symm] using hp.2.2 a b
state_before: n p : ℕ
hp : _root_.Prime ↑p
a b : ℕ
⊢ p ∣ a * b → p ∣ a ∨ p ∣ b
state_after: no goals
Theorem: Algebra.TensorProduct.productMap_eq_comp_map
File: Mathlib/RingTheory/TensorProduct/Basic.lean

tactic: ext <;> rfl
state_before: R : Type uR
S : Type uS
A : Type uA
B : Type uB
C : Type uC
D : Type uD
E : Type uE
F : Type uF
inst✝⁶ : CommSemiring R
inst✝⁵ : Semiring A
inst✝⁴ : Semiring B
inst✝³ : CommSemiring S
inst✝² : Algebra R A
inst✝¹ : Algebra R B
inst✝ : Algebra R S
f : A →ₐ[R] S
g : B →ₐ[R] S
⊢ productMap f g = (lmul' R).comp (map f g)
state_after: no goals