1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: eventually_nhdsWithin_nhdsWithin
File: Mathlib/Topology/ContinuousOn.lean

tactic: refine ⟨fun h => ?_, fun h => (eventually_nhds_nhdsWithin.2 h).filter_mono inf_le_left⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : TopologicalSpace α
a : α
s : Set α
p : α → Prop
⊢ (∀ᶠ (y : α) in 𝓝[s] a, ∀ᶠ (x : α) in 𝓝[s] y, p x) ↔ ∀ᶠ (x : α) in 𝓝[s] a, p x
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : TopologicalSpace α
a : α
s : Set α
p : α → Prop
h : ∀ᶠ (y : α) in 𝓝[s] a, ∀ᶠ (x : α) in 𝓝[s] y, p x
⊢ ∀ᶠ (x : α) in 𝓝[s] a, p x

tactic: simp only [eventually_nhdsWithin_iff] at h ⊢
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : TopologicalSpace α
a : α
s : Set α
p : α → Prop
h : ∀ᶠ (y : α) in 𝓝[s] a, ∀ᶠ (x : α) in 𝓝[s] y, p x
⊢ ∀ᶠ (x : α) in 𝓝[s] a, p x
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : TopologicalSpace α
a : α
s : Set α
p : α → Prop
h : ∀ᶠ (x : α) in 𝓝 a, x ∈ s → ∀ᶠ (x : α) in 𝓝 x, x ∈ s → p x
⊢ ∀ᶠ (x : α) in 𝓝 a, x ∈ s → p x

tactic: exact h.mono fun x hx hxs => (hx hxs).self_of_nhds hxs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : TopologicalSpace α
a : α
s : Set α
p : α → Prop
h : ∀ᶠ (x : α) in 𝓝 a, x ∈ s → ∀ᶠ (x : α) in 𝓝 x, x ∈ s → p x
⊢ ∀ᶠ (x : α) in 𝓝 a, x ∈ s → p x
state_after: no goals
Theorem: Batteries.UnionFind.lt_rank_root
File: .lake/packages/batteries/Batteries/Data/UnionFind/Basic.lean

tactic: refine ⟨fun h h' => Nat.ne_of_lt h (by rw [rootD_eq_self.2 h']), fun h => ?_⟩
state_before: self : UnionFind
x : Nat
⊢ self.rank x < self.rank (self.rootD x) ↔ self.parent x ≠ x
state_after: self : UnionFind
x : Nat
h : self.parent x ≠ x
⊢ self.rank x < self.rank (self.rootD x)

tactic: rw [← rootD_parent]
state_before: self : UnionFind
x : Nat
h : self.parent x ≠ x
⊢ self.rank x < self.rank (self.rootD x)
state_after: self : UnionFind
x : Nat
h : self.parent x ≠ x
⊢ self.rank x < self.rank (self.rootD (self.parent x))

tactic: exact Nat.lt_of_lt_of_le (self.rank_lt h) le_rank_root
state_before: self : UnionFind
x : Nat
h : self.parent x ≠ x
⊢ self.rank x < self.rank (self.rootD (self.parent x))
state_after: no goals

