1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: ContinuousMap.nullhomotopic_of_constant
File: Mathlib/Topology/Homotopy/Contractible.lean

tactic: rfl
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
y : Y
⊢ (const X y).Homotopic (const X y)
state_after: no goals
Theorem: rank_span
File: Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean

tactic: haveI := nontrivial_of_invariantBasisNumber R
state_before: R : Type u
M : Type v
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type w
ι' : Type w'
inst✝ : StrongRankCondition R
v : ι → M
hv : LinearIndependent R v
⊢ Module.rank R ↥(span R (range v)) = #↑(range v)
state_after: R : Type u
M : Type v
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type w
ι' : Type w'
inst✝ : StrongRankCondition R
v : ι → M
hv : LinearIndependent R v
this : Nontrivial R
⊢ Module.rank R ↥(span R (range v)) = #↑(range v)

tactic: rw [← Cardinal.lift_inj, ← (Basis.span hv).mk_eq_rank,
  Cardinal.mk_range_eq_of_injective (@LinearIndependent.injective ι R M v _ _ _ _ hv)]
state_before: R : Type u
M : Type v
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
ι : Type w
ι' : Type w'
inst✝ : StrongRankCondition R
v : ι → M
hv : LinearIndependent R v
this : Nontrivial R
⊢ Module.rank R ↥(span R (range v)) = #↑(range v)
state_after: no goals
Theorem: Matroid.indep_iff_not_dep
File: Mathlib/Data/Matroid/Basic.lean

tactic: rw [dep_iff, not_and, not_imp_not]
state_before: α : Type u_1
M : Matroid α
I : Set α
⊢ M.Indep I ↔ ¬M.Dep I ∧ I ⊆ M.E
state_after: α : Type u_1
M : Matroid α
I : Set α
⊢ M.Indep I ↔ (I ⊆ M.E → M.Indep I) ∧ I ⊆ M.E

tactic: exact ⟨fun h ↦ ⟨fun _ ↦ h, h.subset_ground⟩, fun h ↦ h.1 h.2⟩
state_before: α : Type u_1
M : Matroid α
I : Set α
⊢ M.Indep I ↔ (I ⊆ M.E → M.Indep I) ∧ I ⊆ M.E
state_after: no goals
Theorem: CliffordAlgebra.involute_prod_map_ι
File: Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean

tactic: simp
state_before: R : Type u_1
inst✝² : CommRing R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
⊢ involute (List.map ⇑(ι Q) []).prod = (-1) ^ [].length • (List.map ⇑(ι Q) []).prod
state_after: no goals

tactic: simp [pow_succ, involute_prod_map_ι xs]
state_before: R : Type u_1
inst✝² : CommRing R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
x : M
xs : List M
⊢ involute (List.map (⇑(ι Q)) (x :: xs)).prod = (-1) ^ (x :: xs).length • (List.map (⇑(ι Q)) (x :: xs)).prod
state_after: no goals
Theorem: Pell.xn_one
File: Mathlib/NumberTheory/PellMatiyasevic.lean

tactic: simp
state_before: a : ℕ
a1 : 1 < a
⊢ xn a1 1 = a
state_after: no goals
Theorem: Matrix.fromBlocks_mul_fromRows
File: Mathlib/Data/Matrix/ColumnRowPartitioned.lean

tactic: ext (_ | _) _ <;> simp [mul_apply]
state_before: R : Type u_1
m : Type u_2
m₁ : Type u_3
m₂ : Type u_4
n : Type u_5
n₁ : Type u_6
n₂ : Type u_7
inst✝¹² : Fintype m
inst✝¹¹ : Fintype m₁
inst✝¹⁰ : Fintype m₂
inst✝⁹ : Fintype n
inst✝⁸ : Fintype n₁
inst✝⁷ : Fintype n₂
inst✝⁶ : DecidableEq m
inst✝⁵ : DecidableEq m₁
inst✝⁴ : DecidableEq m₂
inst✝³ : DecidableEq n
inst✝² : DecidableEq n₁
inst✝¹ : DecidableEq n₂
inst✝ : Semiring R
A₁ : Matrix n₁ n R
A₂ : Matrix n₂ n R
B₁₁ : Matrix m₁ n₁ R
B₁₂ : Matrix m₁ n₂ R
B₂₁ : Matrix m₂ n₁ R
B₂₂ : Matrix m₂ n₂ R
⊢ fromBlocks B₁₁ B₁₂ B₂₁ B₂₂ * A₁.fromRows A₂ = (B₁₁ * A₁ + B₁₂ * A₂).fromRows (B₂₁ * A₁ + B₂₂ * A₂)
state_after: no goals
Theorem: CategoryTheory.ShortComplex.SnakeInput.L₂'_exact
File: Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean

