tasksource/leandojo huggingface dataset:
Theorem: Dense.borel_eq_generateFrom_Ioc_mem
File: Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean

tactic: simp
state_before: α✝ : Type ?u.668267
β : Type ?u.668270
γ : Type ?u.668273
γ₂ : Type ?u.668276
δ : Type ?u.668279
ι : Sort y
s✝ t u : Set α✝
inst✝²² : TopologicalSpace α✝
inst✝²¹ : MeasurableSpace α✝
inst✝²⁰ : OpensMeasurableSpace α✝
inst✝¹⁹ : TopologicalSpace β
inst✝¹⁸ : MeasurableSpace β
inst✝¹⁷ : OpensMeasurableSpace β
inst✝¹⁶ : TopologicalSpace γ
inst✝¹⁵ : MeasurableSpace γ
inst✝¹⁴ : BorelSpace γ
inst✝¹³ : TopologicalSpace γ₂
inst✝¹² : MeasurableSpace γ₂
inst✝¹¹ : BorelSpace γ₂
inst✝¹⁰ : MeasurableSpace δ
α' : Type ?u.668372
inst✝⁹ : TopologicalSpace α'
inst✝⁸ : MeasurableSpace α'
inst✝⁷ : LinearOrder α✝
inst✝⁶ : OrderClosedTopology α✝
a b x : α✝
α : Type u_1
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : OrderTopology α
inst✝² : SecondCountableTopology α
inst✝¹ : DenselyOrdered α
inst✝ : NoMaxOrder α
s : Set α
hd : Dense s
⊢ ∀ (x : α), IsTop x → x ∈ s
Theorem: Cubic.degree_of_a_eq_zero
File: Mathlib/Algebra/CubicDiscriminant.lean

tactic: simpa only [of_a_eq_zero ha] using degree_quadratic_le
state_before: R : Type u_1
S : Type ?u.577630
F : Type ?u.577633
K : Type ?u.577636
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
ha : P.a = 0
⊢ degree (toPoly P) ≤ 2
Theorem: ZFSet.map_fval
File: Mathlib/SetTheory/ZFC/Basic.lean

tactic: rw [Class.toSet_of_ZFSet, Class.coe_apply, mem_map]
state_before: f : ZFSet → ZFSet
H : PSet.Definable 1 f
x y : ZFSet
h : y ∈ x
z : ZFSet
⊢ Class.ToSet (fun x_1 => ↑(map f x) (pair x_1 z)) ↑y ↔ z = f y

tactic: exact
  ⟨fun ⟨w, _, pr⟩ => by
    let ⟨wy, fw⟩ := ZFSet.pair_injective pr
    rw [← fw, wy], fun e => by
    subst e
    exact ⟨_, h, rfl⟩⟩
state_before: f : ZFSet → ZFSet
H : PSet.Definable 1 f
x y : ZFSet
h : y ∈ x
z : ZFSet
⊢ (∃ z_1, z_1 ∈ x ∧ pair z_1 (f z_1) = pair y z) ↔ z = f y

tactic: let ⟨wy, fw⟩ := ZFSet.pair_injective pr
state_before: f : ZFSet → ZFSet
H : PSet.Definable 1 f
x y : ZFSet
h : y ∈ x
z : ZFSet
x✝ : ∃ z_1, z_1 ∈ x ∧ pair z_1 (f z_1) = pair y z
w : ZFSet
left✝ : w ∈ x
pr : pair w (f w) = pair y z
⊢ z = f y

tactic: rw [← fw, wy]
state_before: f : ZFSet → ZFSet
H : PSet.Definable 1 f
x y : ZFSet
h : y ∈ x
z : ZFSet
x✝ : ∃ z_1, z_1 ∈ x ∧ pair z_1 (f z_1) = pair y z
w : ZFSet
left✝ : w ∈ x
pr : pair w (f w) = pair y z
wy : w = y
fw : f w = z
⊢ z = f y

tactic: subst e
state_before: f : ZFSet → ZFSet
H : PSet.Definable 1 f
x y : ZFSet
h : y ∈ x
z : ZFSet
e : z = f y
⊢ ∃ z_1, z_1 ∈ x ∧ pair z_1 (f z_1) = pair y z

