1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: HasCompactMulSupport.intro'
File: Mathlib/Topology/Support.lean

tactic: have : mulTSupport f ⊆ K := by
  rw [← h'K.closure_eq]
  apply closure_mono (mulSupport_subset_iff'.2 hfK)
state_before: X : Type u_1
α : Type u_2
α' : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
M : Type u_7
E : Type u_8
R : Type u_9
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace α'
inst✝² : One β
inst✝¹ : One γ
inst✝ : One δ
g : β → γ
f : α → β
f₂ : α → γ
m : β → γ → δ
x : α
K : Set α
hK : IsCompact K
h'K : IsClosed K
hfK : ∀ x ∉ K, f x = 1
⊢ HasCompactMulSupport f
state_after: X : Type u_1
α : Type u_2
α' : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
M : Type u_7
E : Type u_8
R : Type u_9
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace α'
inst✝² : One β
inst✝¹ : One γ
inst✝ : One δ
g : β → γ
f : α → β
f₂ : α → γ
m : β → γ → δ
x : α
K : Set α
hK : IsCompact K
h'K : IsClosed K
hfK : ∀ x ∉ K, f x = 1
this : mulTSupport f ⊆ K
⊢ HasCompactMulSupport f

tactic: exact IsCompact.of_isClosed_subset hK ( isClosed_mulTSupport f) this
state_before: X : Type u_1
α : Type u_2
α' : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
M : Type u_7
E : Type u_8
R : Type u_9
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace α'
inst✝² : One β
inst✝¹ : One γ
inst✝ : One δ
g : β → γ
f : α → β
f₂ : α → γ
m : β → γ → δ
x : α
K : Set α
hK : IsCompact K
h'K : IsClosed K
hfK : ∀ x ∉ K, f x = 1
this : mulTSupport f ⊆ K
⊢ HasCompactMulSupport f
state_after: no goals

tactic: rw [← h'K.closure_eq]
state_before: X : Type u_1
α : Type u_2
α' : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
M : Type u_7
E : Type u_8
R : Type u_9
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace α'
inst✝² : One β
inst✝¹ : One γ
inst✝ : One δ
g : β → γ
f : α → β
f₂ : α → γ
m : β → γ → δ
x : α
K : Set α
hK : IsCompact K
h'K : IsClosed K
hfK : ∀ x ∉ K, f x = 1
⊢ mulTSupport f ⊆ K
state_after: X : Type u_1
α : Type u_2
α' : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
M : Type u_7
E : Type u_8
R : Type u_9
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace α'
inst✝² : One β
inst✝¹ : One γ
inst✝ : One δ
g : β → γ
f : α → β
f₂ : α → γ
m : β → γ → δ
x : α
K : Set α
hK : IsCompact K
h'K : IsClosed K
hfK : ∀ x ∉ K, f x = 1
⊢ mulTSupport f ⊆ closure K

tactic: apply closure_mono (mulSupport_subset_iff'.2 hfK)
state_before: X : Type u_1
α : Type u_2
α' : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
M : Type u_7
E : Type u_8
R : Type u_9
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace α'
inst✝² : One β
inst✝¹ : One γ
inst✝ : One δ
g : β → γ
f : α → β
f₂ : α → γ
m : β → γ → δ
x : α
K : Set α
hK : IsCompact K
h'K : IsClosed K
hfK : ∀ x ∉ K, f x = 1
⊢ mulTSupport f ⊆ closure K
state_after: no goals
Theorem: PiLp.nnnorm_equiv_symm_const'
File: Mathlib/Analysis/NormedSpace/PiLp.lean

tactic: rcases em <| p = ∞ with (rfl | hp)
state_before: p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β✝ : ι → Type u_4
inst✝⁸ : Fact (1 ≤ p)
inst✝⁷ : Fintype ι
inst✝⁶ : Semiring 𝕜
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (α i)
inst✝⁴ : (i : ι) → SeminormedAddCommGroup (β✝ i)
inst✝³ : (i : ι) → Module 𝕜 (α i)
inst✝² : (i : ι) → Module 𝕜 (β✝ i)
c : 𝕜
β : Type u_5
inst✝¹ : SeminormedAddCommGroup β
inst✝ : Nonempty ι
b : β
⊢ ‖(WithLp.equiv p (ι → β)).symm (Function.const ι b)‖₊ = ↑(Fintype.card ι) ^ (1 / p).toReal * ‖b‖₊
state_after: case inl
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β✝ : ι → Type u_4
inst✝⁸ : Fintype ι
inst✝⁷ : Semiring 𝕜
inst✝⁶ : (i : ι) → SeminormedAddCommGroup (α i)
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (β✝ i)
inst✝⁴ : (i : ι) → Module 𝕜 (α i)
inst✝³ : (i : ι) → Module 𝕜 (β✝ i)
c : 𝕜
β : Type u_5
inst✝² : SeminormedAddCommGroup β
inst✝¹ : Nonempty ι
b : β
inst✝ : Fact (1 ≤ ⊤)
⊢ ‖(WithLp.equiv ⊤ (ι → β)).symm (Function.const ι b)‖₊ = ↑(Fintype.card ι) ^ (1 / ⊤).toReal * ‖b‖₊

case inr
p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β✝ : ι → Type u_4
inst✝⁸ : Fact (1 ≤ p)
inst✝⁷ : Fintype ι
inst✝⁶ : Semiring 𝕜
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (α i)
inst✝⁴ : (i : ι) → SeminormedAddCommGroup (β✝ i)
inst✝³ : (i : ι) → Module 𝕜 (α i)
inst✝² : (i : ι) → Module 𝕜 (β✝ i)
c : 𝕜
β : Type u_5
inst✝¹ : SeminormedAddCommGroup β
inst✝ : Nonempty ι
b : β
hp : ¬p = ⊤
⊢ ‖(WithLp.equiv p (ι → β)).symm (Function.const ι b)‖₊ = ↑(Fintype.card ι) ^ (1 / p).toReal * ‖b‖₊

tactic: simp only [WithLp.equiv_symm_pi_apply, ENNReal.div_top, ENNReal.zero_toReal, NNReal.rpow_zero,
  one_mul, nnnorm_eq_ciSup, Function.const_apply, ciSup_const]
state_before: case inl
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β✝ : ι → Type u_4
inst✝⁸ : Fintype ι
inst✝⁷ : Semiring 𝕜
inst✝⁶ : (i : ι) → SeminormedAddCommGroup (α i)
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (β✝ i)
inst✝⁴ : (i : ι) → Module 𝕜 (α i)
inst✝³ : (i : ι) → Module 𝕜 (β✝ i)
c : 𝕜
β : Type u_5
inst✝² : SeminormedAddCommGroup β
inst✝¹ : Nonempty ι
b : β
inst✝ : Fact (1 ≤ ⊤)
⊢ ‖(WithLp.equiv ⊤ (ι → β)).symm (Function.const ι b)‖₊ = ↑(Fintype.card ι) ^ (1 / ⊤).toReal * ‖b‖₊
state_after: no goals

tactic: exact nnnorm_equiv_symm_const hp b
state_before: case inr
p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β✝ : ι → Type u_4
inst✝⁸ : Fact (1 ≤ p)
inst✝⁷ : Fintype ι
inst✝⁶ : Semiring 𝕜
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (α i)
inst✝⁴ : (i : ι) → SeminormedAddCommGroup (β✝ i)
inst✝³ : (i : ι) → Module 𝕜 (α i)
inst✝² : (i : ι) → Module 𝕜 (β✝ i)
c : 𝕜
β : Type u_5
inst✝¹ : SeminormedAddCommGroup β
inst✝ : Nonempty ι
b : β
hp : ¬p = ⊤
⊢ ‖(WithLp.equiv p (ι → β)).symm (Function.const ι b)‖₊ = ↑(Fintype.card ι) ^ (1 / p).toReal * ‖b‖₊
state_after: no goals
Theorem: Finite.card_option
File: Mathlib/Data/Finite/Card.lean

tactic: haveI := Fintype.ofFinite α
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Finite α
⊢ Nat.card (Option α) = Nat.card α + 1
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Finite α
this : Fintype α
⊢ Nat.card (Option α) = Nat.card α + 1

tactic: simp only [Nat.card_eq_fintype_card, Fintype.card_option]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Finite α
this : Fintype α
⊢ Nat.card (Option α) = Nat.card α + 1
state_after: no goals
Theorem: CategoryTheory.isIso_of_yoneda_map_bijective
File: Mathlib/CategoryTheory/Yoneda.lean

tactic: obtain ⟨g, hg : g ≫ f = 𝟙 Y⟩ := (hf Y).2 (𝟙 Y)
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
X Y : C
f : X ⟶ Y
hf : ∀ (T : C), Function.Bijective fun x => x ≫ f
⊢ IsIso f
state_after: case intro
C : Type u₁
inst✝ : Category.{v₁, u₁} C
X Y : C
f : X ⟶ Y
hf : ∀ (T : C), Function.Bijective fun x => x ≫ f
g : Y ⟶ X
hg : g ≫ f = 𝟙 Y
⊢ IsIso f

tactic: exact ⟨g, (hf _).1 (by aesop_cat), hg⟩
state_before: case intro
C : Type u₁
inst✝ : Category.{v₁, u₁} C
X Y : C
f : X ⟶ Y
hf : ∀ (T : C), Function.Bijective fun x => x ≫ f
g : Y ⟶ X
hg : g ≫ f = 𝟙 Y
⊢ IsIso f
state_after: no goals

tactic: aesop_cat
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
X Y : C
f : X ⟶ Y
hf : ∀ (T : C), Function.Bijective fun x => x ≫ f
g : Y ⟶ X
hg : g ≫ f = 𝟙 Y
⊢ (fun x => x ≫ f) (f ≫ g) = (fun x => x ≫ f) (𝟙 X)
state_after: no goals
Theorem: PrimeSpectrum.basicOpen_one
File: Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean

tactic: simp
state_before: R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
⊢ ↑(basicOpen 1) = ↑⊤
state_after: no goals
Theorem: Finset.image_add_left_Ico
File: Mathlib/Algebra/Order/Interval/Finset.lean

tactic: rw [← map_add_left_Ico, map_eq_image, addLeftEmbedding, Embedding.coeFn_mk]
state_before: ι : Type u_1
α : Type u_2
inst✝³ : OrderedCancelAddCommMonoid α
inst✝² : ExistsAddOfLE α
inst✝¹ : LocallyFiniteOrder α
inst✝ : DecidableEq α
a b c : α
⊢ image (fun x => c + x) (Ico a b) = Ico (c + a) (c + b)
state_after: no goals
Theorem: Localization.mk_mul
File: Mathlib/GroupTheory/MonoidLocalization.lean

tactic: rw [Localization.mul]
state_before: M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
a c : M
b d : ↥S
⊢ Localization.mul S (mk a b) (mk c d) = mk (a * c) (b * d)
state_after: M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
a c : M
b d : ↥S
⊢ Mul.mul (mk a b) (mk c d) = mk (a * c) (b * d)

tactic: rfl
state_before: M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
a c : M
b d : ↥S
⊢ Mul.mul (mk a b) (mk c d) = mk (a * c) (b * d)
state_after: no goals
Theorem: WithTop.add_right_cancel_iff
File: Mathlib/Algebra/Order/Monoid/WithTop.lean

tactic: lift a to α using ha
state_before: α : Type u
β : Type v
inst✝¹ : Add α
a b c d : WithTop α
x y : α
inst✝ : IsRightCancelAdd α
ha : a ≠ ⊤
⊢ b + a = c + a ↔ b = c
state_after: case intro
α : Type u
β : Type v
inst✝¹ : Add α
b c d : WithTop α
x y : α
inst✝ : IsRightCancelAdd α
a : α
⊢ b + ↑a = c + ↑a ↔ b = c

tactic: obtain rfl | hb := eq_or_ne b ⊤
state_before: case intro
α : Type u
β : Type v
inst✝¹ : Add α
b c d : WithTop α
x y : α
inst✝ : IsRightCancelAdd α
a : α
⊢ b + ↑a = c + ↑a ↔ b = c
state_after: case intro.inl
α : Type u
β : Type v
inst✝¹ : Add α
c d : WithTop α
x y : α
inst✝ : IsRightCancelAdd α
a : α
⊢ ⊤ + ↑a = c + ↑a ↔ ⊤ = c

case intro.inr
α : Type u
β : Type v
inst✝¹ : Add α
b c d : WithTop α
x y : α
inst✝ : IsRightCancelAdd α
a : α
hb : b ≠ ⊤
⊢ b + ↑a = c + ↑a ↔ b = c

tactic: lift b to α using hb
state_before: case intro.inr
α : Type u
β : Type v
inst✝¹ : Add α
b c d : WithTop α
x y : α
inst✝ : IsRightCancelAdd α
a : α
hb : b ≠ ⊤
⊢ b + ↑a = c + ↑a ↔ b = c
state_after: case intro.inr.intro
α : Type u
β : Type v
inst✝¹ : Add α
c d : WithTop α
x y : α
inst✝ : IsRightCancelAdd α
a b : α
⊢ ↑b + ↑a = c + ↑a ↔ ↑b = c

tactic: simp_rw [← WithTop.coe_add, eq_comm, WithTop.add_eq_coe, coe_eq_coe, exists_and_left,
  exists_eq_left, add_left_inj, exists_eq_right, eq_comm]
state_before: case intro.inr.intro
α : Type u
β : Type v
inst✝¹ : Add α
c d : WithTop α
x y : α
inst✝ : IsRightCancelAdd α
a b : α
⊢ ↑b + ↑a = c + ↑a ↔ ↑b = c
state_after: no goals

tactic: rw [top_add, eq_comm, WithTop.add_coe_eq_top_iff, eq_comm]
state_before: case intro.inl
α : Type u
β : Type v
inst✝¹ : Add α
c d : WithTop α
x y : α
inst✝ : IsRightCancelAdd α
a : α
⊢ ⊤ + ↑a = c + ↑a ↔ ⊤ = c
state_after: no goals
Theorem: Multiset.sizeOf_lt_sizeOf_of_mem
File: Mathlib/Data/Multiset/Basic.lean

tactic: induction' s using Quot.inductionOn with l a b
state_before: α : Type u_1
β : Type v
γ : Type u_2
inst✝ : SizeOf α
x : α
s : Multiset α
hx : x ∈ s
⊢ sizeOf x < sizeOf s
state_after: case h
α : Type u_1
β : Type v
γ : Type u_2
inst✝ : SizeOf α
x : α
l : List α
hx : x ∈ Quot.mk Setoid.r l
⊢ sizeOf x < sizeOf (Quot.mk Setoid.r l)

tactic: exact List.sizeOf_lt_sizeOf_of_mem hx
state_before: case h
α : Type u_1
β : Type v
γ : Type u_2
inst✝ : SizeOf α
x : α
l : List α
hx : x ∈ Quot.mk Setoid.r l
⊢ sizeOf x < sizeOf (Quot.mk Setoid.r l)
state_after: no goals
Theorem: SimpleGraph.fromEdgeSet_inter
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

tactic: ext v w
state_before: ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u v w : V
e : Sym2 V
s✝ s t : Set (Sym2 V)
⊢ fromEdgeSet (s ∩ t) = fromEdgeSet s ⊓ fromEdgeSet t
state_after: case Adj.h.h.a
ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u v✝ w✝ : V
e : Sym2 V
s✝ s t : Set (Sym2 V)
v w : V
⊢ (fromEdgeSet (s ∩ t)).Adj v w ↔ (fromEdgeSet s ⊓ fromEdgeSet t).Adj v w

tactic: simp only [fromEdgeSet_adj, Set.mem_inter_iff, Ne, inf_adj]
state_before: case Adj.h.h.a
ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u v✝ w✝ : V
e : Sym2 V
s✝ s t : Set (Sym2 V)
v w : V
⊢ (fromEdgeSet (s ∩ t)).Adj v w ↔ (fromEdgeSet s ⊓ fromEdgeSet t).Adj v w
state_after: case Adj.h.h.a
ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u v✝ w✝ : V
e : Sym2 V
s✝ s t : Set (Sym2 V)
v w : V
⊢ (s(v, w) ∈ s ∧ s(v, w) ∈ t) ∧ ¬v = w ↔ (s(v, w) ∈ s ∧ ¬v = w) ∧ s(v, w) ∈ t ∧ ¬v = w

tactic: tauto
state_before: case Adj.h.h.a
ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u v✝ w✝ : V
e : Sym2 V
s✝ s t : Set (Sym2 V)
v w : V
⊢ (s(v, w) ∈ s ∧ s(v, w) ∈ t) ∧ ¬v = w ↔ (s(v, w) ∈ s ∧ ¬v = w) ∧ s(v, w) ∈ t ∧ ¬v = w
state_after: no goals
Theorem: Basis.parallelepiped_basisFun
File: Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean

tactic: refine Eq.trans ?_ ((uIcc_of_le ?_).trans (Set.pi_univ_Icc _ _).symm)
state_before: ι : Type u_1
inst✝ : Fintype ι
⊢ ↑(Pi.basisFun ℝ ι).parallelepiped = ↑(PositiveCompacts.piIcc01 ι)
state_after: case refine_1
ι : Type u_1
inst✝ : Fintype ι
⊢ ↑(Pi.basisFun ℝ ι).parallelepiped = uIcc (fun i => 0) fun i => 1

case refine_2
ι : Type u_1
inst✝ : Fintype ι
⊢ (fun i => 0) ≤ fun i => 1

tactic: classical convert parallelepiped_single (ι := ι) 1
state_before: case refine_1
ι : Type u_1
inst✝ : Fintype ι
⊢ ↑(Pi.basisFun ℝ ι).parallelepiped = uIcc (fun i => 0) fun i => 1
state_after: no goals

tactic: convert parallelepiped_single (ι := ι) 1
state_before: case refine_1
ι : Type u_1
inst✝ : Fintype ι
⊢ ↑(Pi.basisFun ℝ ι).parallelepiped = uIcc (fun i => 0) fun i => 1
state_after: no goals

tactic: exact zero_le_one
state_before: case refine_2
ι : Type u_1
inst✝ : Fintype ι
⊢ (fun i => 0) ≤ fun i => 1
state_after: no goals
Theorem: List.zip_of_prod
File: Mathlib/Data/List/Zip.lean

tactic: rw [← hl, ← hr, ← zip_unzip lp, ← unzip_left, ← unzip_right, zip_unzip, zip_unzip]
state_before: α : Type u
β : Type u_1
γ : Type u_2
δ : Type u_3
ε : Type u_4
l : List α
l' : List β
lp : List (α × β)
hl : map Prod.fst lp = l
hr : map Prod.snd lp = l'
⊢ lp = l.zip l'
state_after: no goals
Theorem: ContinuousLinearMap.curry_uncurryLeft
File: Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean

tactic: ext m x
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
n : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin n.succ → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin n.succ) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin n.succ) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : Ei 0 →L[𝕜] ContinuousMultilinearMap 𝕜 (fun i => Ei i.succ) G
⊢ f.uncurryLeft.curryLeft = f
state_after: case h.H
𝕜 : Type u
ι : Type v
ι' : Type v'
n : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin n.succ → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin n.succ) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin n.succ) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : Ei 0 →L[𝕜] ContinuousMultilinearMap 𝕜 (fun i => Ei i.succ) G
m : Ei 0
x : (i : Fin n) → Ei i.succ
⊢ (f.uncurryLeft.curryLeft m) x = (f m) x