tactic: rw [rootD_eq_self.2 h']
state_before: self : UnionFind
x : Nat
h : self.rank x < self.rank (self.rootD x)
h' : self.parent x = x
⊢ self.rank x = self.rank (self.rootD x)
state_after: no goals
Theorem: HomologicalComplex₂.ιTotal_totalFlipIso_f_hom
File: Mathlib/Algebra/Homology/TotalComplexSymmetry.lean

tactic: rw [← ComplexShape.π_symm c₁ c₂ c i₁ i₂, h]
state_before: C : Type u_1
I₁ : Type u_2
I₂ : Type u_3
J : Type u_4
inst✝⁷ : Category.{?u.37016, u_1} C
inst✝⁶ : Preadditive C
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
K : HomologicalComplex₂ C c₁ c₂
c : ComplexShape J
inst✝⁵ : TotalComplexShape c₁ c₂ c
inst✝⁴ : TotalComplexShape c₂ c₁ c
inst✝³ : TotalComplexShapeSymmetry c₁ c₂ c
inst✝² : K.HasTotal c
inst✝¹ : K.flip.HasTotal c
inst✝ : DecidableEq J
i₁ : I₁
i₂ : I₂
j : J
h : c₂.π c₁ c (i₂, i₁) = j
⊢ c₁.π c₂ c (i₁, i₂) = j
state_after: no goals

tactic: simp [totalFlipIso, totalFlipIsoX]
state_before: C : Type u_1
I₁ : Type u_2
I₂ : Type u_3
J : Type u_4
inst✝⁷ : Category.{u_5, u_1} C
inst✝⁶ : Preadditive C
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
K : HomologicalComplex₂ C c₁ c₂
c : ComplexShape J
inst✝⁵ : TotalComplexShape c₁ c₂ c
inst✝⁴ : TotalComplexShape c₂ c₁ c
inst✝³ : TotalComplexShapeSymmetry c₁ c₂ c
inst✝² : K.HasTotal c
inst✝¹ : K.flip.HasTotal c
inst✝ : DecidableEq J
i₁ : I₁
i₂ : I₂
j : J
h : c₂.π c₁ c (i₂, i₁) = j
⊢ K.flip.ιTotal c i₂ i₁ j h ≫ (K.totalFlipIso c).hom.f j = c₁.σ c₂ c i₁ i₂ • K.ιTotal c i₁ i₂ j ⋯
state_after: no goals
Theorem: CategoryTheory.Biprod.inr_ofComponents
File: Mathlib/CategoryTheory/Preadditive/Biproducts.lean

tactic: simp [Biprod.ofComponents]
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X₁ X₂ Y₁ Y₂ : C
f₁₁ : X₁ ⟶ Y₁
f₁₂ : X₁ ⟶ Y₂
f₂₁ : X₂ ⟶ Y₁
f₂₂ : X₂ ⟶ Y₂
⊢ biprod.inr ≫ ofComponents f₁₁ f₁₂ f₂₁ f₂₂ = f₂₁ ≫ biprod.inl + f₂₂ ≫ biprod.inr
state_after: no goals
Theorem: ProbabilityTheory.condexp_ae_eq_integral_condexpKernel
File: Mathlib/Probability/Kernel/Condexp.lean

tactic: rw [inf_of_le_left hm]
state_before: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝⁵ : StandardBorelSpace Ω
inst✝⁴ : Nonempty Ω
μ : Measure Ω
inst✝³ : IsFiniteMeasure μ
inst✝² : NormedAddCommGroup F
f : Ω → F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
hm : m ≤ mΩ
hf_int : Integrable f μ
⊢ μ[f|m ⊓ mΩ] =ᶠ[ae μ] μ[f|m]
state_after: no goals
Theorem: ContinuousMap.nhds_compactOpen_eq_iInf_nhds_induced
File: Mathlib/Topology/CompactOpen.lean

tactic: simp only [nhds_iInf, nhds_induced]
state_before: α : Type u_1
X : Type u_2
Y : Type u_3
Z : Type u_4
T : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace T
K : Set X
U : Set Y
f : C(X, Y)
⊢ 𝓝 f = ⨅ s, ⨅ (_ : IsCompact s), comap (restrict s) (𝓝 (restrict s f))
state_after: no goals
Theorem: CategoryTheory.Bicategory.leftUnitor_comp
File: Mathlib/CategoryTheory/Bicategory/Basic.lean

tactic: simp
state_before: B : Type u
inst✝ : Bicategory B
a b c d e : B
f : a ⟶ b
g : b ⟶ c
⊢ (λ_ (f ≫ g)).hom = (α_ (𝟙 a) f g).inv ≫ (λ_ f).hom ▷ g
state_after: no goals
Theorem: Rel.interedges_biUnion_right
File: Mathlib/Combinatorics/SimpleGraph/Density.lean

tactic: ext a
state_before: 𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝² : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset α
t : Finset ι
f : ι → Finset β
⊢ interedges r s (t.biUnion f) = t.biUnion fun b => interedges r s (f b)
state_after: case a
𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝² : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a✝ : α
b : β
δ : 𝕜
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset α
t : Finset ι
f : ι → Finset β
a : α × β
⊢ a ∈ interedges r s (t.biUnion f) ↔ a ∈ t.biUnion fun b => interedges r s (f b)

tactic: simp only [mem_interedges_iff, mem_biUnion]
state_before: case a
𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝² : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a✝ : α
b : β
δ : 𝕜
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset α
t : Finset ι
f : ι → Finset β
a : α × β
⊢ a ∈ interedges r s (t.biUnion f) ↔ a ∈ t.biUnion fun b => interedges r s (f b)
state_after: case a
𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝² : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a✝ : α
b : β
δ : 𝕜
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset α
t : Finset ι
f : ι → Finset β
a : α × β
⊢ a.1 ∈ s ∧ (∃ a_1 ∈ t, a.2 ∈ f a_1) ∧ r a.1 a.2 ↔ ∃ a_1 ∈ t, a.1 ∈ s ∧ a.2 ∈ f a_1 ∧ r a.1 a.2

tactic: exact ⟨fun ⟨x₁, ⟨x₂, x₃, x₄⟩, x₅⟩ ↦ ⟨x₂, x₃, x₁, x₄, x₅⟩,
  fun ⟨x₂, x₃, x₁, x₄, x₅⟩ ↦ ⟨x₁, ⟨x₂, x₃, x₄⟩, x₅⟩⟩
state_before: case a
𝕜 : Type u_1
ι : Type u_2
κ : Type u_3
α : Type u_4
β : Type u_5
inst✝³ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝² : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a✝ : α
b : β
δ : 𝕜
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset α
t : Finset ι
f : ι → Finset β
a : α × β
⊢ a.1 ∈ s ∧ (∃ a_1 ∈ t, a.2 ∈ f a_1) ∧ r a.1 a.2 ↔ ∃ a_1 ∈ t, a.1 ∈ s ∧ a.2 ∈ f a_1 ∧ r a.1 a.2
state_after: no goals
Theorem: card_commutatorSet_closureCommutatorRepresentatives
File: Mathlib/GroupTheory/Abelianization.lean

tactic: rw [← image_commutatorSet_closureCommutatorRepresentatives G]
state_before: G : Type u
inst✝ : Group G
⊢ Nat.card ↑(commutatorSet ↥(closureCommutatorRepresentatives G)) = Nat.card ↑(commutatorSet G)
state_after: G : Type u
inst✝ : Group G
⊢ Nat.card ↑(commutatorSet ↥(closureCommutatorRepresentatives G)) =
    Nat.card ↑(⇑(closureCommutatorRepresentatives G).subtype '' commutatorSet ↥(closureCommutatorRepresentatives G))

tactic: exact Nat.card_congr (Equiv.Set.image _ _ (subtype_injective _))
state_before: G : Type u
inst✝ : Group G
⊢ Nat.card ↑(commutatorSet ↥(closureCommutatorRepresentatives G)) =
    Nat.card ↑(⇑(closureCommutatorRepresentatives G).subtype '' commutatorSet ↥(closureCommutatorRepresentatives G))
state_after: no goals
Theorem: Orientation.rotation_map_complex
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean

tactic: rw [← Complex.rotation, ← hf, o.rotation_map, LinearIsometryEquiv.symm_apply_apply]
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)
θ : Real.Angle
f : V ≃ₗᵢ[ℝ] ℂ
hf : (map (Fin 2) f.toLinearEquiv) o = Complex.orientation
x : V
⊢ f ((o.rotation θ) x) = ↑θ.expMapCircle * f x
state_after: no goals
Theorem: irrational_sqrt_ratCast_iff_of_nonneg
File: Mathlib/Data/Real/Irrational.lean

