1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: USize.size_le
File: .lake/packages/batteries/Batteries/Data/UInt.lean

tactic: rw [size_eq]
state_before: ⊢ size ≤ 2 ^ 64
state_after: ⊢ 2 ^ System.Platform.numBits ≤ 2 ^ 64

tactic: apply Nat.pow_le_pow_of_le_right (by decide)
state_before: ⊢ 2 ^ System.Platform.numBits ≤ 2 ^ 64
state_after: ⊢ System.Platform.numBits ≤ 64

tactic: cases System.Platform.numBits_eq <;> simp_arith [*]
state_before: ⊢ System.Platform.numBits ≤ 64
state_after: no goals

tactic: decide
state_before: ⊢ 2 > 0
state_after: no goals
Theorem: NumberField.mixedEmbedding.convexBodySumFun_add_le
File: Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean

tactic: simp_rw [convexBodySumFun, ← Finset.sum_add_distrib, ← mul_add]
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x y : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
⊢ convexBodySumFun (x + y) ≤ convexBodySumFun x + convexBodySumFun y
state_after: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x y : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
⊢ ∑ w : InfinitePlace K, ↑w.mult * (normAtPlace w) (x + y) ≤
    ∑ x_1 : InfinitePlace K, ↑x_1.mult * ((normAtPlace x_1) x + (normAtPlace x_1) y)

tactic: exact Finset.sum_le_sum
  fun _ _ ↦ mul_le_mul_of_nonneg_left (normAtPlace_add_le _ x y) (Nat.cast_pos.mpr mult_pos).le
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x y : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
⊢ ∑ w : InfinitePlace K, ↑w.mult * (normAtPlace w) (x + y) ≤
    ∑ x_1 : InfinitePlace K, ↑x_1.mult * ((normAtPlace x_1) x + (normAtPlace x_1) y)
state_after: no goals
Theorem: MeasureTheory.integrable_indicator_iff
File: Mathlib/MeasureTheory/Integral/IntegrableOn.lean

tactic: simp [IntegrableOn, Integrable, HasFiniteIntegral, nnnorm_indicator_eq_indicator_nnnorm,
  ENNReal.coe_indicator, lintegral_indicator _ hs, aestronglyMeasurable_indicator_iff hs]
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
hs : MeasurableSet s
⊢ Integrable (s.indicator f) μ ↔ IntegrableOn f s μ
state_after: no goals
Theorem: lowerSemicontinuousAt_sum
File: Mathlib/Topology/Semicontinuous.lean

tactic: simp_rw [← lowerSemicontinuousWithinAt_univ_iff] at *
state_before: α : Type u_1
inst✝⁵ : TopologicalSpace α
β : Type u_2
inst✝⁴ : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Type u_3
γ : Type u_4
inst✝³ : LinearOrderedAddCommMonoid γ
inst✝² : TopologicalSpace γ
inst✝¹ : OrderTopology γ
inst✝ : ContinuousAdd γ
f : ι → α → γ
a : Finset ι
ha : ∀ i ∈ a, LowerSemicontinuousAt (f i) x
⊢ LowerSemicontinuousAt (fun z => ∑ i ∈ a, f i z) x
state_after: α : Type u_1
inst✝⁵ : TopologicalSpace α
β : Type u_2
inst✝⁴ : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Type u_3
γ : Type u_4
inst✝³ : LinearOrderedAddCommMonoid γ
inst✝² : TopologicalSpace γ
inst✝¹ : OrderTopology γ
inst✝ : ContinuousAdd γ
f : ι → α → γ
a : Finset ι
ha : ∀ i ∈ a, LowerSemicontinuousWithinAt (f i) univ x
⊢ LowerSemicontinuousWithinAt (fun z => ∑ i ∈ a, f i z) univ x