tactic: rw [ContinuousMultilinearMap.curryLeft_apply, ContinuousLinearMap.uncurryLeft_apply, tail_cons,
  cons_zero]
state_before: case h.H
𝕜 : Type u
ι : Type v
ι' : Type v'
n : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin n.succ → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin n.succ) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin n.succ) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : Ei 0 →L[𝕜] ContinuousMultilinearMap 𝕜 (fun i => Ei i.succ) G
m : Ei 0
x : (i : Fin n) → Ei i.succ
⊢ (f.uncurryLeft.curryLeft m) x = (f m) x
state_after: no goals
Theorem: CategoryTheory.Limits.Types.isLimit_iff
File: Mathlib/CategoryTheory/Limits/Types.lean

tactic: refine ⟨fun ⟨t⟩ s hs ↦ ?_, fun h ↦ ⟨?_⟩⟩
state_before: J : Type v
inst✝ : Category.{w, v} J
F : J ⥤ Type u
c : Cone F
⊢ Nonempty (IsLimit c) ↔ ∀ s ∈ F.sections, ∃! x, ∀ (j : J), c.π.app j x = s j
state_after: case refine_1
J : Type v
inst✝ : Category.{w, v} J
F : J ⥤ Type u
c : Cone F
x✝ : Nonempty (IsLimit c)
s : (j : J) → F.obj j
hs : s ∈ F.sections
t : IsLimit c
⊢ ∃! x, ∀ (j : J), c.π.app j x = s j

