1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Complex.nhdsWithin_stolzCone_le_nhdsWithin_stolzSet
File: Mathlib/Analysis/Complex/AbelLimit.lean

tactic: obtain ⟨M, ε, _, hε, H⟩ := stolzCone_subset_stolzSet_aux hs
state_before: s : ℝ
hs : 0 < s
⊢ ∃ M, 𝓝[stolzCone s] 1 ≤ 𝓝[stolzSet M] 1
state_after: case intro.intro.intro.intro
s : ℝ
hs : 0 < s
M ε : ℝ
left✝ : 0 < M
hε : 0 < ε
H : {z | 1 - ε < z.re} ∩ stolzCone s ⊆ stolzSet M
⊢ ∃ M, 𝓝[stolzCone s] 1 ≤ 𝓝[stolzSet M] 1

tactic: use M
state_before: case intro.intro.intro.intro
s : ℝ
hs : 0 < s
M ε : ℝ
left✝ : 0 < M
hε : 0 < ε
H : {z | 1 - ε < z.re} ∩ stolzCone s ⊆ stolzSet M
⊢ ∃ M, 𝓝[stolzCone s] 1 ≤ 𝓝[stolzSet M] 1
state_after: case h
s : ℝ
hs : 0 < s
M ε : ℝ
left✝ : 0 < M
hε : 0 < ε
H : {z | 1 - ε < z.re} ∩ stolzCone s ⊆ stolzSet M
⊢ 𝓝[stolzCone s] 1 ≤ 𝓝[stolzSet M] 1

tactic: rw [nhdsWithin_le_iff, mem_nhdsWithin]
state_before: case h
s : ℝ
hs : 0 < s
M ε : ℝ
left✝ : 0 < M
hε : 0 < ε
H : {z | 1 - ε < z.re} ∩ stolzCone s ⊆ stolzSet M
⊢ 𝓝[stolzCone s] 1 ≤ 𝓝[stolzSet M] 1
state_after: case h
s : ℝ
hs : 0 < s
M ε : ℝ
left✝ : 0 < M
hε : 0 < ε
H : {z | 1 - ε < z.re} ∩ stolzCone s ⊆ stolzSet M
⊢ ∃ u, IsOpen u ∧ 1 ∈ u ∧ u ∩ stolzCone s ⊆ stolzSet M

tactic: refine ⟨{w | 1 - ε < w.re}, isOpen_lt continuous_const continuous_re, ?_, H⟩
state_before: case h
s : ℝ
hs : 0 < s
M ε : ℝ
left✝ : 0 < M
hε : 0 < ε
H : {z | 1 - ε < z.re} ∩ stolzCone s ⊆ stolzSet M
⊢ ∃ u, IsOpen u ∧ 1 ∈ u ∧ u ∩ stolzCone s ⊆ stolzSet M
state_after: case h
s : ℝ
hs : 0 < s
M ε : ℝ
left✝ : 0 < M
hε : 0 < ε
H : {z | 1 - ε < z.re} ∩ stolzCone s ⊆ stolzSet M
⊢ 1 ∈ {w | 1 - ε < w.re}

tactic: simp only [Set.mem_setOf_eq, one_re, sub_lt_self_iff, hε]
state_before: case h
s : ℝ
hs : 0 < s
M ε : ℝ
left✝ : 0 < M
hε : 0 < ε
H : {z | 1 - ε < z.re} ∩ stolzCone s ⊆ stolzSet M
⊢ 1 ∈ {w | 1 - ε < w.re}
state_after: no goals
Theorem: PSet.toSet_empty
File: Mathlib/SetTheory/ZFC/Basic.lean

tactic: simp [toSet]
state_before: ⊢ ∅.toSet = ∅
state_after: no goals
Theorem: convexHull_add
File: Mathlib/Analysis/Convex/Combination.lean

tactic: simp_rw [← image2_add, ← image_prod, ← IsLinearMap.isLinearMap_add.image_convexHull,
  convexHull_prod]
state_before: R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
inst✝⁷ : LinearOrderedField R'
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s✝ : Set E
i j : ι
c : R
t✝ : Finset ι
w : ι → R
z : ι → E
s t : Set E
⊢ (convexHull R) (s + t) = (convexHull R) s + (convexHull R) t
state_after: no goals
Theorem: Set.Finite.toFinset_image2
File: Mathlib/Data/Finset/NAry.lean

