1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Bornology.comap_cobounded_le_iff
File: Mathlib/Topology/Bornology/Basic.lean

tactic: refine
  ⟨fun h s hs => ?_, fun h t ht =>
    ⟨(f '' tᶜ)ᶜ, h <| IsCobounded.compl ht, compl_subset_comm.1 <| subset_preimage_image _ _⟩⟩
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
x✝ : Bornology α
s t : Set α
x : α
inst✝ : Bornology β
f : α → β
⊢ comap f (cobounded β) ≤ cobounded α ↔ ∀ ⦃s : Set α⦄, IsBounded s → IsBounded (f '' s)
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
x✝ : Bornology α
s✝ t : Set α
x : α
inst✝ : Bornology β
f : α → β
h : comap f (cobounded β) ≤ cobounded α
s : Set α
hs : IsBounded s
⊢ IsBounded (f '' s)

tactic: obtain ⟨t, ht, hts⟩ := h hs.compl
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
x✝ : Bornology α
s✝ t : Set α
x : α
inst✝ : Bornology β
f : α → β
h : comap f (cobounded β) ≤ cobounded α
s : Set α
hs : IsBounded s
⊢ IsBounded (f '' s)
state_after: case intro.intro
ι : Type u_1
α : Type u_2
β : Type u_3
x✝ : Bornology α
s✝ t✝ : Set α
x : α
inst✝ : Bornology β
f : α → β
h : comap f (cobounded β) ≤ cobounded α
s : Set α
hs : IsBounded s
t : Set β
ht : t ∈ cobounded β
hts : f ⁻¹' t ⊆ sᶜ
⊢ IsBounded (f '' s)

tactic: rw [subset_compl_comm, ← preimage_compl] at hts
state_before: case intro.intro
ι : Type u_1
α : Type u_2
β : Type u_3
x✝ : Bornology α
s✝ t✝ : Set α
x : α
inst✝ : Bornology β
f : α → β
h : comap f (cobounded β) ≤ cobounded α
s : Set α
hs : IsBounded s
t : Set β
ht : t ∈ cobounded β
hts : f ⁻¹' t ⊆ sᶜ
⊢ IsBounded (f '' s)
state_after: case intro.intro
ι : Type u_1
α : Type u_2
β : Type u_3
x✝ : Bornology α
s✝ t✝ : Set α
x : α
inst✝ : Bornology β
f : α → β
h : comap f (cobounded β) ≤ cobounded α
s : Set α
hs : IsBounded s
t : Set β
ht : t ∈ cobounded β
hts : s ⊆ f ⁻¹' tᶜ
⊢ IsBounded (f '' s)

tactic: exact (IsCobounded.compl ht).subset ((image_subset f hts).trans <| image_preimage_subset _ _)
state_before: case intro.intro
ι : Type u_1
α : Type u_2
β : Type u_3
x✝ : Bornology α
s✝ t✝ : Set α
x : α
inst✝ : Bornology β
f : α → β
h : comap f (cobounded β) ≤ cobounded α
s : Set α
hs : IsBounded s
t : Set β
ht : t ∈ cobounded β
hts : s ⊆ f ⁻¹' tᶜ
⊢ IsBounded (f '' s)
state_after: no goals
Theorem: HasFiniteFPowerSeriesOnBall.eq_partialSum
File: Mathlib/Analysis/Analytic/CPolynomial.lean

tactic: simp only
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f g : E → F
p pf pg : FormalMultilinearSeries 𝕜 E F
x : E
r r' : ℝ≥0∞
n m✝ : ℕ
hf : HasFiniteFPowerSeriesOnBall f p x n r
y : E
hy : y ∈ EMetric.ball 0 r
m : ℕ
hm : n ≤ m
N : ℕ
hN : N ∉ Finset.range m
⊢ (fun m => (p m) fun x => y) N = 0
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f g : E → F
p pf pg : FormalMultilinearSeries 𝕜 E F
x : E
r r' : ℝ≥0∞
n m✝ : ℕ
hf : HasFiniteFPowerSeriesOnBall f p x n r
y : E
hy : y ∈ EMetric.ball 0 r
m : ℕ
hm : n ≤ m
N : ℕ
hN : N ∉ Finset.range m
⊢ ((p N) fun x => y) = 0

