tasksource/leandojo huggingface dataset:
Theorem: Ideal.adic_module_basis
File: Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean

tactic: simp
state_before: R : Type u_1
inst✝² : CommRing R
I : Ideal R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
m : M
i : ℕ
⊢ ↑(I ^ i • ⊤) = ↑((fun i => toAddSubgroup (I ^ i • ⊤)) i)

tactic: replace a_in : a ∈ I ^ i := by simpa [(I ^ i).mul_top] using a_in
state_before: R : Type u_1
inst✝² : CommRing R
I : Ideal R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
m : M
i : ℕ
a : R
a_in : a ∈ ↑(I ^ i • ⊤)
⊢ a ∈ (fun x => x • m) ⁻¹' ↑(I ^ i • ⊤)

tactic: exact smul_mem_smul a_in mem_top
state_before: R : Type u_1
inst✝² : CommRing R
I : Ideal R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
m : M
i : ℕ
a : R
a_in : a ∈ I ^ i
⊢ a ∈ (fun x => x • m) ⁻¹' ↑(I ^ i • ⊤)

tactic: simpa [(I ^ i).mul_top] using a_in
state_before: R : Type u_1
inst✝² : CommRing R
I : Ideal R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
m : M
i : ℕ
a : R
a_in : a ∈ ↑(I ^ i • ⊤)
⊢ a ∈ I ^ i
Theorem: Polynomial.iterate_derivative_X_pow_eq_smul
File: Mathlib/Data/Polynomial/Derivative.lean

tactic: rw [iterate_derivative_X_pow_eq_C_mul n k, smul_eq_C_mul]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n✝ : ℕ
inst✝ : CommSemiring R
n k : ℕ
⊢ (↑derivative^[k]) (X ^ n) = ↑(Nat.descFactorial n k) • X ^ (n - k)
Theorem: Complex.cos_surjective
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean

tactic: intro x
state_before: ⊢ Function.Surjective cos

tactic: obtain ⟨w, w₀, hw⟩ : ∃ (w : _) (_ : w ≠ 0), 1 * w * w + -2 * x * w + 1 = 0 := by
  rcases exists_quadratic_eq_zero one_ne_zero
      ⟨_, (cpow_nat_inv_pow _ two_ne_zero).symm.trans <| pow_two _⟩ with
    ⟨w, hw⟩
  refine' ⟨w, _, hw⟩
  rintro rfl
  simp only [zero_add, one_ne_zero, MulZeroClass.mul_zero] at hw
state_before: x : ℂ
⊢ ∃ a, cos a = x

tactic: refine' ⟨log w / I, cos_eq_iff_quadratic.2 _⟩
state_before: case intro.intro
x w : ℂ
w₀ : w ≠ 0
hw : 1 * w * w + -2 * x * w + 1 = 0
⊢ ∃ a, cos a = x

tactic: rw [div_mul_cancel _ I_ne_zero, exp_log w₀]
state_before: case intro.intro
x w : ℂ
w₀ : w ≠ 0
hw : 1 * w * w + -2 * x * w + 1 = 0
⊢ exp (log w / I * I) ^ 2 - 2 * x * exp (log w / I * I) + 1 = 0

tactic: convert hw using 1
state_before: case intro.intro
x w : ℂ
w₀ : w ≠ 0
hw : 1 * w * w + -2 * x * w + 1 = 0
⊢ w ^ 2 - 2 * x * w + 1 = 0

tactic: ring
state_before: case h.e'_2
x w : ℂ
w₀ : w ≠ 0
hw : 1 * w * w + -2 * x * w + 1 = 0
⊢ w ^ 2 - 2 * x * w + 1 = 1 * w * w + -2 * x * w + 1

tactic: rcases exists_quadratic_eq_zero one_ne_zero
    ⟨_, (cpow_nat_inv_pow _ two_ne_zero).symm.trans <| pow_two _⟩ with
  ⟨w, hw⟩
state_before: x : ℂ
⊢ ∃ w x_1, 1 * w * w + -2 * x * w + 1 = 0

tactic: refine' ⟨w, _, hw⟩
state_before: case intro
x w : ℂ
hw : 1 * w * w + ?m.62077 * w + ?m.62078 = 0
⊢ ∃ w x_1, 1 * w * w + -2 * x * w + 1 = 0