tactic: simp
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝ : DecidableEq γ
s : Set α
t : Set β
f : α → β → γ
hs : s.Finite
ht : t.Finite
hf : optParam (image2 f s t).Finite ⋯
⊢ ↑(Finite.toFinset hf) = ↑(image₂ f hs.toFinset ht.toFinset)
state_after: no goals
Theorem: Orientation.oangle_add_oangle_rev_neg_left
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean

tactic: rw [oangle_neg_left_eq_neg_right, oangle_rev, add_left_neg]
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x y : V
⊢ o.oangle (-x) y + o.oangle (-y) x = 0
state_after: no goals
Theorem: LieAlgebra.IsKilling.corootSpace_eq_bot_iff
File: Mathlib/Algebra/Lie/Weights/Killing.lean

tactic: simp [← LieSubmodule.coeSubmodule_eq_bot_iff, coe_corootSpace_eq_span_singleton α]
state_before: R : Type u_1
K : Type u_2
L : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : FiniteDimensional K L
H : LieSubalgebra K L
inst✝³ : H.IsCartanSubalgebra
inst✝² : IsTriangularizable K (↥H) L
inst✝¹ : IsKilling K L
inst✝ : CharZero K
α : Weight K (↥H) L
⊢ corootSpace ⇑α = ⊥ ↔ α.IsZero
state_after: no goals
Theorem: WeierstrassCurve.coeff_ΨSq
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean

tactic: induction n using Int.negInduction with
| nat n => exact_mod_cast (W.natDegree_coeff_ΨSq_ofNat n).right
| neg => rwa [ΨSq_neg, Int.natAbs_neg, ← Int.cast_pow, neg_sq, Int.cast_pow]
state_before: R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
n : ℤ
⊢ (W.ΨSq n).coeff (n.natAbs ^ 2 - 1) = ↑n ^ 2
state_after: no goals

tactic: exact_mod_cast (W.natDegree_coeff_ΨSq_ofNat n).right
state_before: case nat
R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
n : ℕ
⊢ (W.ΨSq ↑n).coeff ((↑n).natAbs ^ 2 - 1) = ↑↑n ^ 2
state_after: no goals

tactic: rwa [ΨSq_neg, Int.natAbs_neg, ← Int.cast_pow, neg_sq, Int.cast_pow]
state_before: case neg
R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
n✝ : ℕ
a✝ : (W.ΨSq ↑n✝).coeff ((↑n✝).natAbs ^ 2 - 1) = ↑↑n✝ ^ 2
⊢ (W.ΨSq (-↑n✝)).coeff ((-↑n✝).natAbs ^ 2 - 1) = ↑(-↑n✝) ^ 2
state_after: no goals
Theorem: ite_prop_iff_and
File: Mathlib/Logic/Basic.lean

tactic: by_cases p : P <;> simp [p]
state_before: α : Sort u_1
σ : α → Sort u_2
P Q R : Prop
inst✝¹ : Decidable P
inst✝ : Decidable Q
a b c : α
A : P → α
B : ¬P → α
⊢ (if P then Q else R) ↔ (P → Q) ∧ (¬P → R)
state_after: no goals
Theorem: Part.to_unit_cont
File: Mathlib/Control/LawfulFix.lean

tactic: ext ⟨⟩ : 1
state_before: α : Type u_1
β : α → Type u_2
f : Part α →o Part α
hc : Continuous f
x✝ : Chain (Unit → Part α)
⊢ (toUnitMono f) (ωSup x✝) = ωSup (x✝.map (toUnitMono f))
state_after: case h.unit
α : Type u_1
β : α → Type u_2
f : Part α →o Part α
hc : Continuous f
x✝ : Chain (Unit → Part α)
⊢ (toUnitMono f) (ωSup x✝) PUnit.unit = ωSup (x✝.map (toUnitMono f)) PUnit.unit

