1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: ComplexShape.QFactorsThroughHomotopy_of_exists_prev
File: Mathlib/Algebra/Homology/Localization.lean

tactic: have : DecidableRel c.Rel := by classical infer_instance
state_before: ι : Type u_1
c : ComplexShape ι
hc : ∀ (j : ι), ∃ i, c.Rel i j
C : Type u_2
inst✝³ : Category.{u_3, u_2} C
inst✝² : Preadditive C
inst✝¹ : HasBinaryBiproducts C
inst✝ : CategoryWithHomology C
K L : HomologicalComplex C c
f g : K ⟶ L
h : Homotopy f g
⊢ AreEqualizedByLocalization (HomologicalComplex.quasiIso C c) f g
state_after: ι : Type u_1
c : ComplexShape ι
hc : ∀ (j : ι), ∃ i, c.Rel i j
C : Type u_2
inst✝³ : Category.{u_3, u_2} C
inst✝² : Preadditive C
inst✝¹ : HasBinaryBiproducts C
inst✝ : CategoryWithHomology C
K L : HomologicalComplex C c
f g : K ⟶ L
h : Homotopy f g
this : DecidableRel c.Rel
⊢ AreEqualizedByLocalization (HomologicalComplex.quasiIso C c) f g

tactic: exact h.map_eq_of_inverts_homotopyEquivalences hc _
  (MorphismProperty.IsInvertedBy.of_le _ _ _
    (Localization.inverts _ (HomologicalComplex.quasiIso C _))
    (homotopyEquivalences_le_quasiIso C _))
state_before: ι : Type u_1
c : ComplexShape ι
hc : ∀ (j : ι), ∃ i, c.Rel i j
C : Type u_2
inst✝³ : Category.{u_3, u_2} C
inst✝² : Preadditive C
inst✝¹ : HasBinaryBiproducts C
inst✝ : CategoryWithHomology C
K L : HomologicalComplex C c
f g : K ⟶ L
h : Homotopy f g
this : DecidableRel c.Rel
⊢ AreEqualizedByLocalization (HomologicalComplex.quasiIso C c) f g
state_after: no goals

tactic: classical infer_instance
state_before: ι : Type u_1
c : ComplexShape ι
hc : ∀ (j : ι), ∃ i, c.Rel i j
C : Type u_2
inst✝³ : Category.{u_3, u_2} C
inst✝² : Preadditive C
inst✝¹ : HasBinaryBiproducts C
inst✝ : CategoryWithHomology C
K L : HomologicalComplex C c
f g : K ⟶ L
h : Homotopy f g
⊢ DecidableRel c.Rel
state_after: no goals

tactic: infer_instance
state_before: ι : Type u_1
c : ComplexShape ι
hc : ∀ (j : ι), ∃ i, c.Rel i j
C : Type u_2
inst✝³ : Category.{u_3, u_2} C
inst✝² : Preadditive C
inst✝¹ : HasBinaryBiproducts C
inst✝ : CategoryWithHomology C
K L : HomologicalComplex C c
f g : K ⟶ L
h : Homotopy f g
⊢ DecidableRel c.Rel
state_after: no goals
Theorem: Antitone.ne_of_lt_of_lt_nat
File: Mathlib/Order/Monotone/Basic.lean

tactic: rintro rfl
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
δ : Type u_2
π : ι → Type u_3
r : α → α → Prop
inst✝ : Preorder α
f : ℕ → α
hf : Antitone f
n : ℕ
x : α
h1 : f (n + 1) < x
h2 : x < f n
a : ℕ
⊢ f a ≠ x
state_after: ι : Type u_1
α : Type u
β : Type v
γ : Type w
δ : Type u_2
π : ι → Type u_3
r : α → α → Prop
inst✝ : Preorder α
f : ℕ → α
hf : Antitone f
n a : ℕ
h1 : f (n + 1) < f a
h2 : f a < f n
⊢ False

tactic: exact (hf.reflect_lt h2).not_le (Nat.le_of_lt_succ <| hf.reflect_lt h1)
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
δ : Type u_2
π : ι → Type u_3
r : α → α → Prop
inst✝ : Preorder α
f : ℕ → α
hf : Antitone f
n a : ℕ
h1 : f (n + 1) < f a
h2 : f a < f n
⊢ False
state_after: no goals
Theorem: Matrix.Nondegenerate.toLinearMap₂'
File: Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean

