1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: isSigmaCompact_sUnion_of_isCompact
File: Mathlib/Topology/Compactness/SigmaCompact.lean

tactic: have : Countable S := countable_coe_iff.mpr hc
state_before: X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
S : Set (Set X)
hc : S.Countable
hcomp : ∀ s ∈ S, IsCompact s
⊢ IsSigmaCompact (⋃₀ S)
state_after: X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
S : Set (Set X)
hc : S.Countable
hcomp : ∀ s ∈ S, IsCompact s
this : Countable ↑S
⊢ IsSigmaCompact (⋃₀ S)

tactic: rw [sUnion_eq_iUnion]
state_before: X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
S : Set (Set X)
hc : S.Countable
hcomp : ∀ s ∈ S, IsCompact s
this : Countable ↑S
⊢ IsSigmaCompact (⋃₀ S)
state_after: X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
S : Set (Set X)
hc : S.Countable
hcomp : ∀ s ∈ S, IsCompact s
this : Countable ↑S
⊢ IsSigmaCompact (⋃ i, ↑i)

tactic: apply isSigmaCompact_iUnion_of_isCompact _ (fun ⟨s, hs⟩ ↦ hcomp s hs)
state_before: X : Type u_1
Y : Type u_2
ι : Type u_3
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
S : Set (Set X)
hc : S.Countable
hcomp : ∀ s ∈ S, IsCompact s
this : Countable ↑S
⊢ IsSigmaCompact (⋃ i, ↑i)
state_after: no goals
Theorem: Filter.iInf_principal
File: Mathlib/Order/Filter/Basic.lean

tactic: cases nonempty_fintype (PLift ι)
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι✝ : Sort x
f✝ g : Filter α
s t : Set α
ι : Sort w
inst✝ : Finite ι
f : ι → Set α
⊢ ⨅ i, 𝓟 (f i) = 𝓟 (⋂ i, f i)
state_after: case intro
α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι✝ : Sort x
f✝ g : Filter α
s t : Set α
ι : Sort w
inst✝ : Finite ι
f : ι → Set α
val✝ : Fintype (PLift ι)
⊢ ⨅ i, 𝓟 (f i) = 𝓟 (⋂ i, f i)

tactic: rw [← iInf_plift_down, ← iInter_plift_down]
state_before: case intro
α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι✝ : Sort x
f✝ g : Filter α
s t : Set α
ι : Sort w
inst✝ : Finite ι
f : ι → Set α
val✝ : Fintype (PLift ι)
⊢ ⨅ i, 𝓟 (f i) = 𝓟 (⋂ i, f i)
state_after: case intro
α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι✝ : Sort x
f✝ g : Filter α
s t : Set α
ι : Sort w
inst✝ : Finite ι
f : ι → Set α
val✝ : Fintype (PLift ι)
⊢ ⨅ i, 𝓟 (f i.down) = 𝓟 (⋂ i, f i.down)
Theorem: FGModuleCat.coevaluation_evaluation
File: Mathlib/Algebra/Category/FGModuleCat/Basic.lean

tactic: apply contractLeft_assoc_coevaluation K V
state_before: K : Type u
inst✝ : Field K
V W : FGModuleCat K
⊢ FGModuleCatDual K V ◁ FGModuleCatCoevaluation K V ≫
      (α_ (FGModuleCatDual K V) V (FGModuleCatDual K V)).inv ≫ FGModuleCatEvaluation K V ▷ FGModuleCatDual K V =
    (ρ_ (FGModuleCatDual K V)).hom ≫ (λ_ (FGModuleCatDual K V)).inv
state_after: no goals
Theorem: Ideal.quotient_mk_maps_eq
File: Mathlib/RingTheory/Ideal/Over.lean

tactic: refine RingHom.ext fun x => ?_
state_before: R : Type u_1
inst✝¹ : CommRing R
S : Type u_2
inst✝ : CommRing S
f : R →+* S
I J : Ideal S
P : Ideal R[X]
⊢ ((Quotient.mk (map (mapRingHom (Quotient.mk (comap C P))) P)).comp C).comp (Quotient.mk (comap C P)) =
    (quotientMap (map (mapRingHom (Quotient.mk (comap C P))) P) (mapRingHom (Quotient.mk (comap C P))) ⋯).comp
      ((Quotient.mk P).comp C)
