tasksource/leandojo huggingface dataset:
Theorem: Complex.cpow_add
File: Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean

tactic: simp only [cpow_def, ite_mul, boole_mul, mul_ite, mul_boole]
state_before: x y z : ℂ
hx : x ≠ 0
⊢ x ^ (y + z) = x ^ y * x ^ z

tactic: simp_all [exp_add, mul_add]
state_before: x y z : ℂ
hx : x ≠ 0
⊢ (if x = 0 then if y + z = 0 then 1 else 0 else exp (log x * (y + z))) =
    if x = 0 then
      if z = 0 then if x = 0 then if y = 0 then 1 * 1 else 0 * 1 else exp (log x * y) * 1
      else if x = 0 then if y = 0 then 1 * 0 else 0 * 0 else exp (log x * y) * 0
    else if x = 0 then if y = 0 then 1 * exp (log x * z) else 0 * exp (log x * z) else exp (log x * y) * exp (log x * z)
Theorem: MeasurableSet.image_fract
File: Mathlib/MeasureTheory/Function/Floor.lean

tactic: simp only [Int.image_fract, sub_eq_add_neg, image_add_right']
state_before: α : Type ?u.4493
R : Type u_1
inst✝⁶ : MeasurableSpace α
inst✝⁵ : LinearOrderedRing R
inst✝⁴ : FloorRing R
inst✝³ : TopologicalSpace R
inst✝² : OrderTopology R
inst✝¹ : MeasurableSpace R
inst✝ : BorelSpace R
s : Set R
hs : MeasurableSet s
⊢ MeasurableSet (Int.fract '' s)

tactic: exact MeasurableSet.iUnion fun m => (measurable_add_const _ hs).inter measurableSet_Ico
state_before: α : Type ?u.4493
R : Type u_1
inst✝⁶ : MeasurableSpace α
inst✝⁵ : LinearOrderedRing R
inst✝⁴ : FloorRing R
inst✝³ : TopologicalSpace R
inst✝² : OrderTopology R
inst✝¹ : MeasurableSpace R
inst✝ : BorelSpace R
s : Set R
hs : MeasurableSet s
⊢ MeasurableSet (⋃ (m : ℤ), (fun x => x + ↑m) ⁻¹' s ∩ Ico 0 1)
Theorem: Multiset.singleton_disjoint
File: Mathlib/Data/Multiset/Basic.lean

tactic: simp [Disjoint]
state_before: α : Type u_1
β : Type ?u.482994
γ : Type ?u.482997
l : Multiset α
a : α
⊢ Disjoint {a} l ↔ ¬a ∈ l
Theorem: deriv.lhopital_zero_nhds'
File: Mathlib/Analysis/Calculus/LHopital.lean

tactic: simp only [← Iio_union_Ioi, nhdsWithin_union, tendsto_sup, eventually_sup] at *
state_before: a b : ℝ
hab : a < b
l : Filter ℝ
f f' g g' : ℝ → ℝ
hdf : ∀ᶠ (x : ℝ) in 𝓝[{a}ᶜ] a, DifferentiableAt ℝ f x
hg' : ∀ᶠ (x : ℝ) in 𝓝[{a}ᶜ] a, deriv g x ≠ 0
hfa : Tendsto f (𝓝[{a}ᶜ] a) (𝓝 0)
hga : Tendsto g (𝓝[{a}ᶜ] a) (𝓝 0)
hdiv : Tendsto (fun x => deriv f x / deriv g x) (𝓝[{a}ᶜ] a) l
⊢ Tendsto (fun x => f x / g x) (𝓝[{a}ᶜ] a) l

tactic: exact ⟨lhopital_zero_nhds_left hdf.1 hg'.1 hfa.1 hga.1 hdiv.1,
  lhopital_zero_nhds_right hdf.2 hg'.2 hfa.2 hga.2 hdiv.2⟩
state_before: a b : ℝ
hab : a < b
l : Filter ℝ
f f' g g' : ℝ → ℝ
hdf : (∀ᶠ (x : ℝ) in 𝓝[Iio a] a, DifferentiableAt ℝ f x) ∧ ∀ᶠ (x : ℝ) in 𝓝[Ioi a] a, DifferentiableAt ℝ f x
hg' : (∀ᶠ (x : ℝ) in 𝓝[Iio a] a, deriv g x ≠ 0) ∧ ∀ᶠ (x : ℝ) in 𝓝[Ioi a] a, deriv g x ≠ 0
hfa : Tendsto f (𝓝[Iio a] a) (𝓝 0) ∧ Tendsto f (𝓝[Ioi a] a) (𝓝 0)
hga : Tendsto g (𝓝[Iio a] a) (𝓝 0) ∧ Tendsto g (𝓝[Ioi a] a) (𝓝 0)
hdiv : Tendsto (fun x => deriv f x / deriv g x) (𝓝[Iio a] a) l ∧ Tendsto (fun x => deriv f x / deriv g x) (𝓝[Ioi a] a) l
⊢ Tendsto (fun x => f x / g x) (𝓝[Iio a] a) l ∧ Tendsto (fun x => f x / g x) (𝓝[Ioi a] a) l
Theorem: MvPolynomial.monic_monomial_eq
File: Mathlib/Data/MvPolynomial/Basic.lean

tactic: simp [monomial_eq]
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
m : σ →₀ ℕ
⊢ ↑(monomial m) 1 = Finsupp.prod m fun n e => X n ^ e
Theorem: Asymptotics.IsBigO.eq_zero_of_norm_pow
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: rw [← nhdsWithin_univ] at h
state_before: α : Type ?u.656218
β : Type ?u.656221
E : Type ?u.656224
F : Type ?u.656227
G : Type ?u.656230
E' : Type ?u.656233
F' : Type ?u.656236
G' : Type ?u.656239
E'' : Type u_1
F'' : Type u_2
G'' : Type ?u.656248
R : Type ?u.656251
R' : Type ?u.656254
𝕜 : Type ?u.656257
𝕜' : Type ?u.656260
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✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
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 α
f : E'' → F''
x₀ : E''
n : ℕ
h : f =O[𝓝 x₀] fun x => ‖x - x₀‖ ^ n
hn : 0 < n
⊢ f x₀ = 0

tactic: exact h.eq_zero_of_norm_pow_within (mem_univ _) hn
state_before: α : Type ?u.656218
β : Type ?u.656221
E : Type ?u.656224
F : Type ?u.656227
G : Type ?u.656230
E' : Type ?u.656233
F' : Type ?u.656236
G' : Type ?u.656239
E'' : Type u_1
F'' : Type u_2
G'' : Type ?u.656248
R : Type ?u.656251
R' : Type ?u.656254
𝕜 : Type ?u.656257
𝕜' : Type ?u.656260
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✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
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 α
f : E'' → F''
x₀ : E''
n : ℕ
h : f =O[𝓝[univ] x₀] fun x => ‖x - x₀‖ ^ n
hn : 0 < n
⊢ f x₀ = 0
Theorem: CategoryTheory.Limits.Types.equalizerIso_hom_comp_subtype
File: Mathlib/CategoryTheory/Limits/Shapes/Types.lean

tactic: rfl
state_before: X Y Z : Type u
f : X ⟶ Y
g h : Y ⟶ Z
w : f ≫ g = f ≫ h
⊢ (equalizerIso g h).hom ≫ Subtype.val = equalizer.ι g h
Theorem: nhdsWithin_Ici_eq''
File: Mathlib/Topology/Order/Basic.lean

tactic: rw [nhdsWithin, nhds_eq_order]
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : Preorder α
inst✝ : OrderTopology α
a : α
⊢ 𝓝[Ici a] a = (⨅ (u : α) (_ : a < u), 𝓟 (Iio u)) ⊓ 𝓟 (Ici a)

tactic: refine' le_antisymm (inf_le_inf_right _ inf_le_right) (le_inf (le_inf _ inf_le_left) inf_le_right)
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : Preorder α
inst✝ : OrderTopology α
a : α
⊢ ((⨅ (b : α) (_ : b ∈ Iio a), 𝓟 (Ioi b)) ⊓ ⨅ (b : α) (_ : b ∈ Ioi a), 𝓟 (Iio b)) ⊓ 𝓟 (Ici a) =
    (⨅ (u : α) (_ : a < u), 𝓟 (Iio u)) ⊓ 𝓟 (Ici a)

tactic: exact inf_le_right.trans (le_iInf₂ fun l hl => principal_mono.2 <| Ici_subset_Ioi.2 hl)
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : Preorder α
inst✝ : OrderTopology α
a : α
⊢ (⨅ (u : α) (_ : a < u), 𝓟 (Iio u)) ⊓ 𝓟 (Ici a) ≤ ⨅ (b : α) (_ : b ∈ Iio a), 𝓟 (Ioi b)
Theorem: Rat.cast_lt_zero
File: Mathlib/Data/Rat/Cast.lean

tactic: norm_cast
state_before: F : Type ?u.61787
ι : Type ?u.61790
α : Type ?u.61793
β : Type ?u.61796
K : Type u_1
inst✝ : LinearOrderedField K
n : ℚ
⊢ ↑n < 0 ↔ n < 0
Theorem: inv_mul_lt_iff_lt_mul
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [← mul_lt_mul_iff_left b, mul_inv_cancel_left]
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LT α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
a b c : α
⊢ b⁻¹ * a < c ↔ a < b * c
Theorem: Asymptotics.isTheta_const_const_iff
File: Mathlib/Analysis/Asymptotics/Theta.lean

tactic: simpa only [IsTheta, isBigO_const_const_iff, ← iff_def] using Iff.comm
state_before: α : Type u_1
β : Type ?u.49940
E : Type ?u.49943
F : Type ?u.49946
G : Type ?u.49949
E' : Type ?u.49952
F' : Type ?u.49955
G' : Type ?u.49958
E'' : Type u_2
F'' : Type u_3
G'' : Type ?u.49967
R : Type ?u.49970
R' : Type ?u.49973
𝕜 : Type ?u.49976
𝕜' : Type ?u.49979
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✝³ : SeminormedRing R'
inst✝² : NormedField 𝕜
inst✝¹ : NormedField 𝕜'
c c' c₁✝ c₂✝ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
l l' : Filter α
inst✝ : NeBot l
c₁ : E''
c₂ : F''
⊢ ((fun x => c₁) =Θ[l] fun x => c₂) ↔ (c₁ = 0 ↔ c₂ = 0)
Theorem: LinearMap.conjugate_i
File: Mathlib/RepresentationTheory/Maschke.lean

tactic: rw [conjugate_apply, ← i.map_smul, h, ← mul_smul, single_mul_single, mul_one, mul_left_inv,
  ← one_def, one_smul]
state_before: k : Type u
inst✝⁹ : CommRing k
G : Type u
inst✝⁸ : Group G
V : Type v
inst✝⁷ : AddCommGroup V
inst✝⁶ : Module k V
inst✝⁵ : Module (MonoidAlgebra k G) V
inst✝⁴ : IsScalarTower k (MonoidAlgebra k G) V
W : Type w
inst✝³ : AddCommGroup W
inst✝² : Module k W
inst✝¹ : Module (MonoidAlgebra k G) W
inst✝ : IsScalarTower k (MonoidAlgebra k G) W
π : W →ₗ[k] V
i : V →ₗ[MonoidAlgebra k G] W
h : ∀ (v : V), ↑π (↑i v) = v
g : G
v : V
⊢ ↑(conjugate π g) (↑i v) = v
Theorem: Asymptotics.SuperpolynomialDecay.trans_eventually_abs_le
File: Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean

tactic: rw [superpolynomialDecay_iff_abs_tendsto_zero] at hf⊢
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝² : TopologicalSpace β
inst✝¹ : LinearOrderedCommRing β
inst✝ : OrderTopology β
hf : SuperpolynomialDecay l k f
hfg : abs ∘ g ≤ᶠ[l] abs ∘ f
⊢ SuperpolynomialDecay l k g

tactic: refine' fun z =>
  tendsto_of_tendsto_of_tendsto_of_le_of_le' tendsto_const_nhds (hf z)
    (eventually_of_forall fun x => abs_nonneg _) (hfg.mono fun x hx => _)
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝² : TopologicalSpace β
inst✝¹ : LinearOrderedCommRing β
inst✝ : OrderTopology β
hf : ∀ (n : ℕ), Tendsto (fun a => abs (k a ^ n * f a)) l (𝓝 0)
hfg : abs ∘ g ≤ᶠ[l] abs ∘ f
⊢ ∀ (n : ℕ), Tendsto (fun a => abs (k a ^ n * g a)) l (𝓝 0)

tactic: calc
  |k x ^ z * g x| = |k x ^ z| * |g x| := abs_mul (k x ^ z) (g x)
  _ ≤ |k x ^ z| * |f x| := by gcongr; exact hx
  _ = |k x ^ z * f x| := (abs_mul (k x ^ z) (f x)).symm
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝² : TopologicalSpace β
inst✝¹ : LinearOrderedCommRing β
inst✝ : OrderTopology β
hf : ∀ (n : ℕ), Tendsto (fun a => abs (k a ^ n * f a)) l (𝓝 0)
hfg : abs ∘ g ≤ᶠ[l] abs ∘ f
z : ℕ
x : α
hx : (abs ∘ g) x ≤ (abs ∘ f) x
⊢ abs (k x ^ z * g x) ≤ abs (k x ^ z * f x)

tactic: gcongr
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝² : TopologicalSpace β
inst✝¹ : LinearOrderedCommRing β
inst✝ : OrderTopology β
hf : ∀ (n : ℕ), Tendsto (fun a => abs (k a ^ n * f a)) l (𝓝 0)
hfg : abs ∘ g ≤ᶠ[l] abs ∘ f
z : ℕ
x : α
hx : (abs ∘ g) x ≤ (abs ∘ f) x
⊢ abs (k x ^ z) * abs (g x) ≤ abs (k x ^ z) * abs (f x)

tactic: exact hx
state_before: case h
α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝² : TopologicalSpace β
inst✝¹ : LinearOrderedCommRing β
inst✝ : OrderTopology β
hf : ∀ (n : ℕ), Tendsto (fun a => abs (k a ^ n * f a)) l (𝓝 0)
hfg : abs ∘ g ≤ᶠ[l] abs ∘ f
z : ℕ
x : α
hx : (abs ∘ g) x ≤ (abs ∘ f) x
⊢ abs (g x) ≤ abs (f x)
Theorem: AlgebraicTopology.DoldKan.PInfty_comp_QInfty
File: Mathlib/AlgebraicTopology/DoldKan/PInfty.lean

tactic: ext n
state_before: C : Type u_2
inst✝¹ : Category C
inst✝ : Preadditive C
X : SimplicialObject C
⊢ PInfty ≫ QInfty = 0

tactic: apply PInfty_f_comp_QInfty_f
state_before: case h
C : Type u_2
inst✝¹ : Category C
inst✝ : Preadditive C
X : SimplicialObject C
n : ℕ
⊢ HomologicalComplex.Hom.f (PInfty ≫ QInfty) n = HomologicalComplex.Hom.f 0 n
Theorem: exists_subtype_mk_eq_iff
File: Mathlib/Data/Subtype.lean

tactic: simp only [@eq_comm _ b, exists_eq_subtype_mk_iff, @eq_comm _ _ a]
state_before: α : Sort u_1
β : Sort ?u.5647
γ : Sort ?u.5650
p q : α → Prop
a : Subtype p
b : α
⊢ (∃ h, { val := b, property := h } = a) ↔ b = ↑a
Theorem: Mathlib.Tactic.Abel.term_neg
File: Mathlib/Tactic/Abel.lean

tactic: simp [h₂.symm, h₁.symm, termg]
state_before: α : Type u_1
inst✝ : AddCommGroup α
n : ℤ
x a : α
n' : ℤ
a' : α
h₁ : -n = n'
h₂ : -a = a'
⊢ -termg n x a = termg n' x a'

tactic: exact add_comm _ _
state_before: α : Type u_1
inst✝ : AddCommGroup α
n : ℤ
x a : α
n' : ℤ
a' : α
h₁ : -n = n'
h₂ : -a = a'
⊢ -a + -(n • x) = -(n • x) + -a
Theorem: locallyConvexSpace_induced
File: Mathlib/Topology/Algebra/Module/LocallyConvex.lean

tactic: letI : TopologicalSpace E := t.induced f
state_before: ι : Sort ?u.45774
𝕜 : Type u_2
E : Type u_3
F : Type u_1
inst✝⁵ : OrderedSemiring 𝕜
inst✝⁴ : AddCommMonoid E
inst✝³ : Module 𝕜 E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 F
t : TopologicalSpace F
inst✝ : LocallyConvexSpace 𝕜 F
f : E →ₗ[𝕜] F
⊢ LocallyConvexSpace 𝕜 E

tactic: refine' LocallyConvexSpace.ofBases 𝕜 E (fun _ => preimage f)
  (fun x => fun s : Set F => s ∈ 𝓝 (f x) ∧ Convex 𝕜 s) (fun x => _) fun x s ⟨_, hs⟩ =>
  hs.linear_preimage f
state_before: ι : Sort ?u.45774
𝕜 : Type u_2
E : Type u_3
F : Type u_1
inst✝⁵ : OrderedSemiring 𝕜
inst✝⁴ : AddCommMonoid E
inst✝³ : Module 𝕜 E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 F
t : TopologicalSpace F
inst✝ : LocallyConvexSpace 𝕜 F
f : E →ₗ[𝕜] F
this : TopologicalSpace E := induced (↑f) t
⊢ LocallyConvexSpace 𝕜 E

tactic: rw [nhds_induced]
state_before: ι : Sort ?u.45774
𝕜 : Type u_2
E : Type u_3
F : Type u_1
inst✝⁵ : OrderedSemiring 𝕜
inst✝⁴ : AddCommMonoid E
inst✝³ : Module 𝕜 E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 F
t : TopologicalSpace F
inst✝ : LocallyConvexSpace 𝕜 F
f : E →ₗ[𝕜] F
this : TopologicalSpace E := induced (↑f) t
x : E
⊢ HasBasis (𝓝 x) ((fun x s => s ∈ 𝓝 (↑f x) ∧ Convex 𝕜 s) x) ((fun x => preimage ↑f) x)

tactic: exact (LocallyConvexSpace.convex_basis <| f x).comap f
state_before: ι : Sort ?u.45774
𝕜 : Type u_2
E : Type u_3
F : Type u_1
inst✝⁵ : OrderedSemiring 𝕜
inst✝⁴ : AddCommMonoid E
inst✝³ : Module 𝕜 E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 F
t : TopologicalSpace F
inst✝ : LocallyConvexSpace 𝕜 F
f : E →ₗ[𝕜] F
this : TopologicalSpace E := induced (↑f) t
x : E
⊢ HasBasis (comap (↑f) (𝓝 (↑f x))) ((fun x s => s ∈ 𝓝 (↑f x) ∧ Convex 𝕜 s) x) ((fun x => preimage ↑f) x)
Theorem: List.leftpad_length
File: Std/Data/List/Lemmas.lean

tactic: simp only [leftpad, length_append, length_replicate, Nat.sub_add_eq_max]
state_before: α : Type u_1
n : Nat
a : α
l : List α
⊢ length (leftpad n a l) = max n (length l)
Theorem: Subgroup.rank_le_index_mul_rank
File: Mathlib/GroupTheory/Schreier.lean

tactic: haveI := H.fG_of_index_ne_zero
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
R S : Set G
hG : Group.FG G
inst✝ : FiniteIndex H
⊢ Group.rank { x // x ∈ H } ≤ index H * Group.rank G

tactic: obtain ⟨S, hS₀, hS⟩ := Group.rank_spec G
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
R S : Set G
hG : Group.FG G
inst✝ : FiniteIndex H
this : Group.FG { x // x ∈ H }
⊢ Group.rank { x // x ∈ H } ≤ index H * Group.rank G

tactic: obtain ⟨T, hT₀, hT⟩ := exists_finset_card_le_mul H hS
state_before: case intro.intro
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
R S✝ : Set G
hG : Group.FG G
inst✝ : FiniteIndex H
this : Group.FG { x // x ∈ H }
S : Finset G
hS₀ : Finset.card S = Group.rank G
hS : closure ↑S = ⊤
⊢ Group.rank { x // x ∈ H } ≤ index H * Group.rank G
Theorem: Set.one_lt_ncard_iff
File: Mathlib/Data/Set/Ncard.lean

tactic: rw [one_lt_ncard hs]
state_before: α : Type u_1
β : Type ?u.156869
s t : Set α
a b x y : α
f : α → β
hs : autoParam (Set.Finite s) _auto✝
⊢ 1 < ncard s ↔ ∃ a b, a ∈ s ∧ b ∈ s ∧ a ≠ b

tactic: simp only [exists_prop, exists_and_left]
state_before: α : Type u_1
β : Type ?u.156869
s t : Set α
a b x y : α
f : α → β
hs : autoParam (Set.Finite s) _auto✝
⊢ (∃ a, a ∈ s ∧ ∃ b, b ∈ s ∧ a ≠ b) ↔ ∃ a b, a ∈ s ∧ b ∈ s ∧ a ≠ b
Theorem: Array.foldlM_eq_foldlM_data
File: Std/Data/Array/Init/Lemmas.lean

tactic: simp [foldlM, foldlM_eq_foldlM_data.aux]
state_before: m : Type u_1 → Type u_2
β : Type u_1
α : Type u_3
inst✝ : Monad m
f : β → α → m β
init : β
arr : Array α
⊢ foldlM f init arr 0 (size arr) = List.foldlM f init arr.data
Theorem: RatFunc.ofFractionRing_neg
File: Mathlib/FieldTheory/RatFunc.lean

tactic: simp only [Neg.neg, RatFunc.neg]
state_before: K : Type u
inst✝ : CommRing K
p : FractionRing K[X]
⊢ { toFractionRing := -p } = -{ toFractionRing := p }
Theorem: Substring.ValidFor.get
File: Std/Data/String/Lemmas.lean

tactic: simpa using get_of_valid (l ++ m₁) (c :: m₂ ++ r)
state_before: l m₁ : List Char
c : Char
m₂ r : List Char
⊢ Substring.get
      { str := { data := l ++ (m₁ ++ c :: m₂) ++ r }, startPos := { byteIdx := utf8Len l },
        stopPos := { byteIdx := utf8Len l + utf8Len (m₁ ++ c :: m₂) } }
      { byteIdx := utf8Len m₁ } =
    c
Theorem: Nat.cast_add_choose
File: Mathlib/Data/Nat/Choose/Cast.lean

tactic: rw [cast_choose K (_root_.le_add_right le_rfl), add_tsub_cancel_left]
state_before: K : Type u_1
inst✝¹ : DivisionRing K
inst✝ : CharZero K
a b : ℕ
⊢ ↑(choose (a + b) a) = ↑(a + b)! / (↑a ! * ↑b !)
Theorem: Finmap.union_comm_of_disjoint
File: Mathlib/Data/Finmap.lean

tactic: intro h
state_before: α : Type u
β : α → Type v
inst✝ : DecidableEq α
s₁✝ s₂✝ : Finmap β
s₁ s₂ : AList β
⊢ Disjoint ⟦s₁⟧ ⟦s₂⟧ → ⟦s₁⟧ ∪ ⟦s₂⟧ = ⟦s₂⟧ ∪ ⟦s₁⟧

tactic: simp only [AList.toFinmap_eq, union_toFinmap, AList.union_comm_of_disjoint h]
state_before: α : Type u
β : α → Type v
inst✝ : DecidableEq α
s₁✝ s₂✝ : Finmap β
s₁ s₂ : AList β
h : Disjoint ⟦s₁⟧ ⟦s₂⟧
⊢ ⟦s₁⟧ ∪ ⟦s₂⟧ = ⟦s₂⟧ ∪ ⟦s₁⟧
Theorem: Sym2.relBool_spec
File: Mathlib/Data/Sym/Sym2.lean

tactic: cases' x with x₁ x₂
state_before: α : Type u_1
β : Type ?u.59102
γ : Type ?u.59105
inst✝ : DecidableEq α
x y : α × α
⊢ relBool x y = true ↔ Rel α x y

tactic: cases' y with y₁ y₂
state_before: case mk
α : Type u_1
β : Type ?u.59102
γ : Type ?u.59105
inst✝ : DecidableEq α
y : α × α
x₁ x₂ : α
⊢ relBool (x₁, x₂) y = true ↔ Rel α (x₁, x₂) y

tactic: aesop (rule_sets [Sym2]) (add norm unfold [relBool])
state_before: case mk.mk
α : Type u_1
β : Type ?u.59102
γ : Type ?u.59105
inst✝ : DecidableEq α
x₁ x₂ y₁ y₂ : α
⊢ relBool (x₁, x₂) (y₁, y₂) = true ↔ Rel α (x₁, x₂) (y₁, y₂)
Theorem: MeasureTheory.HasFiniteIntegral.mono
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simp only [hasFiniteIntegral_iff_norm] at *
state_before: α : Type u_1
β : Type u_3
γ : Type u_2
δ : Type ?u.704421
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
g : α → γ
hg : HasFiniteIntegral g
h : ∀ᵐ (a : α) ∂μ, ‖f a‖ ≤ ‖g a‖
⊢ HasFiniteIntegral f

tactic: calc
  (∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ) ≤ ∫⁻ a : α, ENNReal.ofReal ‖g a‖ ∂μ :=
    lintegral_mono_ae (h.mono fun a h => ofReal_le_ofReal h)
  _ < ∞ := hg
state_before: α : Type u_1
β : Type u_3
γ : Type u_2
δ : Type ?u.704421
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
g : α → γ
h : ∀ᵐ (a : α) ∂μ, ‖f a‖ ≤ ‖g a‖
hg : (∫⁻ (a : α), ENNReal.ofReal ‖g a‖ ∂μ) < ⊤
⊢ (∫⁻ (a : α), ENNReal.ofReal ‖f a‖ ∂μ) < ⊤
Theorem: finSuccEquiv'_at
File: Mathlib/Logic/Equiv/Fin.lean

tactic: simp [finSuccEquiv']
state_before: m n : ℕ
i : Fin (n + 1)
⊢ ↑(finSuccEquiv' i) i = none
Theorem: multiplicity.pow_prime_sub_pow_prime
File: Mathlib/NumberTheory/Multiplicity.lean

tactic: rw [← geom_sum₂_mul, multiplicity.mul hp, geom_sum₂_eq_one hp hp1 hxy hx, add_comm]
state_before: R : Type u_1
n : ℕ
inst✝² : CommRing R
a b x y : R
p : ℕ
inst✝¹ : IsDomain R
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
hp : Prime ↑p
hp1 : Odd p
hxy : ↑p ∣ x - y
hx : ¬↑p ∣ x
⊢ multiplicity (↑p) (x ^ p - y ^ p) = multiplicity (↑p) (x - y) + 1
Theorem: borel_eq_generateFrom_Ioi
File: Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean

tactic: infer_instance
state_before: α : Type u_1
β : Type ?u.118128
γ : Type ?u.118131
γ₂ : Type ?u.118134
δ : Type ?u.118137
ι : Sort y
s t u : Set α
inst✝³ : TopologicalSpace α
inst✝² : SecondCountableTopology α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
⊢ SecondCountableTopology α
Theorem: Convex.monotoneOn_of_deriv_nonneg
File: Mathlib/Analysis/Calculus/MeanValue.lean

tactic: simpa only [zero_mul, sub_nonneg] using
  hD.mul_sub_le_image_sub_of_le_deriv hf hf' hf'_nonneg x hx y hy hxy
state_before: E : Type ?u.415583
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type ?u.415679
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
D : Set ℝ
hD : Convex ℝ D
f : ℝ → ℝ
hf : ContinuousOn f D
hf' : DifferentiableOn ℝ f (interior D)
hf'_nonneg : ∀ (x : ℝ), x ∈ interior D → 0 ≤ deriv f x
x : ℝ
hx : x ∈ D
y : ℝ
hy : y ∈ D
hxy : x ≤ y
⊢ f x ≤ f y
Theorem: minimal_nonempty_open_subsingleton
File: Mathlib/Topology/Separation.lean

tactic: clear β
state_before: α : Type u
β : Type v
inst✝¹ : TopologicalSpace α
inst✝ : T0Space α
s : Set α
hs : IsOpen s
hmin : ∀ (t : Set α), t ⊆ s → Set.Nonempty t → IsOpen t → t = s
⊢ Set.Subsingleton s

tactic: refine' fun x hx y hy => of_not_not fun hxy => _
state_before: α : Type u
inst✝¹ : TopologicalSpace α
inst✝ : T0Space α
s : Set α
hs : IsOpen s
hmin : ∀ (t : Set α), t ⊆ s → Set.Nonempty t → IsOpen t → t = s
⊢ Set.Subsingleton s

tactic: rcases exists_isOpen_xor'_mem hxy with ⟨U, hUo, hU⟩
state_before: α : Type u
inst✝¹ : TopologicalSpace α
inst✝ : T0Space α
s : Set α
hs : IsOpen s
hmin : ∀ (t : Set α), t ⊆ s → Set.Nonempty t → IsOpen t → t = s
x : α
hx : x ∈ s
y : α
hy : y ∈ s
hxy : ¬x = y
⊢ False

tactic: wlog h : x ∈ U ∧ y ∉ U
state_before: case intro.intro
α : Type u
inst✝¹ : TopologicalSpace α
inst✝ : T0Space α
s : Set α
hs : IsOpen s
hmin : ∀ (t : Set α), t ⊆ s → Set.Nonempty t → IsOpen t → t = s
x : α
hx : x ∈ s
y : α
hy : y ∈ s
hxy : ¬x = y
U : Set α
hUo : IsOpen U
hU : Xor' (x ∈ U) (y ∈ U)
⊢ False

tactic: cases' h with hxU hyU
state_before: α✝ : Type u
inst✝² : TopologicalSpace α✝
α : Type u
inst✝¹ : TopologicalSpace α
inst✝ : T0Space α
s : Set α
hs : IsOpen s
hmin : ∀ (t : Set α), t ⊆ s → Set.Nonempty t → IsOpen t → t = s
x : α
hx : x ∈ s
y : α
hy : y ∈ s
hxy : ¬x = y
U : Set α
hUo : IsOpen U
hU : Xor' (x ∈ U) (y ∈ U)
h : x ∈ U ∧ ¬y ∈ U
⊢ False

tactic: have : s ∩ U = s := hmin (s ∩ U) (inter_subset_left _ _) ⟨x, hx, hxU⟩ (hs.inter hUo)
state_before: case intro
α✝ : Type u
inst✝² : TopologicalSpace α✝
α : Type u
inst✝¹ : TopologicalSpace α
inst✝ : T0Space α
s : Set α
hs : IsOpen s
hmin : ∀ (t : Set α), t ⊆ s → Set.Nonempty t → IsOpen t → t = s
x : α
hx : x ∈ s
y : α
hy : y ∈ s
hxy : ¬x = y
U : Set α
hUo : IsOpen U
hU : Xor' (x ∈ U) (y ∈ U)
hxU : x ∈ U
hyU : ¬y ∈ U
⊢ False

tactic: exact hyU (this.symm.subset hy).2
state_before: case intro
α✝ : Type u
inst✝² : TopologicalSpace α✝
α : Type u
inst✝¹ : TopologicalSpace α
inst✝ : T0Space α
s : Set α
hs : IsOpen s
hmin : ∀ (t : Set α), t ⊆ s → Set.Nonempty t → IsOpen t → t = s
x : α
hx : x ∈ s
y : α
hy : y ∈ s
hxy : ¬x = y
U : Set α
hUo : IsOpen U
hU : Xor' (x ∈ U) (y ∈ U)
hxU : x ∈ U
hyU : ¬y ∈ U
this : s ∩ U = s
⊢ False

tactic: exact this hs hmin y hy x hx (Ne.symm hxy) U hUo hU.symm (hU.resolve_left h)
state_before: case intro.intro.inr
α : Type u
inst✝¹ : TopologicalSpace α
inst✝ : T0Space α
s : Set α
hs : IsOpen s
hmin : ∀ (t : Set α), t ⊆ s → Set.Nonempty t → IsOpen t → t = s
x : α
hx : x ∈ s
y : α
hy : y ∈ s
hxy : ¬x = y
U : Set α
hUo : IsOpen U
hU : Xor' (x ∈ U) (y ∈ U)
this :
  ∀ {α : Type u} [inst : TopologicalSpace α] [inst_1 : T0Space α] {s : Set α},
    IsOpen s →
      (∀ (t : Set α), t ⊆ s → Set.Nonempty t → IsOpen t → t = s) →
        ∀ (x : α),
          x ∈ s → ∀ (y : α), y ∈ s → ¬x = y → ∀ (U : Set α), IsOpen U → Xor' (x ∈ U) (y ∈ U) → x ∈ U ∧ ¬y ∈ U → False
h : ¬(x ∈ U ∧ ¬y ∈ U)
⊢ False
Theorem: Homeomorph.isLittleO_congr
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp only [IsLittleO_def]
state_before: α : Type u_1
β : Type u_2
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
E : Type u_3
inst✝¹ : Norm E
F : Type u_4
inst✝ : Norm F
e : α ≃ₜ β
b : β
f : β → E
g : β → F
⊢ f =o[𝓝 b] g ↔ (f ∘ ↑e) =o[𝓝 (↑(Homeomorph.symm e) b)] (g ∘ ↑e)

tactic: exact forall₂_congr fun c _hc => e.isBigOWith_congr
state_before: α : Type u_1
β : Type u_2
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
E : Type u_3
inst✝¹ : Norm E
F : Type u_4
inst✝ : Norm F
e : α ≃ₜ β
b : β
f : β → E
g : β → F
⊢ (∀ ⦃c : ℝ⦄, 0 < c → IsBigOWith c (𝓝 b) f g) ↔
    ∀ ⦃c : ℝ⦄, 0 < c → IsBigOWith c (𝓝 (↑(Homeomorph.symm e) b)) (f ∘ ↑e) (g ∘ ↑e)