tactic: simp only [Finset.mem_range, not_lt] at hN
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f g : E → F
p pf pg : FormalMultilinearSeries 𝕜 E F
x : E
r r' : ℝ≥0∞
n m✝ : ℕ
hf : HasFiniteFPowerSeriesOnBall f p x n r
y : E
hy : y ∈ EMetric.ball 0 r
m : ℕ
hm : n ≤ m
N : ℕ
hN : N ∉ Finset.range m
⊢ ((p N) fun x => y) = 0
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f g : E → F
p pf pg : FormalMultilinearSeries 𝕜 E F
x : E
r r' : ℝ≥0∞
n m✝ : ℕ
hf : HasFiniteFPowerSeriesOnBall f p x n r
y : E
hy : y ∈ EMetric.ball 0 r
m : ℕ
hm : n ≤ m
N : ℕ
hN : m ≤ N
⊢ ((p N) fun x => y) = 0

tactic: rw [hf.finite _ (le_trans hm hN), ContinuousMultilinearMap.zero_apply]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f g : E → F
p pf pg : FormalMultilinearSeries 𝕜 E F
x : E
r r' : ℝ≥0∞
n m✝ : ℕ
hf : HasFiniteFPowerSeriesOnBall f p x n r
y : E
hy : y ∈ EMetric.ball 0 r
m : ℕ
hm : n ≤ m
N : ℕ
hN : m ≤ N
⊢ ((p N) fun x => y) = 0
state_after: no goals
Theorem: Polynomial.nextCoeff_of_natDegree_pos
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: rw [nextCoeff, if_neg]
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p : R[X]
hp : 0 < p.natDegree
⊢ p.nextCoeff = p.coeff (p.natDegree - 1)
state_after: case hnc
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p : R[X]
hp : 0 < p.natDegree
⊢ ¬p.natDegree = 0

tactic: contrapose! hp
state_before: case hnc
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p : R[X]
hp : 0 < p.natDegree
⊢ ¬p.natDegree = 0
state_after: case hnc
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p : R[X]
hp : p.natDegree = 0
⊢ p.natDegree ≤ 0

tactic: simpa
state_before: case hnc
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p : R[X]
hp : p.natDegree = 0
⊢ p.natDegree ≤ 0
state_after: no goals
Theorem: map_dualTensorHom
File: Mathlib/LinearAlgebra/Contraction.lean

tactic: ext m n
state_before: ι : Type w
R : Type u
M : Type v₁
N : Type v₂
P : Type v₃
Q : Type v₄
inst✝¹⁰ : CommSemiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : AddCommMonoid N
inst✝⁷ : AddCommMonoid P
inst✝⁶ : AddCommMonoid Q
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : Module R P
inst✝² : Module R Q
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
b : Basis ι R M
f : Dual R M
p : P
g : Dual R N
q : Q
⊢ TensorProduct.map ((dualTensorHom R M P) (f ⊗ₜ[R] p)) ((dualTensorHom R N Q) (g ⊗ₜ[R] q)) =
    (dualTensorHom R (M ⊗[R] N) (P ⊗[R] Q)) ((dualDistrib R M N) (f ⊗ₜ[R] g) ⊗ₜ[R] p ⊗ₜ[R] q)
state_after: case H.h.h
ι : Type w
R : Type u
M : Type v₁
N : Type v₂
P : Type v₃
Q : Type v₄
inst✝¹⁰ : CommSemiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : AddCommMonoid N
inst✝⁷ : AddCommMonoid P
inst✝⁶ : AddCommMonoid Q
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : Module R P
inst✝² : Module R Q
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
b : Basis ι R M
f : Dual R M
p : P
g : Dual R N
q : Q
m : M
n : N
⊢ (((TensorProduct.mk R M N).compr₂
          (TensorProduct.map ((dualTensorHom R M P) (f ⊗ₜ[R] p)) ((dualTensorHom R N Q) (g ⊗ₜ[R] q))))
        m)
      n =
    (((TensorProduct.mk R M N).compr₂
          ((dualTensorHom R (M ⊗[R] N) (P ⊗[R] Q)) ((dualDistrib R M N) (f ⊗ₜ[R] g) ⊗ₜ[R] p ⊗ₜ[R] q)))
        m)
      n

tactic: simp only [compr₂_apply, mk_apply, map_tmul, dualTensorHom_apply, dualDistrib_apply, ←
  smul_tmul_smul]