state_after: R : Type u_1
inst✝¹ : CommRing R
S : Type u_2
inst✝ : CommRing S
f : R →+* S
I J : Ideal S
P : Ideal R[X]
x : R
⊢ (((Quotient.mk (map (mapRingHom (Quotient.mk (comap C P))) P)).comp C).comp (Quotient.mk (comap C P))) x =
    ((quotientMap (map (mapRingHom (Quotient.mk (comap C P))) P) (mapRingHom (Quotient.mk (comap C P))) ⋯).comp
        ((Quotient.mk P).comp C))
      x

tactic: repeat' rw [RingHom.coe_comp, Function.comp_apply]
state_before: R : Type u_1
inst✝¹ : CommRing R
S : Type u_2
inst✝ : CommRing S
f : R →+* S
I J : Ideal S
P : Ideal R[X]
x : R
⊢ (((Quotient.mk (map (mapRingHom (Quotient.mk (comap C P))) P)).comp C).comp (Quotient.mk (comap C P))) x =
    ((quotientMap (map (mapRingHom (Quotient.mk (comap C P))) P) (mapRingHom (Quotient.mk (comap C P))) ⋯).comp
        ((Quotient.mk P).comp C))
      x
state_after: R : Type u_1
inst✝¹ : CommRing R
S : Type u_2
inst✝ : CommRing S
f : R →+* S
I J : Ideal S
P : Ideal R[X]
x : R
⊢ (Quotient.mk (map (mapRingHom (Quotient.mk (comap C P))) P)) (C ((Quotient.mk (comap C P)) x)) =
    (quotientMap (map (mapRingHom (Quotient.mk (comap C P))) P) (mapRingHom (Quotient.mk (comap C P))) ⋯)
      ((Quotient.mk P) (C x))

tactic: rw [quotientMap_mk, coe_mapRingHom, map_C]
state_before: R : Type u_1
inst✝¹ : CommRing R
S : Type u_2
inst✝ : CommRing S
f : R →+* S
I J : Ideal S
P : Ideal R[X]
x : R
⊢ (Quotient.mk (map (mapRingHom (Quotient.mk (comap C P))) P)) (C ((Quotient.mk (comap C P)) x)) =
    (quotientMap (map (mapRingHom (Quotient.mk (comap C P))) P) (mapRingHom (Quotient.mk (comap C P))) ⋯)
      ((Quotient.mk P) (C x))
state_after: no goals

tactic: rw [RingHom.coe_comp, Function.comp_apply]
state_before: R : Type u_1
inst✝¹ : CommRing R
S : Type u_2
inst✝ : CommRing S
f : R →+* S
I J : Ideal S
P : Ideal R[X]
x : R
⊢ (Quotient.mk (map (mapRingHom (Quotient.mk (comap C P))) P)) (C ((Quotient.mk (comap C P)) x)) =
    (quotientMap (map (mapRingHom (Quotient.mk (comap C P))) P) (mapRingHom (Quotient.mk (comap C P))) ⋯)
      (((Quotient.mk P).comp C) x)
state_after: R : Type u_1
inst✝¹ : CommRing R
S : Type u_2
inst✝ : CommRing S
f : R →+* S
I J : Ideal S
P : Ideal R[X]
x : R
⊢ (Quotient.mk (map (mapRingHom (Quotient.mk (comap C P))) P)) (C ((Quotient.mk (comap C P)) x)) =
    (quotientMap (map (mapRingHom (Quotient.mk (comap C P))) P) (mapRingHom (Quotient.mk (comap C P))) ⋯)
      ((Quotient.mk P) (C x))
Theorem: MonoidAlgebra.opRingEquiv_symm_single
File: Mathlib/Algebra/MonoidAlgebra/Basic.lean

tactic: simp
state_before: k : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝¹ : Semiring k
inst✝ : Monoid G
r : kᵐᵒᵖ
x : Gᵐᵒᵖ
⊢ MonoidAlgebra.opRingEquiv.symm (single x r) = op (single (unop x) (unop r))
state_after: no goals
Theorem: Equiv.Perm.Disjoint.mul_apply_eq_iff
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: refine ⟨fun h => ?_, fun h => by rw [mul_apply, h.2, h.1]⟩
state_before: α : Type u_1
f g h σ τ : Perm α
hστ : σ.Disjoint τ
a : α
⊢ (σ * τ) a = a ↔ σ a = a ∧ τ a = a
state_after: α : Type u_1
f g h✝ σ τ : Perm α
hστ : σ.Disjoint τ
a : α
h : (σ * τ) a = a
⊢ σ a = a ∧ τ a = a

