Proof of Theorem 1, p. 26 — one-product price step with markup
ProvedPriceQualityService.price_stepmultinomial-logitoperations-managementpricing
The products are . Product has quality sensitivity , service utility per unit time , production-cost coefficient and service-cost coefficients ; the firm chooses its price , quality and service duration .
Fix a product , its quality and duration , and a real number . Put and
Let . Then
- is strictly increasing on ;
- is strictly decreasing on ;
- for every ;
- .
This is the step that produces the equal markup of the optimal MNL prices.
Differences from the source:
- reading: h_i(r, p_i) "is increasing in p_i for p_i ≤ …" and "decreasing thereafter" → StrictMonoOn on (−∞, p̂_i] and StrictAntiOn on [p̂_i, ∞); reason: the derivative [1 − (p_i − K_i − r)]·exp(…) vanishes only at p̂_i; the strict reading is the stronger one
- generalization: α_i > 0, s_i > 0, c_i > 0 (pp. 7–8), qualities in the domain of pp. 8–9, t_i ∈ [t_s, t_l] → arbitrary real parameters, qualities and durations; reason: the statement is algebra/calculus that uses none of these assumptions; it specializes to the paper's setting
- encoding: products 𝒩 = {1, …, N} → Fin N (N = 0 allowed); reason: Lean convention; N = 0 gives empty sums and changes no instance with N ≥ 1
Preamble
import Mathlib import Definitions.Def_PriceQualityService_netValue import Definitions.Def_PriceQualityService_optPrice
Formal statement
namespace PriceQualityService
/-- **The one-product price step.**
Wang, Ke & Cui, *Product Price, Quality and Service Decisions under Consumer Choice Models*,
accepted manuscript, SSRN 3766191 (MSOM 2020, doi:10.1287/msom.2020.0947), proof of Theorem 1 (App. B), unnumbered, p. 26: with
`h_i(r, p_i) = (p_i − c_i q_i² − t_i(a_i − b_i q_i) − r) · exp(α_i q_i − p_i + t_i s_i)`,
"given r the function `h_i(r,p_i)` is increasing in `p_i` for `p_i ≤ 1 + c_i q_i² + t_i(a_i − b_i q_i) + r`
and is decreasing thereafter. Therefore, it achieves its maximum at
`p_i = 1 + c_i q_i² + t_i(a_i − b_i q_i) + r` and
`h_i(r) = exp(α_i q_i − c_i q_i² + t_i(s_i − (a_i − b_i q_i)) − r − 1)`."
The four clauses: `h_i(r, ·)` is strictly increasing on `(−∞, p̂_i]`, strictly decreasing on
`[p̂_i, ∞)`, maximal at `p̂_i = optPrice a b c q t r i`, with maximum value
`exp(netValue_i − r − 1)`.
**Formalization Note.** "Increasing"/"decreasing" are read strictly (the derivative
`[1 − (p_i − K_i − r)] e^{…}` vanishes only at `p̂_i`). No sign assumption on any parameter. -/
theorem price_step {N : ℕ} (α s a b c q t : Fin N → ℝ) (r : ℝ) (i : Fin N) :
let h : ℝ → ℝ := fun x =>
(x - c i * q i ^ 2 - t i * (a i - b i * q i) - r) * Real.exp (α i * q i - x + t i * s i)
StrictMonoOn h (Set.Iic (optPrice a b c q t r i)) ∧
StrictAntiOn h (Set.Ici (optPrice a b c q t r i)) ∧
(∀ x, h x ≤ h (optPrice a b c q t r i)) ∧
h (optPrice a b c q t r i) = Real.exp (netValue α s a b c q t i - r - 1) := by sorry
end PriceQualityService
Source
Wang, Ke & Cui, Product Price, Quality and Service Decisions under Consumer Choice Models, accepted manuscript, SSRN 3766191 (MSOM 2020, doi:10.1287/msom.2020.0947), proof of Theorem 1 (App. B), p. 26 (unnumbered, between eqs. (16) and (17))