1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Metric.tendsto_nhdsWithin_nhds
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: rw [← nhdsWithin_univ b, tendsto_nhdsWithin_nhdsWithin]
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
inst✝ : PseudoMetricSpace β
f : α → β
a : α
b : β
⊢ Tendsto f (𝓝[s] a) (𝓝 b) ↔ ∀ ε > 0, ∃ δ > 0, ∀ {x : α}, x ∈ s → dist x a < δ → dist (f x) b < ε
state_after: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
inst✝ : PseudoMetricSpace β
f : α → β
a : α
b : β
⊢ (∀ ε > 0, ∃ δ > 0, ∀ {x : α}, x ∈ s → dist x a < δ → f x ∈ univ ∧ dist (f x) b < ε) ↔
    ∀ ε > 0, ∃ δ > 0, ∀ {x : α}, x ∈ s → dist x a < δ → dist (f x) b < ε

tactic: simp only [mem_univ, true_and_iff]
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
inst✝ : PseudoMetricSpace β
f : α → β
a : α
b : β
⊢ (∀ ε > 0, ∃ δ > 0, ∀ {x : α}, x ∈ s → dist x a < δ → f x ∈ univ ∧ dist (f x) b < ε) ↔
    ∀ ε > 0, ∃ δ > 0, ∀ {x : α}, x ∈ s → dist x a < δ → dist (f x) b < ε
state_after: no goals
Theorem: linearIndependent_algHom_toLinearMap
File: Mathlib/LinearAlgebra/LinearIndependent.lean

tactic: apply LinearIndependent.of_comp (LinearMap.ltoFun K M L)
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K✝ : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹² : Ring R
inst✝¹¹ : AddCommGroup M✝
inst✝¹⁰ : AddCommGroup M'
inst✝⁹ : AddCommGroup M''
inst✝⁸ : Module R M✝
inst✝⁷ : Module R M'
inst✝⁶ : Module R M''
a b : R
x y : M✝
K : Type u_8
M : Type u_9
L : Type u_10
inst✝⁵ : CommSemiring K
inst✝⁴ : Semiring M
inst✝³ : Algebra K M
inst✝² : CommRing L
inst✝¹ : IsDomain L
inst✝ : Algebra K L
⊢ LinearIndependent L AlgHom.toLinearMap
state_after: ι : Type u'
ι' : Type u_1
R : Type u_2
K✝ : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹² : Ring R
inst✝¹¹ : AddCommGroup M✝
inst✝¹⁰ : AddCommGroup M'
inst✝⁹ : AddCommGroup M''
inst✝⁸ : Module R M✝
inst✝⁷ : Module R M'
inst✝⁶ : Module R M''
a b : R
x y : M✝
K : Type u_8
M : Type u_9
L : Type u_10
inst✝⁵ : CommSemiring K
inst✝⁴ : Semiring M
inst✝³ : Algebra K M
inst✝² : CommRing L
inst✝¹ : IsDomain L
inst✝ : Algebra K L
⊢ LinearIndependent L (⇑(ltoFun K M L) ∘ AlgHom.toLinearMap)

tactic: exact (linearIndependent_monoidHom M L).comp
  (RingHom.toMonoidHom ∘ AlgHom.toRingHom)
  (fun _ _ e ↦ AlgHom.ext (DFunLike.congr_fun e : _))
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K✝ : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹² : Ring R
inst✝¹¹ : AddCommGroup M✝
inst✝¹⁰ : AddCommGroup M'
inst✝⁹ : AddCommGroup M''
inst✝⁸ : Module R M✝
inst✝⁷ : Module R M'
inst✝⁶ : Module R M''
a b : R
x y : M✝
K : Type u_8
M : Type u_9
L : Type u_10
inst✝⁵ : CommSemiring K
inst✝⁴ : Semiring M
inst✝³ : Algebra K M
inst✝² : CommRing L
inst✝¹ : IsDomain L
inst✝ : Algebra K L
⊢ LinearIndependent L (⇑(ltoFun K M L) ∘ AlgHom.toLinearMap)
state_after: no goals
Theorem: ConvexIndependent.injective
File: Mathlib/Analysis/Convex/Independent.lean

