57 Communication Complexity — Comparison
57.1 Overview
This module establishes comparison results between the three main communication complexity models — deterministic, public-coin, and private-coin — by constructing explicit comap-based protocol conversions. The key result is that private-coin communication complexity is bounded above by deterministic communication complexity for any non-negative error parameter.
57.2 Declarations
Given a public-coin protocol \(p\) over randomness space \(\Omega \) and a fixed outcome \(\omega : \Omega \), PublicCoin.Protocol.toDeterministic \(p~ \omega \) is the deterministic protocol obtained by substituting \(\omega \) for the shared randomness (implemented via comap with \(\mathrm{Prod.mk}\, \omega \)).
For any inputs \(x : X\) and \(y : Y\), running the deterministic protocol \((p.\mathrm{toDeterministic}\, \omega )\) on \((x, y)\) yields the same output as running the randomised protocol \(p\) on \((x, y, \omega )\), i.e. \((p.\mathrm{toDeterministic}\, \omega ).\mathrm{run}\, x\, y = p.\mathrm{rrun}\, x\, y\, \omega \).
Fixing the shared randomness does not change the communication complexity: \((p.\mathrm{toDeterministic}\, \omega ).\mathrm{complexity} = p.\mathrm{complexity}\) for every \(\omega : \Omega \).
Given a deterministic finite-message protocol \(p\), the operation CommunicationComplexity.Deterministic.FiniteMessage.Protocol.toPrivateCoin converts it into a private-coin finite-message protocol over arbitrary coin spaces \(\Omega _X\) and \(\Omega _Y\) by ignoring both coin inputs (via comap with \(\mathrm{Prod.snd}\)).
For any inputs \(x : X\), \(y : Y\) and any coin draws \(\omega _X : \Omega _X\), \(\omega _Y : \Omega _Y\), the randomised run of \(p.\mathrm{toPrivateCoin}\) equals the deterministic run of \(p\): \(\mathrm{rrun}(p.\mathrm{toPrivateCoin})\, x\, y\, \omega _X\, \omega _Y = p.\mathrm{run}\, x\, y\).
Embedding a deterministic finite-message protocol into the private-coin model preserves its complexity: \((p.\mathrm{toPrivateCoin}).\mathrm{complexity} = p.\mathrm{complexity}\).
Given a public-coin finite-message protocol \(p\) and a fixed randomness sample \(\omega : \Omega \), PublicCoin.FiniteMessage.Protocol.toDeterministic \(p~ \omega \) is the deterministic finite-message protocol obtained by substituting \(\omega \) for the shared randomness (via comap with \(\mathrm{Prod.mk}\, \omega \)).
For any inputs \(x : X\) and \(y : Y\), the deterministic run of \(p.\mathrm{toDeterministic}\, \omega \) equals the randomised run at \(\omega \): \((p.\mathrm{toDeterministic}\, \omega ).\mathrm{run}\, x\, y = p.\mathrm{rrun}\, x\, y\, \omega \).
Fixing the shared randomness of a public-coin finite-message protocol does not change its complexity: \((p.\mathrm{toDeterministic}\, \omega ).\mathrm{complexity} = p.\mathrm{complexity}\).
For any function \(f : X \to Y \to \alpha \) and any error parameter \(\varepsilon \ge 0\), the private-coin communication complexity satisfies
The inequality holds because every deterministic protocol can be viewed as a private-coin protocol with zero error by embedding it via toPrivateCoin.