tactic: refine Iff.not (?_ : Exists _ ↔ Exists _)
state_before: q : ℚ
hq : 0 ≤ q
⊢ Irrational √↑q ↔ ¬IsSquare q
state_after: q : ℚ
hq : 0 ≤ q
⊢ (∃ y, ↑y = √↑q) ↔ ∃ r, q = r * r

tactic: constructor
state_before: q : ℚ
hq : 0 ≤ q
⊢ (∃ y, ↑y = √↑q) ↔ ∃ r, q = r * r
state_after: case mp
q : ℚ
hq : 0 ≤ q
⊢ (∃ y, ↑y = √↑q) → ∃ r, q = r * r

case mpr
q : ℚ
hq : 0 ≤ q
⊢ (∃ r, q = r * r) → ∃ y, ↑y = √↑q

tactic: rintro ⟨y, hy⟩
state_before: case mp
q : ℚ
hq : 0 ≤ q
⊢ (∃ y, ↑y = √↑q) → ∃ r, q = r * r
state_after: case mp.intro
q : ℚ
hq : 0 ≤ q
y : ℚ
hy : ↑y = √↑q
⊢ ∃ r, q = r * r

tactic: refine ⟨y, Rat.cast_injective (α := ℝ) ?_⟩
state_before: case mp.intro
q : ℚ
hq : 0 ≤ q
y : ℚ
hy : ↑y = √↑q
⊢ ∃ r, q = r * r
state_after: case mp.intro
q : ℚ
hq : 0 ≤ q
y : ℚ
hy : ↑y = √↑q
⊢ ↑q = ↑(y * y)

