1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: ENNReal.rpow_neg
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: cases' x with x
state_before: x : ℝ≥0∞
y : ℝ
⊢ x ^ (-y) = (x ^ y)⁻¹
state_after: case top
y : ℝ
⊢ ⊤ ^ (-y) = (⊤ ^ y)⁻¹

case coe
y : ℝ
x : ℝ≥0
⊢ ↑x ^ (-y) = (↑x ^ y)⁻¹

tactic: rcases lt_trichotomy y 0 with (H | H | H) <;>
  simp [top_rpow_of_pos, top_rpow_of_neg, H, neg_pos.mpr]
state_before: case top
y : ℝ
⊢ ⊤ ^ (-y) = (⊤ ^ y)⁻¹
state_after: no goals

tactic: by_cases h : x = 0
state_before: case coe
y : ℝ
x : ℝ≥0
⊢ ↑x ^ (-y) = (↑x ^ y)⁻¹
state_after: case pos
y : ℝ
x : ℝ≥0
h : x = 0
⊢ ↑x ^ (-y) = (↑x ^ y)⁻¹

case neg
y : ℝ
x : ℝ≥0
h : ¬x = 0
⊢ ↑x ^ (-y) = (↑x ^ y)⁻¹

tactic: rcases lt_trichotomy y 0 with (H | H | H) <;>
  simp [h, zero_rpow_of_pos, zero_rpow_of_neg, H, neg_pos.mpr]
state_before: case pos
y : ℝ
x : ℝ≥0
h : x = 0
⊢ ↑x ^ (-y) = (↑x ^ y)⁻¹
state_after: no goals

tactic: have A : x ^ y ≠ 0 := by simp [h]
state_before: case neg
y : ℝ
x : ℝ≥0
h : ¬x = 0
⊢ ↑x ^ (-y) = (↑x ^ y)⁻¹
state_after: case neg
y : ℝ
x : ℝ≥0
h : ¬x = 0
A : x ^ y ≠ 0
⊢ ↑x ^ (-y) = (↑x ^ y)⁻¹

tactic: simp [coe_rpow_of_ne_zero h, ← coe_inv A, NNReal.rpow_neg]
state_before: case neg
y : ℝ
x : ℝ≥0
h : ¬x = 0
A : x ^ y ≠ 0
⊢ ↑x ^ (-y) = (↑x ^ y)⁻¹
state_after: no goals

tactic: simp [h]
state_before: y : ℝ
x : ℝ≥0
h : ¬x = 0
⊢ x ^ y ≠ 0
state_after: no goals
Theorem: Seminorm.mem_ball_zero
File: Mathlib/Analysis/Seminorm.lean

tactic: rw [mem_ball, sub_zero]
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p : Seminorm 𝕜 E
x y : E
r : ℝ
⊢ y ∈ p.ball 0 r ↔ p y < r
state_after: no goals
Theorem: WellFounded.rank_eq
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rw [rank, Acc.rank_eq]
state_before: α : Type u
r : α → α → Prop
a b : α
hwf : WellFounded r
⊢ hwf.rank a = sup fun b => succ (hwf.rank ↑b)
state_after: α : Type u
r : α → α → Prop
a b : α
hwf : WellFounded r
⊢ (sup fun b => succ ⋯.rank) = sup fun b => succ (hwf.rank ↑b)

tactic: rfl
state_before: α : Type u
r : α → α → Prop
a b : α
hwf : WellFounded r
⊢ (sup fun b => succ ⋯.rank) = sup fun b => succ (hwf.rank ↑b)
state_after: no goals
Theorem: continuousOn_tangentCoordChange
File: Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean

tactic: convert (tangentBundleCore I M).continuousOn_coordChange (achart H x) (achart H y) <;>
simp only [tangentBundleCore_baseSet, coe_achart, ← extChartAt_source I]
state_before: 𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
x y : M
⊢ ContinuousOn (tangentCoordChange I x y) ((extChartAt I x).source ∩ (extChartAt I y).source)
state_after: no goals
Theorem: Matrix.map_mul
File: Mathlib/Data/Matrix/Basic.lean