state_before: case H.h.h
ι : Type w
R : Type u
M : Type v₁
N : Type v₂
P : Type v₃
Q : Type v₄
inst✝¹⁰ : CommSemiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : AddCommMonoid N
inst✝⁷ : AddCommMonoid P
inst✝⁶ : AddCommMonoid Q
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : Module R P
inst✝² : Module R Q
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
b : Basis ι R M
f : Dual R M
p : P
g : Dual R N
q : Q
m : M
n : N
⊢ (((TensorProduct.mk R M N).compr₂
          (TensorProduct.map ((dualTensorHom R M P) (f ⊗ₜ[R] p)) ((dualTensorHom R N Q) (g ⊗ₜ[R] q))))
        m)
      n =
    (((TensorProduct.mk R M N).compr₂
          ((dualTensorHom R (M ⊗[R] N) (P ⊗[R] Q)) ((dualDistrib R M N) (f ⊗ₜ[R] g) ⊗ₜ[R] p ⊗ₜ[R] q)))
        m)
      n
state_after: no goals
Theorem: Associates.quot_out_zero
File: Mathlib/Algebra/Associated.lean

tactic: rw [← mk_eq_zero, quot_out]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : MonoidWithZero α
⊢ Quot.out 0 = 0
state_after: no goals
Theorem: le_inv_self_iff
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: simp [← not_iff_not]
state_before: α : Type u
inst✝ : LinearOrderedCommGroup α
a b c : α
⊢ a ≤ a⁻¹ ↔ a ≤ 1
state_after: no goals
Theorem: Set.disjoint_singleton_left
File: Mathlib/Data/Set/Basic.lean

tactic: simp [Set.disjoint_iff, subset_def]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s s₁ s₂ t t₁ t₂ u : Set α
⊢ Disjoint {a} s ↔ a ∉ s
state_after: no goals
Theorem: Subgroup.pi_bot
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: simp only [mem_pi, mem_bot] at *
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁶ : Group G
inst✝⁵ : Group G'
inst✝⁴ : Group G''
A : Type u_4
inst✝³ : AddGroup A
H K : Subgroup G
k : Set G
N : Type u_5
inst✝² : Group N
P : Type u_6
inst✝¹ : Group P
η : Type u_7
f : η → Type u_8
inst✝ : (i : η) → Group (f i)
p : (i : η) → f i
hp : p ∈ pi univ fun i => ⊥
⊢ p = 1
state_after: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁶ : Group G
inst✝⁵ : Group G'
inst✝⁴ : Group G''
A : Type u_4
inst✝³ : AddGroup A
H K : Subgroup G
k : Set G
N : Type u_5
inst✝² : Group N
P : Type u_6
inst✝¹ : Group P
η : Type u_7
f : η → Type u_8
inst✝ : (i : η) → Group (f i)
p : (i : η) → f i
hp : ∀ i ∈ univ, p i = 1
⊢ p = 1

tactic: ext j
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁶ : Group G
inst✝⁵ : Group G'
inst✝⁴ : Group G''
A : Type u_4
inst✝³ : AddGroup A
H K : Subgroup G
k : Set G
N : Type u_5
inst✝² : Group N
P : Type u_6
inst✝¹ : Group P
η : Type u_7
f : η → Type u_8
inst✝ : (i : η) → Group (f i)
p : (i : η) → f i
hp : ∀ i ∈ univ, p i = 1
⊢ p = 1
state_after: case h
G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁶ : Group G
inst✝⁵ : Group G'
inst✝⁴ : Group G''
A : Type u_4
inst✝³ : AddGroup A
H K : Subgroup G
k : Set G
N : Type u_5
inst✝² : Group N
P : Type u_6
inst✝¹ : Group P
η : Type u_7
f : η → Type u_8
inst✝ : (i : η) → Group (f i)
p : (i : η) → f i
hp : ∀ i ∈ univ, p i = 1
j : η
⊢ p j = 1 j

tactic: exact hp j trivial
state_before: case h
G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁶ : Group G
inst✝⁵ : Group G'
inst✝⁴ : Group G''
A : Type u_4
inst✝³ : AddGroup A
H K : Subgroup G
k : Set G
N : Type u_5
inst✝² : Group N
P : Type u_6
inst✝¹ : Group P
η : Type u_7
f : η → Type u_8
inst✝ : (i : η) → Group (f i)
p : (i : η) → f i
hp : ∀ i ∈ univ, p i = 1
j : η
⊢ p j = 1 j
state_after: no goals
Theorem: FirstOrder.Language.Theory.SemanticallyEquivalent.trans
File: Mathlib/ModelTheory/Satisfiability.lean

