1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.integrableOn_Ioi_deriv_of_nonneg'
File: Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean

tactic: refine integrableOn_Ioi_deriv_of_nonneg ?_ (fun x hx => hderiv x hx.out.le) g'pos hg
state_before: E : Type u_1
f f' : ℝ → E
g g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Ici a, HasDerivAt g (g' x) x
g'pos : ∀ x ∈ Ioi a, 0 ≤ g' x
hg : Tendsto g atTop (𝓝 l)
⊢ IntegrableOn g' (Ioi a) volume
state_after: E : Type u_1
f f' : ℝ → E
g g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Ici a, HasDerivAt g (g' x) x
g'pos : ∀ x ∈ Ioi a, 0 ≤ g' x
hg : Tendsto g atTop (𝓝 l)
⊢ ContinuousWithinAt g (Ici a) a

tactic: exact (hderiv a left_mem_Ici).continuousAt.continuousWithinAt
state_before: E : Type u_1
f f' : ℝ → E
g g' : ℝ → ℝ
a b l : ℝ
m : E
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
hderiv : ∀ x ∈ Ici a, HasDerivAt g (g' x) x
g'pos : ∀ x ∈ Ioi a, 0 ≤ g' x
hg : Tendsto g atTop (𝓝 l)
⊢ ContinuousWithinAt g (Ici a) a
state_after: no goals
Theorem: Multiset.mem_sup_map_support_iff
File: Mathlib/Data/Finsupp/BigOperators.lean

tactic: simpa only [Multiset.quot_mk_to_coe'', Multiset.map_coe, Multiset.sup_coe, List.foldr_map]
using List.mem_foldr_sup_support_iff
state_before: ι : Type u_1
M : Type u_2
inst✝¹ : DecidableEq ι
inst✝ : Zero M
s : Multiset (ι →₀ M)
x : ι
x✝ : List (ι →₀ M)
⊢ x ∈ (map Finsupp.support (Quot.mk Setoid.r x✝)).sup ↔ ∃ f ∈ Quot.mk Setoid.r x✝, x ∈ f.support
state_after: no goals
Theorem: infClosure_univ
File: Mathlib/Order/SupClosed.lean

tactic: simp
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SemilatticeInf α
inst✝ : SemilatticeInf β
s t : Set α
a b : α
⊢ infClosure Set.univ = Set.univ
state_after: no goals
Theorem: EReal.div_div
File: Mathlib/Data/Real/EReal.lean

tactic: change (a * b⁻¹) * c⁻¹ = a * (b * c)⁻¹
state_before: a b c : EReal
⊢ a / b / c = a / (b * c)
state_after: a b c : EReal
⊢ a * b⁻¹ * c⁻¹ = a * (b * c)⁻¹

tactic: rw [mul_assoc a b⁻¹, mul_inv]
state_before: a b c : EReal
⊢ a * b⁻¹ * c⁻¹ = a * (b * c)⁻¹
state_after: no goals
Theorem: Metric.hausdorffDist_triangle'
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: rw [hausdorffEdist_comm] at fin
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
fin : hausdorffEdist t u ≠ ⊤
⊢ hausdorffDist s u ≤ hausdorffDist s t + hausdorffDist t u
state_after: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
fin : hausdorffEdist u t ≠ ⊤
⊢ hausdorffDist s u ≤ hausdorffDist s t + hausdorffDist t u

tactic: have I : hausdorffDist u s ≤ hausdorffDist u t + hausdorffDist t s :=
  hausdorffDist_triangle fin
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
fin : hausdorffEdist u t ≠ ⊤
⊢ hausdorffDist s u ≤ hausdorffDist s t + hausdorffDist t u
state_after: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
fin : hausdorffEdist u t ≠ ⊤
I : hausdorffDist u s ≤ hausdorffDist u t + hausdorffDist t s
⊢ hausdorffDist s u ≤ hausdorffDist s t + hausdorffDist t u

tactic: simpa [add_comm, hausdorffDist_comm] using I
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
fin : hausdorffEdist u t ≠ ⊤
I : hausdorffDist u s ≤ hausdorffDist u t + hausdorffDist t s
⊢ hausdorffDist s u ≤ hausdorffDist s t + hausdorffDist t u
state_after: no goals
Theorem: Sum.lex_inl_inl
File: .lake/packages/batteries/Batteries/Data/Sum/Basic.lean

tactic: cases h
state_before: α✝ : Type u_1
r : α✝ → α✝ → Prop
β✝ : Type u_2
s : β✝ → β✝ → Prop
a₁ a₂ : α✝
h : Lex r s (inl a₁) (inl a₂)
⊢ r a₁ a₂
state_after: case inl
α✝ : Type u_1
r : α✝ → α✝ → Prop
β✝ : Type u_2
s : β✝ → β✝ → Prop
a₁ a₂ : α✝
h✝ : r a₁ a₂
⊢ r a₁ a₂

tactic: assumption
state_before: case inl
α✝ : Type u_1
r : α✝ → α✝ → Prop
β✝ : Type u_2
s : β✝ → β✝ → Prop
a₁ a₂ : α✝
h✝ : r a₁ a₂
⊢ r a₁ a₂
state_after: no goals
Theorem: CategoryTheory.NonPreadditiveAbelian.add_neg_self
File: Mathlib/CategoryTheory/Abelian/NonPreadditive.lean

tactic: rw [add_neg, sub_self]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : NonPreadditiveAbelian C
X Y : C
a : X ⟶ Y
⊢ a + -a = 0
state_after: no goals
Theorem: Real.sin_neg
File: Mathlib/Data/Complex/Exponential.lean

tactic: simp [sin, exp_neg, (neg_div _ _).symm, add_mul]
state_before: x y : ℝ
⊢ sin (-x) = -sin x
state_after: no goals
Theorem: Measurable.setLIntegral_kernel_prod_left
File: Mathlib/Probability/Kernel/MeasurableIntegral.lean

tactic: simp_rw [← lintegral_restrict κ hs]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
η : ↥(kernel (α × β) γ)
a : α
inst✝¹ : IsSFiniteKernel κ
inst✝ : IsSFiniteKernel η
f : β → α → ℝ≥0∞
hf : Measurable (uncurry f)
s : Set β
hs : MeasurableSet s
⊢ Measurable fun b => ∫⁻ (a : β) in s, f a b ∂κ b
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
η : ↥(kernel (α × β) γ)
a : α
inst✝¹ : IsSFiniteKernel κ
inst✝ : IsSFiniteKernel η
f : β → α → ℝ≥0∞
hf : Measurable (uncurry f)
s : Set β
hs : MeasurableSet s
⊢ Measurable fun b => ∫⁻ (a : β), f a b ∂(kernel.restrict κ hs) b

tactic: exact hf.lintegral_kernel_prod_left
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
η : ↥(kernel (α × β) γ)
a : α
inst✝¹ : IsSFiniteKernel κ
inst✝ : IsSFiniteKernel η
f : β → α → ℝ≥0∞
hf : Measurable (uncurry f)
s : Set β
hs : MeasurableSet s
⊢ Measurable fun b => ∫⁻ (a : β), f a b ∂(kernel.restrict κ hs) b
state_after: no goals
Theorem: Finset.mulDysonETransform.subset
File: Mathlib/Combinatorics/Additive/ETransform.lean

tactic: refine union_mul_inter_subset_union.trans (union_subset Subset.rfl ?_)
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ (mulDysonETransform e x).1 * (mulDysonETransform e x).2 ⊆ x.1 * x.2
state_after: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ e • x.2 * e⁻¹ • x.1 ⊆ x.1 * x.2

tactic: rw [mul_smul_comm, smul_mul_assoc, inv_smul_smul, mul_comm]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ e • x.2 * e⁻¹ • x.1 ⊆ x.1 * x.2
state_after: no goals
Theorem: DFinsupp.neLocus_comm
File: Mathlib/Data/DFinsupp/NeLocus.lean

tactic: simp_rw [neLocus, Finset.union_comm, ne_comm]
state_before: α : Type u_1
N : α → Type u_2
inst✝² : DecidableEq α
inst✝¹ : (a : α) → DecidableEq (N a)
inst✝ : (a : α) → Zero (N a)
f g : Π₀ (a : α), N a
⊢ f.neLocus g = g.neLocus f
state_after: no goals
Theorem: Filter.tendsto_pi
File: Mathlib/Order/Filter/Pi.lean

tactic: simp only [pi, tendsto_iInf, tendsto_comap_iff]
state_before: ι : Type u_1
α : ι → Type u_2
f f₁ f₂ : (i : ι) → Filter (α i)
s : (i : ι) → Set (α i)
p : (i : ι) → α i → Prop
β : Type u_3
m : β → (i : ι) → α i
l : Filter β
⊢ Tendsto m l (pi f) ↔ ∀ (i : ι), Tendsto (fun x => m x i) l (f i)
state_after: ι : Type u_1
α : ι → Type u_2
f f₁ f₂ : (i : ι) → Filter (α i)
s : (i : ι) → Set (α i)
p : (i : ι) → α i → Prop
β : Type u_3
m : β → (i : ι) → α i
l : Filter β
⊢ (∀ (i : ι), Tendsto (eval i ∘ m) l (f i)) ↔ ∀ (i : ι), Tendsto (fun x => m x i) l (f i)

tactic: rfl
state_before: ι : Type u_1
α : ι → Type u_2
f f₁ f₂ : (i : ι) → Filter (α i)
s : (i : ι) → Set (α i)
p : (i : ι) → α i → Prop
β : Type u_3
m : β → (i : ι) → α i
l : Filter β
⊢ (∀ (i : ι), Tendsto (eval i ∘ m) l (f i)) ↔ ∀ (i : ι), Tendsto (fun x => m x i) l (f i)
state_after: no goals
Theorem: expChar_of_injective_ringHom
File: Mathlib/Algebra/CharP/ExpChar.lean

tactic: cases' hR with _ _ hprime _
state_before: R✝ : Type u
R : Type u_1
A : Type u_2
inst✝¹ : Semiring R
inst✝ : Semiring A
f : R →+* A
h : Function.Injective ⇑f
q : ℕ
hR : ExpChar R q
⊢ ExpChar A q
state_after: case zero
R✝ : Type u
R : Type u_1
A : Type u_2
inst✝² : Semiring R
inst✝¹ : Semiring A
f : R →+* A
h : Function.Injective ⇑f
inst✝ : CharZero R
⊢ ExpChar A 1

case prime
R✝ : Type u
R : Type u_1
A : Type u_2
inst✝¹ : Semiring R
inst✝ : Semiring A
f : R →+* A
h : Function.Injective ⇑f
q : ℕ
hprime : Nat.Prime q
hchar✝ : CharP R q
⊢ ExpChar A q

tactic: haveI := charP_of_injective_ringHom h q
state_before: case prime
R✝ : Type u
R : Type u_1
A : Type u_2
inst✝¹ : Semiring R
inst✝ : Semiring A
f : R →+* A
h : Function.Injective ⇑f
q : ℕ
hprime : Nat.Prime q
hchar✝ : CharP R q
⊢ ExpChar A q
state_after: case prime
R✝ : Type u
R : Type u_1
A : Type u_2
inst✝¹ : Semiring R
inst✝ : Semiring A
f : R →+* A
h : Function.Injective ⇑f
q : ℕ
hprime : Nat.Prime q
hchar✝ : CharP R q
this : CharP A q
⊢ ExpChar A q

tactic: exact .prime hprime
state_before: case prime
R✝ : Type u
R : Type u_1
A : Type u_2
inst✝¹ : Semiring R
inst✝ : Semiring A
f : R →+* A
h : Function.Injective ⇑f
q : ℕ
hprime : Nat.Prime q
hchar✝ : CharP R q
this : CharP A q
⊢ ExpChar A q
state_after: no goals

tactic: haveI := charZero_of_injective_ringHom h
state_before: case zero
R✝ : Type u
R : Type u_1
A : Type u_2
inst✝² : Semiring R
inst✝¹ : Semiring A
f : R →+* A
h : Function.Injective ⇑f
inst✝ : CharZero R
⊢ ExpChar A 1
state_after: case zero
R✝ : Type u
R : Type u_1
A : Type u_2
inst✝² : Semiring R
inst✝¹ : Semiring A
f : R →+* A
h : Function.Injective ⇑f
inst✝ : CharZero R
this : CharZero A
⊢ ExpChar A 1

tactic: exact .zero
state_before: case zero
R✝ : Type u
R : Type u_1
A : Type u_2
inst✝² : Semiring R
inst✝¹ : Semiring A
f : R →+* A
h : Function.Injective ⇑f
inst✝ : CharZero R
this : CharZero A
⊢ ExpChar A 1
state_after: no goals
Theorem: ProbabilityTheory.setIntegral_compProd_univ_right
File: Mathlib/Probability/Kernel/IntegralCompProd.lean

tactic: simp_rw [setIntegral_compProd hs MeasurableSet.univ hf, Measure.restrict_univ]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
E : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁶ : NormedAddCommGroup E
κ : ↥(kernel α β)
inst✝⁵ : IsSFiniteKernel κ
η : ↥(kernel (α × β) γ)
inst✝⁴ : IsSFiniteKernel η
a : α
inst✝³ : NormedSpace ℝ E
E' : Type u_5
inst✝² : NormedAddCommGroup E'
inst✝¹ : CompleteSpace E'
inst✝ : NormedSpace ℝ E'
f : β × γ → E
s : Set β
hs : MeasurableSet s
hf : IntegrableOn f (s ×ˢ univ) ((κ ⊗ₖ η) a)
⊢ ∫ (z : β × γ) in s ×ˢ univ, f z ∂(κ ⊗ₖ η) a = ∫ (x : β) in s, ∫ (y : γ), f (x, y) ∂η (a, x) ∂κ a
state_after: no goals
Theorem: CategoryTheory.Endofunctor.Adjunction.Coalgebra.homEquiv_naturality_str_symm
File: Mathlib/CategoryTheory/Endofunctor/Algebra.lean

tactic: rw [← Adjunction.homEquiv_naturality_left_symm, ← Adjunction.homEquiv_naturality_right_symm,
  f.h]
state_before: C : Type u
inst✝ : Category.{v, u} C
F G : C ⥤ C
adj : F ⊣ G
V₁ V₂ : Coalgebra G
f : V₁ ⟶ V₂
⊢ F.map f.f ≫ (adj.homEquiv V₂.V V₂.V).symm V₂.str = (adj.homEquiv V₁.V V₁.V).symm V₁.str ≫ f.f
state_after: no goals
Theorem: IntermediateField.eq_adjoin_of_eq_algebra_adjoin
File: Mathlib/FieldTheory/Adjoin.lean

tactic: apply toSubalgebra_injective
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
K : IntermediateField F E
h : K.toSubalgebra = Algebra.adjoin F S
⊢ K = adjoin F S
state_after: case a
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
K : IntermediateField F E
h : K.toSubalgebra = Algebra.adjoin F S
⊢ K.toSubalgebra = (adjoin F S).toSubalgebra

tactic: rw [h]
state_before: case a
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
K : IntermediateField F E
h : K.toSubalgebra = Algebra.adjoin F S
⊢ K.toSubalgebra = (adjoin F S).toSubalgebra
state_after: case a
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
K : IntermediateField F E
h : K.toSubalgebra = Algebra.adjoin F S
⊢ Algebra.adjoin F S = (adjoin F S).toSubalgebra

tactic: refine (adjoin_eq_algebra_adjoin F _ ?_).symm
state_before: case a
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
K : IntermediateField F E
h : K.toSubalgebra = Algebra.adjoin F S
⊢ Algebra.adjoin F S = (adjoin F S).toSubalgebra
state_after: case a
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
K : IntermediateField F E
h : K.toSubalgebra = Algebra.adjoin F S
⊢ ∀ x ∈ Algebra.adjoin F S, x⁻¹ ∈ Algebra.adjoin F S

tactic: intro x
state_before: case a
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
K : IntermediateField F E
h : K.toSubalgebra = Algebra.adjoin F S
⊢ ∀ x ∈ Algebra.adjoin F S, x⁻¹ ∈ Algebra.adjoin F S
state_after: case a
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
K : IntermediateField F E
h : K.toSubalgebra = Algebra.adjoin F S
x : E
⊢ x ∈ Algebra.adjoin F S → x⁻¹ ∈ Algebra.adjoin F S

tactic: convert K.inv_mem (x := x) <;> rw [← h] <;> rfl
state_before: case a
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
K : IntermediateField F E
h : K.toSubalgebra = Algebra.adjoin F S
x : E
⊢ x ∈ Algebra.adjoin F S → x⁻¹ ∈ Algebra.adjoin F S
state_after: no goals
Theorem: Cardinal.countable_iff_lt_aleph_one
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

tactic: rw [← succ_aleph0, lt_succ_iff, le_aleph0_iff_set_countable]
state_before: α : Type u_1
s : Set α
⊢ s.Countable ↔ #↑s < aleph 1
state_after: no goals
Theorem: Cardinal.continuum_power_aleph0
File: Mathlib/SetTheory/Cardinal/Continuum.lean

tactic: rw [← two_power_aleph0, ← power_mul, mul_eq_left le_rfl le_rfl aleph0_ne_zero]
state_before: ⊢ 𝔠 ^ ℵ₀ = 𝔠
state_after: no goals
Theorem: Fin.predAbove_succ_of_le
File: Mathlib/Data/Fin/Basic.lean

tactic: rw [predAbove_of_succ_le _ _ (succ_le_succ_iff.mpr h), pred_succ]
state_before: n m : ℕ
p i : Fin n
h : p ≤ i
⊢ p.predAbove i.succ = i
state_after: no goals
Theorem: Turing.ToPartrec.stepNormal_then
File: Mathlib/Computability/TMToPartrec.lean

tactic: induction c generalizing k v with simp only [Cont.then, stepNormal, *]
| cons c c' ih _ => rw [← ih, Cont.then]
| comp c c' _ ih' => rw [← ih', Cont.then]
| case => cases v.headI <;> simp only [Nat.rec_zero]
| fix c ih => rw [← ih, Cont.then]
| _ => simp only [Cfg.then]
state_before: c : Code
k k' : Cont
v : List ℕ
⊢ stepNormal c (k.then k') v = (stepNormal c k v).then k'
state_after: no goals

tactic: rw [← ih, Cont.then]
state_before: case cons
k' : Cont
c c' : Code
ih : ∀ (k : Cont) (v : List ℕ), stepNormal c (k.then k') v = (stepNormal c k v).then k'
a_ih✝ : ∀ (k : Cont) (v : List ℕ), stepNormal c' (k.then k') v = (stepNormal c' k v).then k'
k : Cont
v : List ℕ
⊢ stepNormal c (Cont.cons₁ c' v (k.then k')) v = (stepNormal c (Cont.cons₁ c' v k) v).then k'
state_after: no goals

tactic: rw [← ih', Cont.then]
state_before: case comp
k' : Cont
c c' : Code
a_ih✝ : ∀ (k : Cont) (v : List ℕ), stepNormal c (k.then k') v = (stepNormal c k v).then k'
ih' : ∀ (k : Cont) (v : List ℕ), stepNormal c' (k.then k') v = (stepNormal c' k v).then k'
k : Cont
v : List ℕ
⊢ stepNormal c' (Cont.comp c (k.then k')) v = (stepNormal c' (Cont.comp c k) v).then k'
state_after: no goals

tactic: cases v.headI <;> simp only [Nat.rec_zero]
state_before: case case
k' : Cont
a✝¹ a✝ : Code
a_ih✝¹ : ∀ (k : Cont) (v : List ℕ), stepNormal a✝¹ (k.then k') v = (stepNormal a✝¹ k v).then k'
a_ih✝ : ∀ (k : Cont) (v : List ℕ), stepNormal a✝ (k.then k') v = (stepNormal a✝ k v).then k'
k : Cont
v : List ℕ
⊢ Nat.rec ((stepNormal a✝¹ k v.tail).then k') (fun y x => (stepNormal a✝ k (y :: v.tail)).then k') v.headI =
    (Nat.rec (stepNormal a✝¹ k v.tail) (fun y x => stepNormal a✝ k (y :: v.tail)) v.headI).then k'
state_after: no goals

tactic: rw [← ih, Cont.then]
state_before: case fix
k' : Cont
c : Code
ih : ∀ (k : Cont) (v : List ℕ), stepNormal c (k.then k') v = (stepNormal c k v).then k'
k : Cont
v : List ℕ
⊢ stepNormal c (Cont.fix c (k.then k')) v = (stepNormal c (Cont.fix c k) v).then k'
state_after: no goals

tactic: simp only [Cfg.then]
state_before: case tail
k' k : Cont
v : List ℕ
⊢ Cfg.ret (k.then k') v.tail = (Cfg.ret k v.tail).then k'
state_after: no goals
Theorem: GeneralizedContinuedFraction.numerators_stable_of_terminated
File: Mathlib/Algebra/ContinuedFractions/TerminatedStable.lean

tactic: simp only [num_eq_conts_a, continuants_stable_of_terminated n_le_m terminated_at_n]
state_before: K : Type u_1
g : GeneralizedContinuedFraction K
n m : ℕ
inst✝ : DivisionRing K
n_le_m : n ≤ m
terminated_at_n : g.TerminatedAt n
⊢ g.numerators m = g.numerators n
state_after: no goals
Theorem: ContMDiffAt.prod
File: Mathlib/Geometry/Manifold/Algebra/Monoid.lean

tactic: simp only [← contMDiffWithinAt_univ] at *
state_before: ι : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
H : Type u_3
inst✝¹¹ : TopologicalSpace H
E : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
G : Type u_5
inst✝⁸ : CommMonoid G
inst✝⁷ : TopologicalSpace G
inst✝⁶ : ChartedSpace H G
inst✝⁵ : SmoothMul I G
E' : Type u_6
inst✝⁴ : NormedAddCommGroup E'
inst✝³ : NormedSpace 𝕜 E'
H' : Type u_7
inst✝² : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_8
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H' M
s : Set M
x x₀ : M
t : Finset ι
f : ι → M → G
n : ℕ∞
p : ι → Prop
h : ∀ i ∈ t, ContMDiffAt I' I n (f i) x₀
⊢ ContMDiffAt I' I n (fun x => ∏ i ∈ t, f i x) x₀
state_after: ι : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
H : Type u_3
inst✝¹¹ : TopologicalSpace H
E : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
G : Type u_5
inst✝⁸ : CommMonoid G
inst✝⁷ : TopologicalSpace G
inst✝⁶ : ChartedSpace H G
inst✝⁵ : SmoothMul I G
E' : Type u_6
inst✝⁴ : NormedAddCommGroup E'
inst✝³ : NormedSpace 𝕜 E'
H' : Type u_7
inst✝² : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_8
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H' M
s : Set M
x x₀ : M
t : Finset ι
f : ι → M → G
n : ℕ∞
p : ι → Prop
h : ∀ i ∈ t, ContMDiffWithinAt I' I n (f i) Set.univ x₀
⊢ ContMDiffWithinAt I' I n (fun x => ∏ i ∈ t, f i x) Set.univ x₀

tactic: exact ContMDiffWithinAt.prod h
state_before: ι : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
H : Type u_3
inst✝¹¹ : TopologicalSpace H
E : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
G : Type u_5
inst✝⁸ : CommMonoid G
inst✝⁷ : TopologicalSpace G
inst✝⁶ : ChartedSpace H G
inst✝⁵ : SmoothMul I G
E' : Type u_6
inst✝⁴ : NormedAddCommGroup E'
inst✝³ : NormedSpace 𝕜 E'
H' : Type u_7
inst✝² : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_8
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H' M
s : Set M
x x₀ : M
t : Finset ι
f : ι → M → G
n : ℕ∞
p : ι → Prop
h : ∀ i ∈ t, ContMDiffWithinAt I' I n (f i) Set.univ x₀
⊢ ContMDiffWithinAt I' I n (fun x => ∏ i ∈ t, f i x) Set.univ x₀
state_after: no goals
Theorem: Polynomial.splits_of_degree_le_one
File: Mathlib/Algebra/Polynomial/Splits.lean

tactic: push_neg at hif
state_before: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝² : CommRing K
inst✝¹ : Field L
inst✝ : Field F
i : K →+* L
f : K[X]
hf : f.degree ≤ 1
hif : ¬(map i f).degree ≤ 0
⊢ Splits i f
state_after: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝² : CommRing K
inst✝¹ : Field L
inst✝ : Field F
i : K →+* L
f : K[X]
hf : f.degree ≤ 1
hif : 0 < (map i f).degree
⊢ Splits i f

tactic: rw [← Order.succ_le_iff, ← WithBot.coe_zero, WithBot.succ_coe, Nat.succ_eq_succ] at hif
state_before: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝² : CommRing K
inst✝¹ : Field L
inst✝ : Field F
i : K →+* L
f : K[X]
hf : f.degree ≤ 1
hif : 0 < (map i f).degree
⊢ Splits i f
state_after: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝² : CommRing K
inst✝¹ : Field L
inst✝ : Field F
i : K →+* L
f : K[X]
hf : f.degree ≤ 1
hif : ↑(Nat.succ 0) ≤ (map i f).degree
⊢ Splits i f

tactic: exact splits_of_map_degree_eq_one i (le_antisymm ((degree_map_le i _).trans hf) hif)
state_before: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝² : CommRing K
inst✝¹ : Field L
inst✝ : Field F
i : K →+* L
f : K[X]
hf : f.degree ≤ 1
hif : ↑(Nat.succ 0) ≤ (map i f).degree
⊢ Splits i f
state_after: no goals
Theorem: ULift.isClosed_iff
File: Mathlib/Topology/Constructions.lean

tactic: rw [← isOpen_compl_iff, ← isOpen_compl_iff, isOpen_iff, preimage_compl]
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝ : TopologicalSpace X
s : Set (ULift.{v, u} X)
⊢ IsClosed s ↔ IsClosed (up ⁻¹' s)
state_after: no goals
Theorem: tendsto_setIntegral_pow_smul_of_unique_maximum_of_isCompact_of_continuousOn
File: Mathlib/MeasureTheory/Integral/PeakFunction.lean

tactic: rw [← hs.isClosed.closure_eq]
state_before: α : Type u_1
E : Type u_2
ι : Type u_3
hm : MeasurableSpace α
μ : Measure α
inst✝⁷ : TopologicalSpace α
inst✝⁶ : BorelSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
g : α → E
l : Filter ι
x₀ : α
s t : Set α
φ : ι → α → ℝ
a : E
inst✝³ : CompleteSpace E
inst✝² : MetrizableSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
inst✝ : μ.IsOpenPosMeasure
hs : IsCompact s
c : α → ℝ
hc : ContinuousOn c s
h'c : ∀ y ∈ s, y ≠ x₀ → c y < c x₀
hnc : ∀ x ∈ s, 0 ≤ c x
hnc₀ : 0 < c x₀
h₀ : x₀ ∈ closure (interior s)
hmg : ContinuousOn g s
⊢ x₀ ∈ s
state_after: α : Type u_1
E : Type u_2
ι : Type u_3
hm : MeasurableSpace α
μ : Measure α
inst✝⁷ : TopologicalSpace α
inst✝⁶ : BorelSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
g : α → E
l : Filter ι
x₀ : α
s t : Set α
φ : ι → α → ℝ
a : E
inst✝³ : CompleteSpace E
inst✝² : MetrizableSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
inst✝ : μ.IsOpenPosMeasure
hs : IsCompact s
c : α → ℝ
hc : ContinuousOn c s
h'c : ∀ y ∈ s, y ≠ x₀ → c y < c x₀
hnc : ∀ x ∈ s, 0 ≤ c x
hnc₀ : 0 < c x₀
h₀ : x₀ ∈ closure (interior s)
hmg : ContinuousOn g s
⊢ x₀ ∈ closure s

tactic: exact closure_mono interior_subset h₀
state_before: α : Type u_1
E : Type u_2
ι : Type u_3
hm : MeasurableSpace α
μ : Measure α
inst✝⁷ : TopologicalSpace α
inst✝⁶ : BorelSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
g : α → E
l : Filter ι
x₀ : α
s t : Set α
φ : ι → α → ℝ
a : E
inst✝³ : CompleteSpace E
inst✝² : MetrizableSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
inst✝ : μ.IsOpenPosMeasure
hs : IsCompact s
c : α → ℝ
hc : ContinuousOn c s
h'c : ∀ y ∈ s, y ≠ x₀ → c y < c x₀
hnc : ∀ x ∈ s, 0 ≤ c x
hnc₀ : 0 < c x₀
h₀ : x₀ ∈ closure (interior s)
hmg : ContinuousOn g s
⊢ x₀ ∈ closure s
state_after: no goals
Theorem: Finset.prod_dite_of_false
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: refine prod_bij' (fun x hx => ⟨x, hx⟩) (fun x _ ↦ x) ?_ ?_ ?_ ?_ ?_ <;> aesop
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g✝ : α → β
inst✝ : CommMonoid β
p : α → Prop
x✝ : DecidablePred p
h : ∀ i ∈ s, ¬p i
f : (i : α) → p i → β
g : (i : α) → ¬p i → β
⊢ (∏ i ∈ s, if hi : p i then f i hi else g i hi) = ∏ i : { x // x ∈ s }, g ↑i ⋯
state_after: no goals
Theorem: LieModule.weightSpace_weightSpaceOf_map_incl
File: Mathlib/Algebra/Lie/Weights/Basic.lean

tactic: simpa [map_weightSpace_eq_of_injective (weightSpaceOf M (χ x) x).injective_incl]
  using weightSpace_le_weightSpaceOf M x χ
state_before: K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝¹¹ : CommRing R
inst✝¹⁰ : LieRing L
inst✝⁹ : LieAlgebra R L
inst✝⁸ : LieAlgebra.IsNilpotent R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
M₂ : Type u_5
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
χ✝ : L → R
f : M →ₗ⁅R,L⁆ M₂
x : L
χ : L → R
⊢ LieSubmodule.map (weightSpaceOf M (χ x) x).incl (weightSpace (↥↑(weightSpaceOf M (χ x) x)) χ) = weightSpace M χ
state_after: no goals