Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing theory for Hoelder conjugates #1075

Open
hoheinzollern opened this issue Nov 1, 2023 · 0 comments
Open

Missing theory for Hoelder conjugates #1075

hoheinzollern opened this issue Nov 1, 2023 · 0 comments

Comments

@hoheinzollern
Copy link
Collaborator

This would much improve the presentation of Minkowski's inequality and therefore PR #1000

Here is a draft by @affeldt-aist

Section hoelder_conjugate.
Context {R : realType}.
Local Open Scope ereal_scope.

Definition hoelder_conj (p : \bar R) :=
  match p with
  | +oo => 1
  | -oo => 1
  | r%:E => if r == 1%R then +oo else if r == 0%:R then 1 else (`1-(r^-1))^-1%:E
  end.

Local Notation "p ^*" := (hoelder_conj p).

Lemma hoelder_conj1 : 1^* = +oo.
Proof.
by rewrite /hoelder_conj eqxx.
Qed.

Lemma hoelder_conj_gt1 (p : \bar R) : 1 <= p -> 1 <= p^*.
Proof.
move: p => [r/=||]//; case: ifPn => [_ _|r1]; first by rewrite leey.
rewrite le_eqVlt eq_sym eqe (negbTE r1)/= lte_fin => {}r1.
rewrite gt_eqF ?(lt_trans _ r1)// onemV ?gt_eqF ?(lt_trans _ r1)//.
rewrite lee_fin invf_ge1; last first.
  by rewrite divr_gt0// ?subr_gt0// (le_lt_trans _ r1).
by rewrite lter_pdivrMr// ?(le_lt_trans _ r1)// mul1r ler_subl_addr ler_addl.
Qed.

Let inve (x : \bar R) :=
  match x with
  | +oo%E => 0
  | -oo%E => 0
  | r%:E => r^-1%:E
  end.

Local Notation "x ^-1" := (inve x) : ereal_scope.

Lemma hoelder_conjP (p : \bar R) : p^-1 + p^*^-1 = 1.
Proof.
move: p => [r| |]/=; [|by rewrite add0e invr1..].
case: ifPn => [/eqP -> /=|r1]; first by rewrite adde0 invr1.
case: ifPn => [/eqP -> /=|r0]; first by rewrite invr0 invr1 add0e.
rewrite onemV//= invrK -EFinD -{1}(mul1r (r^-1)%R) -mulrDl.
by rewrite addrCA subrr addr0 divff.
Qed.

End hoelder_conjugate.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant