1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MulRingNorm_nat_le_nat
File: Mathlib/Analysis/Normed/Ring/Seminorm.lean

tactic: induction n with
| zero => simp only [Nat.cast_zero, map_zero, le_refl]
| succ n hn =>
  simp only [Nat.cast_succ]
  calc
    f (n + 1) ≤ f (n) + f 1 := f.add_le' ↑n 1
    _ = f (n) + 1 := by rw [map_one]
    _ ≤ n + 1 := add_le_add_right hn 1
state_before: F : Type u_1
R✝ : Type u_2
S : Type u_3
x y : R✝
r : ℝ
R : Type u_4
inst✝ : Ring R
n : ℕ
f : MulRingNorm R
⊢ f ↑n ≤ ↑n
state_after: no goals

tactic: simp only [Nat.cast_zero, map_zero, le_refl]
state_before: case zero
F : Type u_1
R✝ : Type u_2
S : Type u_3
x y : R✝
r : ℝ
R : Type u_4
inst✝ : Ring R
f : MulRingNorm R
⊢ f ↑0 ≤ ↑0
state_after: no goals

tactic: simp only [Nat.cast_succ]
state_before: case succ
F : Type u_1
R✝ : Type u_2
S : Type u_3
x y : R✝
r : ℝ
R : Type u_4
inst✝ : Ring R
f : MulRingNorm R
n : ℕ
hn : f ↑n ≤ ↑n
⊢ f ↑(n + 1) ≤ ↑(n + 1)
state_after: case succ
F : Type u_1
R✝ : Type u_2
S : Type u_3
x y : R✝
r : ℝ
R : Type u_4
inst✝ : Ring R
f : MulRingNorm R
n : ℕ
hn : f ↑n ≤ ↑n
⊢ f (↑n + 1) ≤ ↑n + 1

tactic: calc
  f (n + 1) ≤ f (n) + f 1 := f.add_le' ↑n 1
  _ = f (n) + 1 := by rw [map_one]
  _ ≤ n + 1 := add_le_add_right hn 1
state_before: case succ
F : Type u_1
R✝ : Type u_2
S : Type u_3
x y : R✝
r : ℝ
R : Type u_4
inst✝ : Ring R
f : MulRingNorm R
n : ℕ
hn : f ↑n ≤ ↑n
⊢ f (↑n + 1) ≤ ↑n + 1
state_after: no goals

tactic: rw [map_one]
state_before: F : Type u_1
R✝ : Type u_2
S : Type u_3
x y : R✝
r : ℝ
R : Type u_4
inst✝ : Ring R
f : MulRingNorm R
n : ℕ
hn : f ↑n ≤ ↑n
⊢ f ↑n + f 1 = f ↑n + 1
state_after: no goals
Theorem: CategoryTheory.CostructuredArrow.mkPrecomp_id
File: Mathlib/CategoryTheory/Comma/StructuredArrow.lean

tactic: aesop_cat
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
T T' T'' : D
Y Y' Y'' : C
S S' : C ⥤ D
f : S.obj Y ⟶ T
⊢ mk (S.map (𝟙 Y) ≫ f) = mk f
state_after: no goals

tactic: aesop_cat
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
T T' T'' : D
Y Y' Y'' : C
S S' : C ⥤ D
f : S.obj Y ⟶ T
⊢ mkPrecomp f (𝟙 Y) = eqToHom ⋯
state_after: no goals
Theorem: Finset.gcd_image
File: Mathlib/Algebra/GCDMonoid/Finset.lean

tactic: classical induction' s using Finset.induction with c s _ ih <;> simp [*]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : NormalizedGCDMonoid α
s✝ s₁ s₂ : Finset β
f : β → α
inst✝ : DecidableEq β
g : γ → β
s : Finset γ
⊢ (image g s).gcd f = s.gcd (f ∘ g)
state_after: no goals

tactic: induction' s using Finset.induction with c s _ ih <;> simp [*]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : NormalizedGCDMonoid α
s✝ s₁ s₂ : Finset β
f : β → α
inst✝ : DecidableEq β
g : γ → β
s : Finset γ
⊢ (image g s).gcd f = s.gcd (f ∘ g)
state_after: no goals
Theorem: Finset.mem_upShadow_iterate_iff_exists_sdiff
File: Mathlib/Combinatorics/SetFamily/Shadow.lean

