patternMinor
Proofs of $P^{\#P}\subseteq P^{PP}$ and $\#P\subseteq FP^{PP}$
Viewed 0 times
andsubseteqproofs
Problem
$P^{\#P}\subseteq P^{PP}$ and $\#P\subseteq FP^{PP}$ are known and usually handwaived as exercises. I could not find proofs of these two results.
What is a rigorous proof for $P^{\#P}\subseteq P^{PP}$ and $\#P\subseteq FP^{PP}$?
How is having an oracle to $\#P$ at most as powerful as having an oracle to $PP$?
What is a rigorous proof for $P^{\#P}\subseteq P^{PP}$ and $\#P\subseteq FP^{PP}$?
How is having an oracle to $\#P$ at most as powerful as having an oracle to $PP$?
Solution
This is not the full proof but the complete idea:
Let Turing machine $M$, define $L_M$ be the language defined as $L_M = \{ ((x, y) \in \Sigma^*\times \mathbb{N} ~|~ \#\text{accepting path of } {M}(x) > y \} $
Then prove that $L_M\in PP$.
Now use the binary search technique to compute the function g(x) in $\#P$ using $L_M$.
And other way around its easy by using $\#P$ function TM you can always answer whether no. of accepting paths are more $\frac{1}{2}$ or not.
Let $L\in P^{\#p}$, then there is a deterministic oracle Turing machine $M'$ that runs polynomial time, and a function $g\in \#p$
such that $L= M'^{g}$. Let $M$ be a poly time Turing machine that uses at most $poly(n)$ non-deterministic steps such that $g(x)=\# acceptig pathof M"(x)$. Use the standard binary search technique to show that $g(x)$ can be computed using $O(n)$ many queries to the language $L_M$.
$x$, oracle access to $L_M$ and output $g(x)$.
-
Initialize $p=|x|$, $y=2^p$.
-
Repeat steps 3 & 4 until $p\ge 0$
-
Query $(x,y)$ to the oracle; If YES, then set $y=y+2^{p+1}$;
Else
break .
-
Set $p=p-1$
Now we know the range for g which is $2^{p-1}<g<2^{p}$
$use binary search technique in this range and since there can be exponential terms hence binary search technique will take O(|x|) time.
Clearly, the algorithm above runs in time ${\sf poly}(n)$, and hence computing $g$ can be done in $poly$ with oracle access to $L_M\in PP$.
Let Turing machine $M$, define $L_M$ be the language defined as $L_M = \{ ((x, y) \in \Sigma^*\times \mathbb{N} ~|~ \#\text{accepting path of } {M}(x) > y \} $
Then prove that $L_M\in PP$.
Now use the binary search technique to compute the function g(x) in $\#P$ using $L_M$.
And other way around its easy by using $\#P$ function TM you can always answer whether no. of accepting paths are more $\frac{1}{2}$ or not.
Let $L\in P^{\#p}$, then there is a deterministic oracle Turing machine $M'$ that runs polynomial time, and a function $g\in \#p$
such that $L= M'^{g}$. Let $M$ be a poly time Turing machine that uses at most $poly(n)$ non-deterministic steps such that $g(x)=\# acceptig pathof M"(x)$. Use the standard binary search technique to show that $g(x)$ can be computed using $O(n)$ many queries to the language $L_M$.
$x$, oracle access to $L_M$ and output $g(x)$.
-
Initialize $p=|x|$, $y=2^p$.
-
Repeat steps 3 & 4 until $p\ge 0$
-
Query $(x,y)$ to the oracle; If YES, then set $y=y+2^{p+1}$;
Else
break .
-
Set $p=p-1$
Now we know the range for g which is $2^{p-1}<g<2^{p}$
$use binary search technique in this range and since there can be exponential terms hence binary search technique will take O(|x|) time.
Clearly, the algorithm above runs in time ${\sf poly}(n)$, and hence computing $g$ can be done in $poly$ with oracle access to $L_M\in PP$.
Context
StackExchange Computer Science Q#57139, answer score: 6
Revisions (0)
No revisions yet.