tactic: rw [Rat.cast_mul, hy, mul_self_sqrt (Rat.cast_nonneg.2 hq)]
state_before: case mp.intro
q : ℚ
hq : 0 ≤ q
y : ℚ
hy : ↑y = √↑q
⊢ ↑q = ↑(y * y)
state_after: no goals

tactic: rintro ⟨q', rfl⟩
state_before: case mpr
q : ℚ
hq : 0 ≤ q
⊢ (∃ r, q = r * r) → ∃ y, ↑y = √↑q
state_after: case mpr.intro
q' : ℚ
hq : 0 ≤ q' * q'
⊢ ∃ y, ↑y = √↑(q' * q')

tactic: exact ⟨|q'|, mod_cast (sqrt_mul_self_eq_abs q').symm⟩
state_before: case mpr.intro
q' : ℚ
hq : 0 ≤ q' * q'
⊢ ∃ y, ↑y = √↑(q' * q')
state_after: no goals
Theorem: isSigmaCompact_iUnion_of_isCompact
File: Mathlib/Topology/Compactness/SigmaCompact.lean

tactic: rcases isEmpty_or_nonempty ι
state_before: X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
hι : Countable ι
s : ι → Set X
hcomp : ∀ (i : ι), IsCompact (s i)
⊢ IsSigmaCompact (⋃ i, s i)
state_after: case inl
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
hι : Countable ι
s : ι → Set X
hcomp : ∀ (i : ι), IsCompact (s i)
h✝ : IsEmpty ι
⊢ IsSigmaCompact (⋃ i, s i)

case inr
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
hι : Countable ι
s : ι → Set X
hcomp : ∀ (i : ι), IsCompact (s i)
h✝ : Nonempty ι
⊢ IsSigmaCompact (⋃ i, s i)

tactic: simp only [iUnion_of_empty, isSigmaCompact_empty]
state_before: case inl
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
hι : Countable ι
s : ι → Set X
hcomp : ∀ (i : ι), IsCompact (s i)
h✝ : IsEmpty ι
⊢ IsSigmaCompact (⋃ i, s i)
state_after: no goals

tactic: obtain ⟨f, hf⟩ := countable_iff_exists_surjective.mp hι
state_before: case inr
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
hι : Countable ι
s : ι → Set X
hcomp : ∀ (i : ι), IsCompact (s i)
h✝ : Nonempty ι
⊢ IsSigmaCompact (⋃ i, s i)
state_after: case inr.intro
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
hι : Countable ι
s : ι → Set X
hcomp : ∀ (i : ι), IsCompact (s i)
h✝ : Nonempty ι
f : ℕ → ι
hf : Function.Surjective f
⊢ IsSigmaCompact (⋃ i, s i)