tactic: refine fun i j hij => hc {j} i ?_
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t : Set E
p : ι → E
hc : ConvexIndependent 𝕜 p
⊢ Injective p
state_after: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t : Set E
p : ι → E
hc : ConvexIndependent 𝕜 p
i j : ι
hij : p i = p j
⊢ p i ∈ (convexHull 𝕜) (p '' {j})

tactic: rw [hij, Set.image_singleton, convexHull_singleton]
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t : Set E
p : ι → E
hc : ConvexIndependent 𝕜 p
i j : ι
hij : p i = p j
⊢ p i ∈ (convexHull 𝕜) (p '' {j})
state_after: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t : Set E
p : ι → E
hc : ConvexIndependent 𝕜 p
i j : ι
hij : p i = p j
⊢ p j ∈ {p j}

tactic: exact Set.mem_singleton _
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t : Set E
p : ι → E
hc : ConvexIndependent 𝕜 p
i j : ι
hij : p i = p j
⊢ p j ∈ {p j}
state_after: no goals
Theorem: ContinuousLinearMap.IsPositive.conj_adjoint
File: Mathlib/Analysis/InnerProductSpace/Positive.lean

tactic: refine ⟨hT.isSelfAdjoint.conj_adjoint S, fun x => ?_⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
T : E →L[𝕜] E
hT : T.IsPositive
S : E →L[𝕜] F
⊢ (S.comp (T.comp (adjoint S))).IsPositive
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
T : E →L[𝕜] E
hT : T.IsPositive
S : E →L[𝕜] F
x : F
⊢ 0 ≤ (S.comp (T.comp (adjoint S))).reApplyInnerSelf x

tactic: rw [reApplyInnerSelf, comp_apply, ← adjoint_inner_right]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
T : E →L[𝕜] E
hT : T.IsPositive
S : E →L[𝕜] F
x : F
⊢ 0 ≤ (S.comp (T.comp (adjoint S))).reApplyInnerSelf x
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
T : E →L[𝕜] E
hT : T.IsPositive
S : E →L[𝕜] F
x : F
⊢ 0 ≤ re ⟪(T.comp (adjoint S)) x, (adjoint S) x⟫_𝕜

tactic: exact hT.inner_nonneg_left _
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
T : E →L[𝕜] E
hT : T.IsPositive
S : E →L[𝕜] F
x : F
⊢ 0 ≤ re ⟪(T.comp (adjoint S)) x, (adjoint S) x⟫_𝕜
state_after: no goals
Theorem: SimpleGraph.Subgraph.iInf_adj
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: simp [iInf]
state_before: ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : G.Subgraph
a b : V
f : ι → G.Subgraph
⊢ (⨅ i, f i).Adj a b ↔ (∀ (i : ι), (f i).Adj a b) ∧ G.Adj a b
state_after: no goals
Theorem: Set.piecewise_same
File: Mathlib/Data/Set/Function.lean

tactic: ext x
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
δ : α → Sort u_6
s : Set α
f g : (i : α) → δ i
inst✝ : (j : α) → Decidable (j ∈ s)
⊢ s.piecewise f f = f
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
δ : α → Sort u_6
s : Set α
f g : (i : α) → δ i
inst✝ : (j : α) → Decidable (j ∈ s)
x : α
⊢ s.piecewise f f x = f x

tactic: by_cases hx : x ∈ s <;> simp [hx]
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
δ : α → Sort u_6
s : Set α
f g : (i : α) → δ i
inst✝ : (j : α) → Decidable (j ∈ s)
x : α
⊢ s.piecewise f f x = f x
state_after: no goals
Theorem: Finset.exists_mem_empty_iff
File: Mathlib/Data/Finset/Basic.lean

tactic: simp only [not_mem_empty, false_and_iff, exists_false]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
p : α → Prop
⊢ (∃ x ∈ ∅, p x) ↔ False
state_after: no goals
Theorem: ContinuousLinearMap.sSup_unit_ball_eq_norm
File: Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean

tactic: simpa only [NNReal.coe_sSup, Set.image_image] using NNReal.coe_inj.2 f.sSup_unit_ball_eq_nnnorm
state_before: 𝕜✝ : Type u_1
𝕜₂✝ : Type u_2
𝕜₃ : Type u_3
E✝ : Type u_4
Eₗ : Type u_5
F✝ : Type u_6
Fₗ : Type u_7
G : Type u_8
Gₗ : Type u_9
𝓕 : Type u_10
inst✝²⁴ : SeminormedAddCommGroup E✝
inst✝²³ : SeminormedAddCommGroup Eₗ
inst✝²² : SeminormedAddCommGroup F✝
inst✝²¹ : SeminormedAddCommGroup Fₗ
inst✝²⁰ : SeminormedAddCommGroup G
inst✝¹⁹ : SeminormedAddCommGroup Gₗ
inst✝¹⁸ : NontriviallyNormedField 𝕜✝
inst✝¹⁷ : NontriviallyNormedField 𝕜₂✝
inst✝¹⁶ : NontriviallyNormedField 𝕜₃
inst✝¹⁵ : NormedSpace 𝕜✝ E✝
inst✝¹⁴ : NormedSpace 𝕜✝ Eₗ
inst✝¹³ : NormedSpace 𝕜₂✝ F✝
inst✝¹² : NormedSpace 𝕜✝ Fₗ
inst✝¹¹ : NormedSpace 𝕜₃ G
inst✝¹⁰ : NormedSpace 𝕜✝ Gₗ
σ₁₂✝ : 𝕜✝ →+* 𝕜₂✝
σ₂₃ : 𝕜₂✝ →+* 𝕜₃
σ₁₃ : 𝕜✝ →+* 𝕜₃
inst✝⁹ : RingHomCompTriple σ₁₂✝ σ₂₃ σ₁₃
inst✝⁸ : FunLike 𝓕 E✝ F✝
inst✝⁷ : RingHomIsometric σ₁₂✝
𝕜 : Type u_11
𝕜₂ : Type u_12
E : Type u_13
F : Type u_14
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : SeminormedAddCommGroup F
inst✝⁴ : DenselyNormedField 𝕜
inst✝³ : NontriviallyNormedField 𝕜₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜₂ F
inst✝ : RingHomIsometric σ₁₂
f : E →SL[σ₁₂] F
⊢ sSup ((fun x => ‖f x‖) '' ball 0 1) = ‖f‖
state_after: no goals
Theorem: WeierstrassCurve.Jacobian.Point.toAffine_add_of_Z_ne_zero
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

