1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Submodule.bot_orthogonal_eq_top
File: Mathlib/Analysis/InnerProductSpace/Orthogonal.lean

tactic: rw [← top_orthogonal_eq_bot, eq_top_iff]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
⊢ ⊥ᗮ = ⊤
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
⊢ ⊤ ≤ ⊤ᗮᗮ

tactic: exact le_orthogonal_orthogonal ⊤
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
⊢ ⊤ ≤ ⊤ᗮᗮ
state_after: no goals
Theorem: Absorbs.univ
File: Mathlib/Topology/Bornology/Absorbs.lean

tactic: rw [smul_set_univ₀ ha]
state_before: G₀ : Type u_1
α : Type u_2
inst✝² : GroupWithZero G₀
inst✝¹ : Bornology G₀
inst✝ : MulAction G₀ α
s t u : Set α
S : Set (Set α)
a : G₀
ha : a ≠ 0
⊢ s ⊆ a • univ
state_after: G₀ : Type u_1
α : Type u_2
inst✝² : GroupWithZero G₀
inst✝¹ : Bornology G₀
inst✝ : MulAction G₀ α
s t u : Set α
S : Set (Set α)
a : G₀
ha : a ≠ 0
⊢ s ⊆ univ

tactic: apply subset_univ
state_before: G₀ : Type u_1
α : Type u_2
inst✝² : GroupWithZero G₀
inst✝¹ : Bornology G₀
inst✝ : MulAction G₀ α
s t u : Set α
S : Set (Set α)
a : G₀
ha : a ≠ 0
⊢ s ⊆ univ
state_after: no goals
Theorem: HomologicalComplex.d_comp_eqToHom
File: Mathlib/Algebra/Homology/HomologicalComplex.lean

tactic: obtain rfl := c.next_eq rij rij'
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i j j' : ι
rij : c.Rel i j
rij' : c.Rel i j'
⊢ C.d i j' ≫ eqToHom ⋯ = C.d i j
state_after: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i j : ι
rij rij' : c.Rel i j
⊢ C.d i j ≫ eqToHom ⋯ = C.d i j

tactic: simp only [eqToHom_refl, comp_id]
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i j : ι
rij rij' : c.Rel i j
⊢ C.d i j ≫ eqToHom ⋯ = C.d i j
state_after: no goals
Theorem: HomotopyCategory.homologyFunctor_shiftMap
File: Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean

tactic: apply Functor.ShiftSequence.induced_shiftMap
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
inst✝ : CategoryWithHomology C
K L : CochainComplex C ℤ
n : ℤ
f : K ⟶ (shiftFunctor (CochainComplex C ℤ) n).obj L
a a' : ℤ
h : n + a = a'
⊢ (homologyFunctor C (up ℤ) 0).shiftMap ((quotient C (up ℤ)).map f ≫ ((quotient C (up ℤ)).commShiftIso n).hom.app L) a
      a' h =
    (homologyFunctorFactors C (up ℤ) a).hom.app K ≫
      (HomologicalComplex.homologyFunctor C (up ℤ) 0).shiftMap f a a' h ≫ (homologyFunctorFactors C (up ℤ) a').inv.app L
state_after: no goals
Theorem: Complex.lipschitz_equivRealProd
File: Mathlib/Analysis/Complex/Basic.lean

tactic: simpa using AddMonoidHomClass.lipschitz_of_bound equivRealProdLm 1 equivRealProd_apply_le'
state_before: z : ℂ
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℂ E
⊢ LipschitzWith 1 ⇑equivRealProd
state_after: no goals
Theorem: AffineMap.homothety_isOpenMap
File: Mathlib/Topology/Algebra/Affine.lean

tactic: apply IsOpenMap.of_inverse (homothety_continuous x t⁻¹) <;> intro e <;>
  simp [← AffineMap.comp_apply, ← homothety_mul, ht]
state_before: R : Type u_1
E : Type u_2
F : Type u_3
inst✝⁷ : AddCommGroup E
inst✝⁶ : TopologicalSpace E
inst✝⁵ : AddCommGroup F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : Field R
inst✝¹ : Module R F
inst✝ : ContinuousConstSMul R F
x : F
t : R
ht : t ≠ 0
⊢ IsOpenMap ⇑(homothety x t)
state_after: no goals
Theorem: Pell.xn_modEq_x4n_sub
File: Mathlib/NumberTheory/PellMatiyasevic.lean