tactic: exact ⟨s ∘ f, fun n ↦ hcomp (f n), Function.Surjective.iUnion_comp hf _⟩
state_before: case inr.intro
X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t : Set X
hι : Countable ι
s : ι → Set X
hcomp : ∀ (i : ι), IsCompact (s i)
h✝ : Nonempty ι
f : ℕ → ι
hf : Function.Surjective f
⊢ IsSigmaCompact (⋃ i, s i)
state_after: no goals
Theorem: Finset.exists_ne_one_of_prod_ne_one
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: classical
  rw [← prod_filter_ne_one] at h
  rcases nonempty_of_prod_ne_one h with ⟨x, hx⟩
  exact ⟨x, (mem_filter.1 hx).1, by simpa using (mem_filter.1 hx).2⟩
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : CommMonoid β
h : ∏ x ∈ s, f x ≠ 1
⊢ ∃ a ∈ s, f a ≠ 1
state_after: no goals

tactic: rw [← prod_filter_ne_one] at h
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : CommMonoid β
h : ∏ x ∈ s, f x ≠ 1
⊢ ∃ a ∈ s, f a ≠ 1
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : CommMonoid β
h : ∏ x ∈ filter (fun x => f x ≠ 1) s, f x ≠ 1
⊢ ∃ a ∈ s, f a ≠ 1

tactic: rcases nonempty_of_prod_ne_one h with ⟨x, hx⟩
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : CommMonoid β
h : ∏ x ∈ filter (fun x => f x ≠ 1) s, f x ≠ 1
⊢ ∃ a ∈ s, f a ≠ 1
state_after: case intro
ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : CommMonoid β
h : ∏ x ∈ filter (fun x => f x ≠ 1) s, f x ≠ 1
x : α
hx : x ∈ filter (fun x => f x ≠ 1) s
⊢ ∃ a ∈ s, f a ≠ 1

tactic: exact ⟨x, (mem_filter.1 hx).1, by simpa using (mem_filter.1 hx).2⟩
state_before: case intro
ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : CommMonoid β
h : ∏ x ∈ filter (fun x => f x ≠ 1) s, f x ≠ 1
x : α
hx : x ∈ filter (fun x => f x ≠ 1) s
⊢ ∃ a ∈ s, f a ≠ 1
state_after: no goals

tactic: simpa using (mem_filter.1 hx).2
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : CommMonoid β
h : ∏ x ∈ filter (fun x => f x ≠ 1) s, f x ≠ 1
x : α
hx : x ∈ filter (fun x => f x ≠ 1) s
⊢ f x ≠ 1
state_after: no goals
Theorem: WellFounded.fixF_eq_fixFC
File: .lake/packages/batteries/Batteries/WF.lean

tactic: funext α r C F x a
state_before: ⊢ @fixF = @WellFounded.fixFC
state_after: case h.h.h.h.h.h
α : Sort u_1
r : α → α → Prop
C : α → Sort u_2
F : (x : α) → ((y : α) → r y x → C y) → C x
x : α
a : Acc r x
⊢ fixF F x a = WellFounded.fixFC F x a

tactic: rw [fixF, Acc.rec_eq_recC, fixFC]
state_before: case h.h.h.h.h.h
α : Sort u_1
r : α → α → Prop
C : α → Sort u_2
F : (x : α) → ((y : α) → r y x → C y) → C x
x : α
a : Acc r x
⊢ fixF F x a = WellFounded.fixFC F x a
state_after: no goals
Theorem: LieAlgebra.engel_isBot_of_isMin.lieCharpoly_natDegree
File: Mathlib/Algebra/Lie/CartanExists.lean

tactic: rw [lieCharpoly, (polyCharpoly_monic _ _).natDegree_map, polyCharpoly_natDegree]
state_before: K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝¹⁴ : Field K
inst✝¹³ : CommRing R
inst✝¹² : Nontrivial R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra K L
inst✝⁹ : LieAlgebra R L
inst✝⁸ : AddCommGroup M
inst✝⁷ : Module R M
inst✝⁶ : LieRingModule L M
inst✝⁵ : LieModule R L M
inst✝⁴ : Module.Finite K L
inst✝³ : Module.Finite R L
inst✝² : Module.Free R L
inst✝¹ : Module.Finite R M
inst✝ : Module.Free R M
x y : L
⊢ (LieAlgebra.engel_isBot_of_isMin.lieCharpoly R M x y).natDegree = finrank R M
state_after: no goals
Theorem: Turing.proj_map_nth
File: Mathlib/Computability/TuringMachine.lean