tactic: have h1' := h1 M v xs
state_before: L : Language
T : L.Theory
α : Type w
n : ℕ
φ ψ θ : L.BoundedFormula α n
h1 : T.SemanticallyEquivalent φ ψ
h2 : T.SemanticallyEquivalent ψ θ
M : T.ModelType
v : α → ↑M
xs : Fin n → ↑M
⊢ (φ ⇔ θ).Realize v xs
state_after: L : Language
T : L.Theory
α : Type w
n : ℕ
φ ψ θ : L.BoundedFormula α n
h1 : T.SemanticallyEquivalent φ ψ
h2 : T.SemanticallyEquivalent ψ θ
M : T.ModelType
v : α → ↑M
xs : Fin n → ↑M
h1' : (φ ⇔ ψ).Realize v xs
⊢ (φ ⇔ θ).Realize v xs

tactic: have h2' := h2 M v xs
state_before: L : Language
T : L.Theory
α : Type w
n : ℕ
φ ψ θ : L.BoundedFormula α n
h1 : T.SemanticallyEquivalent φ ψ
h2 : T.SemanticallyEquivalent ψ θ
M : T.ModelType
v : α → ↑M
xs : Fin n → ↑M
h1' : (φ ⇔ ψ).Realize v xs
⊢ (φ ⇔ θ).Realize v xs
state_after: L : Language
T : L.Theory
α : Type w
n : ℕ
φ ψ θ : L.BoundedFormula α n
h1 : T.SemanticallyEquivalent φ ψ
h2 : T.SemanticallyEquivalent ψ θ
M : T.ModelType
v : α → ↑M
xs : Fin n → ↑M
h1' : (φ ⇔ ψ).Realize v xs
h2' : (ψ ⇔ θ).Realize v xs
⊢ (φ ⇔ θ).Realize v xs

tactic: rw [BoundedFormula.realize_iff] at *
state_before: L : Language
T : L.Theory
α : Type w
n : ℕ
φ ψ θ : L.BoundedFormula α n
h1 : T.SemanticallyEquivalent φ ψ
h2 : T.SemanticallyEquivalent ψ θ
M : T.ModelType
v : α → ↑M
xs : Fin n → ↑M
h1' : (φ ⇔ ψ).Realize v xs
h2' : (ψ ⇔ θ).Realize v xs
⊢ (φ ⇔ θ).Realize v xs
state_after: L : Language
T : L.Theory
α : Type w
n : ℕ
φ ψ θ : L.BoundedFormula α n
h1 : T.SemanticallyEquivalent φ ψ
h2 : T.SemanticallyEquivalent ψ θ
M : T.ModelType
v : α → ↑M
xs : Fin n → ↑M
h1' : φ.Realize v xs ↔ ψ.Realize v xs
h2' : ψ.Realize v xs ↔ θ.Realize v xs
⊢ φ.Realize v xs ↔ θ.Realize v xs

tactic: exact ⟨h2'.1 ∘ h1'.1, h1'.2 ∘ h2'.2⟩
state_before: L : Language
T : L.Theory
α : Type w
n : ℕ
φ ψ θ : L.BoundedFormula α n
h1 : T.SemanticallyEquivalent φ ψ
h2 : T.SemanticallyEquivalent ψ θ
M : T.ModelType
v : α → ↑M
xs : Fin n → ↑M
h1' : φ.Realize v xs ↔ ψ.Realize v xs
h2' : ψ.Realize v xs ↔ θ.Realize v xs
⊢ φ.Realize v xs ↔ θ.Realize v xs
state_after: no goals
Theorem: Num.mod_zero
File: Mathlib/Data/Num/Lemmas.lean

tactic: cases n
state_before: n : Num
⊢ n.mod 0 = n
state_after: case zero

⊢ zero.mod 0 = zero

case pos
a✝ : PosNum
⊢ (pos a✝).mod 0 = pos a✝

tactic: rfl
state_before: case zero

⊢ zero.mod 0 = zero
state_after: no goals

tactic: simp [Num.mod]
state_before: case pos
a✝ : PosNum
⊢ (pos a✝).mod 0 = pos a✝
state_after: no goals
Theorem: List.foldr_join
File: Mathlib/Data/List/Basic.lean