tactic: cases' hστ a with hσ hτ
state_before: α : Type u_1
f g h✝ σ τ : Perm α
hστ : σ.Disjoint τ
a : α
h : (σ * τ) a = a
⊢ σ a = a ∧ τ a = a
state_after: case inl
α : Type u_1
f g h✝ σ τ : Perm α
hστ : σ.Disjoint τ
a : α
h : (σ * τ) a = a
hσ : σ a = a
⊢ σ a = a ∧ τ a = a

case inr
α : Type u_1
f g h✝ σ τ : Perm α
hστ : σ.Disjoint τ
a : α
h : (σ * τ) a = a
hτ : τ a = a
⊢ σ a = a ∧ τ a = a

tactic: rw [mul_apply, h.2, h.1]
state_before: α : Type u_1
f g h✝ σ τ : Perm α
hστ : σ.Disjoint τ
a : α
h : σ a = a ∧ τ a = a
⊢ (σ * τ) a = a
state_after: no goals

tactic: exact ⟨hσ, σ.injective (h.trans hσ.symm)⟩
state_before: case inl
α : Type u_1
f g h✝ σ τ : Perm α
hστ : σ.Disjoint τ
a : α
h : (σ * τ) a = a
hσ : σ a = a
⊢ σ a = a ∧ τ a = a
state_after: no goals

tactic: exact ⟨(congr_arg σ hτ).symm.trans h, hτ⟩
state_before: case inr
α : Type u_1
f g h✝ σ τ : Perm α
hστ : σ.Disjoint τ
a : α
h : (σ * τ) a = a
hτ : τ a = a
⊢ σ a = a ∧ τ a = a
state_after: no goals
Theorem: UniformSpace.toTopologicalSpace_iInf
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: simp only [@nhds_eq_comap_uniformity _ (iInf u), nhds_iInf,
iInf_uniformity, @nhds_eq_comap_uniformity _ (u _), Filter.comap_iInf]
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι✝ : Sort u_1
ι : Sort u_2
u : ι → UniformSpace α
a : α
⊢ 𝓝 a = 𝓝 a
state_after: no goals
Theorem: Affine.Triangle.orthocenter_mem_altitude
File: Mathlib/Geometry/Euclidean/MongePoint.lean

tactic: obtain ⟨i₂, i₃, h₁₂, h₂₃, h₁₃⟩ : ∃ i₂ i₃, i₁ ≠ i₂ ∧ i₂ ≠ i₃ ∧ i₁ ≠ i₃ := by
  fin_cases i₁ <;> decide
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
t : Triangle ℝ P
i₁ : Fin 3
⊢ t.orthocenter ∈ altitude t i₁
state_after: case intro.intro.intro.intro
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
t : Triangle ℝ P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
h₂₃ : i₂ ≠ i₃
h₁₃ : i₁ ≠ i₃
⊢ t.orthocenter ∈ altitude t i₁

tactic: rw [orthocenter_eq_mongePoint, t.altitude_eq_mongePlane h₁₂ h₁₃ h₂₃]
state_before: case intro.intro.intro.intro
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
t : Triangle ℝ P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
h₂₃ : i₂ ≠ i₃
h₁₃ : i₁ ≠ i₃
⊢ t.orthocenter ∈ altitude t i₁
state_after: case intro.intro.intro.intro
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
t : Triangle ℝ P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
h₂₃ : i₂ ≠ i₃
h₁₃ : i₁ ≠ i₃
⊢ mongePoint t ∈ mongePlane t i₂ i₃

tactic: exact t.mongePoint_mem_mongePlane
state_before: case intro.intro.intro.intro
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
t : Triangle ℝ P
i₁ i₂ i₃ : Fin 3
h₁₂ : i₁ ≠ i₂
h₂₃ : i₂ ≠ i₃
h₁₃ : i₁ ≠ i₃
⊢ mongePoint t ∈ mongePlane t i₂ i₃
state_after: no goals

