1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: ContinuousMap.tendsto_of_tendstoLocallyUniformly
File: Mathlib/Topology/UniformSpace/CompactConvergence.lean

tactic: rw [tendsto_iff_forall_compact_tendstoUniformlyOn]
state_before: α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K : Set α
V : Set (β × β)
f : C(α, β)
ι : Type u₃
p : Filter ι
F : ι → C(α, β)
h : TendstoLocallyUniformly (fun i a => (F i) a) (⇑f) p
⊢ Tendsto F p (𝓝 f)
state_after: α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K : Set α
V : Set (β × β)
f : C(α, β)
ι : Type u₃
p : Filter ι
F : ι → C(α, β)
h : TendstoLocallyUniformly (fun i a => (F i) a) (⇑f) p
⊢ ∀ (K : Set α), IsCompact K → TendstoUniformlyOn (fun i a => (F i) a) (⇑f) p K

tactic: intro K hK
state_before: α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K : Set α
V : Set (β × β)
f : C(α, β)
ι : Type u₃
p : Filter ι
F : ι → C(α, β)
h : TendstoLocallyUniformly (fun i a => (F i) a) (⇑f) p
⊢ ∀ (K : Set α), IsCompact K → TendstoUniformlyOn (fun i a => (F i) a) (⇑f) p K
state_after: α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V : Set (β × β)
f : C(α, β)
ι : Type u₃
p : Filter ι
F : ι → C(α, β)
h : TendstoLocallyUniformly (fun i a => (F i) a) (⇑f) p
K : Set α
hK : IsCompact K
⊢ TendstoUniformlyOn (fun i a => (F i) a) (⇑f) p K

tactic: rw [← tendstoLocallyUniformlyOn_iff_tendstoUniformlyOn_of_compact hK]
state_before: α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V : Set (β × β)
f : C(α, β)
ι : Type u₃
p : Filter ι
F : ι → C(α, β)
h : TendstoLocallyUniformly (fun i a => (F i) a) (⇑f) p
K : Set α
hK : IsCompact K
⊢ TendstoUniformlyOn (fun i a => (F i) a) (⇑f) p K
state_after: α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V : Set (β × β)
f : C(α, β)
ι : Type u₃
p : Filter ι
F : ι → C(α, β)
h : TendstoLocallyUniformly (fun i a => (F i) a) (⇑f) p
K : Set α
hK : IsCompact K
⊢ TendstoLocallyUniformlyOn (fun i a => (F i) a) (⇑f) p K

tactic: exact h.tendstoLocallyUniformlyOn
state_before: α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V : Set (β × β)
f : C(α, β)
ι : Type u₃
p : Filter ι
F : ι → C(α, β)
h : TendstoLocallyUniformly (fun i a => (F i) a) (⇑f) p
K : Set α
hK : IsCompact K
⊢ TendstoLocallyUniformlyOn (fun i a => (F i) a) (⇑f) p K
state_after: no goals
Theorem: ContDiffAt.continuousAt
File: Mathlib/Analysis/Calculus/ContDiff/Defs.lean

tactic: simpa [continuousWithinAt_univ] using h.continuousWithinAt
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
h : ContDiffAt 𝕜 n f x
⊢ ContinuousAt f x
state_after: no goals
Theorem: Valued.norm_nonneg
File: Mathlib/Topology/Algebra/NormedValued.lean

tactic: simp only [norm, NNReal.zero_le_coe]
state_before: K : Type u_1
hK : NormedField K
h : IsNonarchimedean (sorryAx (K → ℝ) true)
L : Type u_2
inst✝¹ : Field L
Γ₀ : Type u_3
inst✝ : LinearOrderedCommGroupWithZero Γ₀
val : Valued L Γ₀
hv : v.RankOne
x : L
⊢ 0 ≤ norm x
state_after: no goals
Theorem: IsNilpotent.isUnit_one_sub
File: Mathlib/RingTheory/Nilpotent/Basic.lean