case refine_2
J : Type v
inst✝ : Category.{w, v} J
F : J ⥤ Type u
c : Cone F
h : ∀ s ∈ F.sections, ∃! x, ∀ (j : J), c.π.app j x = s j
⊢ IsLimit c

tactic: let cs := coneOfSection hs
state_before: case refine_1
J : Type v
inst✝ : Category.{w, v} J
F : J ⥤ Type u
c : Cone F
x✝ : Nonempty (IsLimit c)
s : (j : J) → F.obj j
hs : s ∈ F.sections
t : IsLimit c
⊢ ∃! x, ∀ (j : J), c.π.app j x = s j
state_after: case refine_1
J : Type v
inst✝ : Category.{w, v} J
F : J ⥤ Type u
c : Cone F
x✝ : Nonempty (IsLimit c)
s : (j : J) → F.obj j
hs : s ∈ F.sections
t : IsLimit c
cs : Cone F := coneOfSection ⋯
⊢ ∃! x, ∀ (j : J), c.π.app j x = s j

tactic: exact ⟨t.lift cs ⟨⟩, fun j ↦ congr_fun (t.fac cs j) ⟨⟩,
  fun x hx ↦ congr_fun (t.uniq cs (fun _ ↦ x) fun j ↦ funext fun _ ↦ hx j) ⟨⟩⟩
