Documentation

CommunicationComplexity.Deterministic.FiniteMessage

inductive CommunicationComplexity.Deterministic.FiniteMessage.Protocol (X : Type u_1) (Y : Type u_2) (α : Type u_3) :
Type (max (max (max 1 u_1) u_2) u_3)

A generalized deterministic two-party communication protocol where at each step, a player sends an element of an arbitrary finite type β (rather than just a Bool). Equivalent to DetProtocol up to complexity (see toProtocol) where sending a β-valued message costs ⌈log₂ |β|⌉ bits.

Instances For
    def CommunicationComplexity.Deterministic.FiniteMessage.Protocol.run {X : Type u_1} {Y : Type u_2} {α : Type u_3} (p : Protocol X Y α) (x : X) (y : Y) :
    α

    Executes the generalized protocol on inputs x and y.

    Equations
    Instances For

      The communication complexity of a generalized protocol. Sending a β-valued message costs ⌈log₂ |β|⌉ bits, reflecting the number of bits needed to encode an element of β.

      Equations
      Instances For

        Convert a finite-message protocol to a binary protocol with the same run behavior and complexity, encoding each β-valued message as ⌈log₂ |β|⌉ bits.

        Equations
        Instances For

          Embed a binary protocol into a generalized protocol (with β = Bool at each step).

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem CommunicationComplexity.Deterministic.FiniteMessage.Protocol.ofProtocol_run {X : Type u_1} {Y : Type u_2} {α : Type u_3} (p : Deterministic.Protocol X Y α) (x : X) (y : Y) :
            (ofProtocol p).run x y = p.run x y

            Every binary protocol can be viewed as a generalized protocol with the same run behavior and complexity (using β = Bool at each step).

            def CommunicationComplexity.Deterministic.FiniteMessage.Protocol.comap {X : Type u_1} {Y : Type u_2} {α : Type u_3} {X' : Type u_4} {Y' : Type u_5} (p : Protocol X Y α) (fX : X'X) (fY : Y'Y) :
            Protocol X' Y' α

            Pull back a finite-message protocol along functions fX : X' → X and fY : Y' → Y, composing each message function with the maps.

            Equations
            Instances For
              @[simp]
              theorem CommunicationComplexity.Deterministic.FiniteMessage.Protocol.comap_run {X : Type u_1} {Y : Type u_2} {α : Type u_3} {X' : Type u_4} {Y' : Type u_5} (p : Protocol X Y α) (fX : X'X) (fY : Y'Y) (x' : X') (y' : Y') :
              (p.comap fX fY).run x' y' = p.run (fX x') (fY y')
              @[simp]
              theorem CommunicationComplexity.Deterministic.FiniteMessage.Protocol.comap_complexity {X : Type u_1} {Y : Type u_2} {α : Type u_3} {X' : Type u_4} {Y' : Type u_5} (p : Protocol X Y α) (fX : X'X) (fY : Y'Y) :