tactic: exact ⟨_, h, rfl⟩
state_before: f : ZFSet → ZFSet
H : PSet.Definable 1 f
x y : ZFSet
h : y ∈ x
⊢ ∃ z, z ∈ x ∧ pair z (f z) = pair y (f y)
Theorem: Polynomial.natDegree_sub_le_iff_right
File: Mathlib/Data/Polynomial/Degree/Lemmas.lean

tactic: rwa [natDegree_sub, natDegree_sub_le_iff_left]
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝ : Ring R
p q : R[X]
pn : natDegree p ≤ n
⊢ natDegree (p - q) ≤ n ↔ natDegree q ≤ n
Theorem: Tactic.NormNum.int_gcd_helper
File: Mathlib/Tactic/NormNum/GCD.lean

tactic: subst_vars
state_before: x y : ℤ
x' y' d : ℕ
hx : Int.natAbs x = x'
hy : Int.natAbs y = y'
h : Nat.gcd x' y' = d
⊢ Int.gcd x y = d

tactic: rw [Int.gcd_def]
state_before: x y : ℤ
⊢ Int.gcd x y = Nat.gcd (Int.natAbs x) (Int.natAbs y)
Theorem: MeasureTheory.SignedMeasure.integrable_rnDeriv
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: constructor
state_before: case refine'_2
α : Type u_1
β : Type ?u.376607
m : MeasurableSpace α
μ✝ ν : Measure α
s✝ t s : SignedMeasure α
μ : Measure α
⊢ Integrable fun x => ENNReal.toReal (Measure.rnDeriv (toJordanDecomposition s).negPart μ x)

tactic: exact hasFiniteIntegral_toReal_of_lintegral_ne_top (lintegral_rnDeriv_lt_top _ μ).ne
state_before: case refine'_2.right
α : Type u_1
β : Type ?u.376607
m : MeasurableSpace α
μ✝ ν : Measure α
s✝ t s : SignedMeasure α
μ : Measure α
⊢ HasFiniteIntegral fun x => ENNReal.toReal (Measure.rnDeriv (toJordanDecomposition s).negPart μ x)

tactic: apply Measurable.aestronglyMeasurable
state_before: case refine'_2.left
α : Type u_1
β : Type ?u.376607
m : MeasurableSpace α
μ✝ ν : Measure α
s✝ t s : SignedMeasure α
μ : Measure α
⊢ AEStronglyMeasurable (fun x => ENNReal.toReal (Measure.rnDeriv (toJordanDecomposition s).negPart μ x)) μ

tactic: measurability
state_before: case refine'_2.left.hf
α : Type u_1
β : Type ?u.376607
m : MeasurableSpace α
μ✝ ν : Measure α
s✝ t s : SignedMeasure α
μ : Measure α
⊢ Measurable fun x => ENNReal.toReal (Measure.rnDeriv (toJordanDecomposition s).negPart μ x)
Theorem: AddMonoidAlgebra.of'_mem_span
File: Mathlib/RingTheory/FiniteType.lean

tactic: refine' ⟨fun h => _, fun h => Submodule.subset_span <| Set.mem_image_of_mem (of R M) h⟩
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommMonoid M
inst✝ : Nontrivial R
m : M
S : Set M
⊢ of' R M m ∈ span R (of' R M '' S) ↔ m ∈ S

