File: Mathlib/Data/Real/ConjExponents.lean

full_name: Real.IsConjExponent.inv_add_inv_conj
code: /-- Two real exponents `p, q` are conjugate if they are `> 1` and satisfy the equality
`1/p + 1/q = 1`. This condition shows up in many theorems in analysis, notably related to `L^p`
norms. -/
@[mk_iff]
structure IsConjExponent (p q : ℝ) : Prop where
  one_lt : 1 < p
  inv_add_inv_conj : p⁻¹ + q⁻¹ = 1
goal: p⁻¹ + q⁻¹ = 1

full_name: Real.IsConjExponent.one_lt
code: /-- Two real exponents `p, q` are conjugate if they are `> 1` and satisfy the equality
`1/p + 1/q = 1`. This condition shows up in many theorems in analysis, notably related to `L^p`
norms. -/
@[mk_iff]
structure IsConjExponent (p q : ℝ) : Prop where
  one_lt : 1 < p
  inv_add_inv_conj : p⁻¹ + q⁻¹ = 1
goal: 1 < p

full_name: Real.isConjExponent_iff
code: /-- Two real exponents `p, q` are conjugate if they are `> 1` and satisfy the equality
`1/p + 1/q = 1`. This condition shows up in many theorems in analysis, notably related to `L^p`
norms. -/
@[mk_iff]
structure IsConjExponent (p q : ℝ) : Prop where
  one_lt : 1 < p
  inv_add_inv_conj : p⁻¹ + q⁻¹ = 1
goal: p.IsConjExponent q ↔ 1 < p ∧ p⁻¹ + q⁻¹ = 1

full_name: Real.IsConjExponent
code: /-- Two real exponents `p, q` are conjugate if they are `> 1` and satisfy the equality
`1/p + 1/q = 1`. This condition shows up in many theorems in analysis, notably related to `L^p`
norms. -/
@[mk_iff]
structure IsConjExponent (p q : ℝ) : Prop where
  one_lt : 1 < p
  inv_add_inv_conj : p⁻¹ + q⁻¹ = 1
goal: Prop

full_name: Real.conjExponent
code: /-- The conjugate exponent of `p` is `q = p/(p-1)`, so that `1/p + 1/q = 1`. -/
def conjExponent (p : ℝ) : ℝ 
goal: ℝ

full_name: Real.IsConjExponent.pos
code: theorem pos : 0 < p 
goal: 0 < p

full_name: Real.IsConjExponent.nonneg
code: theorem nonneg : 0 ≤ p 
goal: 0 ≤ p

full_name: Real.IsConjExponent.ne_zero
code: theorem ne_zero : p ≠ 0 
goal: p ≠ 0

full_name: Real.IsConjExponent.sub_one_pos
code: theorem sub_one_pos : 0 < p - 1 
goal: 0 < p - 1

full_name: Real.IsConjExponent.sub_one_ne_zero
code: theorem sub_one_ne_zero : p - 1 ≠ 0 
goal: p - 1 ≠ 0

full_name: Real.IsConjExponent.inv_pos
code: protected lemma inv_pos : 0 < p⁻¹ 
goal: 0 < p⁻¹

full_name: Real.IsConjExponent.inv_nonneg
code: protected lemma inv_nonneg : 0 ≤ p⁻¹ 
goal: 0 ≤ p⁻¹

full_name: Real.IsConjExponent.inv_ne_zero
code: protected lemma inv_ne_zero : p⁻¹ ≠ 0 
goal: p⁻¹ ≠ 0

full_name: Real.IsConjExponent.one_div_pos
code: theorem one_div_pos : 0 < 1 / p 
goal: 0 < 1 / p

full_name: Real.IsConjExponent.one_div_nonneg
code: theorem one_div_nonneg : 0 ≤ 1 / p 
goal: 0 ≤ 1 / p

full_name: Real.IsConjExponent.one_div_ne_zero
code: theorem one_div_ne_zero : 1 / p ≠ 0 
goal: 1 / p ≠ 0

full_name: Real.IsConjExponent.conj_eq
code: theorem conj_eq (h : p.IsConjExponent q) : q = p / (p - 1) 
goal: q = p / (p - 1)

full_name: Real.IsConjExponent.conjExponent_eq
code: lemma conjExponent_eq : conjExponent p = q 
goal: p.conjExponent = q

full_name: Real.IsConjExponent.one_sub_inv
code: lemma one_sub_inv : 1 - p⁻¹ = q⁻¹ 
goal: 1 - p⁻¹ = q⁻¹

full_name: Real.IsConjExponent.inv_sub_one
code: lemma inv_sub_one : p⁻¹ - 1 = -q⁻¹ 
goal: p⁻¹ - 1 = -q⁻¹