tactic: rw [← IsUnit.neg_iff, neg_sub]
state_before: R : Type u_1
S : Type u_2
x y : R
inst✝ : Ring R
r : R
hnil : IsNilpotent r
⊢ IsUnit (1 - r)
state_after: R : Type u_1
S : Type u_2
x y : R
inst✝ : Ring R
r : R
hnil : IsNilpotent r
⊢ IsUnit (r - 1)

tactic: exact isUnit_sub_one hnil
state_before: R : Type u_1
S : Type u_2
x y : R
inst✝ : Ring R
r : R
hnil : IsNilpotent r
⊢ IsUnit (r - 1)
state_after: no goals
Theorem: Module.Finite.trans
File: Mathlib/RingTheory/Finiteness.lean

tactic: erw [Set.image2_smul, Submodule.span_smul_of_span_eq_top hs (↑t : Set M), ht,
  Submodule.restrictScalars_top]
state_before: R✝ : Type u_1
A✝ : Type u_2
B : Type u_3
M✝ : Type u_4
N : Type u_5
inst✝¹¹ : Semiring R✝
inst✝¹⁰ : AddCommMonoid M✝
inst✝⁹ : Module R✝ M✝
inst✝⁸ : AddCommMonoid N
inst✝⁷ : Module R✝ N
R : Type u_6
A : Type u_7
M : Type u_8
inst✝⁶ : Semiring R
inst✝⁵ : Semiring A
inst✝⁴ : Module R A
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : Module A M
inst✝ : IsScalarTower R A M
s : Finset A
hs : span R ↑s = ⊤
t : Finset M
ht : span A ↑t = ⊤
⊢ span R (image2 (fun x x_1 => x • x_1) ↑s ↑t) = ⊤
state_after: no goals
Theorem: Nat.ceilRoot_ne_zero
File: Mathlib/Data/Nat/Factorization/Root.lean

tactic: simp (config := { contextual := true }) [ceilRoot_def, not_imp_not, not_or]
state_before: a b n : ℕ
⊢ n.ceilRoot a ≠ 0 ↔ n ≠ 0 ∧ a ≠ 0
state_after: no goals
Theorem: PartialHomeomorph.trans_ofSet
File: Mathlib/Topology/PartialHomeomorph.lean

