tasksource/leandojo huggingface dataset:
Theorem: WittVector.IsPoly.comp₂
File: Mathlib/RingTheory/WittVector/IsPoly.lean

tactic: obtain ⟨φ, hf⟩ := hf
state_before: p : ℕ
R S : Type u
σ : Type ?u.597461
idx : Type ?u.597464
inst✝¹ : CommRing R
inst✝ : CommRing S
g : ⦃R : Type u_1⦄ → [inst : CommRing R] → 𝕎 R → 𝕎 R
f : ⦃R : Type u_1⦄ → [inst : CommRing R] → 𝕎 R → 𝕎 R → 𝕎 R
hg : IsPoly p g
hf : IsPoly₂ p f
⊢ IsPoly₂ p fun R _Rcr x y => g (f x y)

tactic: obtain ⟨ψ, hg⟩ := hg
state_before: case mk'.intro
p : ℕ
R S : Type u
σ : Type ?u.597461
idx : Type ?u.597464
inst✝¹ : CommRing R
inst✝ : CommRing S
g : ⦃R : Type u_1⦄ → [inst : CommRing R] → 𝕎 R → 𝕎 R
f : ⦃R : Type u_1⦄ → [inst : CommRing R] → 𝕎 R → 𝕎 R → 𝕎 R
hg : IsPoly p g
φ : ℕ → MvPolynomial (Fin 2 × ℕ) ℤ
hf : ∀ ⦃R : Type u_1⦄ [inst : CommRing R] (x y : 𝕎 R), (f x y).coeff = fun n => peval (φ n) ![x.coeff, y.coeff]
⊢ IsPoly₂ p fun R _Rcr x y => g (f x y)

tactic: use fun n => bind₁ φ (ψ n)
state_before: case mk'.intro.mk'.intro
p : ℕ
R S : Type u
σ : Type ?u.597461
idx : Type ?u.597464
inst✝¹ : CommRing R
inst✝ : CommRing S
g : ⦃R : Type u_1⦄ → [inst : CommRing R] → 𝕎 R → 𝕎 R
f : ⦃R : Type u_1⦄ → [inst : CommRing R] → 𝕎 R → 𝕎 R → 𝕎 R
φ : ℕ → MvPolynomial (Fin 2 × ℕ) ℤ
hf : ∀ ⦃R : Type u_1⦄ [inst : CommRing R] (x y : 𝕎 R), (f x y).coeff = fun n => peval (φ n) ![x.coeff, y.coeff]
ψ : ℕ → MvPolynomial ℕ ℤ
hg : ∀ ⦃R : Type u_1⦄ [inst : CommRing R] (x : 𝕎 R), (g x).coeff = fun n => ↑(aeval x.coeff) (ψ n)
⊢ IsPoly₂ p fun R _Rcr x y => g (f x y)

tactic: intros
state_before: case mk'.intro.mk'.intro
p : ℕ
R S : Type u
σ : Type ?u.597461
idx : Type ?u.597464
inst✝¹ : CommRing R
inst✝ : CommRing S
g : ⦃R : Type u_1⦄ → [inst : CommRing R] → 𝕎 R → 𝕎 R
f : ⦃R : Type u_1⦄ → [inst : CommRing R] → 𝕎 R → 𝕎 R → 𝕎 R
φ : ℕ → MvPolynomial (Fin 2 × ℕ) ℤ
hf : ∀ ⦃R : Type u_1⦄ [inst : CommRing R] (x y : 𝕎 R), (f x y).coeff = fun n => peval (φ n) ![x.coeff, y.coeff]
ψ : ℕ → MvPolynomial ℕ ℤ
hg : ∀ ⦃R : Type u_1⦄ [inst : CommRing R] (x : 𝕎 R), (g x).coeff = fun n => ↑(aeval x.coeff) (ψ n)
⊢ ∀ ⦃R : Type u_1⦄ [inst : CommRing R] (x y : 𝕎 R),
    (g (f x y)).coeff = fun n => peval ((fun n => ↑(bind₁ φ) (ψ n)) n) ![x.coeff, y.coeff]

