1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: norm_le_of_mem_closedBall'
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: rwa [← dist_eq_norm_div]
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
h : b ∈ closedBall a r
⊢ ‖b / a‖ ≤ r
state_after: no goals
Theorem: LieSubmodule.subset_lieSpan
File: Mathlib/Algebra/Lie/Submodule.lean

tactic: intro m hm
state_before: R : Type u
L : Type v
M : Type w
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
N N' : LieSubmodule R L M
I J : LieIdeal R L
s : Set M
⊢ s ⊆ ↑(lieSpan R L s)
state_after: R : Type u
L : Type v
M : Type w
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
N N' : LieSubmodule R L M
I J : LieIdeal R L
s : Set M
m : M
hm : m ∈ s
⊢ m ∈ ↑(lieSpan R L s)

tactic: erw [mem_lieSpan]
state_before: R : Type u
L : Type v
M : Type w
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
N N' : LieSubmodule R L M
I J : LieIdeal R L
s : Set M
m : M
hm : m ∈ s
⊢ m ∈ ↑(lieSpan R L s)
state_after: R : Type u
L : Type v
M : Type w
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
N N' : LieSubmodule R L M
I J : LieIdeal R L
s : Set M
m : M
hm : m ∈ s
⊢ ∀ (N : LieSubmodule R L M), s ⊆ ↑N → m ∈ N

tactic: intro N hN
state_before: R : Type u
L : Type v
M : Type w
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
N N' : LieSubmodule R L M
I J : LieIdeal R L
s : Set M
m : M
hm : m ∈ s
⊢ ∀ (N : LieSubmodule R L M), s ⊆ ↑N → m ∈ N
state_after: R : Type u
L : Type v
M : Type w
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
N✝ N' : LieSubmodule R L M
I J : LieIdeal R L
s : Set M
m : M
hm : m ∈ s
N : LieSubmodule R L M
hN : s ⊆ ↑N
⊢ m ∈ N

tactic: exact hN hm
state_before: R : Type u
L : Type v
M : Type w
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
N✝ N' : LieSubmodule R L M
I J : LieIdeal R L
s : Set M
m : M
hm : m ∈ s
N : LieSubmodule R L M
hN : s ⊆ ↑N
⊢ m ∈ N
state_after: no goals
Theorem: Equiv.Perm.set_support_inv_eq
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: ext x
state_before: α : Type u_1
p q : Perm α
⊢ {x | p⁻¹ x ≠ x} = {x | p x ≠ x}
state_after: case h
α : Type u_1
p q : Perm α
x : α
⊢ x ∈ {x | p⁻¹ x ≠ x} ↔ x ∈ {x | p x ≠ x}

tactic: simp only [Set.mem_setOf_eq, Ne]
state_before: case h
α : Type u_1
p q : Perm α
x : α
⊢ x ∈ {x | p⁻¹ x ≠ x} ↔ x ∈ {x | p x ≠ x}
state_after: case h
α : Type u_1
p q : Perm α
x : α
⊢ ¬p⁻¹ x = x ↔ ¬p x = x

tactic: rw [inv_def, symm_apply_eq, eq_comm]
state_before: case h
α : Type u_1
p q : Perm α
x : α
⊢ ¬p⁻¹ x = x ↔ ¬p x = x
state_after: no goals
Theorem: MvPolynomial.weightedTotalDegree_zero
File: Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean

tactic: simp only [weightedTotalDegree, support_zero, Finset.sup_empty]
state_before: R : Type u_1
M : Type u_2
inst✝³ : CommSemiring R
σ : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : SemilatticeSup M
inst✝ : OrderBot M
w : σ → M
⊢ weightedTotalDegree w 0 = ⊥
state_after: no goals
Theorem: MeasureTheory.Measure.measure_toMeasurable_add_inter_right
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [add_comm] at ht ⊢
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
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
hs : MeasurableSet s
ht : (μ + ν) t ≠ ⊤
⊢ ν (toMeasurable (μ + ν) t ∩ s) = ν (t ∩ s)
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
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
hs : MeasurableSet s
ht : (ν + μ) t ≠ ⊤
⊢ ν (toMeasurable (ν + μ) t ∩ s) = ν (t ∩ s)