tactic: simp only [join, foldr_append, foldr_join f a L, foldr_cons]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
f : α → β → β
a : β
l : List α
L : List (List α)
⊢ foldr f a (l :: L).join = foldr (fun l b => foldr f b l) a (l :: L)
state_after: no goals
Theorem: Continuous.tendsto_nhdsSet_nhds
File: Mathlib/Topology/NhdsSet.lean

tactic: rw [← nhdsSet_singleton]
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
f✝ : Filter X
s t s₁ s₂ t₁ t₂ : Set X
x : X
y : Y
f : X → Y
h : Continuous f
h' : EqOn f (fun x => y) s
⊢ Tendsto f (𝓝ˢ s) (𝓝 y)
state_after: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
f✝ : Filter X
s t s₁ s₂ t₁ t₂ : Set X
x : X
y : Y
f : X → Y
h : Continuous f
h' : EqOn f (fun x => y) s
⊢ Tendsto f (𝓝ˢ s) (𝓝ˢ {y})

tactic: exact h.tendsto_nhdsSet h'
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
f✝ : Filter X
s t s₁ s₂ t₁ t₂ : Set X
x : X
y : Y
f : X → Y
h : Continuous f
h' : EqOn f (fun x => y) s
⊢ Tendsto f (𝓝ˢ s) (𝓝ˢ {y})
state_after: no goals
Theorem: AkraBazziRecurrence.one_add_smoothingFn_le_two
File: Mathlib/Computability/AkraBazzi/AkraBazzi.lean

tactic: simp only [smoothingFn, ← one_add_one_eq_two]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
x : ℝ
hx : rexp 1 ≤ x
⊢ 1 + ε x ≤ 2
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
x : ℝ
hx : rexp 1 ≤ x
⊢ 1 + 1 / log x ≤ 1 + 1

tactic: gcongr
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
x : ℝ
hx : rexp 1 ≤ x
⊢ 1 + 1 / log x ≤ 1 + 1
state_after: case bc
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
x : ℝ
hx : rexp 1 ≤ x
⊢ 1 / log x ≤ 1

tactic: have : 1 < x := by
  calc 1 = exp 0 := by simp
       _ < exp 1 := by simp
       _ ≤ x := hx
state_before: case bc
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
x : ℝ
hx : rexp 1 ≤ x
⊢ 1 / log x ≤ 1
state_after: case bc
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
x : ℝ
hx : rexp 1 ≤ x
this : 1 < x
⊢ 1 / log x ≤ 1

tactic: rw [div_le_one (log_pos this)]
state_before: case bc
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
x : ℝ
hx : rexp 1 ≤ x
this : 1 < x
⊢ 1 / log x ≤ 1
state_after: case bc
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
x : ℝ
hx : rexp 1 ≤ x
this : 1 < x
⊢ 1 ≤ log x

tactic: calc 1 = log (exp 1) := by simp
     _ ≤ log x := log_le_log (exp_pos _) hx
state_before: case bc
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
x : ℝ
hx : rexp 1 ≤ x
this : 1 < x
⊢ 1 ≤ log x
state_after: no goals

tactic: calc 1 = exp 0 := by simp
     _ < exp 1 := by simp
     _ ≤ x := hx
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
x : ℝ
hx : rexp 1 ≤ x
⊢ 1 < x
state_after: no goals

tactic: simp
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
x : ℝ
hx : rexp 1 ≤ x
⊢ 1 = rexp 0
state_after: no goals

tactic: simp
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
x : ℝ
hx : rexp 1 ≤ x
⊢ rexp 0 < rexp 1
state_after: no goals

tactic: simp
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
x : ℝ
hx : rexp 1 ≤ x
this : 1 < x
⊢ 1 = log (rexp 1)
state_after: no goals
Theorem: zero_dvd_iff
File: Mathlib/Algebra/GroupWithZero/Divisibility.lean

tactic: rw [h]
state_before: α : Type u_1
inst✝ : SemigroupWithZero α
a : α
h : a = 0
⊢ 0 ∣ a
state_after: α : Type u_1
inst✝ : SemigroupWithZero α
a : α
h : a = 0
⊢ 0 ∣ 0

tactic: exact ⟨0, by simp⟩
state_before: α : Type u_1
inst✝ : SemigroupWithZero α
a : α
h : a = 0
⊢ 0 ∣ 0
state_after: no goals

