@@ -260,6 +260,10 @@ lemma pointed_iff_not_blunt (S : convex_cone 𝕜 E) : S.pointed ↔ ¬S.blunt :
260
260
lemma blunt_iff_not_pointed (S : convex_cone 𝕜 E) : S.blunt ↔ ¬S.pointed :=
261
261
by rw [pointed_iff_not_blunt, not_not]
262
262
263
+ lemma pointed.mono {S T : convex_cone 𝕜 E} (h : S ≤ T) : S.pointed → T.pointed := @h _
264
+
265
+ lemma blunt.anti {S T : convex_cone 𝕜 E} (h : T ≤ S) : S.blunt → T.blunt := (∘ @@h)
266
+
263
267
end add_comm_monoid
264
268
265
269
section add_comm_group
@@ -282,6 +286,12 @@ begin
282
286
exact h }
283
287
end
284
288
289
+ lemma flat.mono {S T : convex_cone 𝕜 E} (h : S ≤ T) : S.flat → T.flat
290
+ | ⟨x, hxS, hx, hnxS⟩ := ⟨x, h hxS, hx, h hnxS⟩
291
+
292
+ lemma salient.anti {S T : convex_cone 𝕜 E} (h : T ≤ S) : S.salient → T.salient :=
293
+ λ hS x hxT hx hnT, hS x (h hxT) hx (h hnT)
294
+
285
295
/-- A flat cone is always pointed (contains `0`). -/
286
296
lemma flat.pointed {S : convex_cone 𝕜 E} (hS : S.flat) : S.pointed :=
287
297
begin
@@ -341,26 +351,45 @@ variables (𝕜 E) [ordered_semiring 𝕜] [ordered_add_comm_group E] [module
341
351
The positive cone is the convex cone formed by the set of nonnegative elements in an ordered
342
352
module.
343
353
-/
344
- def positive_cone : convex_cone 𝕜 E :=
345
- { carrier := {x | 0 ≤ x},
346
- smul_mem' :=
347
- begin
348
- rintro c hc x (hx : _ ≤ _),
349
- rw ←smul_zero c,
350
- exact smul_le_smul_of_nonneg hx hc.le,
351
- end ,
354
+ def positive : convex_cone 𝕜 E :=
355
+ { carrier := set.Ici 0 ,
356
+ smul_mem' := λ c hc x (hx : _ ≤ _), smul_nonneg hc.le hx,
352
357
add_mem' := λ x (hx : _ ≤ _) y (hy : _ ≤ _), add_nonneg hx hy }
353
358
359
+ @[simp] lemma mem_positive {x : E} : x ∈ positive 𝕜 E ↔ 0 ≤ x := iff.rfl
360
+ @[simp] lemma coe_positive : ↑(positive 𝕜 E) = set.Ici (0 : E) := rfl
361
+
354
362
/-- The positive cone of an ordered module is always salient. -/
355
- lemma salient_positive_cone : salient (positive_cone 𝕜 E) :=
363
+ lemma salient_positive : salient (positive 𝕜 E) :=
356
364
λ x xs hx hx', lt_irrefl (0 : E)
357
365
(calc
358
366
0 < x : lt_of_le_of_ne xs hx.symm
359
367
... ≤ x + (-x) : le_add_of_nonneg_right hx'
360
368
... = 0 : add_neg_self x)
361
369
362
370
/-- The positive cone of an ordered module is always pointed. -/
363
- lemma pointed_positive_cone : pointed (positive_cone 𝕜 E) := le_refl 0
371
+ lemma pointed_positive : pointed (positive 𝕜 E) := le_refl 0
372
+
373
+ /-- The cone of strictly positive elements.
374
+
375
+ Note that this naming diverges from the mathlib convention of `pos` and `nonneg` due to "positive
376
+ cone" (`convex_cone.positive`) being established terminology for the non-negative elements. -/
377
+ def strictly_positive : convex_cone 𝕜 E :=
378
+ { carrier := set.Ioi 0 ,
379
+ smul_mem' := λ c hc x (hx : _ < _), smul_pos hc hx,
380
+ add_mem' := λ x hx y hy, add_pos hx hy }
381
+
382
+ @[simp] lemma mem_strictly_positive {x : E} : x ∈ strictly_positive 𝕜 E ↔ 0 < x := iff.rfl
383
+ @[simp] lemma coe_strictly_positive : ↑(strictly_positive 𝕜 E) = set.Ioi (0 : E) := rfl
384
+
385
+ lemma positive_le_strictly_positive : strictly_positive 𝕜 E ≤ positive 𝕜 E := λ x, le_of_lt
386
+
387
+ /-- The strictly positive cone of an ordered module is always salient. -/
388
+ lemma salient_strictly_positive : salient (strictly_positive 𝕜 E) :=
389
+ (salient_positive 𝕜 E).anti $ positive_le_strictly_positive 𝕜 E
390
+
391
+ /-- The strictly positive cone of an ordered module is always blunt. -/
392
+ lemma blunt_strictly_positive : blunt (strictly_positive 𝕜 E) := lt_irrefl 0
364
393
365
394
end positive_cone
366
395
end convex_cone
@@ -627,7 +656,7 @@ lemma pointed_inner_dual_cone : s.inner_dual_cone.pointed :=
627
656
/-- The inner dual cone of a singleton is given by the preimage of the positive cone under the
628
657
linear map `λ y, ⟪x, y⟫`. -/
629
658
lemma inner_dual_cone_singleton (x : H) :
630
- ({x} : set H).inner_dual_cone = (convex_cone.positive_cone ℝ ℝ).comap (innerₛₗ x) :=
659
+ ({x} : set H).inner_dual_cone = (convex_cone.positive ℝ ℝ).comap (innerₛₗ x) :=
631
660
convex_cone.ext $ λ i, forall_eq
632
661
633
662
lemma inner_dual_cone_union (s t : set H) :
0 commit comments