tactic: exact lowerSemicontinuousWithinAt_sum ha
state_before: α : Type u_1
inst✝⁵ : TopologicalSpace α
β : Type u_2
inst✝⁴ : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Type u_3
γ : Type u_4
inst✝³ : LinearOrderedAddCommMonoid γ
inst✝² : TopologicalSpace γ
inst✝¹ : OrderTopology γ
inst✝ : ContinuousAdd γ
f : ι → α → γ
a : Finset ι
ha : ∀ i ∈ a, LowerSemicontinuousWithinAt (f i) univ x
⊢ LowerSemicontinuousWithinAt (fun z => ∑ i ∈ a, f i z) univ x
state_after: no goals
Theorem: Multiset.noncommFold_eq_fold
File: Mathlib/Data/Finset/NoncommProd.lean

tactic: induction s using Quotient.inductionOn
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : α → β → β
op : α → α → α
assoc : Std.Associative op
s : Multiset α
inst✝ : Std.Commutative op
a : α
⊢ noncommFold op s ⋯ a = fold op a s
state_after: case h
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : α → β → β
op : α → α → α
assoc : Std.Associative op
inst✝ : Std.Commutative op
a : α
a✝ : List α
⊢ noncommFold op ⟦a✝⟧ ⋯ a = fold op a ⟦a✝⟧

tactic: simp
state_before: case h
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : α → β → β
op : α → α → α
assoc : Std.Associative op
inst✝ : Std.Commutative op
a : α
a✝ : List α
⊢ noncommFold op ⟦a✝⟧ ⋯ a = fold op a ⟦a✝⟧
state_after: no goals
Theorem: Nat.map_ceil
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [← map_natCast f, hf.le_iff_le]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝⁵ : LinearOrderedSemiring α
inst✝⁴ : LinearOrderedSemiring β
inst✝³ : FloorSemiring α
inst✝² : FloorSemiring β
inst✝¹ : FunLike F α β
inst✝ : RingHomClass F α β
a✝ : α
b : β
f : F
hf : StrictMono ⇑f
a : α
n : ℕ
⊢ f a ≤ ↑n ↔ a ≤ ↑n
state_after: no goals
Theorem: SimpleGraph.comap_map_eq
File: Mathlib/Combinatorics/SimpleGraph/Maps.lean

tactic: ext
state_before: V : Type u_1
W : Type u_2
X : Type u_3
G✝ : SimpleGraph V
G' : SimpleGraph W
u v : V
f : V ↪ W
G : SimpleGraph V
⊢ SimpleGraph.comap (⇑f) (SimpleGraph.map f G) = G
state_after: case Adj.h.h.a
V : Type u_1
W : Type u_2
X : Type u_3
G✝ : SimpleGraph V
G' : SimpleGraph W
u v : V
f : V ↪ W
G : SimpleGraph V
x✝¹ x✝ : V
⊢ (SimpleGraph.comap (⇑f) (SimpleGraph.map f G)).Adj x✝¹ x✝ ↔ G.Adj x✝¹ x✝

tactic: simp
state_before: case Adj.h.h.a
V : Type u_1
W : Type u_2
X : Type u_3
G✝ : SimpleGraph V
G' : SimpleGraph W
u v : V
f : V ↪ W
G : SimpleGraph V
x✝¹ x✝ : V
⊢ (SimpleGraph.comap (⇑f) (SimpleGraph.map f G)).Adj x✝¹ x✝ ↔ G.Adj x✝¹ x✝
state_after: no goals
Theorem: Nat.pow_mul_mem_smoothNumbers
File: Mathlib/NumberTheory/SmoothNumbers.lean

tactic: have : NoZeroDivisors ℕ := inferInstance
state_before: p n : ℕ
hp : p ≠ 0
e : ℕ
hn : n ∈ p.smoothNumbers
⊢ p ^ e * n ∈ p.succ.smoothNumbers
state_after: p n : ℕ
hp : p ≠ 0
e : ℕ
hn : n ∈ p.smoothNumbers
this : NoZeroDivisors ℕ
⊢ p ^ e * n ∈ p.succ.smoothNumbers