tactic: simpa only [toLinearMap₂'_apply'] using hx y
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
M✝ : Type u_4
M₁ : Type u_5
M₂ : Type u_6
M₁' : Type u_7
M₂' : Type u_8
n : Type u_9
m : Type u_10
n' : Type u_11
m' : Type u_12
ι : Type u_13
inst✝⁴ : CommRing R₁
inst✝³ : AddCommMonoid M₁
inst✝² : Module R₁ M₁
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
B : M₁ →ₗ[R₁] M₁ →ₗ[R₁] R₁
M : Matrix ι ι R₁
h : M.Nondegenerate
x : ι → R₁
hx : ∀ (y : ι → R₁), ((Matrix.toLinearMap₂' M) x) y = 0
y : ι → R₁
⊢ x ⬝ᵥ M *ᵥ y = 0
state_after: no goals
Theorem: Real.sqrt_eq_one
File: Mathlib/Data/Real/Sqrt.lean

tactic: rw [eq_comm, mul_one]
state_before: x y : ℝ
⊢ 1 * 1 = x ↔ x = 1
state_after: no goals
Theorem: Nat.totient_eq_zero
File: Mathlib/Data/Nat/Totient.lean

tactic: decide
state_before: ⊢ φ 0 = 0 ↔ 0 = 0
state_after: no goals

tactic: simpa [totient, filter_eq_empty_iff]
state_before: n : ℕ
this : ∃ x < n + 1, (n + 1).gcd x = 1
⊢ φ (n + 1) = 0 ↔ n + 1 = 0
state_after: no goals

tactic: rw [gcd_comm, ← gcd_rec, gcd_one_right]
state_before: n : ℕ
⊢ (n + 1).gcd (1 % (n + 1)) = 1
state_after: no goals
Theorem: Asymptotics.isBigOWith_neg_left
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp only [IsBigOWith_def, norm_neg]
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
⊢ IsBigOWith c l (fun x => -f' x) g ↔ IsBigOWith c l f' g
state_after: no goals
Theorem: Set.exists_ne_map_eq_of_ncard_lt_of_maps_to
File: Mathlib/Data/Set/Card.lean

tactic: by_contra h'
state_before: α : Type u_1
β : Type u_2
s t✝ : Set α
f✝ : α → β
t : Set β
hc : t.ncard < s.ncard
f : α → β
hf : ∀ a ∈ s, f a ∈ t
ht : autoParam t.Finite _auto✝
⊢ ∃ x ∈ s, ∃ y ∈ s, x ≠ y ∧ f x = f y
state_after: α : Type u_1
β : Type u_2
s t✝ : Set α
f✝ : α → β
t : Set β
hc : t.ncard < s.ncard
f : α → β
hf : ∀ a ∈ s, f a ∈ t
ht : autoParam t.Finite _auto✝
h' : ¬∃ x ∈ s, ∃ y ∈ s, x ≠ y ∧ f x = f y
⊢ False

tactic: simp only [Ne, exists_prop, not_exists, not_and, not_imp_not] at h'
state_before: α : Type u_1
β : Type u_2
s t✝ : Set α
f✝ : α → β
t : Set β
hc : t.ncard < s.ncard
f : α → β
hf : ∀ a ∈ s, f a ∈ t
ht : autoParam t.Finite _auto✝
h' : ¬∃ x ∈ s, ∃ y ∈ s, x ≠ y ∧ f x = f y
⊢ False
state_after: α : Type u_1
β : Type u_2
s t✝ : Set α
f✝ : α → β
t : Set β
hc : t.ncard < s.ncard
f : α → β
hf : ∀ a ∈ s, f a ∈ t
ht : autoParam t.Finite _auto✝
h' : ∀ x ∈ s, ∀ x_1 ∈ s, f x = f x_1 → x = x_1
⊢ False

tactic: exact (ncard_le_ncard_of_injOn f hf h' ht).not_lt hc
state_before: α : Type u_1
β : Type u_2
s t✝ : Set α
f✝ : α → β
t : Set β
hc : t.ncard < s.ncard
f : α → β
hf : ∀ a ∈ s, f a ∈ t
ht : autoParam t.Finite _auto✝
h' : ∀ x ∈ s, ∀ x_1 ∈ s, f x = f x_1 → x = x_1
⊢ False
state_after: no goals
Theorem: div_lt_div_iff_left
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [div_eq_mul_inv, div_eq_mul_inv, ← mul_lt_mul_iff_left a⁻¹, inv_mul_cancel_left,
  inv_mul_cancel_left, inv_lt_inv_iff]
state_before: α : Type u
inst✝³ : Group α
inst✝² : LT α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
a✝ b c a : α
⊢ a / b < a / c ↔ c < b
state_after: no goals
Theorem: Filter.tendsto_congr'
File: Mathlib/Order/Filter/Basic.lean

tactic: rw [Tendsto, Tendsto, map_congr hl]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
l : Filter α
f₁ f₂ : α → β
l₁ : Filter α
l₂ : Filter β
hl : f₁ =ᶠ[l₁] f₂
⊢ Tendsto f₁ l₁ l₂ ↔ Tendsto f₂ l₁ l₂
state_after: no goals
Theorem: OrderMonoidHom.cancel_left
File: Mathlib/Algebra/Order/Hom/Monoid.lean

tactic: rw [← comp_apply, h, comp_apply]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
inst✝⁷ : Preorder α
inst✝⁶ : Preorder β
inst✝⁵ : Preorder γ
inst✝⁴ : Preorder δ
inst✝³ : MulOneClass α
inst✝² : MulOneClass β
inst✝¹ : MulOneClass γ
inst✝ : MulOneClass δ
f g✝ : α →*o β
g : β →*o γ
f₁ f₂ : α →*o β
hg : Injective ⇑g
h : g.comp f₁ = g.comp f₂
a : α
⊢ g (f₁ a) = g (f₂ a)
state_after: no goals
Theorem: lowerSemicontinuousOn_iSup
File: Mathlib/Topology/Semicontinuous.lean

tactic: simp
state_before: α : Type u_1
inst✝³ : TopologicalSpace α
β : Type u_2
inst✝² : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Sort u_3
δ : Type u_4
δ' : Type u_5
inst✝¹ : CompleteLinearOrder δ
inst✝ : ConditionallyCompleteLinearOrder δ'
f : ι → α → δ
h : ∀ (i : ι), LowerSemicontinuousOn (f i) s
⊢ ∀ x ∈ s, BddAbove (range fun i => f i x)
state_after: no goals
Theorem: EuclideanSpace.volume_preserving_measurableEquiv
File: Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean

tactic: suffices volume = map (EuclideanSpace.measurableEquiv ι).symm volume by
  convert ((EuclideanSpace.measurableEquiv ι).symm.measurable.measurePreserving _).symm
state_before: ι✝ : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : Fintype ι✝
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace ℝ F
inst✝³ : FiniteDimensional ℝ F
inst✝² : MeasurableSpace F
inst✝¹ : BorelSpace F
ι : Type u_4
inst✝ : Fintype ι
⊢ MeasurePreserving (⇑(EuclideanSpace.measurableEquiv ι)) volume volume
state_after: ι✝ : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : Fintype ι✝
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace ℝ F
inst✝³ : FiniteDimensional ℝ F
inst✝² : MeasurableSpace F
inst✝¹ : BorelSpace F
ι : Type u_4
inst✝ : Fintype ι
⊢ volume = map (⇑(EuclideanSpace.measurableEquiv ι).symm) volume

tactic: rw [← addHaarMeasure_eq_volume_pi, ← Basis.parallelepiped_basisFun, ← Basis.addHaar_def,
  coe_measurableEquiv_symm, ← PiLp.continuousLinearEquiv_symm_apply 2 ℝ, Basis.map_addHaar]
state_before: ι✝ : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : Fintype ι✝
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace ℝ F
inst✝³ : FiniteDimensional ℝ F
inst✝² : MeasurableSpace F
inst✝¹ : BorelSpace F
ι : Type u_4
inst✝ : Fintype ι
⊢ volume = map (⇑(EuclideanSpace.measurableEquiv ι).symm) volume
state_after: ι✝ : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : Fintype ι✝
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace ℝ F
inst✝³ : FiniteDimensional ℝ F
inst✝² : MeasurableSpace F
inst✝¹ : BorelSpace F
ι : Type u_4
inst✝ : Fintype ι
⊢ volume = ((Pi.basisFun ℝ ι).map (PiLp.continuousLinearEquiv 2 ℝ fun a => ℝ).symm.toLinearEquiv).addHaar

tactic: exact (EuclideanSpace.basisFun _ _).addHaar_eq_volume.symm
state_before: ι✝ : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : Fintype ι✝
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace ℝ F
inst✝³ : FiniteDimensional ℝ F
inst✝² : MeasurableSpace F
inst✝¹ : BorelSpace F
ι : Type u_4
inst✝ : Fintype ι
⊢ volume = ((Pi.basisFun ℝ ι).map (PiLp.continuousLinearEquiv 2 ℝ fun a => ℝ).symm.toLinearEquiv).addHaar
state_after: no goals

tactic: convert ((EuclideanSpace.measurableEquiv ι).symm.measurable.measurePreserving _).symm
state_before: ι✝ : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : Fintype ι✝
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace ℝ F
inst✝³ : FiniteDimensional ℝ F
inst✝² : MeasurableSpace F
inst✝¹ : BorelSpace F
ι : Type u_4
inst✝ : Fintype ι
this : volume = map (⇑(EuclideanSpace.measurableEquiv ι).symm) volume
⊢ MeasurePreserving (⇑(EuclideanSpace.measurableEquiv ι)) volume volume
state_after: no goals
Theorem: Complex.log_neg_one
File: Mathlib/Analysis/SpecialFunctions/Complex/Log.lean

tactic: simp [log]
state_before: ⊢ log (-1) = ↑π * I
state_after: no goals
Theorem: Algebra.adjoin_union_eq_adjoin_adjoin
File: Mathlib/RingTheory/Adjoin/Basic.lean

tactic: simpa using adjoin_algebraMap_image_union_eq_adjoin_adjoin R s t
state_before: R : Type uR
S : Type uS
A : Type uA
B : Type uB
inst✝² : CommSemiring R
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
s t : Set A
⊢ adjoin R (s ∪ t) = Subalgebra.restrictScalars R (adjoin (↥(adjoin R s)) t)
state_after: no goals
Theorem: Units.coe_dvd
File: Mathlib/Algebra/Divisibility/Units.lean

tactic: simp
state_before: α : Type u_1
inst✝ : Monoid α
a b : α
u : αˣ
⊢ a = ↑u * (↑u⁻¹ * a)
state_after: no goals
Theorem: Finset.filter_eq'
File: Mathlib/Data/Finset/Basic.lean

tactic: simp_rw [@eq_comm _ b]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
p q : α → Prop
inst✝³ : DecidablePred p
inst✝² : DecidablePred q
s✝ : Finset α
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset β
b x✝¹ : β
x✝ : x✝¹ ∈ s
⊢ x✝¹ = b ↔ b = x✝¹
state_after: no goals
Theorem: IsLocalMaxOn.fderivWithin_eq_zero
File: Mathlib/Analysis/Calculus/LocalExtr/Basic.lean

tactic: rw [fderivWithin_zero_of_not_differentiableWithinAt hf]
state_before: E : Type u
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : E → ℝ
a : E
f' : E →L[ℝ] ℝ
s : Set E
h : IsLocalMaxOn f s a
y : E
hy : y ∈ posTangentConeAt s a
hy' : -y ∈ posTangentConeAt s a
hf : ¬DifferentiableWithinAt ℝ f s a
⊢ (fderivWithin ℝ f s a) y = 0
state_after: E : Type u
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : E → ℝ
a : E
f' : E →L[ℝ] ℝ
s : Set E
h : IsLocalMaxOn f s a
y : E
hy : y ∈ posTangentConeAt s a
hy' : -y ∈ posTangentConeAt s a
hf : ¬DifferentiableWithinAt ℝ f s a
⊢ 0 y = 0

tactic: rfl
state_before: E : Type u
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : E → ℝ
a : E
f' : E →L[ℝ] ℝ
s : Set E
h : IsLocalMaxOn f s a
y : E
hy : y ∈ posTangentConeAt s a
hy' : -y ∈ posTangentConeAt s a
hf : ¬DifferentiableWithinAt ℝ f s a
⊢ 0 y = 0
state_after: no goals
Theorem: Polynomial.Monic.nextCoeff_mul
File: Mathlib/Algebra/Polynomial/Monic.lean

tactic: nontriviality
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
hq : q.Monic
⊢ (p * q).nextCoeff = p.nextCoeff + q.nextCoeff
state_after: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
hq : q.Monic
a✝ : Nontrivial R
⊢ (p * q).nextCoeff = p.nextCoeff + q.nextCoeff

tactic: simp only [← coeff_one_reverse]
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
hq : q.Monic
a✝ : Nontrivial R
⊢ (p * q).nextCoeff = p.nextCoeff + q.nextCoeff
state_after: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
hq : q.Monic
a✝ : Nontrivial R
⊢ (p * q).reverse.coeff 1 = p.reverse.coeff 1 + q.reverse.coeff 1

tactic: rw [reverse_mul] <;>
  simp [coeff_mul, antidiagonal, hp.leadingCoeff, hq.leadingCoeff, add_comm,
    show Nat.succ 0 = 1 from rfl]
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
hq : q.Monic
a✝ : Nontrivial R
⊢ (p * q).reverse.coeff 1 = p.reverse.coeff 1 + q.reverse.coeff 1
state_after: no goals
Theorem: HasStrictDerivAt.clog_real
File: Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean

tactic: simpa only [div_eq_inv_mul] using (hasStrictFDerivAt_log_real h₂).comp_hasStrictDerivAt x h₁
state_before: α : Type u_1
inst✝² : TopologicalSpace α
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → ℂ
x : ℝ
f' : ℂ
h₁ : HasStrictDerivAt f f' x
h₂ : f x ∈ slitPlane
⊢ HasStrictDerivAt (fun t => log (f t)) (f' / f x) x
state_after: no goals
Theorem: TendstoLocallyUniformlyOn.union
File: Mathlib/Topology/UniformSpace/UniformConvergence.lean

tactic: rw [← sUnion_pair]
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 α
s₁ s₂ : Set α
hs₁ : IsOpen s₁
hs₂ : IsOpen s₂
h₁ : TendstoLocallyUniformlyOn F f p s₁
h₂ : TendstoLocallyUniformlyOn F f p s₂
⊢ TendstoLocallyUniformlyOn F f p (s₁ ∪ s₂)
state_after: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝ : TopologicalSpace α
s₁ s₂ : Set α
hs₁ : IsOpen s₁
hs₂ : IsOpen s₂
h₁ : TendstoLocallyUniformlyOn F f p s₁
h₂ : TendstoLocallyUniformlyOn F f p s₂
⊢ TendstoLocallyUniformlyOn F f p (⋃₀ {s₁, s₂})

tactic: refine tendstoLocallyUniformlyOn_sUnion _ ?_ ?_ <;> simp [*]
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 α
s₁ s₂ : Set α
hs₁ : IsOpen s₁
hs₂ : IsOpen s₂
h₁ : TendstoLocallyUniformlyOn F f p s₁
h₂ : TendstoLocallyUniformlyOn F f p s₂
⊢ TendstoLocallyUniformlyOn F f p (⋃₀ {s₁, s₂})
state_after: no goals
Theorem: biSup_prod
File: Mathlib/Order/CompleteLattice.lean

tactic: simp_rw [iSup_prod, mem_prod, iSup_and]
state_before: α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : CompleteLattice α
f✝ g s✝ t✝ : ι → α
a b : α
f : β × γ → α
s : Set β
t : Set γ
⊢ ⨆ x ∈ s ×ˢ t, f x = ⨆ a ∈ s, ⨆ b ∈ t, f (a, b)
state_after: α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : CompleteLattice α
f✝ g s✝ t✝ : ι → α
a b : α
f : β × γ → α
s : Set β
t : Set γ
⊢ ⨆ i, ⨆ j, ⨆ (_ : i ∈ s), ⨆ (_ : j ∈ t), f (i, j) = ⨆ a ∈ s, ⨆ b ∈ t, f (a, b)

tactic: exact iSup_congr fun _ => iSup_comm
state_before: α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : CompleteLattice α
f✝ g s✝ t✝ : ι → α
a b : α
f : β × γ → α
s : Set β
t : Set γ
⊢ ⨆ i, ⨆ j, ⨆ (_ : i ∈ s), ⨆ (_ : j ∈ t), f (i, j) = ⨆ a ∈ s, ⨆ b ∈ t, f (a, b)
state_after: no goals
Theorem: Pell.Solution₁.exists_pos_variant
File: Mathlib/NumberTheory/Pell.lean

tactic: refine
      (lt_or_gt_of_ne (a.x_ne_zero h₀.le)).elim
        ((le_total 0 a.y).elim (fun hy hx => ⟨-a⁻¹, ?_, ?_, ?_⟩) fun hy hx => ⟨-a, ?_, ?_, ?_⟩)
        ((le_total 0 a.y).elim (fun hy hx => ⟨a, hx, hy, ?_⟩) fun hy hx => ⟨a⁻¹, hx, ?_, ?_⟩) <;>
    simp only [neg_neg, inv_inv, neg_inv, Set.mem_insert_iff, Set.mem_singleton_iff, true_or_iff,
      eq_self_iff_true, x_neg, x_inv, y_neg, y_inv, neg_pos, neg_nonneg, or_true_iff] <;>
  assumption
state_before: d : ℤ
h₀ : 0 < d
a : Solution₁ d
⊢ ∃ b, 0 < b.x ∧ 0 ≤ b.y ∧ a ∈ {b, b⁻¹, -b, -b⁻¹}
state_after: no goals
Theorem: Finset.product_eq_biUnion
File: Mathlib/Data/Finset/Prod.lean

tactic: simp only [mem_product, mem_biUnion, mem_image, exists_prop, Prod.mk.inj_iff, and_left_comm,
  exists_and_left, exists_eq_right, exists_eq_left]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s✝ s' : Finset α
t✝ t' : Finset β
a : α
b : β
inst✝ : DecidableEq (α × β)
s : Finset α
t : Finset β
x✝ : α × β
x : α
y : β
⊢ (x, y) ∈ s ×ˢ t ↔ (x, y) ∈ s.biUnion fun a => image (fun b => (a, b)) t
state_after: no goals
Theorem: PartENat.get_eq_iff_eq_coe
File: Mathlib/Data/Nat/PartENat.lean

tactic: rw [get_eq_iff_eq_some]
state_before: a : PartENat
ha : a.Dom
b : ℕ
⊢ a.get ha = b ↔ a = ↑b
state_after: a : PartENat
ha : a.Dom
b : ℕ
⊢ a = ↑b ↔ a = ↑b

tactic: rfl
state_before: a : PartENat
ha : a.Dom
b : ℕ
⊢ a = ↑b ↔ a = ↑b
state_after: no goals
Theorem: Ideal.sum_pow_mem_span_pow
File: Mathlib/RingTheory/Ideal/Basic.lean

tactic: classical
simpa only [Multiset.card_map, Multiset.map_map, comp_apply, Multiset.toFinset_map,
  Finset.coe_image, Finset.val_toFinset] using pow_multiset_sum_mem_span_pow (s.1.map f) n
state_before: α : Type u
β : Type v
a b : α
inst✝ : CommSemiring α
I : Ideal α
ι : Type u_1
s : Finset ι
f : ι → α
n : ℕ
⊢ (∑ i ∈ s, f i) ^ (s.card * n + 1) ∈ span ((fun i => f i ^ (n + 1)) '' ↑s)
state_after: no goals

tactic: simpa only [Multiset.card_map, Multiset.map_map, comp_apply, Multiset.toFinset_map,
  Finset.coe_image, Finset.val_toFinset] using pow_multiset_sum_mem_span_pow (s.1.map f) n
state_before: α : Type u
β : Type v
a b : α
inst✝ : CommSemiring α
I : Ideal α
ι : Type u_1
s : Finset ι
f : ι → α
n : ℕ
⊢ (∑ i ∈ s, f i) ^ (s.card * n + 1) ∈ span ((fun i => f i ^ (n + 1)) '' ↑s)
state_after: no goals
Theorem: WeierstrassCurve.Jacobian.dblXYZ_of_Z_eq_zero
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

tactic: erw [dblXYZ, dblX_of_Z_eq_zero hP hPz, dblY_of_Z_eq_zero hP hPz, dblZ_of_Z_eq_zero hPz, smul_fin3,
  mul_one, mul_one, mul_zero]
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P : Fin 3 → R
hP : W'.Equation P
hPz : P z = 0
⊢ W'.dblXYZ P = P x ^ 2 • ![1, 1, 0]
state_after: no goals
Theorem: Monotone.ciSup_mem_iInter_Icc_of_antitone
File: Mathlib/Order/ConditionallyCompleteLattice/Basic.lean

tactic: refine mem_iInter.2 fun n => ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : ConditionallyCompleteLattice α
s t : Set α
a b : α
inst✝ : SemilatticeSup β
f g : β → α
hf : Monotone f
hg : Antitone g
h : f ≤ g
⊢ ⨆ n, f n ∈ ⋂ n, Icc (f n) (g n)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : ConditionallyCompleteLattice α
s t : Set α
a b : α
inst✝ : SemilatticeSup β
f g : β → α
hf : Monotone f
hg : Antitone g
h : f ≤ g
n : β
⊢ ⨆ n, f n ∈ Icc (f n) (g n)

tactic: haveI : Nonempty β := ⟨n⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : ConditionallyCompleteLattice α
s t : Set α
a b : α
inst✝ : SemilatticeSup β
f g : β → α
hf : Monotone f
hg : Antitone g
h : f ≤ g
n : β
⊢ ⨆ n, f n ∈ Icc (f n) (g n)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : ConditionallyCompleteLattice α
s t : Set α
a b : α
inst✝ : SemilatticeSup β
f g : β → α
hf : Monotone f
hg : Antitone g
h : f ≤ g
n : β
this : Nonempty β
⊢ ⨆ n, f n ∈ Icc (f n) (g n)

tactic: have : ∀ m, f m ≤ g n := fun m => hf.forall_le_of_antitone hg h m n
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : ConditionallyCompleteLattice α
s t : Set α
a b : α
inst✝ : SemilatticeSup β
f g : β → α
hf : Monotone f
hg : Antitone g
h : f ≤ g
n : β
this : Nonempty β
⊢ ⨆ n, f n ∈ Icc (f n) (g n)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : ConditionallyCompleteLattice α
s t : Set α
a b : α
inst✝ : SemilatticeSup β
f g : β → α
hf : Monotone f
hg : Antitone g
h : f ≤ g
n : β
this✝ : Nonempty β
this : ∀ (m : β), f m ≤ g n
⊢ ⨆ n, f n ∈ Icc (f n) (g n)

tactic: exact ⟨le_ciSup ⟨g <| n, forall_mem_range.2 this⟩ _, ciSup_le this⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : ConditionallyCompleteLattice α
s t : Set α
a b : α
inst✝ : SemilatticeSup β
f g : β → α
hf : Monotone f
hg : Antitone g
h : f ≤ g
n : β
this✝ : Nonempty β
this : ∀ (m : β), f m ≤ g n
⊢ ⨆ n, f n ∈ Icc (f n) (g n)
state_after: no goals
Theorem: Real.one_le_cosh
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean

tactic: simp only [_root_.abs_zero, _root_.abs_nonneg]
state_before: x✝ y z x : ℝ
⊢ |0| ≤ |x|
state_after: no goals
Theorem: MvPolynomial.monomial_sum_index
File: Mathlib/Algebra/MvPolynomial/Basic.lean

tactic: rw [← monomial_sum_one, C_mul', ← (monomial _).map_smul, smul_eq_mul, mul_one]
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a✝ a' a₁ a₂ : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p q : MvPolynomial σ R
α : Type u_2
s : Finset α
f : α → σ →₀ ℕ
a : R
⊢ (monomial (∑ i ∈ s, f i)) a = C a * ∏ i ∈ s, (monomial (f i)) 1
state_after: no goals
Theorem: Nat.bit_lt_two_pow_succ_iff
File: Mathlib/Data/Nat/Bitwise.lean

tactic: cases b <;> simp [bit0, bit1] <;> omega
state_before: b : Bool
x n : ℕ
⊢ bit b x < 2 ^ (n + 1) ↔ x < 2 ^ n
state_after: no goals
Theorem: SetTheory.PGame.Subsequent.moveRight_mk_left
File: Mathlib/SetTheory/Game/PGame.lean

tactic: pgame_wf_tac
state_before: xl xr : Type u
xR : xr → PGame
i : xl
xL : xl → PGame
j : (xL i).RightMoves
⊢ ((xL i).moveRight j).Subsequent (mk xl xr xL xR)
state_after: no goals