full_name: Real.IsConjExponent.sub_one_mul_conj
code: theorem sub_one_mul_conj : (p - 1) * q = p 
goal: (p - 1) * q = p

full_name: Real.IsConjExponent.mul_eq_add
code: theorem mul_eq_add : p * q = p + q 
goal: p * q = p + q

full_name: Real.IsConjExponent.symm
code: @[symm] protected lemma symm (h : p.IsConjExponent q) : q.IsConjExponent p 
goal: q.IsConjExponent p

full_name: Real.IsConjExponent.div_conj_eq_sub_one
code: theorem div_conj_eq_sub_one : p / q = p - 1 
goal: p / q = p - 1

full_name: Real.IsConjExponent.inv_add_inv_conj_ennreal
code: theorem inv_add_inv_conj_ennreal : (ENNReal.ofReal p)⁻¹ + (ENNReal.ofReal q)⁻¹ = 1 
goal: (ENNReal.ofReal p)⁻¹ + (ENNReal.ofReal q)⁻¹ = 1

full_name: Real.IsConjExponent.inv_inv
code: protected lemma inv_inv (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) : a⁻¹.IsConjExponent b⁻¹ 
goal: a⁻¹.IsConjExponent b⁻¹

full_name: Real.IsConjExponent.inv_one_sub_inv
code: lemma inv_one_sub_inv (ha₀ : 0 < a) (ha₁ : a < 1) : a⁻¹.IsConjExponent (1 - a)⁻¹ 
goal: a⁻¹.IsConjExponent (1 - a)⁻¹

full_name: Real.IsConjExponent.one_sub_inv_inv
code: lemma one_sub_inv_inv (ha₀ : 0 < a) (ha₁ : a < 1) : (1 - a)⁻¹.IsConjExponent a⁻¹ 
goal: (1 - a)⁻¹.IsConjExponent a⁻¹

full_name: Real.isConjExponent_iff_eq_conjExponent
code: lemma isConjExponent_iff_eq_conjExponent (hp : 1 < p) : p.IsConjExponent q ↔ q = p / (p - 1) 
goal: p.IsConjExponent q ↔ q = p / (p - 1)

full_name: Real.IsConjExponent.conjExponent
code: lemma IsConjExponent.conjExponent (h : 1 < p) : p.IsConjExponent (conjExponent p) 
goal: p.IsConjExponent p.conjExponent

full_name: Real.isConjExponent_one_div
code: lemma isConjExponent_one_div (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) :
    (1 / a).IsConjExponent (1 / b) 
goal: (1 / a).IsConjExponent (1 / b)

full_name: NNReal.IsConjExponent
code: /-- Two nonnegative real exponents `p, q` are conjugate if they are `> 1` and satisfy the equality
`1/p + 1/q = 1`. This condition shows up in many theorems in analysis, notably related to `L^p`
norms. -/
@[mk_iff]
structure IsConjExponent (p q : ℝ≥0) : Prop where
  one_lt : 1 < p
  inv_add_inv_conj : p⁻¹ + q⁻¹ = 1
goal: Prop

full_name: NNReal.isConjExponent_iff
code: /-- Two nonnegative real exponents `p, q` are conjugate if they are `> 1` and satisfy the equality
`1/p + 1/q = 1`. This condition shows up in many theorems in analysis, notably related to `L^p`
norms. -/
@[mk_iff]
structure IsConjExponent (p q : ℝ≥0) : Prop where
  one_lt : 1 < p
  inv_add_inv_conj : p⁻¹ + q⁻¹ = 1
goal: p.IsConjExponent q ↔ 1 < p ∧ p⁻¹ + q⁻¹ = 1

full_name: NNReal.IsConjExponent.inv_add_inv_conj
code: /-- Two nonnegative real exponents `p, q` are conjugate if they are `> 1` and satisfy the equality
`1/p + 1/q = 1`. This condition shows up in many theorems in analysis, notably related to `L^p`
norms. -/
@[mk_iff]
structure IsConjExponent (p q : ℝ≥0) : Prop where
  one_lt : 1 < p
  inv_add_inv_conj : p⁻¹ + q⁻¹ = 1
goal: p⁻¹ + q⁻¹ = 1

full_name: NNReal.IsConjExponent.one_lt
code: /-- Two nonnegative real exponents `p, q` are conjugate if they are `> 1` and satisfy the equality
`1/p + 1/q = 1`. This condition shows up in many theorems in analysis, notably related to `L^p`
norms. -/
@[mk_iff]
structure IsConjExponent (p q : ℝ≥0) : Prop where
  one_lt : 1 < p
  inv_add_inv_conj : p⁻¹ + q⁻¹ = 1
goal: 1 < p