tactic: rw [ListBlank.nth_map]
state_before: ι : Type u_1
Γ : ι → Type u_2
inst✝ : (i : ι) → Inhabited (Γ i)
i : ι
L : ListBlank ((i : ι) → Γ i)
n : ℕ
⊢ (ListBlank.map (proj i) L).nth n = L.nth n i
state_after: ι : Type u_1
Γ : ι → Type u_2
inst✝ : (i : ι) → Inhabited (Γ i)
i : ι
L : ListBlank ((i : ι) → Γ i)
n : ℕ
⊢ (proj i).f (L.nth n) = L.nth n i

tactic: rfl
state_before: ι : Type u_1
Γ : ι → Type u_2
inst✝ : (i : ι) → Inhabited (Γ i)
i : ι
L : ListBlank ((i : ι) → Γ i)
n : ℕ
⊢ (proj i).f (L.nth n) = L.nth n i
state_after: no goals
Theorem: Matrix.det_le
File: Mathlib/LinearAlgebra/Matrix/AbsoluteValue.lean

tactic: rw [abv.map_units_int_smul, abv.map_prod]
state_before: R : Type u_1
S : Type u_2
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : LinearOrderedCommRing S
n : Type u_3
inst✝¹ : Fintype n
inst✝ : DecidableEq n
A : Matrix n n R
abv : AbsoluteValue R S
x : S
hx : ∀ (i j : n), abv (A i j) ≤ x
σ : Perm n
x✝ : σ ∈ univ
⊢ abv (Perm.sign σ • ∏ i : n, A (σ i) i) = ∏ i : n, abv (A (σ i) i)
state_after: no goals

tactic: rw [prod_const, Finset.card_univ]
state_before: R : Type u_1
S : Type u_2
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : LinearOrderedCommRing S
n : Type u_3
inst✝¹ : Fintype n
inst✝ : DecidableEq n
A : Matrix n n R
abv : AbsoluteValue R S
x : S
hx : ∀ (i j : n), abv (A i j) ≤ x
x✝¹ : Perm n
x✝ : x✝¹ ∈ univ
⊢ ∏ _i : n, x = x ^ Fintype.card n
state_after: no goals

tactic: rw [sum_const, Finset.card_univ, Fintype.card_perm]
state_before: R : Type u_1
S : Type u_2
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : LinearOrderedCommRing S
n : Type u_3
inst✝¹ : Fintype n
inst✝ : DecidableEq n
A : Matrix n n R
abv : AbsoluteValue R S
x : S
hx : ∀ (i j : n), abv (A i j) ≤ x
⊢ ∑ _σ : Perm n, x ^ Fintype.card n = (Fintype.card n).factorial • x ^ Fintype.card n
state_after: no goals
Theorem: Nat.binomial_one
File: Mathlib/Data/Nat/Choose/Multinomial.lean

tactic: simp [multinomial_insert_one (Finset.not_mem_singleton.mpr h) h₁]
state_before: α : Type u_1
s : Finset α
f : α → ℕ
a b : α
n : ℕ
inst✝ : DecidableEq α
h : a ≠ b
h₁ : f a = 1
⊢ multinomial {a, b} f = (f b).succ
state_after: no goals
Theorem: Filter.limsup_eq_iInf_iSup_of_nat'
File: Mathlib/Order/LiminfLimsup.lean

tactic: simp only [limsup_eq_iInf_iSup_of_nat, iSup_ge_eq_iSup_nat_add]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteLattice α
u : ℕ → α
⊢ limsup u atTop = ⨅ n, ⨆ i, u (i + n)
state_after: no goals
Theorem: PowerBasis.adjoin_eq_top_of_gen_mem_adjoin
File: Mathlib/RingTheory/PowerBasis.lean

