Power function on ℝ≥0
and ℝ≥0∞
#
We construct the power functions x ^ y
where
x
is a nonnegative real number andy
is a real number;x
is a number from[0, +∞]
(a.k.a.ℝ≥0∞
) andy
is a real number.
We also prove basic properties of these functions.
The nonnegative real power function x^y
, defined for x : ℝ≥0
and y : ℝ
as the
restriction of the real power function. For x > 0
, it is equal to exp (y log x)
. For x = 0
,
one sets 0 ^ 0 = 1
and 0 ^ y = 0
for y ≠ 0
.
Equations
- NNReal.rpow x y = { val := ↑x ^ y, property := (_ : 0 ≤ ↑x ^ y) }
Instances For
Equations
- NNReal.instPowNNRealReal = { pow := NNReal.rpow }
@[simp]
theorem
NNReal.rpow_ofNat
(x : NNReal)
(n : ℕ)
[Nat.AtLeastTwo n]
:
x ^ OfNat.ofNat n = x ^ OfNat.ofNat n
@[simp]
theorem
NNReal.multiset_prod_map_rpow
{ι : Type u_1}
(s : Multiset ι)
(f : ι → NNReal)
(r : ℝ)
:
Multiset.prod (Multiset.map (fun (x : ι) => f x ^ r) s) = Multiset.prod (Multiset.map f s) ^ r
rpow
version of Multiset.prod_map_pow
for ℝ≥0
.
theorem
NNReal.finset_prod_rpow
{ι : Type u_1}
(s : Finset ι)
(f : ι → NNReal)
(r : ℝ)
:
(Finset.prod s fun (i : ι) => f i ^ r) = (Finset.prod s fun (i : ι) => f i) ^ r
rpow
version of Finset.prod_pow
for ℝ≥0
.
theorem
Real.multiset_prod_map_rpow
{ι : Type u_1}
(s : Multiset ι)
(f : ι → ℝ)
(hs : ∀ i ∈ s, 0 ≤ f i)
(r : ℝ)
:
Multiset.prod (Multiset.map (fun (x : ι) => f x ^ r) s) = Multiset.prod (Multiset.map f s) ^ r
rpow
version of Multiset.prod_map_pow
.
theorem
Real.finset_prod_rpow
{ι : Type u_1}
(s : Finset ι)
(f : ι → ℝ)
(hs : ∀ i ∈ s, 0 ≤ f i)
(r : ℝ)
:
(Finset.prod s fun (i : ι) => f i ^ r) = (Finset.prod s fun (i : ι) => f i) ^ r
rpow
version of Finset.prod_pow
.
theorem
NNReal.rpow_left_injective
{x : ℝ}
(hx : x ≠ 0)
:
Function.Injective fun (y : NNReal) => y ^ x
theorem
NNReal.rpow_left_surjective
{x : ℝ}
(hx : x ≠ 0)
:
Function.Surjective fun (y : NNReal) => y ^ x
theorem
NNReal.rpow_left_bijective
{x : ℝ}
(hx : x ≠ 0)
:
Function.Bijective fun (y : NNReal) => y ^ x
theorem
Real.toNNReal_rpow_of_nonneg
{x : ℝ}
{y : ℝ}
(hx : 0 ≤ x)
:
Real.toNNReal (x ^ y) = Real.toNNReal x ^ y
@[simp]
theorem
NNReal.orderIsoRpow_apply
(y : ℝ)
(hy : 0 < y)
(x : NNReal)
:
(NNReal.orderIsoRpow y hy) x = x ^ y
theorem
NNReal.orderIsoRpow_symm_eq
(y : ℝ)
(hy : 0 < y)
:
OrderIso.symm (NNReal.orderIsoRpow y hy) = NNReal.orderIsoRpow (1 / y) (_ : 0 < 1 / y)
The real power function x^y
on extended nonnegative reals, defined for x : ℝ≥0∞
and
y : ℝ
as the restriction of the real power function if 0 < x < ⊤
, and with the natural values
for 0
and ⊤
(i.e., 0 ^ x = 0
for x > 0
, 1
for x = 0
and ⊤
for x < 0
, and
⊤ ^ x = 1 / 0 ^ x
).
Equations
Instances For
Equations
- ENNReal.instPowENNRealReal = { pow := ENNReal.rpow }
@[simp]
theorem
ENNReal.rpow_ofNat
(x : ENNReal)
(n : ℕ)
[Nat.AtLeastTwo n]
:
x ^ OfNat.ofNat n = x ^ OfNat.ofNat n
theorem
ENNReal.prod_coe_rpow
{ι : Type u_1}
(s : Finset ι)
(f : ι → NNReal)
(r : ℝ)
:
(Finset.prod s fun (i : ι) => ↑(f i) ^ r) = ↑(Finset.prod s fun (i : ι) => f i) ^ r
theorem
ENNReal.prod_rpow_of_ne_top
{ι : Type u_1}
{s : Finset ι}
{f : ι → ENNReal}
(hf : ∀ i ∈ s, f i ≠ ⊤)
(r : ℝ)
:
(Finset.prod s fun (i : ι) => f i ^ r) = (Finset.prod s fun (i : ι) => f i) ^ r
theorem
ENNReal.prod_rpow_of_nonneg
{ι : Type u_1}
{s : Finset ι}
{f : ι → ENNReal}
{r : ℝ}
(hr : 0 ≤ r)
:
(Finset.prod s fun (i : ι) => f i ^ r) = (Finset.prod s fun (i : ι) => f i) ^ r
@[simp]
theorem
ENNReal.orderIsoRpow_apply
(y : ℝ)
(hy : 0 < y)
(x : ENNReal)
:
(ENNReal.orderIsoRpow y hy) x = x ^ y
theorem
ENNReal.orderIsoRpow_symm_apply
(y : ℝ)
(hy : 0 < y)
:
OrderIso.symm (ENNReal.orderIsoRpow y hy) = ENNReal.orderIsoRpow (1 / y) (_ : 0 < 1 / y)
theorem
ENNReal.toNNReal_rpow
(x : ENNReal)
(z : ℝ)
:
ENNReal.toNNReal x ^ z = ENNReal.toNNReal (x ^ z)
theorem
ENNReal.ofReal_rpow_of_pos
{x : ℝ}
{p : ℝ}
(hx_pos : 0 < x)
:
ENNReal.ofReal x ^ p = ENNReal.ofReal (x ^ p)
theorem
ENNReal.ofReal_rpow_of_nonneg
{x : ℝ}
{p : ℝ}
(hx_nonneg : 0 ≤ x)
(hp_nonneg : 0 ≤ p)
:
ENNReal.ofReal x ^ p = ENNReal.ofReal (x ^ p)
theorem
ENNReal.rpow_left_injective
{x : ℝ}
(hx : x ≠ 0)
:
Function.Injective fun (y : ENNReal) => y ^ x
theorem
ENNReal.rpow_left_surjective
{x : ℝ}
(hx : x ≠ 0)
:
Function.Surjective fun (y : ENNReal) => y ^ x
theorem
ENNReal.rpow_left_bijective
{x : ℝ}
(hx : x ≠ 0)
:
Function.Bijective fun (y : ENNReal) => y ^ x