state_before: case refine_1
J : Type v
inst✝ : Category.{w, v} J
F : J ⥤ Type u
c : Cone F
x✝ : Nonempty (IsLimit c)
s : (j : J) → F.obj j
hs : s ∈ F.sections
t : IsLimit c
cs : Cone F := coneOfSection ⋯
⊢ ∃! x, ∀ (j : J), c.π.app j x = s j
state_after: no goals

tactic: choose x hx using fun c y ↦ h _ (sectionOfCone c y).2
state_before: case refine_2
J : Type v
inst✝ : Category.{w, v} J
F : J ⥤ Type u
c : Cone F
h : ∀ s ∈ F.sections, ∃! x, ∀ (j : J), c.π.app j x = s j
⊢ IsLimit c
state_after: case refine_2
J : Type v
inst✝ : Category.{w, v} J
F : J ⥤ Type u
c : Cone F
h : ∀ s ∈ F.sections, ∃! x, ∀ (j : J), c.π.app j x = s j
x : (c_1 : Cone F) → c_1.pt → c.pt
hx :
  ∀ (c_1 : Cone F) (y : c_1.pt),
    (fun x => ∀ (j : J), c.π.app j x = ↑(sectionOfCone c_1 y) j) (x c_1 y) ∧
      ∀ (y_1 : c.pt), (fun x => ∀ (j : J), c.π.app j x = ↑(sectionOfCone c_1 y) j) y_1 → y_1 = x c_1 y
