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

tactic: refine snorm_one_le_of_le hfint hfint' ?_
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
G : Type u_5
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
m0 : MeasurableSpace α
μ : Measure α
r : ℝ
f : α → ℝ
hfint : Integrable f μ
hfint' : 0 ≤ ∫ (x : α), f x ∂μ
hf : ∀ᵐ (ω : α) ∂μ, f ω ≤ r
⊢ snorm f 1 μ ≤ 2 * μ univ * ENNReal.ofReal r
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
G : Type u_5
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
m0 : MeasurableSpace α
μ : Measure α
r : ℝ
f : α → ℝ
hfint : Integrable f μ
hfint' : 0 ≤ ∫ (x : α), f x ∂μ
hf : ∀ᵐ (ω : α) ∂μ, f ω ≤ r
⊢ ∀ᵐ (ω : α) ∂μ, f ω ≤ ↑r.toNNReal

tactic: simp only [Real.coe_toNNReal', le_max_iff]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
G : Type u_5
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
m0 : MeasurableSpace α
μ : Measure α
r : ℝ
f : α → ℝ
hfint : Integrable f μ
hfint' : 0 ≤ ∫ (x : α), f x ∂μ
hf : ∀ᵐ (ω : α) ∂μ, f ω ≤ r
⊢ ∀ᵐ (ω : α) ∂μ, f ω ≤ ↑r.toNNReal
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
G : Type u_5
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
m0 : MeasurableSpace α
μ : Measure α
r : ℝ
f : α → ℝ
hfint : Integrable f μ
hfint' : 0 ≤ ∫ (x : α), f x ∂μ
hf : ∀ᵐ (ω : α) ∂μ, f ω ≤ r
⊢ ∀ᵐ (ω : α) ∂μ, f ω ≤ r ∨ f ω ≤ 0

tactic: filter_upwards [hf] with ω hω using Or.inl hω
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
G : Type u_5
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
m0 : MeasurableSpace α
μ : Measure α
r : ℝ
f : α → ℝ
hfint : Integrable f μ
hfint' : 0 ≤ ∫ (x : α), f x ∂μ
hf : ∀ᵐ (ω : α) ∂μ, f ω ≤ r
⊢ ∀ᵐ (ω : α) ∂μ, f ω ≤ r ∨ f ω ≤ 0
state_after: no goals
Theorem: UniformConvergenceCLM.tendsto_iff_tendstoUniformlyOn
File: Mathlib/Topology/Algebra/Module/StrongTopology.lean

tactic: rw [(embedding_coeFn σ F 𝔖).tendsto_nhds_iff, UniformOnFun.tendsto_iff_tendstoUniformlyOn]
state_before: 𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁸ : NormedField 𝕜₁
inst✝⁷ : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
F : Type u_4
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜₁ E
inst✝⁴ : TopologicalSpace E
inst✝³ : AddCommGroup F
inst✝² : Module 𝕜₂ F
ι : Type u_5
p : Filter ι
inst✝¹ : UniformSpace F
inst✝ : UniformAddGroup F
𝔖 : Set (Set E)
a : ι → UniformConvergenceCLM σ F 𝔖
a₀ : UniformConvergenceCLM σ F 𝔖
⊢ Filter.Tendsto a p (𝓝 a₀) ↔ ∀ s ∈ 𝔖, TendstoUniformlyOn (fun x x_1 => (a x) x_1) (⇑a₀) p s
state_after: 𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁸ : NormedField 𝕜₁
inst✝⁷ : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
F : Type u_4
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜₁ E
inst✝⁴ : TopologicalSpace E
inst✝³ : AddCommGroup F
inst✝² : Module 𝕜₂ F
ι : Type u_5
p : Filter ι
inst✝¹ : UniformSpace F
inst✝ : UniformAddGroup F
𝔖 : Set (Set E)
a : ι → UniformConvergenceCLM σ F 𝔖
a₀ : UniformConvergenceCLM σ F 𝔖
⊢ (∀ s ∈ 𝔖,
      TendstoUniformlyOn (⇑(UniformOnFun.toFun 𝔖) ∘ (⇑(UniformOnFun.ofFun 𝔖) ∘ DFunLike.coe) ∘ a)
        ((UniformOnFun.toFun 𝔖) ((⇑(UniformOnFun.ofFun 𝔖) ∘ DFunLike.coe) a₀)) p s) ↔
    ∀ s ∈ 𝔖, TendstoUniformlyOn (fun x x_1 => (a x) x_1) (⇑a₀) p s

tactic: rfl
state_before: 𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁸ : NormedField 𝕜₁
inst✝⁷ : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
F : Type u_4
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜₁ E
inst✝⁴ : TopologicalSpace E
inst✝³ : AddCommGroup F
inst✝² : Module 𝕜₂ F
ι : Type u_5
p : Filter ι
inst✝¹ : UniformSpace F
inst✝ : UniformAddGroup F
𝔖 : Set (Set E)
a : ι → UniformConvergenceCLM σ F 𝔖
a₀ : UniformConvergenceCLM σ F 𝔖
⊢ (∀ s ∈ 𝔖,
      TendstoUniformlyOn (⇑(UniformOnFun.toFun 𝔖) ∘ (⇑(UniformOnFun.ofFun 𝔖) ∘ DFunLike.coe) ∘ a)
        ((UniformOnFun.toFun 𝔖) ((⇑(UniformOnFun.ofFun 𝔖) ∘ DFunLike.coe) a₀)) p s) ↔
    ∀ s ∈ 𝔖, TendstoUniformlyOn (fun x x_1 => (a x) x_1) (⇑a₀) p s
state_after: no goals
Theorem: Real.log_nonpos_iff
File: Mathlib/Analysis/SpecialFunctions/Log/Basic.lean

tactic: rw [← not_lt, log_pos_iff hx, not_lt]
state_before: x y : ℝ
hx : 0 < x
⊢ log x ≤ 0 ↔ x ≤ 1
state_after: no goals
Theorem: minpoly.min
File: Mathlib/FieldTheory/Minpoly/Basic.lean

tactic: delta minpoly
state_before: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁴ : CommRing A
inst✝³ : Ring B
inst✝² : Ring B'
inst✝¹ : Algebra A B
inst✝ : Algebra A B'
x : B
p : A[X]
pmonic : p.Monic
hp : (Polynomial.aeval x) p = 0
⊢ (minpoly A x).degree ≤ p.degree
state_after: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁴ : CommRing A
inst✝³ : Ring B
inst✝² : Ring B'
inst✝¹ : Algebra A B
inst✝ : Algebra A B'
x : B
p : A[X]
pmonic : p.Monic
hp : (Polynomial.aeval x) p = 0
⊢ (if hx : IsIntegral A x then ⋯.min (fun x_1 => x_1.Monic ∧ eval₂ (algebraMap A B) x x_1 = 0) hx else 0).degree ≤
    p.degree

tactic: split_ifs with hx
state_before: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁴ : CommRing A
inst✝³ : Ring B
inst✝² : Ring B'
inst✝¹ : Algebra A B
inst✝ : Algebra A B'
x : B
p : A[X]
pmonic : p.Monic
hp : (Polynomial.aeval x) p = 0
⊢ (if hx : IsIntegral A x then ⋯.min (fun x_1 => x_1.Monic ∧ eval₂ (algebraMap A B) x x_1 = 0) hx else 0).degree ≤
    p.degree
state_after: case pos
A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁴ : CommRing A
inst✝³ : Ring B
inst✝² : Ring B'
inst✝¹ : Algebra A B
inst✝ : Algebra A B'
x : B
p : A[X]
pmonic : p.Monic
hp : (Polynomial.aeval x) p = 0
hx : IsIntegral A x
⊢ (⋯.min (fun x_1 => x_1.Monic ∧ eval₂ (algebraMap A B) x x_1 = 0) hx).degree ≤ p.degree

case neg
A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁴ : CommRing A
inst✝³ : Ring B
inst✝² : Ring B'
inst✝¹ : Algebra A B
inst✝ : Algebra A B'
x : B
p : A[X]
pmonic : p.Monic
hp : (Polynomial.aeval x) p = 0
hx : ¬IsIntegral A x
⊢ degree 0 ≤ p.degree

tactic: exact le_of_not_lt (degree_lt_wf.not_lt_min _ hx ⟨pmonic, hp⟩)
state_before: case pos
A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁴ : CommRing A
inst✝³ : Ring B
inst✝² : Ring B'
inst✝¹ : Algebra A B
inst✝ : Algebra A B'
x : B
p : A[X]
pmonic : p.Monic
hp : (Polynomial.aeval x) p = 0
hx : IsIntegral A x
⊢ (⋯.min (fun x_1 => x_1.Monic ∧ eval₂ (algebraMap A B) x x_1 = 0) hx).degree ≤ p.degree
state_after: no goals

tactic: simp only [degree_zero, bot_le]
state_before: case neg
A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁴ : CommRing A
inst✝³ : Ring B
inst✝² : Ring B'
inst✝¹ : Algebra A B
inst✝ : Algebra A B'
x : B
p : A[X]
pmonic : p.Monic
hp : (Polynomial.aeval x) p = 0
hx : ¬IsIntegral A x
⊢ degree 0 ≤ p.degree
state_after: no goals
Theorem: List.Duplicate.mem
File: Mathlib/Data/List/Duplicate.lean

tactic: induction' h with l' _ y l' _ hm
state_before: α : Type u_1
l : List α
x : α
h : x ∈+ l
⊢ x ∈ l
state_after: case cons_mem
α : Type u_1
l : List α
x : α
l' : List α
a✝ : x ∈ l'
⊢ x ∈ x :: l'

case cons_duplicate
α : Type u_1
l : List α
x y : α
l' : List α
a✝ : x ∈+ l'
hm : x ∈ l'
⊢ x ∈ y :: l'

tactic: exact mem_cons_self _ _
state_before: case cons_mem
α : Type u_1
l : List α
x : α
l' : List α
a✝ : x ∈ l'
⊢ x ∈ x :: l'
state_after: no goals

tactic: exact mem_cons_of_mem _ hm
state_before: case cons_duplicate
α : Type u_1
l : List α
x y : α
l' : List α
a✝ : x ∈+ l'
hm : x ∈ l'
⊢ x ∈ y :: l'
state_after: no goals
Theorem: AdjoinRoot.quotEquivQuotMap_symm_apply_mk
File: Mathlib/RingTheory/AdjoinRoot.lean

tactic: rw [AdjoinRoot.quotEquivQuotMap_symm_apply,
  AdjoinRoot.quotAdjoinRootEquivQuotPolynomialQuot_symm_mk_mk]
state_before: R : Type u
S : Type v
K : Type w
inst✝ : CommRing R
I✝ : Ideal R
f✝ f g : R[X]
I : Ideal R
⊢ (quotEquivQuotMap f I).symm
      ((Ideal.Quotient.mk (span {Polynomial.map (Ideal.Quotient.mk I) f})) (Polynomial.map (Ideal.Quotient.mk I) g)) =
    (Ideal.Quotient.mk (Ideal.map (of f) I)) ((mk f) g)
state_after: no goals
Theorem: MeasureTheory.FiniteMeasure.mass_zero_iff
File: Mathlib/MeasureTheory/Measure/FiniteMeasure.lean

tactic: refine ⟨fun μ_mass => ?_, fun hμ => by simp only [hμ, zero_mass]⟩
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
⊢ μ.mass = 0 ↔ μ = 0
state_after: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
μ_mass : μ.mass = 0
⊢ μ = 0

tactic: apply toMeasure_injective
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
μ_mass : μ.mass = 0
⊢ μ = 0
state_after: case a
Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
μ_mass : μ.mass = 0
⊢ ↑μ = ↑0

tactic: apply Measure.measure_univ_eq_zero.mp
state_before: case a
Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
μ_mass : μ.mass = 0
⊢ ↑μ = ↑0
state_after: case a
Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
μ_mass : μ.mass = 0
⊢ ↑μ univ = 0

tactic: rwa [← ennreal_mass, ENNReal.coe_eq_zero]
state_before: case a
Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
μ_mass : μ.mass = 0
⊢ ↑μ univ = 0
state_after: no goals

tactic: simp only [hμ, zero_mass]
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
hμ : μ = 0
⊢ μ.mass = 0
state_after: no goals
Theorem: ContinuousLinearEquiv.coe_ofBijective
File: Mathlib/Analysis/NormedSpace/Banach.lean

tactic: ext
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁹ : RingHomInvPair σ σ'
inst✝⁸ : RingHomInvPair σ' σ
inst✝⁷ : RingHomIsometric σ
inst✝⁶ : RingHomIsometric σ'
E : Type u_3
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_4
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜' F
f✝ : E →SL[σ] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
f : E →SL[σ] F
hinj : LinearMap.ker f = ⊥
hsurj : LinearMap.range f = ⊤
⊢ ↑(ofBijective f hinj hsurj) = f
state_after: case h
𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁹ : RingHomInvPair σ σ'
inst✝⁸ : RingHomInvPair σ' σ
inst✝⁷ : RingHomIsometric σ
inst✝⁶ : RingHomIsometric σ'
E : Type u_3
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_4
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜' F
f✝ : E →SL[σ] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
f : E →SL[σ] F
hinj : LinearMap.ker f = ⊥
hsurj : LinearMap.range f = ⊤
x✝ : E
⊢ ↑(ofBijective f hinj hsurj) x✝ = f x✝

tactic: rfl
state_before: case h
𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁹ : RingHomInvPair σ σ'
inst✝⁸ : RingHomInvPair σ' σ
inst✝⁷ : RingHomIsometric σ
inst✝⁶ : RingHomIsometric σ'
E : Type u_3
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_4
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜' F
f✝ : E →SL[σ] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
f : E →SL[σ] F
hinj : LinearMap.ker f = ⊥
hsurj : LinearMap.range f = ⊤
x✝ : E
⊢ ↑(ofBijective f hinj hsurj) x✝ = f x✝
state_after: no goals
Theorem: Multiset.disjoint_map_map
File: Mathlib/Data/Multiset/Basic.lean

tactic: simp [Disjoint, @eq_comm _ (f _) (g _)]
state_before: α : Type u_1
β : Type v
γ : Type u_2
f : α → γ
g : β → γ
s : Multiset α
t : Multiset β
⊢ (map f s).Disjoint (map g t) ↔ ∀ a ∈ s, ∀ b ∈ t, f a ≠ g b
state_after: no goals
Theorem: List.maximum_cons
File: Mathlib/Data/List/MinMax.lean

tactic: simp [@max_eq_left (WithBot α) _ _ _ bot_le]
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
l✝ : List α
a✝ m a : α
l : List α
⊢ [a].maximum = max ↑a [].maximum
state_after: no goals

tactic: rw [← cons_append, maximum_concat, ih, maximum_concat, max_assoc]
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
l✝ : List α
a✝ m a : α
l tl : List α
hd : α
ih : (a :: tl).maximum = max (↑a) tl.maximum
⊢ (a :: (tl ++ [hd])).maximum = max (↑a) (tl ++ [hd]).maximum
state_after: no goals
Theorem: add_le_mul_two_add
File: Mathlib/Algebra/Order/Ring/Defs.lean

tactic: rw [mul_add, mul_two, add_assoc]
state_before: α : Type u
β : Type u_1
inst✝ : OrderedSemiring α
a b c d : α
a2 : 2 ≤ a
b0 : 0 ≤ b
⊢ a + (a + a * b) ≤ a * (2 + b)
state_after: no goals
Theorem: BoundedContinuousFunction.norm_normComp
File: Mathlib/Topology/ContinuousFunction/Bounded.lean

tactic: simp only [norm_eq, coe_normComp, norm_norm, Function.comp]
state_before: F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : SeminormedAddCommGroup β
f g : α →ᵇ β
x : α
C : ℝ
⊢ ‖f.normComp‖ = ‖f‖
state_after: no goals
Theorem: Cardinal.ofENat_eq_lift
File: Mathlib/SetTheory/Cardinal/ENat.lean

tactic: rw [← lift_ofENat.{u, v}, lift_inj]
state_before: x : Cardinal.{v}
m : ℕ∞
⊢ ↑m = lift.{u, v} x ↔ ↑m = x
state_after: no goals
Theorem: Sum.liftRel_swap_iff
File: .lake/packages/batteries/Batteries/Data/Sum/Lemmas.lean

tactic: rw [← swap_swap x, ← swap_swap y]
state_before: β✝¹ : Type u_1
β✝ : Type u_2
s : β✝¹ → β✝ → Prop
α✝¹ : Type u_3
α✝ : Type u_4
r : α✝¹ → α✝ → Prop
x : α✝¹ ⊕ β✝¹
y : α✝ ⊕ β✝
h : LiftRel s r x.swap y.swap
⊢ LiftRel r s x y
state_after: β✝¹ : Type u_1
β✝ : Type u_2
s : β✝¹ → β✝ → Prop
α✝¹ : Type u_3
α✝ : Type u_4
r : α✝¹ → α✝ → Prop
x : α✝¹ ⊕ β✝¹
y : α✝ ⊕ β✝
h : LiftRel s r x.swap y.swap
⊢ LiftRel r s x.swap.swap y.swap.swap

tactic: exact h.swap
state_before: β✝¹ : Type u_1
β✝ : Type u_2
s : β✝¹ → β✝ → Prop
α✝¹ : Type u_3
α✝ : Type u_4
r : α✝¹ → α✝ → Prop
x : α✝¹ ⊕ β✝¹
y : α✝ ⊕ β✝
h : LiftRel s r x.swap y.swap
⊢ LiftRel r s x.swap.swap y.swap.swap
state_after: no goals
Theorem: multipliable_mabs_iff
File: Mathlib/Topology/Algebra/InfiniteSum/Order.lean

tactic: simp only [h1, h2]
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝³ : LinearOrderedCommGroup α
inst✝² : UniformSpace α
inst✝¹ : UniformGroup α
inst✝ : CompleteSpace α
f : ι → α
s : Set ι := {x | 1 ≤ f x}
h1 : ∀ (x : ↑s), mabs (f ↑x) = f ↑x
h2 : ∀ (x : ↑sᶜ), mabs (f ↑x) = (f ↑x)⁻¹
⊢ ((Multipliable fun x => mabs (f ↑x)) ∧ Multipliable fun x => mabs (f ↑x)) ↔
    (Multipliable fun x => f ↑x) ∧ Multipliable fun x => (f ↑x)⁻¹
state_after: no goals

tactic: simp only [multipliable_inv_iff, multipliable_subtype_and_compl]
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝³ : LinearOrderedCommGroup α
inst✝² : UniformSpace α
inst✝¹ : UniformGroup α
inst✝ : CompleteSpace α
f : ι → α
s : Set ι := {x | 1 ≤ f x}
h1 : ∀ (x : ↑s), mabs (f ↑x) = f ↑x
h2 : ∀ (x : ↑sᶜ), mabs (f ↑x) = (f ↑x)⁻¹
⊢ ((Multipliable fun x => f ↑x) ∧ Multipliable fun x => (f ↑x)⁻¹) ↔ Multipliable f
state_after: no goals
Theorem: CategoryTheory.Limits.MulticospanIndex.sndPiMap_π
File: Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean

tactic: simp [sndPiMap]
state_before: C : Type u
inst✝² : Category.{v, u} C
I : MulticospanIndex C
inst✝¹ : HasProduct I.left
inst✝ : HasProduct I.right
b : I.R
⊢ I.sndPiMap ≫ Pi.π I.right b = Pi.π I.left (I.sndTo b) ≫ I.snd b
state_after: no goals
Theorem: MvQPF.Cofix.dest_corec
File: Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean

tactic: conv =>
  lhs
  rw [Cofix.dest, Cofix.corec];
state_before: n : ℕ
F : TypeVec.{u} (n + 1) → Type u
q : MvQPF F
α : TypeVec.{u} n
β : Type u
g : β → F (α ::: β)
x : β
⊢ (corec g x).dest = (TypeVec.id ::: corec g) <$$> g x
state_after: n : ℕ
F : TypeVec.{u} (n + 1) → Type u
q : MvQPF F
α : TypeVec.{u} n
β : Type u
g : β → F (α ::: β)
x : β
⊢ Quot.lift (fun x => (TypeVec.id ::: Quot.mk Mcongr) <$$> MvQPF.abs (M.dest (P F) x)) ⋯ (Quot.mk Mcongr (corecF g x)) =
    (TypeVec.id ::: corec g) <$$> g x

tactic: dsimp
state_before: n : ℕ
F : TypeVec.{u} (n + 1) → Type u
q : MvQPF F
α : TypeVec.{u} n
β : Type u
g : β → F (α ::: β)
x : β
⊢ Quot.lift (fun x => (TypeVec.id ::: Quot.mk Mcongr) <$$> MvQPF.abs (M.dest (P F) x)) ⋯ (Quot.mk Mcongr (corecF g x)) =
    (TypeVec.id ::: corec g) <$$> g x
state_after: n : ℕ
F : TypeVec.{u} (n + 1) → Type u
q : MvQPF F
α : TypeVec.{u} n
β : Type u
g : β → F (α ::: β)
x : β
⊢ (TypeVec.id ::: Quot.mk Mcongr) <$$> MvQPF.abs (M.dest (P F) (corecF g x)) = (TypeVec.id ::: corec g) <$$> g x

tactic: rw [corecF_eq, abs_map, abs_repr, ← comp_map, ← appendFun_comp]
state_before: n : ℕ
F : TypeVec.{u} (n + 1) → Type u
q : MvQPF F
α : TypeVec.{u} n
β : Type u
g : β → F (α ::: β)
x : β
⊢ (TypeVec.id ::: Quot.mk Mcongr) <$$> MvQPF.abs (M.dest (P F) (corecF g x)) = (TypeVec.id ::: corec g) <$$> g x
state_after: n : ℕ
F : TypeVec.{u} (n + 1) → Type u
q : MvQPF F
α : TypeVec.{u} n
β : Type u
g : β → F (α ::: β)
x : β
⊢ (TypeVec.id ⊚ TypeVec.id ::: Quot.mk Mcongr ∘ corecF g) <$$> g x = (TypeVec.id ::: corec g) <$$> g x

tactic: rfl
state_before: n : ℕ
F : TypeVec.{u} (n + 1) → Type u
q : MvQPF F
α : TypeVec.{u} n
β : Type u
g : β → F (α ::: β)
x : β
⊢ (TypeVec.id ⊚ TypeVec.id ::: Quot.mk Mcongr ∘ corecF g) <$$> g x = (TypeVec.id ::: corec g) <$$> g x
state_after: no goals
Theorem: Real.Angle.toReal_coe_eq_self_iff_mem_Ioc
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: rw [toReal_coe_eq_self_iff, ← Set.mem_Ioc]
state_before: θ : ℝ
⊢ (↑θ).toReal = θ ↔ θ ∈ Set.Ioc (-π) π
state_after: no goals
Theorem: BoxIntegral.Box.splitLower_eq_bot
File: Mathlib/Analysis/BoxIntegral/Partition/Split.lean

tactic: rw [splitLower, mk'_eq_bot, exists_update_iff I.upper fun j y => y ≤ I.lower j]
state_before: ι : Type u_1
M : Type u_2
n : ℕ
I : Box ι
i✝ : ι
x✝ : ℝ
y : ι → ℝ
i : ι
x : ℝ
⊢ I.splitLower i x = ⊥ ↔ x ≤ I.lower i
state_after: ι : Type u_1
M : Type u_2
n : ℕ
I : Box ι
i✝ : ι
x✝ : ℝ
y : ι → ℝ
i : ι
x : ℝ
⊢ (min x (I.upper i) ≤ I.lower i ∨ ∃ x, x ≠ i ∧ I.upper x ≤ I.lower x) ↔ x ≤ I.lower i

tactic: simp [(I.lower_lt_upper _).not_le]
state_before: ι : Type u_1
M : Type u_2
n : ℕ
I : Box ι
i✝ : ι
x✝ : ℝ
y : ι → ℝ
i : ι
x : ℝ
⊢ (min x (I.upper i) ≤ I.lower i ∨ ∃ x, x ≠ i ∧ I.upper x ≤ I.lower x) ↔ x ≤ I.lower i
state_after: no goals
Theorem: Ideal.ramificationIdx_eq_zero
File: Mathlib/NumberTheory/RamificationInertia.lean

tactic: push_neg
state_before: R : Type u
inst✝¹ : CommRing R
S : Type v
inst✝ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
h : ∀ (n : ℕ), ∃ k, map f p ≤ P ^ k ∧ n < k
⊢ ¬∃ n, ∀ a ∈ {n | map f p ≤ P ^ n}, a ≤ n
state_after: R : Type u
inst✝¹ : CommRing R
S : Type v
inst✝ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
h : ∀ (n : ℕ), ∃ k, map f p ≤ P ^ k ∧ n < k
⊢ ∀ (n : ℕ), ∃ a ∈ {n | map f p ≤ P ^ n}, n < a

tactic: exact h
state_before: R : Type u
inst✝¹ : CommRing R
S : Type v
inst✝ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
h : ∀ (n : ℕ), ∃ k, map f p ≤ P ^ k ∧ n < k
⊢ ∀ (n : ℕ), ∃ a ∈ {n | map f p ≤ P ^ n}, n < a
state_after: no goals
Theorem: FreeCommRing.isSupported_int
File: Mathlib/RingTheory/FreeCommRing.lean

tactic: rw [Int.cast_add, Int.cast_one]
state_before: α : Type u
β : Type v
f : α → β
x y : FreeCommRing α
s✝ t : Set α
i✝ : ℤ
s : Set α
i : ℕ
hi : (↑↑i).IsSupported s
⊢ (↑(↑i + 1)).IsSupported s
state_after: α : Type u
β : Type v
f : α → β
x y : FreeCommRing α
s✝ t : Set α
i✝ : ℤ
s : Set α
i : ℕ
hi : (↑↑i).IsSupported s
⊢ (↑↑i + 1).IsSupported s

tactic: exact isSupported_add hi isSupported_one
state_before: α : Type u
β : Type v
f : α → β
x y : FreeCommRing α
s✝ t : Set α
i✝ : ℤ
s : Set α
i : ℕ
hi : (↑↑i).IsSupported s
⊢ (↑↑i + 1).IsSupported s
state_after: no goals

tactic: rw [Int.cast_sub, Int.cast_one]
state_before: α : Type u
β : Type v
f : α → β
x y : FreeCommRing α
s✝ t : Set α
i✝ : ℤ
s : Set α
i : ℕ
hi : (↑(-↑i)).IsSupported s
⊢ (↑(-↑i - 1)).IsSupported s
state_after: α : Type u
β : Type v
f : α → β
x y : FreeCommRing α
s✝ t : Set α
i✝ : ℤ
s : Set α
i : ℕ
hi : (↑(-↑i)).IsSupported s
⊢ (↑(-↑i) - 1).IsSupported s

tactic: exact isSupported_sub hi isSupported_one
state_before: α : Type u
β : Type v
f : α → β
x y : FreeCommRing α
s✝ t : Set α
i✝ : ℤ
s : Set α
i : ℕ
hi : (↑(-↑i)).IsSupported s
⊢ (↑(-↑i) - 1).IsSupported s
state_after: no goals
Theorem: Set.left_mem_Icc
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: simp [le_refl]
state_before: α : Type u_1
β : Type u_2
inst✝ : Preorder α
a a₁ a₂ b b₁ b₂ c x : α
⊢ a ∈ Icc a b ↔ a ≤ b
state_after: no goals
Theorem: Affine.Simplex.orthogonalProjection_circumcenter
File: Mathlib/Geometry/Euclidean/Circumcenter.lean

tactic: use s.circumradius
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
n : ℕ
s : Simplex ℝ P n
fs : Finset (Fin (n + 1))
m : ℕ
h : fs.card = m + 1
⊢ ∃ r, ∀ (i : Fin (m + 1)), dist ((s.face h).points i) s.circumcenter = r
state_after: case h
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
n : ℕ
s : Simplex ℝ P n
fs : Finset (Fin (n + 1))
m : ℕ
h : fs.card = m + 1
⊢ ∀ (i : Fin (m + 1)), dist ((s.face h).points i) s.circumcenter = s.circumradius

tactic: simp [face_points]
state_before: case h
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
n : ℕ
s : Simplex ℝ P n
fs : Finset (Fin (n + 1))
m : ℕ
h : fs.card = m + 1
⊢ ∀ (i : Fin (m + 1)), dist ((s.face h).points i) s.circumcenter = s.circumradius
state_after: no goals
Theorem: TruncatedWittVector.truncate_surjective
File: Mathlib/RingTheory/WittVector/Truncated.lean

tactic: intro x
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
m : ℕ
hm : n ≤ m
⊢ Surjective ⇑(truncate hm)
state_after: p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
m : ℕ
hm : n ≤ m
x : TruncatedWittVector p n R
⊢ ∃ a, (truncate hm) a = x

tactic: obtain ⟨x, rfl⟩ := @WittVector.truncate_surjective p _ _ R _ x
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
m : ℕ
hm : n ≤ m
x : TruncatedWittVector p n R
⊢ ∃ a, (truncate hm) a = x
state_after: case intro
p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
m : ℕ
hm : n ≤ m
x : 𝕎 R
⊢ ∃ a, (truncate hm) a = (WittVector.truncate n) x

tactic: exact ⟨WittVector.truncate _ x, truncate_wittVector_truncate _ _⟩
state_before: case intro
p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
m : ℕ
hm : n ≤ m
x : 𝕎 R
⊢ ∃ a, (truncate hm) a = (WittVector.truncate n) x
state_after: no goals