Zulip Chat Archive

Stream: Is there code for X?

Topic: rpow log exp inequalities


Yaël Dillies (Jun 04 2021 at 13:10):

Is there anything like that somewhere?

import analysis.special_functions.exp_log
import analysis.special_functions.pow

lemma le_pow_of_log_le {a b c : } (ha : 0 < a) (hb : 0 < b) (hc : 0 < c)
  (h : (real.log a)/(real.log b)  c) :
  a  b^c := sorry

lemma le_exp_of_log_le {a b : } (ha : 0 < a) (hb : 0 < b) (h : real.log a  b) :
  a  real.exp b := sorry

I need le_pow_of_log_le

Eric Wieser (Jun 04 2021 at 13:14):

Does monotonicity of exp get you the second one?

Eric Wieser (Jun 04 2021 at 13:17):

have := real.exp_monotone h followed by rw real.exp_log ha at this or something

Yaël Dillies (Jun 04 2021 at 13:19):

Yeah, I think that works. Do you think such lemmas are worth having?

Eric Wieser (Jun 04 2021 at 13:19):

Is the second one true as an iff?

Kevin Buzzard (Jun 04 2021 at 13:27):

So they are a Galois connection I guess

Eric Wieser (Jun 04 2021 at 13:27):

Except conditional on a being positive

Eric Wieser (Jun 04 2021 at 13:27):

I think this lemma is worth having:

lemma log_le_iff_le_exp {a b : } (ha : 0 < a) :
  real.log a  b  a  real.exp b :=
λ h, real.exp_log ha  real.exp_monotone h, λ h, real.exp_le_exp.mp $ (real.exp_log ha).symm  h

Kevin Buzzard (Jun 04 2021 at 13:27):

right, they're a galois connection between pos_real and real

Kevin Buzzard (Jun 04 2021 at 13:28):

In fact they're simply an order isomorphism between pos_real and real, this is what should be proved

Eric Wieser (Jun 04 2021 at 13:28):

I suspect we have that

Kevin Buzzard (Jun 04 2021 at 13:28):

well then this is a consequence

Eric Wieser (Jun 04 2021 at 13:28):

docs#real.exp_order_iso

Eric Wieser (Jun 04 2021 at 13:29):

Yes, but it's a consequence that probably has awkard coe debris to clean up

Eric Wieser (Jun 04 2021 at 13:30):

Maybe there's still an easier proof using that lemma though

Yakov Pechersky (Jun 04 2021 at 13:30):

I mean, real.log is defined using the order iso

Eric Wieser (Jun 04 2021 at 13:38):

I think your first lemma is false?

Eric Wieser (Jun 04 2021 at 13:38):

lemma le_pow_of_log_le {a b c : } (ha : 0 < a) (hb : 0 < b) (hc : 0 < c)
  (h : (real.log a)/(real.log b)  c) :
  a  b^c := begin
    rw [real.log_le_log ha (real.rpow_pos_of_pos hb _), real.log_rpow hb,
      mul_comm, mul_inv_le_iff _, div_eq_mul_inv],
    exact h,
    sorry,  -- 0 < real.log b
  end

Kevin Buzzard (Jun 04 2021 at 13:45):

If a=b=1/2 and c=2 then h is true and the conclusion isn't.

Eric Rodriguez (Jun 04 2021 at 13:56):

Eric Wieser said:

docs#real.exp_order_iso

I tried using this a while back and it was hellish

Yaël Dillies (Jun 04 2021 at 14:12):

Ah yes, we need 1 < b to divide out the logs properly.


Last updated: Dec 20 2023 at 11:08 UTC