full_name: NNReal.conjExponent
code: /-- The conjugate exponent of `p` is `q = p/(p-1)`, so that `1/p + 1/q = 1`. -/
noncomputable def conjExponent (p : ℝ≥0) : ℝ≥0 
goal: NNReal

full_name: NNReal.isConjExponent_coe
code: @[simp, norm_cast] lemma isConjExponent_coe : (p : ℝ).IsConjExponent q ↔ p.IsConjExponent q 
goal: (↑p).IsConjExponent ↑q ↔ p.IsConjExponent q

full_name: NNReal.IsConjExponent.one_le
code: lemma one_le : 1 ≤ p 
goal: 1 ≤ p

full_name: NNReal.IsConjExponent.pos
code: lemma pos : 0 < p 
goal: 0 < p

full_name: NNReal.IsConjExponent.ne_zero
code: lemma ne_zero : p ≠ 0 
goal: p ≠ 0

full_name: NNReal.IsConjExponent.sub_one_pos
code: lemma sub_one_pos : 0 < p - 1 
goal: 0 < p - 1

full_name: NNReal.IsConjExponent.sub_one_ne_zero
code: lemma sub_one_ne_zero : p - 1 ≠ 0 
goal: p - 1 ≠ 0

full_name: NNReal.IsConjExponent.inv_pos
code: lemma inv_pos : 0 < p⁻¹ 
goal: 0 < p⁻¹

full_name: NNReal.IsConjExponent.inv_ne_zero
code: lemma inv_ne_zero : p⁻¹ ≠ 0 
goal: p⁻¹ ≠ 0

full_name: NNReal.IsConjExponent.one_sub_inv
code: lemma one_sub_inv : 1 - p⁻¹ = q⁻¹ 
goal: 1 - p⁻¹ = q⁻¹

full_name: NNReal.IsConjExponent.conj_eq
code: lemma conj_eq (h : p.IsConjExponent q) : q = p / (p - 1) 
goal: q = p / (p - 1)

full_name: NNReal.IsConjExponent.conjExponent_eq
code: lemma conjExponent_eq : conjExponent p = q 
goal: p.conjExponent = q

full_name: NNReal.IsConjExponent.sub_one_mul_conj
code: lemma sub_one_mul_conj : (p - 1) * q = p 
goal: (p - 1) * q = p

full_name: NNReal.IsConjExponent.mul_eq_add
code: lemma mul_eq_add : p * q = p + q 
goal: p * q = p + q

full_name: NNReal.IsConjExponent.symm
code: @[symm]
protected lemma symm (h : p.IsConjExponent q) : q.IsConjExponent p 
goal: q.IsConjExponent p

full_name: NNReal.IsConjExponent.div_conj_eq_sub_one
code: lemma div_conj_eq_sub_one : p / q = p - 1 
goal: p / q = p - 1

full_name: NNReal.IsConjExponent.inv_add_inv_conj_ennreal
code: lemma inv_add_inv_conj_ennreal : (p⁻¹ + q⁻¹ : ℝ≥0∞) = 1 
goal: ↑p⁻¹ + ↑q⁻¹ = 1

full_name: NNReal.IsConjExponent.inv_inv
code: protected lemma inv_inv (ha : a ≠ 0) (hb : b ≠ 0) (hab : a + b = 1) :
    a⁻¹.IsConjExponent b⁻¹ 
goal: a⁻¹.IsConjExponent b⁻¹

full_name: NNReal.IsConjExponent.inv_one_sub_inv
code: lemma inv_one_sub_inv (ha₀ : a ≠ 0) (ha₁ : a < 1) : a⁻¹.IsConjExponent (1 - a)⁻¹ 
goal: a⁻¹.IsConjExponent (1 - a)⁻¹

full_name: NNReal.IsConjExponent.one_sub_inv_inv
code: lemma one_sub_inv_inv (ha₀ : a ≠ 0) (ha₁ : a < 1) : (1 - a)⁻¹.IsConjExponent a⁻¹ 
goal: (1 - a)⁻¹.IsConjExponent a⁻¹

full_name: NNReal.isConjExponent_iff_eq_conjExponent
code: lemma isConjExponent_iff_eq_conjExponent (h : 1 < p) : p.IsConjExponent q ↔ q = p / (p - 1) 
goal: p.IsConjExponent q ↔ q = p / (p - 1)

full_name: NNReal.IsConjExponent.conjExponent
code: protected lemma IsConjExponent.conjExponent (h : 1 < p) : p.IsConjExponent (conjExponent p) 
goal: p.IsConjExponent p.conjExponent

full_name: Real.IsConjExponent.toNNReal
code: protected lemma Real.IsConjExponent.toNNReal {p q : ℝ} (hpq : p.IsConjExponent q) :
    p.toNNReal.IsConjExponent q.toNNReal 
goal: p.toNNReal.IsConjExponent q.toNNReal