tactic: dsimp [OmegaCompletePartialOrder.ωSup]
state_before: case h.unit
α : Type u_1
β : α → Type u_2
f : Part α →o Part α
hc : Continuous f
x✝ : Chain (Unit → Part α)
⊢ (toUnitMono f) (ωSup x✝) PUnit.unit = ωSup (x✝.map (toUnitMono f)) PUnit.unit
state_after: case h.unit
α : Type u_1
β : α → Type u_2
f : Part α →o Part α
hc : Continuous f
x✝ : Chain (Unit → Part α)
⊢ f (Part.ωSup (x✝.map (Pi.evalOrderHom PUnit.unit))) =
    Part.ωSup ((x✝.map (toUnitMono f)).map (Pi.evalOrderHom PUnit.unit))

tactic: erw [hc, Chain.map_comp]
state_before: case h.unit
α : Type u_1
β : α → Type u_2
f : Part α →o Part α
hc : Continuous f
x✝ : Chain (Unit → Part α)
⊢ f (Part.ωSup (x✝.map (Pi.evalOrderHom PUnit.unit))) =
    Part.ωSup ((x✝.map (toUnitMono f)).map (Pi.evalOrderHom PUnit.unit))
state_after: case h.unit
α : Type u_1
β : α → Type u_2
f : Part α →o Part α
hc : Continuous f
x✝ : Chain (Unit → Part α)
⊢ ωSup (x✝.map (f.comp (Pi.evalOrderHom PUnit.unit))) = Part.ωSup (x✝.map (f.comp (Pi.evalOrderHom PUnit.unit)))

tactic: rfl
state_before: case h.unit
α : Type u_1
β : α → Type u_2
f : Part α →o Part α
hc : Continuous f
x✝ : Chain (Unit → Part α)
⊢ ωSup (x✝.map (f.comp (Pi.evalOrderHom PUnit.unit))) = Part.ωSup (x✝.map (f.comp (Pi.evalOrderHom PUnit.unit)))
state_after: no goals
Theorem: IsEvenlyCovered.toTrivialization_apply
File: Mathlib/Topology/Covering.lean

tactic: rwa [he, e.mem_target, e.coe_fst (e.mem_source.mpr h)]
state_before: E : Type u_1
X : Type u_2
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalSpace X
f : E → X
s : Set X
x : E
I : Type u_3
inst✝ : TopologicalSpace I
h✝ : IsEvenlyCovered f (f x) I
e : Trivialization I f := Classical.choose ⋯
h : f x ∈ (Classical.choose ⋯).baseSet := Classical.choose_spec h✝.right
he : (f x, (↑e x).2) = ↑e x := Trivialization.mk_proj_snd' e h
⊢ (f x, (↑e x).2) ∈ e.target
state_after: no goals
Theorem: FirstOrder.Language.Substructure.FG.sup
File: Mathlib/ModelTheory/FinitelyGenerated.lean

tactic: rw [closure_union, ht₁.2, ht₂.2]
state_before: L : Language
M : Type u_1
inst✝ : L.Structure M
N₁ N₂ : L.Substructure M
hN₁ : N₁.FG
hN₂ : N₂.FG
t₁ : Set M
ht₁ : t₁.Finite ∧ (closure L).toFun t₁ = N₁
t₂ : Set M
ht₂ : t₂.Finite ∧ (closure L).toFun t₂ = N₂
⊢ (closure L).toFun (t₁ ∪ t₂) = N₁ ⊔ N₂
state_after: no goals
Theorem: SimpleGraph.deleteEdges_univ
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

tactic: simp [deleteEdges]
state_before: ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u v w : V
e : Sym2 V
H : SimpleGraph V
s s₁ s₂ : Set (Sym2 V)
⊢ G.deleteEdges Set.univ = ⊥
state_after: no goals
Theorem: mdifferentiableAt_neg
File: Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean

tactic: convert hf.neg
state_before: 𝕜 : Type u_1
inst✝¹⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
H : Type u_3
inst✝¹⁵ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹⁴ : TopologicalSpace M
inst✝¹³ : ChartedSpace H M
inst✝¹² : SmoothManifoldWithCorners I M
E' : Type u_5
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝⁹ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝⁸ : TopologicalSpace M'
inst✝⁷ : ChartedSpace H' M'
inst✝⁶ : SmoothManifoldWithCorners I' M'
E'' : Type u_8
inst✝⁵ : NormedAddCommGroup E''
inst✝⁴ : NormedSpace 𝕜 E''
H'' : Type u_9
inst✝³ : TopologicalSpace H''
I'' : ModelWithCorners 𝕜 E'' H''
M'' : Type u_10
inst✝² : TopologicalSpace M''
inst✝¹ : ChartedSpace H'' M''
inst✝ : SmoothManifoldWithCorners I'' M''
s : Set M
x z : M
f g : M → E'
f' g' : TangentSpace I z →L[𝕜] E'
hf : MDifferentiableAt I 𝓘(𝕜, E') (-f) z
⊢ MDifferentiableAt I 𝓘(𝕜, E') f z
state_after: case h.e'_21
𝕜 : Type u_1
inst✝¹⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
H : Type u_3
inst✝¹⁵ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹⁴ : TopologicalSpace M
inst✝¹³ : ChartedSpace H M
inst✝¹² : SmoothManifoldWithCorners I M
E' : Type u_5
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝⁹ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝⁸ : TopologicalSpace M'
inst✝⁷ : ChartedSpace H' M'
inst✝⁶ : SmoothManifoldWithCorners I' M'
E'' : Type u_8
inst✝⁵ : NormedAddCommGroup E''
inst✝⁴ : NormedSpace 𝕜 E''
H'' : Type u_9
inst✝³ : TopologicalSpace H''
I'' : ModelWithCorners 𝕜 E'' H''
M'' : Type u_10
inst✝² : TopologicalSpace M''
inst✝¹ : ChartedSpace H'' M''
inst✝ : SmoothManifoldWithCorners I'' M''
s : Set M
x z : M
f g : M → E'
f' g' : TangentSpace I z →L[𝕜] E'
hf : MDifferentiableAt I 𝓘(𝕜, E') (-f) z
⊢ f = - -f

tactic: rw [neg_neg]
state_before: case h.e'_21
𝕜 : Type u_1
inst✝¹⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
H : Type u_3
inst✝¹⁵ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹⁴ : TopologicalSpace M
inst✝¹³ : ChartedSpace H M
inst✝¹² : SmoothManifoldWithCorners I M
E' : Type u_5
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝⁹ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝⁸ : TopologicalSpace M'
inst✝⁷ : ChartedSpace H' M'
inst✝⁶ : SmoothManifoldWithCorners I' M'
E'' : Type u_8
inst✝⁵ : NormedAddCommGroup E''
inst✝⁴ : NormedSpace 𝕜 E''
H'' : Type u_9
inst✝³ : TopologicalSpace H''
I'' : ModelWithCorners 𝕜 E'' H''
M'' : Type u_10
inst✝² : TopologicalSpace M''
inst✝¹ : ChartedSpace H'' M''
inst✝ : SmoothManifoldWithCorners I'' M''
s : Set M
x z : M
f g : M → E'
f' g' : TangentSpace I z →L[𝕜] E'
hf : MDifferentiableAt I 𝓘(𝕜, E') (-f) z
⊢ f = - -f
state_after: no goals
Theorem: FractionalIdeal.isNoetherian
File: Mathlib/RingTheory/FractionalIdeal/Operations.lean

tactic: obtain ⟨d, J, _, rfl⟩ := exists_eq_spanSingleton_mul I
state_before: R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁶ : CommRing P
inst✝⁵ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝⁴ : CommRing R₁
K : Type u_4
inst✝³ : Field K
inst✝² : Algebra R₁ K
frac : IsFractionRing R₁ K
inst✝¹ : IsDomain R₁
inst✝ : IsNoetherianRing R₁
I : FractionalIdeal R₁⁰ K
⊢ IsNoetherian R₁ ↥↑I
state_after: case intro.intro.intro
R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁶ : CommRing P
inst✝⁵ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝⁴ : CommRing R₁
K : Type u_4
inst✝³ : Field K
inst✝² : Algebra R₁ K
frac : IsFractionRing R₁ K
inst✝¹ : IsDomain R₁
inst✝ : IsNoetherianRing R₁
d : R₁
J : Ideal R₁
left✝ : d ≠ 0
⊢ IsNoetherian R₁ ↥↑(spanSingleton R₁⁰ ((algebraMap R₁ K) d)⁻¹ * ↑J)

tactic: apply isNoetherian_spanSingleton_inv_to_map_mul
state_before: case intro.intro.intro
R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁶ : CommRing P
inst✝⁵ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝⁴ : CommRing R₁
K : Type u_4
inst✝³ : Field K
inst✝² : Algebra R₁ K
frac : IsFractionRing R₁ K
inst✝¹ : IsDomain R₁
inst✝ : IsNoetherianRing R₁
d : R₁
J : Ideal R₁
left✝ : d ≠ 0
⊢ IsNoetherian R₁ ↥↑(spanSingleton R₁⁰ ((algebraMap R₁ K) d)⁻¹ * ↑J)
state_after: case intro.intro.intro.hI
R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁶ : CommRing P
inst✝⁵ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝⁴ : CommRing R₁
K : Type u_4
inst✝³ : Field K
inst✝² : Algebra R₁ K
frac : IsFractionRing R₁ K
inst✝¹ : IsDomain R₁
inst✝ : IsNoetherianRing R₁
d : R₁
J : Ideal R₁
left✝ : d ≠ 0
⊢ IsNoetherian R₁ ↥↑↑J

tactic: apply isNoetherian_coeIdeal
state_before: case intro.intro.intro.hI
R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁶ : CommRing P
inst✝⁵ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝⁴ : CommRing R₁
K : Type u_4
inst✝³ : Field K
inst✝² : Algebra R₁ K
frac : IsFractionRing R₁ K
inst✝¹ : IsDomain R₁
inst✝ : IsNoetherianRing R₁
d : R₁
J : Ideal R₁
left✝ : d ≠ 0
⊢ IsNoetherian R₁ ↥↑↑J
state_after: no goals
Theorem: Ordinal.mod_mod_of_dvd
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: nth_rw 2 [← div_add_mod a b]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b c : Ordinal.{u_4}
h : c ∣ b
⊢ a % b % c = a % c
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b c : Ordinal.{u_4}
h : c ∣ b
⊢ a % b % c = (b * (a / b) + a % b) % c

tactic: rcases h with ⟨d, rfl⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b c : Ordinal.{u_4}
h : c ∣ b
⊢ a % b % c = (b * (a / b) + a % b) % c
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a c d : Ordinal.{u_4}
⊢ a % (c * d) % c = (c * d * (a / (c * d)) + a % (c * d)) % c

tactic: rw [mul_assoc, mul_add_mod_self]
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a c d : Ordinal.{u_4}
⊢ a % (c * d) % c = (c * d * (a / (c * d)) + a % (c * d)) % c
state_after: no goals
Theorem: Units.divp_add_divp_same
File: Mathlib/Algebra/Ring/Units.lean

tactic: simp only [divp, add_mul]
state_before: α : Type u
β : Type v
γ : Type w
R : Type x
inst✝ : Ring α
a✝ b✝ a b : α
u : αˣ
⊢ a /ₚ u + b /ₚ u = (a + b) /ₚ u
state_after: no goals
Theorem: LinearMap.tailings_zero
File: Mathlib/LinearAlgebra/Prod.lean

tactic: simp [tailings]
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type u_1
M₆ : Type u_2
inst✝⁴ : Ring R
N : Type u_3
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
f : M × N →ₗ[R] M
i : Injective ⇑f
⊢ f.tailings i 0 = f.tailing i 0
state_after: no goals
Theorem: AlgebraicGeometry.Scheme.Pullback.t_snd
File: Mathlib/AlgebraicGeometry/Pullbacks.lean

tactic: simp only [t, Category.assoc, pullbackSymmetry_hom_comp_snd, pullbackAssoc_hom_fst,
  pullback.lift_fst_assoc, pullbackSymmetry_hom_comp_fst, pullbackAssoc_inv_fst_snd,
  pullbackSymmetry_hom_comp_snd_assoc]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
i j : 𝒰.J
⊢ t 𝒰 f g i j ≫ pullback.snd = pullback.fst ≫ pullback.fst
state_after: no goals
Theorem: Submodule.map_liftQ
File: Mathlib/LinearAlgebra/Quotient.lean

tactic: rintro _ ⟨⟨x⟩, hxq, rfl⟩
state_before: R : Type u_1
M : Type u_2
r : R
x y : M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
p p' : Submodule R M
R₂ : Type u_3
M₂ : Type u_4
inst✝³ : Ring R₂
inst✝² : AddCommGroup M₂
inst✝¹ : Module R₂ M₂
τ₁₂ : R →+* R₂
q✝ : Submodule R₂ M₂
inst✝ : RingHomSurjective τ₁₂
f : M →ₛₗ[τ₁₂] M₂
h : p ≤ ker f
q : Submodule R (M ⧸ p)
⊢ map (p.liftQ f h) q ≤ map f (comap p.mkQ q)
state_after: case intro.mk.intro
R : Type u_1
M : Type u_2
r : R
x✝ y : M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
p p' : Submodule R M
R₂ : Type u_3
M₂ : Type u_4
inst✝³ : Ring R₂
inst✝² : AddCommGroup M₂
inst✝¹ : Module R₂ M₂
τ₁₂ : R →+* R₂
q✝ : Submodule R₂ M₂
inst✝ : RingHomSurjective τ₁₂
f : M →ₛₗ[τ₁₂] M₂
h : p ≤ ker f
q : Submodule R (M ⧸ p)
w✝ : M ⧸ p
x : M
hxq : Quot.mk Setoid.r x ∈ ↑q
⊢ (p.liftQ f h) (Quot.mk Setoid.r x) ∈ map f (comap p.mkQ q)

tactic: exact ⟨x, hxq, rfl⟩
state_before: case intro.mk.intro
R : Type u_1
M : Type u_2
r : R
x✝ y : M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
p p' : Submodule R M
R₂ : Type u_3
M₂ : Type u_4
inst✝³ : Ring R₂
inst✝² : AddCommGroup M₂
inst✝¹ : Module R₂ M₂
τ₁₂ : R →+* R₂
q✝ : Submodule R₂ M₂
inst✝ : RingHomSurjective τ₁₂
f : M →ₛₗ[τ₁₂] M₂
h : p ≤ ker f
q : Submodule R (M ⧸ p)
w✝ : M ⧸ p
x : M
hxq : Quot.mk Setoid.r x ∈ ↑q
⊢ (p.liftQ f h) (Quot.mk Setoid.r x) ∈ map f (comap p.mkQ q)
state_after: no goals

tactic: rintro _ ⟨x, hxq, rfl⟩
state_before: R : Type u_1
M : Type u_2
r : R
x y : M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
p p' : Submodule R M
R₂ : Type u_3
M₂ : Type u_4
inst✝³ : Ring R₂
inst✝² : AddCommGroup M₂
inst✝¹ : Module R₂ M₂
τ₁₂ : R →+* R₂
q✝ : Submodule R₂ M₂
inst✝ : RingHomSurjective τ₁₂
f : M →ₛₗ[τ₁₂] M₂
h : p ≤ ker f
q : Submodule R (M ⧸ p)
⊢ map f (comap p.mkQ q) ≤ map (p.liftQ f h) q
state_after: case intro.intro
R : Type u_1
M : Type u_2
r : R
x✝ y : M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
p p' : Submodule R M
R₂ : Type u_3
M₂ : Type u_4
inst✝³ : Ring R₂
inst✝² : AddCommGroup M₂
inst✝¹ : Module R₂ M₂
τ₁₂ : R →+* R₂
q✝ : Submodule R₂ M₂
inst✝ : RingHomSurjective τ₁₂
f : M →ₛₗ[τ₁₂] M₂
h : p ≤ ker f
q : Submodule R (M ⧸ p)
x : M
hxq : x ∈ ↑(comap p.mkQ q)
⊢ f x ∈ map (p.liftQ f h) q

tactic: exact ⟨Quotient.mk x, hxq, rfl⟩
state_before: case intro.intro
R : Type u_1
M : Type u_2
r : R
x✝ y : M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
p p' : Submodule R M
R₂ : Type u_3
M₂ : Type u_4
inst✝³ : Ring R₂
inst✝² : AddCommGroup M₂
inst✝¹ : Module R₂ M₂
τ₁₂ : R →+* R₂
q✝ : Submodule R₂ M₂
inst✝ : RingHomSurjective τ₁₂
f : M →ₛₗ[τ₁₂] M₂
h : p ≤ ker f
q : Submodule R (M ⧸ p)
x : M
hxq : x ∈ ↑(comap p.mkQ q)
⊢ f x ∈ map (p.liftQ f h) q
state_after: no goals
Theorem: SetTheory.PGame.lt_or_equiv_or_gf
File: Mathlib/SetTheory/Game/PGame.lean

tactic: rw [lf_iff_lt_or_fuzzy, Fuzzy.swap_iff]
state_before: xl xr : Type u
x y : PGame
⊢ x < y ∨ x ≈ y ∨ y ⧏ x
state_after: xl xr : Type u
x y : PGame
⊢ x < y ∨ x ≈ y ∨ y < x ∨ x ‖ y

tactic: exact lt_or_equiv_or_gt_or_fuzzy x y
state_before: xl xr : Type u
x y : PGame
⊢ x < y ∨ x ≈ y ∨ y < x ∨ x ‖ y
state_after: no goals
Theorem: heq_imp_of_eq_imp
File: Mathlib/Tactic/Congr!.lean

tactic: cases he
state_before: α✝ : Sort u_1
x y : α✝
p : HEq x y → Prop
h : ∀ (he : x = y), p ⋯
he : HEq x y
⊢ p he
state_after: case refl
α✝ : Sort u_1
x : α✝
p : HEq x x → Prop
h : ∀ (he : x = x), p ⋯
⊢ p ⋯

tactic: exact h rfl
state_before: case refl
α✝ : Sort u_1
x : α✝
p : HEq x x → Prop
h : ∀ (he : x = x), p ⋯
⊢ p ⋯
state_after: no goals
Theorem: Real.tendsto_Icc_vitaliFamily_right
File: Mathlib/MeasureTheory/Covering/OneDim.lean

tactic: refine (VitaliFamily.tendsto_filterAt_iff _).2 ⟨?_, ?_⟩
state_before: x : ℝ
⊢ Tendsto (fun y => Icc x y) (𝓝[>] x) ((vitaliFamily volume 1).filterAt x)
state_after: case refine_1
x : ℝ
⊢ ∀ᶠ (i : ℝ) in 𝓝[>] x, Icc x i ∈ (vitaliFamily volume 1).setsAt x

case refine_2
x : ℝ
⊢ ∀ ε > 0, ∀ᶠ (i : ℝ) in 𝓝[>] x, Icc x i ⊆ Metric.closedBall x ε

tactic: filter_upwards [self_mem_nhdsWithin] with y hy using Icc_mem_vitaliFamily_at_right hy
state_before: case refine_1
x : ℝ
⊢ ∀ᶠ (i : ℝ) in 𝓝[>] x, Icc x i ∈ (vitaliFamily volume 1).setsAt x
state_after: no goals

tactic: intro ε εpos
state_before: case refine_2
x : ℝ
⊢ ∀ ε > 0, ∀ᶠ (i : ℝ) in 𝓝[>] x, Icc x i ⊆ Metric.closedBall x ε
state_after: case refine_2
x ε : ℝ
εpos : ε > 0
⊢ ∀ᶠ (i : ℝ) in 𝓝[>] x, Icc x i ⊆ Metric.closedBall x ε

tactic: have : x ∈ Ico x (x + ε) := ⟨le_refl _, by linarith⟩
state_before: case refine_2
x ε : ℝ
εpos : ε > 0
⊢ ∀ᶠ (i : ℝ) in 𝓝[>] x, Icc x i ⊆ Metric.closedBall x ε
state_after: case refine_2
x ε : ℝ
εpos : ε > 0
this : x ∈ Ico x (x + ε)
⊢ ∀ᶠ (i : ℝ) in 𝓝[>] x, Icc x i ⊆ Metric.closedBall x ε

tactic: filter_upwards [Icc_mem_nhdsWithin_Ioi this] with y hy
state_before: case refine_2
x ε : ℝ
εpos : ε > 0
this : x ∈ Ico x (x + ε)
⊢ ∀ᶠ (i : ℝ) in 𝓝[>] x, Icc x i ⊆ Metric.closedBall x ε
state_after: case h
x ε : ℝ
εpos : ε > 0
this : x ∈ Ico x (x + ε)
y : ℝ
hy : y ∈ Icc x (x + ε)
⊢ Icc x y ⊆ Metric.closedBall x ε

tactic: rw [closedBall_eq_Icc]
state_before: case h
x ε : ℝ
εpos : ε > 0
this : x ∈ Ico x (x + ε)
y : ℝ
hy : y ∈ Icc x (x + ε)
⊢ Icc x y ⊆ Metric.closedBall x ε
state_after: case h
x ε : ℝ
εpos : ε > 0
this : x ∈ Ico x (x + ε)
y : ℝ
hy : y ∈ Icc x (x + ε)
⊢ Icc x y ⊆ Icc (x - ε) (x + ε)

tactic: exact Icc_subset_Icc (by linarith) hy.2
state_before: case h
x ε : ℝ
εpos : ε > 0
this : x ∈ Ico x (x + ε)
y : ℝ
hy : y ∈ Icc x (x + ε)
⊢ Icc x y ⊆ Icc (x - ε) (x + ε)
state_after: no goals

tactic: linarith
state_before: x ε : ℝ
εpos : ε > 0
⊢ x < x + ε
state_after: no goals

tactic: linarith
state_before: x ε : ℝ
εpos : ε > 0
this : x ∈ Ico x (x + ε)
y : ℝ
hy : y ∈ Icc x (x + ε)
⊢ x - ε ≤ x
state_after: no goals
Theorem: Complex.dist_le_dist_of_mapsTo_ball_self
File: Mathlib/Analysis/Complex/Schwarz.lean

tactic: have := dist_le_div_mul_dist_of_mapsTo_ball hd (by rwa [hc]) hz
state_before: f : ℂ → ℂ
c z : ℂ
R R₁ R₂ : ℝ
hd : DifferentiableOn ℂ f (ball c R)
h_maps : MapsTo f (ball c R) (ball c R)
hc : f c = c
hz : z ∈ ball c R
⊢ dist (f z) c ≤ dist z c
state_after: f : ℂ → ℂ
c z : ℂ
R R₁ R₂ : ℝ
hd : DifferentiableOn ℂ f (ball c R)
h_maps : MapsTo f (ball c R) (ball c R)
hc : f c = c
hz : z ∈ ball c R
this : dist (f z) (f c) ≤ R / R * dist z c
⊢ dist (f z) c ≤ dist z c

tactic: rwa [hc, div_self, one_mul] at this
state_before: f : ℂ → ℂ
c z : ℂ
R R₁ R₂ : ℝ
hd : DifferentiableOn ℂ f (ball c R)
h_maps : MapsTo f (ball c R) (ball c R)
hc : f c = c
hz : z ∈ ball c R
this : dist (f z) (f c) ≤ R / R * dist z c
⊢ dist (f z) c ≤ dist z c
state_after: f : ℂ → ℂ
c z : ℂ
R R₁ R₂ : ℝ
hd : DifferentiableOn ℂ f (ball c R)
h_maps : MapsTo f (ball c R) (ball c R)
hc : f c = c
hz : z ∈ ball c R
this : dist (f z) c ≤ R / R * dist z c
⊢ R ≠ 0

tactic: exact (nonempty_ball.1 ⟨z, hz⟩).ne'
state_before: f : ℂ → ℂ
c z : ℂ
R R₁ R₂ : ℝ
hd : DifferentiableOn ℂ f (ball c R)
h_maps : MapsTo f (ball c R) (ball c R)
hc : f c = c
hz : z ∈ ball c R
this : dist (f z) c ≤ R / R * dist z c
⊢ R ≠ 0
state_after: no goals

tactic: rwa [hc]
state_before: f : ℂ → ℂ
c z : ℂ
R R₁ R₂ : ℝ
hd : DifferentiableOn ℂ f (ball c R)
h_maps : MapsTo f (ball c R) (ball c R)
hc : f c = c
hz : z ∈ ball c R
⊢ MapsTo f (ball c R) (ball (f c) ?m.36553)
state_after: no goals