tactic: rw [Nat.succ_mul]
state_before: a : ℕ
a1 : 1 < a
n j : ℕ
h : j ≤ 2 * n
⊢ 2 * n ≤ 2 * n
state_after: no goals

tactic: refine @ModEq.trans _ _ 0 _ ?_ (by rw [add_comm]; exact (xn_modEq_x2n_sub _ h).symm)
state_before: a : ℕ
a1 : 1 < a
n j : ℕ
h h' : j ≤ 2 * n
⊢ xn a1 (4 * n - j) + xn a1 (2 * n - j) ≡ xn a1 j + xn a1 (2 * n - j) [MOD xn a1 n]
state_after: a : ℕ
a1 : 1 < a
n j : ℕ
h h' : j ≤ 2 * n
⊢ xn a1 (4 * n - j) + xn a1 (2 * n - j) ≡ 0 [MOD xn a1 n]

tactic: rw [show 4 * n = 2 * n + 2 * n from right_distrib 2 2 n, add_tsub_assoc_of_le h']
state_before: a : ℕ
a1 : 1 < a
n j : ℕ
h h' : j ≤ 2 * n
⊢ xn a1 (4 * n - j) + xn a1 (2 * n - j) ≡ 0 [MOD xn a1 n]
state_after: a : ℕ
a1 : 1 < a
n j : ℕ
h h' : j ≤ 2 * n
⊢ xn a1 (2 * n + (2 * n - j)) + xn a1 (2 * n - j) ≡ 0 [MOD xn a1 n]

tactic: apply xn_modEq_x2n_add
state_before: a : ℕ
a1 : 1 < a
n j : ℕ
h h' : j ≤ 2 * n
⊢ xn a1 (2 * n + (2 * n - j)) + xn a1 (2 * n - j) ≡ 0 [MOD xn a1 n]
state_after: no goals

tactic: rw [add_comm]
state_before: a : ℕ
a1 : 1 < a
n j : ℕ
h h' : j ≤ 2 * n
⊢ 0 ≡ xn a1 j + xn a1 (2 * n - j) [MOD xn a1 n]
state_after: a : ℕ
a1 : 1 < a
n j : ℕ
h h' : j ≤ 2 * n
⊢ 0 ≡ xn a1 (2 * n - j) + xn a1 j [MOD xn a1 n]

tactic: exact (xn_modEq_x2n_sub _ h).symm
state_before: a : ℕ
a1 : 1 < a
n j : ℕ
h h' : j ≤ 2 * n
⊢ 0 ≡ xn a1 (2 * n - j) + xn a1 j [MOD xn a1 n]
state_after: no goals
Theorem: Array.extract_extract
File: Mathlib/Data/Array/ExtractLemmas.lean

tactic: apply ext
state_before: α : Type u_1
s1 e2 e1 s2 : Nat
a : Array α
h : s1 + e2 ≤ e1
⊢ (a.extract s1 e1).extract s2 e2 = a.extract (s1 + s2) (s1 + e2)
state_after: case h₁
α : Type u_1
s1 e2 e1 s2 : Nat
a : Array α
h : s1 + e2 ≤ e1
⊢ ((a.extract s1 e1).extract s2 e2).size = (a.extract (s1 + s2) (s1 + e2)).size

case h₂
α : Type u_1
s1 e2 e1 s2 : Nat
a : Array α
h : s1 + e2 ≤ e1
⊢ ∀ (i : Nat) (hi₁ : i < ((a.extract s1 e1).extract s2 e2).size) (hi₂ : i < (a.extract (s1 + s2) (s1 + e2)).size),
    ((a.extract s1 e1).extract s2 e2)[i] = (a.extract (s1 + s2) (s1 + e2))[i]

tactic: simp only [size_extract]
state_before: case h₁
α : Type u_1
s1 e2 e1 s2 : Nat
a : Array α
h : s1 + e2 ≤ e1
⊢ ((a.extract s1 e1).extract s2 e2).size = (a.extract (s1 + s2) (s1 + e2)).size
state_after: case h₁
α : Type u_1
s1 e2 e1 s2 : Nat
a : Array α
h : s1 + e2 ≤ e1
⊢ min e2 (min e1 a.size - s1) - s2 = min (s1 + e2) a.size - (s1 + s2)

tactic: omega
state_before: case h₁
α : Type u_1
s1 e2 e1 s2 : Nat
a : Array α
h : s1 + e2 ≤ e1
⊢ min e2 (min e1 a.size - s1) - s2 = min (s1 + e2) a.size - (s1 + s2)
state_after: no goals

tactic: intro i h1 h2
state_before: case h₂
α : Type u_1
s1 e2 e1 s2 : Nat
a : Array α
h : s1 + e2 ≤ e1
⊢ ∀ (i : Nat) (hi₁ : i < ((a.extract s1 e1).extract s2 e2).size) (hi₂ : i < (a.extract (s1 + s2) (s1 + e2)).size),
    ((a.extract s1 e1).extract s2 e2)[i] = (a.extract (s1 + s2) (s1 + e2))[i]
state_after: case h₂
α : Type u_1
s1 e2 e1 s2 : Nat
a : Array α
h : s1 + e2 ≤ e1
i : Nat
h1 : i < ((a.extract s1 e1).extract s2 e2).size
h2 : i < (a.extract (s1 + s2) (s1 + e2)).size
⊢ ((a.extract s1 e1).extract s2 e2)[i] = (a.extract (s1 + s2) (s1 + e2))[i]

tactic: simp only [get_extract, Nat.add_assoc]
state_before: case h₂
α : Type u_1
s1 e2 e1 s2 : Nat
a : Array α
h : s1 + e2 ≤ e1
i : Nat
h1 : i < ((a.extract s1 e1).extract s2 e2).size
h2 : i < (a.extract (s1 + s2) (s1 + e2)).size
⊢ ((a.extract s1 e1).extract s2 e2)[i] = (a.extract (s1 + s2) (s1 + e2))[i]
state_after: no goals
Theorem: CategoryTheory.Arrow.iso_w
File: Mathlib/CategoryTheory/Comma/Arrow.lean

tactic: have eq := Arrow.hom.congr_right e.inv_hom_id
state_before: T : Type u
inst✝ : Category.{v, u} T
f g : Arrow T
e : f ≅ g
⊢ g.hom = e.inv.left ≫ f.hom ≫ e.hom.right
state_after: T : Type u
inst✝ : Category.{v, u} T
f g : Arrow T
e : f ≅ g
eq : (e.inv ≫ e.hom).right = (𝟙 g).right
⊢ g.hom = e.inv.left ≫ f.hom ≫ e.hom.right

tactic: rw [Arrow.comp_right, Arrow.id_right] at eq
state_before: T : Type u
inst✝ : Category.{v, u} T
f g : Arrow T
e : f ≅ g
eq : (e.inv ≫ e.hom).right = (𝟙 g).right
⊢ g.hom = e.inv.left ≫ f.hom ≫ e.hom.right
state_after: T : Type u
inst✝ : Category.{v, u} T
f g : Arrow T
e : f ≅ g
eq : e.inv.right ≫ e.hom.right = 𝟙 g.right
⊢ g.hom = e.inv.left ≫ f.hom ≫ e.hom.right

tactic: erw [Arrow.w_assoc, eq, Category.comp_id]
state_before: T : Type u
inst✝ : Category.{v, u} T
f g : Arrow T
e : f ≅ g
eq : e.inv.right ≫ e.hom.right = 𝟙 g.right
⊢ g.hom = e.inv.left ≫ f.hom ≫ e.hom.right
state_after: no goals
Theorem: MeasureTheory.snorm_lt_top_iff_lintegral_rpow_nnnorm_lt_top
File: Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean

tactic: intro h
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
⊢ ∫⁻ (a : α), ↑‖f a‖₊ ^ p.toReal ∂μ < ⊤ → snorm f p μ < ⊤
state_after: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
h : ∫⁻ (a : α), ↑‖f a‖₊ ^ p.toReal ∂μ < ⊤
⊢ snorm f p μ < ⊤

tactic: have hp' := ENNReal.toReal_pos hp_ne_zero hp_ne_top
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
h : ∫⁻ (a : α), ↑‖f a‖₊ ^ p.toReal ∂μ < ⊤
⊢ snorm f p μ < ⊤
state_after: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
h : ∫⁻ (a : α), ↑‖f a‖₊ ^ p.toReal ∂μ < ⊤
hp' : 0 < p.toReal
⊢ snorm f p μ < ⊤

tactic: have : 0 < 1 / p.toReal := div_pos zero_lt_one hp'
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
h : ∫⁻ (a : α), ↑‖f a‖₊ ^ p.toReal ∂μ < ⊤
hp' : 0 < p.toReal
⊢ snorm f p μ < ⊤
state_after: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
h : ∫⁻ (a : α), ↑‖f a‖₊ ^ p.toReal ∂μ < ⊤
hp' : 0 < p.toReal
this : 0 < 1 / p.toReal
⊢ snorm f p μ < ⊤

tactic: simpa [snorm_eq_lintegral_rpow_nnnorm hp_ne_zero hp_ne_top] using
  ENNReal.rpow_lt_top_of_nonneg (le_of_lt this) (ne_of_lt h)
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
h : ∫⁻ (a : α), ↑‖f a‖₊ ^ p.toReal ∂μ < ⊤
hp' : 0 < p.toReal
this : 0 < 1 / p.toReal
⊢ snorm f p μ < ⊤
state_after: no goals
Theorem: Multiset.zero_union
File: Mathlib/Data/Multiset/Basic.lean

tactic: simp [union_def]
state_before: α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s t u : Multiset α
a b : α
⊢ 0 ∪ s = s
state_after: no goals
Theorem: ContinuousLinearMap.hasSum
File: Mathlib/Topology/Algebra/InfiniteSum/Module.lean

tactic: simpa only using hf.map φ.toLinearMap.toAddMonoidHom φ.continuous
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
κ : Type u_6
R : Type u_7
R₂ : Type u_8
M : Type u_9
M₂ : Type u_10
inst✝⁹ : Semiring R
inst✝⁸ : Semiring R₂
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R₂ M₂
inst✝³ : TopologicalSpace M
inst✝² : TopologicalSpace M₂
σ : R →+* R₂
σ' : R₂ →+* R
inst✝¹ : RingHomInvPair σ σ'
inst✝ : RingHomInvPair σ' σ
f : ι → M
φ : M →SL[σ] M₂
x : M
hf : HasSum f x
⊢ HasSum (fun b => φ (f b)) (φ x)
state_after: no goals
Theorem: upperCentralSeries_mono
File: Mathlib/GroupTheory/Nilpotent.lean

tactic: refine monotone_nat_of_le_succ ?_
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
⊢ Monotone (upperCentralSeries G)
state_after: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
⊢ ∀ (n : ℕ), upperCentralSeries G n ≤ upperCentralSeries G (n + 1)

tactic: intro n x hx y
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
⊢ ∀ (n : ℕ), upperCentralSeries G n ≤ upperCentralSeries G (n + 1)
state_after: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
x : G
hx : x ∈ upperCentralSeries G n
y : G
⊢ x * y * x⁻¹ * y⁻¹ ∈ (upperCentralSeriesAux G n).fst

tactic: rw [mul_assoc, mul_assoc, ← mul_assoc y x⁻¹ y⁻¹]
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
x : G
hx : x ∈ upperCentralSeries G n
y : G
⊢ x * y * x⁻¹ * y⁻¹ ∈ (upperCentralSeriesAux G n).fst
state_after: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
x : G
hx : x ∈ upperCentralSeries G n
y : G
⊢ x * (y * x⁻¹ * y⁻¹) ∈ (upperCentralSeriesAux G n).fst

tactic: exact mul_mem hx (Normal.conj_mem (upperCentralSeries_normal G n) x⁻¹ (inv_mem hx) y)
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
n : ℕ
x : G
hx : x ∈ upperCentralSeries G n
y : G
⊢ x * (y * x⁻¹ * y⁻¹) ∈ (upperCentralSeriesAux G n).fst
state_after: no goals
Theorem: Int.log_zpow
File: Mathlib/Data/Int/Log.lean

tactic: obtain ⟨n, rfl | rfl⟩ := Int.eq_nat_or_neg z
state_before: R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
hb : 1 < b
z : ℤ
⊢ log b (↑b ^ z) = z
state_after: case intro.inl
R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
hb : 1 < b
n : ℕ
⊢ log b (↑b ^ ↑n) = ↑n

case intro.inr
R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
hb : 1 < b
n : ℕ
⊢ log b (↑b ^ (-↑n)) = -↑n

tactic: rw [log_of_one_le_right _ (one_le_zpow_of_nonneg _ <| Int.natCast_nonneg _), zpow_natCast, ←
  Nat.cast_pow, Nat.floor_natCast, Nat.log_pow hb]
state_before: case intro.inl
R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
hb : 1 < b
n : ℕ
⊢ log b (↑b ^ ↑n) = ↑n
state_after: R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
hb : 1 < b
n : ℕ
⊢ 1 ≤ ↑b

tactic: exact mod_cast hb.le
state_before: R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
hb : 1 < b
n : ℕ
⊢ 1 ≤ ↑b
state_after: no goals

tactic: rw [log_of_right_le_one _ (zpow_le_one_of_nonpos _ <| neg_nonpos.mpr (Int.natCast_nonneg _)),
  zpow_neg, inv_inv, zpow_natCast, ← Nat.cast_pow, Nat.ceil_natCast, Nat.clog_pow _ _ hb]
state_before: case intro.inr
R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
hb : 1 < b
n : ℕ
⊢ log b (↑b ^ (-↑n)) = -↑n
state_after: R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
hb : 1 < b
n : ℕ
⊢ 1 ≤ ↑b
Theorem: Polynomial.eval_eq_sum_range
File: Mathlib/Algebra/Polynomial/Eval.lean

tactic: rw [eval_eq_sum, sum_over_range]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝ : Semiring R
p✝ q r : R[X]
x✝ : R
p : R[X]
x : R
⊢ eval x p = ∑ i ∈ range (p.natDegree + 1), p.coeff i * x ^ i
state_after: case h
R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝ : Semiring R
p✝ q r : R[X]
x✝ : R
p : R[X]
x : R
⊢ ∀ (n : ℕ), 0 * x ^ n = 0

tactic: simp
state_before: case h
R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝ : Semiring R
p✝ q r : R[X]
x✝ : R
p : R[X]
x : R
⊢ ∀ (n : ℕ), 0 * x ^ n = 0
state_after: no goals
Theorem: Filter.eventually_iff_seq_eventually
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: simpa using tendsto_iff_seq_tendsto (f := id) (l := 𝓟 {x | p x})
state_before: ι✝ : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
ι : Type u_6
l : Filter ι
p : ι → Prop
inst✝ : l.IsCountablyGenerated
⊢ (∀ᶠ (n : ι) in l, p n) ↔ ∀ (x : ℕ → ι), Tendsto x atTop l → ∀ᶠ (n : ℕ) in atTop, p (x n)
state_after: no goals
Theorem: PartialHomeomorph.IsImage.interior
File: Mathlib/Topology/PartialHomeomorph.lean

tactic: simpa only [closure_compl, compl_compl] using h.compl.closure.compl
state_before: X : Type u_1
X' : Type u_2
Y : Type u_3
Y' : Type u_4
Z : Type u_5
Z' : Type u_6
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace X'
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Y'
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace Z'
e : PartialHomeomorph X Y
s : Set X
t : Set Y
x : X
y : Y
h : e.IsImage s t
⊢ e.IsImage (interior s) (interior t)
state_after: no goals
Theorem: PiLp.edist_eq_of_L2
File: Mathlib/Analysis/NormedSpace/PiLp.lean

tactic: simp [PiLp.edist_eq_sum]
state_before: p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β✝ : ι → Type u_4
inst✝² : Fact (1 ≤ p)
inst✝¹ : Fintype ι
β : ι → Type u_5
inst✝ : (i : ι) → SeminormedAddCommGroup (β i)
x y : PiLp 2 β
⊢ edist x y = (∑ i : ι, edist (x i) (y i) ^ 2) ^ (1 / 2)
state_after: no goals
Theorem: iUnion_Ico_add_intCast
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simpa only [zsmul_one, Int.cast_add, Int.cast_one, ← add_assoc] using
  iUnion_Ico_add_zsmul zero_lt_one a
state_before: α : Type u_1
inst✝¹ : LinearOrderedRing α
inst✝ : Archimedean α
a : α
⊢ ⋃ n, Ico (a + ↑n) (a + ↑n + 1) = univ
state_after: no goals
Theorem: SemidirectProduct.rightHom_inr
File: Mathlib/GroupTheory/SemidirectProduct.lean

tactic: simp [rightHom]
state_before: N : Type u_1
G : Type u_2
H : Type u_3
inst✝² : Group N
inst✝¹ : Group G
inst✝ : Group H
φ : G →* MulAut N
g : G
⊢ rightHom (inr g) = g
state_after: no goals
Theorem: Sym2.other_invol'
File: Mathlib/Data/Sym/Sym2.lean

tactic: induction z
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
inst✝ : DecidableEq α
a : α
z : Sym2 α
ha : a ∈ z
hb : Mem.other' ha ∈ z
⊢ Mem.other' hb = a
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
inst✝ : DecidableEq α
a x✝ y✝ : α
ha : a ∈ s(x✝, y✝)
hb : Mem.other' ha ∈ s(x✝, y✝)
⊢ Mem.other' hb = a

tactic: aesop (rule_sets := [Sym2]) (add norm unfold [Sym2.rec, Quot.rec])
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
inst✝ : DecidableEq α
a x✝ y✝ : α
ha : a ∈ s(x✝, y✝)
hb : Mem.other' ha ∈ s(x✝, y✝)
⊢ Mem.other' hb = a
state_after: no goals
Theorem: CategoryTheory.Mat_.id_apply_self
File: Mathlib/CategoryTheory/Preadditive/Mat.lean

tactic: simp [id_apply]
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : Preadditive C
M : Mat_ C
i : M.ι
⊢ 𝟙 M i i = 𝟙 (M.X i)
state_after: no goals
Theorem: Cycle.Chain.eq_nil_of_irrefl
File: Mathlib/Data/List/Cycle.lean

tactic: induction' s with a l _ h
state_before: α : Type u_1
r : α → α → Prop
s : Cycle α
inst✝¹ : IsTrans α r
inst✝ : IsIrrefl α r
h : Chain r s
⊢ s = Cycle.nil
state_after: case H0
α : Type u_1
r : α → α → Prop
s : Cycle α
inst✝¹ : IsTrans α r
inst✝ : IsIrrefl α r
h : Chain r Cycle.nil
⊢ Cycle.nil = Cycle.nil

case HI
α : Type u_1
r : α → α → Prop
s : Cycle α
inst✝¹ : IsTrans α r
inst✝ : IsIrrefl α r
a : α
l : List α
a✝ : Chain r ↑l → ↑l = Cycle.nil
h : Chain r ↑(a :: l)
⊢ ↑(a :: l) = Cycle.nil

tactic: rfl
state_before: case H0
α : Type u_1
r : α → α → Prop
s : Cycle α
inst✝¹ : IsTrans α r
inst✝ : IsIrrefl α r
h : Chain r Cycle.nil
⊢ Cycle.nil = Cycle.nil
state_after: no goals

tactic: have ha := mem_cons_self a l
state_before: case HI
α : Type u_1
r : α → α → Prop
s : Cycle α
inst✝¹ : IsTrans α r
inst✝ : IsIrrefl α r
a : α
l : List α
a✝ : Chain r ↑l → ↑l = Cycle.nil
h : Chain r ↑(a :: l)
⊢ ↑(a :: l) = Cycle.nil
state_after: case HI
α : Type u_1
r : α → α → Prop
s : Cycle α
inst✝¹ : IsTrans α r
inst✝ : IsIrrefl α r
a : α
l : List α
a✝ : Chain r ↑l → ↑l = Cycle.nil
h : Chain r ↑(a :: l)
ha : a ∈ a :: l
⊢ ↑(a :: l) = Cycle.nil

tactic: exact (irrefl_of r a <| chain_iff_pairwise.1 h a ha a ha).elim
state_before: case HI
α : Type u_1
r : α → α → Prop
s : Cycle α
inst✝¹ : IsTrans α r
inst✝ : IsIrrefl α r
a : α
l : List α
a✝ : Chain r ↑l → ↑l = Cycle.nil
h : Chain r ↑(a :: l)
ha : a ∈ a :: l
⊢ ↑(a :: l) = Cycle.nil
state_after: no goals
Theorem: UpperSemicontinuousAt.add'
File: Mathlib/Topology/Semicontinuous.lean

tactic: simp_rw [← upperSemicontinuousWithinAt_univ_iff] at *
state_before: α : Type u_1
inst✝⁴ : TopologicalSpace α
β : Type u_2
inst✝³ : Preorder β
f✝ g✝ : α → β
x : α
s t : Set α
y z : β
ι : Type u_3
γ : Type u_4
inst✝² : LinearOrderedAddCommMonoid γ
inst✝¹ : TopologicalSpace γ
inst✝ : OrderTopology γ
f g : α → γ
hf : UpperSemicontinuousAt f x
hg : UpperSemicontinuousAt g x
hcont : ContinuousAt (fun p => p.1 + p.2) (f x, g x)
⊢ UpperSemicontinuousAt (fun z => f z + g z) x
state_after: α : Type u_1
inst✝⁴ : TopologicalSpace α
β : Type u_2
inst✝³ : Preorder β
f✝ g✝ : α → β
x : α
s t : Set α
y z : β
ι : Type u_3
γ : Type u_4
inst✝² : LinearOrderedAddCommMonoid γ
inst✝¹ : TopologicalSpace γ
inst✝ : OrderTopology γ
f g : α → γ
hcont : ContinuousAt (fun p => p.1 + p.2) (f x, g x)
hf : UpperSemicontinuousWithinAt f univ x
hg : UpperSemicontinuousWithinAt g univ x
⊢ UpperSemicontinuousWithinAt (fun z => f z + g z) univ x

tactic: exact hf.add' hg hcont
state_before: α : Type u_1
inst✝⁴ : TopologicalSpace α
β : Type u_2
inst✝³ : Preorder β
f✝ g✝ : α → β
x : α
s t : Set α
y z : β
ι : Type u_3
γ : Type u_4
inst✝² : LinearOrderedAddCommMonoid γ
inst✝¹ : TopologicalSpace γ
inst✝ : OrderTopology γ
f g : α → γ
hcont : ContinuousAt (fun p => p.1 + p.2) (f x, g x)
hf : UpperSemicontinuousWithinAt f univ x
hg : UpperSemicontinuousWithinAt g univ x
⊢ UpperSemicontinuousWithinAt (fun z => f z + g z) univ x
state_after: no goals
Theorem: Set.preimage_mul_left_one'
File: Mathlib/Data/Set/Pointwise/Basic.lean

tactic: simp
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝ : Group α
s t : Set α
a b : α
⊢ (fun x => a⁻¹ * x) ⁻¹' 1 = {a}
state_after: no goals
Theorem: Fintype.linearIndependent_iff'
File: Mathlib/LinearAlgebra/LinearIndependent.lean

tactic: simp [Fintype.linearIndependent_iff, LinearMap.ker_eq_bot', funext_iff]
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✝⁸ : Semiring R
inst✝⁷ : AddCommMonoid M
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : AddCommMonoid M''
inst✝⁴ : Module R M
inst✝³ : Module R M'
inst✝² : Module R M''
a b : R
x y : M
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
⊢ LinearIndependent R v ↔ LinearMap.ker ((LinearMap.lsum R (fun x => R) ℕ) fun i => LinearMap.id.smulRight (v i)) = ⊥
state_after: no goals
Theorem: SimpleGraph.Walk.toSubgraph_cons_nil_eq_subgraphOfAdj
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: simp
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v w : V
h : G.Adj u v
⊢ (cons h nil).toSubgraph = G.subgraphOfAdj h
state_after: no goals
Theorem: AlgebraicGeometry.Scheme.Hom.app_invApp'
File: Mathlib/AlgebraicGeometry/OpenImmersion.lean

tactic: simpa [Set.image_preimage_eq_inter_range]
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : Scheme
f : X.Hom Y
H : IsOpenImmersion f
U : Opens ↑↑Y.toPresheafedSpace
hU : U ≤ f.opensRange
⊢ ↑(f ''ᵁ f ⁻¹ᵁ U) = ↑U
state_after: no goals
Theorem: eventually_nhds_iff
File: Mathlib/Topology/Basic.lean

tactic: simp only [subset_def, exists_prop, mem_setOf_eq]
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
p : X → Prop
⊢ (∃ t ⊆ {x | (fun x => p x) x}, IsOpen t ∧ x ∈ t) ↔ ∃ t, (∀ x ∈ t, p x) ∧ IsOpen t ∧ x ∈ t
state_after: no goals