tactic: rintro rfl
state_before: case intro
x w : ℂ
hw : 1 * w * w + -2 * x * w + 1 = 0
⊢ w ≠ 0

tactic: simp only [zero_add, one_ne_zero, MulZeroClass.mul_zero] at hw
state_before: case intro
x : ℂ
hw : 1 * 0 * 0 + -2 * x * 0 + 1 = 0
⊢ False
Theorem: Subalgebra.isClosed_topologicalClosure
File: Mathlib/Topology/Algebra/Algebra.lean

tactic: convert @isClosed_closure A _ s
state_before: R : Type u_1
inst✝⁴ : CommSemiring R
A : Type u
inst✝³ : TopologicalSpace A
inst✝² : Semiring A
inst✝¹ : Algebra R A
inst✝ : TopologicalSemiring A
s : Subalgebra R A
⊢ IsClosed ↑(topologicalClosure s)
Theorem: Polynomial.leadingCoeff_monic_mul
File: Mathlib/Data/Polynomial/Degree/Definitions.lean

tactic: rcases eq_or_ne q 0 with (rfl | H)
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ q✝ : R[X]
ι : Type ?u.691467
p q : R[X]
hp : Monic p
⊢ leadingCoeff (p * q) = leadingCoeff q

tactic: simp
state_before: case inl
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ q : R[X]
ι : Type ?u.691467
p : R[X]
hp : Monic p
⊢ leadingCoeff (p * 0) = leadingCoeff 0

