1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: continuous_of_uniform_approx_of_continuous
File: Mathlib/Topology/UniformSpace/UniformConvergence.lean

tactic: simpa [continuous_iff_continuousOn_univ] using L
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝ : TopologicalSpace α
L : ∀ u ∈ 𝓤 β, ∃ F, Continuous F ∧ ∀ (y : α), (f y, F y) ∈ u
⊢ ∀ u ∈ 𝓤 β, ∃ F, ContinuousOn F univ ∧ ∀ y ∈ univ, (f y, F y) ∈ u
state_after: no goals
Theorem: LowerSet.prod_eq_bot
File: Mathlib/Order/UpperLower/Basic.lean

tactic: simp_rw [SetLike.ext'_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝¹ : Preorder α
inst✝ : Preorder β
s s₁ s₂ : LowerSet α
t t₁ t₂ : LowerSet β
x : α × β
⊢ s ×ˢ t = ⊥ ↔ s = ⊥ ∨ t = ⊥
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝¹ : Preorder α
inst✝ : Preorder β
s s₁ s₂ : LowerSet α
t t₁ t₂ : LowerSet β
x : α × β
⊢ ↑(s ×ˢ t) = ↑⊥ ↔ ↑s = ↑⊥ ∨ ↑t = ↑⊥

tactic: exact prod_eq_empty_iff
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝¹ : Preorder α
inst✝ : Preorder β
s s₁ s₂ : LowerSet α
t t₁ t₂ : LowerSet β
x : α × β
⊢ ↑(s ×ˢ t) = ↑⊥ ↔ ↑s = ↑⊥ ∨ ↑t = ↑⊥
state_after: no goals
Theorem: hasProd_nat_add_iff
File: Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean

tactic: refine Iff.trans ?_ (range k).hasProd_compl_iff
state_before: M : Type u_1
inst✝⁴ : CommMonoid M
inst✝³ : TopologicalSpace M
m m' : M
G : Type u_2
inst✝² : CommGroup G
g g' : G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
f : ℕ → G
k : ℕ
⊢ HasProd (fun n => f (n + k)) g ↔ HasProd f (g * ∏ i ∈ range k, f i)
state_after: M : Type u_1
inst✝⁴ : CommMonoid M
inst✝³ : TopologicalSpace M
m m' : M
G : Type u_2
inst✝² : CommGroup G
g g' : G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
f : ℕ → G
k : ℕ
⊢ HasProd (fun n => f (n + k)) g ↔ HasProd (fun x => f ↑x) g

tactic: rw [← (notMemRangeEquiv k).symm.hasProd_iff, Function.comp_def, coe_notMemRangeEquiv_symm]
state_before: M : Type u_1
inst✝⁴ : CommMonoid M
inst✝³ : TopologicalSpace M
m m' : M
G : Type u_2
inst✝² : CommGroup G
g g' : G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
f : ℕ → G
k : ℕ
⊢ HasProd (fun n => f (n + k)) g ↔ HasProd (fun x => f ↑x) g
state_after: no goals
Theorem: iSup_eq_iSup_of_partialSups_eq_partialSups
File: Mathlib/Order/PartialSups.lean

tactic: simp_rw [← iSup_partialSups_eq f, ← iSup_partialSups_eq g, h]
state_before: α : Type u_1
inst✝ : CompleteLattice α
f g : ℕ → α
h : partialSups f = partialSups g
⊢ ⨆ n, f n = ⨆ n, g n
state_after: no goals
Theorem: Int.le_induction
File: Mathlib/Data/Int/Defs.lean

tactic: refine Int.inductionOn' n m ?_ ?_ ?_
state_before: a b c d m✝ n✝ : ℤ
P : ℤ → Prop
m : ℤ
h0 : P m
h1 : ∀ (n : ℤ), m ≤ n → P n → P (n + 1)
n : ℤ
⊢ m ≤ n → P n
state_after: case refine_1
a b c d m✝ n✝ : ℤ
P : ℤ → Prop
m : ℤ
h0 : P m
h1 : ∀ (n : ℤ), m ≤ n → P n → P (n + 1)
n : ℤ
⊢ m ≤ m → P m

case refine_2
a b c d m✝ n✝ : ℤ
P : ℤ → Prop
m : ℤ
h0 : P m
h1 : ∀ (n : ℤ), m ≤ n → P n → P (n + 1)
n : ℤ
⊢ ∀ (k : ℤ), m ≤ k → (m ≤ k → P k) → m ≤ k + 1 → P (k + 1)

case refine_3
a b c d m✝ n✝ : ℤ
P : ℤ → Prop
m : ℤ
h0 : P m
h1 : ∀ (n : ℤ), m ≤ n → P n → P (n + 1)
n : ℤ
⊢ ∀ (k : ℤ), k ≤ m → (m ≤ k → P k) → m ≤ k - 1 → P (k - 1)

tactic: intro
state_before: case refine_1
a b c d m✝ n✝ : ℤ
P : ℤ → Prop
m : ℤ
h0 : P m
h1 : ∀ (n : ℤ), m ≤ n → P n → P (n + 1)
n : ℤ
⊢ m ≤ m → P m
state_after: case refine_1
a b c d m✝ n✝ : ℤ
P : ℤ → Prop
m : ℤ
h0 : P m
h1 : ∀ (n : ℤ), m ≤ n → P n → P (n + 1)
n : ℤ
a✝ : m ≤ m
⊢ P m

tactic: exact h0
state_before: case refine_1
a b c d m✝ n✝ : ℤ
P : ℤ → Prop
m : ℤ
h0 : P m
h1 : ∀ (n : ℤ), m ≤ n → P n → P (n + 1)
n : ℤ
a✝ : m ≤ m
⊢ P m
state_after: no goals

tactic: intro k hle hi _
state_before: case refine_2
a b c d m✝ n✝ : ℤ
P : ℤ → Prop
m : ℤ
h0 : P m
h1 : ∀ (n : ℤ), m ≤ n → P n → P (n + 1)
n : ℤ
⊢ ∀ (k : ℤ), m ≤ k → (m ≤ k → P k) → m ≤ k + 1 → P (k + 1)
state_after: case refine_2
a b c d m✝ n✝ : ℤ
P : ℤ → Prop
m : ℤ
h0 : P m
h1 : ∀ (n : ℤ), m ≤ n → P n → P (n + 1)
n k : ℤ
hle : m ≤ k
hi : m ≤ k → P k
a✝ : m ≤ k + 1
⊢ P (k + 1)

tactic: exact h1 k hle (hi hle)
state_before: case refine_2
a b c d m✝ n✝ : ℤ
P : ℤ → Prop
m : ℤ
h0 : P m
h1 : ∀ (n : ℤ), m ≤ n → P n → P (n + 1)
n k : ℤ
hle : m ≤ k
hi : m ≤ k → P k
a✝ : m ≤ k + 1
⊢ P (k + 1)
state_after: no goals

tactic: intro k hle _ hle'
state_before: case refine_3
a b c d m✝ n✝ : ℤ
P : ℤ → Prop
m : ℤ
h0 : P m
h1 : ∀ (n : ℤ), m ≤ n → P n → P (n + 1)
n : ℤ
⊢ ∀ (k : ℤ), k ≤ m → (m ≤ k → P k) → m ≤ k - 1 → P (k - 1)
state_after: case refine_3
a b c d m✝ n✝ : ℤ
P : ℤ → Prop
m : ℤ
h0 : P m
h1 : ∀ (n : ℤ), m ≤ n → P n → P (n + 1)
n k : ℤ
hle : k ≤ m
a✝ : m ≤ k → P k
hle' : m ≤ k - 1
⊢ P (k - 1)

tactic: omega
state_before: case refine_3
a b c d m✝ n✝ : ℤ
P : ℤ → Prop
m : ℤ
h0 : P m
h1 : ∀ (n : ℤ), m ≤ n → P n → P (n + 1)
n k : ℤ
hle : k ≤ m
a✝ : m ≤ k → P k
hle' : m ≤ k - 1
⊢ P (k - 1)
state_after: no goals
Theorem: List.IsRotated.cyclicPermutations
File: Mathlib/Data/List/Rotate.lean

tactic: obtain ⟨k, rfl⟩ := h
state_before: α : Type u
l✝ l'✝ l l' : List α
h : l ~r l'
⊢ l.cyclicPermutations ~r l'.cyclicPermutations
state_after: case intro
α : Type u
l✝ l' l : List α
k : ℕ
⊢ l.cyclicPermutations ~r (l.rotate k).cyclicPermutations

tactic: exact ⟨k, by simp⟩
state_before: case intro
α : Type u
l✝ l' l : List α
k : ℕ
⊢ l.cyclicPermutations ~r (l.rotate k).cyclicPermutations
state_after: no goals

tactic: simp
state_before: α : Type u
l✝ l' l : List α
k : ℕ
⊢ l.cyclicPermutations.rotate k = (l.rotate k).cyclicPermutations
state_after: no goals
Theorem: Filter.frequently_iSup
File: Mathlib/Order/Filter/Basic.lean

tactic: simp only [Filter.Frequently, eventually_iSup, not_forall]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
p : α → Prop
fs : β → Filter α
⊢ (∃ᶠ (x : α) in ⨆ b, fs b, p x) ↔ ∃ b, ∃ᶠ (x : α) in fs b, p x
state_after: no goals
Theorem: MvQPF.Cofix.dest_corec₁
File: Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean

tactic: rw [Cofix.corec₁, Cofix.dest_corec', ← h]
state_before: n : ℕ
F : TypeVec.{u} (n + 1) → Type u
q : MvQPF F
α : TypeVec.{u} n
β : Type u
g : {X : Type u} → (Cofix F α → X) → (β → X) → β → F (α ::: X)
x : β
h :
  ∀ (X Y : Type u) (f : Cofix F α → X) (f' : β → X) (k : X → Y), g (k ∘ f) (k ∘ f') x = (TypeVec.id ::: k) <$$> g f f' x
⊢ (corec₁ g x).dest = g _root_.id (corec₁ g) x
state_after: n : ℕ
F : TypeVec.{u} (n + 1) → Type u
q : MvQPF F
α : TypeVec.{u} n
β : Type u
g : {X : Type u} → (Cofix F α → X) → (β → X) → β → F (α ::: X)
x : β
h :
  ∀ (X Y : Type u) (f : Cofix F α → X) (f' : β → X) (k : X → Y), g (k ∘ f) (k ∘ f') x = (TypeVec.id ::: k) <$$> g f f' x
⊢ g (Sum.elim _root_.id (corec' fun x => g Sum.inl Sum.inr x) ∘ Sum.inl)
      (Sum.elim _root_.id (corec' fun x => g Sum.inl Sum.inr x) ∘ Sum.inr) x =
    g _root_.id (corec₁ g) x

tactic: rfl
state_before: n : ℕ
F : TypeVec.{u} (n + 1) → Type u
q : MvQPF F
α : TypeVec.{u} n
β : Type u
g : {X : Type u} → (Cofix F α → X) → (β → X) → β → F (α ::: X)
x : β
h :
  ∀ (X Y : Type u) (f : Cofix F α → X) (f' : β → X) (k : X → Y), g (k ∘ f) (k ∘ f') x = (TypeVec.id ::: k) <$$> g f f' x
⊢ g (Sum.elim _root_.id (corec' fun x => g Sum.inl Sum.inr x) ∘ Sum.inl)
      (Sum.elim _root_.id (corec' fun x => g Sum.inl Sum.inr x) ∘ Sum.inr) x =
    g _root_.id (corec₁ g) x
state_after: no goals
Theorem: LSeriesSummable.abscissaOfAbsConv_le
File: Mathlib/NumberTheory/LSeries/Convergence.lean

tactic: refine sInf_le <| Membership.mem.out ?_
state_before: f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
⊢ abscissaOfAbsConv f ≤ ↑s.re
state_after: f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
⊢ Real.toEReal '' {x | LSeriesSummable f ↑x} ∈ {x | ↑s.re ∈ x}

tactic: simp only [Set.mem_setOf_eq, Set.mem_image, EReal.coe_eq_coe_iff, exists_eq_right]
state_before: f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
⊢ Real.toEReal '' {x | LSeriesSummable f ↑x} ∈ {x | ↑s.re ∈ x}
state_after: f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
⊢ LSeriesSummable f ↑s.re

tactic: exact h.of_re_le_re <| by simp only [ofReal_re, le_refl]
state_before: f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
⊢ LSeriesSummable f ↑s.re
state_after: no goals

tactic: simp only [ofReal_re, le_refl]
state_before: f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
⊢ s.re ≤ (↑s.re).re
state_after: no goals
Theorem: Finset.eraseNone_inter
File: Mathlib/Data/Finset/Option.lean

tactic: ext
state_before: α : Type u_1
β : Type u_2
inst✝¹ : DecidableEq (Option α)
inst✝ : DecidableEq α
s t : Finset (Option α)
⊢ eraseNone (s ∩ t) = eraseNone s ∩ eraseNone t
state_after: case a
α : Type u_1
β : Type u_2
inst✝¹ : DecidableEq (Option α)
inst✝ : DecidableEq α
s t : Finset (Option α)
a✝ : α
⊢ a✝ ∈ eraseNone (s ∩ t) ↔ a✝ ∈ eraseNone s ∩ eraseNone t

tactic: simp
state_before: case a
α : Type u_1
β : Type u_2
inst✝¹ : DecidableEq (Option α)
inst✝ : DecidableEq α
s t : Finset (Option α)
a✝ : α
⊢ a✝ ∈ eraseNone (s ∩ t) ↔ a✝ ∈ eraseNone s ∩ eraseNone t
state_after: no goals
Theorem: PrimeSpectrum.vanishingIdeal_isClosed_isIrreducible
File: Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean

tactic: refine (subset_antisymm ?_ ?_).trans vanishingIdeal_isIrreducible
state_before: R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
⊢ vanishingIdeal '' {s | IsClosed s ∧ IsIrreducible s} = {P | P.IsPrime}
state_after: case refine_1
R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
⊢ vanishingIdeal '' {s | IsClosed s ∧ IsIrreducible s} ⊆ vanishingIdeal '' {s | IsIrreducible s}

case refine_2
R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
⊢ vanishingIdeal '' {s | IsIrreducible s} ⊆ vanishingIdeal '' {s | IsClosed s ∧ IsIrreducible s}

tactic: rintro _ ⟨s, hs, rfl⟩
state_before: case refine_2
R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
⊢ vanishingIdeal '' {s | IsIrreducible s} ⊆ vanishingIdeal '' {s | IsClosed s ∧ IsIrreducible s}
state_after: case refine_2.intro.intro
R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
s : Set (PrimeSpectrum R)
hs : s ∈ {s | IsIrreducible s}
⊢ vanishingIdeal s ∈ vanishingIdeal '' {s | IsClosed s ∧ IsIrreducible s}

tactic: exact ⟨closure s, ⟨isClosed_closure, hs.closure⟩, vanishingIdeal_closure s⟩
state_before: case refine_2.intro.intro
R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
s : Set (PrimeSpectrum R)
hs : s ∈ {s | IsIrreducible s}
⊢ vanishingIdeal s ∈ vanishingIdeal '' {s | IsClosed s ∧ IsIrreducible s}
state_after: no goals

tactic: exact Set.image_subset _ fun _ ↦ And.right
state_before: case refine_1
R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
⊢ vanishingIdeal '' {s | IsClosed s ∧ IsIrreducible s} ⊆ vanishingIdeal '' {s | IsIrreducible s}
state_after: no goals
Theorem: Nat.bit1_mod_two
File: Mathlib/Data/Nat/Bits.lean

tactic: rw [Nat.mod_two_of_bodd]
state_before: m n : ℕ
⊢ bit1 n % 2 = 1
state_after: m n : ℕ
⊢ (bif (bit1 n).bodd then 1 else 0) = 1

tactic: simp
state_before: m n : ℕ
⊢ (bif (bit1 n).bodd then 1 else 0) = 1
state_after: no goals
Theorem: LocalizedModule.algebraMap_mk
File: Mathlib/Algebra/Module/LocalizedModule.lean

tactic: rw [Localization.mk_eq_mk']
state_before: R : Type u
inst✝⁷ : CommSemiring R
S : Submonoid R
M : Type v
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
T : Type u_1
inst✝⁴ : CommSemiring T
inst✝³ : Algebra R T
inst✝² : IsLocalization S T
A : Type u_2
inst✝¹ : Semiring A
inst✝ : Algebra R A
a : R
s : ↥S
⊢ (algebraMap (Localization S) (LocalizedModule S A)) (Localization.mk a s) = mk ((algebraMap R A) a) s
state_after: R : Type u
inst✝⁷ : CommSemiring R
S : Submonoid R
M : Type v
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
T : Type u_1
inst✝⁴ : CommSemiring T
inst✝³ : Algebra R T
inst✝² : IsLocalization S T
A : Type u_2
inst✝¹ : Semiring A
inst✝ : Algebra R A
a : R
s : ↥S
⊢ (algebraMap (Localization S) (LocalizedModule S A)) (IsLocalization.mk' (Localization S) a s) =
    mk ((algebraMap R A) a) s

tactic: exact algebraMap_mk' ..
state_before: R : Type u
inst✝⁷ : CommSemiring R
S : Submonoid R
M : Type v
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
T : Type u_1
inst✝⁴ : CommSemiring T
inst✝³ : Algebra R T
inst✝² : IsLocalization S T
A : Type u_2
inst✝¹ : Semiring A
inst✝ : Algebra R A
a : R
s : ↥S
⊢ (algebraMap (Localization S) (LocalizedModule S A)) (IsLocalization.mk' (Localization S) a s) =
    mk ((algebraMap R A) a) s
state_after: no goals
Theorem: MultilinearMap.snoc_smul
File: Mathlib/LinearAlgebra/Multilinear/Basic.lean

tactic: simp_rw [← update_snoc_last x m (c • x), f.map_smul, update_snoc_last]
state_before: R : Type uR
S : Type uS
ι : Type uι
n : ℕ
M : Fin n.succ → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹⁰ : Semiring R
inst✝⁹ : (i : Fin n.succ) → AddCommMonoid (M i)
inst✝⁸ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : (i : Fin n.succ) → Module R (M i)
inst✝³ : (i : ι) → Module R (M₁ i)
inst✝² : Module R M₂
inst✝¹ : Module R M₃
inst✝ : Module R M'
f✝ f' : MultilinearMap R M₁ M₂
f : MultilinearMap R M M₂
m : (i : Fin n) → M i.castSucc
c : R
x : M (last n)
⊢ f (snoc m (c • x)) = c • f (snoc m x)
state_after: no goals
Theorem: Real.Angle.sin_antiperiodic
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: intro θ
state_before: ⊢ Function.Antiperiodic sin ↑π
state_after: θ : Angle
⊢ (θ + ↑π).sin = -θ.sin

tactic: induction θ using Real.Angle.induction_on
state_before: θ : Angle
⊢ (θ + ↑π).sin = -θ.sin
state_after: case h
x✝ : ℝ
⊢ (↑x✝ + ↑π).sin = -(↑x✝).sin

tactic: exact Real.sin_antiperiodic _
state_before: case h
x✝ : ℝ
⊢ (↑x✝ + ↑π).sin = -(↑x✝).sin
state_after: no goals
Theorem: LinearMap.lsum_single
File: Mathlib/LinearAlgebra/Pi.lean

tactic: simp [Finset.univ_sum_single]
state_before: R✝ : Type u
K : Type u'
M✝ : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι✝ : Type x
ι' : Type x'
inst✝¹¹ : Semiring R✝
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : Module R✝ M₂
inst✝⁸ : AddCommMonoid M₃
inst✝⁷ : Module R✝ M₃
φ : ι✝ → Type i
inst✝⁶ : (i : ι✝) → AddCommMonoid (φ i)
inst✝⁵ : (i : ι✝) → Module R✝ (φ i)
ι : Type u_1
R : Type u_2
inst✝⁴ : Fintype ι
inst✝³ : DecidableEq ι
inst✝² : CommRing R
M : ι → Type u_3
inst✝¹ : (i : ι) → AddCommGroup (M i)
inst✝ : (i : ι) → Module R (M i)
x : (i : ι) → M i
⊢ ((lsum R M R) single) x = id x
state_after: no goals
Theorem: Ideal.Quotient.quotient_ring_saturate
File: Mathlib/RingTheory/Ideal/Quotient.lean

tactic: ext x
state_before: R : Type u
inst✝ : CommRing R
I✝ : Ideal R
a b : R
S : Type v
x y : R
I : Ideal R
s : Set R
⊢ ⇑(mk I) ⁻¹' (⇑(mk I) '' s) = ⋃ x, (fun y => ↑x + y) '' s
state_after: case h
R : Type u
inst✝ : CommRing R
I✝ : Ideal R
a b : R
S : Type v
x✝ y : R
I : Ideal R
s : Set R
x : R
⊢ x ∈ ⇑(mk I) ⁻¹' (⇑(mk I) '' s) ↔ x ∈ ⋃ x, (fun y => ↑x + y) '' s

tactic: simp only [mem_preimage, mem_image, mem_iUnion, Ideal.Quotient.eq]
state_before: case h
R : Type u
inst✝ : CommRing R
I✝ : Ideal R
a b : R
S : Type v
x✝ y : R
I : Ideal R
s : Set R
x : R
⊢ x ∈ ⇑(mk I) ⁻¹' (⇑(mk I) '' s) ↔ x ∈ ⋃ x, (fun y => ↑x + y) '' s
state_after: case h
R : Type u
inst✝ : CommRing R
I✝ : Ideal R
a b : R
S : Type v
x✝ y : R
I : Ideal R
s : Set R
x : R
⊢ (∃ x_1 ∈ s, x_1 - x ∈ I) ↔ ∃ i, ∃ x_1 ∈ s, ↑i + x_1 = x

tactic: exact
  ⟨fun ⟨a, a_in, h⟩ => ⟨⟨_, I.neg_mem h⟩, a, a_in, by simp⟩, fun ⟨⟨i, hi⟩, a, ha, Eq⟩ =>
    ⟨a, ha, by rw [← Eq, sub_add_eq_sub_sub_swap, sub_self, zero_sub]; exact I.neg_mem hi⟩⟩
state_before: case h
R : Type u
inst✝ : CommRing R
I✝ : Ideal R
a b : R
S : Type v
x✝ y : R
I : Ideal R
s : Set R
x : R
⊢ (∃ x_1 ∈ s, x_1 - x ∈ I) ↔ ∃ i, ∃ x_1 ∈ s, ↑i + x_1 = x
state_after: no goals

tactic: simp
state_before: R : Type u
inst✝ : CommRing R
I✝ : Ideal R
a✝ b : R
S : Type v
x✝¹ y : R
I : Ideal R
s : Set R
x : R
x✝ : ∃ x_1 ∈ s, x_1 - x ∈ I
a : R
a_in : a ∈ s
h : a - x ∈ I
⊢ ↑⟨-(a - x), ⋯⟩ + a = x
state_after: no goals

tactic: rw [← Eq, sub_add_eq_sub_sub_swap, sub_self, zero_sub]
state_before: R : Type u
inst✝ : CommRing R
I✝ : Ideal R
a✝ b : R
S : Type v
x✝¹ y : R
I : Ideal R
s : Set R
x : R
x✝ : ∃ i, ∃ x_1 ∈ s, ↑i + x_1 = x
i : R
hi : i ∈ I
a : R
ha : a ∈ s
Eq : ↑⟨i, hi⟩ + a = x
⊢ a - x ∈ I
state_after: R : Type u
inst✝ : CommRing R
I✝ : Ideal R
a✝ b : R
S : Type v
x✝¹ y : R
I : Ideal R
s : Set R
x : R
x✝ : ∃ i, ∃ x_1 ∈ s, ↑i + x_1 = x
i : R
hi : i ∈ I
a : R
ha : a ∈ s
Eq : ↑⟨i, hi⟩ + a = x
⊢ -↑⟨i, hi⟩ ∈ I

tactic: exact I.neg_mem hi
state_before: R : Type u
inst✝ : CommRing R
I✝ : Ideal R
a✝ b : R
S : Type v
x✝¹ y : R
I : Ideal R
s : Set R
x : R
x✝ : ∃ i, ∃ x_1 ∈ s, ↑i + x_1 = x
i : R
hi : i ∈ I
a : R
ha : a ∈ s
Eq : ↑⟨i, hi⟩ + a = x
⊢ -↑⟨i, hi⟩ ∈ I
state_after: no goals
Theorem: NNReal.summable_condensed_iff
File: Mathlib/Analysis/PSeries.lean

tactic: convert summable_schlomilch_iff hf (pow_pos zero_lt_two) (pow_right_strictMono _root_.one_lt_two)
  two_ne_zero h_succ_diff
state_before: f : ℕ → ℝ≥0
hf : ∀ ⦃m n : ℕ⦄, 0 < m → m ≤ n → f n ≤ f m
h_succ_diff : SuccDiffBounded 2 fun x => 2 ^ x
⊢ (Summable fun k => 2 ^ k * f (2 ^ k)) ↔ Summable f
state_after: case h.e'_1.h.e'_5.h.h.e'_5
f : ℕ → ℝ≥0
hf : ∀ ⦃m n : ℕ⦄, 0 < m → m ≤ n → f n ≤ f m
h_succ_diff : SuccDiffBounded 2 fun x => 2 ^ x
x✝ : ℕ
⊢ 2 ^ x✝ = ↑(2 ^ (x✝ + 1)) - ↑(2 ^ x✝)

tactic: simp [pow_succ, mul_two, two_mul]
state_before: case h.e'_1.h.e'_5.h.h.e'_5
f : ℕ → ℝ≥0
hf : ∀ ⦃m n : ℕ⦄, 0 < m → m ≤ n → f n ≤ f m
h_succ_diff : SuccDiffBounded 2 fun x => 2 ^ x
x✝ : ℕ
⊢ 2 ^ x✝ = ↑(2 ^ (x✝ + 1)) - ↑(2 ^ x✝)
state_after: no goals

tactic: intro n
state_before: f : ℕ → ℝ≥0
hf : ∀ ⦃m n : ℕ⦄, 0 < m → m ≤ n → f n ≤ f m
⊢ SuccDiffBounded 2 fun x => 2 ^ x
state_after: f : ℕ → ℝ≥0
hf : ∀ ⦃m n : ℕ⦄, 0 < m → m ≤ n → f n ≤ f m
n : ℕ
⊢ (fun x => 2 ^ x) (n + 2) - (fun x => 2 ^ x) (n + 1) ≤ 2 • ((fun x => 2 ^ x) (n + 1) - (fun x => 2 ^ x) n)

tactic: simp [pow_succ, mul_two, two_mul]
state_before: f : ℕ → ℝ≥0
hf : ∀ ⦃m n : ℕ⦄, 0 < m → m ≤ n → f n ≤ f m
n : ℕ
⊢ (fun x => 2 ^ x) (n + 2) - (fun x => 2 ^ x) (n + 1) ≤ 2 • ((fun x => 2 ^ x) (n + 1) - (fun x => 2 ^ x) n)
state_after: no goals
Theorem: NumberField.InfinitePlace.mult_pos
File: Mathlib/NumberTheory/NumberField/Embeddings.lean

tactic: rw [mult]
state_before: k : Type u_1
inst✝² : Field k
K : Type u_2
inst✝¹ : Field K
F : Type u_3
inst✝ : Field F
w : InfinitePlace K
⊢ 0 < w.mult
state_after: k : Type u_1
inst✝² : Field k
K : Type u_2
inst✝¹ : Field K
F : Type u_3
inst✝ : Field F
w : InfinitePlace K
⊢ 0 < if w.IsReal then 1 else 2

tactic: split_ifs <;> norm_num
state_before: k : Type u_1
inst✝² : Field k
K : Type u_2
inst✝¹ : Field K
F : Type u_3
inst✝ : Field F
w : InfinitePlace K
⊢ 0 < if w.IsReal then 1 else 2
state_after: no goals
Theorem: CategoryTheory.Equivalence.invFunIdAssoc_inv_app
File: Mathlib/CategoryTheory/Equivalence.lean

tactic: dsimp [invFunIdAssoc]
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
e : C ≌ D
F : D ⥤ E
X : D
⊢ (e.invFunIdAssoc F).inv.app X = F.map (e.counitInv.app X)
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
e : C ≌ D
F : D ⥤ E
X : D
⊢ (𝟙 (F.obj X) ≫ F.map (e.counitIso.inv.app X)) ≫ 𝟙 (F.obj (e.functor.obj (e.inverse.obj X))) =
    F.map (e.counitInv.app X)

tactic: aesop_cat
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
e : C ≌ D
F : D ⥤ E
X : D
⊢ (𝟙 (F.obj X) ≫ F.map (e.counitIso.inv.app X)) ≫ 𝟙 (F.obj (e.functor.obj (e.inverse.obj X))) =
    F.map (e.counitInv.app X)
state_after: no goals
Theorem: LieSubmodule.comap_incl_eq_top
File: Mathlib/Algebra/Lie/Submodule.lean

tactic: rw [← LieSubmodule.coe_toSubmodule_eq_iff, LieSubmodule.coeSubmodule_comap, LieSubmodule.incl_coe,
  LieSubmodule.top_coeSubmodule, Submodule.comap_subtype_eq_top, coeSubmodule_le_coeSubmodule]
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 : M →ₗ⁅R,L⁆ M'
N N₂ : LieSubmodule R L M
N' : LieSubmodule R L M'
⊢ comap N.incl N₂ = ⊤ ↔ N ≤ N₂
state_after: no goals
Theorem: NumberField.InfinitePlace.not_isReal_of_mk_isComplex
File: Mathlib/NumberTheory/NumberField/Embeddings.lean

tactic: rwa [← isComplex_mk_iff]
state_before: k : Type u_1
inst✝² : Field k
K : Type u_2
inst✝¹ : Field K
F : Type u_3
inst✝ : Field F
φ : K →+* ℂ
h : (mk φ).IsComplex
⊢ ¬ComplexEmbedding.IsReal φ
state_after: no goals
Theorem: Traversable.foldrm_toList
File: Mathlib/Control/Fold.lean

tactic: change _ = foldrM.ofFreeMonoid f (FreeMonoid.ofList <| toList xs) x
state_before: α β γ : Type u
t : Type u → Type u
inst✝³ : Traversable t
inst✝² : LawfulTraversable t
m : Type u → Type u
inst✝¹ : Monad m
inst✝ : LawfulMonad m
f : α → β → m β
x : β
xs : t α
⊢ foldrm f x xs = List.foldrM f x (toList xs)
state_after: α β γ : Type u
t : Type u → Type u
inst✝³ : Traversable t
inst✝² : LawfulTraversable t
m : Type u → Type u
inst✝¹ : Monad m
inst✝ : LawfulMonad m
f : α → β → m β
x : β
xs : t α
⊢ foldrm f x xs = (foldrM.ofFreeMonoid f) (FreeMonoid.ofList (toList xs)) x

tactic: simp only [foldrm, toList_spec, foldMap_hom_free (foldrM.ofFreeMonoid f),
  foldrm.ofFreeMonoid_comp_of, foldrM.get, FreeMonoid.ofList_toList]
state_before: α β γ : Type u
t : Type u → Type u
inst✝³ : Traversable t
inst✝² : LawfulTraversable t
m : Type u → Type u
inst✝¹ : Monad m
inst✝ : LawfulMonad m
f : α → β → m β
x : β
xs : t α
⊢ foldrm f x xs = (foldrM.ofFreeMonoid f) (FreeMonoid.ofList (toList xs)) x
state_after: no goals
Theorem: topologicalGroup_is_uniform_of_compactSpace
File: Mathlib/Topology/Algebra/UniformGroup.lean

tactic: apply CompactSpace.uniformContinuous_of_continuous
state_before: G : Type u_1
inst✝³ : Group G
inst✝² : TopologicalSpace G
inst✝¹ : TopologicalGroup G
inst✝ : CompactSpace G
⊢ UniformContinuous fun p => p.1 / p.2
state_after: case h
G : Type u_1
inst✝³ : Group G
inst✝² : TopologicalSpace G
inst✝¹ : TopologicalGroup G
inst✝ : CompactSpace G
⊢ Continuous fun p => p.1 / p.2

tactic: exact continuous_div'
state_before: case h
G : Type u_1
inst✝³ : Group G
inst✝² : TopologicalSpace G
inst✝¹ : TopologicalGroup G
inst✝ : CompactSpace G
⊢ Continuous fun p => p.1 / p.2
state_after: no goals
Theorem: Finset.union_insert
File: Mathlib/Data/Finset/Basic.lean

tactic: simp only [insert_eq, union_left_comm]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s✝ s₁ s₂ t✝ t₁ t₂ u v : Finset α
a✝ b a : α
s t : Finset α
⊢ s ∪ insert a t = insert a (s ∪ t)
state_after: no goals