tactic: erw [of', ← Finsupp.supported_eq_span_single, Finsupp.mem_supported,
  Finsupp.support_single_ne_zero _ (one_ne_zero' R)] at h
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommMonoid M
inst✝ : Nontrivial R
m : M
S : Set M
h : of' R M m ∈ span R (of' R M '' S)
⊢ m ∈ S

tactic: simpa using h
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommMonoid M
inst✝ : Nontrivial R
m : M
S : Set M
h : ↑{m} ⊆ S
⊢ m ∈ S
Theorem: StructureGroupoid.mem_maximalAtlas_of_mem_groupoid
File: Mathlib/Geometry/Manifold/ChartedSpace.lean

tactic: rintro e (rfl : e = LocalHomeomorph.refl H)
state_before: H : Type u
H' : Type ?u.74549
M : Type ?u.74552
M' : Type ?u.74555
M'' : Type ?u.74558
inst✝² : TopologicalSpace H
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
G : StructureGroupoid H
f : LocalHomeomorph H H
hf : f ∈ G
⊢ f ∈ maximalAtlas H G

tactic: exact ⟨G.trans (G.symm hf) G.id_mem, G.trans (G.symm G.id_mem) hf⟩
state_before: H : Type u
H' : Type ?u.74549
M : Type ?u.74552
M' : Type ?u.74555
M'' : Type ?u.74558
inst✝² : TopologicalSpace H
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
G : StructureGroupoid H
f : LocalHomeomorph H H
hf : f ∈ G
⊢ LocalHomeomorph.symm f ≫ₕ LocalHomeomorph.refl H ∈ G ∧ LocalHomeomorph.symm (LocalHomeomorph.refl H) ≫ₕ f ∈ G
Theorem: Polynomial.natDegree_mul_C_eq_of_mul_eq_one
File: Mathlib/Data/Polynomial/Degree/Lemmas.lean

tactic: nth_rw 1 [← mul_one p]
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
ai : R
au : a * ai = 1
⊢ natDegree p = natDegree (p * 1)

tactic: rw [← C_1, ← au, RingHom.map_mul, ← mul_assoc]
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
ai : R
au : a * ai = 1
⊢ natDegree (p * 1) = natDegree (p * ↑C a * ↑C ai)
Theorem: NormedAddGroupHom.opNorm_zero_iff
File: Mathlib/Analysis/Normed/Group/Hom.lean

tactic: rw [hn, zero_mul]
state_before: V : Type ?u.314449
V₁✝ : Type ?u.314452
V₂✝ : Type ?u.314455
V₃ : Type ?u.314458
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : SeminormedAddCommGroup V₁✝
inst✝³ : SeminormedAddCommGroup V₂✝
inst✝² : SeminormedAddCommGroup V₃
f✝ g : NormedAddGroupHom V₁✝ V₂✝
V₁ : Type u_1
V₂ : Type u_2
inst✝¹ : NormedAddCommGroup V₁
inst✝ : NormedAddCommGroup V₂
f : NormedAddGroupHom V₁ V₂
hn : ‖f‖ = 0
x : V₁
⊢ ‖f‖ * ‖x‖ = 0

tactic: rw [hf, opNorm_zero]
state_before: V : Type ?u.314449
V₁✝ : Type ?u.314452
V₂✝ : Type ?u.314455
V₃ : Type ?u.314458
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : SeminormedAddCommGroup V₁✝
inst✝³ : SeminormedAddCommGroup V₂✝
inst✝² : SeminormedAddCommGroup V₃
f✝ g : NormedAddGroupHom V₁✝ V₂✝
V₁ : Type u_1
V₂ : Type u_2
inst✝¹ : NormedAddCommGroup V₁
inst✝ : NormedAddCommGroup V₂
f : NormedAddGroupHom V₁ V₂
hf : f = 0
⊢ ‖f‖ = 0
Theorem: pow_injective_of_not_unit
File: Mathlib/Algebra/Associated.lean

tactic: refine' injective_of_lt_imp_ne fun n m h => DvdNotUnit.ne ⟨pow_ne_zero n hq', q ^ (m - n), _, _⟩
state_before: α : Type u_1
β : Type ?u.356184
γ : Type ?u.356187
δ : Type ?u.356190
inst✝ : CancelCommMonoidWithZero α
q : α
hq : ¬IsUnit q
hq' : q ≠ 0
⊢ Function.Injective fun n => q ^ n

tactic: exact not_isUnit_of_not_isUnit_dvd hq (dvd_pow (dvd_refl _) (Nat.sub_pos_of_lt h).ne')
state_before: case refine'_1
α : Type u_1
β : Type ?u.356184
γ : Type ?u.356187
δ : Type ?u.356190
inst✝ : CancelCommMonoidWithZero α
q : α
hq : ¬IsUnit q
hq' : q ≠ 0
n m : ℕ
h : n < m
⊢ ¬IsUnit (q ^ (m - n))

tactic: exact (pow_mul_pow_sub q h.le).symm
state_before: case refine'_2
α : Type u_1
β : Type ?u.356184
γ : Type ?u.356187
δ : Type ?u.356190
inst✝ : CancelCommMonoidWithZero α
q : α
hq : ¬IsUnit q
hq' : q ≠ 0
n m : ℕ
h : n < m
⊢ q ^ m = q ^ n * q ^ (m - n)
Theorem: Associated.trans
File: Mathlib/Algebra/Associated.lean

tactic: rw [Units.val_mul, mul_assoc]
state_before: α : Type u_1
β : Type ?u.146822
γ : Type ?u.146825
δ : Type ?u.146828
inst✝ : Monoid α
x : α
u v : αˣ
⊢ x * ↑(u * v) = x * ↑u * ↑v
Theorem: CategoryTheory.eq_of_inv_eq_inv
File: Mathlib/CategoryTheory/Iso.lean

tactic: apply (cancel_epi (inv f)).1
state_before: C : Type u
inst✝² : Category C
X Y Z : C
f g : X ⟶ Y
inst✝¹ : IsIso f
inst✝ : IsIso g
p : inv f = inv g
⊢ f = g

tactic: erw [inv_hom_id, p, inv_hom_id]
state_before: C : Type u
inst✝² : Category C
X Y Z : C
f g : X ⟶ Y
inst✝¹ : IsIso f
inst✝ : IsIso g
p : inv f = inv g
⊢ inv f ≫ f = inv f ≫ g
Theorem: Int.sub_right_le_of_le_add
File: Std/Data/Int/Lemmas.lean

tactic: have h := Int.add_le_add_right h (-c)
state_before: a b c : Int
h : a ≤ b + c
⊢ a - c ≤ b

tactic: rwa [Int.add_neg_cancel_right] at h
state_before: a b c : Int
h✝ : a ≤ b + c
h : a + -c ≤ b + c + -c
⊢ a - c ≤ b
Theorem: Multiset.prod_X_sub_C_coeff
File: Mathlib/RingTheory/Polynomial/Vieta.lean

tactic: conv_lhs =>
  congr
  congr
  congr
  ext x
  rw [sub_eq_add_neg]
  rw [← map_neg C x]
state_before: R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
h : k ≤ ↑card s
⊢ coeff (prod (map (fun t => X - ↑C t) s)) k = (-1) ^ (↑card s - k) * esymm s (↑card s - k)

tactic: convert prod_X_add_C_coeff (map (fun t => -t) s) _ using 1
state_before: R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
h : k ≤ ↑card s
⊢ coeff (prod (map (fun x => X + ↑C (-x)) s)) k = (-1) ^ (↑card s - k) * esymm s (↑card s - k)

tactic: rw [map_map]
state_before: case h.e'_2
R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
h : k ≤ ↑card s
⊢ coeff (prod (map (fun x => X + ↑C (-x)) s)) k =
    coeff (prod (map (fun r => X + ↑C r) (map (fun t => -t) s))) ?convert_1

tactic: rfl
state_before: case h.e'_2
R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
h : k ≤ ↑card s
⊢ coeff (prod (map (fun x => X + ↑C (-x)) s)) k = coeff (prod (map ((fun r => X + ↑C r) ∘ fun t => -t) s)) ?convert_1

case convert_1
R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
h : k ≤ ↑card s
⊢ ℕ

tactic: rw [esymm_neg, card_map]
state_before: case h.e'_3
R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
h : k ≤ ↑card s
⊢ (-1) ^ (↑card s - k) * esymm s (↑card s - k) = esymm (map (fun t => -t) s) (↑card (map (fun t => -t) s) - k)

tactic: rwa [card_map]
state_before: case convert_2
R : Type u_1
inst✝ : CommRing R
s : Multiset R
k : ℕ
h : k ≤ ↑card s
⊢ k ≤ ↑card (map (fun t => -t) s)
Theorem: Int.lt_add_of_pos_left
File: Std/Data/Int/Lemmas.lean

tactic: have : 0 + a < b + a := Int.add_lt_add_right h a
state_before: a b : Int
h : 0 < b
⊢ a < b + a

tactic: rwa [Int.zero_add] at this
state_before: a b : Int
h : 0 < b
this : 0 + a < b + a
⊢ a < b + a
Theorem: CategoryTheory.CostructuredArrow.map_comp
File: Mathlib/CategoryTheory/StructuredArrow.lean

tactic: rw [eq_mk h]
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
T T' T'' : D
Y Y' : C
S : C ⥤ D
f : T ⟶ T'
f' : T' ⟶ T''
h : CostructuredArrow S T
⊢ (map (f ≫ f')).obj h = (map f').obj ((map f).obj h)

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
T T' T'' : D
Y Y' : C
S : C ⥤ D
f : T ⟶ T'
f' : T' ⟶ T''
h : CostructuredArrow S T
⊢ (map (f ≫ f')).obj (mk h.hom) = (map f').obj ((map f).obj (mk h.hom))
Theorem: Nat.dvd_of_mem_divisors
File: Mathlib/NumberTheory/Divisors.lean

tactic: cases m
state_before: n m : ℕ
h : n ∈ divisors m
⊢ n ∣ m

tactic: apply dvd_zero
state_before: case zero
n : ℕ
h : n ∈ divisors zero
⊢ n ∣ zero

tactic: simp [mem_divisors.1 h]
state_before: case succ
n n✝ : ℕ
h : n ∈ divisors (succ n✝)
⊢ n ∣ succ n✝
Theorem: NormedSpace.double_dual_bound
File: Mathlib/Analysis/NormedSpace/Dual.lean

tactic: simpa using ContinuousLinearMap.le_of_op_norm_le _ (inclusionInDoubleDual_norm_le 𝕜 E) x
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : SeminormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type ?u.28709
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
x : E
⊢ ‖↑(inclusionInDoubleDual 𝕜 E) x‖ ≤ ‖x‖
Theorem: ball_prod_same
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: simp [Prod.dist_eq]
state_before: α : Type u
β : Type v
X : Type ?u.247136
ι : Type ?u.247139
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
x : α
y : β
r : ℝ
z : α × β
⊢ z ∈ ball x r ×ˢ ball y r ↔ z ∈ ball (x, y) r
Theorem: AEMeasurable.nnreal_tsum
File: Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean

tactic: simp_rw [NNReal.tsum_eq_toNNReal_tsum]
state_before: α✝ : Type ?u.2984900
β : Type ?u.2984903
γ : Type ?u.2984906
γ₂ : Type ?u.2984909
δ : Type ?u.2984912
ι✝ : Sort y
s t u : Set α✝
inst✝² : MeasurableSpace α✝
α : Type u_1
inst✝¹ : MeasurableSpace α
ι : Type u_2
inst✝ : Countable ι
f : ι → α → ℝ≥0
μ : MeasureTheory.Measure α
h : ∀ (i : ι), AEMeasurable (f i)
⊢ AEMeasurable fun x => ∑' (i : ι), f i x

tactic: exact (AEMeasurable.ennreal_tsum fun i => (h i).coe_nnreal_ennreal).ennreal_toNNReal
state_before: α✝ : Type ?u.2984900
β : Type ?u.2984903
γ : Type ?u.2984906
γ₂ : Type ?u.2984909
δ : Type ?u.2984912
ι✝ : Sort y
s t u : Set α✝
inst✝² : MeasurableSpace α✝
α : Type u_1
inst✝¹ : MeasurableSpace α
ι : Type u_2
inst✝ : Countable ι
f : ι → α → ℝ≥0
μ : MeasureTheory.Measure α
h : ∀ (i : ι), AEMeasurable (f i)
⊢ AEMeasurable fun x => ENNReal.toNNReal (∑' (b : ι), ↑(f b x))
Theorem: MeasureTheory.OuterMeasure.restrict_univ
File: Mathlib/MeasureTheory/Measure/OuterMeasure.lean

tactic: simp
state_before: α : Type u_1
β : Type ?u.104333
R : Type ?u.104336
R' : Type ?u.104339
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : Set α
⊢ ↑(↑(restrict univ) m) s = ↑m s
Theorem: inv_le
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rw [← inv_le_inv hb (inv_pos.2 ha), inv_inv]
state_before: ι : Type ?u.46855
α : Type u_1
β : Type ?u.46861
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
ha : 0 < a
hb : 0 < b
⊢ a⁻¹ ≤ b ↔ b⁻¹ ≤ a
Theorem: Transcendental.irrational
File: Mathlib/Data/Real/Irrational.lean

tactic: rintro ⟨a, rfl⟩
state_before: r : ℝ
tr : Transcendental ℚ r
⊢ Irrational r

tactic: exact tr (isAlgebraic_algebraMap a)
state_before: case intro
a : ℚ
tr : Transcendental ℚ ↑a
⊢ False
Theorem: cpow_eq_nhds
File: Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean

tactic: suffices : ∀ᶠ x : ℂ in 𝓝 a, x ≠ 0
state_before: α : Type ?u.3016
a b : ℂ
ha : a ≠ 0
⊢ (fun x => x ^ b) =ᶠ[𝓝 a] fun x => Complex.exp (Complex.log x * b)

tactic: exact
  this.mono fun x hx => by
    dsimp only
    rw [cpow_def_of_ne_zero hx]
state_before: α : Type ?u.3016
a b : ℂ
ha : a ≠ 0
this : ∀ᶠ (x : ℂ) in 𝓝 a, x ≠ 0
⊢ (fun x => x ^ b) =ᶠ[𝓝 a] fun x => Complex.exp (Complex.log x * b)

case this
α : Type ?u.3016
a b : ℂ
ha : a ≠ 0
⊢ ∀ᶠ (x : ℂ) in 𝓝 a, x ≠ 0

tactic: exact IsOpen.eventually_mem isOpen_ne ha
state_before: case this
α : Type ?u.3016
a b : ℂ
ha : a ≠ 0
⊢ ∀ᶠ (x : ℂ) in 𝓝 a, x ≠ 0

tactic: dsimp only
state_before: α : Type ?u.3016
a b : ℂ
ha : a ≠ 0
this : ∀ᶠ (x : ℂ) in 𝓝 a, x ≠ 0
x : ℂ
hx : x ≠ 0
⊢ (fun x => x ^ b) x = (fun x => Complex.exp (Complex.log x * b)) x

tactic: rw [cpow_def_of_ne_zero hx]
state_before: α : Type ?u.3016
a b : ℂ
ha : a ≠ 0
this : ∀ᶠ (x : ℂ) in 𝓝 a, x ≠ 0
x : ℂ
hx : x ≠ 0
⊢ x ^ b = Complex.exp (Complex.log x * b)
Theorem: Cardinal.exists_not_mem_of_length_lt
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: contrapose! h
state_before: α✝ β : Type u
α : Type u_1
l : List α
h : ↑(List.length l) < (#α)
⊢ ∃ z, ¬z ∈ l

tactic: calc
  (#α) = (#(Set.univ : Set α)) := mk_univ.symm
  _ ≤ (#l.toFinset) := mk_le_mk_of_subset fun x _ => List.mem_toFinset.mpr (h x)
  _ = l.toFinset.card := Cardinal.mk_coe_finset
  _ ≤ l.length := Cardinal.natCast_le.mpr (List.toFinset_card_le l)
state_before: α✝ β : Type u
α : Type u_1
l : List α
h : ∀ (z : α), z ∈ l
⊢ (#α) ≤ ↑(List.length l)
Theorem: one_div_pow
File: Mathlib/Algebra/GroupPower/Basic.lean

tactic: simp only [one_div, inv_pow]
state_before: α : Type u_1
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝ : DivisionMonoid α
a✝ b a : α
n : ℕ
⊢ (1 / a) ^ n = 1 / a ^ n
Theorem: ManyOneDegree.le_add_left
File: Mathlib/Computability/Reduce.lean

tactic: rfl
state_before: α : Type u
inst✝⁵ : Primcodable α
inst✝⁴ : Inhabited α
β : Type v
inst✝³ : Primcodable β
inst✝² : Inhabited β
γ : Type w
inst✝¹ : Primcodable γ
inst✝ : Inhabited γ
d₁ d₂ : ManyOneDegree
⊢ d₁ + ?m.115355 d₁ d₂ ≤ d₁ + d₂
Theorem: EMetric.empty_or_nonempty_of_hausdorffEdist_ne_top
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: cases' s.eq_empty_or_nonempty with hs hs
state_before: ι : Sort ?u.55945
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
fin : hausdorffEdist s t ≠ ⊤
⊢ s = ∅ ∧ t = ∅ ∨ Set.Nonempty s ∧ Set.Nonempty t

tactic: cases' t.eq_empty_or_nonempty with ht ht
state_before: case inl
ι : Sort ?u.55945
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
fin : hausdorffEdist s t ≠ ⊤
hs : s = ∅
⊢ s = ∅ ∧ t = ∅ ∨ Set.Nonempty s ∧ Set.Nonempty t

tactic: exact Or.inl ⟨hs, ht⟩
state_before: case inl.inl
ι : Sort ?u.55945
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
fin : hausdorffEdist s t ≠ ⊤
hs : s = ∅
ht : t = ∅
⊢ s = ∅ ∧ t = ∅ ∨ Set.Nonempty s ∧ Set.Nonempty t

tactic: rw [hausdorffEdist_comm] at fin
state_before: case inl.inr
ι : Sort ?u.55945
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
fin : hausdorffEdist s t ≠ ⊤
hs : s = ∅
ht : Set.Nonempty t
⊢ s = ∅ ∧ t = ∅ ∨ Set.Nonempty s ∧ Set.Nonempty t

tactic: exact Or.inr ⟨nonempty_of_hausdorffEdist_ne_top ht fin, ht⟩
state_before: case inl.inr
ι : Sort ?u.55945
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
fin : hausdorffEdist t s ≠ ⊤
hs : s = ∅
ht : Set.Nonempty t
⊢ s = ∅ ∧ t = ∅ ∨ Set.Nonempty s ∧ Set.Nonempty t

tactic: exact Or.inr ⟨hs, nonempty_of_hausdorffEdist_ne_top hs fin⟩
state_before: case inr
ι : Sort ?u.55945
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
fin : hausdorffEdist s t ≠ ⊤
hs : Set.Nonempty s
⊢ s = ∅ ∧ t = ∅ ∨ Set.Nonempty s ∧ Set.Nonempty t
Theorem: PEquiv.single_mul_single_of_ne
File: Mathlib/Data/Matrix/PEquiv.lean

tactic: rw [← toMatrix_trans, single_trans_single_of_ne hb, toMatrix_bot]
state_before: k : Type u_2
l : Type ?u.76298
m : Type u_3
n : Type u_1
α : Type v
inst✝⁴ : Fintype n
inst✝³ : DecidableEq n
inst✝² : DecidableEq k
inst✝¹ : DecidableEq m
inst✝ : Semiring α
b₁ b₂ : n
hb : b₁ ≠ b₂
a : m
c : k
⊢ toMatrix (single a b₁) ⬝ toMatrix (single b₂ c) = 0
Theorem: SimpleGraph.Walk.isEulerian_iff
File: Mathlib/Combinatorics/SimpleGraph/Trails.lean

tactic: constructor
state_before: V : Type u_1
G : SimpleGraph V
inst✝ : DecidableEq V
u v : V
p : Walk G u v
⊢ IsEulerian p ↔ IsTrail p ∧ ∀ (e : Sym2 V), e ∈ edgeSet G → e ∈ edges p

tactic: intro h
state_before: case mp
V : Type u_1
G : SimpleGraph V
inst✝ : DecidableEq V
u v : V
p : Walk G u v
⊢ IsEulerian p → IsTrail p ∧ ∀ (e : Sym2 V), e ∈ edgeSet G → e ∈ edges p

tactic: exact ⟨h.isTrail, fun _ => h.mem_edges_iff.mpr⟩
state_before: case mp
V : Type u_1
G : SimpleGraph V
inst✝ : DecidableEq V
u v : V
p : Walk G u v
h : IsEulerian p
⊢ IsTrail p ∧ ∀ (e : Sym2 V), e ∈ edgeSet G → e ∈ edges p

tactic: rintro ⟨h, hl⟩
state_before: case mpr
V : Type u_1
G : SimpleGraph V
inst✝ : DecidableEq V
u v : V
p : Walk G u v
⊢ (IsTrail p ∧ ∀ (e : Sym2 V), e ∈ edgeSet G → e ∈ edges p) → IsEulerian p

tactic: exact h.isEulerian_of_forall_mem hl
state_before: case mpr.intro
V : Type u_1
G : SimpleGraph V
inst✝ : DecidableEq V
u v : V
p : Walk G u v
h : IsTrail p
hl : ∀ (e : Sym2 V), e ∈ edgeSet G → e ∈ edges p
⊢ IsEulerian p
Theorem: Set.preimage_const_sub_Ioo
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp [← Ioi_inter_Iio, inter_comm]
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
⊢ (fun x => a - x) ⁻¹' Ioo b c = Ioo (a - c) (a - b)
Theorem: ENNReal.toReal_sSup
File: Mathlib/Data/Real/ENNReal.lean

tactic: simp only [ENNReal.toReal, toNNReal_sSup s hf, NNReal.coe_sSup, Set.image_image]
state_before: α : Type ?u.844169
β : Type ?u.844172
a b c d : ℝ≥0∞
r p q : ℝ≥0
ι : Sort ?u.844189
f g : ι → ℝ≥0∞
s : Set ℝ≥0∞
hf : ∀ (r : ℝ≥0∞), r ∈ s → r ≠ ⊤
⊢ ENNReal.toReal (sSup s) = sSup (ENNReal.toReal '' s)
Theorem: Int.natAbs_le_iff_sq_le
File: Mathlib/Data/Int/Lemmas.lean

tactic: rw [sq, sq]
state_before: a✝ b✝ : ℤ
n : ℕ
a b : ℤ
⊢ natAbs a ≤ natAbs b ↔ a ^ 2 ≤ b ^ 2

tactic: exact natAbs_le_iff_mul_self_le
state_before: a✝ b✝ : ℤ
n : ℕ
a b : ℤ
⊢ natAbs a ≤ natAbs b ↔ a * a ≤ b * b
Theorem: ModelWithCorners.range_prod
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: simp_rw [← ModelWithCorners.target_eq]
state_before: 𝕜 : Type u_5
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_1
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
E' : Type ?u.88570
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : NormedSpace 𝕜 E'
F : Type u_2
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
F' : Type ?u.88776
inst✝⁵ : NormedAddCommGroup F'
inst✝⁴ : NormedSpace 𝕜 F'
H : Type u_3
inst✝³ : TopologicalSpace H
H' : Type ?u.88885
inst✝² : TopologicalSpace H'
G : Type u_4
inst✝¹ : TopologicalSpace G
G' : Type ?u.88897
inst✝ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
J : ModelWithCorners 𝕜 F G
⊢ range ↑(prod I J) = range ↑I ×ˢ range ↑J

tactic: rfl
state_before: 𝕜 : Type u_5
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_1
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
E' : Type ?u.88570
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : NormedSpace 𝕜 E'
F : Type u_2
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
F' : Type ?u.88776
inst✝⁵ : NormedAddCommGroup F'
inst✝⁴ : NormedSpace 𝕜 F'
H : Type u_3
inst✝³ : TopologicalSpace H
H' : Type ?u.88885
inst✝² : TopologicalSpace H'
G : Type u_4
inst✝¹ : TopologicalSpace G
G' : Type ?u.88897
inst✝ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
J : ModelWithCorners 𝕜 F G
⊢ (prod I J).toLocalEquiv.target = I.target ×ˢ J.target