tactic: simp only [peval, aeval_bind₁, Function.comp, hg, hf]
state_before: case mk'.intro.mk'.intro
p : ℕ
R S : Type u
σ : Type ?u.597461
idx : Type ?u.597464
inst✝² : CommRing R
inst✝¹ : CommRing S
g : ⦃R : Type u_1⦄ → [inst : CommRing R] → 𝕎 R → 𝕎 R
f : ⦃R : Type u_1⦄ → [inst : CommRing R] → 𝕎 R → 𝕎 R → 𝕎 R
φ : ℕ → MvPolynomial (Fin 2 × ℕ) ℤ
hf : ∀ ⦃R : Type u_1⦄ [inst : CommRing R] (x y : 𝕎 R), (f x y).coeff = fun n => peval (φ n) ![x.coeff, y.coeff]
ψ : ℕ → MvPolynomial ℕ ℤ
hg : ∀ ⦃R : Type u_1⦄ [inst : CommRing R] (x : 𝕎 R), (g x).coeff = fun n => ↑(aeval x.coeff) (ψ n)
R✝ : Type u_1
inst✝ : CommRing R✝
x✝ y✝ : 𝕎 R✝
⊢ (g (f x✝ y✝)).coeff = fun n => peval ((fun n => ↑(bind₁ φ) (ψ n)) n) ![x✝.coeff, y✝.coeff]
Theorem: Complex.range_abs
File: Mathlib/Data/Complex/Basic.lean

tactic: simp only [range_subset_iff, Ici, mem_setOf_eq, map_nonneg, forall_const]
state_before: ⊢ range ↑abs ⊆ Ici 0
Theorem: Right.pow_le_one_of_le
File: Mathlib/Algebra/GroupPower/Order.lean