tactic: rw [mem_upShadow_iterate_iff_exists_card]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t : Finset α
a : α
k r : ℕ
⊢ t ∈ ∂⁺ ^[k] 𝒜 ↔ ∃ s ∈ 𝒜, s ⊆ t ∧ (t \ s).card = k
state_after: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t : Finset α
a : α
k r : ℕ
⊢ (∃ u, u.card = k ∧ u ⊆ t ∧ t \ u ∈ 𝒜) ↔ ∃ s ∈ 𝒜, s ⊆ t ∧ (t \ s).card = k

tactic: constructor
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t : Finset α
a : α
k r : ℕ
⊢ (∃ u, u.card = k ∧ u ⊆ t ∧ t \ u ∈ 𝒜) ↔ ∃ s ∈ 𝒜, s ⊆ t ∧ (t \ s).card = k
state_after: case mp
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t : Finset α
a : α
k r : ℕ
⊢ (∃ u, u.card = k ∧ u ⊆ t ∧ t \ u ∈ 𝒜) → ∃ s ∈ 𝒜, s ⊆ t ∧ (t \ s).card = k

case mpr
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t : Finset α
a : α
k r : ℕ
⊢ (∃ s ∈ 𝒜, s ⊆ t ∧ (t \ s).card = k) → ∃ u, u.card = k ∧ u ⊆ t ∧ t \ u ∈ 𝒜

tactic: rintro ⟨u, rfl, hut, htu⟩
state_before: case mp
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t : Finset α
a : α
k r : ℕ
⊢ (∃ u, u.card = k ∧ u ⊆ t ∧ t \ u ∈ 𝒜) → ∃ s ∈ 𝒜, s ⊆ t ∧ (t \ s).card = k
state_after: case mp.intro.intro.intro
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t : Finset α
a : α
r : ℕ
u : Finset α
hut : u ⊆ t
htu : t \ u ∈ 𝒜
⊢ ∃ s ∈ 𝒜, s ⊆ t ∧ (t \ s).card = u.card

tactic: exact ⟨_, htu, sdiff_subset, by rw [sdiff_sdiff_eq_self hut]⟩
state_before: case mp.intro.intro.intro
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t : Finset α
a : α
r : ℕ
u : Finset α
hut : u ⊆ t
htu : t \ u ∈ 𝒜
⊢ ∃ s ∈ 𝒜, s ⊆ t ∧ (t \ s).card = u.card
state_after: no goals

tactic: rw [sdiff_sdiff_eq_self hut]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t : Finset α
a : α
r : ℕ
u : Finset α
hut : u ⊆ t
htu : t \ u ∈ 𝒜
⊢ (t \ (t \ u)).card = u.card
state_after: no goals

tactic: rintro ⟨s, hs, hst, rfl⟩
state_before: case mpr
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t : Finset α
a : α
k r : ℕ
⊢ (∃ s ∈ 𝒜, s ⊆ t ∧ (t \ s).card = k) → ∃ u, u.card = k ∧ u ⊆ t ∧ t \ u ∈ 𝒜
state_after: case mpr.intro.intro.intro
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s✝ t : Finset α
a : α
r : ℕ
s : Finset α
hs : s ∈ 𝒜
hst : s ⊆ t
⊢ ∃ u, u.card = (t \ s).card ∧ u ⊆ t ∧ t \ u ∈ 𝒜

tactic: exact ⟨_, rfl, sdiff_subset, by rwa [sdiff_sdiff_eq_self hst]⟩
state_before: case mpr.intro.intro.intro
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s✝ t : Finset α
a : α
r : ℕ
s : Finset α
hs : s ∈ 𝒜
hst : s ⊆ t
⊢ ∃ u, u.card = (t \ s).card ∧ u ⊆ t ∧ t \ u ∈ 𝒜
state_after: no goals

tactic: rwa [sdiff_sdiff_eq_self hst]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s✝ t : Finset α
a : α
r : ℕ
s : Finset α
hs : s ∈ 𝒜
hst : s ⊆ t
⊢ t \ (t \ s) ∈ 𝒜
state_after: no goals
Theorem: Matrix.zpow_mul'
File: Mathlib/LinearAlgebra/Matrix/ZPow.lean