tactic: rw [trans_source, restr_source, ofSet_source, ← preimage_interior, hs.interior_eq]
state_before: X : Type u_1
X' : Type u_2
Y : Type u_3
Y' : Type u_4
Z : Type u_5
Z' : Type u_6
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace X'
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Y'
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace Z'
e : PartialHomeomorph X Y
e' : PartialHomeomorph Y Z
s : Set Y
hs : IsOpen s
⊢ (e.trans (ofSet s hs)).source = (e.restr (↑e ⁻¹' s)).source
state_after: no goals
Theorem: LazyList.append_nil
File: Mathlib/Data/LazyList/Basic.lean

tactic: induction' xs using LazyList.rec with _ _ _ _ ih
state_before: α : Type u_1
xs : LazyList α
⊢ xs.append (Thunk.pure nil) = xs
state_after: case nil
α : Type u_1
⊢ nil.append (Thunk.pure nil) = nil

case cons
α : Type u_1
xs : LazyList α
hd✝ : α
tl✝ : Thunk (LazyList α)
tl_ih✝ : ?m.42150 tl✝
⊢ (cons hd✝ tl✝).append (Thunk.pure nil) = cons hd✝ tl✝

case mk
α : Type u_1
xs : LazyList α
fn✝ : Unit → LazyList α
ih : ∀ (a : Unit), (fn✝ a).append (Thunk.pure nil) = fn✝ a
⊢ ?m.42150 { fn := fn✝ }

tactic: simp only [Thunk.pure, append, Thunk.get]
state_before: case nil
α : Type u_1
⊢ nil.append (Thunk.pure nil) = nil
state_after: no goals

tactic: simpa only [append, cons.injEq, true_and]
state_before: case cons
α : Type u_1
xs : LazyList α
hd✝ : α
tl✝ : Thunk (LazyList α)
tl_ih✝ : ?m.42150 tl✝
⊢ (cons hd✝ tl✝).append (Thunk.pure nil) = cons hd✝ tl✝
state_after: no goals

tactic: ext
state_before: case mk
α : Type u_1
xs : LazyList α
fn✝ : Unit → LazyList α
ih : ∀ (a : Unit), (fn✝ a).append (Thunk.pure nil) = fn✝ a
⊢ { fn := fun x => { fn := fn✝ }.get.append (Thunk.pure nil) } = { fn := fn✝ }
state_after: case mk.a
α : Type u_1
xs : LazyList α
fn✝ : Unit → LazyList α
ih : ∀ (a : Unit), (fn✝ a).append (Thunk.pure nil) = fn✝ a
⊢ { fn := fun x => { fn := fn✝ }.get.append (Thunk.pure nil) }.get = { fn := fn✝ }.get

tactic: apply ih
state_before: case mk.a
α : Type u_1
xs : LazyList α
fn✝ : Unit → LazyList α
ih : ∀ (a : Unit), (fn✝ a).append (Thunk.pure nil) = fn✝ a
⊢ { fn := fun x => { fn := fn✝ }.get.append (Thunk.pure nil) }.get = { fn := fn✝ }.get
state_after: no goals
Theorem: Real.rpow_logb_of_neg
File: Mathlib/Analysis/SpecialFunctions/Log/Base.lean

tactic: rw [rpow_logb_eq_abs b_pos b_ne_one (ne_of_lt hx)]
state_before: b x y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
hx : x < 0
⊢ b ^ logb b x = -x
state_after: b x y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
hx : x < 0
⊢ |x| = -x

tactic: exact abs_of_neg hx
state_before: b x y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
hx : x < 0
⊢ |x| = -x
state_after: no goals
Theorem: volume_setOf_liouville
File: Mathlib/NumberTheory/Liouville/Measure.lean

tactic: simpa only [ae_iff, Classical.not_not] using ae_not_liouville
state_before: ⊢ volume {x | Liouville x} = 0
state_after: no goals
Theorem: Nat.ascFactorial_of_sub
File: Mathlib/Data/Nat/Factorial/Basic.lean

tactic: rw [succ_ascFactorial, ascFactorial_succ]
state_before: n k : ℕ
⊢ (n - k) * (n - k + 1).ascFactorial k = (n - k).ascFactorial (k + 1)
state_after: no goals
Theorem: MeasureTheory.union_ae_eq_univ_of_ae_eq_univ_right
File: Mathlib/MeasureTheory/OuterMeasure/AE.lean

tactic: convert ae_eq_set_union (ae_eq_refl s) h
state_before: α : Type u_1
β : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ : F
s t : Set α
h : t =ᶠ[ae μ] univ
⊢ s ∪ t =ᶠ[ae μ] univ
state_after: case h.e'_5
α : Type u_1
β : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ : F
s t : Set α
h : t =ᶠ[ae μ] univ
⊢ univ = s ∪ univ

tactic: rw [union_univ]
state_before: case h.e'_5
α : Type u_1
β : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ : F
s t : Set α
h : t =ᶠ[ae μ] univ
⊢ univ = s ∪ univ
state_after: no goals
Theorem: Equiv.piCongr_apply_apply
File: Mathlib/Logic/Equiv/Basic.lean

tactic: simp only [piCongr, piCongrRight, trans_apply, coe_fn_mk, piCongrLeft_apply_apply]
state_before: α : Sort u_1
β : Sort u_2
W : α → Sort w
Z : β → Sort z
h₁ : α ≃ β
h₂ : (a : α) → W a ≃ Z (h₁ a)
f : (a : α) → W a
a : α
⊢ (h₁.piCongr h₂) f (h₁ a) = (h₂ a) (f a)
state_after: no goals
Theorem: AlgEquiv.autCongr_refl
File: Mathlib/Algebra/Algebra/Equiv.lean

tactic: ext
state_before: R : Type uR
A₁ : Type uA₁
A₂ : Type uA₂
A₃ : Type uA₃
A₁' : Type uA₁'
A₂' : Type uA₂'
A₃' : Type uA₃'
inst✝¹² : CommSemiring R
inst✝¹¹ : Semiring A₁
inst✝¹⁰ : Semiring A₂
inst✝⁹ : Semiring A₃
inst✝⁸ : Semiring A₁'
inst✝⁷ : Semiring A₂'
inst✝⁶ : Semiring A₃'
inst✝⁵ : Algebra R A₁
inst✝⁴ : Algebra R A₂
inst✝³ : Algebra R A₃
inst✝² : Algebra R A₁'
inst✝¹ : Algebra R A₂'
inst✝ : Algebra R A₃'
e : A₁ ≃ₐ[R] A₂
⊢ refl.autCongr = MulEquiv.refl (A₁ ≃ₐ[R] A₁)
state_after: case h.h
R : Type uR
A₁ : Type uA₁
A₂ : Type uA₂
A₃ : Type uA₃
A₁' : Type uA₁'
A₂' : Type uA₂'
A₃' : Type uA₃'
inst✝¹² : CommSemiring R
inst✝¹¹ : Semiring A₁
inst✝¹⁰ : Semiring A₂
inst✝⁹ : Semiring A₃
inst✝⁸ : Semiring A₁'
inst✝⁷ : Semiring A₂'
inst✝⁶ : Semiring A₃'
inst✝⁵ : Algebra R A₁
inst✝⁴ : Algebra R A₂
inst✝³ : Algebra R A₃
inst✝² : Algebra R A₁'
inst✝¹ : Algebra R A₂'
inst✝ : Algebra R A₃'
e : A₁ ≃ₐ[R] A₂
x✝ : A₁ ≃ₐ[R] A₁
a✝ : A₁
⊢ (refl.autCongr x✝) a✝ = ((MulEquiv.refl (A₁ ≃ₐ[R] A₁)) x✝) a✝

tactic: rfl
state_before: case h.h
R : Type uR
A₁ : Type uA₁
A₂ : Type uA₂
A₃ : Type uA₃
A₁' : Type uA₁'
A₂' : Type uA₂'
A₃' : Type uA₃'
inst✝¹² : CommSemiring R
inst✝¹¹ : Semiring A₁
inst✝¹⁰ : Semiring A₂
inst✝⁹ : Semiring A₃
inst✝⁸ : Semiring A₁'
inst✝⁷ : Semiring A₂'
inst✝⁶ : Semiring A₃'
inst✝⁵ : Algebra R A₁
inst✝⁴ : Algebra R A₂
inst✝³ : Algebra R A₃
inst✝² : Algebra R A₁'
inst✝¹ : Algebra R A₂'
inst✝ : Algebra R A₃'
e : A₁ ≃ₐ[R] A₂
x✝ : A₁ ≃ₐ[R] A₁
a✝ : A₁
⊢ (refl.autCongr x✝) a✝ = ((MulEquiv.refl (A₁ ≃ₐ[R] A₁)) x✝) a✝
state_after: no goals
Theorem: Hyperreal.not_infinite_real
File: Mathlib/Data/Real/Hyperreal.lean

tactic: rw [not_infinite_iff_exist_lt_gt]
state_before: r : ℝ
⊢ ¬(↑r).Infinite
state_after: r : ℝ
⊢ ∃ r_1 s, ↑r_1 < ↑r ∧ ↑r < ↑s

tactic: exact ⟨r - 1, r + 1, coe_lt_coe.2 <| sub_one_lt r, coe_lt_coe.2 <| lt_add_one r⟩
state_before: r : ℝ
⊢ ∃ r_1 s, ↑r_1 < ↑r ∧ ↑r < ↑s
state_after: no goals
Theorem: RCLike.lt_iff_re_im
File: Mathlib/Analysis/RCLike/Basic.lean

tactic: simp_rw [lt_iff_le_and_ne, @RCLike.le_iff_re_im K]
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w : K
⊢ z < w ↔ re z < re w ∧ im z = im w
state_after: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w : K
⊢ (re z ≤ re w ∧ im z = im w) ∧ z ≠ w ↔ (re z ≤ re w ∧ re z ≠ re w) ∧ im z = im w

tactic: constructor
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w : K
⊢ (re z ≤ re w ∧ im z = im w) ∧ z ≠ w ↔ (re z ≤ re w ∧ re z ≠ re w) ∧ im z = im w
state_after: case mp
K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w : K
⊢ (re z ≤ re w ∧ im z = im w) ∧ z ≠ w → (re z ≤ re w ∧ re z ≠ re w) ∧ im z = im w

case mpr
K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w : K
⊢ (re z ≤ re w ∧ re z ≠ re w) ∧ im z = im w → (re z ≤ re w ∧ im z = im w) ∧ z ≠ w

tactic: rintro ⟨⟨hr, hi⟩, heq⟩
state_before: case mp
K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w : K
⊢ (re z ≤ re w ∧ im z = im w) ∧ z ≠ w → (re z ≤ re w ∧ re z ≠ re w) ∧ im z = im w
state_after: case mp.intro.intro
K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w : K
heq : z ≠ w
hr : re z ≤ re w
hi : im z = im w
⊢ (re z ≤ re w ∧ re z ≠ re w) ∧ im z = im w

tactic: exact ⟨⟨hr, mt (fun hreq => ext hreq hi) heq⟩, hi⟩
state_before: case mp.intro.intro
K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w : K
heq : z ≠ w
hr : re z ≤ re w
hi : im z = im w
⊢ (re z ≤ re w ∧ re z ≠ re w) ∧ im z = im w
state_after: no goals

tactic: rintro ⟨⟨hr, hrn⟩, hi⟩
state_before: case mpr
K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w : K
⊢ (re z ≤ re w ∧ re z ≠ re w) ∧ im z = im w → (re z ≤ re w ∧ im z = im w) ∧ z ≠ w
state_after: case mpr.intro.intro
K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w : K
hi : im z = im w
hr : re z ≤ re w
hrn : re z ≠ re w
⊢ (re z ≤ re w ∧ im z = im w) ∧ z ≠ w

tactic: exact ⟨⟨hr, hi⟩, ne_of_apply_ne _ hrn⟩
state_before: case mpr.intro.intro
K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w : K
hi : im z = im w
hr : re z ≤ re w
hrn : re z ≠ re w
⊢ (re z ≤ re w ∧ im z = im w) ∧ z ≠ w
state_after: no goals
Theorem: Bool.xor_iff_ne
File: Mathlib/Data/Bool/Basic.lean

tactic: decide
state_before: ⊢ ∀ {x y : Bool}, xor x y = true ↔ x ≠ y
state_after: no goals
Theorem: SimpleGraph.Walk.adj_getVert_succ
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: cases hi
state_before: case nil
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v u✝ : V
i : ℕ
hi : i < nil.length
⊢ G.Adj (nil.getVert i) (nil.getVert (i + 1))
state_after: no goals

tactic: cases i
state_before: case cons
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v u✝ v✝ w✝ : V
hxy : G.Adj u✝ v✝
p✝ : G.Walk v✝ w✝
ih : ∀ {i : ℕ}, i < p✝.length → G.Adj (p✝.getVert i) (p✝.getVert (i + 1))
i : ℕ
hi : i < (cons hxy p✝).length
⊢ G.Adj ((cons hxy p✝).getVert i) ((cons hxy p✝).getVert (i + 1))
state_after: case cons.zero
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v u✝ v✝ w✝ : V
hxy : G.Adj u✝ v✝
p✝ : G.Walk v✝ w✝
ih : ∀ {i : ℕ}, i < p✝.length → G.Adj (p✝.getVert i) (p✝.getVert (i + 1))
hi : 0 < (cons hxy p✝).length
⊢ G.Adj ((cons hxy p✝).getVert 0) ((cons hxy p✝).getVert (0 + 1))

case cons.succ
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v u✝ v✝ w✝ : V
hxy : G.Adj u✝ v✝
p✝ : G.Walk v✝ w✝
ih : ∀ {i : ℕ}, i < p✝.length → G.Adj (p✝.getVert i) (p✝.getVert (i + 1))
n✝ : ℕ
hi : n✝ + 1 < (cons hxy p✝).length
⊢ G.Adj ((cons hxy p✝).getVert (n✝ + 1)) ((cons hxy p✝).getVert (n✝ + 1 + 1))

tactic: simp [getVert, hxy]
state_before: case cons.zero
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v u✝ v✝ w✝ : V
hxy : G.Adj u✝ v✝
p✝ : G.Walk v✝ w✝
ih : ∀ {i : ℕ}, i < p✝.length → G.Adj (p✝.getVert i) (p✝.getVert (i + 1))
hi : 0 < (cons hxy p✝).length
⊢ G.Adj ((cons hxy p✝).getVert 0) ((cons hxy p✝).getVert (0 + 1))
state_after: no goals

tactic: exact ih (Nat.succ_lt_succ_iff.1 hi)
state_before: case cons.succ
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v u✝ v✝ w✝ : V
hxy : G.Adj u✝ v✝
p✝ : G.Walk v✝ w✝
ih : ∀ {i : ℕ}, i < p✝.length → G.Adj (p✝.getVert i) (p✝.getVert (i + 1))
n✝ : ℕ
hi : n✝ + 1 < (cons hxy p✝).length
⊢ G.Adj ((cons hxy p✝).getVert (n✝ + 1)) ((cons hxy p✝).getVert (n✝ + 1 + 1))
state_after: no goals
Theorem: Ideal.jacobson_bot_polynomial_of_jacobson_bot
File: Mathlib/RingTheory/JacobsonIdeal.lean

tactic: refine eq_bot_iff.2 (le_trans jacobson_bot_polynomial_le_sInf_map_maximal ?_)
state_before: R : Type u
S : Type v
inst✝ : CommRing R
h : ⊥.jacobson = ⊥
⊢ ⊥.jacobson = ⊥
state_after: R : Type u
S : Type v
inst✝ : CommRing R
h : ⊥.jacobson = ⊥
⊢ sInf (map C '' {J | J.IsMaximal}) ≤ ⊥

tactic: refine fun f hf => (Submodule.mem_bot R[X]).2 <| Polynomial.ext fun n =>
  Trans.trans (?_ : coeff f n = 0) (coeff_zero n).symm
state_before: R : Type u
S : Type v
inst✝ : CommRing R
h : ⊥.jacobson = ⊥
⊢ sInf (map C '' {J | J.IsMaximal}) ≤ ⊥
state_after: R : Type u
S : Type v
inst✝ : CommRing R
h : ⊥.jacobson = ⊥
f : R[X]
hf : f ∈ sInf (map C '' {J | J.IsMaximal})
n : ℕ
⊢ f.coeff n = 0

tactic: suffices f.coeff n ∈ Ideal.jacobson ⊥ by rwa [h, Submodule.mem_bot] at this
state_before: R : Type u
S : Type v
inst✝ : CommRing R
h : ⊥.jacobson = ⊥
f : R[X]
hf : f ∈ sInf (map C '' {J | J.IsMaximal})
n : ℕ
⊢ f.coeff n = 0
state_after: R : Type u
S : Type v
inst✝ : CommRing R
h : ⊥.jacobson = ⊥
f : R[X]
hf : f ∈ sInf (map C '' {J | J.IsMaximal})
n : ℕ
⊢ f.coeff n ∈ ⊥.jacobson

tactic: exact mem_sInf.2 fun j hj => (mem_map_C_iff.1 ((mem_sInf.1 hf) ⟨j, ⟨hj.2, rfl⟩⟩)) n
state_before: R : Type u
S : Type v
inst✝ : CommRing R
h : ⊥.jacobson = ⊥
f : R[X]
hf : f ∈ sInf (map C '' {J | J.IsMaximal})
n : ℕ
⊢ f.coeff n ∈ ⊥.jacobson
state_after: no goals

tactic: rwa [h, Submodule.mem_bot] at this
state_before: R : Type u
S : Type v
inst✝ : CommRing R
h : ⊥.jacobson = ⊥
f : R[X]
hf : f ∈ sInf (map C '' {J | J.IsMaximal})
n : ℕ
this : f.coeff n ∈ ⊥.jacobson
⊢ f.coeff n = 0
state_after: no goals
Theorem: CategoryTheory.NatIso.cancel_natIso_inv_right_assoc
File: Mathlib/CategoryTheory/NatIso.lean

tactic: simp only [← Category.assoc, cancel_mono, refl]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
F G : C ⥤ D
α : F ≅ G
W X X' : D
Y : C
f : W ⟶ X
g : X ⟶ G.obj Y
f' : W ⟶ X'
g' : X' ⟶ G.obj Y
⊢ f ≫ g ≫ α.inv.app Y = f' ≫ g' ≫ α.inv.app Y ↔ f ≫ g = f' ≫ g'
state_after: no goals
Theorem: MvPolynomial.mem_vars
File: Mathlib/Algebra/MvPolynomial/Variables.lean

tactic: classical simp only [vars_def, Multiset.mem_toFinset, mem_degrees, mem_support_iff, exists_prop]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
i : σ
⊢ i ∈ p.vars ↔ ∃ d ∈ p.support, i ∈ d.support
state_after: no goals

tactic: simp only [vars_def, Multiset.mem_toFinset, mem_degrees, mem_support_iff, exists_prop]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
i : σ
⊢ i ∈ p.vars ↔ ∃ d ∈ p.support, i ∈ d.support
state_after: no goals
Theorem: tendsto_cofinite_cocompact_iff
File: Mathlib/Topology/DiscreteSubset.lean

tactic: rw [hasBasis_cocompact.tendsto_right_iff]
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
f : X → Y
⊢ Tendsto f cofinite (cocompact Y) ↔ ∀ (K : Set Y), IsCompact K → (f ⁻¹' K).Finite
state_after: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
f : X → Y
⊢ (∀ (i : Set Y), IsCompact i → ∀ᶠ (x : X) in cofinite, f x ∈ iᶜ) ↔ ∀ (K : Set Y), IsCompact K → (f ⁻¹' K).Finite

tactic: refine forall₂_congr (fun K _ ↦ ?_)
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
f : X → Y
⊢ (∀ (i : Set Y), IsCompact i → ∀ᶠ (x : X) in cofinite, f x ∈ iᶜ) ↔ ∀ (K : Set Y), IsCompact K → (f ⁻¹' K).Finite
state_after: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
f : X → Y
K : Set Y
x✝ : IsCompact K
⊢ (∀ᶠ (x : X) in cofinite, f x ∈ Kᶜ) ↔ (f ⁻¹' K).Finite

tactic: simp only [mem_compl_iff, eventually_cofinite, not_not, preimage]
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
f : X → Y
K : Set Y
x✝ : IsCompact K
⊢ (∀ᶠ (x : X) in cofinite, f x ∈ Kᶜ) ↔ (f ⁻¹' K).Finite
state_after: no goals
Theorem: Num.ofZNum'_toNat
File: Mathlib/Data/Num/Lemmas.lean

tactic: rw [← PosNum.to_nat_to_int p]
state_before: α : Type u_1
p : PosNum
⊢ castNum <$> ofZNum' (ZNum.pos p) = (↑p).toNat'
state_after: α : Type u_1
p : PosNum
⊢ castNum <$> ofZNum' (ZNum.pos p) = (↑↑p).toNat'

tactic: rfl
state_before: α : Type u_1
p : PosNum
⊢ castNum <$> ofZNum' (ZNum.pos p) = (↑↑p).toNat'
state_after: no goals

tactic: rw [← succ'_to_nat]
state_before: α : Type u_1
p : PosNum
⊢ ↑(↑p.pred' + 1) = ↑p
state_after: α : Type u_1
p : PosNum
⊢ ↑↑p.pred'.succ' = ↑p

tactic: simp
state_before: α : Type u_1
p : PosNum
⊢ ↑↑p.pred'.succ' = ↑p
state_after: no goals
Theorem: Finset.abs_sum_of_nonneg
File: Mathlib/Algebra/Order/BigOperators/Group/Finset.lean

tactic: rw [abs_of_nonneg (Finset.sum_nonneg hf)]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
G✝ : Type u_6
k : Type u_7
R : Type u_8
G : Type u_9
inst✝ : LinearOrderedAddCommGroup G
f : ι → G
s : Finset ι
hf : ∀ i ∈ s, 0 ≤ f i
⊢ |∑ i ∈ s, f i| = ∑ i ∈ s, f i
state_after: no goals
Theorem: Convex.combo_self_interior_subset_interior
File: Mathlib/Analysis/Convex/Topology.lean

tactic: rw [add_comm]
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
s : Set E
hs : Convex 𝕜 s
a b : 𝕜
ha : 0 ≤ a
hb : 0 < b
hab : a + b = 1
⊢ a • s + b • interior s ⊆ interior s
state_after: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
s : Set E
hs : Convex 𝕜 s
a b : 𝕜
ha : 0 ≤ a
hb : 0 < b
hab : a + b = 1
⊢ b • interior s + a • s ⊆ interior s

tactic: exact hs.combo_interior_self_subset_interior hb ha (add_comm a b ▸ hab)
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
s : Set E
hs : Convex 𝕜 s
a b : 𝕜
ha : 0 ≤ a
hb : 0 < b
hab : a + b = 1
⊢ b • interior s + a • s ⊆ interior s
state_after: no goals
Theorem: UniformFun.postcomp_uniformContinuous
File: Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean

tactic: refine uniformContinuous_iff.mpr ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
f : γ → β
hf : UniformContinuous f
⊢ UniformContinuous (⇑ofFun ∘ (fun x => f ∘ x) ∘ ⇑toFun)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
f : γ → β
hf : UniformContinuous f
⊢ uniformSpace α γ ≤ UniformSpace.comap (⇑ofFun ∘ (fun x => f ∘ x) ∘ ⇑toFun) (uniformSpace α β)

tactic: exact (UniformFun.mono (uniformContinuous_iff.mp hf)).trans_eq UniformFun.comap_eq
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
f : γ → β
hf : UniformContinuous f
⊢ uniformSpace α γ ≤ UniformSpace.comap (⇑ofFun ∘ (fun x => f ∘ x) ∘ ⇑toFun) (uniformSpace α β)
state_after: no goals
Theorem: Finset.noncommProd_cons'
File: Mathlib/Data/Finset/NoncommProd.lean

tactic: simp_rw [noncommProd, Finset.cons_val, Multiset.map_cons, Multiset.noncommProd_cons']
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f✝ : α → β → β
op : α → α → α
inst✝¹ : Monoid β
inst✝ : Monoid γ
s : Finset α
a : α
f : α → β
ha : a ∉ s
comm : (↑(cons a s ha)).Pairwise fun a b => Commute (f a) (f b)
⊢ (cons a s ha).noncommProd f comm = s.noncommProd f ⋯ * f a
state_after: no goals