tactic: rw [leadingCoeff_mul', hp.leadingCoeff, one_mul]
state_before: case inr
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ q✝ : R[X]
ι : Type ?u.691467
p q : R[X]
hp : Monic p
H : q ≠ 0
⊢ leadingCoeff (p * q) = leadingCoeff q

tactic: rwa [hp.leadingCoeff, one_mul, Ne.def, leadingCoeff_eq_zero]
state_before: case inr
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ q✝ : R[X]
ι : Type ?u.691467
p q : R[X]
hp : Monic p
H : q ≠ 0
⊢ leadingCoeff p * leadingCoeff q ≠ 0
Theorem: Polynomial.abs_tendsto_atTop
File: Mathlib/Analysis/SpecialFunctions/Polynomials.lean

tactic: cases' le_total 0 P.leadingCoeff with hP hP
state_before: 𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
hdeg : 0 < degree P
⊢ Tendsto (fun x => abs (eval x P)) atTop atTop

tactic: exact tendsto_abs_atTop_atTop.comp (P.tendsto_atTop_of_leadingCoeff_nonneg hdeg hP)
state_before: case inl
𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
hdeg : 0 < degree P
hP : 0 ≤ leadingCoeff P
⊢ Tendsto (fun x => abs (eval x P)) atTop atTop

tactic: exact tendsto_abs_atBot_atTop.comp (P.tendsto_atBot_of_leadingCoeff_nonpos hdeg hP)
state_before: case inr
𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
hdeg : 0 < degree P
hP : leadingCoeff P ≤ 0
⊢ Tendsto (fun x => abs (eval x P)) atTop atTop
Theorem: CategoryTheory.Sheaf.sheaf_for_finestTopology
File: Mathlib/CategoryTheory/Sites/Canonical.lean

tactic: simpa using hS _ ⟨⟨_, _, ⟨_, h, rfl⟩, rfl⟩, rfl⟩ _ (𝟙 _)
state_before: C : Type u
inst✝ : Category C
P : Cᵒᵖ ⥤ Type v
X✝ Y : C
S✝ : Sieve X✝
R : Presieve X✝
J J₂ : GrothendieckTopology C
Ps : Set (Cᵒᵖ ⥤ Type v)
h : P ∈ Ps
X : C
S : Sieve X
hS : S ∈ GrothendieckTopology.sieves (finestTopology Ps) X
⊢ Presieve.IsSheafFor P S.arrows
Theorem: ENNReal.iUnion_Ico_coe_nat
File: Mathlib/Data/Real/ENNReal.lean

tactic: simp only [← Ici_inter_Iio, ← inter_iUnion, iUnion_Iio_coe_nat, diff_eq]
state_before: α : Type ?u.136095
β : Type ?u.136098
a b c d : ℝ≥0∞
r p q : ℝ≥0
⊢ (⋃ (n : ℕ), Ico a ↑n) = Ici a \ {⊤}
Theorem: LieIdeal.comap_incl_self
File: Mathlib/Algebra/Lie/Submodule.lean

tactic: ext
state_before: R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J : LieIdeal R L'
⊢ comap (incl I) I = ⊤

tactic: simp
state_before: case h
R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J : LieIdeal R L'
m✝ : { x // x ∈ ↑I }
⊢ m✝ ∈ comap (incl I) I ↔ m✝ ∈ ⊤
Theorem: insert_endpoints_openSegment
File: Mathlib/Analysis/Convex/Segment.lean

tactic: simp only [subset_antisymm_iff, insert_subset, left_mem_segment, right_mem_segment,
  openSegment_subset_segment, true_and_iff]
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.40657
G : Type ?u.40660
ι : Type ?u.40663
π : ι → Type ?u.40668
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : Module 𝕜 E
s : Set E
x✝ y✝ z x y : E
⊢ insert x (insert y (openSegment 𝕜 x y)) = [x-[𝕜]y]

tactic: rintro z ⟨a, b, ha, hb, hab, rfl⟩
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.40657
G : Type ?u.40660
ι : Type ?u.40663
π : ι → Type ?u.40668
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : Module 𝕜 E
s : Set E
x✝ y✝ z x y : E
⊢ [x-[𝕜]y] ⊆ insert x (insert y (openSegment 𝕜 x y))

tactic: refine' hb.eq_or_gt.imp _ fun hb' => ha.eq_or_gt.imp _ fun ha' => _
state_before: case intro.intro.intro.intro.intro
𝕜 : Type u_2
E : Type u_1
F : Type ?u.40657
G : Type ?u.40660
ι : Type ?u.40663
π : ι → Type ?u.40668
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : Module 𝕜 E
s : Set E
x✝ y✝ z x y : E
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ a • x + b • y ∈ insert x (insert y (openSegment 𝕜 x y))

tactic: rintro rfl
state_before: case intro.intro.intro.intro.intro.refine'_1
𝕜 : Type u_2
E : Type u_1
F : Type ?u.40657
G : Type ?u.40660
ι : Type ?u.40663
π : ι → Type ?u.40668
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : Module 𝕜 E
s : Set E
x✝ y✝ z x y : E
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ b = 0 → a • x + b • y = x

tactic: rw [← add_zero a, hab, one_smul, zero_smul, add_zero]
state_before: case intro.intro.intro.intro.intro.refine'_1
𝕜 : Type u_2
E : Type u_1
F : Type ?u.40657
G : Type ?u.40660
ι : Type ?u.40663
π : ι → Type ?u.40668
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : Module 𝕜 E
s : Set E
x✝ y✝ z x y : E
a : 𝕜
ha : 0 ≤ a
hb : 0 ≤ 0
hab : a + 0 = 1
⊢ a • x + 0 • y = x

tactic: rintro rfl
state_before: case intro.intro.intro.intro.intro.refine'_2
𝕜 : Type u_2
E : Type u_1
F : Type ?u.40657
G : Type ?u.40660
ι : Type ?u.40663
π : ι → Type ?u.40668
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : Module 𝕜 E
s : Set E
x✝ y✝ z x y : E
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
hb' : 0 < b
⊢ a = 0 → a • x + b • y = y

tactic: rw [← zero_add b, hab, one_smul, zero_smul, zero_add]
state_before: case intro.intro.intro.intro.intro.refine'_2
𝕜 : Type u_2
E : Type u_1
F : Type ?u.40657
G : Type ?u.40660
ι : Type ?u.40663
π : ι → Type ?u.40668
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : Module 𝕜 E
s : Set E
x✝ y✝ z x y : E
b : 𝕜
hb : 0 ≤ b
hb' : 0 < b
ha : 0 ≤ 0
hab : 0 + b = 1
⊢ 0 • x + b • y = y

tactic: exact ⟨a, b, ha', hb', hab, rfl⟩
state_before: case intro.intro.intro.intro.intro.refine'_3
𝕜 : Type u_2
E : Type u_1
F : Type ?u.40657
G : Type ?u.40660
ι : Type ?u.40663
π : ι → Type ?u.40668
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : Module 𝕜 E
s : Set E
x✝ y✝ z x y : E
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
hb' : 0 < b
ha' : 0 < a
⊢ a • x + b • y ∈ openSegment 𝕜 x y
Theorem: isLocallyHomeomorph_iff_isLocallyHomeomorphOn_univ
File: Mathlib/Topology/IsLocallyHomeomorph.lean

tactic: simp only [IsLocallyHomeomorph, IsLocallyHomeomorphOn, Set.mem_univ, forall_true_left]
state_before: X : Type u_1
Y : Type u_2
Z : Type ?u.3146
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
g : Y → Z
f : X → Y
s : Set X
t : Set Y
⊢ IsLocallyHomeomorph f ↔ IsLocallyHomeomorphOn f Set.univ
Theorem: MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant
File: Mathlib/MeasureTheory/Group/Measure.lean

tactic: rw [← hU.interior_eq] at h'U
state_before: 𝕜 : Type ?u.535820
G : Type u_1
H : Type ?u.535826
inst✝⁶ : MeasurableSpace G
inst✝⁵ : MeasurableSpace H
inst✝⁴ : TopologicalSpace G
inst✝³ : BorelSpace G
μ : Measure G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : IsMulLeftInvariant μ
U : Set G
hU : IsOpen U
h'U : Set.Nonempty U
h : ↑↑μ U ≠ ⊤
K : Set G
hK : IsCompact K
⊢ ↑↑μ K < ⊤

tactic: obtain ⟨t, hKt⟩ : ∃ t : Finset G, K ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h : G => g * h) ⁻¹' U :=
  compact_covered_by_mul_left_translates hK h'U
state_before: 𝕜 : Type ?u.535820
G : Type u_1
H : Type ?u.535826
inst✝⁶ : MeasurableSpace G
inst✝⁵ : MeasurableSpace H
inst✝⁴ : TopologicalSpace G
inst✝³ : BorelSpace G
μ : Measure G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : IsMulLeftInvariant μ
U : Set G
hU : IsOpen U
h'U : Set.Nonempty (interior U)
h : ↑↑μ U ≠ ⊤
K : Set G
hK : IsCompact K
⊢ ↑↑μ K < ⊤

tactic: calc
  μ K ≤ μ (⋃ (g : G) (_ : g ∈ t), (fun h : G => g * h) ⁻¹' U) := measure_mono hKt
  _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := (measure_biUnion_finset_le _ _)
  _ = Finset.card t * μ U := by simp only [measure_preimage_mul, Finset.sum_const, nsmul_eq_mul]
  _ < ∞ := ENNReal.mul_lt_top (ENNReal.nat_ne_top _) h
state_before: case intro
𝕜 : Type ?u.535820
G : Type u_1
H : Type ?u.535826
inst✝⁶ : MeasurableSpace G
inst✝⁵ : MeasurableSpace H
inst✝⁴ : TopologicalSpace G
inst✝³ : BorelSpace G
μ : Measure G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : IsMulLeftInvariant μ
U : Set G
hU : IsOpen U
h'U : Set.Nonempty (interior U)
h : ↑↑μ U ≠ ⊤
K : Set G
hK : IsCompact K
t : Finset G
hKt : K ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' U
⊢ ↑↑μ K < ⊤

tactic: simp only [measure_preimage_mul, Finset.sum_const, nsmul_eq_mul]
state_before: 𝕜 : Type ?u.535820
G : Type u_1
H : Type ?u.535826
inst✝⁶ : MeasurableSpace G
inst✝⁵ : MeasurableSpace H
inst✝⁴ : TopologicalSpace G
inst✝³ : BorelSpace G
μ : Measure G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : IsMulLeftInvariant μ
U : Set G
hU : IsOpen U
h'U : Set.Nonempty (interior U)
h : ↑↑μ U ≠ ⊤
K : Set G
hK : IsCompact K
t : Finset G
hKt : K ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' U
⊢ ∑ g in t, ↑↑μ ((fun h => g * h) ⁻¹' U) = ↑(Finset.card t) * ↑↑μ U
Theorem: CategoryTheory.Limits.prod.diag_map_fst_snd_comp
File: Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean

tactic: simp
state_before: C : Type u
inst✝¹ : Category C
X✝ Y✝ : C
inst✝ : HasLimitsOfShape (Discrete WalkingPair) C
X X' Y Y' : C
g : X ⟶ Y
g' : X' ⟶ Y'
⊢ diag (X ⨯ X') ≫ map (fst ≫ g) (snd ≫ g') = map g g'
Theorem: Fin.cons_self_tail
File: Mathlib/Data/Fin/Tuple/Basic.lean

tactic: ext j
state_before: m n : ℕ
α : Fin (n + 1) → Type u
x : α 0
q : (i : Fin (n + 1)) → α i
p : (i : Fin n) → α (succ i)
i : Fin n
y : α (succ i)
z : α 0
⊢ cons (q 0) (tail q) = q

tactic: by_cases h : j = 0
state_before: case h
m n : ℕ
α : Fin (n + 1) → Type u
x : α 0
q : (i : Fin (n + 1)) → α i
p : (i : Fin n) → α (succ i)
i : Fin n
y : α (succ i)
z : α 0
j : Fin (n + 1)
⊢ cons (q 0) (tail q) j = q j

tactic: rw [h]
state_before: case pos
m n : ℕ
α : Fin (n + 1) → Type u
x : α 0
q : (i : Fin (n + 1)) → α i
p : (i : Fin n) → α (succ i)
i : Fin n
y : α (succ i)
z : α 0
j : Fin (n + 1)
h : j = 0
⊢ cons (q 0) (tail q) j = q j

tactic: simp
state_before: case pos
m n : ℕ
α : Fin (n + 1) → Type u
x : α 0
q : (i : Fin (n + 1)) → α i
p : (i : Fin n) → α (succ i)
i : Fin n
y : α (succ i)
z : α 0
j : Fin (n + 1)
h : j = 0
⊢ cons (q 0) (tail q) 0 = q 0

tactic: let j' := pred j h
state_before: case neg
m n : ℕ
α : Fin (n + 1) → Type u
x : α 0
q : (i : Fin (n + 1)) → α i
p : (i : Fin n) → α (succ i)
i : Fin n
y : α (succ i)
z : α 0
j : Fin (n + 1)
h : ¬j = 0
⊢ cons (q 0) (tail q) j = q j

tactic: have : j'.succ = j := succ_pred j h
state_before: case neg
m n : ℕ
α : Fin (n + 1) → Type u
x : α 0
q : (i : Fin (n + 1)) → α i
p : (i : Fin n) → α (succ i)
i : Fin n
y : α (succ i)
z : α 0
j : Fin (n + 1)
h : ¬j = 0
j' : Fin n := pred j h
⊢ cons (q 0) (tail q) j = q j

tactic: rw [← this]
state_before: case neg
m n : ℕ
α : Fin (n + 1) → Type u
x : α 0
q : (i : Fin (n + 1)) → α i
p : (i : Fin n) → α (succ i)
i : Fin n
y : α (succ i)
z : α 0
j : Fin (n + 1)
h : ¬j = 0
j' : Fin n := pred j h
this : succ j' = j
⊢ cons (q 0) (tail q) j = q j

tactic: unfold tail
state_before: case neg
m n : ℕ
α : Fin (n + 1) → Type u
x : α 0
q : (i : Fin (n + 1)) → α i
p : (i : Fin n) → α (succ i)
i : Fin n
y : α (succ i)
z : α 0
j : Fin (n + 1)
h : ¬j = 0
j' : Fin n := pred j h
this : succ j' = j
⊢ cons (q 0) (tail q) (succ j') = q (succ j')

tactic: rw [cons_succ]
state_before: case neg
m n : ℕ
α : Fin (n + 1) → Type u
x : α 0
q : (i : Fin (n + 1)) → α i
p : (i : Fin n) → α (succ i)
i : Fin n
y : α (succ i)
z : α 0
j : Fin (n + 1)
h : ¬j = 0
j' : Fin n := pred j h
this : succ j' = j
⊢ cons (q 0) (fun i => q (succ i)) (succ j') = q (succ j')
Theorem: iteratedDerivWithin_eq_equiv_comp
File: Mathlib/Analysis/Calculus/IteratedDeriv.lean

tactic: ext x
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type ?u.5253
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x : 𝕜
⊢ iteratedDerivWithin n f s =
    ↑(LinearIsometryEquiv.symm (ContinuousMultilinearMap.piFieldEquiv 𝕜 (Fin n) F)) ∘ iteratedFDerivWithin 𝕜 n f s

tactic: rfl
state_before: case h
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type ?u.5253
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x✝ x : 𝕜
⊢ iteratedDerivWithin n f s x =
    (↑(LinearIsometryEquiv.symm (ContinuousMultilinearMap.piFieldEquiv 𝕜 (Fin n) F)) ∘ iteratedFDerivWithin 𝕜 n f s) x
Theorem: SimpleGraph.Subgraph.IsSpanning.card_verts
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: simp only [isSpanning_iff.1 h, Set.toFinset_univ]
state_before: ι : Sort ?u.199392
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : Subgraph G
a b : V
inst✝¹ : Fintype V
G' : Subgraph G
inst✝ : Fintype ↑G'.verts
h : IsSpanning G'
⊢ Finset.card (Set.toFinset G'.verts) = Fintype.card V

tactic: congr
state_before: ι : Sort ?u.199392
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : Subgraph G
a b : V
inst✝¹ : Fintype V
G' : Subgraph G
inst✝ : Fintype ↑G'.verts
h : IsSpanning G'
⊢ Finset.card Finset.univ = Fintype.card V
Theorem: CategoryTheory.CosimplicialObject.δ_comp_δ
File: Mathlib/AlgebraicTopology/SimplicialObject.lean

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

tactic: simp only [← X.map_comp, SimplexCategory.δ_comp_δ H]
state_before: C : Type u
inst✝ : Category C
X : CosimplicialObject C
n : ℕ
i j : Fin (n + 2)
H : i ≤ j
⊢ X.map (SimplexCategory.δ i) ≫ X.map (SimplexCategory.δ (Fin.succ j)) =
    X.map (SimplexCategory.δ j) ≫ X.map (SimplexCategory.δ (↑Fin.castSucc i))
Theorem: OpenEmbedding.tendsto_nhds_iff'
File: Mathlib/Topology/Maps.lean

tactic: rw [Tendsto, ← map_map, hf.map_nhds_eq]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type ?u.238827
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
f : α → β
hf : OpenEmbedding f
g : β → γ
l : Filter γ
a : α
⊢ Tendsto (g ∘ f) (𝓝 a) l ↔ Tendsto g (𝓝 (f a)) l

tactic: rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type ?u.238827
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
f : α → β
hf : OpenEmbedding f
g : β → γ
l : Filter γ
a : α
⊢ map g (𝓝 (f a)) ≤ l ↔ Tendsto g (𝓝 (f a)) l
Theorem: RatFunc.intDegree_mul
File: Mathlib/FieldTheory/RatFunc.lean

tactic: simp only [intDegree, add_sub, sub_add, sub_sub_eq_add_sub, sub_sub, sub_eq_sub_iff_add_eq_add]
state_before: K : Type u
inst✝ : Field K
x y : RatFunc K
hx : x ≠ 0
hy : y ≠ 0
⊢ intDegree (x * y) = intDegree x + intDegree y

tactic: norm_cast
state_before: K : Type u
inst✝ : Field K
x y : RatFunc K
hx : x ≠ 0
hy : y ≠ 0
⊢ ↑(natDegree (num (x * y))) + (↑(natDegree (denom x)) + ↑(natDegree (denom y))) =
    ↑(natDegree (num x)) + ↑(natDegree (num y)) + ↑(natDegree (denom (x * y)))

tactic: rw [← Polynomial.natDegree_mul x.denom_ne_zero y.denom_ne_zero, ←
  Polynomial.natDegree_mul (RatFunc.num_ne_zero (mul_ne_zero hx hy))
    (mul_ne_zero x.denom_ne_zero y.denom_ne_zero),
  ← Polynomial.natDegree_mul (RatFunc.num_ne_zero hx) (RatFunc.num_ne_zero hy), ←
  Polynomial.natDegree_mul (mul_ne_zero (RatFunc.num_ne_zero hx) (RatFunc.num_ne_zero hy))
    (x * y).denom_ne_zero,
  RatFunc.num_denom_mul]
state_before: K : Type u
inst✝ : Field K
x y : RatFunc K
hx : x ≠ 0
hy : y ≠ 0
⊢ natDegree (num (x * y)) + (natDegree (denom x) + natDegree (denom y)) =
    natDegree (num x) + natDegree (num y) + natDegree (denom (x * y))
Theorem: Asymptotics.IsLittleO.rpow
File: Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean

tactic: rw [← rpow_mul hc.le, inv_mul_cancel hr.ne', Real.rpow_one]
state_before: α : Type u_1
r c✝ : ℝ
l : Filter α
f g : α → ℝ
hr : 0 < r
hg : 0 ≤ᶠ[l] g
h : f =o[l] g
c : ℝ
hc : 0 < c
⊢ (c ^ r⁻¹) ^ r = c
Theorem: Ordinal.IsFundamentalSequence.succ
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: refine' ⟨_, @fun i j hi hj h => _, blsub_const Ordinal.one_ne_zero o⟩
state_before: α : Type ?u.69314
r : α → α → Prop
a o : Ordinal
f : (b : Ordinal) → b < o → Ordinal
⊢ IsFundamentalSequence (succ o) 1 fun x x => o

tactic: rw [cof_succ, ord_one]
state_before: case refine'_1
α : Type ?u.69314
r : α → α → Prop
a o : Ordinal
f : (b : Ordinal) → b < o → Ordinal
⊢ 1 ≤ ord (cof (succ o))

tactic: rw [lt_one_iff_zero] at hi hj
state_before: case refine'_2
α : Type ?u.69314
r : α → α → Prop
a o : Ordinal
f : (b : Ordinal) → b < o → Ordinal
i j : Ordinal
hi : i < 1
hj : j < 1
h : i < j
⊢ (fun x x => o) i hi < (fun x x => o) j hj

tactic: rw [hi, hj] at h
state_before: case refine'_2
α : Type ?u.69314
r : α → α → Prop
a o : Ordinal
f : (b : Ordinal) → b < o → Ordinal
i j : Ordinal
hi✝ : i < 1
hi : i = 0
hj✝ : j < 1
hj : j = 0
h : i < j
⊢ (fun x x => o) i hi✝ < (fun x x => o) j hj✝

tactic: exact h.false.elim
state_before: case refine'_2
α : Type ?u.69314
r : α → α → Prop
a o : Ordinal
f : (b : Ordinal) → b < o → Ordinal
i j : Ordinal
hi✝ : i < 1
hi : i = 0
hj✝ : j < 1
hj : j = 0
h : 0 < 0
⊢ (fun x x => o) i hi✝ < (fun x x => o) j hj✝
Theorem: Matrix.Nondegenerate.toBilin'
File: Mathlib/LinearAlgebra/Matrix/BilinearForm.lean

tactic: simpa only [toBilin'_apply'] using hx y
state_before: R : Type ?u.2760443
M✝ : Type ?u.2760446
inst✝¹⁹ : Semiring R
inst✝¹⁸ : AddCommMonoid M✝
inst✝¹⁷ : Module R M✝
R₁ : Type ?u.2760482
M₁ : Type ?u.2760485
inst✝¹⁶ : Ring R₁
inst✝¹⁵ : AddCommGroup M₁
inst✝¹⁴ : Module R₁ M₁
R₂ : Type ?u.2761094
M₂ : Type ?u.2761097
inst✝¹³ : CommSemiring R₂
inst✝¹² : AddCommMonoid M₂
inst✝¹¹ : Module R₂ M₂
R₃ : Type u_2
M₃ : Type ?u.2761287
inst✝¹⁰ : CommRing R₃
inst✝⁹ : AddCommGroup M₃
inst✝⁸ : Module R₃ M₃
V : Type ?u.2761875
K : Type ?u.2761878
inst✝⁷ : Field K
inst✝⁶ : AddCommGroup V
inst✝⁵ : Module K V
B : BilinForm R M✝
B₁ : BilinForm R₁ M₁
B₂ : BilinForm R₂ M₂
A : Type ?u.2763092
inst✝⁴ : CommRing A
inst✝³ : IsDomain A
inst✝² : Module A M₃
B₃ : BilinForm A M₃
ι : Type u_1
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
M : Matrix ι ι R₃
h : Matrix.Nondegenerate M
x : ι → R₃
hx : ∀ (n : ι → R₃), bilin (↑Matrix.toBilin' M) x n = 0
y : ι → R₃
⊢ x ⬝ᵥ mulVec M y = 0
Theorem: PSet.mem_wf_aux
File: Mathlib/SetTheory/ZFC/Basic.lean

tactic: rintro ⟨γ, C⟩ ⟨b, hc⟩
state_before: α : Type u
A : α → PSet
β : Type u
B : β → PSet
H : Equiv (mk α A) (mk β B)
⊢ ∀ (y : PSet), y ∈ mk β B → Acc (fun x x_1 => x ∈ x_1) y

tactic: cases' H.exists_right b with a ha
state_before: case mk.intro
α : Type u
A : α → PSet
β : Type u
B : β → PSet
H : Equiv (mk α A) (mk β B)
γ : Type u
C : γ → PSet
b : Type (mk β B)
hc : Equiv (mk γ C) (Func (mk β B) b)
⊢ Acc (fun x x_1 => x ∈ x_1) (mk γ C)

tactic: have H := ha.trans hc.symm
state_before: case mk.intro.intro
α : Type u
A : α → PSet
β : Type u
B : β → PSet
H : Equiv (mk α A) (mk β B)
γ : Type u
C : γ → PSet
b : Type (mk β B)
hc : Equiv (mk γ C) (Func (mk β B) b)
a : Type (mk α A)
ha : Equiv (Func (mk α A) a) (Func (mk β B) b)
⊢ Acc (fun x x_1 => x ∈ x_1) (mk γ C)

tactic: rw [mk_func] at H
state_before: case mk.intro.intro
α : Type u
A : α → PSet
β : Type u
B : β → PSet
H✝ : Equiv (mk α A) (mk β B)
γ : Type u
C : γ → PSet
b : Type (mk β B)
hc : Equiv (mk γ C) (Func (mk β B) b)
a : Type (mk α A)
ha : Equiv (Func (mk α A) a) (Func (mk β B) b)
H : Equiv (Func (mk α A) a) (mk γ C)
⊢ Acc (fun x x_1 => x ∈ x_1) (mk γ C)

tactic: exact mem_wf_aux H
state_before: case mk.intro.intro
α : Type u
A : α → PSet
β : Type u
B : β → PSet
H✝ : Equiv (mk α A) (mk β B)
γ : Type u
C : γ → PSet
b : Type (mk β B)
hc : Equiv (mk γ C) (Func (mk β B) b)
a : Type (mk α A)
ha : Equiv (Func (mk α A) a) (Func (mk β B) b)
H : Equiv (A a) (mk γ C)
⊢ Acc (fun x x_1 => x ∈ x_1) (mk γ C)
Theorem: Real.cos_pos_of_mem_Ioo
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: linarith [hx.1]
state_before: x : ℝ
hx : x ∈ Ioo (-(π / 2)) (π / 2)
⊢ 0 < x + π / 2

tactic: linarith [hx.2]
state_before: x : ℝ
hx : x ∈ Ioo (-(π / 2)) (π / 2)
⊢ x + π / 2 < π
Theorem: Filter.set_eventuallyEq_iff_inf_principal
File: Mathlib/Order/Filter/Basic.lean

tactic: simp only [eventuallyLE_antisymm_iff, le_antisymm_iff, set_eventuallyLE_iff_inf_principal_le]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.209553
ι : Sort x
s t : Set α
l : Filter α
⊢ s =ᶠ[l] t ↔ l ⊓ 𝓟 s = l ⊓ 𝓟 t