tactic: ext
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝² : NonAssocSemiring α
inst✝¹ : Fintype n
L : Matrix m n α
M : Matrix n o α
inst✝ : NonAssocSemiring β
f : α →+* β
⊢ (L * M).map ⇑f = L.map ⇑f * M.map ⇑f
state_after: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝² : NonAssocSemiring α
inst✝¹ : Fintype n
L : Matrix m n α
M : Matrix n o α
inst✝ : NonAssocSemiring β
f : α →+* β
i✝ : m
j✝ : o
⊢ (L * M).map (⇑f) i✝ j✝ = (L.map ⇑f * M.map ⇑f) i✝ j✝

tactic: simp [mul_apply, map_sum]
state_before: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝² : NonAssocSemiring α
inst✝¹ : Fintype n
L : Matrix m n α
M : Matrix n o α
inst✝ : NonAssocSemiring β
f : α →+* β
i✝ : m
j✝ : o
⊢ (L * M).map (⇑f) i✝ j✝ = (L.map ⇑f * M.map ⇑f) i✝ j✝
state_after: no goals
Theorem: RingHom.map_rangeS
File: Mathlib/Algebra/Ring/Subsemiring/Basic.lean

tactic: simpa only [rangeS_eq_map] using (⊤ : Subsemiring R).map_map g f
state_before: R : Type u
S : Type v
T : Type w
inst✝² : NonAssocSemiring R
M : Submonoid R
inst✝¹ : NonAssocSemiring S
inst✝ : NonAssocSemiring T
g : S →+* T
f : R →+* S
⊢ Subsemiring.map g f.rangeS = (g.comp f).rangeS
state_after: no goals
Theorem: FirstOrder.Language.Structure.FG.range
File: Mathlib/ModelTheory/FinitelyGenerated.lean

tactic: rw [Hom.range_eq_map]
state_before: L : Language
M : Type u_1
inst✝¹ : L.Structure M
N : Type u_2
inst✝ : L.Structure N
h : FG L M
f : M →[L] N
⊢ f.range.FG
state_after: L : Language
M : Type u_1
inst✝¹ : L.Structure M
N : Type u_2
inst✝ : L.Structure N
h : FG L M
f : M →[L] N
⊢ (map f ⊤).FG

tactic: exact (fg_def.1 h).map f
state_before: L : Language
M : Type u_1
inst✝¹ : L.Structure M
N : Type u_2
inst✝ : L.Structure N
h : FG L M
f : M →[L] N
⊢ (map f ⊤).FG
state_after: no goals
Theorem: Linarith.mul_eq
File: Mathlib/Tactic/Linarith/Lemmas.lean

tactic: simp [*]
state_before: α : Type u_1
inst✝ : OrderedSemiring α
a b : α
ha : a = 0
x✝ : 0 < b
⊢ b * a = 0
state_after: no goals
Theorem: AlgebraicGeometry.IsAffineOpen.image_of_isOpenImmersion
File: Mathlib/AlgebraicGeometry/AffineScheme.lean

tactic: have : IsAffine _ := hU
state_before: X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f✝ : ↑Γ(X, U)
f : X ⟶ Y
H : IsOpenImmersion f
⊢ IsAffineOpen (f ''ᵁ U)
state_after: X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f✝ : ↑Γ(X, U)
f : X ⟶ Y
H : IsOpenImmersion f
this : IsAffine (X.restrict ⋯)
⊢ IsAffineOpen (f ''ᵁ U)

tactic: convert isAffineOpen_opensRange (X.ofRestrict U.openEmbedding ≫ f)
state_before: X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f✝ : ↑Γ(X, U)
f : X ⟶ Y
H : IsOpenImmersion f
this : IsAffine (X.restrict ⋯)
⊢ IsAffineOpen (f ''ᵁ U)
state_after: case h.e'_2
X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f✝ : ↑Γ(X, U)
f : X ⟶ Y
H : IsOpenImmersion f
this : IsAffine (X.restrict ⋯)
⊢ f ''ᵁ U = Scheme.Hom.opensRange (X.ofRestrict ⋯ ≫ f)

tactic: ext1
state_before: case h.e'_2
X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f✝ : ↑Γ(X, U)
f : X ⟶ Y
H : IsOpenImmersion f
this : IsAffine (X.restrict ⋯)
⊢ f ''ᵁ U = Scheme.Hom.opensRange (X.ofRestrict ⋯ ≫ f)
state_after: case h.e'_2.h
X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f✝ : ↑Γ(X, U)
f : X ⟶ Y
H : IsOpenImmersion f
this : IsAffine (X.restrict ⋯)
⊢ ↑(f ''ᵁ U) = ↑(Scheme.Hom.opensRange (X.ofRestrict ⋯ ≫ f))

