The index gadget and lifted search problems #
A search problem on n bits is a relation R : (Fin n → Bool) → O → Prop: on input z, any
o with R z o is a correct answer. Composing it with n copies of the index gadget
Ind_m : [m] × {0, 1}^m → {0, 1}, Ind_m (a, w) = w a, gives a two-party search problem.
Alice holds pointers x : Fin n → Fin m, Bob holds blocks y : Fin n → Fin m → Bool, and the
i-th input bit is y i (x i) (Communication.Lifting.ind). The lifted problem
Communication.Lifting.lift R asks for an answer to R on that input
Göös, Pitassi and Watson.
A decision tree for R gives a protocol for the lifted problem: to query bit i, Alice sends
x i in ⌈log₂ m⌉ bits and Bob answers with y i (x i) (Communication.Lifting.ofDecisionTree).
So the communication complexity of the lifted problem is at most ⌈log₂ m⌉ + 1 times the depth of
any decision tree for R (Communication.Lifting.ecomplexity_lift_le)
Göös, Pitassi and Watson, (1). The lifting theorem says that this
protocol is optimal up to a constant factor when m is a large enough polynomial in n.
Main definitions #
Cslib.Communication.Lifting.ind:ncopies of the index gadget.Cslib.Communication.Lifting.lift: the lifted search problem.Cslib.Communication.Lifting.ofDecisionTree: the protocol simulating a decision tree.
Main results #
Cslib.Communication.Lifting.run_ofDecisionTree,Cslib.Communication.Lifting.depth_ofDecisionTree_le: the simulation is correct and costs⌈log₂ m⌉ + 1bits per query.Cslib.Communication.Lifting.ecomplexity_lift_le: the upper bound of the lifting theorem.
References #
Each query costs ⌈log₂ m⌉ + 1 bits.
The upper bound of the lifting theorem. If a decision tree of depth d solves R, then
the lifted problem has communication complexity at most d (⌈log₂ m⌉ + 1)
Göös, Pitassi and Watson, (1).