Skip to content

Commit 18226f6

Browse files
committed
feature(Analysis/Convex/Basic): Convexity and the algebra map (#29248)
Let `R` and `A` be ordered rings, `A` an `R`-algebra and `R`, `A`, `M` a scalar tower. We provide sufficient conditions for an `R`-convex subset of `M` to be `A`-convex and for an `A`-convex subset of `M` to be `R`-convex. These are used to show that, when `K` is `RCLike` and `ℝ` `K` `E` is a scalar tower, a set is `K`-convex if and only if it is `ℝ`-convex. Used in #29258
1 parent 27e8b12 commit 18226f6

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

Mathlib/Analysis/Convex/Basic.lean

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -595,3 +595,25 @@ protected theorem starConvex (K : Submodule 𝕜 E) : StarConvex 𝕜 (0 : E) K
595595
K.convex K.zero_mem
596596

597597
end Submodule
598+
599+
section CommSemiring
600+
601+
variable {R : Type*} [CommSemiring R]
602+
variable (A : Type*) [Semiring A] [Algebra R A]
603+
variable {M : Type*} [AddCommMonoid M] [Module A M] [Module R M] [IsScalarTower R A M]
604+
variable [PartialOrder R] [PartialOrder A]
605+
606+
lemma convex_of_nonneg_surjective_algebraMap [FaithfulSMul R A] {s : Set M}
607+
(halg : Set.Ici 0 ⊆ algebraMap R A '' Set.Ici 0) (hs : Convex R s) :
608+
Convex A s := by
609+
simp only [Convex, StarConvex] at hs ⊢
610+
intro u hu v hv a b ha hb hab
611+
obtain ⟨c, hc1, hc2⟩ := halg ha
612+
obtain ⟨d, hd1, hd2⟩ := halg hb
613+
convert hs hu hv hc1 hd1 _ using 2
614+
· rw [← hc2, algebraMap_smul]
615+
· rw [← hd2, algebraMap_smul]
616+
rw [← hc2, ← hd2, ← algebraMap.coe_add] at hab
617+
exact (FaithfulSMul.algebraMap_eq_one_iff R A).mp hab
618+
619+
end CommSemiring

Mathlib/Analysis/RCLike/Lemmas.lean

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ open scoped Finset
1313

1414
variable {K E : Type*} [RCLike K]
1515

16+
open ComplexOrder RCLike in
17+
lemma convex_RCLike_iff_convex_real [AddCommMonoid E] [Module K E] [Module ℝ E]
18+
[IsScalarTower ℝ K E] {s : Set E} : Convex K s ↔ Convex ℝ s :=
19+
⟨Convex.lift ℝ,
20+
fun hs => convex_of_nonneg_surjective_algebraMap _ (fun _ => nonneg_iff_exists_ofReal.mp) hs⟩
21+
1622
namespace Polynomial
1723

1824
theorem ofReal_eval (p : ℝ[X]) (x : ℝ) : (↑(p.eval x) : K) = aeval (↑x) p :=

0 commit comments

Comments
 (0)