tasksource/leandojo huggingface dataset:
Theorem: HasDerivAtFilter.iterate
File: Mathlib/Analysis/Calculus/Deriv/Comp.lean

tactic: have := hf.iterate hL hx n
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
f✝ f₀ f₁ g : 𝕜 → F
f'✝ f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type ?u.181000
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
s' t' : Set 𝕜'
h : 𝕜 → 𝕜'
h₁ : 𝕜 → 𝕜
h₂ : 𝕜' → 𝕜'
h' h₂' : 𝕜'
h₁' : 𝕜
g₁ : 𝕜' → F
g₁' : F
L' : Filter 𝕜'
f : 𝕜 → 𝕜
f' : 𝕜
hf : HasDerivAtFilter f f' x L
hL : Tendsto f L L
hx : f x = x
n : ℕ
⊢ HasDerivAtFilter (f^[n]) (f' ^ n) x L

tactic: rwa [ContinuousLinearMap.smulRight_one_pow] at this
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
f✝ f₀ f₁ g : 𝕜 → F
f'✝ f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type ?u.181000
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
s' t' : Set 𝕜'
h : 𝕜 → 𝕜'
h₁ : 𝕜 → 𝕜
h₂ : 𝕜' → 𝕜'
h' h₂' : 𝕜'
h₁' : 𝕜
g₁ : 𝕜' → F
g₁' : F
L' : Filter 𝕜'
f : 𝕜 → 𝕜
f' : 𝕜
hf : HasDerivAtFilter f f' x L
hL : Tendsto f L L
hx : f x = x
n : ℕ
this : HasFDerivAtFilter (f^[n]) (smulRight 1 f' ^ n) x L
⊢ HasDerivAtFilter (f^[n]) (f' ^ n) x L
Theorem: ENNReal.toReal_eq_zero_iff
File: Mathlib/Data/Real/ENNReal.lean

tactic: simp [ENNReal.toReal, toNNReal_eq_zero_iff]
state_before: α : Type ?u.23076
β : Type ?u.23079
a b c d : ℝ≥0∞
r p q : ℝ≥0
x : ℝ≥0∞
⊢ ENNReal.toReal x = 0 ↔ x = 0 ∨ x = ⊤
Theorem: LocalRing.of_surjective'
File: Mathlib/RingTheory/Ideal/LocalRing.lean

tactic: intro b
state_before: R : Type u
S : Type v
T : Type w
K : Type u'
inst✝³ : CommRing R
inst✝² : LocalRing R
inst✝¹ : CommRing S
inst✝ : Nontrivial S
f : R →+* S
hf : Function.Surjective ↑f
⊢ ∀ (a : S), IsUnit a ∨ IsUnit (1 - a)

tactic: obtain ⟨a, rfl⟩ := hf b
state_before: R : Type u
S : Type v
T : Type w
K : Type u'
inst✝³ : CommRing R
inst✝² : LocalRing R
inst✝¹ : CommRing S
inst✝ : Nontrivial S
f : R →+* S
hf : Function.Surjective ↑f
b : S
⊢ IsUnit b ∨ IsUnit (1 - b)

tactic: apply (isUnit_or_isUnit_one_sub_self a).imp <| RingHom.isUnit_map _
state_before: case intro
R : Type u
S : Type v
T : Type w
K : Type u'
inst✝³ : CommRing R
inst✝² : LocalRing R
inst✝¹ : CommRing S
inst✝ : Nontrivial S
f : R →+* S
hf : Function.Surjective ↑f
a : R
⊢ IsUnit (↑f a) ∨ IsUnit (1 - ↑f a)

tactic: rw [← f.map_one, ← f.map_sub]
state_before: case intro
R : Type u
S : Type v
T : Type w
K : Type u'
inst✝³ : CommRing R
inst✝² : LocalRing R
inst✝¹ : CommRing S
inst✝ : Nontrivial S
f : R →+* S
hf : Function.Surjective ↑f
a : R
⊢ IsUnit (1 - a) → IsUnit (1 - ↑f a)

tactic: apply f.isUnit_map
state_before: case intro
R : Type u
S : Type v
T : Type w
K : Type u'
inst✝³ : CommRing R
inst✝² : LocalRing R
inst✝¹ : CommRing S
inst✝ : Nontrivial S
f : R →+* S
hf : Function.Surjective ↑f
a : R
⊢ IsUnit (1 - a) → IsUnit (↑f (1 - a))
Theorem: nhdsWithin_compl_singleton_sup_pure
File: Mathlib/Topology/ContinuousOn.lean

tactic: rw [← nhdsWithin_singleton, ← nhdsWithin_union, compl_union_self, nhdsWithin_univ]
state_before: α : Type u_1
β : Type ?u.22542
γ : Type ?u.22545
δ : Type ?u.22548
inst✝ : TopologicalSpace α
a : α
⊢ 𝓝[{a}ᶜ] a ⊔ pure a = 𝓝 a
Theorem: Sum.smul_swap
File: Mathlib/GroupTheory/GroupAction/Sum.lean

tactic: cases x <;> rfl
state_before: M : Type u_3
N : Type ?u.1873
P : Type ?u.1876
α : Type u_1
β : Type u_2
γ : Type ?u.1885
inst✝³ : SMul M α
inst✝² : SMul M β
inst✝¹ : SMul N α
inst✝ : SMul N β
a : M
b : α
c : β
x : α ⊕ β
⊢ swap (a • x) = a • swap x
Theorem: Nat.factors_prime
File: Mathlib/Data/Nat/Factors.lean

tactic: have : p = p - 2 + 2 := (tsub_eq_iff_eq_add_of_le hp.two_le).mp rfl
state_before: p : ℕ
hp : Prime p
⊢ factors p = [p]

tactic: rw [this, Nat.factors]
state_before: p : ℕ
hp : Prime p
this : p = p - 2 + 2
⊢ factors p = [p]

tactic: simp only [Eq.symm this]
state_before: p : ℕ
hp : Prime p
this : p = p - 2 + 2
⊢ (let m := minFac (p - 2 + 2);
    let_fun this := (_ : (p - 2 + 2) / minFac (p - 2 + 2) < p - 2 + 2);
    m :: factors ((p - 2 + 2) / m)) =
    [p - 2 + 2]

tactic: have : Nat.minFac p = p := (Nat.prime_def_minFac.mp hp).2
state_before: p : ℕ
hp : Prime p
this : p = p - 2 + 2
⊢ minFac p :: factors (p / minFac p) = [p]

tactic: simp only [this, Nat.factors, Nat.div_self (Nat.Prime.pos hp)]
state_before: p : ℕ
hp : Prime p
this✝ : p = p - 2 + 2
this : minFac p = p
⊢ minFac p :: factors (p / minFac p) = [p]
Theorem: dist_right_midpoint
File: Mathlib/Analysis/NormedSpace/AddTorsor.lean

tactic: rw [dist_comm, dist_midpoint_right]
state_before: α : Type ?u.69523
V : Type u_3
P : Type u_1
W : Type ?u.69532
Q : Type ?u.69535
inst✝⁹ : SeminormedAddCommGroup V
inst✝⁸ : PseudoMetricSpace P
inst✝⁷ : NormedAddTorsor V P
inst✝⁶ : NormedAddCommGroup W
inst✝⁵ : MetricSpace Q
inst✝⁴ : NormedAddTorsor W Q
𝕜 : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : NormedSpace 𝕜 V
inst✝¹ : NormedSpace 𝕜 W
inst✝ : Invertible 2
p₁ p₂ : P
⊢ dist p₂ (midpoint 𝕜 p₁ p₂) = ‖2‖⁻¹ * dist p₁ p₂
Theorem: MeasureTheory.hasFiniteIntegral_zero
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simp [HasFiniteIntegral]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.721960
δ : Type ?u.721963
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
⊢ HasFiniteIntegral fun x => 0
Theorem: ENNReal.ofReal_div_of_pos
File: Mathlib/Data/Real/ENNReal.lean

tactic: rw [div_eq_mul_inv, div_eq_mul_inv, ofReal_mul' (inv_nonneg.2 hy.le), ofReal_inv_of_pos hy]
state_before: α : Type ?u.816967
β : Type ?u.816970
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y : ℝ
hy : 0 < y
⊢ ENNReal.ofReal (x / y) = ENNReal.ofReal x / ENNReal.ofReal y
Theorem: Real.cosh_sq
File: Mathlib/Data/Complex/Exponential.lean

tactic: rw [← ofReal_inj]
state_before: x y : ℝ
⊢ cosh x ^ 2 = sinh x ^ 2 + 1

tactic: simp [cosh_sq]
state_before: x y : ℝ
⊢ ↑(cosh x ^ 2) = ↑(sinh x ^ 2 + 1)
Theorem: Subalgebra.restrictScalars_injective
File: Mathlib/Algebra/Algebra/Subalgebra/Tower.lean

tactic: rw [← mem_restrictScalars R, H, mem_restrictScalars]
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝¹⁰ : CommSemiring R
inst✝⁹ : CommSemiring S
inst✝⁸ : Semiring A
inst✝⁷ : Semiring B
inst✝⁶ : Algebra R S
inst✝⁵ : Algebra S A
inst✝⁴ : Algebra R A
inst✝³ : Algebra S B
inst✝² : Algebra R B
inst✝¹ : IsScalarTower R S A
inst✝ : IsScalarTower R S B
U V : Subalgebra S A
H : restrictScalars R U = restrictScalars R V
x : A
⊢ x ∈ U ↔ x ∈ V
Theorem: Nat.gcd_mul_left_add_right
File: Mathlib/Data/Nat/GCD/Basic.lean

tactic: simp [add_comm _ n]
state_before: m n k : ℕ
⊢ gcd m (m * k + n) = gcd m n
Theorem: Polynomial.map_expand
File: Mathlib/Data/Polynomial/Expand.lean

tactic: by_cases hp : p = 0
state_before: R : Type u
inst✝¹ : CommSemiring R
S : Type v
inst✝ : CommSemiring S
p✝ q✝ p : ℕ
f : R →+* S
q : R[X]
⊢ map f (↑(expand R p) q) = ↑(expand S p) (map f q)

tactic: ext
state_before: case neg
R : Type u
inst✝¹ : CommSemiring R
S : Type v
inst✝ : CommSemiring S
p✝ q✝ p : ℕ
f : R →+* S
q : R[X]
hp : ¬p = 0
⊢ map f (↑(expand R p) q) = ↑(expand S p) (map f q)

tactic: rw [coeff_map, coeff_expand (Nat.pos_of_ne_zero hp), coeff_expand (Nat.pos_of_ne_zero hp)]
state_before: case neg.a
R : Type u
inst✝¹ : CommSemiring R
S : Type v
inst✝ : CommSemiring S
p✝ q✝ p : ℕ
f : R →+* S
q : R[X]
hp : ¬p = 0
n✝ : ℕ
⊢ coeff (map f (↑(expand R p) q)) n✝ = coeff (↑(expand S p) (map f q)) n✝

tactic: split_ifs <;> simp_all
state_before: case neg.a
R : Type u
inst✝¹ : CommSemiring R
S : Type v
inst✝ : CommSemiring S
p✝ q✝ p : ℕ
f : R →+* S
q : R[X]
hp : ¬p = 0
n✝ : ℕ
⊢ ↑f (if p ∣ n✝ then coeff q (n✝ / p) else 0) = if p ∣ n✝ then coeff (map f q) (n✝ / p) else 0

tactic: simp [hp]
state_before: case pos
R : Type u
inst✝¹ : CommSemiring R
S : Type v
inst✝ : CommSemiring S
p✝ q✝ p : ℕ
f : R →+* S
q : R[X]
hp : p = 0
⊢ map f (↑(expand R p) q) = ↑(expand S p) (map f q)
Theorem: Equiv.Perm.Disjoint.card_support_mul
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: rw [← Finset.card_disjoint_union]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
h : Disjoint f g
⊢ card (support (f * g)) = card (support f) + card (support g)

tactic: congr
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
h : Disjoint f g
⊢ card (support (f * g)) = card (support f ∪ support g)

tactic: ext
state_before: case e_s
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
h : Disjoint f g
⊢ support (f * g) = support f ∪ support g

tactic: simp [h.support_mul]
state_before: case e_s.a
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
h : Disjoint f g
a✝ : α
⊢ a✝ ∈ support (f * g) ↔ a✝ ∈ support f ∪ support g

tactic: simpa using h.disjoint_support
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
h : Disjoint f g
⊢ _root_.Disjoint (support f) (support g)
Theorem: Submodule.span_induction
File: Mathlib/LinearAlgebra/Span.lean

tactic: intros x y
state_before: R : Type u_2
R₂ : Type ?u.21086
K : Type ?u.21089
M : Type u_1
M₂ : Type ?u.21095
V : Type ?u.21098
S : Type ?u.21101
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
x : M
p✝ p' : Submodule R M
inst✝² : Semiring R₂
σ₁₂ : R →+* R₂
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
s✝ t : Set M
p : M → Prop
h : x ∈ span R s✝
Hs : ∀ (x : M), x ∈ s✝ → p x
H0 : p 0
H1 : ∀ (x y : M), p x → p y → p (x + y)
H2 : ∀ (a : R) (x : M), p x → p (a • x)
s : Set M
⊢ ∀ {a b : M}, a ∈ p → b ∈ p → a + b ∈ p

tactic: exact H1 x y
state_before: R : Type u_2
R₂ : Type ?u.21086
K : Type ?u.21089
M : Type u_1
M₂ : Type ?u.21095
V : Type ?u.21098
S : Type ?u.21101
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
x✝ : M
p✝ p' : Submodule R M
inst✝² : Semiring R₂
σ₁₂ : R →+* R₂
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
s✝ t : Set M
p : M → Prop
h : x✝ ∈ span R s✝
Hs : ∀ (x : M), x ∈ s✝ → p x
H0 : p 0
H1 : ∀ (x y : M), p x → p y → p (x + y)
H2 : ∀ (a : R) (x : M), p x → p (a • x)
s : Set M
x y : M
⊢ x ∈ p → y ∈ p → x + y ∈ p
Theorem: Stream'.WSeq.map_id
File: Mathlib/Data/Seq/WSeq.lean

tactic: simp [map]
state_before: α : Type u
β : Type v
γ : Type w
s : WSeq α
⊢ map id s = s
Theorem: ZFSet.not_nonempty_empty
File: Mathlib/SetTheory/ZFC/Basic.lean

tactic: simp [ZFSet.Nonempty]
state_before: ⊢ ¬ZFSet.Nonempty ∅
Theorem: Nat.exists_mul_emod_eq_gcd
File: Mathlib/Data/Int/GCD.lean

tactic: have hk' := Int.ofNat_ne_zero.2 (ne_of_gt (lt_of_le_of_lt (zero_le (gcd n k)) hk))
state_before: k n : ℕ
hk : gcd n k < k
⊢ ∃ m, n * m % k = gcd n k

tactic: have key := congr_arg (fun (m : ℤ) => (m % k).toNat) (gcd_eq_gcd_ab n k)
state_before: k n : ℕ
hk : gcd n k < k
hk' : ↑k ≠ 0
⊢ ∃ m, n * m % k = gcd n k

tactic: simp only at key
state_before: k n : ℕ
hk : gcd n k < k
hk' : ↑k ≠ 0
key : (fun m => Int.toNat (m % ↑k)) ↑(gcd n k) = (fun m => Int.toNat (m % ↑k)) (↑n * gcdA n k + ↑k * gcdB n k)
⊢ ∃ m, n * m % k = gcd n k

tactic: rw [Int.add_mul_emod_self_left, ← Int.coe_nat_mod, Int.toNat_coe_nat, mod_eq_of_lt hk] at key
state_before: k n : ℕ
hk : gcd n k < k
hk' : ↑k ≠ 0
key : Int.toNat (↑(gcd n k) % ↑k) = Int.toNat ((↑n * gcdA n k + ↑k * gcdB n k) % ↑k)
⊢ ∃ m, n * m % k = gcd n k

tactic: refine' ⟨(n.gcdA k % k).toNat, Eq.trans (Int.ofNat.inj _) key.symm⟩
state_before: k n : ℕ
hk : gcd n k < k
hk' : ↑k ≠ 0
key : gcd n k = Int.toNat (↑n * gcdA n k % ↑k)
⊢ ∃ m, n * m % k = gcd n k

tactic: rw [Int.ofNat_eq_coe, Int.coe_nat_mod, Int.ofNat_mul, Int.toNat_of_nonneg (Int.emod_nonneg _ hk'),
  Int.ofNat_eq_coe, Int.toNat_of_nonneg (Int.emod_nonneg _ hk'), Int.mul_emod, Int.emod_emod,
  ← Int.mul_emod]
state_before: k n : ℕ
hk : gcd n k < k
hk' : ↑k ≠ 0
key : gcd n k = Int.toNat (↑n * gcdA n k % ↑k)
⊢ Int.ofNat (n * Int.toNat (gcdA n k % ↑k) % k) = Int.ofNat (Int.toNat (↑n * gcdA n k % ↑k))
Theorem: Polynomial.splits_comp_of_splits
File: Mathlib/Data/Polynomial/Splits.lean

tactic: rw [← splits_map_iff]
state_before: F : Type u
K : Type v
L : Type w
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Field F
i : K →+* L
j : L →+* F
f : K[X]
h : Splits i f
⊢ Splits (RingHom.comp j i) f

tactic: rw [← RingHom.id_comp i, ← splits_map_iff i] at h
state_before: F : Type u
K : Type v
L : Type w
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Field F
i : K →+* L
j : L →+* F
f : K[X]
h : Splits i f
⊢ Splits j (map i f)

tactic: exact splits_of_splits_id _ h
state_before: F : Type u
K : Type v
L : Type w
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Field F
i : K →+* L
j : L →+* F
f : K[X]
h : Splits (RingHom.id L) (map i f)
⊢ Splits j (map i f)
Theorem: PiTensorProduct.tprodCoeff_eq_smul_tprod
File: Mathlib/LinearAlgebra/PiTensorProduct.lean

tactic: have : z = z • (1 : R) := by simp only [mul_one, Algebra.id.smul_eq_mul]
state_before: ι : Type u_1
ι₂ : Type ?u.228081
ι₃ : Type ?u.228084
R : Type u_2
inst✝⁷ : CommSemiring R
R₁ : Type ?u.228093
R₂ : Type ?u.228096
s : ι → Type u_3
inst✝⁶ : (i : ι) → AddCommMonoid (s i)
inst✝⁵ : (i : ι) → Module R (s i)
M : Type ?u.228286
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
E : Type ?u.228420
inst✝² : AddCommMonoid E
inst✝¹ : Module R E
F : Type ?u.228554
inst✝ : AddCommMonoid F
z : R
f : (i : ι) → s i
⊢ tprodCoeff R z f = z • ↑(tprod R) f

tactic: conv_lhs => rw [this]
state_before: ι : Type u_1
ι₂ : Type ?u.228081
ι₃ : Type ?u.228084
R : Type u_2
inst✝⁷ : CommSemiring R
R₁ : Type ?u.228093
R₂ : Type ?u.228096
s : ι → Type u_3
inst✝⁶ : (i : ι) → AddCommMonoid (s i)
inst✝⁵ : (i : ι) → Module R (s i)
M : Type ?u.228286
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
E : Type ?u.228420
inst✝² : AddCommMonoid E
inst✝¹ : Module R E
F : Type ?u.228554
inst✝ : AddCommMonoid F
z : R
f : (i : ι) → s i
this : z = z • 1
⊢ tprodCoeff R z f = z • ↑(tprod R) f

tactic: simp only [mul_one, Algebra.id.smul_eq_mul]
state_before: ι : Type u_1
ι₂ : Type ?u.228081
ι₃ : Type ?u.228084
R : Type u_2
inst✝⁷ : CommSemiring R
R₁ : Type ?u.228093
R₂ : Type ?u.228096
s : ι → Type u_3
inst✝⁶ : (i : ι) → AddCommMonoid (s i)
inst✝⁵ : (i : ι) → Module R (s i)
M : Type ?u.228286
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
E : Type ?u.228420
inst✝² : AddCommMonoid E
inst✝¹ : Module R E
F : Type ?u.228554
inst✝ : AddCommMonoid F
z : R
f : (i : ι) → s i
⊢ z = z • 1
Theorem: ENNReal.Ioo_zero_top_eq_iUnion_Ico_zpow
File: Mathlib/Data/Real/ENNReal.lean

tactic: ext x
state_before: α : Type ?u.661501
β : Type ?u.661504
a b c d : ℝ≥0∞
r p q : ℝ≥0
y : ℝ≥0∞
hy : 1 < y
h'y : y ≠ ⊤
⊢ Ioo 0 ⊤ = ⋃ (n : ℤ), Ico (y ^ n) (y ^ (n + 1))

tactic: simp only [mem_iUnion, mem_Ioo, mem_Ico]
state_before: case h
α : Type ?u.661501
β : Type ?u.661504
a b c d : ℝ≥0∞
r p q : ℝ≥0
y : ℝ≥0∞
hy : 1 < y
h'y : y ≠ ⊤
x : ℝ≥0∞
⊢ x ∈ Ioo 0 ⊤ ↔ x ∈ ⋃ (n : ℤ), Ico (y ^ n) (y ^ (n + 1))

tactic: constructor
state_before: case h
α : Type ?u.661501
β : Type ?u.661504
a b c d : ℝ≥0∞
r p q : ℝ≥0
y : ℝ≥0∞
hy : 1 < y
h'y : y ≠ ⊤
x : ℝ≥0∞
⊢ 0 < x ∧ x < ⊤ ↔ ∃ i, y ^ i ≤ x ∧ x < y ^ (i + 1)

tactic: rintro ⟨hx, h'x⟩
state_before: case h.mp
α : Type ?u.661501
β : Type ?u.661504
a b c d : ℝ≥0∞
r p q : ℝ≥0
y : ℝ≥0∞
hy : 1 < y
h'y : y ≠ ⊤
x : ℝ≥0∞
⊢ 0 < x ∧ x < ⊤ → ∃ i, y ^ i ≤ x ∧ x < y ^ (i + 1)

tactic: exact exists_mem_Ico_zpow hx.ne' h'x.ne hy h'y
state_before: case h.mp.intro
α : Type ?u.661501
β : Type ?u.661504
a b c d : ℝ≥0∞
r p q : ℝ≥0
y : ℝ≥0∞
hy : 1 < y
h'y : y ≠ ⊤
x : ℝ≥0∞
hx : 0 < x
h'x : x < ⊤
⊢ ∃ i, y ^ i ≤ x ∧ x < y ^ (i + 1)

tactic: rintro ⟨n, hn, h'n⟩
state_before: case h.mpr
α : Type ?u.661501
β : Type ?u.661504
a b c d : ℝ≥0∞
r p q : ℝ≥0
y : ℝ≥0∞
hy : 1 < y
h'y : y ≠ ⊤
x : ℝ≥0∞
⊢ (∃ i, y ^ i ≤ x ∧ x < y ^ (i + 1)) → 0 < x ∧ x < ⊤

tactic: constructor
state_before: case h.mpr.intro.intro
α : Type ?u.661501
β : Type ?u.661504
a b c d : ℝ≥0∞
r p q : ℝ≥0
y : ℝ≥0∞
hy : 1 < y
h'y : y ≠ ⊤
x : ℝ≥0∞
n : ℤ
hn : y ^ n ≤ x
h'n : x < y ^ (n + 1)
⊢ 0 < x ∧ x < ⊤

tactic: apply lt_of_lt_of_le _ hn
state_before: case h.mpr.intro.intro.left
α : Type ?u.661501
β : Type ?u.661504
a b c d : ℝ≥0∞
r p q : ℝ≥0
y : ℝ≥0∞
hy : 1 < y
h'y : y ≠ ⊤
x : ℝ≥0∞
n : ℤ
hn : y ^ n ≤ x
h'n : x < y ^ (n + 1)
⊢ 0 < x

tactic: exact ENNReal.zpow_pos (zero_lt_one.trans hy).ne' h'y _
state_before: α : Type ?u.661501
β : Type ?u.661504
a b c d : ℝ≥0∞
r p q : ℝ≥0
y : ℝ≥0∞
hy : 1 < y
h'y : y ≠ ⊤
x : ℝ≥0∞
n : ℤ
hn : y ^ n ≤ x
h'n : x < y ^ (n + 1)
⊢ 0 < y ^ n

tactic: apply lt_trans h'n _
state_before: case h.mpr.intro.intro.right
α : Type ?u.661501
β : Type ?u.661504
a b c d : ℝ≥0∞
r p q : ℝ≥0
y : ℝ≥0∞
hy : 1 < y
h'y : y ≠ ⊤
x : ℝ≥0∞
n : ℤ
hn : y ^ n ≤ x
h'n : x < y ^ (n + 1)
⊢ x < ⊤

tactic: exact ENNReal.zpow_lt_top (zero_lt_one.trans hy).ne' h'y _
state_before: α : Type ?u.661501
β : Type ?u.661504
a b c d : ℝ≥0∞
r p q : ℝ≥0
y : ℝ≥0∞
hy : 1 < y
h'y : y ≠ ⊤
x : ℝ≥0∞
n : ℤ
hn : y ^ n ≤ x
h'n : x < y ^ (n + 1)
⊢ y ^ (n + 1) < ⊤
Theorem: CategoryTheory.NonPreadditiveAbelian.lift_map
File: Mathlib/CategoryTheory/Abelian/NonPreadditive.lean

tactic: simp
state_before: C : Type u
inst✝¹ : Category C
inst✝ : NonPreadditiveAbelian C
X Y : C
f : X ⟶ Y
⊢ prod.lift (𝟙 X) 0 ≫ prod.map f f = f ≫ prod.lift (𝟙 Y) 0
Theorem: MvPolynomial.aeval_algebraMap_eq_zero_iff_of_injective
File: Mathlib/RingTheory/MvPolynomial/Tower.lean

tactic: rw [aeval_algebraMap_apply, ← (algebraMap A B).map_zero, h.eq_iff]
state_before: R : Type u_2
A : Type u_3
B : Type u_4
σ : Type u_1
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring A
inst✝⁴ : CommSemiring B
inst✝³ : Algebra R A
inst✝² : Algebra A B
inst✝¹ : Algebra R B
inst✝ : IsScalarTower R A B
x : σ → A
p : MvPolynomial σ R
h : Function.Injective ↑(algebraMap A B)
⊢ ↑(aeval (↑(algebraMap A B) ∘ x)) p = 0 ↔ ↑(aeval x) p = 0
Theorem: Cardinal.type_cardinal
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

tactic: rw [Ordinal.univ_id]
state_before: ⊢ (type fun x x_1 => x < x_1) = Ordinal.univ

tactic: exact Quotient.sound ⟨alephIdx.relIso⟩
state_before: ⊢ (type fun x x_1 => x < x_1) = type fun x x_1 => x < x_1
Theorem: Basis.range_extend
File: Mathlib/LinearAlgebra/Basis.lean

tactic: rw [coe_extend, Subtype.range_coe_subtype, setOf_mem_eq]
state_before: ι : Type ?u.1132782
ι' : Type ?u.1132785
R : Type ?u.1132788
R₂ : Type ?u.1132791
K : Type u_1
M : Type ?u.1132797
M' : Type ?u.1132800
M'' : Type ?u.1132803
V : Type u
V' : Type ?u.1132808
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x y z : V
hs : LinearIndependent K Subtype.val
⊢ range ↑(extend hs) = LinearIndependent.extend hs (_ : s ⊆ univ)
Theorem: Dfinsupp.single_le_iff
File: Mathlib/Data/Dfinsupp/Order.lean

tactic: simp
state_before: ι : Type u_1
α : ι → Type u_2
inst✝² : (i : ι) → CanonicallyOrderedAddMonoid (α i)
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → (x : α i) → Decidable (x ≠ 0)
f g : Π₀ (i : ι), α i
s : Finset ι
i : ι
a : α i
⊢ (∀ (i_1 : ι), i_1 ∈ {i} → ↑(single i a) i_1 ≤ ↑f i_1) ↔ a ≤ ↑f i
Theorem: MeasureTheory.measure_preimage_mul_right
File: Mathlib/MeasureTheory/Group/Measure.lean

tactic: rw [map_mul_right_eq_self μ g]
state_before: 𝕜 : Type ?u.426884
G : Type u_1
H : Type ?u.426890
inst✝⁴ : MeasurableSpace G
inst✝³ : MeasurableSpace H
inst✝² : Group G
inst✝¹ : MeasurableMul G
μ : Measure G
inst✝ : IsMulRightInvariant μ
g : G
A : Set G
⊢ ↑↑(Measure.map (fun h => h * g) μ) A = ↑↑μ A
Theorem: Set.image2_distrib_subset_left
File: Mathlib/Data/Set/NAry.lean

tactic: rintro _ ⟨a, _, ha, ⟨b, c, hb, hc, rfl⟩, rfl⟩
state_before: α : Type u_2
α' : Type ?u.46266
β : Type u_4
β' : Type u_6
γ : Type u_5
γ' : Type u_7
δ : Type u_3
δ' : Type ?u.46284
ε : Type u_1
ε' : Type ?u.46290
ζ : Type ?u.46293
ζ' : Type ?u.46296
ν : Type ?u.46299
f✝ f' : α → β → γ
g✝ g'✝ : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a a' : α
b b' : β
c c' : γ
d d' : δ
f : α → δ → ε
g : β → γ → δ
f₁ : α → β → β'
f₂ : α → γ → γ'
g' : β' → γ' → ε
h_distrib : ∀ (a : α) (b : β) (c : γ), f a (g b c) = g' (f₁ a b) (f₂ a c)
⊢ image2 f s (image2 g t u) ⊆ image2 g' (image2 f₁ s t) (image2 f₂ s u)

tactic: rw [h_distrib]
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_2
α' : Type ?u.46266
β : Type u_4
β' : Type u_6
γ : Type u_5
γ' : Type u_7
δ : Type u_3
δ' : Type ?u.46284
ε : Type u_1
ε' : Type ?u.46290
ζ : Type ?u.46293
ζ' : Type ?u.46296
ν : Type ?u.46299
f✝ f' : α → β → γ
g✝ g'✝ : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a✝ a' : α
b✝ b' : β
c✝ c' : γ
d d' : δ
f : α → δ → ε
g : β → γ → δ
f₁ : α → β → β'
f₂ : α → γ → γ'
g' : β' → γ' → ε
h_distrib : ∀ (a : α) (b : β) (c : γ), f a (g b c) = g' (f₁ a b) (f₂ a c)
a : α
ha : a ∈ s
b : β
c : γ
hb : b ∈ t
hc : c ∈ u
⊢ f a (g b c) ∈ image2 g' (image2 f₁ s t) (image2 f₂ s u)

tactic: exact mem_image2_of_mem (mem_image2_of_mem ha hb) (mem_image2_of_mem ha hc)
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_2
α' : Type ?u.46266
β : Type u_4
β' : Type u_6
γ : Type u_5
γ' : Type u_7
δ : Type u_3
δ' : Type ?u.46284
ε : Type u_1
ε' : Type ?u.46290
ζ : Type ?u.46293
ζ' : Type ?u.46296
ν : Type ?u.46299
f✝ f' : α → β → γ
g✝ g'✝ : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a✝ a' : α
b✝ b' : β
c✝ c' : γ
d d' : δ
f : α → δ → ε
g : β → γ → δ
f₁ : α → β → β'
f₂ : α → γ → γ'
g' : β' → γ' → ε
h_distrib : ∀ (a : α) (b : β) (c : γ), f a (g b c) = g' (f₁ a b) (f₂ a c)
a : α
ha : a ∈ s
b : β
c : γ
hb : b ∈ t
hc : c ∈ u
⊢ g' (f₁ a b) (f₂ a c) ∈ image2 g' (image2 f₁ s t) (image2 f₂ s u)
Theorem: MeasureTheory.IntegrableOn.restrict
File: Mathlib/MeasureTheory/Integral/IntegrableOn.lean

tactic: rw [IntegrableOn, Measure.restrict_restrict hs]
state_before: α : Type u_1
β : Type ?u.1499967
E : Type u_2
F : Type ?u.1499973
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
h : IntegrableOn f s
hs : MeasurableSet s
⊢ IntegrableOn f s

tactic: exact h.mono_set (inter_subset_left _ _)
state_before: α : Type u_1
β : Type ?u.1499967
E : Type u_2
F : Type ?u.1499973
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
h : IntegrableOn f s
hs : MeasurableSet s
⊢ Integrable f
Theorem: Complex.exp_eq_exp_iff_exists_int
File: Mathlib/Analysis/SpecialFunctions/Complex/Log.lean

tactic: simp only [exp_eq_exp_iff_exp_sub_eq_one, exp_eq_one_iff, sub_eq_iff_eq_add']
state_before: x y : ℂ
⊢ exp x = exp y ↔ ∃ n, x = y + ↑n * (2 * ↑π * I)