tactic: simp
state_before: α : Type u_1
inst✝ : SemigroupWithZero α
a : α
h : a = 0
⊢ 0 = 0 * 0
state_after: no goals
Theorem: Polynomial.not_isUnit_X
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: rw [← coeff_one_zero, ← hgf]
state_before: R : Type u
S : Type v
a b c d : R
n✝ m : ℕ
inst✝¹ : Semiring R
inst✝ : Nontrivial R
p q : R[X]
n : ℕ
x✝ : IsUnit X
g : R[X]
_hfg : (monomial 1) 1 * g = 1
hgf : g * (monomial 1) 1 = 1
⊢ 0 = 1
state_after: R : Type u
S : Type v
a b c d : R
n✝ m : ℕ
inst✝¹ : Semiring R
inst✝ : Nontrivial R
p q : R[X]
n : ℕ
x✝ : IsUnit X
g : R[X]
_hfg : (monomial 1) 1 * g = 1
hgf : g * (monomial 1) 1 = 1
⊢ 0 = (g * (monomial 1) 1).coeff 0

tactic: simp
state_before: R : Type u
S : Type v
a b c d : R
n✝ m : ℕ
inst✝¹ : Semiring R
inst✝ : Nontrivial R
p q : R[X]
n : ℕ
x✝ : IsUnit X
g : R[X]
_hfg : (monomial 1) 1 * g = 1
hgf : g * (monomial 1) 1 = 1
⊢ 0 = (g * (monomial 1) 1).coeff 0
state_after: no goals
Theorem: Turing.TM1to1.supportsStmt_write
File: Mathlib/Computability/TuringMachine.lean

tactic: induction' l with _ l IH <;> simp only [write, SupportsStmt, *]
state_before: Γ : Type u_1
inst✝² : Inhabited Γ
Λ : Type u_2
inst✝¹ : Inhabited Λ
σ : Type u_3
inst✝ : Inhabited σ
n : ℕ
enc : Γ → Vector Bool n
dec : Vector Bool n → Γ
S : Finset Λ'
l : List Bool
q : Stmt Bool Λ' σ
⊢ SupportsStmt S (write l q) = SupportsStmt S q
state_after: no goals
Theorem: fderiv_add_const
File: Mathlib/Analysis/Calculus/FDeriv/Add.lean

tactic: simp only [← fderivWithin_univ, fderivWithin_add_const uniqueDiffWithinAt_univ]
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
c : F
⊢ fderiv 𝕜 (fun y => f y + c) x = fderiv 𝕜 f x
state_after: no goals
Theorem: mul_pos_iff_of_pos_right
File: Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean

tactic: simpa using mul_lt_mul_right (b := 0) h
state_before: α : Type u_1
a b c d : α
inst✝³ : MulZeroClass α
inst✝² : Preorder α
inst✝¹ : MulPosStrictMono α
inst✝ : MulPosReflectLT α
h : 0 < b
⊢ 0 < a * b ↔ 0 < a
state_after: no goals
Theorem: Nat.even_add_one
File: Mathlib/Algebra/Group/Nat.lean

tactic: simp [even_add]
state_before: m n : ℕ
⊢ Even (n + 1) ↔ ¬Even n
state_after: no goals
Theorem: IsScalarTower.adjoin_range_toAlgHom
File: Mathlib/Algebra/Algebra/Subalgebra/Tower.lean

tactic: suffices Set.range (algebraMap (toAlgHom R S A).range A) = Set.range (algebraMap S A) by
  rw [this]
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring S
inst✝⁴ : CommSemiring A
inst✝³ : Algebra R S
inst✝² : Algebra S A
inst✝¹ : Algebra R A
inst✝ : IsScalarTower R S A
t : Set A
z : A
⊢ z ∈ Subsemiring.closure (Set.range ⇑(algebraMap (↥(toAlgHom R S A).range) A) ∪ t) ↔
    z ∈ Subsemiring.closure (Set.range ⇑(algebraMap S A) ∪ t)
state_after: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring S
inst✝⁴ : CommSemiring A
inst✝³ : Algebra R S
inst✝² : Algebra S A
inst✝¹ : Algebra R A
inst✝ : IsScalarTower R S A
t : Set A
z : A
⊢ Set.range ⇑(algebraMap (↥(toAlgHom R S A).range) A) = Set.range ⇑(algebraMap S A)