tactic: rw [mul_comm, zpow_mul _ h]
state_before: n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
h : IsUnit A.det
m n : ℤ
⊢ A ^ (m * n) = (A ^ n) ^ m
state_after: no goals
Theorem: AlgebraicTopology.DoldKan.MorphComponents.postComp_φ
File: Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean

tactic: unfold φ postComp
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X X' : SimplicialObject C
n : ℕ
Z Z' : C
f : MorphComponents X n Z
g : X' ⟶ X
h : Z ⟶ Z'
⊢ (f.postComp h).φ = f.φ ≫ h
state_after: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X X' : SimplicialObject C
n : ℕ
Z Z' : C
f : MorphComponents X n Z
g : X' ⟶ X
h : Z ⟶ Z'
⊢ PInfty.f (n + 1) ≫ { a := f.a ≫ h, b := fun i => f.b i ≫ h }.a +
      ∑ i : Fin (n + 1), (P ↑i).f (n + 1) ≫ X.δ i.rev.succ ≫ { a := f.a ≫ h, b := fun i => f.b i ≫ h }.b i.rev =
    (PInfty.f (n + 1) ≫ f.a + ∑ i : Fin (n + 1), (P ↑i).f (n + 1) ≫ X.δ i.rev.succ ≫ f.b i.rev) ≫ h

tactic: simp only [add_comp, sum_comp, assoc]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X X' : SimplicialObject C
n : ℕ
Z Z' : C
f : MorphComponents X n Z
g : X' ⟶ X
h : Z ⟶ Z'
⊢ PInfty.f (n + 1) ≫ { a := f.a ≫ h, b := fun i => f.b i ≫ h }.a +
      ∑ i : Fin (n + 1), (P ↑i).f (n + 1) ≫ X.δ i.rev.succ ≫ { a := f.a ≫ h, b := fun i => f.b i ≫ h }.b i.rev =
    (PInfty.f (n + 1) ≫ f.a + ∑ i : Fin (n + 1), (P ↑i).f (n + 1) ≫ X.δ i.rev.succ ≫ f.b i.rev) ≫ h
state_after: no goals
Theorem: CategoryTheory.Iso.hom_eq_inv
File: Mathlib/CategoryTheory/Iso.lean

tactic: erw [inv_eq_inv α.symm β, eq_comm]
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y Z : C
α : X ≅ Y
β : Y ≅ X
⊢ α.hom = β.inv ↔ β.hom = α.inv
state_after: C : Type u
inst✝ : Category.{v, u} C
X Y Z : C
α : X ≅ Y
β : Y ≅ X
⊢ β.hom = α.symm.hom ↔ β.hom = α.inv

tactic: rfl
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y Z : C
α : X ≅ Y
β : Y ≅ X
⊢ β.hom = α.symm.hom ↔ β.hom = α.inv
state_after: no goals
Theorem: isCongruenceSubgroup_trans
File: Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean

tactic: obtain ⟨N, hN⟩ := h2
state_before: N : ℕ
H K : Subgroup SL(2, ℤ)
h : H ≤ K
h2 : IsCongruenceSubgroup H
⊢ IsCongruenceSubgroup K
state_after: case intro
N✝ : ℕ
H K : Subgroup SL(2, ℤ)
h : H ≤ K
N : ℕ+
hN : Gamma ↑N ≤ H
⊢ IsCongruenceSubgroup K

tactic: exact ⟨N, le_trans hN h⟩
state_before: case intro
N✝ : ℕ
H K : Subgroup SL(2, ℤ)
h : H ≤ K
N : ℕ+
hN : Gamma ↑N ≤ H
⊢ IsCongruenceSubgroup K
state_after: no goals
Theorem: ENNReal.mul_inv_cancel
File: Mathlib/Data/ENNReal/Inv.lean

tactic: lift a to ℝ≥0 using ht
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
h0 : a ≠ 0
ht : a ≠ ⊤
⊢ a * a⁻¹ = 1
state_after: case intro
b c d : ℝ≥0∞
r p q a : ℝ≥0
h0 : ↑a ≠ 0
⊢ ↑a * (↑a)⁻¹ = 1

