diff --git a/commentary/Gates.md b/commentary/Gates.md index d04b010..58fb7e9 100644 --- a/commentary/Gates.md +++ b/commentary/Gates.md @@ -113,7 +113,7 @@ This gate allows dynamically indexing (relatively short) vector of size $2^n$. The idea is to decompose the index into bits $\mathsf{idx} = \sum b_i 2^i$; then if you can write down "selectors" like for example $$ -S_{11} := S_{\mathtt{0b1011}} := b_0(1-b_1)b_2 b_3 = \left\{\begin{array}{ll} +S_{11} := S_{\mathtt{0b1011}} := b_0(1-b_1)b_2 b_3 = \left\{\begin{array}{lll} 1, &\textrm{if}& \mathsf{idx} = \mathtt{0b1011}=11 \\ 0, &\textrm{if}& \mathsf{idx} \neq 11 \end{array}\right. diff --git a/commentary/README.md b/commentary/README.md index 303755d..d48b969 100644 --- a/commentary/README.md +++ b/commentary/README.md @@ -19,3 +19,10 @@ Then more details can be found at: - [Lookups.md](Lookups.md) - Lookup gates and the lookup argument - [Recursion.md](Recursion.md) - Recursive proofs +PDF version +----------- + +Unfortunately, `github`'s support of LaTeX inside Markdown is very buggy. + +As an experiment I tried to create a [PDF version](commentary.pdf) using +[Pandoc](https://pandoc.org/). \ No newline at end of file diff --git a/commentary/Wiring.md b/commentary/Wiring.md index d9c241a..63ab9b4 100644 --- a/commentary/Wiring.md +++ b/commentary/Wiring.md @@ -59,7 +59,7 @@ So we should get $NM/\mathsf{maxdeg}$ partial products. In our case $M/\mathsf{m Essentially the 80 routed columns' permutation argument is compressed into 10 partial product columns, and we will have equations ensuring that these are constructed correctly, and that the full product is 1 (which in turn proves the wire constraints). -Note: the Plonky2 source code uses some absolute horrible names here, and then does shiftings, reorderings, basically moving the last column to the first one, and calls this "z" while the rest "partial products", and then reorders even these between the challenge rounds; but I think this is just a +1 error and programmers not understanding what they are doing ``¯\_(ツ)_/¯``. Note that the first column needs to also opened "on the next row", while the rest only on "this row", but really, that's not a valid reason to do all this shit. +Note: the Plonky2 source code uses some absolute horrible names here, and then does shiftings, reorderings, basically moving the last column to the first one, and calls this "z" while the rest "partial products", and then reorders even these between the challenge rounds; but I think this is just a +1 error and programmers not understanding what they are doing... Note that the first column needs to also opened "on the next row", while the rest only on "this row", but really, that's not a valid reason to do all this shit. Here is an ASCII graphics explaning what happens in the source code (indices denote the corresponding partial product): diff --git a/commentary/commentary.pdf b/commentary/commentary.pdf new file mode 100644 index 0000000..107ac99 Binary files /dev/null and b/commentary/commentary.pdf differ diff --git a/commentary/make_pdf.sh b/commentary/make_pdf.sh new file mode 100755 index 0000000..2e4e8ba --- /dev/null +++ b/commentary/make_pdf.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +OUTPUT="commentary.pdf" + +MD_FILES="\ + Overview.md\ + Gates.md\ + Selectors.md\ + GateConstraints.md\ + Wiring.md\ + Poseidon.md\ + FRI.md\ + Challenges.md\ + Protocol.md\ + Lookups.md\ + Recursion.md" + +#echo ${MD_FILES} + +pandoc -o $OUTPUT ${MD_FILES}