tactic: have hp' := pow_ne_zero e hp
state_before: p n : ℕ
hp : p ≠ 0
e : ℕ
hn : n ∈ p.smoothNumbers
this : NoZeroDivisors ℕ
⊢ p ^ e * n ∈ p.succ.smoothNumbers
state_after: p n : ℕ
hp : p ≠ 0
e : ℕ
hn : n ∈ p.smoothNumbers
this : NoZeroDivisors ℕ
hp' : p ^ e ≠ 0
⊢ p ^ e * n ∈ p.succ.smoothNumbers

tactic: refine ⟨mul_ne_zero hp' hn.1, fun q hq ↦ ?_⟩
state_before: p n : ℕ
hp : p ≠ 0
e : ℕ
hn : n ∈ p.smoothNumbers
this : NoZeroDivisors ℕ
hp' : p ^ e ≠ 0
⊢ p ^ e * n ∈ p.succ.smoothNumbers
state_after: p n : ℕ
hp : p ≠ 0
e : ℕ
hn : n ∈ p.smoothNumbers
this : NoZeroDivisors ℕ
hp' : p ^ e ≠ 0
q : ℕ
hq : q ∈ (p ^ e * n).factors
⊢ q < p.succ

tactic: rcases (mem_factors_mul hp' hn.1).mp hq with H | H
state_before: p n : ℕ
hp : p ≠ 0
e : ℕ
hn : n ∈ p.smoothNumbers
this : NoZeroDivisors ℕ
hp' : p ^ e ≠ 0
q : ℕ
hq : q ∈ (p ^ e * n).factors
⊢ q < p.succ
state_after: case inl
p n : ℕ
hp : p ≠ 0
e : ℕ
hn : n ∈ p.smoothNumbers
this : NoZeroDivisors ℕ
hp' : p ^ e ≠ 0
q : ℕ
hq : q ∈ (p ^ e * n).factors
H : q ∈ (p ^ e).factors
⊢ q < p.succ

case inr
p n : ℕ
hp : p ≠ 0
e : ℕ
hn : n ∈ p.smoothNumbers
this : NoZeroDivisors ℕ
hp' : p ^ e ≠ 0
q : ℕ
hq : q ∈ (p ^ e * n).factors
H : q ∈ n.factors
⊢ q < p.succ

tactic: rw [mem_factors hp'] at H
state_before: case inl
p n : ℕ
hp : p ≠ 0
e : ℕ
hn : n ∈ p.smoothNumbers
this : NoZeroDivisors ℕ
hp' : p ^ e ≠ 0
q : ℕ
hq : q ∈ (p ^ e * n).factors
H : q ∈ (p ^ e).factors
⊢ q < p.succ
state_after: case inl
p n : ℕ
hp : p ≠ 0
e : ℕ
hn : n ∈ p.smoothNumbers
this : NoZeroDivisors ℕ
hp' : p ^ e ≠ 0
q : ℕ
hq : q ∈ (p ^ e * n).factors
H : Prime q ∧ q ∣ p ^ e
⊢ q < p.succ

tactic: exact lt_succ.mpr <| le_of_dvd hp.bot_lt <| H.1.dvd_of_dvd_pow H.2
state_before: case inl
p n : ℕ
hp : p ≠ 0
e : ℕ
hn : n ∈ p.smoothNumbers
this : NoZeroDivisors ℕ
hp' : p ^ e ≠ 0
q : ℕ
hq : q ∈ (p ^ e * n).factors
H : Prime q ∧ q ∣ p ^ e
⊢ q < p.succ
state_after: no goals

tactic: exact (hn.2 q H).trans <| lt_succ_self p
state_before: case inr
p n : ℕ
hp : p ≠ 0
e : ℕ
hn : n ∈ p.smoothNumbers
this : NoZeroDivisors ℕ
hp' : p ^ e ≠ 0
q : ℕ
hq : q ∈ (p ^ e * n).factors
H : q ∈ n.factors
⊢ q < p.succ
state_after: no goals
Theorem: IntermediateField.adjoin_simple_eq_bot_iff
File: Mathlib/FieldTheory/Adjoin.lean

tactic: simp
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
α : E
S : Set E
⊢ F⟮α⟯ = ⊥ ↔ α ∈ ⊥
state_after: no goals
Theorem: MeasureTheory.Measure.singularPart_add
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: refine (eq_singularPart ((measurable_rnDeriv μ₁ ν).add (measurable_rnDeriv μ₂ ν))
  ((mutuallySingular_singularPart _ _).add_left (mutuallySingular_singularPart _ _)) ?_).symm
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν✝ μ₁ μ₂ ν : Measure α
inst✝¹ : μ₁.HaveLebesgueDecomposition ν
inst✝ : μ₂.HaveLebesgueDecomposition ν
⊢ (μ₁ + μ₂).singularPart ν = μ₁.singularPart ν + μ₂.singularPart ν
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν✝ μ₁ μ₂ ν : Measure α
inst✝¹ : μ₁.HaveLebesgueDecomposition ν
inst✝ : μ₂.HaveLebesgueDecomposition ν
⊢ μ₁ + μ₂ = μ₁.singularPart ν + μ₂.singularPart ν + ν.withDensity fun a => μ₁.rnDeriv ν a + μ₂.rnDeriv ν a

tactic: erw [withDensity_add_left (measurable_rnDeriv μ₁ ν)]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν✝ μ₁ μ₂ ν : Measure α
inst✝¹ : μ₁.HaveLebesgueDecomposition ν
inst✝ : μ₂.HaveLebesgueDecomposition ν
⊢ μ₁ + μ₂ = μ₁.singularPart ν + μ₂.singularPart ν + ν.withDensity fun a => μ₁.rnDeriv ν a + μ₂.rnDeriv ν a
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν✝ μ₁ μ₂ ν : Measure α
inst✝¹ : μ₁.HaveLebesgueDecomposition ν
inst✝ : μ₂.HaveLebesgueDecomposition ν
⊢ μ₁ + μ₂ = μ₁.singularPart ν + μ₂.singularPart ν + (ν.withDensity (μ₁.rnDeriv ν) + ν.withDensity (μ₂.rnDeriv ν))

tactic: conv_rhs => rw [add_assoc, add_comm (μ₂.singularPart ν), ← add_assoc, ← add_assoc]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν✝ μ₁ μ₂ ν : Measure α
inst✝¹ : μ₁.HaveLebesgueDecomposition ν
inst✝ : μ₂.HaveLebesgueDecomposition ν
⊢ μ₁ + μ₂ = μ₁.singularPart ν + μ₂.singularPart ν + (ν.withDensity (μ₁.rnDeriv ν) + ν.withDensity (μ₂.rnDeriv ν))
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν✝ μ₁ μ₂ ν : Measure α
inst✝¹ : μ₁.HaveLebesgueDecomposition ν
inst✝ : μ₂.HaveLebesgueDecomposition ν
⊢ μ₁ + μ₂ = μ₁.singularPart ν + ν.withDensity (μ₁.rnDeriv ν) + ν.withDensity (μ₂.rnDeriv ν) + μ₂.singularPart ν

tactic: rw [← haveLebesgueDecomposition_add μ₁ ν, add_assoc, add_comm (ν.withDensity (μ₂.rnDeriv ν)),
  ← haveLebesgueDecomposition_add μ₂ ν]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν✝ μ₁ μ₂ ν : Measure α
inst✝¹ : μ₁.HaveLebesgueDecomposition ν
inst✝ : μ₂.HaveLebesgueDecomposition ν
⊢ μ₁ + μ₂ = μ₁.singularPart ν + ν.withDensity (μ₁.rnDeriv ν) + ν.withDensity (μ₂.rnDeriv ν) + μ₂.singularPart ν
state_after: no goals
Theorem: HomologicalComplex.singleObjCyclesSelfIso_inv_iCycles
File: Mathlib/Algebra/Homology/SingleHomology.lean

tactic: simp [singleObjCyclesSelfIso]
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
ι : Type u_1
inst✝ : DecidableEq ι
c : ComplexShape ι
j : ι
A : C
⊢ (singleObjCyclesSelfIso c j A).inv ≫ ((single C c j).obj A).iCycles j = (singleObjXSelf c j A).inv
state_after: no goals
Theorem: extremallyDisconnected_of_homeo
File: Mathlib/Topology/ExtremallyDisconnected.lean

tactic: rw [e.symm.inducing.closure_eq_preimage_closure_image, Homeomorph.isOpen_preimage]
state_before: X✝ : Type u
inst✝³ : TopologicalSpace X✝
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : ExtremallyDisconnected X
e : X ≃ₜ Y
U : Set Y
hU : IsOpen U
⊢ IsOpen (closure U)
state_after: X✝ : Type u
inst✝³ : TopologicalSpace X✝
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : ExtremallyDisconnected X
e : X ≃ₜ Y
U : Set Y
hU : IsOpen U
⊢ IsOpen (closure (⇑e.symm '' U))

tactic: exact ExtremallyDisconnected.open_closure _ (e.symm.isOpen_image.mpr hU)
state_before: X✝ : Type u
inst✝³ : TopologicalSpace X✝
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : ExtremallyDisconnected X
e : X ≃ₜ Y
U : Set Y
hU : IsOpen U
⊢ IsOpen (closure (⇑e.symm '' U))
state_after: no goals
Theorem: char_eq_expChar_iff
File: Mathlib/Algebra/CharP/ExpChar.lean

tactic: cases' hq with q hq_one hq_prime hq_hchar
state_before: R : Type u
inst✝ : Semiring R
p q : ℕ
hp : CharP R p
hq : ExpChar R q
⊢ p = q ↔ Nat.Prime p
state_after: case zero
R : Type u
inst✝ : Semiring R
p : ℕ
hp : CharP R p
q : CharZero R
⊢ p = 1 ↔ Nat.Prime p

case prime
R : Type u
inst✝ : Semiring R
p q : ℕ
hp : CharP R p
hq_prime : Nat.Prime q
hq_hchar : CharP R q
⊢ p = q ↔ Nat.Prime p

tactic: rw [(CharP.eq R hp inferInstance : p = 0)]
state_before: case zero
R : Type u
inst✝ : Semiring R
p : ℕ
hp : CharP R p
q : CharZero R
⊢ p = 1 ↔ Nat.Prime p
state_after: case zero
R : Type u
inst✝ : Semiring R
p : ℕ
hp : CharP R p
q : CharZero R
⊢ 0 = 1 ↔ Nat.Prime 0

tactic: decide
state_before: case zero
R : Type u
inst✝ : Semiring R
p : ℕ
hp : CharP R p
q : CharZero R
⊢ 0 = 1 ↔ Nat.Prime 0
state_after: no goals

tactic: exact ⟨fun hpq => hpq.symm ▸ hq_prime, fun _ => CharP.eq R hp hq_hchar⟩
state_before: case prime
R : Type u
inst✝ : Semiring R
p q : ℕ
hp : CharP R p
hq_prime : Nat.Prime q
hq_hchar : CharP R q
⊢ p = q ↔ Nat.Prime p
state_after: no goals
Theorem: Finsupp.erase_of_not_mem_support
File: Mathlib/Data/Finsupp/Defs.lean

tactic: ext b
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
f : α →₀ M
a : α
haf : a ∉ f.support
⊢ erase a f = f
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
f : α →₀ M
a : α
haf : a ∉ f.support
b : α
⊢ (erase a f) b = f b

tactic: by_cases hab : b = a
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
f : α →₀ M
a : α
haf : a ∉ f.support
b : α
⊢ (erase a f) b = f b
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
f : α →₀ M
a : α
haf : a ∉ f.support
b : α
hab : b = a
⊢ (erase a f) b = f b

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
f : α →₀ M
a : α
haf : a ∉ f.support
b : α
hab : ¬b = a
⊢ (erase a f) b = f b

tactic: rwa [hab, erase_same, eq_comm, ← not_mem_support_iff]
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
f : α →₀ M
a : α
haf : a ∉ f.support
b : α
hab : b = a
⊢ (erase a f) b = f b
state_after: no goals

tactic: rw [erase_ne hab]
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
f : α →₀ M
a : α
haf : a ∉ f.support
b : α
hab : ¬b = a
⊢ (erase a f) b = f b
state_after: no goals
Theorem: Measurable.min
File: Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean

tactic: simpa only [min_def] using hf.piecewise (measurableSet_le hf hg) hg
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : MeasurableSpace α
inst✝⁴ : OpensMeasurableSpace α
inst✝³ : MeasurableSpace δ
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
a b x : α
inst✝ : SecondCountableTopology α
f g : δ → α
hf : Measurable f
hg : Measurable g
⊢ Measurable fun a => Min.min (f a) (g a)
state_after: no goals
Theorem: MvPolynomial.totalDegree_monomial_le
File: Mathlib/Algebra/MvPolynomial/Degrees.lean

tactic: if hc : c = 0 then
  simp only [hc, map_zero, totalDegree_zero, zero_le]
else
  rw [totalDegree_monomial _ hc]
  exact le_rfl
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
s : σ →₀ ℕ
c : R
⊢ ((monomial s) c).totalDegree ≤ s.sum fun x => id
state_after: no goals

tactic: simp only [hc, map_zero, totalDegree_zero, zero_le]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
s : σ →₀ ℕ
c : R
hc : c = 0
⊢ ((monomial s) c).totalDegree ≤ s.sum fun x => id
state_after: no goals

tactic: rw [totalDegree_monomial _ hc]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
s : σ →₀ ℕ
c : R
hc : ¬c = 0
⊢ ((monomial s) c).totalDegree ≤ s.sum fun x => id
state_after: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
s : σ →₀ ℕ
c : R
hc : ¬c = 0
⊢ (s.sum fun x e => e) ≤ s.sum fun x => id

tactic: exact le_rfl
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
s : σ →₀ ℕ
c : R
hc : ¬c = 0
⊢ (s.sum fun x e => e) ≤ s.sum fun x => id
state_after: no goals
Theorem: AddCircle.liftIoc_coe_apply
File: Mathlib/Topology/Instances/AddCircle.lean

tactic: have : (equivIoc p a) x = ⟨x, hx⟩ := by
  rw [Equiv.apply_eq_iff_eq_symm_apply]
  rfl
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
f : 𝕜 → B
x : 𝕜
hx : x ∈ Ioc a (a + p)
⊢ liftIoc p a f ↑x = f x
state_after: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
f : 𝕜 → B
x : 𝕜
hx : x ∈ Ioc a (a + p)
this : (equivIoc p a) ↑x = ⟨x, hx⟩
⊢ liftIoc p a f ↑x = f x

tactic: rw [liftIoc, comp_apply, this]
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
f : 𝕜 → B
x : 𝕜
hx : x ∈ Ioc a (a + p)
this : (equivIoc p a) ↑x = ⟨x, hx⟩
⊢ liftIoc p a f ↑x = f x
state_after: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
f : 𝕜 → B
x : 𝕜
hx : x ∈ Ioc a (a + p)
this : (equivIoc p a) ↑x = ⟨x, hx⟩
⊢ (Ioc a (a + p)).restrict f ⟨x, hx⟩ = f x

tactic: rfl
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
f : 𝕜 → B
x : 𝕜
hx : x ∈ Ioc a (a + p)
this : (equivIoc p a) ↑x = ⟨x, hx⟩
⊢ (Ioc a (a + p)).restrict f ⟨x, hx⟩ = f x
state_after: no goals

tactic: rw [Equiv.apply_eq_iff_eq_symm_apply]
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
f : 𝕜 → B
x : 𝕜
hx : x ∈ Ioc a (a + p)
⊢ (equivIoc p a) ↑x = ⟨x, hx⟩
state_after: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
f : 𝕜 → B
x : 𝕜
hx : x ∈ Ioc a (a + p)
⊢ ↑x = (equivIoc p a).symm ⟨x, hx⟩

tactic: rfl
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
f : 𝕜 → B
x : 𝕜
hx : x ∈ Ioc a (a + p)
⊢ ↑x = (equivIoc p a).symm ⟨x, hx⟩
state_after: no goals
Theorem: SupPrime.le_finset_sup
File: Mathlib/Order/Irreducible.lean

tactic: induction' s using Finset.induction with i s _ ih
state_before: ι : Type u_1
α : Type u_2
inst✝¹ : SemilatticeSup α
a b c : α
inst✝ : OrderBot α
s : Finset ι
f : ι → α
ha : SupPrime a
⊢ a ≤ s.sup f ↔ ∃ i ∈ s, a ≤ f i
state_after: case empty
ι : Type u_1
α : Type u_2
inst✝¹ : SemilatticeSup α
a b c : α
inst✝ : OrderBot α
s : Finset ι
f : ι → α
ha : SupPrime a
⊢ a ≤ ∅.sup f ↔ ∃ i ∈ ∅, a ≤ f i

case insert
ι : Type u_1
α : Type u_2
inst✝¹ : SemilatticeSup α
a b c : α
inst✝ : OrderBot α
s✝ : Finset ι
f : ι → α
ha : SupPrime a
i : ι
s : Finset ι
a✝ : i ∉ s
ih : a ≤ s.sup f ↔ ∃ i ∈ s, a ≤ f i
⊢ a ≤ (insert i s).sup f ↔ ∃ i_1 ∈ insert i s, a ≤ f i_1

tactic: simp [ha.ne_bot]
state_before: case empty
ι : Type u_1
α : Type u_2
inst✝¹ : SemilatticeSup α
a b c : α
inst✝ : OrderBot α
s : Finset ι
f : ι → α
ha : SupPrime a
⊢ a ≤ ∅.sup f ↔ ∃ i ∈ ∅, a ≤ f i
state_after: no goals

tactic: simp only [exists_prop, exists_mem_insert, sup_insert, ha.le_sup, ih]
state_before: case insert
ι : Type u_1
α : Type u_2
inst✝¹ : SemilatticeSup α
a b c : α
inst✝ : OrderBot α
s✝ : Finset ι
f : ι → α
ha : SupPrime a
i : ι
s : Finset ι
a✝ : i ∉ s
ih : a ≤ s.sup f ↔ ∃ i ∈ s, a ≤ f i
⊢ a ≤ (insert i s).sup f ↔ ∃ i_1 ∈ insert i s, a ≤ f i_1
state_after: no goals
Theorem: CoxeterSystem.exists_rightDescent_of_ne_one
File: Mathlib/GroupTheory/Coxeter/Length.lean

tactic: simp only [← isLeftDescent_inv_iff]
state_before: B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
hw : w ≠ 1
⊢ ∃ i, cs.IsRightDescent w i
state_after: B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
hw : w ≠ 1
⊢ ∃ i, cs.IsLeftDescent w⁻¹ i

tactic: apply exists_leftDescent_of_ne_one
state_before: B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
hw : w ≠ 1
⊢ ∃ i, cs.IsLeftDescent w⁻¹ i
state_after: case hw
B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
hw : w ≠ 1
⊢ w⁻¹ ≠ 1

tactic: simpa
state_before: case hw
B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
hw : w ≠ 1
⊢ w⁻¹ ≠ 1
state_after: no goals