Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
boazbk committed Aug 5, 2021
1 parent 3b7fa3b commit 39cf76b
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions lec_11_running_time.md
Original file line number Diff line number Diff line change
Expand Up @@ -696,6 +696,7 @@ Y[0] = NAND(temp_3,temp_4)
![A NAND circuit for $XOR_3$ obtained by "unrolling the loop" of the NAND-TM program for computing $XOR$ three times.](../figure/unrolled_circuit.png){#unrolledcircuitfig .margin }



Key to this transformation was the fact that in our original NAND-TM program for $XOR$, regardless of whether the input is $011$, $100$, or any other string, the index variable `i` is guaranteed to equal $0$ in the first iteration, $1$ in the second iteration, $2$ in the third iteration, and so on and so forth.
The particular sequence $0,1,2,\ldots$ is immaterial: the crucial property is that the NAND-TM program for $XOR$ is _oblivious_ in the sense that the value of the index `i` in the $j$-th iteration depends only on $j$ and does not depend on the particular choice of the input.
Luckily, it is possible to transform every NAND-TM program into a functionally equivalent oblivious program with at most quadratic overhead. (Similarly we can transform any Turing machine into a functionally equivalent oblivious Turing machine, see [oblivious-ex](){.ref}.)
Expand Down

0 comments on commit 39cf76b

Please sign in to comment.