tactic: norm_cast at h0
state_before: case intro
b c d : ℝ≥0∞
r p q a : ℝ≥0
h0 : ↑a ≠ 0
⊢ ↑a * (↑a)⁻¹ = 1
state_after: case intro
b c d : ℝ≥0∞
r p q a : ℝ≥0
h0 : ¬a = 0
⊢ ↑a * (↑a)⁻¹ = 1

tactic: norm_cast
state_before: case intro
b c d : ℝ≥0∞
r p q a : ℝ≥0
h0 : ¬a = 0
⊢ ↑a * (↑a)⁻¹ = 1
state_after: case intro
b c d : ℝ≥0∞
r p q a : ℝ≥0
h0 : ¬a = 0
⊢ a * a⁻¹ = 1

tactic: exact mul_inv_cancel h0
state_before: case intro
b c d : ℝ≥0∞
r p q a : ℝ≥0
h0 : ¬a = 0
⊢ a * a⁻¹ = 1
state_after: no goals
Theorem: MonoidHom.mker_inr
File: Mathlib/Algebra/Group/Submonoid/Operations.lean

tactic: ext x
state_before: M : Type u_1
N : Type u_2
P : Type u_3
inst✝⁴ : MulOneClass M
inst✝³ : MulOneClass N
inst✝² : MulOneClass P
S : Submonoid M
A : Type u_4
inst✝¹ : SetLike A M
hA : SubmonoidClass A M
S' : A
F : Type u_5
inst✝ : FunLike F M N
mc : MonoidHomClass F M N
⊢ mker (inr M N) = ⊥
state_after: case h
M : Type u_1
N : Type u_2
P : Type u_3
inst✝⁴ : MulOneClass M
inst✝³ : MulOneClass N
inst✝² : MulOneClass P
S : Submonoid M
A : Type u_4
inst✝¹ : SetLike A M
hA : SubmonoidClass A M
S' : A
F : Type u_5
inst✝ : FunLike F M N
mc : MonoidHomClass F M N
x : N
⊢ x ∈ mker (inr M N) ↔ x ∈ ⊥

tactic: simp [mem_mker]
state_before: case h
M : Type u_1
N : Type u_2
P : Type u_3
inst✝⁴ : MulOneClass M
inst✝³ : MulOneClass N
inst✝² : MulOneClass P
S : Submonoid M
A : Type u_4
inst✝¹ : SetLike A M
hA : SubmonoidClass A M
S' : A
F : Type u_5
inst✝ : FunLike F M N
mc : MonoidHomClass F M N
x : N
⊢ x ∈ mker (inr M N) ↔ x ∈ ⊥
state_after: no goals
Theorem: Filter.lift'_closure_eq_bot
File: Mathlib/Topology/Basic.lean

tactic: rw [lift'_bot (monotone_closure _), closure_empty, principal_empty]
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
l : Filter X
h : l = ⊥
⊢ ⊥.lift' closure = ⊥
state_after: no goals
Theorem: List.inits_eq_tails
File: Mathlib/Data/List/Infix.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
l l₁ l₂ l₃ : List α
a b : α
m n : ℕ
⊢ [].inits = (map reverse [].reverse.tails).reverse
state_after: no goals

tactic: simp [inits_eq_tails l, map_inj_left, ← map_reverse]
state_before: α : Type u_1
β : Type u_2
l✝ l₁ l₂ l₃ : List α
a✝ b : α
m n : ℕ
a : α
l : List α
⊢ (a :: l).inits = (map reverse (a :: l).reverse.tails).reverse
state_after: no goals
Theorem: Set.einfsep_insert_le
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: simp_rw [le_iInf_iff]
state_before: α : Type u_1
β : Type u_2
inst✝ : EDist α
x y : α
s t : Set α
⊢ (insert x s).einfsep ≤ ⨅ y ∈ s, ⨅ (_ : x ≠ y), edist x y
state_after: α : Type u_1
β : Type u_2
inst✝ : EDist α
x y : α
s t : Set α
⊢ ∀ i ∈ s, x ≠ i → (insert x s).einfsep ≤ edist x i

tactic: exact fun _ hy hxy => einfsep_le_edist_of_mem (mem_insert _ _) (mem_insert_of_mem _ hy) hxy
state_before: α : Type u_1
β : Type u_2
inst✝ : EDist α
x y : α
s t : Set α
⊢ ∀ i ∈ s, x ≠ i → (insert x s).einfsep ≤ edist x i
state_after: no goals
Theorem: ProbabilityTheory.kernel.setLIntegral_compProd_univ_right
File: Mathlib/Probability/Kernel/Composition.lean

tactic: simp_rw [setLIntegral_compProd κ η a hf hs MeasurableSet.univ, Measure.restrict_univ]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
s✝ : Set (β × γ)
κ : ↥(kernel α β)
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) γ)
inst✝ : IsSFiniteKernel η
a : α
f : β × γ → ℝ≥0∞
hf : Measurable f
s : Set β
hs : MeasurableSet s
⊢ ∫⁻ (z : β × γ) in s ×ˢ Set.univ, f z ∂(κ ⊗ₖ η) a = ∫⁻ (x : β) in s, ∫⁻ (y : γ), f (x, y) ∂η (a, x) ∂κ a
state_after: no goals
Theorem: Real.iInter_Iic_rat
File: Mathlib/Data/Real/Archimedean.lean