⊢ IsLimit c

tactic: exact ⟨x, fun c j ↦ funext fun y ↦ (hx c y).1 j,
  fun c f hf ↦ funext fun y ↦ (hx c y).2 (f y) (fun j ↦ congr_fun (hf j) y)⟩
state_before: case refine_2
J : Type v
inst✝ : Category.{w, v} J
F : J ⥤ Type u
c : Cone F
h : ∀ s ∈ F.sections, ∃! x, ∀ (j : J), c.π.app j x = s j
x : (c_1 : Cone F) → c_1.pt → c.pt
hx :
  ∀ (c_1 : Cone F) (y : c_1.pt),
    (fun x => ∀ (j : J), c.π.app j x = ↑(sectionOfCone c_1 y) j) (x c_1 y) ∧
      ∀ (y_1 : c.pt), (fun x => ∀ (j : J), c.π.app j x = ↑(sectionOfCone c_1 y) j) y_1 → y_1 = x c_1 y
⊢ IsLimit c
state_after: no goals
Theorem: CauSeq.sub_equiv_sub
File: Mathlib/Algebra/Order/CauSeq/Basic.lean

tactic: simpa only [sub_eq_add_neg] using add_equiv_add hf (neg_equiv_neg hg)
state_before: α : Type u_1
β : Type u_2
inst✝² : LinearOrderedField α
inst✝¹ : Ring β
abv : β → α
inst✝ : IsAbsoluteValue abv
f1 f2 g1 g2 : CauSeq β abv
hf : f1 ≈ f2
hg : g1 ≈ g2
⊢ f1 - g1 ≈ f2 - g2
state_after: no goals
Theorem: ZetaAsymptotics.term_tsum_one
File: Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean

