File tree Expand file tree Collapse file tree 3 files changed +29
-0
lines changed
Expand file tree Collapse file tree 3 files changed +29
-0
lines changed Original file line number Diff line number Diff line change 44
55### Added
66
7+ - in ` convex.v ` :
8+ + lemma ` conv_gt0 `
9+
10+ - in ` exp.v ` :
11+ + lemma ` concave_ln `
12+
713### Changed
814
915### Renamed
Original file line number Diff line number Diff line change @@ -132,6 +132,20 @@ HB.instance Definition _ := @isConvexSpace.Build R R^o
132132
133133End realDomainType_convex_space.
134134
135+ Section conv_realDomainType.
136+ Context {R : realDomainType}.
137+
138+ Lemma conv_gt0 (a b : R^o) (t : {i01 R}) : 0 < a -> 0 < b -> 0 < a <| t |> b.
139+ Proof .
140+ move=> a0 b0.
141+ have [->|t0] := eqVneq t 0%:i01; first by rewrite conv0.
142+ have [->|t1] := eqVneq t 1%:i01; first by rewrite conv1.
143+ rewrite addr_gt0// mulr_gt0//; last by rewrite lt_neqAle eq_sym t0/=.
144+ by rewrite onem_gt0// lt_neqAle t1/=.
145+ Qed .
146+
147+ End conv_realDomainType.
148+
135149(* ref: http://www.math.wisc.edu/~nagel/convexity.pdf *)
136150Section twice_derivable_convex.
137151Context {R : realType}.
Original file line number Diff line number Diff line change @@ -601,6 +601,15 @@ apply: (@is_derive_inverse R expR); first by near=> z; apply: expRK.
601601by rewrite lnK // lt0r_neq0.
602602Unshelve. all: by end_near. Qed .
603603
604+ Local Open Scope convex_scope.
605+ Lemma concave_ln (t : {i01 R}) (a b : R^o) : a \is Num.pos -> b \is Num.pos ->
606+ (ln a : R^o) <| t |> (ln b : R^o) <= ln (a <| t |> b).
607+ Proof .
608+ move=> a0 b0; have := convex_expR t (ln a) (ln b).
609+ by rewrite !lnK// -(@ler_ln) ?posrE ?expR_gt0 ?conv_gt0// expRK.
610+ Qed .
611+ Local Close Scope convex_scope.
612+
604613End Ln.
605614
606615Section PowR.
You can’t perform that action at this time.
0 commit comments