IsSubprotocol s p means s is a (rooted) subtree of protocol p.
- refl {X : Type u_1} {Y : Type u_2} {α : Type u_3} (p : Protocol X Y α) : p.IsSubprotocol p
- alice_false {X : Type u_1} {Y : Type u_2} {α : Type u_3} (f : X → Bool) (P : Bool → Protocol X Y α) (s : Protocol X Y α) : s.IsSubprotocol (P false) → s.IsSubprotocol (alice f P)
- alice_true {X : Type u_1} {Y : Type u_2} {α : Type u_3} (f : X → Bool) (P : Bool → Protocol X Y α) (s : Protocol X Y α) : s.IsSubprotocol (P true) → s.IsSubprotocol (alice f P)
- bob_false {X : Type u_1} {Y : Type u_2} {α : Type u_3} (f : Y → Bool) (P : Bool → Protocol X Y α) (s : Protocol X Y α) : s.IsSubprotocol (P false) → s.IsSubprotocol (bob f P)
- bob_true {X : Type u_1} {Y : Type u_2} {α : Type u_3} (f : Y → Bool) (P : Bool → Protocol X Y α) (s : Protocol X Y α) : s.IsSubprotocol (P true) → s.IsSubprotocol (bob f P)
Instances For
Transitivity of subprotocol embeddings.
Protocol-level version of R&Y Lemma 1.8: if a protocol has more than 1 leaf there is a subprotocol with a reasonable number of leaves.
Type-valued witness for a subtree embedding, used for data-carrying recursion. It is a
witness that s is a subprotocol of p containing the choices from the root of p to the
root of s.
- refl {X : Type u_1} {Y : Type u_2} {α : Type u_3} (p : Protocol X Y α) : p.SubprotocolPath p
- alice_false {X : Type u_1} {Y : Type u_2} {α : Type u_3} (f : X → Bool) (P : Bool → Protocol X Y α) (s : Protocol X Y α) : s.SubprotocolPath (P false) → s.SubprotocolPath (alice f P)
- alice_true {X : Type u_1} {Y : Type u_2} {α : Type u_3} (f : X → Bool) (P : Bool → Protocol X Y α) (s : Protocol X Y α) : s.SubprotocolPath (P true) → s.SubprotocolPath (alice f P)
- bob_false {X : Type u_1} {Y : Type u_2} {α : Type u_3} (f : Y → Bool) (P : Bool → Protocol X Y α) (s : Protocol X Y α) : s.SubprotocolPath (P false) → s.SubprotocolPath (bob f P)
- bob_true {X : Type u_1} {Y : Type u_2} {α : Type u_3} (f : Y → Bool) (P : Bool → Protocol X Y α) (s : Protocol X Y α) : s.SubprotocolPath (P true) → s.SubprotocolPath (bob f P)
Instances For
Every SubprotocolPath induces an IsSubprotocol proof.
Equations
- ⋯ = ⋯
Instances For
If s is a subprotocol of p, then there is a path from the root of p to the
root of s.
Classical choice of a witness (a SubprotocolPath) from a proof that
something is a Subprotocol.
Instances For
A SubprotocolPath won't have any more leaves than its parent.
Alice-side predicate set for the inputs that reach a chosen subprotocol path.
Equations
- One or more equations did not get rendered due to their size.
- CommunicationComplexity.Deterministic.Protocol.reachXPath (CommunicationComplexity.Deterministic.Protocol.SubprotocolPath.refl s) = Set.univ
Instances For
Bob-side predicate set for the inputs that reach a chosen subprotocol path.
Equations
- One or more equations did not get rendered due to their size.
- CommunicationComplexity.Deterministic.Protocol.reachYPath (CommunicationComplexity.Deterministic.Protocol.SubprotocolPath.refl s) = Set.univ
Instances For
A Prop which states that inputs x : X and y : Y will get you to a particular
SubprotocolPath of p.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The set of Alice's inputs that reach any subprotocol path to the given subprotocol.
Equations
Instances For
The set of Bob's inputs that reach any subprotocol path to the given subprotocol.
Equations
Instances For
A Prop which states that on input x : X and y : Y the protocol p
reaches the subprotocol s.
Equations
Instances For
If on input x,y the protocol reaches subprotocolpath s of p, then running s and
running p produce the same output.
If on input x,y the protocol reaches subprotocol s of p, then running s and
running p produce the same output.
Pick a canonical output value from a protocol (leftmost leaf).
Equations
Instances For
Gives you a protocol which is just p with the subprotocol s collapsed to a single leaf,
and the value at that leaf is the leftmost leaf of s.
We need subprotocolpath because we need to find s, and that's how we do it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
After we erase s from p, the resulting protocol has p.numLeaves - s.numLeaves + 1
leaves.
If the input doesn't reach a subprotocolpath s, then running p on that input
is the same as running p with s erased.
Subprotocol not-path versions of the above.
Equations
Instances For
Delete a selected subtree by splicing; returns none only at the root case.
Equations
- One or more equations did not get rendered due to their size.
- CommunicationComplexity.Deterministic.Protocol.deletePath (CommunicationComplexity.Deterministic.Protocol.SubprotocolPath.refl s) = none
Instances For
Equations
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.