tactic: rw [hasSum_iff_tendsto_nat_of_nonneg (fun n ↦ term_nonneg (n + 1) 1)]
state_before: ⊢ HasSum (fun n => term (n + 1) 1) (1 - γ)
state_after: ⊢ Tendsto (fun n => ∑ i ∈ Finset.range n, term (i + 1) 1) atTop (𝓝 (1 - γ))

tactic: show Tendsto (fun N ↦ term_sum 1 N) atTop _
state_before: ⊢ Tendsto (fun n => ∑ i ∈ Finset.range n, term (i + 1) 1) atTop (𝓝 (1 - γ))
state_after: ⊢ Tendsto (fun N => term_sum 1 N) atTop (𝓝 (1 - γ))

tactic: simp_rw [term_sum_one, sub_eq_neg_add]
state_before: ⊢ Tendsto (fun N => term_sum 1 N) atTop (𝓝 (1 - γ))
state_after: ⊢ Tendsto (fun N => -↑(harmonic (N + 1)) + log (↑N + 1) + 1) atTop (𝓝 (-γ + 1))

tactic: refine Tendsto.add ?_ tendsto_const_nhds
state_before: ⊢ Tendsto (fun N => -↑(harmonic (N + 1)) + log (↑N + 1) + 1) atTop (𝓝 (-γ + 1))
state_after: ⊢ Tendsto (fun N => -↑(harmonic (N + 1)) + log (↑N + 1)) atTop (𝓝 (-γ))