tactic: exact Set.image_eq_range _ _
state_before: case h.e'_2.h
X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f✝ : ↑Γ(X, U)
f : X ⟶ Y
H : IsOpenImmersion f
this : IsAffine (X.restrict ⋯)
⊢ ↑(f ''ᵁ U) = ↑(Scheme.Hom.opensRange (X.ofRestrict ⋯ ≫ f))
state_after: no goals
Theorem: CategoryTheory.GradedObject.ι_mapBifunctorAssociator_inv
File: Mathlib/CategoryTheory/GradedObject/Associator.lean

tactic: rw [← cancel_mono ((mapBifunctorAssociator associator ρ₁₂ ρ₂₃ X₁ X₂ X₃).hom j),
  assoc, assoc, Iso.inv_hom_id_eval, comp_id, ι_mapBifunctorAssociator_hom,
  ← NatTrans.comp_app_assoc, ← NatTrans.comp_app, Iso.inv_hom_id_app,
  NatTrans.id_app, NatTrans.id_app, id_comp]
state_before: C₁ : Type u_1
C₂ : Type u_2
C₁₂ : Type u_3
C₂₃ : Type u_4
C₃ : Type u_5
C₄ : Type u_6
inst✝⁹ : Category.{u_13, u_1} C₁
inst✝⁸ : Category.{u_15, u_2} C₂
inst✝⁷ : Category.{u_14, u_5} C₃
inst✝⁶ : Category.{u_11, u_6} C₄
inst✝⁵ : Category.{u_17, u_3} C₁₂
inst✝⁴ : Category.{u_12, u_4} C₂₃
F₁₂ : C₁ ⥤ C₂ ⥤ C₁₂
G : C₁₂ ⥤ C₃ ⥤ C₄
F : C₁ ⥤ C₂₃ ⥤ C₄
G₂₃ : C₂ ⥤ C₃ ⥤ C₂₃
associator : bifunctorComp₁₂ F₁₂ G ≅ bifunctorComp₂₃ F G₂₃
I₁ : Type u_7
I₂ : Type u_8
I₃ : Type u_9
J : Type u_10
r : I₁ × I₂ × I₃ → J
ρ₁₂ : BifunctorComp₁₂IndexData r
ρ₂₃ : BifunctorComp₂₃IndexData r
X₁ : GradedObject I₁ C₁
X₂ : GradedObject I₂ C₂
X₃ : GradedObject I₃ C₃
inst✝³ : (((mapBifunctor F₁₂ I₁ I₂).obj X₁).obj X₂).HasMap ρ₁₂.p
inst✝² : (((mapBifunctor G ρ₁₂.I₁₂ I₃).obj (mapBifunctorMapObj F₁₂ ρ₁₂.p X₁ X₂)).obj X₃).HasMap ρ₁₂.q
inst✝¹ : (((mapBifunctor G₂₃ I₂ I₃).obj X₂).obj X₃).HasMap ρ₂₃.p
inst✝ : (((mapBifunctor F I₁ ρ₂₃.I₂₃).obj X₁).obj (mapBifunctorMapObj G₂₃ ρ₂₃.p X₂ X₃)).HasMap ρ₂₃.q
H₁₂ : HasGoodTrifunctor₁₂Obj F₁₂ G ρ₁₂ X₁ X₂ X₃
H₂₃ : HasGoodTrifunctor₂₃Obj F G₂₃ ρ₂₃ X₁ X₂ X₃
i₁ : I₁
i₂ : I₂
i₃ : I₃
j : J
h : r (i₁, i₂, i₃) = j
⊢ ιMapBifunctorBifunctor₂₃MapObj F G₂₃ ρ₂₃ X₁ X₂ X₃ i₁ i₂ i₃ j h ≫
      (mapBifunctorAssociator associator ρ₁₂ ρ₂₃ X₁ X₂ X₃).inv j =
    ((associator.inv.app (X₁ i₁)).app (X₂ i₂)).app (X₃ i₃) ≫
      ιMapBifunctor₁₂BifunctorMapObj F₁₂ G ρ₁₂ X₁ X₂ X₃ i₁ i₂ i₃ j h
state_after: no goals
Theorem: DualNumber.commute_eps_left
File: Mathlib/Algebra/DualNumber.lean