tactic: fin_cases i₁ <;> decide
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
t : Triangle ℝ P
i₁ : Fin 3
⊢ ∃ i₂ i₃, i₁ ≠ i₂ ∧ i₂ ≠ i₃ ∧ i₁ ≠ i₃
state_after: no goals
Theorem: Polynomial.rootMultiplicity_pos'
File: Mathlib/Algebra/Polynomial/Div.lean

tactic: rw [pos_iff_ne_zero, Ne, rootMultiplicity_eq_zero_iff, Classical.not_imp, and_comm]
state_before: R : Type u
S : Type v
T : Type w
A : Type z
a b : R
n : ℕ
inst✝ : CommRing R
p✝ q p : R[X]
x : R
⊢ 0 < rootMultiplicity x p ↔ p ≠ 0 ∧ p.IsRoot x
state_after: no goals
Theorem: Squarefree.natFactorization_le_one
File: Mathlib/Data/Nat/Squarefree.lean

tactic: rcases eq_or_ne n 0 with (rfl | hn')
state_before: s : Finset ℕ
m n✝ p✝ n p : ℕ
hn : Squarefree n
⊢ n.factorization p ≤ 1
state_after: case inl
s : Finset ℕ
m n p✝ p : ℕ
hn : Squarefree 0
⊢ (factorization 0) p ≤ 1

case inr
s : Finset ℕ
m n✝ p✝ n p : ℕ
hn : Squarefree n
hn' : n ≠ 0
⊢ n.factorization p ≤ 1

tactic: rw [multiplicity.squarefree_iff_multiplicity_le_one] at hn
state_before: case inr
s : Finset ℕ
m n✝ p✝ n p : ℕ
hn : Squarefree n
hn' : n ≠ 0
⊢ n.factorization p ≤ 1
state_after: case inr
s : Finset ℕ
m n✝ p✝ n p : ℕ
hn : ∀ (x : ℕ), multiplicity x n ≤ 1 ∨ IsUnit x
hn' : n ≠ 0
⊢ n.factorization p ≤ 1

tactic: by_cases hp : p.Prime
state_before: case inr
s : Finset ℕ
m n✝ p✝ n p : ℕ
hn : ∀ (x : ℕ), multiplicity x n ≤ 1 ∨ IsUnit x
hn' : n ≠ 0
⊢ n.factorization p ≤ 1
state_after: case pos
s : Finset ℕ
m n✝ p✝ n p : ℕ
hn : ∀ (x : ℕ), multiplicity x n ≤ 1 ∨ IsUnit x
hn' : n ≠ 0
hp : Prime p
⊢ n.factorization p ≤ 1

case neg
s : Finset ℕ
m n✝ p✝ n p : ℕ
hn : ∀ (x : ℕ), multiplicity x n ≤ 1 ∨ IsUnit x
hn' : n ≠ 0
hp : ¬Prime p
⊢ n.factorization p ≤ 1

tactic: simp
state_before: case inl
s : Finset ℕ
m n p✝ p : ℕ
hn : Squarefree 0
⊢ (factorization 0) p ≤ 1
state_after: no goals

tactic: have := hn p
state_before: case pos
s : Finset ℕ
m n✝ p✝ n p : ℕ
hn : ∀ (x : ℕ), multiplicity x n ≤ 1 ∨ IsUnit x
hn' : n ≠ 0
hp : Prime p
⊢ n.factorization p ≤ 1
state_after: case pos
s : Finset ℕ
m n✝ p✝ n p : ℕ
hn : ∀ (x : ℕ), multiplicity x n ≤ 1 ∨ IsUnit x
hn' : n ≠ 0
hp : Prime p
this : multiplicity p n ≤ 1 ∨ IsUnit p
⊢ n.factorization p ≤ 1

tactic: simp only [multiplicity_eq_factorization hp hn', Nat.isUnit_iff, hp.ne_one, or_false_iff]
  at this
state_before: case pos
s : Finset ℕ
m n✝ p✝ n p : ℕ
hn : ∀ (x : ℕ), multiplicity x n ≤ 1 ∨ IsUnit x
hn' : n ≠ 0
hp : Prime p
this : multiplicity p n ≤ 1 ∨ IsUnit p
⊢ n.factorization p ≤ 1
state_after: case pos
s : Finset ℕ
m n✝ p✝ n p : ℕ
hn : ∀ (x : ℕ), multiplicity x n ≤ 1 ∨ IsUnit x
hn' : n ≠ 0
hp : Prime p
this : ↑(n.factorization p) ≤ 1
⊢ n.factorization p ≤ 1

tactic: exact mod_cast this
state_before: case pos
s : Finset ℕ
m n✝ p✝ n p : ℕ
hn : ∀ (x : ℕ), multiplicity x n ≤ 1 ∨ IsUnit x
hn' : n ≠ 0
hp : Prime p
this : ↑(n.factorization p) ≤ 1
⊢ n.factorization p ≤ 1
state_after: no goals

tactic: rw [factorization_eq_zero_of_non_prime _ hp]
state_before: case neg
s : Finset ℕ
m n✝ p✝ n p : ℕ
hn : ∀ (x : ℕ), multiplicity x n ≤ 1 ∨ IsUnit x
hn' : n ≠ 0
hp : ¬Prime p
⊢ n.factorization p ≤ 1
state_after: case neg
s : Finset ℕ
m n✝ p✝ n p : ℕ
hn : ∀ (x : ℕ), multiplicity x n ≤ 1 ∨ IsUnit x
hn' : n ≠ 0
hp : ¬Prime p
⊢ 0 ≤ 1

tactic: exact zero_le_one
state_before: case neg
s : Finset ℕ
m n✝ p✝ n p : ℕ
hn : ∀ (x : ℕ), multiplicity x n ≤ 1 ∨ IsUnit x
hn' : n ≠ 0
hp : ¬Prime p
⊢ 0 ≤ 1
state_after: no goals
Theorem: Complex.continuousWithinAt_log_of_re_neg_of_im_zero
File: Mathlib/Analysis/SpecialFunctions/Complex/Log.lean

tactic: convert
  (continuous_ofReal.continuousAt.comp_continuousWithinAt
          (continuous_abs.continuousWithinAt.log _)).tendsto.add
    ((continuous_ofReal.continuousAt.comp_continuousWithinAt <|
          continuousWithinAt_arg_of_re_neg_of_im_zero hre him).mul
      tendsto_const_nhds) using 1
state_before: z : ℂ
hre : z.re < 0
him : z.im = 0
⊢ ContinuousWithinAt log {z | 0 ≤ z.im} z
state_after: case convert_1
z : ℂ
hre : z.re < 0
him : z.im = 0
⊢ abs z ≠ 0

tactic: lift z to ℝ using him
state_before: case convert_1
z : ℂ
hre : z.re < 0
him : z.im = 0
⊢ abs z ≠ 0
state_after: case convert_1.intro
z : ℝ
hre : (↑z).re < 0
⊢ abs ↑z ≠ 0

tactic: simpa using hre.ne
state_before: case convert_1.intro
z : ℝ
hre : (↑z).re < 0
⊢ abs ↑z ≠ 0
state_after: no goals
Theorem: PFun.preimage_asSubtype
File: Mathlib/Data/PFun.lean

tactic: ext x
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ι : Type u_6
f✝ f : α →. β
s : Set β
⊢ f.asSubtype ⁻¹' s = Subtype.val ⁻¹' f.preimage s
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ι : Type u_6
f✝ f : α →. β
s : Set β
x : ↑f.Dom
⊢ x ∈ f.asSubtype ⁻¹' s ↔ x ∈ Subtype.val ⁻¹' f.preimage s

tactic: simp only [Set.mem_preimage, Set.mem_setOf_eq, PFun.asSubtype, PFun.mem_preimage]
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ι : Type u_6
f✝ f : α →. β
s : Set β
x : ↑f.Dom
⊢ x ∈ f.asSubtype ⁻¹' s ↔ x ∈ Subtype.val ⁻¹' f.preimage s
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ι : Type u_6
f✝ f : α →. β
s : Set β
x : ↑f.Dom
⊢ f.fn ↑x ⋯ ∈ s ↔ ∃ y ∈ s, y ∈ f ↑x

tactic: exact
  Iff.intro (fun h => ⟨_, h, Part.get_mem _⟩) fun ⟨y, ys, fxy⟩ =>
    have : f.fn x.val x.property ∈ f x.val := Part.get_mem _
    Part.mem_unique fxy this ▸ ys
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ι : Type u_6
f✝ f : α →. β
s : Set β
x : ↑f.Dom
⊢ f.fn ↑x ⋯ ∈ s ↔ ∃ y ∈ s, y ∈ f ↑x
state_after: no goals
Theorem: Set.Iic.isCoatom_iff
File: Mathlib/Order/Atoms.lean

tactic: rw [← covBy_top_iff]
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
inst✝ : PartialOrder α
a✝ b : α
a : ↑(Iic b)
⊢ IsCoatom a ↔ ↑a ⋖ b
state_after: ι : Sort u_1
α : Type u_2
β : Type u_3
inst✝ : PartialOrder α
a✝ b : α
a : ↑(Iic b)
⊢ a ⋖ ⊤ ↔ ↑a ⋖ b

tactic: refine (Set.OrdConnected.apply_covBy_apply_iff (OrderEmbedding.subtype fun c => c ≤ b) ?_).symm
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
inst✝ : PartialOrder α
a✝ b : α
a : ↑(Iic b)
⊢ a ⋖ ⊤ ↔ ↑a ⋖ b
state_after: ι : Sort u_1
α : Type u_2
β : Type u_3
inst✝ : PartialOrder α
a✝ b : α
a : ↑(Iic b)
⊢ (range ⇑(OrderEmbedding.subtype fun c => c ≤ b)).OrdConnected

tactic: simpa only [OrderEmbedding.subtype_apply, Subtype.range_coe_subtype] using Set.ordConnected_Iic
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
inst✝ : PartialOrder α
a✝ b : α
a : ↑(Iic b)
⊢ (range ⇑(OrderEmbedding.subtype fun c => c ≤ b)).OrdConnected
state_after: no goals
Theorem: Int.ofNat_isUnit
File: Mathlib/Algebra/Group/Int.lean

tactic: simp [isUnit_iff_natAbs_eq]
state_before: u v : ℤ
n : ℕ
⊢ IsUnit ↑n ↔ IsUnit n
state_after: no goals
Theorem: SpectrumRestricts.nnreal_iff
File: Mathlib/Analysis/NormedSpace/Spectrum.lean

tactic: refine ⟨fun h x hx ↦ ?_, fun h ↦ ?_⟩
state_before: 𝕜 : Type u_1
A✝ : Type u_2
A : Type u_3
inst✝¹ : Ring A
inst✝ : Algebra ℝ A
a : A
⊢ SpectrumRestricts a ⇑ContinuousMap.realToNNReal ↔ ∀ x ∈ spectrum ℝ a, 0 ≤ x
state_after: case refine_1
𝕜 : Type u_1
A✝ : Type u_2
A : Type u_3
inst✝¹ : Ring A
inst✝ : Algebra ℝ A
a : A
h : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
x : ℝ
hx : x ∈ spectrum ℝ a
⊢ 0 ≤ x

case refine_2
𝕜 : Type u_1
A✝ : Type u_2
A : Type u_3
inst✝¹ : Ring A
inst✝ : Algebra ℝ A
a : A
h : ∀ x ∈ spectrum ℝ a, 0 ≤ x
⊢ SpectrumRestricts a ⇑ContinuousMap.realToNNReal

tactic: obtain ⟨x, -, rfl⟩ := h.algebraMap_image.symm ▸ hx
state_before: case refine_1
𝕜 : Type u_1
A✝ : Type u_2
A : Type u_3
inst✝¹ : Ring A
inst✝ : Algebra ℝ A
a : A
h : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
x : ℝ
hx : x ∈ spectrum ℝ a
⊢ 0 ≤ x
state_after: case refine_1.intro.intro
𝕜 : Type u_1
A✝ : Type u_2
A : Type u_3
inst✝¹ : Ring A
inst✝ : Algebra ℝ A
a : A
h : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
x : ℝ≥0
hx : (algebraMap ℝ≥0 ℝ) x ∈ spectrum ℝ a
⊢ 0 ≤ (algebraMap ℝ≥0 ℝ) x

tactic: exact coe_nonneg x
state_before: case refine_1.intro.intro
𝕜 : Type u_1
A✝ : Type u_2
A : Type u_3
inst✝¹ : Ring A
inst✝ : Algebra ℝ A
a : A
h : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
x : ℝ≥0
hx : (algebraMap ℝ≥0 ℝ) x ∈ spectrum ℝ a
⊢ 0 ≤ (algebraMap ℝ≥0 ℝ) x
state_after: no goals

tactic: exact .of_subset_range_algebraMap (fun _ ↦ Real.toNNReal_coe) fun x hx ↦ ⟨⟨x, h x hx⟩, rfl⟩
state_before: case refine_2
𝕜 : Type u_1
A✝ : Type u_2
A : Type u_3
inst✝¹ : Ring A
inst✝ : Algebra ℝ A
a : A
h : ∀ x ∈ spectrum ℝ a, 0 ≤ x
⊢ SpectrumRestricts a ⇑ContinuousMap.realToNNReal
state_after: no goals
Theorem: CategoryTheory.SingleFunctors.hom_inv_id_hom_app
File: Mathlib/CategoryTheory/Shift/SingleFunctors.lean

tactic: rw [← NatTrans.comp_app, hom_inv_id_hom, NatTrans.id_app]
state_before: C : Type u_1
D : Type u_2
E : Type u_3
E' : Type u_4
inst✝⁵ : Category.{u_7, u_1} C
inst✝⁴ : Category.{u_6, u_2} D
inst✝³ : Category.{?u.54839, u_3} E
A : Type u_5
inst✝² : AddMonoid A
inst✝¹ : HasShift D A
inst✝ : HasShift E A
F G H : SingleFunctors C D A
e : F ≅ G
n : A
X : C
⊢ (e.hom.hom n).app X ≫ (e.inv.hom n).app X = 𝟙 ((F.functor n).obj X)
state_after: no goals
Theorem: map_inv_le_iff
File: Mathlib/Order/Hom/Basic.lean

tactic: convert (map_le_map_iff f (a := EquivLike.inv f b) (b := a)).symm
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
inst✝³ : LE α
inst✝² : LE β
inst✝¹ : EquivLike F α β
inst✝ : OrderIsoClass F α β
f : F
a : α
b : β
⊢ EquivLike.inv f b ≤ a ↔ b ≤ f a
state_after: case h.e'_2.h.e'_3
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
inst✝³ : LE α
inst✝² : LE β
inst✝¹ : EquivLike F α β
inst✝ : OrderIsoClass F α β
f : F
a : α
b : β
⊢ b = f (EquivLike.inv f b)

tactic: exact (EquivLike.right_inv f _).symm
state_before: case h.e'_2.h.e'_3
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
inst✝³ : LE α
inst✝² : LE β
inst✝¹ : EquivLike F α β
inst✝ : OrderIsoClass F α β
f : F
a : α
b : β
⊢ b = f (EquivLike.inv f b)
state_after: no goals
Theorem: convexHull_pair
File: Mathlib/Analysis/Convex/Hull.lean

tactic: refine (convexHull_min ?_ <| convex_segment _ _).antisymm
  (segment_subset_convexHull (mem_insert _ _) <| subset_insert _ _ <| mem_singleton _)
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t : Set E
x✝ y✝ x y : E
⊢ (convexHull 𝕜) {x, y} = segment 𝕜 x y
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t : Set E
x✝ y✝ x y : E
⊢ {x, y} ⊆ segment 𝕜 x y

tactic: rw [insert_subset_iff, singleton_subset_iff]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t : Set E
x✝ y✝ x y : E
⊢ {x, y} ⊆ segment 𝕜 x y
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t : Set E
x✝ y✝ x y : E
⊢ x ∈ segment 𝕜 x y ∧ y ∈ segment 𝕜 x y

tactic: exact ⟨left_mem_segment _ _ _, right_mem_segment _ _ _⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t : Set E
x✝ y✝ x y : E
⊢ x ∈ segment 𝕜 x y ∧ y ∈ segment 𝕜 x y
state_after: no goals
Theorem: Set.Iic.isCompl_iff
File: Mathlib/Order/LatticeIntervals.lean

tactic: rw [_root_.isCompl_iff, Iic.disjoint_iff, Iic.codisjoint_iff]
state_before: α : Type u_1
a : α
inst✝¹ : Lattice α
inst✝ : BoundedOrder α
x y : ↑(Iic a)
⊢ IsCompl x y ↔ Disjoint ↑x ↑y ∧ ↑x ⊔ ↑y = a
state_after: no goals
Theorem: not_uncountable_iff
File: Mathlib/Data/Countable/Defs.lean

tactic: rw [uncountable_iff_not_countable, not_not]
state_before: α : Sort u
β : Sort v
⊢ ¬Uncountable α ↔ Countable α
state_after: no goals
Theorem: nhdsWithin_union
File: Mathlib/Topology/ContinuousOn.lean

tactic: delta nhdsWithin
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : TopologicalSpace α
a : α
s t : Set α
⊢ 𝓝[s ∪ t] a = 𝓝[s] a ⊔ 𝓝[t] a
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : TopologicalSpace α
a : α
s t : Set α
⊢ 𝓝 a ⊓ 𝓟 (s ∪ t) = 𝓝 a ⊓ 𝓟 s ⊔ 𝓝 a ⊓ 𝓟 t

tactic: rw [← inf_sup_left, sup_principal]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : TopologicalSpace α
a : α
s t : Set α
⊢ 𝓝 a ⊓ 𝓟 (s ∪ t) = 𝓝 a ⊓ 𝓟 s ⊔ 𝓝 a ⊓ 𝓟 t
state_after: no goals
Theorem: Complex.exists_root
File: Mathlib/Analysis/Complex/Polynomial.lean

tactic: by_contra! hf'
state_before: f : ℂ[X]
hf : 0 < f.degree
⊢ ∃ z, f.IsRoot z
state_after: f : ℂ[X]
hf : 0 < f.degree
hf' : ∀ (z : ℂ), ¬f.IsRoot z
⊢ False

tactic: have (z : ℂ) : (f.eval z)⁻¹ = 0 :=
  (f.differentiable.inv hf').apply_eq_of_tendsto_cocompact z <|
    Metric.cobounded_eq_cocompact (α := ℂ) ▸ (Filter.tendsto_inv₀_cobounded.comp <| by
      simpa only [tendsto_norm_atTop_iff_cobounded]
        using f.tendsto_norm_atTop hf tendsto_norm_cobounded_atTop)
state_before: f : ℂ[X]
hf : 0 < f.degree
hf' : ∀ (z : ℂ), ¬f.IsRoot z
⊢ False
state_after: f : ℂ[X]
hf : 0 < f.degree
hf' : ∀ (z : ℂ), ¬f.IsRoot z
this : ∀ (z : ℂ), (eval z f)⁻¹ = 0
⊢ False

tactic: obtain rfl : f = C 0 := Polynomial.funext fun z ↦ inv_injective <| by simp [this]
state_before: f : ℂ[X]
hf : 0 < f.degree
hf' : ∀ (z : ℂ), ¬f.IsRoot z
this : ∀ (z : ℂ), (eval z f)⁻¹ = 0
⊢ False
state_after: hf : 0 < (C 0).degree
hf' : ∀ (z : ℂ), ¬(C 0).IsRoot z
this : ∀ (z : ℂ), (eval z (C 0))⁻¹ = 0
⊢ False

tactic: simp at hf
state_before: hf : 0 < (C 0).degree
hf' : ∀ (z : ℂ), ¬(C 0).IsRoot z
this : ∀ (z : ℂ), (eval z (C 0))⁻¹ = 0
⊢ False
state_after: no goals

tactic: simpa only [tendsto_norm_atTop_iff_cobounded]
  using f.tendsto_norm_atTop hf tendsto_norm_cobounded_atTop
state_before: f : ℂ[X]
hf : 0 < f.degree
hf' : ∀ (z : ℂ), ¬f.IsRoot z
z : ℂ
⊢ Filter.Tendsto (fun x => eval x f) (cobounded ℂ) (cobounded ℂ)
state_after: no goals

tactic: simp [this]
state_before: f : ℂ[X]
hf : 0 < f.degree
hf' : ∀ (z : ℂ), ¬f.IsRoot z
this : ∀ (z : ℂ), (eval z f)⁻¹ = 0
z : ℂ
⊢ (eval z f)⁻¹ = (eval z (C 0))⁻¹
state_after: no goals