tactic: rw [← exact_op_iff, exact_iff_of_iso S.L₂'OpIso]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Abelian C
S : SnakeInput C
⊢ S.L₂'.Exact
state_after: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Abelian C
S : SnakeInput C
⊢ S.op.L₁'.Exact

tactic: exact S.op.L₁'_exact
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Abelian C
S : SnakeInput C
⊢ S.op.L₁'.Exact
state_after: no goals
Theorem: Multiset.add_sigma
File: Mathlib/Data/Multiset/Bind.lean

tactic: simp [Multiset.sigma]
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
σ : α → Type u_4
a : α
s✝ : Multiset α
t✝ : (a : α) → Multiset (σ a)
s t : Multiset α
u : (a : α) → Multiset (σ a)
⊢ (s + t).sigma u = s.sigma u + t.sigma u
state_after: no goals
Theorem: Polynomial.rootSet_zero
File: Mathlib/Algebra/Polynomial/Roots.lean

tactic: rw [← C_0, rootSet_C]
state_before: R : Type u
S✝ : Type v
T : Type w
a b : R
n : ℕ
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
p q : R[X]
inst✝³ : CommRing T
S : Type u_1
inst✝² : CommRing S
inst✝¹ : IsDomain S
inst✝ : Algebra T S
⊢ rootSet 0 S = ∅
state_after: no goals
Theorem: Real.surjOn_logb'
File: Mathlib/Analysis/SpecialFunctions/Log/Base.lean

tactic: intro x _
state_before: b x y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
⊢ SurjOn (logb b) (Iio 0) univ
state_after: b x✝ y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
x : ℝ
a✝ : x ∈ univ
⊢ x ∈ logb b '' Iio 0

tactic: use -b ^ x
state_before: b x✝ y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
x : ℝ
a✝ : x ∈ univ
⊢ x ∈ logb b '' Iio 0
state_after: case h
b x✝ y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
x : ℝ
a✝ : x ∈ univ
⊢ -b ^ x ∈ Iio 0 ∧ logb b (-b ^ x) = x

tactic: constructor
state_before: case h
b x✝ y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
x : ℝ
a✝ : x ∈ univ
⊢ -b ^ x ∈ Iio 0 ∧ logb b (-b ^ x) = x
state_after: case h.left
b x✝ y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
x : ℝ
a✝ : x ∈ univ
⊢ -b ^ x ∈ Iio 0

case h.right
b x✝ y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
x : ℝ
a✝ : x ∈ univ
⊢ logb b (-b ^ x) = x

tactic: simp only [Right.neg_neg_iff, Set.mem_Iio]
state_before: case h.left
b x✝ y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
x : ℝ
a✝ : x ∈ univ
⊢ -b ^ x ∈ Iio 0
state_after: case h.left
b x✝ y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
x : ℝ
a✝ : x ∈ univ
⊢ 0 < b ^ x

tactic: apply rpow_pos_of_pos b_pos
state_before: case h.left
b x✝ y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
x : ℝ
a✝ : x ∈ univ
⊢ 0 < b ^ x
state_after: no goals

tactic: rw [logb_neg_eq_logb, logb_rpow b_pos b_ne_one]
state_before: case h.right
b x✝ y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
x : ℝ
a✝ : x ∈ univ
⊢ logb b (-b ^ x) = x
state_after: no goals
Theorem: MeasureTheory.measure_mono_ae
File: Mathlib/MeasureTheory/OuterMeasure/AE.lean

tactic: rw [union_diff_self, Set.union_comm]
state_before: α : Type u_1
β : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ : F
s t : Set α
H : s ≤ᶠ[ae μ] t
⊢ μ (s ∪ t) = μ (t ∪ s \ t)
state_after: no goals

tactic: rw [ae_le_set.1 H, add_zero]
state_before: α : Type u_1
β : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ : F
s t : Set α
H : s ≤ᶠ[ae μ] t
⊢ μ t + μ (s \ t) = μ t
state_after: no goals
Theorem: LinearMap.isScalarTower_of_injective
File: Mathlib/Algebra/Module/LinearMap/Defs.lean

tactic: rw [f.map_smul_of_tower r, map_smul, map_smul, smul_assoc]
state_before: R✝ : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
k : Type u_5
S✝ : Type u_6
S₃ : Type u_7
T : Type u_8
M : Type u_9
M₁ : Type u_10
M₂ : Type u_11
M₃ : Type u_12
N₁ : Type u_13
N₂ : Type u_14
N₃ : Type u_15
ι : Type u_16
inst✝¹⁹ : Semiring R✝
inst✝¹⁸ : Semiring S✝
inst✝¹⁷ : AddCommMonoid M
inst✝¹⁶ : AddCommMonoid M₁
inst✝¹⁵ : AddCommMonoid M₂
inst✝¹⁴ : AddCommMonoid M₃
inst✝¹³ : AddCommMonoid N₁
inst✝¹² : AddCommMonoid N₂
inst✝¹¹ : AddCommMonoid N₃
inst✝¹⁰ : Module R✝ M
inst✝⁹ : Module R✝ M₂
inst✝⁸ : Module S✝ M₃
σ : R✝ →+* S✝
fₗ gₗ : M →ₗ[R✝] M₂
f✝ g : M →ₛₗ[σ] M₃
R : Type u_17
S : Type u_18
inst✝⁷ : Semiring S
inst✝⁶ : SMul R M
inst✝⁵ : Module S M
inst✝⁴ : SMul R M₂
inst✝³ : Module S M₂
inst✝² : SMul R S
inst✝¹ : CompatibleSMul M M₂ R S
inst✝ : IsScalarTower R S M₂
f : M →ₗ[S] M₂
hf : Injective ⇑f
r : R
s : S
x✝ : M
⊢ f ((r • s) • x✝) = f (r • s • x✝)
state_after: no goals
Theorem: EReal.continuousAt_add_bot_bot
File: Mathlib/Topology/Instances/EReal.lean

tactic: simp only [ContinuousAt, tendsto_nhds_bot_iff_real, bot_add]
state_before: α : Type u_1
inst✝ : TopologicalSpace α
⊢ ContinuousAt (fun p => p.1 + p.2) (⊥, ⊥)
state_after: α : Type u_1
inst✝ : TopologicalSpace α
⊢ ∀ (x : ℝ), ∀ᶠ (a : EReal × EReal) in 𝓝 (⊥, ⊥), a.1 + a.2 < ↑x

tactic: refine fun r ↦ ((gt_mem_nhds (bot_lt_coe 0)).prod_nhds
  (gt_mem_nhds <| bot_lt_coe r)).mono fun _ h ↦ ?_
state_before: α : Type u_1
inst✝ : TopologicalSpace α
⊢ ∀ (x : ℝ), ∀ᶠ (a : EReal × EReal) in 𝓝 (⊥, ⊥), a.1 + a.2 < ↑x
state_after: α : Type u_1
inst✝ : TopologicalSpace α
r : ℝ
x✝ : EReal × EReal
h : x✝.1 < ↑0 ∧ x✝.2 < ↑r
⊢ x✝.1 + x✝.2 < ↑r

tactic: simpa only [coe_zero, zero_add] using add_lt_add h.1 h.2
state_before: α : Type u_1
inst✝ : TopologicalSpace α
r : ℝ
x✝ : EReal × EReal
h : x✝.1 < ↑0 ∧ x✝.2 < ↑r
⊢ x✝.1 + x✝.2 < ↑r
state_after: no goals
Theorem: Polynomial.coeff_update_apply
File: Mathlib/Algebra/Polynomial/Basic.lean

tactic: rw [coeff_update, Function.update_apply]
state_before: R : Type u
a✝ b : R
m n✝ : ℕ
inst✝ : Semiring R
p✝ q p : R[X]
n : ℕ
a : R
i : ℕ
⊢ (p.update n a).coeff i = if i = n then a else p.coeff i
state_after: no goals
Theorem: derivWithin_const_sub
File: Mathlib/Analysis/Calculus/Deriv/Add.lean

tactic: simp [derivWithin, fderivWithin_const_sub hxs]
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L : Filter 𝕜
hxs : UniqueDiffWithinAt 𝕜 s x
c : F
⊢ derivWithin (fun y => c - f y) s x = -derivWithin f s x
state_after: no goals
Theorem: mapClusterPt_of_comp
File: Mathlib/Topology/Basic.lean

tactic: have :=
  calc
    map (u ∘ φ) p = map u (map φ p) := map_map
    _ ≤ map u F := map_mono h
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p✝ p₁ p₂ : X → Prop
inst✝¹ : TopologicalSpace X
F : Filter α
φ : β → α
p : Filter β
u : α → X
inst✝ : p.NeBot
h : Tendsto φ p F
H : Tendsto (u ∘ φ) p (𝓝 x)
⊢ MapClusterPt x F u
state_after: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p✝ p₁ p₂ : X → Prop
inst✝¹ : TopologicalSpace X
F : Filter α
φ : β → α
p : Filter β
u : α → X
inst✝ : p.NeBot
h : Tendsto φ p F
H : Tendsto (u ∘ φ) p (𝓝 x)
this : map (u ∘ φ) p ≤ map u F
⊢ MapClusterPt x F u

tactic: have : map (u ∘ φ) p ≤ 𝓝 x ⊓ map u F := le_inf H this
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p✝ p₁ p₂ : X → Prop
inst✝¹ : TopologicalSpace X
F : Filter α
φ : β → α
p : Filter β
u : α → X
inst✝ : p.NeBot
h : Tendsto φ p F
H : Tendsto (u ∘ φ) p (𝓝 x)
this : map (u ∘ φ) p ≤ map u F
⊢ MapClusterPt x F u
state_after: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p✝ p₁ p₂ : X → Prop
inst✝¹ : TopologicalSpace X
F : Filter α
φ : β → α
p : Filter β
u : α → X
inst✝ : p.NeBot
h : Tendsto φ p F
H : Tendsto (u ∘ φ) p (𝓝 x)
this✝ : map (u ∘ φ) p ≤ map u F
this : map (u ∘ φ) p ≤ 𝓝 x ⊓ map u F
⊢ MapClusterPt x F u

tactic: exact neBot_of_le this
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p✝ p₁ p₂ : X → Prop
inst✝¹ : TopologicalSpace X
F : Filter α
φ : β → α
p : Filter β
u : α → X
inst✝ : p.NeBot
h : Tendsto φ p F
H : Tendsto (u ∘ φ) p (𝓝 x)
this✝ : map (u ∘ φ) p ≤ map u F
this : map (u ∘ φ) p ≤ 𝓝 x ⊓ map u F
⊢ MapClusterPt x F u
state_after: no goals
Theorem: hasDerivAt_fourier_neg
File: Mathlib/Analysis/Fourier/AddCircle.lean

tactic: simpa using hasDerivAt_fourier T (-n) x
state_before: T : ℝ
n : ℤ
x : ℝ
⊢ HasDerivAt (fun y => (fourier (-n)) ↑y) (-2 * ↑π * I * ↑n / ↑T * (fourier (-n)) ↑x) x
state_after: no goals
Theorem: MDifferentiableWithinAt.mfderivWithin
File: Mathlib/Geometry/Manifold/MFDeriv/Basic.lean

tactic: simp only [mfderivWithin, h, if_pos]
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
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'
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''
f f₀ f₁ : M → M'
x : M
s t : Set M
g : M' → M''
u : Set M'
Is : SmoothManifoldWithCorners I M
I's : SmoothManifoldWithCorners I' M'
I''s : SmoothManifoldWithCorners I'' M''
f' f₀' f₁' : TangentSpace I x →L[𝕜] TangentSpace I' (f x)
g' : TangentSpace I' (f x) →L[𝕜] TangentSpace I'' (g (f x))
h : MDifferentiableWithinAt I I' f s x
⊢ mfderivWithin I I' f s x =
    fderivWithin 𝕜 (writtenInExtChartAt I I' x f) (↑(extChartAt I x).symm ⁻¹' s ∩ range ↑I) (↑(extChartAt I x) x)
state_after: no goals
Theorem: Function.Antiperiodic.const_smul₀
File: Mathlib/Algebra/Periodic.lean

tactic: simpa only [smul_add, smul_inv_smul₀ ha] using h (a • x)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f g : α → β
c c₁ c₂ x✝ : α
inst✝³ : AddCommMonoid α
inst✝² : Neg β
inst✝¹ : DivisionSemiring γ
inst✝ : Module γ α
h : Antiperiodic f c
a : γ
ha : a ≠ 0
x : α
⊢ (fun x => f (a • x)) (x + a⁻¹ • c) = -(fun x => f (a • x)) x
state_after: no goals
Theorem: quasispectrum.zero_mem
File: Mathlib/Algebra/Algebra/Quasispectrum.lean

tactic: simp
state_before: R : Type u_1
A : Type u_2
inst✝⁵ : CommSemiring R
inst✝⁴ : NonUnitalRing A
inst✝³ : Module R A
inst✝² : IsScalarTower R A A
inst✝¹ : SMulCommClass R A A
inst✝ : Nontrivial R
a : A
⊢ ¬IsUnit 0
state_after: no goals
Theorem: Mathlib.Meta.Finset.range_zero'
File: Mathlib/Tactic/NormNum/BigOperators.lean

tactic: rw [pn.out, Nat.cast_zero, Finset.range_zero]
state_before: n : ℕ
pn : NormNum.IsNat n 0
⊢ Finset.range n = ∅
state_after: no goals
Theorem: ProbabilityTheory.iSup_countableFiltration
File: Mathlib/Probability/Process/PartitionFiltration.lean

tactic: conv_rhs => rw [← generateFrom_iUnion_countablePartition α, ← iSup_generateFrom]
state_before: α✝ : Type u_1
inst✝² : MeasurableSpace α✝
inst✝¹ : CountablyGenerated α✝
α : Type u_2
m : MeasurableSpace α
inst✝ : CountablyGenerated α
⊢ ⨆ n, ↑(countableFiltration α) n = m
state_after: α✝ : Type u_1
inst✝² : MeasurableSpace α✝
inst✝¹ : CountablyGenerated α✝
α : Type u_2
m : MeasurableSpace α
inst✝ : CountablyGenerated α
⊢ ⨆ n, ↑(countableFiltration α) n = ⨆ i, generateFrom (countablePartition α i)

tactic: rfl
state_before: α✝ : Type u_1
inst✝² : MeasurableSpace α✝
inst✝¹ : CountablyGenerated α✝
α : Type u_2
m : MeasurableSpace α
inst✝ : CountablyGenerated α
⊢ ⨆ n, ↑(countableFiltration α) n = ⨆ i, generateFrom (countablePartition α i)
state_after: no goals
Theorem: SetLike.natCast_mem_graded
File: Mathlib/Algebra/DirectSum/Internal.lean

tactic: induction' n with _ n_ih
state_before: ι : Type u_1
σ : Type u_2
S : Type u_3
R : Type u_4
inst✝⁴ : Zero ι
inst✝³ : AddMonoidWithOne R
inst✝² : SetLike σ R
inst✝¹ : AddSubmonoidClass σ R
A : ι → σ
inst✝ : GradedOne A
n : ℕ
⊢ ↑n ∈ A 0
state_after: case zero
ι : Type u_1
σ : Type u_2
S : Type u_3
R : Type u_4
inst✝⁴ : Zero ι
inst✝³ : AddMonoidWithOne R
inst✝² : SetLike σ R
inst✝¹ : AddSubmonoidClass σ R
A : ι → σ
inst✝ : GradedOne A
⊢ ↑0 ∈ A 0

case succ
ι : Type u_1
σ : Type u_2
S : Type u_3
R : Type u_4
inst✝⁴ : Zero ι
inst✝³ : AddMonoidWithOne R
inst✝² : SetLike σ R
inst✝¹ : AddSubmonoidClass σ R
A : ι → σ
inst✝ : GradedOne A
n✝ : ℕ
n_ih : ↑n✝ ∈ A 0
⊢ ↑(n✝ + 1) ∈ A 0

tactic: rw [Nat.cast_zero]
state_before: case zero
ι : Type u_1
σ : Type u_2
S : Type u_3
R : Type u_4
inst✝⁴ : Zero ι
inst✝³ : AddMonoidWithOne R
inst✝² : SetLike σ R
inst✝¹ : AddSubmonoidClass σ R
A : ι → σ
inst✝ : GradedOne A
⊢ ↑0 ∈ A 0
state_after: case zero
ι : Type u_1
σ : Type u_2
S : Type u_3
R : Type u_4
inst✝⁴ : Zero ι
inst✝³ : AddMonoidWithOne R
inst✝² : SetLike σ R
inst✝¹ : AddSubmonoidClass σ R
A : ι → σ
inst✝ : GradedOne A
⊢ 0 ∈ A 0

tactic: exact zero_mem (A 0)
state_before: case zero
ι : Type u_1
σ : Type u_2
S : Type u_3
R : Type u_4
inst✝⁴ : Zero ι
inst✝³ : AddMonoidWithOne R
inst✝² : SetLike σ R
inst✝¹ : AddSubmonoidClass σ R
A : ι → σ
inst✝ : GradedOne A
⊢ 0 ∈ A 0
state_after: no goals

tactic: rw [Nat.cast_succ]
state_before: case succ
ι : Type u_1
σ : Type u_2
S : Type u_3
R : Type u_4
inst✝⁴ : Zero ι
inst✝³ : AddMonoidWithOne R
inst✝² : SetLike σ R
inst✝¹ : AddSubmonoidClass σ R
A : ι → σ
inst✝ : GradedOne A
n✝ : ℕ
n_ih : ↑n✝ ∈ A 0
⊢ ↑(n✝ + 1) ∈ A 0
state_after: case succ
ι : Type u_1
σ : Type u_2
S : Type u_3
R : Type u_4
inst✝⁴ : Zero ι
inst✝³ : AddMonoidWithOne R
inst✝² : SetLike σ R
inst✝¹ : AddSubmonoidClass σ R
A : ι → σ
inst✝ : GradedOne A
n✝ : ℕ
n_ih : ↑n✝ ∈ A 0
⊢ ↑n✝ + 1 ∈ A 0

tactic: exact add_mem n_ih (SetLike.one_mem_graded _)
state_before: case succ
ι : Type u_1
σ : Type u_2
S : Type u_3
R : Type u_4
inst✝⁴ : Zero ι
inst✝³ : AddMonoidWithOne R
inst✝² : SetLike σ R
inst✝¹ : AddSubmonoidClass σ R
A : ι → σ
inst✝ : GradedOne A
n✝ : ℕ
n_ih : ↑n✝ ∈ A 0
⊢ ↑n✝ + 1 ∈ A 0
state_after: no goals
Theorem: geometric_hahn_banach_point_open
File: Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean

tactic: simpa
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝⁴ : TopologicalSpace E
inst✝³ : AddCommGroup E
inst✝² : TopologicalAddGroup E
inst✝¹ : Module ℝ E
inst✝ : ContinuousSMul ℝ E
s t : Set E
x y : E
ht₁ : Convex ℝ t
ht₂ : IsOpen t
disj : x ∉ t
f : E →L[ℝ] ℝ
hf : ∀ a ∈ t, f a < f x
⊢ ∀ b ∈ t, (-f) x < (-f) b
state_after: no goals
Theorem: Cardinal.toNat_apply_of_lt_aleph0
File: Mathlib/SetTheory/Cardinal/ToNat.lean

tactic: rw [cast_toNat_of_lt_aleph0 h, ← Classical.choose_spec (lt_aleph0.1 h)]
state_before: α : Type u
c✝ d : Cardinal.{u}
c : Cardinal.{u_1}
h : c < ℵ₀
⊢ ↑(toNat c) = ↑(Classical.choose ⋯)
state_after: no goals
Theorem: MeasureTheory.L2.inner_indicatorConstLp_one
File: Mathlib/MeasureTheory/Function/L2Space.lean

tactic: rw [L2.inner_indicatorConstLp_eq_inner_setIntegral 𝕜 hs hμs (1 : 𝕜) f]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
s : Set α
hs : MeasurableSet s
hμs : μ s ≠ ⊤
f : ↥(Lp 𝕜 2 μ)
⊢ ⟪indicatorConstLp 2 hs hμs 1, f⟫_𝕜 = ∫ (x : α) in s, ↑↑f x ∂μ
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
s : Set α
hs : MeasurableSet s
hμs : μ s ≠ ⊤
f : ↥(Lp 𝕜 2 μ)
⊢ ⟪1, ∫ (x : α) in s, ↑↑f x ∂μ⟫_𝕜 = ∫ (x : α) in s, ↑↑f x ∂μ

tactic: simp
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
s : Set α
hs : MeasurableSet s
hμs : μ s ≠ ⊤
f : ↥(Lp 𝕜 2 μ)
⊢ ⟪1, ∫ (x : α) in s, ↑↑f x ∂μ⟫_𝕜 = ∫ (x : α) in s, ↑↑f x ∂μ
state_after: no goals
Theorem: add_sq_le
File: Mathlib/Algebra/Order/Ring/Basic.lean

tactic: calc
  (a + b) ^ 2 = a ^ 2 + b ^ 2 + (a * b + b * a) := by
      simp_rw [pow_succ', pow_zero, mul_one, add_mul, mul_add, add_comm (b * a), add_add_add_comm]
  _ ≤ a ^ 2 + b ^ 2 + (a * a + b * b) := add_le_add_left ?_ _
  _ = _ := by simp_rw [pow_succ', pow_zero, mul_one, two_mul]
state_before: α : Type u_1
M : Type u_2
R : Type u_3
inst✝¹ : LinearOrderedSemiring R
a b : R
m n : ℕ
inst✝ : ExistsAddOfLE R
⊢ (a + b) ^ 2 ≤ 2 * (a ^ 2 + b ^ 2)
state_after: α : Type u_1
M : Type u_2
R : Type u_3
inst✝¹ : LinearOrderedSemiring R
a b : R
m n : ℕ
inst✝ : ExistsAddOfLE R
⊢ a * b + b * a ≤ a * a + b * b

tactic: cases le_total a b
state_before: α : Type u_1
M : Type u_2
R : Type u_3
inst✝¹ : LinearOrderedSemiring R
a b : R
m n : ℕ
inst✝ : ExistsAddOfLE R
⊢ a * b + b * a ≤ a * a + b * b
state_after: case inl
α : Type u_1
M : Type u_2
R : Type u_3
inst✝¹ : LinearOrderedSemiring R
a b : R
m n : ℕ
inst✝ : ExistsAddOfLE R
h✝ : a ≤ b
⊢ a * b + b * a ≤ a * a + b * b

case inr
α : Type u_1
M : Type u_2
R : Type u_3
inst✝¹ : LinearOrderedSemiring R
a b : R
m n : ℕ
inst✝ : ExistsAddOfLE R
h✝ : b ≤ a
⊢ a * b + b * a ≤ a * a + b * b

tactic: simp_rw [pow_succ', pow_zero, mul_one, add_mul, mul_add, add_comm (b * a), add_add_add_comm]
state_before: α : Type u_1
M : Type u_2
R : Type u_3
inst✝¹ : LinearOrderedSemiring R
a b : R
m n : ℕ
inst✝ : ExistsAddOfLE R
⊢ (a + b) ^ 2 = a ^ 2 + b ^ 2 + (a * b + b * a)
state_after: no goals

tactic: simp_rw [pow_succ', pow_zero, mul_one, two_mul]
state_before: α : Type u_1
M : Type u_2
R : Type u_3
inst✝¹ : LinearOrderedSemiring R
a b : R
m n : ℕ
inst✝ : ExistsAddOfLE R
⊢ a ^ 2 + b ^ 2 + (a * a + b * b) = 2 * (a ^ 2 + b ^ 2)
state_after: no goals

tactic: exact mul_add_mul_le_mul_add_mul ‹_› ‹_›
state_before: case inl
α : Type u_1
M : Type u_2
R : Type u_3
inst✝¹ : LinearOrderedSemiring R
a b : R
m n : ℕ
inst✝ : ExistsAddOfLE R
h✝ : a ≤ b
⊢ a * b + b * a ≤ a * a + b * b
state_after: no goals

tactic: exact mul_add_mul_le_mul_add_mul' ‹_› ‹_›
state_before: case inr
α : Type u_1
M : Type u_2
R : Type u_3
inst✝¹ : LinearOrderedSemiring R
a b : R
m n : ℕ
inst✝ : ExistsAddOfLE R
h✝ : b ≤ a
⊢ a * b + b * a ≤ a * a + b * b
state_after: no goals
Theorem: mem_nhdsWithin_Ici_iff_exists_Ico_subset'
File: Mathlib/Topology/Order/LeftRightNhds.lean

tactic: norm_num
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a u' : α
s : Set α
hu' : a < u'
⊢ [s ∈ 𝓝[≥] a, s ∈ 𝓝[Icc a u'] a, s ∈ 𝓝[Ico a u'] a, ∃ u ∈ Ioc a u', Ico a u ⊆ s, ∃ u ∈ Ioi a, Ico a u ⊆ s].get? 0 =
    some (s ∈ 𝓝[≥] a)
state_after: no goals

tactic: norm_num
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a u' : α
s : Set α
hu' : a < u'
⊢ [s ∈ 𝓝[≥] a, s ∈ 𝓝[Icc a u'] a, s ∈ 𝓝[Ico a u'] a, ∃ u ∈ Ioc a u', Ico a u ⊆ s, ∃ u ∈ Ioi a, Ico a u ⊆ s].get? 4 =
    some (∃ u ∈ Ioi a, Ico a u ⊆ s)
state_after: no goals
Theorem: Submodule.span_int_eq
File: Mathlib/LinearAlgebra/Span.lean

tactic: rw [span_int_eq_addSubgroup_closure, s.closure_eq]
state_before: R : Type u_1
R₂ : Type u_2
K : Type u_3
M✝ : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁸ : Semiring R
inst✝⁷ : AddCommMonoid M✝
inst✝⁶ : Module R M✝
x : M✝
p p' : Submodule R M✝
inst✝⁵ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁴ : AddCommMonoid M₂
inst✝³ : Module R₂ M₂
F : Type u_8
inst✝² : FunLike F M✝ M₂
inst✝¹ : SemilinearMapClass F σ₁₂ M✝ M₂
s✝ t : Set M✝
M : Type u_9
inst✝ : AddCommGroup M
s : AddSubgroup M
⊢ (span ℤ ↑s).toAddSubgroup = s
state_after: no goals
Theorem: ascPochhammer_eval_neg_eq_descPochhammer
File: Mathlib/RingTheory/Polynomial/Pochhammer.lean

tactic: rw [ascPochhammer_zero, descPochhammer_zero]
state_before: R : Type u
inst✝ : Ring R
r : R
⊢ eval (-r) (ascPochhammer R 0) = (-1) ^ 0 * eval r (descPochhammer R 0)
state_after: R : Type u
inst✝ : Ring R
r : R
⊢ eval (-r) 1 = (-1) ^ 0 * eval r 1

tactic: simp only [eval_one, pow_zero, mul_one]
state_before: R : Type u
inst✝ : Ring R
r : R
⊢ eval (-r) 1 = (-1) ^ 0 * eval r 1
state_after: no goals

tactic: rw [ascPochhammer_succ_right, mul_add, eval_add, eval_mul_X, ← Nat.cast_comm, eval_natCast_mul,
  Nat.cast_comm, ← mul_add, ascPochhammer_eval_neg_eq_descPochhammer r k, mul_assoc,
  descPochhammer_succ_right, mul_sub, eval_sub, eval_mul_X, ← Nat.cast_comm, eval_natCast_mul,
  pow_add, pow_one, mul_assoc ((-1)^k) (-1), mul_sub, neg_one_mul, neg_mul_eq_mul_neg,
  Nat.cast_comm, sub_eq_add_neg, neg_one_mul, neg_neg, ← mul_add]
state_before: R : Type u
inst✝ : Ring R
r : R
k : ℕ
⊢ eval (-r) (ascPochhammer R (k + 1)) = (-1) ^ (k + 1) * eval r (descPochhammer R (k + 1))
state_after: no goals
Theorem: SimpleGraph.sup_edge_self
File: Mathlib/Combinatorics/SimpleGraph/Operations.lean

tactic: rw [edge_self_eq_bot, sup_of_le_left bot_le]
state_before: V : Type u_1
inst✝ : DecidableEq V
G : SimpleGraph V
s t : V
⊢ G ⊔ edge s s = G
state_after: no goals
Theorem: Nat.one_lt_two_pow'
File: Mathlib/Data/Nat/Defs.lean

tactic: decide
state_before: a b c d m n✝ k : ℕ
p q : ℕ → Prop
n : ℕ
⊢ 1 < 2
state_after: no goals