tactic: exact iInter_Iic_eq_empty_iff.mpr not_bddBelow_coe
state_before: ⊢ ⋂ r, Iic ↑r = ∅
state_after: no goals
Theorem: MeasureTheory.TendstoInMeasure.aemeasurable
File: Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean

tactic: obtain ⟨ns, hns⟩ := h_tendsto.exists_seq_tendsto_ae'
state_before: α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝⁴ : MeasurableSpace E
inst✝³ : NormedAddCommGroup E
inst✝² : BorelSpace E
u : Filter ι
inst✝¹ : u.NeBot
inst✝ : u.IsCountablyGenerated
f : ι → α → E
g : α → E
hf : ∀ (n : ι), AEMeasurable (f n) μ
h_tendsto : TendstoInMeasure μ f u g
⊢ AEMeasurable g μ
state_after: case intro
α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝⁴ : MeasurableSpace E
inst✝³ : NormedAddCommGroup E
inst✝² : BorelSpace E
u : Filter ι
inst✝¹ : u.NeBot
inst✝ : u.IsCountablyGenerated
f : ι → α → E
g : α → E
hf : ∀ (n : ι), AEMeasurable (f n) μ
h_tendsto : TendstoInMeasure μ f u g
ns : ℕ → ι
hns : ∀ᵐ (x : α) ∂μ, Tendsto (fun i => f (ns i) x) atTop (𝓝 (g x))
⊢ AEMeasurable g μ

tactic: exact aemeasurable_of_tendsto_metrizable_ae atTop (fun n => hf (ns n)) hns
state_before: case intro
α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝⁴ : MeasurableSpace E
inst✝³ : NormedAddCommGroup E
inst✝² : BorelSpace E
u : Filter ι
inst✝¹ : u.NeBot
inst✝ : u.IsCountablyGenerated
f : ι → α → E
g : α → E
hf : ∀ (n : ι), AEMeasurable (f n) μ
h_tendsto : TendstoInMeasure μ f u g
ns : ℕ → ι
hns : ∀ᵐ (x : α) ∂μ, Tendsto (fun i => f (ns i) x) atTop (𝓝 (g x))
⊢ AEMeasurable g μ
state_after: no goals
Theorem: PowerSeries.isUnit_divided_by_X_pow_order
File: Mathlib/RingTheory/PowerSeries/Inverse.lean

tactic: simp only [Unit_of_divided_by_X_pow_order, dif_neg hf, Units.val_mk]
state_before: R : Type u_1
k : Type u_2
inst✝ : Field k
f : k⟦X⟧
hf : f ≠ 0
⊢ ↑f.Unit_of_divided_by_X_pow_order = divided_by_X_pow_order hf
state_after: no goals
Theorem: SimpleGraph.bot_strongly_regular
File: Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean

tactic: simp only [card_eq_zero, Fintype.card_ofFinset, forall_true_left, not_false_iff, bot_adj]
state_before: V : Type u
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n k ℓ μ : ℕ
v w : V
_h : v ≠ w
⊢ (fun v w => ¬⊥.Adj v w → Fintype.card ↑(⊥.commonNeighbors v w) = 0) v w
state_after: V : Type u
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n k ℓ μ : ℕ
v w : V
_h : v ≠ w
⊢ filter (fun x => x ∈ ⊥.commonNeighbors v w) univ = ∅

tactic: ext
state_before: V : Type u
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n k ℓ μ : ℕ
v w : V
_h : v ≠ w
⊢ filter (fun x => x ∈ ⊥.commonNeighbors v w) univ = ∅
state_after: case a
V : Type u
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n k ℓ μ : ℕ
v w : V
_h : v ≠ w
a✝ : V
⊢ a✝ ∈ filter (fun x => x ∈ ⊥.commonNeighbors v w) univ ↔ a✝ ∈ ∅

tactic: simp [mem_commonNeighbors]
state_before: case a
V : Type u
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n k ℓ μ : ℕ
v w : V
_h : v ≠ w
a✝ : V
⊢ a✝ ∈ filter (fun x => x ∈ ⊥.commonNeighbors v w) univ ↔ a✝ ∈ ∅
state_after: no goals
Theorem: Orientation.neg_rotation_neg_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean

tactic: rw [neg_rotation, ← Real.Angle.coe_add, neg_div, ← sub_eq_add_neg, sub_half]
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x : V
⊢ -(o.rotation ↑(-π / 2)) x = (o.rotation ↑(π / 2)) x
state_after: no goals
Theorem: Valued.hasBasis_uniformity
File: Mathlib/Topology/Algebra/Valuation.lean

tactic: rw [uniformity_eq_comap_nhds_zero]
state_before: R : Type u
inst✝¹ : Ring R
Γ₀ : Type v
inst✝ : LinearOrderedCommGroupWithZero Γ₀
_i : Valued R Γ₀
⊢ (uniformity R).HasBasis (fun x => True) fun γ => {p | v (p.2 - p.1) < ↑γ}
state_after: R : Type u
inst✝¹ : Ring R
Γ₀ : Type v
inst✝ : LinearOrderedCommGroupWithZero Γ₀
_i : Valued R Γ₀
⊢ (Filter.comap (fun x => x.2 - x.1) (𝓝 0)).HasBasis (fun x => True) fun γ => {p | v (p.2 - p.1) < ↑γ}

tactic: exact (hasBasis_nhds_zero R Γ₀).comap _
state_before: R : Type u
inst✝¹ : Ring R
Γ₀ : Type v
inst✝ : LinearOrderedCommGroupWithZero Γ₀
_i : Valued R Γ₀
⊢ (Filter.comap (fun x => x.2 - x.1) (𝓝 0)).HasBasis (fun x => True) fun γ => {p | v (p.2 - p.1) < ↑γ}
state_after: no goals
Theorem: Homotopy.nullHomotopicMap_f_of_not_rel_right
File: Mathlib/Algebra/Homology/Homotopy.lean

tactic: dsimp only [nullHomotopicMap]
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h k : D ⟶ E
i k₁ k₀ : ι
r₁₀ : c.Rel k₁ k₀
hk₁ : ∀ (l : ι), ¬c.Rel l k₁
hom : (i j : ι) → C.X i ⟶ D.X j
⊢ (nullHomotopicMap hom).f k₁ = C.d k₁ k₀ ≫ hom k₀ k₁
state_after: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h k : D ⟶ E
i k₁ k₀ : ι
r₁₀ : c.Rel k₁ k₀
hk₁ : ∀ (l : ι), ¬c.Rel l k₁
hom : (i j : ι) → C.X i ⟶ D.X j
⊢ (dNext k₁) hom + (prevD k₁) hom = C.d k₁ k₀ ≫ hom k₀ k₁