tactic: exact measure_toMeasurable_add_inter_left hs ht
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
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
hs : MeasurableSet s
ht : (ν + μ) t ≠ ⊤
⊢ ν (toMeasurable (ν + μ) t ∩ s) = ν (t ∩ s)
state_after: no goals
Theorem: MvPowerSeries.coeff_monomial_same
File: Mathlib/RingTheory/MvPowerSeries/Basic.lean

tactic: classical
rw [monomial_def]
exact LinearMap.stdBasis_same R (fun _ ↦ R) n a
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
n : σ →₀ ℕ
a : R
⊢ (coeff R n) ((monomial R n) a) = a
state_after: no goals

tactic: rw [monomial_def]
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
n : σ →₀ ℕ
a : R
⊢ (coeff R n) ((monomial R n) a) = a
state_after: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
n : σ →₀ ℕ
a : R
⊢ (coeff R n) ((LinearMap.stdBasis R (fun x => R) n) a) = a

tactic: exact LinearMap.stdBasis_same R (fun _ ↦ R) n a
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
n : σ →₀ ℕ
a : R
⊢ (coeff R n) ((LinearMap.stdBasis R (fun x => R) n) a) = a
state_after: no goals
Theorem: Primrec.option_getD
File: Mathlib/Computability/Primrec.lean

tactic: cases o <;> rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
σ : Type u_5
inst✝⁴ : Primcodable α
inst✝³ : Primcodable β
inst✝² : Primcodable γ
inst✝¹ : Primcodable δ
inst✝ : Primcodable σ
x✝ : Option α × α
o : Option α
a : α
⊢ (Option.casesOn ((fun a x => a) (o, a).1 (o, a).2) ((fun x b => b) (o, a).1 (o, a).2) fun b => b) =
    (o, a).1.getD (o, a).2
state_after: no goals
Theorem: ValuationRing.iff_dvd_total
File: Mathlib/RingTheory/Valuation/ValuationRing.lean

tactic: refine ⟨fun H => ⟨fun a b => ?_⟩, fun H => ⟨fun a b => ?_⟩⟩
state_before: R : Type u_1
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
K : Type u_2
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
⊢ ValuationRing R ↔ IsTotal R fun x x_1 => x ∣ x_1
state_after: case refine_1
R : Type u_1
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
K : Type u_2
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
H : ValuationRing R
a b : R
⊢ a ∣ b ∨ b ∣ a

case refine_2
R : Type u_1
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
K : Type u_2
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
H : IsTotal R fun x x_1 => x ∣ x_1
a b : R
⊢ ∃ c, a * c = b ∨ b * c = a

tactic: obtain ⟨c, rfl | rfl⟩ := ValuationRing.cond a b <;> simp
state_before: case refine_1
R : Type u_1
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
K : Type u_2
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
H : ValuationRing R
a b : R
⊢ a ∣ b ∨ b ∣ a
state_after: no goals

tactic: obtain ⟨c, rfl⟩ | ⟨c, rfl⟩ := @IsTotal.total _ _ H a b <;> use c <;> simp
state_before: case refine_2
R : Type u_1
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
K : Type u_2
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
H : IsTotal R fun x x_1 => x ∣ x_1
a b : R
⊢ ∃ c, a * c = b ∨ b * c = a
state_after: no goals
Theorem: Complex.arg_conj_coe_angle
File: Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

tactic: by_cases h : arg x = π <;> simp [arg_conj, h]
state_before: a x✝ z x : ℂ
⊢ ↑((starRingEnd ℂ) x).arg = -↑x.arg
state_after: no goals
Theorem: Matroid.eq_of_base_iff_base_forall
File: Mathlib/Data/Matroid/Basic.lean