tactic: ext z
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring S
inst✝⁴ : CommSemiring A
inst✝³ : Algebra R S
inst✝² : Algebra S A
inst✝¹ : Algebra R A
inst✝ : IsScalarTower R S A
t : Set A
z : A
⊢ Set.range ⇑(algebraMap (↥(toAlgHom R S A).range) A) = Set.range ⇑(algebraMap S A)
state_after: case h
R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring S
inst✝⁴ : CommSemiring A
inst✝³ : Algebra R S
inst✝² : Algebra S A
inst✝¹ : Algebra R A
inst✝ : IsScalarTower R S A
t : Set A
z✝ z : A
⊢ z ∈ Set.range ⇑(algebraMap (↥(toAlgHom R S A).range) A) ↔ z ∈ Set.range ⇑(algebraMap S A)

tactic: exact ⟨fun ⟨⟨_, y, h1⟩, h2⟩ ↦ ⟨y, h2 ▸ h1⟩, fun ⟨y, hy⟩ ↦ ⟨⟨z, y, hy⟩, rfl⟩⟩
state_before: case h
R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring S
inst✝⁴ : CommSemiring A
inst✝³ : Algebra R S
inst✝² : Algebra S A
inst✝¹ : Algebra R A
inst✝ : IsScalarTower R S A
t : Set A
z✝ z : A
⊢ z ∈ Set.range ⇑(algebraMap (↥(toAlgHom R S A).range) A) ↔ z ∈ Set.range ⇑(algebraMap S A)
state_after: no goals

tactic: rw [this]
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring S
inst✝⁴ : CommSemiring A
inst✝³ : Algebra R S
inst✝² : Algebra S A
inst✝¹ : Algebra R A
inst✝ : IsScalarTower R S A
t : Set A
z : A
this : Set.range ⇑(algebraMap (↥(toAlgHom R S A).range) A) = Set.range ⇑(algebraMap S A)
⊢ z ∈ Subsemiring.closure (Set.range ⇑(algebraMap (↥(toAlgHom R S A).range) A) ∪ t) ↔
    z ∈ Subsemiring.closure (Set.range ⇑(algebraMap S A) ∪ t)
state_after: no goals
Theorem: EReal.tendsto_nhds_top_iff_real
File: Mathlib/Topology/Instances/EReal.lean

tactic: simp only [true_implies, mem_Ioi]
state_before: α✝ : Type u_1
inst✝ : TopologicalSpace α✝
α : Type u_2
m : α → EReal
f : Filter α
⊢ (∀ (i : ℝ), True → ∀ᶠ (x : α) in f, m x ∈ Ioi ↑i) ↔ ∀ (x : ℝ), ∀ᶠ (a : α) in f, ↑x < m a
state_after: no goals
Theorem: ENNReal.toNNReal_add
File: Mathlib/Data/ENNReal/Operations.lean

tactic: lift r₁ to ℝ≥0 using h₁
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
α : Type u_1
r₁ r₂ : ℝ≥0∞
h₁ : r₁ ≠ ⊤
h₂ : r₂ ≠ ⊤
⊢ (r₁ + r₂).toNNReal = r₁.toNNReal + r₂.toNNReal
state_after: case intro
a b c d : ℝ≥0∞
r p q : ℝ≥0
α : Type u_1
r₂ : ℝ≥0∞
h₂ : r₂ ≠ ⊤
r₁ : ℝ≥0
⊢ (↑r₁ + r₂).toNNReal = (↑r₁).toNNReal + r₂.toNNReal

tactic: lift r₂ to ℝ≥0 using h₂
state_before: case intro
a b c d : ℝ≥0∞
r p q : ℝ≥0
α : Type u_1
r₂ : ℝ≥0∞
h₂ : r₂ ≠ ⊤
r₁ : ℝ≥0
⊢ (↑r₁ + r₂).toNNReal = (↑r₁).toNNReal + r₂.toNNReal
state_after: case intro.intro
a b c d : ℝ≥0∞
r p q : ℝ≥0
α : Type u_1
r₁ r₂ : ℝ≥0
⊢ (↑r₁ + ↑r₂).toNNReal = (↑r₁).toNNReal + (↑r₂).toNNReal

tactic: rfl
state_before: case intro.intro
a b c d : ℝ≥0∞
r p q : ℝ≥0
α : Type u_1
r₁ r₂ : ℝ≥0
⊢ (↑r₁ + ↑r₂).toNNReal = (↑r₁).toNNReal + (↑r₂).toNNReal
state_after: no goals