tactic: rw [dNext_eq hom r₁₀, prevD, AddMonoidHom.mk'_apply, D.shape, comp_zero, add_zero]
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h k : D ⟶ E
i k₁ k₀ : ι
r₁₀ : c.Rel k₁ k₀
hk₁ : ∀ (l : ι), ¬c.Rel l k₁
hom : (i j : ι) → C.X i ⟶ D.X j
⊢ (dNext k₁) hom + (prevD k₁) hom = C.d k₁ k₀ ≫ hom k₀ k₁
state_after: case a
ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h k : D ⟶ E
i k₁ k₀ : ι
r₁₀ : c.Rel k₁ k₀
hk₁ : ∀ (l : ι), ¬c.Rel l k₁
hom : (i j : ι) → C.X i ⟶ D.X j
⊢ ¬c.Rel (c.prev k₁) k₁

tactic: exact hk₁ _
state_before: case a
ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h k : D ⟶ E
i k₁ k₀ : ι
r₁₀ : c.Rel k₁ k₀
hk₁ : ∀ (l : ι), ¬c.Rel l k₁
hom : (i j : ι) → C.X i ⟶ D.X j
⊢ ¬c.Rel (c.prev k₁) k₁
state_after: no goals
Theorem: StieltjesFunction.iInf_Ioi_eq
File: Mathlib/MeasureTheory/Measure/Stieltjes.lean

tactic: suffices Function.rightLim f x = ⨅ r : Ioi x, f r by rw [← this, f.rightLim_eq]
state_before: f✝ f : StieltjesFunction
x : ℝ
⊢ ⨅ r, ↑f ↑r = ↑f x
state_after: f✝ f : StieltjesFunction
x : ℝ
⊢ rightLim (↑f) x = ⨅ r, ↑f ↑r

tactic: rw [f.mono.rightLim_eq_sInf, sInf_image']
state_before: f✝ f : StieltjesFunction
x : ℝ
⊢ rightLim (↑f) x = ⨅ r, ↑f ↑r
state_after: f✝ f : StieltjesFunction
x : ℝ
⊢ 𝓝[>] x ≠ ⊥

tactic: rw [← neBot_iff]
state_before: f✝ f : StieltjesFunction
x : ℝ
⊢ 𝓝[>] x ≠ ⊥
state_after: f✝ f : StieltjesFunction
x : ℝ
⊢ (𝓝[>] x).NeBot

tactic: infer_instance
state_before: f✝ f : StieltjesFunction
x : ℝ
⊢ (𝓝[>] x).NeBot
state_after: no goals

tactic: rw [← this, f.rightLim_eq]
state_before: f✝ f : StieltjesFunction
x : ℝ
this : rightLim (↑f) x = ⨅ r, ↑f ↑r
⊢ ⨅ r, ↑f ↑r = ↑f x
state_after: no goals
Theorem: LinearMap.toMatrix_mulVec_repr
File: Mathlib/LinearAlgebra/Matrix/ToLin.lean

tactic: ext i
state_before: R : Type u_1
inst✝⁷ : CommSemiring R
l : Type u_2
m : Type u_3
n : Type u_4
inst✝⁶ : Fintype n
inst✝⁵ : Finite m
inst✝⁴ : DecidableEq n
M₁ : Type u_5
M₂ : Type u_6
inst✝³ : AddCommMonoid M₁
inst✝² : AddCommMonoid M₂
inst✝¹ : Module R M₁
inst✝ : Module R M₂
v₁ : Basis n R M₁
v₂ : Basis m R M₂
f : M₁ →ₗ[R] M₂
x : M₁
⊢ (toMatrix v₁ v₂) f *ᵥ ⇑(v₁.repr x) = ⇑(v₂.repr (f x))
state_after: case h
R : Type u_1
inst✝⁷ : CommSemiring R
l : Type u_2
m : Type u_3
n : Type u_4
inst✝⁶ : Fintype n
inst✝⁵ : Finite m
inst✝⁴ : DecidableEq n
M₁ : Type u_5
M₂ : Type u_6
inst✝³ : AddCommMonoid M₁
inst✝² : AddCommMonoid M₂
inst✝¹ : Module R M₁
inst✝ : Module R M₂
v₁ : Basis n R M₁
v₂ : Basis m R M₂
f : M₁ →ₗ[R] M₂
x : M₁
i : m
⊢ ((toMatrix v₁ v₂) f *ᵥ ⇑(v₁.repr x)) i = (v₂.repr (f x)) i

tactic: rw [← Matrix.toLin'_apply, LinearMap.toMatrix, LinearEquiv.trans_apply, Matrix.toLin'_toMatrix',
  LinearEquiv.arrowCongr_apply, v₂.equivFun_apply]
state_before: case h
R : Type u_1
inst✝⁷ : CommSemiring R
l : Type u_2
m : Type u_3
n : Type u_4
inst✝⁶ : Fintype n
inst✝⁵ : Finite m
inst✝⁴ : DecidableEq n
M₁ : Type u_5
M₂ : Type u_6
inst✝³ : AddCommMonoid M₁
inst✝² : AddCommMonoid M₂
inst✝¹ : Module R M₁
inst✝ : Module R M₂
v₁ : Basis n R M₁
v₂ : Basis m R M₂
f : M₁ →ₗ[R] M₂
x : M₁
i : m
⊢ ((toMatrix v₁ v₂) f *ᵥ ⇑(v₁.repr x)) i = (v₂.repr (f x)) i
state_after: case h
R : Type u_1
inst✝⁷ : CommSemiring R
l : Type u_2
m : Type u_3
n : Type u_4
inst✝⁶ : Fintype n
inst✝⁵ : Finite m
inst✝⁴ : DecidableEq n
M₁ : Type u_5
M₂ : Type u_6
inst✝³ : AddCommMonoid M₁
inst✝² : AddCommMonoid M₂
inst✝¹ : Module R M₁
inst✝ : Module R M₂
v₁ : Basis n R M₁
v₂ : Basis m R M₂
f : M₁ →ₗ[R] M₂
x : M₁
i : m
⊢ (v₂.repr (f (v₁.equivFun.symm ⇑(v₁.repr x)))) i = (v₂.repr (f x)) i

tactic: congr
state_before: case h
R : Type u_1
inst✝⁷ : CommSemiring R
l : Type u_2
m : Type u_3
n : Type u_4
inst✝⁶ : Fintype n
inst✝⁵ : Finite m
inst✝⁴ : DecidableEq n
M₁ : Type u_5
M₂ : Type u_6
inst✝³ : AddCommMonoid M₁
inst✝² : AddCommMonoid M₂
inst✝¹ : Module R M₁
inst✝ : Module R M₂
v₁ : Basis n R M₁
v₂ : Basis m R M₂
f : M₁ →ₗ[R] M₂
x : M₁
i : m
⊢ (v₂.repr (f (v₁.equivFun.symm ⇑(v₁.repr x)))) i = (v₂.repr (f x)) i
state_after: case h.e_a.h.e_6.h.h.e_6.h
R : Type u_1
inst✝⁷ : CommSemiring R
l : Type u_2
m : Type u_3
n : Type u_4
inst✝⁶ : Fintype n
inst✝⁵ : Finite m
inst✝⁴ : DecidableEq n
M₁ : Type u_5
M₂ : Type u_6
inst✝³ : AddCommMonoid M₁
inst✝² : AddCommMonoid M₂
inst✝¹ : Module R M₁
inst✝ : Module R M₂
v₁ : Basis n R M₁
v₂ : Basis m R M₂
f : M₁ →ₗ[R] M₂
x : M₁
i : m
⊢ v₁.equivFun.symm ⇑(v₁.repr x) = x

tactic: exact v₁.equivFun.symm_apply_apply x
state_before: case h.e_a.h.e_6.h.h.e_6.h
R : Type u_1
inst✝⁷ : CommSemiring R
l : Type u_2
m : Type u_3
n : Type u_4
inst✝⁶ : Fintype n
inst✝⁵ : Finite m
inst✝⁴ : DecidableEq n
M₁ : Type u_5
M₂ : Type u_6
inst✝³ : AddCommMonoid M₁
inst✝² : AddCommMonoid M₂
inst✝¹ : Module R M₁
inst✝ : Module R M₂
v₁ : Basis n R M₁
v₂ : Basis m R M₂
f : M₁ →ₗ[R] M₂
x : M₁
i : m
⊢ v₁.equivFun.symm ⇑(v₁.repr x) = x
state_after: no goals
Theorem: Polynomial.eval_ofNat
File: Mathlib/Algebra/Polynomial/Eval.lean

tactic: simp only [OfNat.ofNat, eval_natCast]
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
n : ℕ
inst✝ : n.AtLeastTwo
a : R
⊢ eval a (OfNat.ofNat n) = OfNat.ofNat n
state_after: no goals