tactic: rw [toAffine_some <| nonsingular_add_of_Z_ne_zero hP hQ hPz hQz hxy, toAffine_of_Z_ne_zero hP hPz,
  toAffine_of_Z_ne_zero hQ hQz,
  Affine.Point.add_of_imp <| by rwa [← X_eq_iff hPz hQz, ne_eq, ← Y_eq_iff' hPz hQz]]
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P Q : Fin 3 → F
hP : W.Nonsingular P
hQ : W.Nonsingular Q
hPz : P z ≠ 0
hQz : Q z ≠ 0
hxy : P x * Q z ^ 2 = Q x * P z ^ 2 → P y * Q z ^ 3 ≠ W.negY Q * P z ^ 3
⊢ toAffine W
      ![W.toAffine.addX (P x / P z ^ 2) (Q x / Q z ^ 2)
          (W.toAffine.slope (P x / P z ^ 2) (Q x / Q z ^ 2) (P y / P z ^ 3) (Q y / Q z ^ 3)),
        W.toAffine.addY (P x / P z ^ 2) (Q x / Q z ^ 2) (P y / P z ^ 3)
          (W.toAffine.slope (P x / P z ^ 2) (Q x / Q z ^ 2) (P y / P z ^ 3) (Q y / Q z ^ 3)),
        1] =
    toAffine W P + toAffine W Q
state_after: no goals

tactic: rwa [← X_eq_iff hPz hQz, ne_eq, ← Y_eq_iff' hPz hQz]
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P Q : Fin 3 → F
hP : W.Nonsingular P
hQ : W.Nonsingular Q
hPz : P z ≠ 0
hQz : Q z ≠ 0
hxy : P x * Q z ^ 2 = Q x * P z ^ 2 → P y * Q z ^ 3 ≠ W.negY Q * P z ^ 3
⊢ P x / P z ^ 2 = Q x / Q z ^ 2 → P y / P z ^ 3 ≠ W.toAffine.negY (Q x / Q z ^ 2) (Q y / Q z ^ 3)
state_after: no goals
Theorem: SimpleGraph.bot_degree
File: Mathlib/Combinatorics/SimpleGraph/Finite.lean

tactic: erw [degree, neighborFinset_eq_filter, filter_False]
state_before: V : Type u_1
G : SimpleGraph V
e : Sym2 V
inst✝ : Fintype V
v : V
⊢ ⊥.degree v = 0
state_after: V : Type u_1
G : SimpleGraph V
e : Sym2 V
inst✝ : Fintype V
v : V
⊢ ∅.card = 0

tactic: exact Finset.card_empty
state_before: V : Type u_1
G : SimpleGraph V
e : Sym2 V
inst✝ : Fintype V
v : V
⊢ ∅.card = 0
state_after: no goals
Theorem: NNReal.geom_mean_le_arith_mean3_weighted
File: Mathlib/Analysis/MeanInequalities.lean

tactic: simpa only [Fin.prod_univ_succ, Fin.sum_univ_succ, Finset.prod_empty, Finset.sum_empty,
  Finset.univ_eq_empty, Fin.cons_succ, Fin.cons_zero, add_zero, mul_one, ← add_assoc,
  mul_assoc] using geom_mean_le_arith_mean_weighted univ ![w₁, w₂, w₃] ![p₁, p₂, p₃]
state_before: ι : Type u
s : Finset ι
w₁ w₂ w₃ p₁ p₂ p₃ : ℝ≥0
⊢ w₁ + w₂ + w₃ = 1 → p₁ ^ ↑w₁ * p₂ ^ ↑w₂ * p₃ ^ ↑w₃ ≤ w₁ * p₁ + w₂ * p₂ + w₃ * p₃
state_after: no goals
Theorem: Real.sqrt_ne_zero'
File: Mathlib/Data/Real/Sqrt.lean

tactic: rw [← not_le, not_iff_not, sqrt_eq_zero']
state_before: x y : ℝ
⊢ √x ≠ 0 ↔ 0 < x
state_after: no goals
Theorem: TopologicalSpace.IsTopologicalBasis.subset_of_forall_subset
File: Mathlib/Topology/Bases.lean

tactic: rw [hB.open_eq_sUnion' hs]
state_before: α : Type u
β : Type u_1
t✝ : TopologicalSpace α
B : Set (Set α)
s t : Set α
hB : IsTopologicalBasis B
hs : IsOpen s
h : ∀ U ∈ B, U ⊆ s → U ⊆ t
⊢ s ⊆ t
state_after: α : Type u
β : Type u_1
t✝ : TopologicalSpace α
B : Set (Set α)
s t : Set α
hB : IsTopologicalBasis B
hs : IsOpen s
h : ∀ U ∈ B, U ⊆ s → U ⊆ t
⊢ ⋃₀ {s_1 | s_1 ∈ B ∧ s_1 ⊆ s} ⊆ t

tactic: simpa [sUnion_subset_iff]
state_before: α : Type u
β : Type u_1
t✝ : TopologicalSpace α
B : Set (Set α)
s t : Set α
hB : IsTopologicalBasis B
hs : IsOpen s
h : ∀ U ∈ B, U ⊆ s → U ⊆ t
⊢ ⋃₀ {s_1 | s_1 ∈ B ∧ s_1 ⊆ s} ⊆ t
state_after: no goals
Theorem: Metric.mem_closure_iff_infDist_zero
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: simp [mem_closure_iff_infEdist_zero, infDist, ENNReal.toReal_eq_zero_iff, infEdist_ne_top h]
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
h : s.Nonempty
⊢ x ∈ closure s ↔ infDist x s = 0
state_after: no goals
Theorem: PowerSeries.map_sin
File: Mathlib/RingTheory/PowerSeries/WellKnown.lean

tactic: ext
state_before: A : Type u_1
A' : Type u_2
inst✝⁷ : Ring A
inst✝⁶ : Ring A'
inst✝⁵ : Algebra ℚ A
inst✝⁴ : Algebra ℚ A'
inst✝³ : Ring A
inst✝² : Ring A'
inst✝¹ : Algebra ℚ A
inst✝ : Algebra ℚ A'
n : ℕ
f : A →+* A'
⊢ (map f) (sin A) = sin A'
state_after: case h
A : Type u_1
A' : Type u_2
inst✝⁷ : Ring A
inst✝⁶ : Ring A'
inst✝⁵ : Algebra ℚ A
inst✝⁴ : Algebra ℚ A'
inst✝³ : Ring A
inst✝² : Ring A'
inst✝¹ : Algebra ℚ A
inst✝ : Algebra ℚ A'
n : ℕ
f : A →+* A'
n✝ : ℕ
⊢ (coeff A' n✝) ((map f) (sin A)) = (coeff A' n✝) (sin A')

tactic: simp [sin, apply_ite f]
state_before: case h
A : Type u_1
A' : Type u_2
inst✝⁷ : Ring A
inst✝⁶ : Ring A'
inst✝⁵ : Algebra ℚ A
inst✝⁴ : Algebra ℚ A'
inst✝³ : Ring A
inst✝² : Ring A'
inst✝¹ : Algebra ℚ A
inst✝ : Algebra ℚ A'
n : ℕ
f : A →+* A'
n✝ : ℕ
⊢ (coeff A' n✝) ((map f) (sin A)) = (coeff A' n✝) (sin A')
state_after: no goals
Theorem: integral_exp
File: Mathlib/Analysis/SpecialFunctions/Integrals.lean

tactic: rw [integral_deriv_eq_sub']
state_before: a b : ℝ
n : ℕ
⊢ ∫ (x : ℝ) in a..b, rexp x = rexp b - rexp a
state_after: case hderiv
a b : ℝ
n : ℕ
⊢ deriv rexp = rexp

case hdiff
a b : ℝ
n : ℕ
⊢ ∀ x ∈ [[a, b]], DifferentiableAt ℝ rexp x

case hcont
a b : ℝ
n : ℕ
⊢ ContinuousOn rexp [[a, b]]

tactic: simp
state_before: case hderiv
a b : ℝ
n : ℕ
⊢ deriv rexp = rexp
state_after: no goals

tactic: exact fun _ _ => differentiableAt_exp
state_before: case hdiff
a b : ℝ
n : ℕ
⊢ ∀ x ∈ [[a, b]], DifferentiableAt ℝ rexp x
state_after: no goals

tactic: exact continuousOn_exp
state_before: case hcont
a b : ℝ
n : ℕ
⊢ ContinuousOn rexp [[a, b]]
state_after: no goals
Theorem: DFinsupp.support_single_ne_zero
File: Mathlib/Data/DFinsupp/Basic.lean

tactic: ext j
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝² : DecidableEq ι
inst✝¹ : (i : ι) → Zero (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
i : ι
b : β i
hb : b ≠ 0
⊢ (single i b).support = {i}
state_after: case a
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝² : DecidableEq ι
inst✝¹ : (i : ι) → Zero (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
i : ι
b : β i
hb : b ≠ 0
j : ι
⊢ j ∈ (single i b).support ↔ j ∈ {i}

tactic: by_cases h : i = j
state_before: case a
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝² : DecidableEq ι
inst✝¹ : (i : ι) → Zero (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
i : ι
b : β i
hb : b ≠ 0
j : ι
⊢ j ∈ (single i b).support ↔ j ∈ {i}
state_after: case pos
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝² : DecidableEq ι
inst✝¹ : (i : ι) → Zero (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
i : ι
b : β i
hb : b ≠ 0
j : ι
h : i = j
⊢ j ∈ (single i b).support ↔ j ∈ {i}

case neg
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝² : DecidableEq ι
inst✝¹ : (i : ι) → Zero (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
i : ι
b : β i
hb : b ≠ 0
j : ι
h : ¬i = j
⊢ j ∈ (single i b).support ↔ j ∈ {i}

tactic: simp [Ne.symm h, h]
state_before: case neg
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝² : DecidableEq ι
inst✝¹ : (i : ι) → Zero (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
i : ι
b : β i
hb : b ≠ 0
j : ι
h : ¬i = j
⊢ j ∈ (single i b).support ↔ j ∈ {i}
state_after: no goals

tactic: subst h
state_before: case pos
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝² : DecidableEq ι
inst✝¹ : (i : ι) → Zero (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
i : ι
b : β i
hb : b ≠ 0
j : ι
h : i = j
⊢ j ∈ (single i b).support ↔ j ∈ {i}
state_after: case pos
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝² : DecidableEq ι
inst✝¹ : (i : ι) → Zero (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
i : ι
b : β i
hb : b ≠ 0
⊢ i ∈ (single i b).support ↔ i ∈ {i}

tactic: simp [hb]
state_before: case pos
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝² : DecidableEq ι
inst✝¹ : (i : ι) → Zero (β i)
inst✝ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
i : ι
b : β i
hb : b ≠ 0
⊢ i ∈ (single i b).support ↔ i ∈ {i}
state_after: no goals
Theorem: LieSubmodule.normalizer_mono
File: Mathlib/Algebra/Lie/Normalizer.lean

tactic: intro m hm
state_before: R : Type u_1
L : Type u_2
M : Type u_3
M' : Type u_4
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
N N₁ N₂ : LieSubmodule R L M
h : N₁ ≤ N₂
⊢ N₁.normalizer ≤ N₂.normalizer
state_after: R : Type u_1
L : Type u_2
M : Type u_3
M' : Type u_4
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
N N₁ N₂ : LieSubmodule R L M
h : N₁ ≤ N₂
m : M
hm : m ∈ N₁.normalizer
⊢ m ∈ N₂.normalizer

tactic: rw [mem_normalizer] at hm ⊢
state_before: R : Type u_1
L : Type u_2
M : Type u_3
M' : Type u_4
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
N N₁ N₂ : LieSubmodule R L M
h : N₁ ≤ N₂
m : M
hm : m ∈ N₁.normalizer
⊢ m ∈ N₂.normalizer
state_after: R : Type u_1
L : Type u_2
M : Type u_3
M' : Type u_4
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
N N₁ N₂ : LieSubmodule R L M
h : N₁ ≤ N₂
m : M
hm : ∀ (x : L), ⁅x, m⁆ ∈ N₁
⊢ ∀ (x : L), ⁅x, m⁆ ∈ N₂

tactic: exact fun x ↦ h (hm x)
state_before: R : Type u_1
L : Type u_2
M : Type u_3
M' : Type u_4
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
N N₁ N₂ : LieSubmodule R L M
h : N₁ ≤ N₂
m : M
hm : ∀ (x : L), ⁅x, m⁆ ∈ N₁
⊢ ∀ (x : L), ⁅x, m⁆ ∈ N₂
state_after: no goals
Theorem: Nat.count_of_forall
File: Mathlib/Data/Nat/Count.lean

tactic: rw [count_eq_card_filter_range, filter_true_of_mem, card_range]
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
n : ℕ
hp : ∀ n' < n, p n'
⊢ count p n = n
state_after: p : ℕ → Prop
inst✝ : DecidablePred p
n : ℕ
hp : ∀ n' < n, p n'
⊢ ∀ x ∈ range n, p x

tactic: simpa only [Finset.mem_range]
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
n : ℕ
hp : ∀ n' < n, p n'
⊢ ∀ x ∈ range n, p x
state_after: no goals
Theorem: WeierstrassCurve.ΨSq_neg
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean

tactic: simp only [ΨSq, preΨ_neg, neg_sq, even_neg]
state_before: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
n : ℤ
⊢ W.ΨSq (-n) = W.ΨSq n
state_after: no goals
Theorem: Nat.not_coprime_zero_zero
File: Mathlib/Data/Nat/GCD/Basic.lean

tactic: simp
state_before: ⊢ ¬Coprime 0 0
state_after: no goals
Theorem: LocalRing.subsingleton_cotangentSpace_iff
File: Mathlib/RingTheory/Ideal/Cotangent.lean

tactic: refine (maximalIdeal R).cotangent_subsingleton_iff.trans ?_
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : LocalRing R
inst✝ : IsNoetherianRing R
⊢ Subsingleton (CotangentSpace R) ↔ IsField R
state_after: R : Type u_1
inst✝² : CommRing R
inst✝¹ : LocalRing R
inst✝ : IsNoetherianRing R
⊢ IsIdempotentElem (maximalIdeal R) ↔ IsField R

tactic: rw [LocalRing.isField_iff_maximalIdeal_eq, Ideal.isIdempotentElem_iff_eq_bot_or_top_of_localRing]
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : LocalRing R
inst✝ : IsNoetherianRing R
⊢ IsIdempotentElem (maximalIdeal R) ↔ IsField R
state_after: R : Type u_1
inst✝² : CommRing R
inst✝¹ : LocalRing R
inst✝ : IsNoetherianRing R
⊢ maximalIdeal R = ⊥ ∨ maximalIdeal R = ⊤ ↔ maximalIdeal R = ⊥

tactic: simp [(maximalIdeal.isMaximal R).ne_top]
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : LocalRing R
inst✝ : IsNoetherianRing R
⊢ maximalIdeal R = ⊥ ∨ maximalIdeal R = ⊤ ↔ maximalIdeal R = ⊥
state_after: no goals
Theorem: AddConstMapClass.map_sub_nsmul
File: Mathlib/Algebra/AddConstMap/Basic.lean

tactic: conv_rhs => rw [← sub_add_cancel x (n • a), map_add_nsmul, add_sub_cancel_right]
state_before: F : Type u_1
G : Type u_2
H : Type u_3
inst✝³ : FunLike F G H
a : G
b : H
inst✝² : AddGroup G
inst✝¹ : AddGroup H
inst✝ : AddConstMapClass F G H a b
f : F
x : G
n : ℕ
⊢ f (x - n • a) = f x - n • b
state_after: no goals
Theorem: Wbtw.angle₃₁₂_eq_zero_of_ne
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean

tactic: rw [← h.angle₂₁₃_eq_zero_of_ne hp₂p₁, angle_comm]
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p p₀ p₁✝ p₂✝ p₁ p₂ p₃ : P
h : Wbtw ℝ p₁ p₂ p₃
hp₂p₁ : p₂ ≠ p₁
⊢ ∠ p₃ p₁ p₂ = 0
state_after: no goals
Theorem: Set.iUnion_Ioo_left
File: Mathlib/Order/Interval/Set/Disjoint.lean

tactic: simp only [← Ioi_inter_Iio, ← iUnion_inter, iUnion_Ioi, univ_inter]
state_before: ι : Sort u
α : Type v
β : Type w
inst✝¹ : Preorder α
a b✝ c : α
inst✝ : NoMinOrder α
b : α
⊢ ⋃ a, Ioo a b = Iio b
state_after: no goals
Theorem: Real.b_ne_one'
File: Mathlib/Analysis/SpecialFunctions/Log/Base.lean

tactic: linarith
state_before: b x y : ℝ
hb : 1 < b
⊢ b ≠ 1
state_after: no goals
Theorem: IsCoprime.ne_zero_or_ne_zero
File: Mathlib/RingTheory/Coprime/Basic.lean

tactic: apply not_or_of_imp
state_before: R : Type u
inst✝¹ : CommSemiring R
x y z : R
inst✝ : Nontrivial R
h : IsCoprime x y
⊢ x ≠ 0 ∨ y ≠ 0
state_after: case a
R : Type u
inst✝¹ : CommSemiring R
x y z : R
inst✝ : Nontrivial R
h : IsCoprime x y
⊢ x = 0 → y ≠ 0

tactic: rintro rfl rfl
state_before: case a
R : Type u
inst✝¹ : CommSemiring R
x y z : R
inst✝ : Nontrivial R
h : IsCoprime x y
⊢ x = 0 → y ≠ 0
state_after: case a
R : Type u
inst✝¹ : CommSemiring R
z : R
inst✝ : Nontrivial R
h : IsCoprime 0 0
⊢ False

tactic: exact not_isCoprime_zero_zero h
state_before: case a
R : Type u
inst✝¹ : CommSemiring R
z : R
inst✝ : Nontrivial R
h : IsCoprime 0 0
⊢ False
state_after: no goals
Theorem: WithBot.image_coe_Ici
File: Mathlib/Order/Interval/Set/WithBotTop.lean

tactic: rw [← preimage_coe_Ici, image_preimage_eq_inter_range, range_coe,
  inter_eq_self_of_subset_left (Ici_subset_Ioi.2 <| bot_lt_coe a)]
state_before: α : Type u_1
inst✝ : Preorder α
a b : α
⊢ some '' Ici a = Ici ↑a
state_after: no goals
Theorem: AlgebraicTopology.DoldKan.hσ'_eq'
File: Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean

tactic: rw [hσ'_eq ha rfl, eqToHom_refl, comp_id]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
q n a : ℕ
ha : n = a + q
⊢ hσ' q n (n + 1) ⋯ = (-1) ^ a • X.σ ⟨a, ⋯⟩
state_after: no goals