tactic: have h' : ∀ B, M₁.Base B ↔ M₂.Base B :=
  fun B ↦ ⟨fun hB ↦ (h hB.subset_ground).1 hB,
    fun hB ↦ (h <| hB.subset_ground.trans_eq hE.symm).2 hB⟩
state_before: α : Type u_1
M M₁ M₂ : Matroid α
hE : M₁.E = M₂.E
h : ∀ ⦃B : Set α⦄, B ⊆ M₁.E → (M₁.Base B ↔ M₂.Base B)
⊢ M₁ = M₂
state_after: α : Type u_1
M M₁ M₂ : Matroid α
hE : M₁.E = M₂.E
h : ∀ ⦃B : Set α⦄, B ⊆ M₁.E → (M₁.Base B ↔ M₂.Base B)
h' : ∀ (B : Set α), M₁.Base B ↔ M₂.Base B
⊢ M₁ = M₂

tactic: ext <;> simp [hE, M₁.indep_iff', M₂.indep_iff', h']
state_before: α : Type u_1
M M₁ M₂ : Matroid α
hE : M₁.E = M₂.E
h : ∀ ⦃B : Set α⦄, B ⊆ M₁.E → (M₁.Base B ↔ M₂.Base B)
h' : ∀ (B : Set α), M₁.Base B ↔ M₂.Base B
⊢ M₁ = M₂
state_after: no goals
Theorem: CategoryTheory.CosimplicialObject.δ_comp_δ
File: Mathlib/AlgebraicTopology/SimplicialObject.lean

tactic: dsimp [δ]
state_before: C : Type u
inst✝ : Category.{v, u} C
X : CosimplicialObject C
n : ℕ
i j : Fin (n + 2)
H : i ≤ j
⊢ X.δ i ≫ X.δ j.succ = X.δ j ≫ X.δ i.castSucc
state_after: C : Type u
inst✝ : Category.{v, u} C
X : CosimplicialObject C
n : ℕ
i j : Fin (n + 2)
H : i ≤ j
⊢ X.map (SimplexCategory.δ i) ≫ X.map (SimplexCategory.δ j.succ) =
    X.map (SimplexCategory.δ j) ≫ X.map (SimplexCategory.δ i.castSucc)

tactic: simp only [← X.map_comp, SimplexCategory.δ_comp_δ H]
state_before: C : Type u
inst✝ : Category.{v, u} C
X : CosimplicialObject C
n : ℕ
i j : Fin (n + 2)
H : i ≤ j
⊢ X.map (SimplexCategory.δ i) ≫ X.map (SimplexCategory.δ j.succ) =
    X.map (SimplexCategory.δ j) ≫ X.map (SimplexCategory.δ i.castSucc)
state_after: no goals
Theorem: QuadraticForm.PosDef.anisotropic
File: Mathlib/LinearAlgebra/QuadraticForm/Basic.lean

tactic: have := hQ _ hx
state_before: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
R₂ : Type u
inst✝² : OrderedCommRing R₂
inst✝¹ : AddCommMonoid M
inst✝ : Module R₂ M
Q₂ : QuadraticForm R₂ M
n : Type u_6
Q : QuadraticForm R₂ M
hQ : Q.PosDef
x : M
hQx : Q x = 0
hx : ¬x = 0
⊢ 0 < 0
state_after: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
R₂ : Type u
inst✝² : OrderedCommRing R₂
inst✝¹ : AddCommMonoid M
inst✝ : Module R₂ M
Q₂ : QuadraticForm R₂ M
n : Type u_6
Q : QuadraticForm R₂ M
hQ : Q.PosDef
x : M
hQx : Q x = 0
hx : ¬x = 0
this : 0 < Q x
⊢ 0 < 0

tactic: rw [hQx] at this
state_before: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
R₂ : Type u
inst✝² : OrderedCommRing R₂
inst✝¹ : AddCommMonoid M
inst✝ : Module R₂ M
Q₂ : QuadraticForm R₂ M
n : Type u_6
Q : QuadraticForm R₂ M
hQ : Q.PosDef
x : M
hQx : Q x = 0
hx : ¬x = 0
this : 0 < Q x
⊢ 0 < 0
state_after: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
R₂ : Type u
inst✝² : OrderedCommRing R₂
inst✝¹ : AddCommMonoid M
inst✝ : Module R₂ M
Q₂ : QuadraticForm R₂ M
n : Type u_6
Q : QuadraticForm R₂ M
hQ : Q.PosDef
x : M
hQx : Q x = 0
hx : ¬x = 0
this : 0 < 0
⊢ 0 < 0

tactic: exact this
state_before: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
R₂ : Type u
inst✝² : OrderedCommRing R₂
inst✝¹ : AddCommMonoid M
inst✝ : Module R₂ M
Q₂ : QuadraticForm R₂ M
n : Type u_6
Q : QuadraticForm R₂ M
hQ : Q.PosDef
x : M
hQx : Q x = 0
hx : ¬x = 0
this : 0 < 0
⊢ 0 < 0
state_after: no goals
Theorem: L_mul
File: Mathlib/Geometry/Manifold/Algebra/Monoid.lean

tactic: ext
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
H : Type u_2
inst✝¹⁵ : TopologicalSpace H
E : Type u_3
inst✝¹⁴ : NormedAddCommGroup E
inst✝¹³ : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
G✝ : Type u_4
inst✝¹² : Mul G✝
inst✝¹¹ : TopologicalSpace G✝
inst✝¹⁰ : ChartedSpace H G✝
inst✝⁹ : SmoothMul I G✝
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
g✝ h✝ : G✝
G : Type u_8
inst✝³ : Semigroup G
inst✝² : TopologicalSpace G
inst✝¹ : ChartedSpace H G
inst✝ : SmoothMul I G
g h : G
⊢ 𝑳 I (g * h) = (𝑳 I g).comp (𝑳 I h)
state_after: case h
𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
H : Type u_2
inst✝¹⁵ : TopologicalSpace H
E : Type u_3
inst✝¹⁴ : NormedAddCommGroup E
inst✝¹³ : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
G✝ : Type u_4
inst✝¹² : Mul G✝
inst✝¹¹ : TopologicalSpace G✝
inst✝¹⁰ : ChartedSpace H G✝
inst✝⁹ : SmoothMul I G✝
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
g✝ h✝ : G✝
G : Type u_8
inst✝³ : Semigroup G
inst✝² : TopologicalSpace G
inst✝¹ : ChartedSpace H G
inst✝ : SmoothMul I G
g h x✝ : G
⊢ (𝑳 I (g * h)) x✝ = ((𝑳 I g).comp (𝑳 I h)) x✝

tactic: simp only [ContMDiffMap.comp_apply, L_apply, mul_assoc]
state_before: case h
𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
H : Type u_2
inst✝¹⁵ : TopologicalSpace H
E : Type u_3
inst✝¹⁴ : NormedAddCommGroup E
inst✝¹³ : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
G✝ : Type u_4
inst✝¹² : Mul G✝
inst✝¹¹ : TopologicalSpace G✝
inst✝¹⁰ : ChartedSpace H G✝
inst✝⁹ : SmoothMul I G✝
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
g✝ h✝ : G✝
G : Type u_8
inst✝³ : Semigroup G
inst✝² : TopologicalSpace G
inst✝¹ : ChartedSpace H G
inst✝ : SmoothMul I G
g h x✝ : G
⊢ (𝑳 I (g * h)) x✝ = ((𝑳 I g).comp (𝑳 I h)) x✝
state_after: no goals
Theorem: LightProfinite.effectiveEpi_iff_surjective
File: Mathlib/Topology/Category/LightProfinite/EffectiveEpi.lean

tactic: refine ⟨fun h ↦ ?_, fun h ↦ ⟨⟨EffectiveEpi.struct f h⟩⟩⟩
state_before: X Y : LightProfinite
f : X ⟶ Y
⊢ EffectiveEpi f ↔ Function.Surjective ⇑f
state_after: X Y : LightProfinite
f : X ⟶ Y
h : EffectiveEpi f
⊢ Function.Surjective ⇑f

tactic: rw [← epi_iff_surjective]
state_before: X Y : LightProfinite
f : X ⟶ Y
h : EffectiveEpi f
⊢ Function.Surjective ⇑f
state_after: X Y : LightProfinite
f : X ⟶ Y
h : EffectiveEpi f
⊢ Epi f

tactic: infer_instance
state_before: X Y : LightProfinite
f : X ⟶ Y
h : EffectiveEpi f
⊢ Epi f
state_after: no goals
Theorem: Polynomial.coe_add
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: ext
state_before: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
φ ψ : R[X]
⊢ ↑(φ + ψ) = ↑φ + ↑ψ
state_after: case h
σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
φ ψ : R[X]
n✝ : ℕ
⊢ (PowerSeries.coeff R n✝) ↑(φ + ψ) = (PowerSeries.coeff R n✝) (↑φ + ↑ψ)

tactic: simp
state_before: case h
σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
φ ψ : R[X]
n✝ : ℕ
⊢ (PowerSeries.coeff R n✝) ↑(φ + ψ) = (PowerSeries.coeff R n✝) (↑φ + ↑ψ)
state_after: no goals
Theorem: Multiset.disjoint_list_sum_left
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: induction' l with b bs ih
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a✝ : α
f g : α → β
a : Multiset α
l : List (Multiset α)
⊢ l.sum.Disjoint a ↔ ∀ b ∈ l, b.Disjoint a
state_after: case nil
ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a✝ : α
f g : α → β
a : Multiset α
⊢ [].sum.Disjoint a ↔ ∀ b ∈ [], b.Disjoint a

case cons
ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a✝ : α
f g : α → β
a b : Multiset α
bs : List (Multiset α)
ih : bs.sum.Disjoint a ↔ ∀ b ∈ bs, b.Disjoint a
⊢ (b :: bs).sum.Disjoint a ↔ ∀ b_1 ∈ b :: bs, b_1.Disjoint a

tactic: simp only [zero_disjoint, List.not_mem_nil, IsEmpty.forall_iff, forall_const, List.sum_nil]
state_before: case nil
ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a✝ : α
f g : α → β
a : Multiset α
⊢ [].sum.Disjoint a ↔ ∀ b ∈ [], b.Disjoint a
state_after: no goals

tactic: simp_rw [List.sum_cons, disjoint_add_left, List.mem_cons, forall_eq_or_imp]
state_before: case cons
ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a✝ : α
f g : α → β
a b : Multiset α
bs : List (Multiset α)
ih : bs.sum.Disjoint a ↔ ∀ b ∈ bs, b.Disjoint a
⊢ (b :: bs).sum.Disjoint a ↔ ∀ b_1 ∈ b :: bs, b_1.Disjoint a
state_after: case cons
ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a✝ : α
f g : α → β
a b : Multiset α
bs : List (Multiset α)
ih : bs.sum.Disjoint a ↔ ∀ b ∈ bs, b.Disjoint a
⊢ b.Disjoint a ∧ bs.sum.Disjoint a ↔ b.Disjoint a ∧ ∀ a_1 ∈ bs, a_1.Disjoint a

tactic: simp [and_congr_left_iff, iff_self_iff, ih]
state_before: case cons
ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a✝ : α
f g : α → β
a b : Multiset α
bs : List (Multiset α)
ih : bs.sum.Disjoint a ↔ ∀ b ∈ bs, b.Disjoint a
⊢ b.Disjoint a ∧ bs.sum.Disjoint a ↔ b.Disjoint a ∧ ∀ a_1 ∈ bs, a_1.Disjoint a
state_after: no goals
Theorem: SimpleGraph.nonuniformWitness_subset
File: Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean

tactic: unfold nonuniformWitness
state_before: α : Type u_1
𝕜 : Type u_2
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
h : ¬G.IsUniform ε s t
⊢ G.nonuniformWitness ε s t ⊆ s
state_after: α : Type u_1
𝕜 : Type u_2
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
h : ¬G.IsUniform ε s t
⊢ (if WellOrderingRel s t then (G.nonuniformWitnesses ε s t).1 else (G.nonuniformWitnesses ε t s).2) ⊆ s

tactic: split_ifs
state_before: α : Type u_1
𝕜 : Type u_2
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
h : ¬G.IsUniform ε s t
⊢ (if WellOrderingRel s t then (G.nonuniformWitnesses ε s t).1 else (G.nonuniformWitnesses ε t s).2) ⊆ s
state_after: case pos
α : Type u_1
𝕜 : Type u_2
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
h : ¬G.IsUniform ε s t
h✝ : WellOrderingRel s t
⊢ (G.nonuniformWitnesses ε s t).1 ⊆ s

case neg
α : Type u_1
𝕜 : Type u_2
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
h : ¬G.IsUniform ε s t
h✝ : ¬WellOrderingRel s t
⊢ (G.nonuniformWitnesses ε t s).2 ⊆ s

tactic: exact G.left_nonuniformWitnesses_subset h
state_before: case pos
α : Type u_1
𝕜 : Type u_2
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
h : ¬G.IsUniform ε s t
h✝ : WellOrderingRel s t
⊢ (G.nonuniformWitnesses ε s t).1 ⊆ s
state_after: no goals

tactic: exact G.right_nonuniformWitnesses_subset fun i => h i.symm
state_before: case neg
α : Type u_1
𝕜 : Type u_2
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
h : ¬G.IsUniform ε s t
h✝ : ¬WellOrderingRel s t
⊢ (G.nonuniformWitnesses ε t s).2 ⊆ s
state_after: no goals
Theorem: Ordinal.one_le_iff_pos
File: Mathlib/SetTheory/Ordinal/Basic.lean

tactic: rw [← succ_zero, succ_le_iff]
state_before: α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal.{u_3}
⊢ 1 ≤ o ↔ 0 < o
state_after: no goals
Theorem: WeierstrassCurve.map_Ψ₃
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean

tactic: simp only [Ψ₃, map_b₂, map_b₄, map_b₆, map_b₈]
state_before: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
f : R →+* S
⊢ (W.map f).Ψ₃ = Polynomial.map f W.Ψ₃
state_after: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
f : R →+* S
⊢ 3 * X ^ 4 + C (f W.b₂) * X ^ 3 + 3 * C (f W.b₄) * X ^ 2 + 3 * C (f W.b₆) * X + C (f W.b₈) =
    Polynomial.map f (3 * X ^ 4 + C W.b₂ * X ^ 3 + 3 * C W.b₄ * X ^ 2 + 3 * C W.b₆ * X + C W.b₈)

tactic: map_simp
state_before: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
f : R →+* S
⊢ 3 * X ^ 4 + C (f W.b₂) * X ^ 3 + 3 * C (f W.b₄) * X ^ 2 + 3 * C (f W.b₆) * X + C (f W.b₈) =
    Polynomial.map f (3 * X ^ 4 + C W.b₂ * X ^ 3 + 3 * C W.b₄ * X ^ 2 + 3 * C W.b₆ * X + C W.b₈)
state_after: no goals
Theorem: Associates.isUnit_mk
File: Mathlib/Algebra/Associated.lean

tactic: rw [isUnit_iff_eq_one, one_eq_mk_one, mk_eq_mk_iff_associated]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CommMonoid α
a : α
⊢ IsUnit (Associates.mk a) ↔ a ~ᵤ 1
state_after: no goals
Theorem: Complex.sin_surjective
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean

tactic: intro x
state_before: ⊢ Function.Surjective sin
state_after: x : ℂ
⊢ ∃ a, sin a = x

tactic: rcases cos_surjective x with ⟨z, rfl⟩
state_before: x : ℂ
⊢ ∃ a, sin a = x
state_after: case intro
z : ℂ
⊢ ∃ a, sin a = cos z

tactic: exact ⟨z + π / 2, sin_add_pi_div_two z⟩
state_before: case intro
z : ℂ
⊢ ∃ a, sin a = cos z
state_after: no goals
Theorem: TopHom.cancel_left
File: Mathlib/Order/Hom/Bounded.lean

tactic: rw [← TopHom.comp_apply, h, TopHom.comp_apply]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
inst✝⁴ : FunLike F α β
inst✝³ : Top α
inst✝² : Top β
inst✝¹ : Top γ
inst✝ : Top δ
g : TopHom β γ
f₁ f₂ : TopHom α β
hg : Injective ⇑g
h : g.comp f₁ = g.comp f₂
a : α
⊢ g (f₁ a) = g (f₂ a)
state_after: no goals
Theorem: Set.image_image2_antidistrib_left
File: Mathlib/Data/Set/NAry.lean

tactic: rw [image_id']
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
f f'✝ : α → β → γ
g✝ g'✝ : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a a' : α
b b' : β
c c' : γ
d d' : δ
g : γ → δ
f' : β' → α → δ
g' : β → β'
h_antidistrib : ∀ (a : α) (b : β), g (f a b) = f' (g' b) a
⊢ image2 f' (g' '' t) ((fun a => a) '' s) = image2 f' (g' '' t) s
state_after: no goals
Theorem: HomologicalComplex.singleObjHomologySelfIso_hom_singleObjHomologySelfIso_inv
File: Mathlib/Algebra/Homology/SingleHomology.lean