tactic: rw [pow_succ]
state_before: β : Type ?u.61783
A : Type ?u.61786
G : Type ?u.61789
M : Type u_1
R : Type ?u.61795
inst✝² : Monoid M
inst✝¹ : Preorder M
inst✝ : CovariantClass M M (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
x : M
hx : x ≤ 1
n : ℕ
⊢ x ^ (n + 1) ≤ 1

tactic: exact Right.mul_le_one hx <| Right.pow_le_one_of_le hx
state_before: β : Type ?u.61783
A : Type ?u.61786
G : Type ?u.61789
M : Type u_1
R : Type ?u.61795
inst✝² : Monoid M
inst✝¹ : Preorder M
inst✝ : CovariantClass M M (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
x : M
hx : x ≤ 1
n : ℕ
⊢ x * x ^ n ≤ 1
Theorem: MeasureTheory.StronglyMeasurable.tendsto_approxBounded_ae
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: filter_upwards [hf_bound] with x hfx using tendsto_approxBounded_of_norm_le hf hfx
state_before: α : Type u_2
β✝ : Type ?u.39374
γ : Type ?u.39377
ι : Type ?u.39380
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m m0 : MeasurableSpace α
μ : Measure α
hf : StronglyMeasurable f
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
⊢ ∀ᵐ (x : α) ∂μ, Tendsto (fun n => ↑(approxBounded hf c n) x) atTop (𝓝 (f x))
Theorem: EuclideanGeometry.cos_angle_of_angle_eq_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean

tactic: rw [angle, ← inner_eq_zero_iff_angle_eq_pi_div_two, real_inner_comm, ← neg_eq_zero, ←
  inner_neg_left, neg_vsub_eq_vsub_rev] at h
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₂ p₃ : P
h : ∠ p₁ p₂ p₃ = π / 2
⊢ Real.cos (∠ p₂ p₃ p₁) = dist p₃ p₂ / dist p₁ p₃

tactic: rw [angle, dist_eq_norm_vsub' V p₃ p₂, dist_eq_norm_vsub V p₁ p₃, ← vsub_add_vsub_cancel p₁ p₂ p₃,
  add_comm, cos_angle_add_of_inner_eq_zero h]
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₂ p₃ : P
h : inner (p₂ -ᵥ p₃) (p₁ -ᵥ p₂) = 0
⊢ Real.cos (∠ p₂ p₃ p₁) = dist p₃ p₂ / dist p₁ p₃
Theorem: tendsto_inv_nhdsWithin_Iio_inv
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: simpa only [inv_inv] using @tendsto_inv_nhdsWithin_Iio _ _ _ _ a⁻¹
state_before: α : Type u
β : Type v
G : Type w
H : Type x
inst✝⁶ : TopologicalSpace G
inst✝⁵ : Group G
inst✝⁴ : TopologicalGroup G
inst✝³ : TopologicalSpace α
f : α → G
s : Set α
x : α
inst✝² : TopologicalSpace H
inst✝¹ : OrderedCommGroup H
inst✝ : ContinuousInv H
a : H
⊢ Tendsto Inv.inv (𝓝[Iio a⁻¹] a⁻¹) (𝓝[Ioi a] a)
Theorem: Matrix.one_mulVec
File: Mathlib/Data/Matrix/Basic.lean

tactic: ext
state_before: l : Type ?u.903237
m : Type u_1
n : Type ?u.903243
o : Type ?u.903246
m' : o → Type ?u.903251
n' : o → Type ?u.903256
R : Type ?u.903259
S : Type ?u.903262
α : Type v
β : Type w
γ : Type ?u.903269
inst✝³ : NonAssocSemiring α
inst✝² : Fintype m
inst✝¹ : Fintype n
inst✝ : DecidableEq m
v : m → α
⊢ mulVec 1 v = v

tactic: rw [← diagonal_one, mulVec_diagonal, one_mul]
state_before: case h
l : Type ?u.903237
m : Type u_1
n : Type ?u.903243
o : Type ?u.903246
m' : o → Type ?u.903251
n' : o → Type ?u.903256
R : Type ?u.903259
S : Type ?u.903262
α : Type v
β : Type w
γ : Type ?u.903269
inst✝³ : NonAssocSemiring α
inst✝² : Fintype m
inst✝¹ : Fintype n
inst✝ : DecidableEq m
v : m → α
x✝ : m
⊢ mulVec 1 v x✝ = v x✝
Theorem: mem_closure_iff_comap_neBot
File: Mathlib/Topology/Basic.lean

tactic: simp_rw [mem_closure_iff_nhds, comap_neBot_iff, Set.inter_nonempty_iff_exists_right,
  SetCoe.exists, exists_prop]
state_before: α : Type u
β : Type v
ι : Sort w
a : α
s s₁ s₂ t : Set α
p p₁ p₂ : α → Prop
inst✝ : TopologicalSpace α
A : Set α
x : α
⊢ x ∈ closure A ↔ NeBot (comap Subtype.val (𝓝 x))
Theorem: tendsto_inv_nhdsWithin_Iic_inv
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: simpa only [inv_inv] using @tendsto_inv_nhdsWithin_Iic _ _ _ _ a⁻¹
state_before: α : Type u
β : Type v
G : Type w
H : Type x
inst✝⁶ : TopologicalSpace G
inst✝⁵ : Group G
inst✝⁴ : TopologicalGroup G
inst✝³ : TopologicalSpace α
f : α → G
s : Set α
x : α
inst✝² : TopologicalSpace H
inst✝¹ : OrderedCommGroup H
inst✝ : ContinuousInv H
a : H
⊢ Tendsto Inv.inv (𝓝[Iic a⁻¹] a⁻¹) (𝓝[Ici a] a)
Theorem: StrictConvex.ae_eq_const_or_average_mem_interior
File: Mathlib/Analysis/Convex/Integral.lean

tactic: have : ∀ {t}, μ t ≠ 0 → (⨍ x in t, f x ∂μ) ∈ s := fun ht =>
  hs.convex.set_average_mem hsc ht (measure_ne_top _ _) (ae_restrict_of_ae hfs) hfi.integrableOn
state_before: α : Type u_1
E : Type u_2
F : Type ?u.2067161
m0 : MeasurableSpace α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
μ : MeasureTheory.Measure α
s : Set E
t : Set α
f : α → E
g : E → ℝ
C : ℝ
inst✝ : IsFiniteMeasure μ
hs : StrictConvex ℝ s
hsc : IsClosed s
hfs : ∀ᵐ (x : α) ∂μ, f x ∈ s
hfi : Integrable f
⊢ f =ᶠ[ae μ] const α (⨍ (x : α), f x ∂μ) ∨ (⨍ (x : α), f x ∂μ) ∈ interior s

tactic: refine' (ae_eq_const_or_exists_average_ne_compl hfi).imp_right _
state_before: α : Type u_1
E : Type u_2
F : Type ?u.2067161
m0 : MeasurableSpace α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
μ : MeasureTheory.Measure α
s : Set E
t : Set α
f : α → E
g : E → ℝ
C : ℝ
inst✝ : IsFiniteMeasure μ
hs : StrictConvex ℝ s
hsc : IsClosed s
hfs : ∀ᵐ (x : α) ∂μ, f x ∈ s
hfi : Integrable f
this : ∀ {t : Set α}, ↑↑μ t ≠ 0 → (⨍ (x : α) in t, f x ∂μ) ∈ s
⊢ f =ᶠ[ae μ] const α (⨍ (x : α), f x ∂μ) ∨ (⨍ (x : α), f x ∂μ) ∈ interior s

tactic: rintro ⟨t, hm, h₀, h₀', hne⟩
state_before: α : Type u_1
E : Type u_2
F : Type ?u.2067161
m0 : MeasurableSpace α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
μ : MeasureTheory.Measure α
s : Set E
t : Set α
f : α → E
g : E → ℝ
C : ℝ
inst✝ : IsFiniteMeasure μ
hs : StrictConvex ℝ s
hsc : IsClosed s
hfs : ∀ᵐ (x : α) ∂μ, f x ∈ s
hfi : Integrable f
this : ∀ {t : Set α}, ↑↑μ t ≠ 0 → (⨍ (x : α) in t, f x ∂μ) ∈ s
⊢ (∃ t, MeasurableSet t ∧ ↑↑μ t ≠ 0 ∧ ↑↑μ (tᶜ) ≠ 0 ∧ (⨍ (x : α) in t, f x ∂μ) ≠ ⨍ (x : α) in tᶜ, f x ∂μ) →
    (⨍ (x : α), f x ∂μ) ∈ interior s

tactic: exact
  hs.openSegment_subset (this h₀) (this h₀') hne
    (average_mem_openSegment_compl_self hm.nullMeasurableSet h₀ h₀' hfi)
state_before: case intro.intro.intro.intro
α : Type u_1
E : Type u_2
F : Type ?u.2067161
m0 : MeasurableSpace α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
μ : MeasureTheory.Measure α
s : Set E
t✝ : Set α
f : α → E
g : E → ℝ
C : ℝ
inst✝ : IsFiniteMeasure μ
hs : StrictConvex ℝ s
hsc : IsClosed s
hfs : ∀ᵐ (x : α) ∂μ, f x ∈ s
hfi : Integrable f
this : ∀ {t : Set α}, ↑↑μ t ≠ 0 → (⨍ (x : α) in t, f x ∂μ) ∈ s
t : Set α
hm : MeasurableSet t
h₀ : ↑↑μ t ≠ 0
h₀' : ↑↑μ (tᶜ) ≠ 0
hne : (⨍ (x : α) in t, f x ∂μ) ≠ ⨍ (x : α) in tᶜ, f x ∂μ
⊢ (⨍ (x : α), f x ∂μ) ∈ interior s
Theorem: Filter.countableGenerate_isGreatest
File: Mathlib/Order/Filter/CountableInter.lean

tactic: refine' ⟨⟨inferInstance, fun s => CountableGenerateSets.basic⟩, _⟩
state_before: ι : Sort ?u.24738
α : Type u_1
β : Type ?u.24744
l : Filter α
inst✝ : CountableInterFilter l
g : Set (Set α)
⊢ IsGreatest {f | CountableInterFilter f ∧ g ⊆ f.sets} (countableGenerate g)

tactic: rintro f ⟨fct, hf⟩
state_before: ι : Sort ?u.24738
α : Type u_1
β : Type ?u.24744
l : Filter α
inst✝ : CountableInterFilter l
g : Set (Set α)
⊢ countableGenerate g ∈ upperBounds {f | CountableInterFilter f ∧ g ⊆ f.sets}

tactic: rwa [@le_countableGenerate_iff_of_countableInterFilter _ _ _ fct]
state_before: case intro
ι : Sort ?u.24738
α : Type u_1
β : Type ?u.24744
l : Filter α
inst✝ : CountableInterFilter l
g : Set (Set α)
f : Filter α
fct : CountableInterFilter f
hf : g ⊆ f.sets
⊢ f ≤ countableGenerate g
Theorem: dite_congr
File: src/lean/Init/SimpLemmas.lean

tactic: cases Decidable.em c with
| inl h => rw [dif_pos h]; subst b; rw [dif_pos h]; exact h₂ h
| inr h => rw [dif_neg h]; subst b; rw [dif_neg h]; exact h₃ h
state_before: b c : Prop
α : Sort u_1
x✝ : Decidable b
inst✝ : Decidable c
x : b → α
u : c → α
y : ¬b → α
v : ¬c → α
h₁ : b = c
h₂ : ∀ (h : c), x (_ : b) = u h
h₃ : ∀ (h : ¬c), y (_ : ¬b) = v h
⊢ dite b x y = dite c u v

tactic: rw [dif_pos h]
state_before: case inl
b c : Prop
α : Sort u_1
x✝ : Decidable b
inst✝ : Decidable c
x : b → α
u : c → α
y : ¬b → α
v : ¬c → α
h₁ : b = c
h₂ : ∀ (h : c), x (_ : b) = u h
h₃ : ∀ (h : ¬c), y (_ : ¬b) = v h
h : c
⊢ dite b x y = dite c u v

tactic: subst b
state_before: case inl
b c : Prop
α : Sort u_1
x✝ : Decidable b
inst✝ : Decidable c
x : b → α
u : c → α
y : ¬b → α
v : ¬c → α
h₁ : b = c
h₂ : ∀ (h : c), x (_ : b) = u h
h₃ : ∀ (h : ¬c), y (_ : ¬b) = v h
h : c
⊢ dite b x y = u h

tactic: rw [dif_pos h]
state_before: case inl
c : Prop
α : Sort u_1
inst✝ : Decidable c
u : c → α
v : ¬c → α
h : c
x✝ : Decidable c
x : c → α
y : ¬c → α
h₂ : ∀ (h : c), x (_ : c) = u h
h₃ : ∀ (h : ¬c), y (_ : ¬c) = v h
⊢ dite c x y = u h

tactic: exact h₂ h
state_before: case inl
c : Prop
α : Sort u_1
inst✝ : Decidable c
u : c → α
v : ¬c → α
h : c
x✝ : Decidable c
x : c → α
y : ¬c → α
h₂ : ∀ (h : c), x (_ : c) = u h
h₃ : ∀ (h : ¬c), y (_ : ¬c) = v h
⊢ x h = u h

tactic: rw [dif_neg h]
state_before: case inr
b c : Prop
α : Sort u_1
x✝ : Decidable b
inst✝ : Decidable c
x : b → α
u : c → α
y : ¬b → α
v : ¬c → α
h₁ : b = c
h₂ : ∀ (h : c), x (_ : b) = u h
h₃ : ∀ (h : ¬c), y (_ : ¬b) = v h
h : ¬c
⊢ dite b x y = dite c u v

tactic: subst b
state_before: case inr
b c : Prop
α : Sort u_1
x✝ : Decidable b
inst✝ : Decidable c
x : b → α
u : c → α
y : ¬b → α
v : ¬c → α
h₁ : b = c
h₂ : ∀ (h : c), x (_ : b) = u h
h₃ : ∀ (h : ¬c), y (_ : ¬b) = v h
h : ¬c
⊢ dite b x y = v h

tactic: rw [dif_neg h]
state_before: case inr
c : Prop
α : Sort u_1
inst✝ : Decidable c
u : c → α
v : ¬c → α
h : ¬c
x✝ : Decidable c
x : c → α
y : ¬c → α
h₂ : ∀ (h : c), x (_ : c) = u h
h₃ : ∀ (h : ¬c), y (_ : ¬c) = v h
⊢ dite c x y = v h

tactic: exact h₃ h
state_before: case inr
c : Prop
α : Sort u_1
inst✝ : Decidable c
u : c → α
v : ¬c → α
h : ¬c
x✝ : Decidable c
x : c → α
y : ¬c → α
h₂ : ∀ (h : c), x (_ : c) = u h
h₃ : ∀ (h : ¬c), y (_ : ¬c) = v h
⊢ y h = v h
Theorem: newton_seq_is_cauchy
File: Mathlib/NumberTheory/Padics/Hensel.lean

tactic: intro ε hε
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (↑Polynomial.derivative F)‖ ^ 2
hnsol : Polynomial.eval a F ≠ 0
⊢ IsCauSeq norm newton_seq

tactic: cases' bound hnorm hε with N hN
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (↑Polynomial.derivative F)‖ ^ 2
hnsol : Polynomial.eval a F ≠ 0
ε : ℝ
hε : ε > 0
⊢ ∃ i, ∀ (j : ℕ), j ≥ i → ‖newton_seq j - newton_seq i‖ < ε

tactic: exists N
state_before: case intro
p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (↑Polynomial.derivative F)‖ ^ 2
hnsol : Polynomial.eval a F ≠ 0
ε : ℝ
hε : ε > 0
N : ℕ
hN : ∀ {n : ℕ}, n ≥ N → ‖Polynomial.eval a (↑Polynomial.derivative F)‖ * T_gen p F a ^ 2 ^ n < ε
⊢ ∃ i, ∀ (j : ℕ), j ≥ i → ‖newton_seq j - newton_seq i‖ < ε

tactic: intro j hj
state_before: case intro
p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (↑Polynomial.derivative F)‖ ^ 2
hnsol : Polynomial.eval a F ≠ 0
ε : ℝ
hε : ε > 0
N : ℕ
hN : ∀ {n : ℕ}, n ≥ N → ‖Polynomial.eval a (↑Polynomial.derivative F)‖ * T_gen p F a ^ 2 ^ n < ε
⊢ ∀ (j : ℕ), j ≥ N → ‖newton_seq j - newton_seq N‖ < ε

tactic: apply lt_of_le_of_lt
state_before: case intro
p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (↑Polynomial.derivative F)‖ ^ 2
hnsol : Polynomial.eval a F ≠ 0
ε : ℝ
hε : ε > 0
N : ℕ
hN : ∀ {n : ℕ}, n ≥ N → ‖Polynomial.eval a (↑Polynomial.derivative F)‖ * T_gen p F a ^ 2 ^ n < ε
j : ℕ
hj : j ≥ N
⊢ ‖newton_seq j - newton_seq N‖ < ε

tactic: apply newton_seq_dist hnorm hj
state_before: case intro.a
p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (↑Polynomial.derivative F)‖ ^ 2
hnsol : Polynomial.eval a F ≠ 0
ε : ℝ
hε : ε > 0
N : ℕ
hN : ∀ {n : ℕ}, n ≥ N → ‖Polynomial.eval a (↑Polynomial.derivative F)‖ * T_gen p F a ^ 2 ^ n < ε
j : ℕ
hj : j ≥ N
⊢ ‖newton_seq j - newton_seq N‖ ≤ ?intro.b

tactic: apply hN
state_before: case intro.a
p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (↑Polynomial.derivative F)‖ ^ 2
hnsol : Polynomial.eval a F ≠ 0
ε : ℝ
hε : ε > 0
N : ℕ
hN : ∀ {n : ℕ}, n ≥ N → ‖Polynomial.eval a (↑Polynomial.derivative F)‖ * T_gen p F a ^ 2 ^ n < ε
j : ℕ
hj : j ≥ N
⊢ ‖Polynomial.eval a (↑Polynomial.derivative F)‖ * T_gen p F a ^ 2 ^ N < ε

tactic: exact le_rfl
state_before: case intro.a.a
p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (↑Polynomial.derivative F)‖ ^ 2
hnsol : Polynomial.eval a F ≠ 0
ε : ℝ
hε : ε > 0
N : ℕ
hN : ∀ {n : ℕ}, n ≥ N → ‖Polynomial.eval a (↑Polynomial.derivative F)‖ * T_gen p F a ^ 2 ^ n < ε
j : ℕ
hj : j ≥ N
⊢ N ≥ N
Theorem: tsub_nonpos
File: Mathlib/Algebra/Order/Sub/Defs.lean

tactic: rw [tsub_le_iff_left, add_zero]
state_before: α : Type u_1
β : Type ?u.30124
inst✝³ : Preorder α
inst✝² : AddCommMonoid α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
⊢ a - b ≤ 0 ↔ a ≤ b
Theorem: smul_inv₀
File: Mathlib/Algebra/SMulWithZero.lean

tactic: obtain rfl | hc := eq_or_ne c 0
state_before: R : Type ?u.35696
R' : Type ?u.35699
M : Type ?u.35702
M' : Type ?u.35705
α : Type u_1
β : Type u_2
inst✝⁴ : GroupWithZero α
inst✝³ : GroupWithZero β
inst✝² : MulActionWithZero α β
inst✝¹ : SMulCommClass α β β
inst✝ : IsScalarTower α β β
c : α
x : β
⊢ (c • x)⁻¹ = c⁻¹ • x⁻¹

tactic: obtain rfl | hx := eq_or_ne x 0
state_before: case inr
R : Type ?u.35696
R' : Type ?u.35699
M : Type ?u.35702
M' : Type ?u.35705
α : Type u_1
β : Type u_2
inst✝⁴ : GroupWithZero α
inst✝³ : GroupWithZero β
inst✝² : MulActionWithZero α β
inst✝¹ : SMulCommClass α β β
inst✝ : IsScalarTower α β β
c : α
x : β
hc : c ≠ 0
⊢ (c • x)⁻¹ = c⁻¹ • x⁻¹

tactic: simp only [inv_zero, zero_smul]
state_before: case inl
R : Type ?u.35696
R' : Type ?u.35699
M : Type ?u.35702
M' : Type ?u.35705
α : Type u_1
β : Type u_2
inst✝⁴ : GroupWithZero α
inst✝³ : GroupWithZero β
inst✝² : MulActionWithZero α β
inst✝¹ : SMulCommClass α β β
inst✝ : IsScalarTower α β β
x : β
⊢ (0 • x)⁻¹ = 0⁻¹ • x⁻¹

tactic: simp only [inv_zero, smul_zero]
state_before: case inr.inl
R : Type ?u.35696
R' : Type ?u.35699
M : Type ?u.35702
M' : Type ?u.35705
α : Type u_1
β : Type u_2
inst✝⁴ : GroupWithZero α
inst✝³ : GroupWithZero β
inst✝² : MulActionWithZero α β
inst✝¹ : SMulCommClass α β β
inst✝ : IsScalarTower α β β
c : α
hc : c ≠ 0
⊢ (c • 0)⁻¹ = c⁻¹ • 0⁻¹

tactic: refine' inv_eq_of_mul_eq_one_left _
state_before: case inr.inr
R : Type ?u.35696
R' : Type ?u.35699
M : Type ?u.35702
M' : Type ?u.35705
α : Type u_1
β : Type u_2
inst✝⁴ : GroupWithZero α
inst✝³ : GroupWithZero β
inst✝² : MulActionWithZero α β
inst✝¹ : SMulCommClass α β β
inst✝ : IsScalarTower α β β
c : α
x : β
hc : c ≠ 0
hx : x ≠ 0
⊢ (c • x)⁻¹ = c⁻¹ • x⁻¹

tactic: rw [smul_mul_smul, inv_mul_cancel hc, inv_mul_cancel hx, one_smul]
state_before: case inr.inr
R : Type ?u.35696
R' : Type ?u.35699
M : Type ?u.35702
M' : Type ?u.35705
α : Type u_1
β : Type u_2
inst✝⁴ : GroupWithZero α
inst✝³ : GroupWithZero β
inst✝² : MulActionWithZero α β
inst✝¹ : SMulCommClass α β β
inst✝ : IsScalarTower α β β
c : α
x : β
hc : c ≠ 0
hx : x ≠ 0
⊢ c⁻¹ • x⁻¹ * c • x = 1
Theorem: MeasureTheory.Measure.univ_pi_Ioc_ae_eq_Icc
File: Mathlib/MeasureTheory/Constructions/Pi.lean

tactic: rw [← pi_univ_Icc]
state_before: ι : Type u_2
ι' : Type ?u.4569072
α : ι → Type u_1
inst✝⁴ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
inst✝³ : (i : ι) → MeasurableSpace (α i)
μ : (i : ι) → Measure (α i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
inst✝¹ : (i : ι) → PartialOrder (α i)
inst✝ : ∀ (i : ι), NoAtoms (μ i)
f g : (i : ι) → α i
⊢ (Set.pi univ fun i => Ioc (f i) (g i)) =ᶠ[ae (Measure.pi μ)] Icc f g

tactic: exact pi_Ioc_ae_eq_pi_Icc
state_before: ι : Type u_2
ι' : Type ?u.4569072
α : ι → Type u_1
inst✝⁴ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
inst✝³ : (i : ι) → MeasurableSpace (α i)
μ : (i : ι) → Measure (α i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
inst✝¹ : (i : ι) → PartialOrder (α i)
inst✝ : ∀ (i : ι), NoAtoms (μ i)
f g : (i : ι) → α i
⊢ (Set.pi univ fun i => Ioc (f i) (g i)) =ᶠ[ae (Measure.pi μ)] Set.pi univ fun i => Icc (f i) (g i)
Theorem: Nat.descFactorial_self
File: Mathlib/Data/Nat/Factorial/Basic.lean

tactic: rw [descFactorial_zero, factorial_zero]
state_before: ⊢ descFactorial 0 0 = 0!

tactic: rw [succ_descFactorial_succ, descFactorial_self n, factorial_succ]
state_before: n : ℕ
⊢ descFactorial (succ n) (succ n) = (succ n)!
Theorem: Nat.pred_le_iff
File: Mathlib/Data/Nat/Order/Basic.lean

tactic: cases m
state_before: m n k l : ℕ
⊢ m ≤ succ n → pred m ≤ n

tactic: exact le_of_succ_le_succ
state_before: case succ
n k l n✝ : ℕ
⊢ succ n✝ ≤ succ n → pred (succ n✝) ≤ n

tactic: exact fun _ => zero_le n
state_before: case zero
n k l : ℕ
⊢ zero ≤ succ n → pred zero ≤ n
Theorem: UniformOnFun.hasBasis_nhds_one_of_basis
File: Mathlib/Topology/Algebra/UniformConvergence.lean

tactic: have := h.comap fun p : G × G => p.1 / p.2
state_before: α : Type u_1
G : Type u_2
ι : Type u_3
inst✝² : Group G
𝔖✝ : Set (Set α)
inst✝¹ : UniformSpace G
inst✝ : UniformGroup G
𝔖 : Set (Set α)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
p : ι → Prop
b : ι → Set G
h : HasBasis (𝓝 1) p b
⊢ HasBasis (𝓝 1) (fun Si => Si.fst ∈ 𝔖 ∧ p Si.snd) fun Si => {f | ∀ (x : α), x ∈ Si.fst → f x ∈ b Si.snd}

tactic: rw [← uniformity_eq_comap_nhds_one_swapped] at this
state_before: α : Type u_1
G : Type u_2
ι : Type u_3
inst✝² : Group G
𝔖✝ : Set (Set α)
inst✝¹ : UniformSpace G
inst✝ : UniformGroup G
𝔖 : Set (Set α)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
p : ι → Prop
b : ι → Set G
h : HasBasis (𝓝 1) p b
this : HasBasis (comap (fun p => p.fst / p.snd) (𝓝 1)) p fun i => (fun p => p.fst / p.snd) ⁻¹' b i
⊢ HasBasis (𝓝 1) (fun Si => Si.fst ∈ 𝔖 ∧ p Si.snd) fun Si => {f | ∀ (x : α), x ∈ Si.fst → f x ∈ b Si.snd}

tactic: convert UniformOnFun.hasBasis_nhds_of_basis α _ 𝔖 (1 : α →ᵤ[𝔖] G) h𝔖₁ h𝔖₂ this
state_before: α : Type u_1
G : Type u_2
ι : Type u_3
inst✝² : Group G
𝔖✝ : Set (Set α)
inst✝¹ : UniformSpace G
inst✝ : UniformGroup G
𝔖 : Set (Set α)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
p : ι → Prop
b : ι → Set G
h : HasBasis (𝓝 1) p b
this : HasBasis (uniformity G) p fun i => (fun p => p.fst / p.snd) ⁻¹' b i
⊢ HasBasis (𝓝 1) (fun Si => Si.fst ∈ 𝔖 ∧ p Si.snd) fun Si => {f | ∀ (x : α), x ∈ Si.fst → f x ∈ b Si.snd}

tactic: simp [UniformOnFun.gen]
state_before: case h.e'_5.h.h.e'_2.h.a
α : Type u_1
G : Type u_2
ι : Type u_3
inst✝² : Group G
𝔖✝ : Set (Set α)
inst✝¹ : UniformSpace G
inst✝ : UniformGroup G
𝔖 : Set (Set α)
h𝔖₁ : Set.Nonempty 𝔖
h𝔖₂ : DirectedOn (fun x x_1 => x ⊆ x_1) 𝔖
p : ι → Prop
b : ι → Set G
h : HasBasis (𝓝 1) p b
this : HasBasis (uniformity G) p fun i => (fun p => p.fst / p.snd) ⁻¹' b i
x✝¹ : Set α × ι
x✝ : α →ᵤ[𝔖] G
⊢ (∀ (x : α), x ∈ x✝¹.fst → x✝ x ∈ b x✝¹.snd) ↔
    (x✝, 1) ∈ UniformOnFun.gen 𝔖 x✝¹.fst ((fun p => p.fst / p.snd) ⁻¹' b x✝¹.snd)
Theorem: Equiv.Perm.decomposeFin_symm_of_refl
File: Mathlib/GroupTheory/Perm/Fin.lean

tactic: simp [Equiv.Perm.decomposeFin, Equiv.permCongr_def]
state_before: n : ℕ
p : Fin (n + 1)
⊢ ↑decomposeFin.symm (p, Equiv.refl (Fin n)) = swap 0 p
Theorem: Ordinal.brange_const
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rw [← range_familyOfBFamily]
state_before: α : Type u_2
β : Type ?u.276922
γ : Type ?u.276925
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal
ho : o ≠ 0
c : α
⊢ (brange o fun x x => c) = {c}

tactic: exact @Set.range_const _ o.out.α (out_nonempty_iff_ne_zero.2 ho) c
state_before: α : Type u_2
β : Type ?u.276922
γ : Type ?u.276925
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal
ho : o ≠ 0
c : α
⊢ range (familyOfBFamily o fun x x => c) = {c}
Theorem: DirectSum.IsInternal.isCompl
File: Mathlib/Algebra/DirectSum/Module.lean

tactic: rw [← sSup_pair, iSup, ← Set.image_univ, h, Set.image_insert_eq, Set.image_singleton]
state_before: R : Type u
inst✝² : Semiring R
ι : Type v
dec_ι : DecidableEq ι
M : Type u_1
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
A✝ A : ι → Submodule R M
i j : ι
hij : i ≠ j
h : Set.univ = {i, j}
hi : IsInternal A
⊢ iSup A = A i ⊔ A j