def
CommunicationComplexity.Deterministic.FiniteMessage.Protocol.map
{X : Type u_1}
{Y : Type u_2}
{α : Type u_7}
{β : Type u_10}
(g : α → β)
:
Map a function over the output of a protocol.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
CommunicationComplexity.Deterministic.FiniteMessage.Protocol.bind
{X : Type u_1}
{Y : Type u_2}
{α : Type u_7}
{β : Type u_10}
:
Bind: replace each output a in p with q a.
Equations
- (CommunicationComplexity.Deterministic.FiniteMessage.Protocol.output a).bind x✝ = x✝ a
- (CommunicationComplexity.Deterministic.FiniteMessage.Protocol.alice f P).bind x✝ = CommunicationComplexity.Deterministic.FiniteMessage.Protocol.alice f fun (b : β_1) => (P b).bind x✝
- (CommunicationComplexity.Deterministic.FiniteMessage.Protocol.bob f P).bind x✝ = CommunicationComplexity.Deterministic.FiniteMessage.Protocol.bob f fun (b : β_1) => (P b).bind x✝
Instances For
theorem
CommunicationComplexity.Deterministic.FiniteMessage.Protocol.bind_complexity_const
{X : Type u_1}
{Y : Type u_2}
{α : Type u_7}
{β : Type u_10}
(p : Protocol X Y α)
(q : α → Protocol X Y β)
(c : ℕ)
(hc : ∀ (a : α), (q a).complexity = c)
:
def
CommunicationComplexity.Deterministic.FiniteMessage.Protocol.prod
{X₁ : Type u_3}
{Y₁ : Type u_4}
{X₂ : Type u_5}
{Y₂ : Type u_6}
{α₁ : Type u_8}
{α₂ : Type u_9}
(p1 : Protocol X₁ Y₁ α₁)
(p2 : Protocol X₂ Y₂ α₂)
:
Product of two protocols with disjoint input types. Runs p1 on
the first components (X₁, Y₁) and p2 on the second (X₂, Y₂),
pairing the outputs.
Equations
- One or more equations did not get rendered due to their size.
- (CommunicationComplexity.Deterministic.FiniteMessage.Protocol.alice f P).prod p2 = CommunicationComplexity.Deterministic.FiniteMessage.Protocol.alice (f ∘ Prod.fst) fun (b : β) => (P b).prod p2
- (CommunicationComplexity.Deterministic.FiniteMessage.Protocol.bob f P).prod p2 = CommunicationComplexity.Deterministic.FiniteMessage.Protocol.bob (f ∘ Prod.fst) fun (b : β) => (P b).prod p2
Instances For
def
CommunicationComplexity.Deterministic.FiniteMessage.Protocol.pi
{k : ℕ}
{Xf : Fin k → Type u_14}
{Yf : Fin k → Type u_15}
{αf : Fin k → Type u_16}
:
Pi (k-fold product) of protocols with heterogeneous input/output
types. Runs each p i on the i-th components, collecting outputs.
Equations
- One or more equations did not get rendered due to their size.
- CommunicationComplexity.Deterministic.FiniteMessage.Protocol.pi x_8 = CommunicationComplexity.Deterministic.FiniteMessage.Protocol.output fun (i : Fin 0) => i.elim0