tactic: rw [_root_.eq_top_iff, ← B.adjoin_gen_eq_top]
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁷ : CommRing R
inst✝⁶ : Ring S
inst✝⁵ : Algebra R S
A : Type u_4
B✝ : Type u_5
inst✝⁴ : CommRing A
inst✝³ : CommRing B✝
inst✝² : IsDomain B✝
inst✝¹ : Algebra A B✝
K : Type u_6
inst✝ : Field K
B : PowerBasis R S
x : S
hx : B.gen ∈ adjoin R {x}
⊢ adjoin R {x} = ⊤
state_after: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁷ : CommRing R
inst✝⁶ : Ring S
inst✝⁵ : Algebra R S
A : Type u_4
B✝ : Type u_5
inst✝⁴ : CommRing A
inst✝³ : CommRing B✝
inst✝² : IsDomain B✝
inst✝¹ : Algebra A B✝
K : Type u_6
inst✝ : Field K
B : PowerBasis R S
x : S
hx : B.gen ∈ adjoin R {x}
⊢ adjoin R {B.gen} ≤ adjoin R {x}

tactic: refine adjoin_le ?_
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁷ : CommRing R
inst✝⁶ : Ring S
inst✝⁵ : Algebra R S
A : Type u_4
B✝ : Type u_5
inst✝⁴ : CommRing A
inst✝³ : CommRing B✝
inst✝² : IsDomain B✝
inst✝¹ : Algebra A B✝
K : Type u_6
inst✝ : Field K
B : PowerBasis R S
x : S
hx : B.gen ∈ adjoin R {x}
⊢ adjoin R {B.gen} ≤ adjoin R {x}
state_after: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁷ : CommRing R
inst✝⁶ : Ring S
inst✝⁵ : Algebra R S
A : Type u_4
B✝ : Type u_5
inst✝⁴ : CommRing A
inst✝³ : CommRing B✝
inst✝² : IsDomain B✝
inst✝¹ : Algebra A B✝
K : Type u_6
inst✝ : Field K
B : PowerBasis R S
x : S
hx : B.gen ∈ adjoin R {x}
⊢ {B.gen} ⊆ ↑(adjoin R {x})

tactic: simp [hx]
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁷ : CommRing R
inst✝⁶ : Ring S
inst✝⁵ : Algebra R S
A : Type u_4
B✝ : Type u_5
inst✝⁴ : CommRing A
inst✝³ : CommRing B✝
inst✝² : IsDomain B✝
inst✝¹ : Algebra A B✝
K : Type u_6
inst✝ : Field K
B : PowerBasis R S
x : S
hx : B.gen ∈ adjoin R {x}
⊢ {B.gen} ⊆ ↑(adjoin R {x})
state_after: no goals
Theorem: MulChar.ne_one_iff
File: Mathlib/NumberTheory/MulChar/Basic.lean

tactic: simp only [Ne, eq_one_iff, not_forall]
state_before: R : Type u_1
inst✝¹ : CommMonoid R
R' : Type u_2
inst✝ : CommMonoidWithZero R'
χ : MulChar R R'
⊢ χ ≠ 1 ↔ ∃ a, χ ↑a ≠ 1
state_after: no goals
Theorem: Multiset.covBy_iff
File: Mathlib/Data/Finset/Grade.lean

tactic: rintro ⟨a, rfl⟩
state_before: α : Type u_1
s t : Multiset α
a : α
⊢ (∃ a, a ::ₘ s = t) → s ⋖ t
state_after: case intro
α : Type u_1
s : Multiset α
a✝ a : α
⊢ s ⋖ a ::ₘ s

tactic: exact covBy_cons _ _
state_before: case intro
α : Type u_1
s : Multiset α
a✝ a : α
⊢ s ⋖ a ::ₘ s
state_after: no goals
Theorem: isClosedMap_const
File: Mathlib/Topology/Separation.lean