tactic: have := (tendsto_eulerMascheroniSeq'.comp (tendsto_add_atTop_nat 1)).neg
state_before: ⊢ Tendsto (fun N => -↑(harmonic (N + 1)) + log (↑N + 1)) atTop (𝓝 (-γ))
state_after: this : Tendsto (fun x => -(eulerMascheroniSeq' ∘ fun a => a + 1) x) atTop (𝓝 (-γ))
⊢ Tendsto (fun N => -↑(harmonic (N + 1)) + log (↑N + 1)) atTop (𝓝 (-γ))

tactic: refine this.congr' (eventually_of_forall (fun n ↦ ?_))
state_before: this : Tendsto (fun x => -(eulerMascheroniSeq' ∘ fun a => a + 1) x) atTop (𝓝 (-γ))
⊢ Tendsto (fun N => -↑(harmonic (N + 1)) + log (↑N + 1)) atTop (𝓝 (-γ))
state_after: this : Tendsto (fun x => -(eulerMascheroniSeq' ∘ fun a => a + 1) x) atTop (𝓝 (-γ))
n : ℕ
⊢ -(eulerMascheroniSeq' ∘ fun a => a + 1) n = (fun N => -↑(harmonic (N + 1)) + log (↑N + 1)) n

tactic: simp_rw [Function.comp_apply, eulerMascheroniSeq', if_false]
state_before: this : Tendsto (fun x => -(eulerMascheroniSeq' ∘ fun a => a + 1) x) atTop (𝓝 (-γ))
n : ℕ
⊢ -(eulerMascheroniSeq' ∘ fun a => a + 1) n = (fun N => -↑(harmonic (N + 1)) + log (↑N + 1)) n
state_after: this : Tendsto (fun x => -(eulerMascheroniSeq' ∘ fun a => a + 1) x) atTop (𝓝 (-γ))
n : ℕ
⊢ -(↑(harmonic (n + 1)) - log ↑(n + 1)) = -↑(harmonic (n + 1)) + log (↑n + 1)

tactic: push_cast
state_before: this : Tendsto (fun x => -(eulerMascheroniSeq' ∘ fun a => a + 1) x) atTop (𝓝 (-γ))
n : ℕ
⊢ -(↑(harmonic (n + 1)) - log ↑(n + 1)) = -↑(harmonic (n + 1)) + log (↑n + 1)
state_after: this : Tendsto (fun x => -(eulerMascheroniSeq' ∘ fun a => a + 1) x) atTop (𝓝 (-γ))
n : ℕ
⊢ -(↑(harmonic (n + 1)) - log (↑n + 1)) = -↑(harmonic (n + 1)) + log (↑n + 1)

tactic: abel
state_before: this : Tendsto (fun x => -(eulerMascheroniSeq' ∘ fun a => a + 1) x) atTop (𝓝 (-γ))
n : ℕ
⊢ -(↑(harmonic (n + 1)) - log (↑n + 1)) = -↑(harmonic (n + 1)) + log (↑n + 1)
state_after: no goals
Theorem: padicNormE.norm_p_lt_one
File: Mathlib/NumberTheory/Padics/PadicNumbers.lean

tactic: rw [norm_p]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
⊢ ‖↑p‖ < 1
state_after: p : ℕ
hp : Fact (Nat.Prime p)
⊢ (↑p)⁻¹ < 1

tactic: apply inv_lt_one
state_before: p : ℕ
hp : Fact (Nat.Prime p)
⊢ (↑p)⁻¹ < 1
state_after: case ha
p : ℕ
hp : Fact (Nat.Prime p)
⊢ 1 < ↑p

tactic: exact mod_cast hp.1.one_lt
state_before: case ha
p : ℕ
hp : Fact (Nat.Prime p)
⊢ 1 < ↑p
state_after: no goals
Theorem: Function.mulSupport_eq_empty_iff
File: Mathlib/Algebra/Group/Support.lean

tactic: rw [← subset_empty_iff, mulSupport_subset_iff', funext_iff]
state_before: α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝² : One M
inst✝¹ : One N
inst✝ : One P
f : α → M
⊢ mulSupport f = ∅ ↔ f = 1
state_after: α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝² : One M
inst✝¹ : One N
inst✝ : One P
f : α → M
⊢ (∀ x ∉ ∅, f x = 1) ↔ ∀ (a : α), f a = 1 a

tactic: simp
state_before: α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝² : One M
inst✝¹ : One N
inst✝ : One P
f : α → M
⊢ (∀ x ∉ ∅, f x = 1) ↔ ∀ (a : α), f a = 1 a
state_after: no goals