tactic: ext <;> simp
state_before: R : Type u_1
A : Type u_2
B : Type u_3
inst✝ : Semiring R
x : R[ε]
⊢ Commute ε x
state_after: no goals
Theorem: List.nil_bagInter
File: Mathlib/Data/List/Lattice.lean

tactic: cases l <;> rfl
state_before: α : Type u_1
l✝ l₁ l₂ : List α
p : α → Prop
a : α
inst✝ : DecidableEq α
l : List α
⊢ [].bagInter l = []
state_after: no goals
Theorem: Mathlib.Meta.NormNum.IsNat.to_isInt
File: Mathlib/Tactic/NormNum/Result.lean

tactic: simp
state_before: α : Type u_1
inst✝ : Ring α
n✝ : ℕ
⊢ ↑n✝ = ↑(Int.ofNat n✝)
state_after: no goals
Theorem: Orientation.cos_oangle_add_left_of_oangle_eq_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean

tactic: rw [← neg_inj, oangle_rev, ← oangle_neg_orientation_eq_neg, neg_inj] at h ⊢
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : o.oangle x y = ↑(π / 2)
⊢ (o.oangle (x + y) y).cos = ‖y‖ / ‖x + y‖
state_after: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : (-o).oangle y x = ↑(π / 2)
⊢ ((-o).oangle y (x + y)).cos = ‖y‖ / ‖x + y‖

tactic: rw [add_comm]
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : (-o).oangle y x = ↑(π / 2)
⊢ ((-o).oangle y (x + y)).cos = ‖y‖ / ‖x + y‖
state_after: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : (-o).oangle y x = ↑(π / 2)
⊢ ((-o).oangle y (y + x)).cos = ‖y‖ / ‖y + x‖

tactic: exact (-o).cos_oangle_add_right_of_oangle_eq_pi_div_two h
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : (-o).oangle y x = ↑(π / 2)
⊢ ((-o).oangle y (y + x)).cos = ‖y‖ / ‖y + x‖
state_after: no goals
Theorem: Stream'.Seq.join_cons_nil
File: Mathlib/Data/Seq/Seq.lean

tactic: simp [join]
state_before: α : Type u
β : Type v
γ : Type w
a : α
S : Seq (Seq1 α)
⊢ (cons (a, nil) S).join.destruct = some (a, S.join)
state_after: no goals
Theorem: QuaternionAlgebra.self_add_star
File: Mathlib/Algebra/Quaternion.lean

tactic: simp only [self_add_star', two_mul, coe_add]
state_before: S : Type u_1
T : Type u_2
R : Type u_3
inst✝ : CommRing R
c₁ c₂ r x y z : R
a b c : ℍ[R,c₁,c₂]
⊢ a + star a = 2 * ↑a.re
state_after: no goals
Theorem: Submonoid.closure_closure_coe_preimage
File: Mathlib/Algebra/Group/Submonoid/Operations.lean

tactic: refine closure_induction' (p := fun y hy ↦ ⟨y, hy⟩ ∈ closure (((↑) : closure s → M) ⁻¹' s))
  (fun g hg => subset_closure hg) ?_ (fun g₁ g₂ hg₁ hg₂ => ?_) hx