tactic: simp_rw [const, h2s.image_const, isClosed_singleton]
state_before: X✝ : Type u_1
Y✝ : Type u_2
inst✝³ : TopologicalSpace X✝
X : Type u_3
Y : Type u_4
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : T1Space Y
y : Y
s : Set X
x✝ : IsClosed s
h2s : s.Nonempty
⊢ IsClosed (const X y '' s)
state_after: no goals
Theorem: EuclideanGeometry.dist_smul_vadd_sq
File: Mathlib/Geometry/Euclidean/Basic.lean

tactic: rw [dist_eq_norm_vsub V _ p₂, ← real_inner_self_eq_norm_mul_norm, vadd_vsub_assoc,
  real_inner_add_add_self, real_inner_smul_left, real_inner_smul_left, real_inner_smul_right]
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
r : ℝ
v : V
p₁ p₂ : P
⊢ dist (r • v +ᵥ p₁) p₂ * dist (r • v +ᵥ p₁) p₂ = ⟪v, v⟫_ℝ * r * r + 2 * ⟪v, p₁ -ᵥ p₂⟫_ℝ * r + ⟪p₁ -ᵥ p₂, p₁ -ᵥ p₂⟫_ℝ
state_after: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
r : ℝ
v : V
p₁ p₂ : P
⊢ r * (r * ⟪v, v⟫_ℝ) + 2 * (r * ⟪v, p₁ -ᵥ p₂⟫_ℝ) + ⟪p₁ -ᵥ p₂, p₁ -ᵥ p₂⟫_ℝ =
    ⟪v, v⟫_ℝ * r * r + 2 * ⟪v, p₁ -ᵥ p₂⟫_ℝ * r + ⟪p₁ -ᵥ p₂, p₁ -ᵥ p₂⟫_ℝ

tactic: ring
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
r : ℝ
v : V
p₁ p₂ : P
⊢ r * (r * ⟪v, v⟫_ℝ) + 2 * (r * ⟪v, p₁ -ᵥ p₂⟫_ℝ) + ⟪p₁ -ᵥ p₂, p₁ -ᵥ p₂⟫_ℝ =
    ⟪v, v⟫_ℝ * r * r + 2 * ⟪v, p₁ -ᵥ p₂⟫_ℝ * r + ⟪p₁ -ᵥ p₂, p₁ -ᵥ p₂⟫_ℝ
state_after: no goals
Theorem: List.pmap_eq_pmapImpl
File: .lake/packages/batteries/Batteries/Data/List/Init/Attach.lean

tactic: funext α β p f L h'
state_before: ⊢ @pmap = @List.pmapImpl
state_after: case h.h.h.h.h.h
α : Type u_2
β : Type u_1
p : α → Prop
f : (a : α) → p a → β
L : List α
h' : ∀ (a : α), a ∈ L → p a
⊢ pmap f L h' = List.pmapImpl f L h'

tactic: exact go L h'
state_before: case h.h.h.h.h.h
α : Type u_2
β : Type u_1
p : α → Prop
f : (a : α) → p a → β
L : List α
h' : ∀ (a : α), a ∈ L → p a
⊢ pmap f L h' = List.pmapImpl f L h'
state_after: no goals
Theorem: Rat.cast_nonneg
File: Mathlib/Data/Rat/Cast/Order.lean

tactic: norm_cast
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
p q : ℚ
K : Type u_5
inst✝ : LinearOrderedField K
⊢ 0 ≤ ↑q ↔ 0 ≤ q
state_after: no goals
Theorem: Polynomial.C_mul_dvd
File: Mathlib/Algebra/Polynomial/FieldDivision.lean

tactic: rw [mul_assoc, mul_left_comm p, ← mul_assoc, ← C.map_mul, _root_.mul_inv_cancel ha, C.map_one,
  one_mul, hr]
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p q : R[X]
ha : a ≠ 0
x✝ : p ∣ q
r : R[X]
hr : q = p * r
⊢ q = C a * p * (C a⁻¹ * r)
state_after: no goals
Theorem: Real.cos_sq_add_sin_sq
File: Mathlib/Data/Complex/Exponential.lean

tactic: rw [add_comm, sin_sq_add_cos_sq]
state_before: x y : ℝ
⊢ cos x ^ 2 + sin x ^ 2 = 1
state_after: no goals