tactic: simp only [← cancel_mono (singleObjHomologySelfIso _ _ _).hom, assoc,
  Iso.inv_hom_id, comp_id, homologyπ_singleObjHomologySelfIso_hom]
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
ι : Type u_1
inst✝ : DecidableEq ι
c : ComplexShape ι
j : ι
A : C
⊢ (singleObjCyclesSelfIso c j A).hom ≫ (singleObjHomologySelfIso c j A).inv = ((single C c j).obj A).homologyπ j
state_after: no goals
Theorem: AlgebraicGeometry.Scheme.ofRestrict_app_self
File: Mathlib/AlgebraicGeometry/Restrict.lean

tactic: simp
state_before: C : Type u₁
inst✝ : Category.{v, u₁} C
X✝ X : Scheme
U : Opens ↑↑X.toPresheafedSpace
⊢ ⋯.functor.obj { unop := ιOpens U ⁻¹ᵁ U }.unop = U
state_after: no goals
Theorem: Matrix.blockDiagonal_zero
File: Mathlib/Data/Matrix/Block.lean

tactic: ext
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
inst✝² : DecidableEq o
inst✝¹ : Zero α
inst✝ : Zero β
⊢ blockDiagonal 0 = 0
state_after: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
inst✝² : DecidableEq o
inst✝¹ : Zero α
inst✝ : Zero β
i✝ : m × o
j✝ : n × o
⊢ blockDiagonal 0 i✝ j✝ = 0 i✝ j✝

tactic: simp [blockDiagonal_apply]
state_before: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
inst✝² : DecidableEq o
inst✝¹ : Zero α
inst✝ : Zero β
i✝ : m × o
j✝ : n × o
⊢ blockDiagonal 0 i✝ j✝ = 0 i✝ j✝
state_after: no goals