state_before: M : Type u_1
N : Type u_2
P : Type u_3
inst✝³ : MulOneClass M
inst✝² : MulOneClass N
inst✝¹ : MulOneClass P
S : Submonoid M
A : Type u_4
inst✝ : SetLike A M
hA : SubmonoidClass A M
S' : A
s : Set M
x✝¹ : { x // x ∈ ↑(closure s) }
x : M
hx : x ∈ ↑(closure s)
x✝ : ⟨x, hx⟩ ∈ ⊤
⊢ ⟨x, hx⟩ ∈ closure (Subtype.val ⁻¹' s)
state_after: case refine_1
M : Type u_1
N : Type u_2
P : Type u_3
inst✝³ : MulOneClass M
inst✝² : MulOneClass N
inst✝¹ : MulOneClass P
S : Submonoid M
A : Type u_4
inst✝ : SetLike A M
hA : SubmonoidClass A M
S' : A
s : Set M
x✝¹ : { x // x ∈ ↑(closure s) }
x : M
hx : x ∈ ↑(closure s)
x✝ : ⟨x, hx⟩ ∈ ⊤
⊢ (fun y hy => ⟨y, hy⟩ ∈ closure (Subtype.val ⁻¹' s)) 1 ⋯

case refine_2
M : Type u_1
N : Type u_2
P : Type u_3
inst✝³ : MulOneClass M
inst✝² : MulOneClass N
inst✝¹ : MulOneClass P
S : Submonoid M
A : Type u_4
inst✝ : SetLike A M
hA : SubmonoidClass A M
S' : A
s : Set M
x✝¹ : { x // x ∈ ↑(closure s) }
x : M
hx : x ∈ ↑(closure s)
x✝ : ⟨x, hx⟩ ∈ ⊤
g₁ : M
g₂ : g₁ ∈ closure s
hg₁ : M
hg₂ : hg₁ ∈ closure s
⊢ (fun y hy => ⟨y, hy⟩ ∈ closure (Subtype.val ⁻¹' s)) g₁ g₂ →
    (fun y hy => ⟨y, hy⟩ ∈ closure (Subtype.val ⁻¹' s)) hg₁ hg₂ →
      (fun y hy => ⟨y, hy⟩ ∈ closure (Subtype.val ⁻¹' s)) (g₁ * hg₁) ⋯

tactic: exact Submonoid.one_mem _
state_before: case refine_1
M : Type u_1
N : Type u_2
P : Type u_3
inst✝³ : MulOneClass M
inst✝² : MulOneClass N
inst✝¹ : MulOneClass P
S : Submonoid M
A : Type u_4
inst✝ : SetLike A M
hA : SubmonoidClass A M
S' : A
s : Set M
x✝¹ : { x // x ∈ ↑(closure s) }
x : M
hx : x ∈ ↑(closure s)
x✝ : ⟨x, hx⟩ ∈ ⊤
⊢ (fun y hy => ⟨y, hy⟩ ∈ closure (Subtype.val ⁻¹' s)) 1 ⋯
state_after: no goals

tactic: exact Submonoid.mul_mem _
state_before: case refine_2
M : Type u_1
N : Type u_2
P : Type u_3
inst✝³ : MulOneClass M
inst✝² : MulOneClass N
inst✝¹ : MulOneClass P
S : Submonoid M
A : Type u_4
inst✝ : SetLike A M
hA : SubmonoidClass A M
S' : A
s : Set M
x✝¹ : { x // x ∈ ↑(closure s) }
x : M
hx : x ∈ ↑(closure s)
x✝ : ⟨x, hx⟩ ∈ ⊤
g₁ : M
g₂ : g₁ ∈ closure s
hg₁ : M
hg₂ : hg₁ ∈ closure s
⊢ (fun y hy => ⟨y, hy⟩ ∈ closure (Subtype.val ⁻¹' s)) g₁ g₂ →
    (fun y hy => ⟨y, hy⟩ ∈ closure (Subtype.val ⁻¹' s)) hg₁ hg₂ →
      (fun y hy => ⟨y, hy⟩ ∈ closure (Subtype.val ⁻¹' s)) (g₁ * hg₁) ⋯
state_after: no goals
Theorem: not_isCorner_empty
File: Mathlib/Combinatorics/Additive/Corner/Defs.lean

tactic: simp [isCorner_iff]
state_before: G : Type u_1
H : Type u_2
inst✝¹ : AddCommMonoid G
inst✝ : AddCommMonoid H
A B : Set (G × G)
s : Set G
t : Set H
f : G → H
a b c x₁ y₁ x₂ y₂ : G
⊢ ¬IsCorner ∅ x₁ y₁ x₂ y₂
state_after: no goals
Theorem: CategoryTheory.ShortComplex.Exact.map_of_preservesLeftHomologyOf
File: Mathlib/Algebra/Homology/ShortComplex/Exact.lean

tactic: have := h.hasHomology
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✝⁴ : HasZeroMorphisms C
inst✝³ : HasZeroMorphisms D
S S₁ S₂ : ShortComplex C
h : S.Exact
F : C ⥤ D
inst✝² : F.PreservesZeroMorphisms
inst✝¹ : F.PreservesLeftHomologyOf S
inst✝ : (S.map F).HasHomology
⊢ (S.map F).Exact
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✝⁴ : HasZeroMorphisms C
inst✝³ : HasZeroMorphisms D
S S₁ S₂ : ShortComplex C
h : S.Exact
F : C ⥤ D
inst✝² : F.PreservesZeroMorphisms
inst✝¹ : F.PreservesLeftHomologyOf S
inst✝ : (S.map F).HasHomology
this : S.HasHomology
⊢ (S.map F).Exact

tactic: rw [S.leftHomologyData.exact_iff, IsZero.iff_id_eq_zero] at h
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✝⁴ : HasZeroMorphisms C
inst✝³ : HasZeroMorphisms D
S S₁ S₂ : ShortComplex C
h : S.Exact
F : C ⥤ D
inst✝² : F.PreservesZeroMorphisms
inst✝¹ : F.PreservesLeftHomologyOf S
inst✝ : (S.map F).HasHomology
this : S.HasHomology
⊢ (S.map F).Exact
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✝⁴ : HasZeroMorphisms C
inst✝³ : HasZeroMorphisms D
S S₁ S₂ : ShortComplex C
F : C ⥤ D
inst✝² : F.PreservesZeroMorphisms
inst✝¹ : F.PreservesLeftHomologyOf S
inst✝ : (S.map F).HasHomology
this : S.HasHomology
h : 𝟙 S.leftHomologyData.H = 0
⊢ (S.map F).Exact

tactic: rw [S.leftHomologyData.exact_map_iff F, IsZero.iff_id_eq_zero,
  ← F.map_id, h, F.map_zero]
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✝⁴ : HasZeroMorphisms C
inst✝³ : HasZeroMorphisms D
S S₁ S₂ : ShortComplex C
F : C ⥤ D
inst✝² : F.PreservesZeroMorphisms
inst✝¹ : F.PreservesLeftHomologyOf S
inst✝ : (S.map F).HasHomology
this : S.HasHomology
h : 𝟙 S.leftHomologyData.H = 0
⊢ (S.map F).Exact
state_after: no goals
Theorem: Batteries.UnionFind.equiv_rootD
File: .lake/packages/batteries/Batteries/Data/UnionFind/Lemmas.lean

tactic: simp [Equiv, rootD_rootD]
state_before: self : UnionFind
a : Nat
⊢ self.Equiv (self.rootD a) a
state_after: no goals
Theorem: ite_zero_mul
File: Mathlib/Algebra/Ring/Defs.lean

tactic: simp
state_before: α : Type u
β : Type v
γ : Type w
R : Type x
inst✝² : MulZeroClass α
P Q : Prop
inst✝¹ : Decidable P
inst✝ : Decidable Q
a b : α
⊢ (if P then a else 0) * b = if P then a * b else 0
state_after: no goals
Theorem: AddMonoidAlgebra.mem_span_support'
File: Mathlib/Algebra/MonoidAlgebra/Support.lean

tactic: delta of'
state_before: k : Type u₁
G : Type u₂
inst✝ : Semiring k
f : k[G]
⊢ f ∈ Submodule.span k (of' k G '' ↑f.support)
state_after: k : Type u₁
G : Type u₂
inst✝ : Semiring k
f : k[G]
⊢ f ∈ Submodule.span k ((fun a => single a 1) '' ↑f.support)

tactic: rw [← Finsupp.supported_eq_span_single, Finsupp.mem_supported]
state_before: k : Type u₁
G : Type u₂
inst✝ : Semiring k
f : k[G]
⊢ f ∈ Submodule.span k ((fun a => single a 1) '' ↑f.support)
state_after: no goals
Theorem: MeasureTheory.tendsto_measure_iInter
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [measure_iInter_eq_iInf hs hm.directed_ge hf]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
s : ι → Set α
hs : ∀ (n : ι), MeasurableSet (s n)
hm : Antitone s
hf : ∃ i, μ (s i) ≠ ⊤
⊢ Tendsto (⇑μ ∘ s) atTop (𝓝 (μ (⋂ n, s n)))
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
s : ι → Set α
hs : ∀ (n : ι), MeasurableSet (s n)
hm : Antitone s
hf : ∃ i, μ (s i) ≠ ⊤
⊢ Tendsto (⇑μ ∘ s) atTop (𝓝 (⨅ i, μ (s i)))

tactic: exact tendsto_atTop_iInf fun n m hnm => measure_mono <| hm hnm
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
s : ι → Set α
hs : ∀ (n : ι), MeasurableSet (s n)
hm : Antitone s
hf : ∃ i, μ (s i) ≠ ⊤
⊢ Tendsto (⇑μ ∘ s) atTop (𝓝 (⨅ i, μ (s i)))
state_after: no goals
Theorem: Polynomial.cyclotomic_prime
File: Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean

tactic: suffices cyclotomic p ℤ = ∑ i ∈ range p, X ^ i by
  simpa only [map_cyclotomic_int, Polynomial.map_sum, Polynomial.map_pow, Polynomial.map_X] using
    congr_arg (map (Int.castRingHom R)) this
state_before: R : Type u_1
inst✝ : Ring R
p : ℕ
hp : Fact (Nat.Prime p)
⊢ cyclotomic p R = ∑ i ∈ range p, X ^ i
state_after: R : Type u_1
inst✝ : Ring R
p : ℕ
hp : Fact (Nat.Prime p)
⊢ cyclotomic p ℤ = ∑ i ∈ range p, X ^ i

tactic: rw [← prod_cyclotomic_eq_geom_sum hp.out.pos, hp.out.divisors,
  erase_insert (mem_singleton.not.2 hp.out.ne_one.symm), prod_singleton]
state_before: R : Type u_1
inst✝ : Ring R
p : ℕ
hp : Fact (Nat.Prime p)
⊢ cyclotomic p ℤ = ∑ i ∈ range p, X ^ i
state_after: no goals

tactic: simpa only [map_cyclotomic_int, Polynomial.map_sum, Polynomial.map_pow, Polynomial.map_X] using
  congr_arg (map (Int.castRingHom R)) this
state_before: R : Type u_1
inst✝ : Ring R
p : ℕ
hp : Fact (Nat.Prime p)
this : cyclotomic p ℤ = ∑ i ∈ range p, X ^ i
⊢ cyclotomic p R = ∑ i ∈ range p, X ^ i
state_after: no goals
Theorem: PrimeSpectrum.vanishingIdeal_eq_top_iff
File: Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean

tactic: rw [← top_le_iff, ← subset_zeroLocus_iff_le_vanishingIdeal, Submodule.top_coe, zeroLocus_univ,
  Set.subset_empty_iff]
state_before: R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
s : Set (PrimeSpectrum R)
⊢ vanishingIdeal s = ⊤ ↔ s = ∅
state_after: no goals
Theorem: ContinuousMultilinearMap.norm_restr
File: Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean

tactic: apply MultilinearMap.mkContinuous_norm_le
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
k n : ℕ
f : ContinuousMultilinearMap 𝕜 (fun i => G) G'
s : Finset (Fin n)
hk : s.card = k
z : G
⊢ ‖f.restr s hk z‖ ≤ ‖f‖ * ‖z‖ ^ (n - k)
state_after: case hC
𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
k n : ℕ
f : ContinuousMultilinearMap 𝕜 (fun i => G) G'
s : Finset (Fin n)
hk : s.card = k
z : G
⊢ 0 ≤ ‖f‖ * ‖z‖ ^ (n - k)

tactic: exact mul_nonneg (norm_nonneg _) (pow_nonneg (norm_nonneg _) _)
state_before: case hC
𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
k n : ℕ
f : ContinuousMultilinearMap 𝕜 (fun i => G) G'
s : Finset (Fin n)
hk : s.card = k
z : G
⊢ 0 ≤ ‖f‖ * ‖z‖ ^ (n - k)
state_after: no goals
Theorem: Set.bounded_lt_Iic
File: Mathlib/Order/Bounded.lean

tactic: simp only [← bounded_le_iff_bounded_lt, bounded_le_Iic]
state_before: α : Type u_1
r : α → α → Prop
s t : Set α
inst✝¹ : Preorder α
inst✝ : NoMaxOrder α
a : α
⊢ Bounded (fun x x_1 => x < x_1) (Iic a)
state_after: no goals
Theorem: Algebra.TensorProduct.lift_includeLeft_includeRight
File: Mathlib/RingTheory/TensorProduct/Basic.lean

tactic: ext <;> simp
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✝¹³ : CommSemiring S
inst✝¹² : Algebra R S
inst✝¹¹ : Semiring A
inst✝¹⁰ : Algebra R A
inst✝⁹ : Algebra S A
inst✝⁸ : IsScalarTower R S A
inst✝⁷ : Semiring B
inst✝⁶ : Algebra R B
inst✝⁵ : Semiring C
inst✝⁴ : Algebra R C
inst✝³ : Algebra S C
inst✝² : Semiring D
inst✝¹ : Algebra R D
inst✝ : IsScalarTower R S C
⊢ lift includeLeft includeRight ⋯ = AlgHom.id S (A ⊗[R] B)
state_after: no goals