1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Pi.nnnorm_single
File: Mathlib/Analysis/Normed/Group/Constructions.lean

tactic: have H : ∀ b, ‖single i y b‖₊ = single (f := fun _ ↦ ℝ≥0) i ‖y‖₊ b := by
  intro b
  refine Pi.apply_single (fun i (x : π i) ↦ ‖x‖₊) ?_ i y b
  simp
state_before: ι : Type u_1
E : Type u_2
F : Type u_3
π : ι → Type u_4
inst✝² : Fintype ι
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → NormedAddCommGroup (π i)
i : ι
y : π i
⊢ ‖single i y‖₊ = ‖y‖₊
state_after: ι : Type u_1
E : Type u_2
F : Type u_3
π : ι → Type u_4
inst✝² : Fintype ι
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → NormedAddCommGroup (π i)
i : ι
y : π i
H : ∀ (b : ι), ‖single i y b‖₊ = single i ‖y‖₊ b
⊢ ‖single i y‖₊ = ‖y‖₊

tactic: simp [Pi.nnnorm_def, H, Pi.single_apply, Finset.sup_ite, Finset.filter_eq']
state_before: ι : Type u_1
E : Type u_2
F : Type u_3
π : ι → Type u_4
inst✝² : Fintype ι
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → NormedAddCommGroup (π i)
i : ι
y : π i
H : ∀ (b : ι), ‖single i y b‖₊ = single i ‖y‖₊ b
⊢ ‖single i y‖₊ = ‖y‖₊
state_after: no goals

tactic: intro b
state_before: ι : Type u_1
E : Type u_2
F : Type u_3
π : ι → Type u_4
inst✝² : Fintype ι
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → NormedAddCommGroup (π i)
i : ι
y : π i
⊢ ∀ (b : ι), ‖single i y b‖₊ = single i ‖y‖₊ b
state_after: ι : Type u_1
E : Type u_2
F : Type u_3
π : ι → Type u_4
inst✝² : Fintype ι
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → NormedAddCommGroup (π i)
i : ι
y : π i
b : ι
⊢ ‖single i y b‖₊ = single i ‖y‖₊ b

tactic: refine Pi.apply_single (fun i (x : π i) ↦ ‖x‖₊) ?_ i y b
state_before: ι : Type u_1
E : Type u_2
F : Type u_3
π : ι → Type u_4
inst✝² : Fintype ι
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → NormedAddCommGroup (π i)
i : ι
y : π i
b : ι
⊢ ‖single i y b‖₊ = single i ‖y‖₊ b
state_after: ι : Type u_1
E : Type u_2
F : Type u_3
π : ι → Type u_4
inst✝² : Fintype ι
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → NormedAddCommGroup (π i)
i : ι
y : π i
b : ι
⊢ ∀ (i : ι), (fun i x => ‖x‖₊) i 0 = 0

tactic: simp
state_before: ι : Type u_1
E : Type u_2
F : Type u_3
π : ι → Type u_4
inst✝² : Fintype ι
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → NormedAddCommGroup (π i)
i : ι
y : π i
b : ι
⊢ ∀ (i : ι), (fun i x => ‖x‖₊) i 0 = 0
state_after: no goals
Theorem: nhdsWithin_Ioi_neBot'
File: Mathlib/Topology/Order/DenselyOrdered.lean

tactic: rwa [closure_Ioi' H₁]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
H₁ : (Ioi a).Nonempty
H₂ : a ≤ b
⊢ b ∈ closure (Ioi a)
state_after: no goals
Theorem: UniformOnFun.comap_eq
File: Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean

tactic: simp_rw [UniformOnFun.uniformSpace, UniformSpace.comap_iInf, UniformFun.comap_eq, ←
  UniformSpace.comap_comap]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
𝔖 : Set (Set α)
f : γ → β
⊢ uniformSpace α γ 𝔖 = UniformSpace.comap (fun x => f ∘ x) (uniformSpace α β 𝔖)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
𝔖 : Set (Set α)
f : γ → β
⊢ ⨅ s ∈ 𝔖,
      UniformSpace.comap ((fun x => f ∘ x) ∘ ⇑UniformFun.ofFun ∘ s.restrict ∘ ⇑(toFun 𝔖))
        (UniformFun.uniformSpace (↑s) β) =
    ⨅ i ∈ 𝔖,
      UniformSpace.comap ((⇑UniformFun.ofFun ∘ i.restrict ∘ ⇑(toFun 𝔖)) ∘ fun x => f ∘ x)
        (UniformFun.uniformSpace (↑i) β)

tactic: rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
𝔖 : Set (Set α)
f : γ → β
⊢ ⨅ s ∈ 𝔖,
      UniformSpace.comap ((fun x => f ∘ x) ∘ ⇑UniformFun.ofFun ∘ s.restrict ∘ ⇑(toFun 𝔖))
        (UniformFun.uniformSpace (↑s) β) =
    ⨅ i ∈ 𝔖,
      UniformSpace.comap ((⇑UniformFun.ofFun ∘ i.restrict ∘ ⇑(toFun 𝔖)) ∘ fun x => f ∘ x)
        (UniformFun.uniformSpace (↑i) β)
state_after: no goals
Theorem: Matroid.not_indep_iff
File: Mathlib/Data/Matroid/Basic.lean

tactic: rw [Dep, and_iff_left hX]
state_before: α : Type u_1
M : Matroid α
X : Set α
hX : autoParam (X ⊆ M.E) _auto✝
⊢ ¬M.Indep X ↔ M.Dep X
state_after: no goals
Theorem: Monoid.pow_eq_mod_exponent
File: Mathlib/GroupTheory/Exponent.lean

tactic: rw [Nat.mod_add_div]
state_before: G : Type u
inst✝ : Monoid G
n : ℕ
g : G
⊢ g ^ n = g ^ (n % exponent G + exponent G * (n / exponent G))
state_after: no goals

tactic: simp [pow_add, pow_mul, pow_exponent_eq_one]
state_before: G : Type u
inst✝ : Monoid G
n : ℕ
g : G
⊢ g ^ (n % exponent G + exponent G * (n / exponent G)) = g ^ (n % exponent G)
state_after: no goals
Theorem: Module.isTorsionBySet_iff_torsionBySet_eq_top
File: Mathlib/Algebra/Module/Torsion.lean

tactic: rw [← mem_torsionBySet_iff, h]
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a : R
h : torsionBySet R M s = ⊤
x : M
⊢ ∀ ⦃a : ↑s⦄, ↑a • x = 0
state_after: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a : R
h : torsionBySet R M s = ⊤
x : M
⊢ x ∈ ⊤

tactic: trivial
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a : R
h : torsionBySet R M s = ⊤
x : M
⊢ x ∈ ⊤
state_after: no goals
Theorem: PowerSeries.constantCoeff_invUnitsSub
File: Mathlib/RingTheory/PowerSeries/WellKnown.lean

tactic: rw [← coeff_zero_eq_constantCoeff_apply, coeff_invUnitsSub, zero_add, pow_one]
state_before: R : Type u_1
S : Type u_2
inst✝¹ : Ring R
inst✝ : Ring S
u : Rˣ
⊢ (constantCoeff R) (invUnitsSub u) = 1 /ₚ u
state_after: no goals
Theorem: Int.lcm_zero_left
File: Mathlib/Data/Int/GCD.lean

tactic: rw [Int.lcm]
state_before: i : ℤ
⊢ lcm 0 i = 0
state_after: i : ℤ
⊢ (natAbs 0).lcm i.natAbs = 0

tactic: apply Nat.lcm_zero_left
state_before: i : ℤ
⊢ (natAbs 0).lcm i.natAbs = 0
state_after: no goals
Theorem: Ordnode.insert'.valid
File: Mathlib/Data/Ordmap/Ordset.lean

tactic: rw [insert'_eq_insertWith]
state_before: α : Type u_1
inst✝² : Preorder α
inst✝¹ : IsTotal α fun x x_1 => x ≤ x_1
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
x : α
t : Ordnode α
h : t.Valid
⊢ (insert' x t).Valid
state_after: α : Type u_1
inst✝² : Preorder α
inst✝¹ : IsTotal α fun x x_1 => x ≤ x_1
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
x : α
t : Ordnode α
h : t.Valid
⊢ (insertWith id x t).Valid

tactic: exact insertWith.valid _ _ (fun _ => id) h
state_before: α : Type u_1
inst✝² : Preorder α
inst✝¹ : IsTotal α fun x x_1 => x ≤ x_1
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
x : α
t : Ordnode α
h : t.Valid
⊢ (insertWith id x t).Valid
state_after: no goals
Theorem: Polynomial.mkDerivationEquiv_apply
File: Mathlib/Algebra/Polynomial/Derivation.lean

tactic: rfl
state_before: R : Type u_1
A : Type u_2
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid A
inst✝² : Module R A
inst✝¹ : Module R[X] A
inst✝ : IsScalarTower R R[X] A
a : A
⊢ (mkDerivationEquiv R) a = (mkDerivation R) a
state_after: no goals
Theorem: Nat.le_minFac'
File: Mathlib/Data/Nat/Prime.lean

tactic: rintro rfl
state_before: n✝ m n : ℕ
h : n = 1 ∨ m ≤ n.minFac
p : ℕ
pp : 1 < p
d : p ∣ n
⊢ n = 1 → m ≤ p
state_after: n m p : ℕ
pp : 1 < p
h : 1 = 1 ∨ m ≤ minFac 1
d : p ∣ 1
⊢ m ≤ p

tactic: cases not_le_of_lt pp (le_of_dvd (by decide) d)
state_before: n m p : ℕ
pp : 1 < p
h : 1 = 1 ∨ m ≤ minFac 1
d : p ∣ 1
⊢ m ≤ p
state_after: no goals

tactic: decide
state_before: n m p : ℕ
pp : 1 < p
h : 1 = 1 ∨ m ≤ minFac 1
d : p ∣ 1
⊢ 0 < 1
state_after: no goals
Theorem: BoxIntegral.integralSum_biUnion_partition
File: Mathlib/Analysis/BoxIntegral/Basic.lean

tactic: refine (π.sum_biUnion_boxes _ _).trans (sum_congr rfl fun J hJ => ?_)
state_before: ι : Type u
E : Type v
F : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
I J : Box ι
π✝ : TaggedPrepartition I
f : (ι → ℝ) → E
vol : ι →ᵇᵃ[⊤] E →L[ℝ] F
π : TaggedPrepartition I
πi : (J : Box ι) → Prepartition J
hπi : ∀ J ∈ π, (πi J).IsPartition
⊢ integralSum f vol (π.biUnionPrepartition πi) = integralSum f vol π
state_after: ι : Type u
E : Type v
F : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
I J✝ : Box ι
π✝ : TaggedPrepartition I
f : (ι → ℝ) → E
vol : ι →ᵇᵃ[⊤] E →L[ℝ] F
π : TaggedPrepartition I
πi : (J : Box ι) → Prepartition J
hπi : ∀ J ∈ π, (πi J).IsPartition
J : Box ι
hJ : J ∈ π.boxes
⊢ ∑ J' ∈ (πi J).boxes, (vol J') (f ((π.biUnionPrepartition πi).tag J')) = (vol J) (f (π.tag J))

tactic: calc
  (∑ J' ∈ (πi J).boxes, vol J' (f (π.tag <| π.toPrepartition.biUnionIndex πi J'))) =
      ∑ J' ∈ (πi J).boxes, vol J' (f (π.tag J)) :=
    sum_congr rfl fun J' hJ' => by rw [Prepartition.biUnionIndex_of_mem _ hJ hJ']
  _ = vol J (f (π.tag J)) :=
    (vol.map ⟨⟨fun g : E →L[ℝ] F => g (f (π.tag J)), rfl⟩, fun _ _ => rfl⟩).sum_partition_boxes
      le_top (hπi J hJ)
state_before: ι : Type u
E : Type v
F : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
I J✝ : Box ι
π✝ : TaggedPrepartition I
f : (ι → ℝ) → E
vol : ι →ᵇᵃ[⊤] E →L[ℝ] F
π : TaggedPrepartition I
πi : (J : Box ι) → Prepartition J
hπi : ∀ J ∈ π, (πi J).IsPartition
J : Box ι
hJ : J ∈ π.boxes
⊢ ∑ J' ∈ (πi J).boxes, (vol J') (f ((π.biUnionPrepartition πi).tag J')) = (vol J) (f (π.tag J))
state_after: no goals

tactic: rw [Prepartition.biUnionIndex_of_mem _ hJ hJ']
state_before: ι : Type u
E : Type v
F : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
I J✝ : Box ι
π✝ : TaggedPrepartition I
f : (ι → ℝ) → E
vol : ι →ᵇᵃ[⊤] E →L[ℝ] F
π : TaggedPrepartition I
πi : (J : Box ι) → Prepartition J
hπi : ∀ J ∈ π, (πi J).IsPartition
J : Box ι
hJ : J ∈ π.boxes
J' : Box ι
hJ' : J' ∈ (πi J).boxes
⊢ (vol J') (f (π.tag (π.biUnionIndex πi J'))) = (vol J') (f (π.tag J))
state_after: no goals
Theorem: MeasureTheory.integrable_prod_iff
File: Mathlib/MeasureTheory/Constructions/Prod/Integral.lean

tactic: simp [Integrable, h1f, hasFiniteIntegral_prod_iff', h1f.norm.integral_prod_right',
  h1f.prod_mk_left]
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁶ : MeasurableSpace α
inst✝⁵ : MeasurableSpace α'
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace β'
inst✝² : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝¹ : NormedAddCommGroup E
inst✝ : SigmaFinite ν
f : α × β → E
h1f : AEStronglyMeasurable f (μ.prod ν)
⊢ Integrable f (μ.prod ν) ↔
    (∀ᵐ (x : α) ∂μ, Integrable (fun y => f (x, y)) ν) ∧ Integrable (fun x => ∫ (y : β), ‖f (x, y)‖ ∂ν) μ
state_after: no goals
Theorem: Derivation.map_algebraMap
File: Mathlib/RingTheory/Derivation/Basic.lean

tactic: rw [← mul_one r, RingHom.map_mul, RingHom.map_one, ← smul_def, map_smul, map_one_eq_zero,
  smul_zero]
state_before: R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
inst✝⁸ : CommSemiring R
inst✝⁷ : CommSemiring A
inst✝⁶ : CommSemiring B
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Algebra R A
inst✝³ : Algebra R B
inst✝² : Module A M
inst✝¹ : Module B M
inst✝ : Module R M
D D1 D2 : Derivation R A M
r : R
a b : A
⊢ D ((algebraMap R A) r) = 0
state_after: no goals
Theorem: PadicInt.valuation_nonneg
File: Mathlib/NumberTheory/Padics/PadicIntegers.lean

tactic: by_cases hx : x = 0
state_before: p : ℕ
hp : Fact (Nat.Prime p)
x : ℤ_[p]
⊢ 0 ≤ x.valuation
state_after: case pos
p : ℕ
hp : Fact (Nat.Prime p)
x : ℤ_[p]
hx : x = 0
⊢ 0 ≤ x.valuation

case neg
p : ℕ
hp : Fact (Nat.Prime p)
x : ℤ_[p]
hx : ¬x = 0
⊢ 0 ≤ x.valuation

tactic: have h : (1 : ℝ) < p := mod_cast hp.1.one_lt
state_before: case neg
p : ℕ
hp : Fact (Nat.Prime p)
x : ℤ_[p]
hx : ¬x = 0
⊢ 0 ≤ x.valuation
state_after: case neg
p : ℕ
hp : Fact (Nat.Prime p)
x : ℤ_[p]
hx : ¬x = 0
h : 1 < ↑p
⊢ 0 ≤ x.valuation

tactic: rw [← neg_nonpos, ← (zpow_strictMono h).le_iff_le]
state_before: case neg
p : ℕ
hp : Fact (Nat.Prime p)
x : ℤ_[p]
hx : ¬x = 0
h : 1 < ↑p
⊢ 0 ≤ x.valuation
state_after: case neg
p : ℕ
hp : Fact (Nat.Prime p)
x : ℤ_[p]
hx : ¬x = 0
h : 1 < ↑p
⊢ ↑p ^ (-x.valuation) ≤ ↑p ^ 0

tactic: rw [← norm_eq_pow_val hx]
state_before: case neg
p : ℕ
hp : Fact (Nat.Prime p)
x : ℤ_[p]
hx : ¬x = 0
h : 1 < ↑p
⊢ ↑p ^ (-x.valuation) ≤ ↑p ^ 0
state_after: case neg
p : ℕ
hp : Fact (Nat.Prime p)
x : ℤ_[p]
hx : ¬x = 0
h : 1 < ↑p
⊢ ‖x‖ ≤ ↑p ^ 0

tactic: simpa using x.property
state_before: case neg
p : ℕ
hp : Fact (Nat.Prime p)
x : ℤ_[p]
hx : ¬x = 0
h : 1 < ↑p
⊢ ‖x‖ ≤ ↑p ^ 0
state_after: no goals

tactic: simp [hx]
state_before: case pos
p : ℕ
hp : Fact (Nat.Prime p)
x : ℤ_[p]
hx : x = 0
⊢ 0 ≤ x.valuation
state_after: no goals
Theorem: SimpleGraph.connected_iff_exists_forall_reachable
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: rw [connected_iff]
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
⊢ G.Connected ↔ ∃ v, ∀ (w : V), G.Reachable v w
state_after: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
⊢ G.Preconnected ∧ Nonempty V ↔ ∃ v, ∀ (w : V), G.Reachable v w

tactic: constructor
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
⊢ G.Preconnected ∧ Nonempty V ↔ ∃ v, ∀ (w : V), G.Reachable v w
state_after: case mp
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
⊢ G.Preconnected ∧ Nonempty V → ∃ v, ∀ (w : V), G.Reachable v w

case mpr
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
⊢ (∃ v, ∀ (w : V), G.Reachable v w) → G.Preconnected ∧ Nonempty V

tactic: rintro ⟨hp, ⟨v⟩⟩
state_before: case mp
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
⊢ G.Preconnected ∧ Nonempty V → ∃ v, ∀ (w : V), G.Reachable v w
state_after: case mp.intro.intro
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
hp : G.Preconnected
v : V
⊢ ∃ v, ∀ (w : V), G.Reachable v w

tactic: exact ⟨v, fun w => hp v w⟩
state_before: case mp.intro.intro
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
hp : G.Preconnected
v : V
⊢ ∃ v, ∀ (w : V), G.Reachable v w
state_after: no goals

tactic: rintro ⟨v, h⟩
state_before: case mpr
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
⊢ (∃ v, ∀ (w : V), G.Reachable v w) → G.Preconnected ∧ Nonempty V
state_after: case mpr.intro
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
v : V
h : ∀ (w : V), G.Reachable v w
⊢ G.Preconnected ∧ Nonempty V

tactic: exact ⟨fun u w => (h u).symm.trans (h w), ⟨v⟩⟩
state_before: case mpr.intro
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
v : V
h : ∀ (w : V), G.Reachable v w
⊢ G.Preconnected ∧ Nonempty V
state_after: no goals
Theorem: SimpleGraph.Walk.concat_ne_nil
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: cases p <;> simp [concat]
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
p : G.Walk u v
h : G.Adj v u
⊢ p.concat h ≠ nil
state_after: no goals
Theorem: HahnSeries.support_mul_subset_add_support
File: Mathlib/RingTheory/HahnSeries/Multiplication.lean

tactic: apply Set.Subset.trans (fun x hx => _) support_addAntidiagonal_subset_add
state_before: Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x y : HahnSeries Γ R
⊢ (x * y).support ⊆ x.support + y.support
state_after: Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x y : HahnSeries Γ R
⊢ x.support.IsPWO

Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x y : HahnSeries Γ R
⊢ y.support.IsPWO

Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x y : HahnSeries Γ R
⊢ ∀ x_1 ∈ (x * y).support, x_1 ∈ {a | (addAntidiagonal ?m.125944 ?m.125945 a).Nonempty}

tactic: intro x hx
state_before: Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x y : HahnSeries Γ R
⊢ ∀ x_1 ∈ (x * y).support, x_1 ∈ {a | (addAntidiagonal ⋯ ⋯ a).Nonempty}
state_after: Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x✝ y : HahnSeries Γ R
x : Γ
hx : x ∈ (x✝ * y).support
⊢ x ∈ {a | (addAntidiagonal ⋯ ⋯ a).Nonempty}

tactic: contrapose! hx
state_before: Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x✝ y : HahnSeries Γ R
x : Γ
hx : x ∈ (x✝ * y).support
⊢ x ∈ {a | (addAntidiagonal ⋯ ⋯ a).Nonempty}
state_after: Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x✝ y : HahnSeries Γ R
x : Γ
hx : x ∉ {a | (addAntidiagonal ⋯ ⋯ a).Nonempty}
⊢ x ∉ (x✝ * y).support

tactic: simp only [not_nonempty_iff_eq_empty, Ne, Set.mem_setOf_eq] at hx
state_before: Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x✝ y : HahnSeries Γ R
x : Γ
hx : x ∉ {a | (addAntidiagonal ⋯ ⋯ a).Nonempty}
⊢ x ∉ (x✝ * y).support
state_after: Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x✝ y : HahnSeries Γ R
x : Γ
hx : addAntidiagonal ⋯ ⋯ x = ∅
⊢ x ∉ (x✝ * y).support

tactic: simp [hx, mul_coeff]
state_before: Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x✝ y : HahnSeries Γ R
x : Γ
hx : addAntidiagonal ⋯ ⋯ x = ∅
⊢ x ∉ (x✝ * y).support
state_after: no goals

tactic: exact x.isPWO_support
state_before: Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x y : HahnSeries Γ R
⊢ x.support.IsPWO
state_after: no goals

tactic: exact y.isPWO_support
state_before: Γ : Type u_1
Γ' : Type u_2
R : Type u_3
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x y : HahnSeries Γ R
⊢ y.support.IsPWO
state_after: no goals
Theorem: Int.cast_neg_natCast
File: Mathlib/Data/Int/Cast/Field.lean

tactic: simp
state_before: α : Type u_1
R : Type u_2
inst✝ : DivisionRing R
n : ℕ
⊢ ↑(-↑n) = -↑n
state_after: no goals
Theorem: isLittleO_log_rpow_rpow_atTop
File: Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean

tactic: have hx₀ : 0 ≤ log x := zero_le_one.trans hx
state_before: s r : ℝ
hs : 0 < s
r' : ℝ := max r 1
hr : 0 < r'
H : 0 < s / r'
x : ℝ
hx : 1 ≤ log x
⊢ ‖log x ^ r‖ ≤ 1 * ‖log x ^ r'‖
state_after: s r : ℝ
hs : 0 < s
r' : ℝ := max r 1
hr : 0 < r'
H : 0 < s / r'
x : ℝ
hx : 1 ≤ log x
hx₀ : 0 ≤ log x
⊢ ‖log x ^ r‖ ≤ 1 * ‖log x ^ r'‖

tactic: simp [r', norm_eq_abs, abs_rpow_of_nonneg, abs_rpow_of_nonneg hx₀,
  rpow_le_rpow_of_exponent_le (hx.trans (le_abs_self _))]
state_before: s r : ℝ
hs : 0 < s
r' : ℝ := max r 1
hr : 0 < r'
H : 0 < s / r'
x : ℝ
hx : 1 ≤ log x
hx₀ : 0 ≤ log x
⊢ ‖log x ^ r‖ ≤ 1 * ‖log x ^ r'‖
state_after: no goals

tactic: simp only [← rpow_mul hx, div_mul_cancel₀ _ hr.ne']
state_before: s r : ℝ
hs : 0 < s
r' : ℝ := max r 1
hr : 0 < r'
H : 0 < s / r'
x : ℝ
hx : 0 ≤ x
⊢ (fun x => (x ^ (s / r')) ^ r') x = (fun x => x ^ s) x
state_after: no goals
Theorem: intervalIntegral.integral_indicator
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: have : {x | x ≤ a₂} ∩ Ioc a₁ a₃ = Ioc a₁ a₂ := Iic_inter_Ioc_of_le h.2
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b c d : ℝ
f g : ℝ → E
μ : Measure ℝ
a₁ a₂ a₃ : ℝ
h : a₂ ∈ Icc a₁ a₃
⊢ ∫ (x : ℝ) in a₁..a₃, {x | x ≤ a₂}.indicator f x ∂μ = ∫ (x : ℝ) in a₁..a₂, f x ∂μ
state_after: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b c d : ℝ
f g : ℝ → E
μ : Measure ℝ
a₁ a₂ a₃ : ℝ
h : a₂ ∈ Icc a₁ a₃
this : {x | x ≤ a₂} ∩ Ioc a₁ a₃ = Ioc a₁ a₂
⊢ ∫ (x : ℝ) in a₁..a₃, {x | x ≤ a₂}.indicator f x ∂μ = ∫ (x : ℝ) in a₁..a₂, f x ∂μ

tactic: rw [integral_of_le h.1, integral_of_le (h.1.trans h.2), integral_indicator,
  Measure.restrict_restrict, this]
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b c d : ℝ
f g : ℝ → E
μ : Measure ℝ
a₁ a₂ a₃ : ℝ
h : a₂ ∈ Icc a₁ a₃
this : {x | x ≤ a₂} ∩ Ioc a₁ a₃ = Ioc a₁ a₂
⊢ ∫ (x : ℝ) in a₁..a₃, {x | x ≤ a₂}.indicator f x ∂μ = ∫ (x : ℝ) in a₁..a₂, f x ∂μ
state_after: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b c d : ℝ
f g : ℝ → E
μ : Measure ℝ
a₁ a₂ a₃ : ℝ
h : a₂ ∈ Icc a₁ a₃
this : {x | x ≤ a₂} ∩ Ioc a₁ a₃ = Ioc a₁ a₂
⊢ MeasurableSet {x | x ≤ a₂}

ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b c d : ℝ
f g : ℝ → E
μ : Measure ℝ
a₁ a₂ a₃ : ℝ
h : a₂ ∈ Icc a₁ a₃
this : {x | x ≤ a₂} ∩ Ioc a₁ a₃ = Ioc a₁ a₂
⊢ MeasurableSet {x | x ≤ a₂}

tactic: all_goals apply measurableSet_Iic
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b c d : ℝ
f g : ℝ → E
μ : Measure ℝ
a₁ a₂ a₃ : ℝ
h : a₂ ∈ Icc a₁ a₃
this : {x | x ≤ a₂} ∩ Ioc a₁ a₃ = Ioc a₁ a₂
⊢ MeasurableSet {x | x ≤ a₂}
state_after: no goals

tactic: exact measurableSet_Iic
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b c d : ℝ
f g : ℝ → E
μ : Measure ℝ
a₁ a₂ a₃ : ℝ
h : a₂ ∈ Icc a₁ a₃
this : {x | x ≤ a₂} ∩ Ioc a₁ a₃ = Ioc a₁ a₂
⊢ MeasurableSet {x | x ≤ a₂}
state_after: no goals

tactic: apply measurableSet_Iic
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b c d : ℝ
f g : ℝ → E
μ : Measure ℝ
a₁ a₂ a₃ : ℝ
h : a₂ ∈ Icc a₁ a₃
this : {x | x ≤ a₂} ∩ Ioc a₁ a₃ = Ioc a₁ a₂
⊢ MeasurableSet {x | x ≤ a₂}
state_after: no goals
Theorem: Nat.bitwise_zero_right
File: Mathlib/Data/Nat/Bitwise.lean

tactic: unfold bitwise
state_before: f : Bool → Bool → Bool
n : ℕ
⊢ bitwise f n 0 = if f true false = true then n else 0
state_after: f : Bool → Bool → Bool
n : ℕ
⊢ (if n = 0 then if f false true = true then 0 else 0
    else
      if 0 = 0 then if f true false = true then n else 0
      else
        let n' := n / 2;
        let m' := 0 / 2;
        let b₁ := n % 2 = 1;
        let b₂ := 0 % 2 = 1;
        let r := bitwise f n' m';
        if f (decide b₁) (decide b₂) = true then r + r + 1 else r + r) =
    if f true false = true then n else 0

tactic: simp only [ite_self, decide_False, Nat.zero_div, ite_true, ite_eq_right_iff]
state_before: f : Bool → Bool → Bool
n : ℕ
⊢ (if n = 0 then if f false true = true then 0 else 0
    else
      if 0 = 0 then if f true false = true then n else 0
      else
        let n' := n / 2;
        let m' := 0 / 2;
        let b₁ := n % 2 = 1;
        let b₂ := 0 % 2 = 1;
        let r := bitwise f n' m';
        if f (decide b₁) (decide b₂) = true then r + r + 1 else r + r) =
    if f true false = true then n else 0
state_after: f : Bool → Bool → Bool
n : ℕ
⊢ n = 0 → 0 = if f true false = true then n else 0

tactic: rintro ⟨⟩
state_before: f : Bool → Bool → Bool
n : ℕ
⊢ n = 0 → 0 = if f true false = true then n else 0
state_after: case refl
f : Bool → Bool → Bool
⊢ 0 = if f true false = true then 0 else 0

tactic: split_ifs <;> rfl
state_before: case refl
f : Bool → Bool → Bool
⊢ 0 = if f true false = true then 0 else 0
state_after: no goals