developers/zcash-halo2-dag.html

671 lines
46 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>Zcash halo2 DAG</title>
<!-- Pan/zoom SVGs -->
<script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
<link rel="stylesheet" href="zcash-dag.css">
<style>
@media (prefers-color-scheme: dark) {
body {
/* Material dark theme surface colour */
background-color: #121212;
}
}
</style>
</head>
<body>
<div id="dag"><svg width="1653pt" height="1223pt"
viewBox="0.00 0.00 1653.00 1222.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1218.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1218.5 1649,-1218.5 1649,4 -4,4"/>
<!-- zcash/halo2#426 -->
<g id="node1" class="node open">
<title>zcash/halo2#426</title>
<g id="a_node1"><a xlink:href="https://github.com/zcash/halo2/issues/426" xlink:title="zcash/halo2#426&#10;Publish `halo2_proofs&#10;0.1.0`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="438.5,-258.5 265.5,-258.5 265.5,-205.5 438.5,-205.5 438.5,-258.5"/>
<text text-anchor="middle" x="352" y="-243.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#426</text>
<text text-anchor="middle" x="352" y="-228.3" font-family="Times,serif" font-size="14.00" fill="#000000">Publish `halo2_proofs</text>
<text text-anchor="middle" x="352" y="-213.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.1.0`</text>
</a>
</g>
</g>
<!-- zcash/halo2#460 -->
<g id="node2" class="node open">
<title>zcash/halo2#460</title>
<g id="a_node2"><a xlink:href="https://github.com/zcash/halo2/issues/460" xlink:title="zcash/halo2#460&#10;Publish `halo2_gadgets&#10;v0.1.0`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="676,-336.5 491,-336.5 491,-283.5 676,-283.5 676,-336.5"/>
<text text-anchor="middle" x="583.5" y="-321.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#460</text>
<text text-anchor="middle" x="583.5" y="-306.3" font-family="Times,serif" font-size="14.00" fill="#000000">Publish `halo2_gadgets</text>
<text text-anchor="middle" x="583.5" y="-291.3" font-family="Times,serif" font-size="14.00" fill="#000000">v0.1.0`</text>
</a>
</g>
</g>
<!-- zcash/halo2#426&#45;&gt;zcash/halo2#460 -->
<g id="edge1" class="edge">
<title>zcash/halo2#426&#45;&gt;zcash/halo2#460</title>
<path fill="none" stroke="#000000" d="M430.7,-258.52C451.39,-265.49 473.84,-273.05 495,-280.18"/>
<polygon fill="#000000" stroke="#000000" points="494.0359,-283.5484 504.63,-283.42 496.2682,-276.9138 494.0359,-283.5484"/>
</g>
<!-- zcash/halo2#380 -->
<g id="node3" class="node open">
<title>zcash/halo2#380</title>
<g id="a_node3"><a xlink:href="https://github.com/zcash/halo2/pull/380" xlink:title="zcash/halo2#380&#10;[book] Fix errors and&#10;typos" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="667.5,-258.5 499.5,-258.5 499.5,-254.5 495.5,-254.5 495.5,-250.5 499.5,-250.5 499.5,-213.5 495.5,-213.5 495.5,-209.5 499.5,-209.5 499.5,-205.5 667.5,-205.5 667.5,-258.5"/>
<polyline fill="none" stroke="#000000" points="499.5,-254.5 503.5,-254.5 503.5,-250.5 499.5,-250.5 "/>
<polyline fill="none" stroke="#000000" points="499.5,-213.5 503.5,-213.5 503.5,-209.5 499.5,-209.5 "/>
<text text-anchor="middle" x="583.5" y="-243.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#380</text>
<text text-anchor="middle" x="583.5" y="-228.3" font-family="Times,serif" font-size="14.00" fill="#000000">[book] Fix errors and</text>
<text text-anchor="middle" x="583.5" y="-213.3" font-family="Times,serif" font-size="14.00" fill="#000000">typos</text>
</a>
</g>
</g>
<!-- zcash/halo2#426&#45;&gt;zcash/halo2#380 -->
<g id="edge2" class="edge">
<title>zcash/halo2#426&#45;&gt;zcash/halo2#380</title>
<path fill="none" stroke="#000000" d="M438.53,-232C455.02,-232 472.35,-232 489.06,-232"/>
<polygon fill="#000000" stroke="#000000" points="489.38,-235.5001 499.38,-232 489.38,-228.5001 489.38,-235.5001"/>
</g>
<!-- zcash/pasta_curves#22 -->
<g id="node4" class="node open">
<title>zcash/pasta_curves#22</title>
<g id="a_node4"><a xlink:href="https://github.com/zcash/pasta_curves/issues/22" xlink:title="zcash/pasta_curves#22&#10;Add `ec&#45;gpu` support" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="202.5,-523 16.5,-523 16.5,-485 202.5,-485 202.5,-523"/>
<text text-anchor="middle" x="109.5" y="-507.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/pasta_curves#22</text>
<text text-anchor="middle" x="109.5" y="-492.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add `ec&#45;gpu` support</text>
</a>
</g>
</g>
<!-- zcash/halo2#379 -->
<g id="node5" class="node open">
<title>zcash/halo2#379</title>
<g id="a_node5"><a xlink:href="https://github.com/zcash/halo2/issues/379" xlink:title="zcash/halo2#379&#10;Add `ec&#45;gpu` support" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="438.5,-523 265.5,-523 265.5,-485 438.5,-485 438.5,-523"/>
<text text-anchor="middle" x="352" y="-507.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#379</text>
<text text-anchor="middle" x="352" y="-492.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add `ec&#45;gpu` support</text>
</a>
</g>
</g>
<!-- zcash/pasta_curves#22&#45;&gt;zcash/halo2#379 -->
<g id="edge3" class="edge">
<title>zcash/pasta_curves#22&#45;&gt;zcash/halo2#379</title>
<path fill="none" stroke="#000000" d="M202.56,-504C219.76,-504 237.75,-504 255.06,-504"/>
<polygon fill="#000000" stroke="#000000" points="255.16,-507.5001 265.16,-504 255.16,-500.5001 255.16,-507.5001"/>
</g>
<!-- zcash/halo2#75 -->
<g id="node6" class="node open">
<title>zcash/halo2#75</title>
<g id="a_node6"><a xlink:href="https://github.com/zcash/halo2/issues/75" xlink:title="zcash/halo2#75&#10;Implement support for&#10;recursion" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1402.5,-648.5 1223.5,-648.5 1223.5,-595.5 1402.5,-595.5 1402.5,-648.5"/>
<text text-anchor="middle" x="1313" y="-633.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#75</text>
<text text-anchor="middle" x="1313" y="-618.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement support for</text>
<text text-anchor="middle" x="1313" y="-603.3" font-family="Times,serif" font-size="14.00" fill="#000000">recursion</text>
</a>
</g>
</g>
<!-- zcash/halo2#494 -->
<g id="node7" class="node open">
<title>zcash/halo2#494</title>
<g id="a_node7"><a xlink:href="https://github.com/zcash/halo2/issues/494" xlink:title="zcash/halo2#494&#10;Consider adding an API&#10;that enables application&#10;circuits to be built&#10;across both fields" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1645,-663.5 1456,-663.5 1456,-580.5 1645,-580.5 1645,-663.5"/>
<text text-anchor="middle" x="1550.5" y="-648.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#494</text>
<text text-anchor="middle" x="1550.5" y="-633.3" font-family="Times,serif" font-size="14.00" fill="#000000">Consider adding an API</text>
<text text-anchor="middle" x="1550.5" y="-618.3" font-family="Times,serif" font-size="14.00" fill="#000000">that enables application</text>
<text text-anchor="middle" x="1550.5" y="-603.3" font-family="Times,serif" font-size="14.00" fill="#000000">circuits to be built</text>
<text text-anchor="middle" x="1550.5" y="-588.3" font-family="Times,serif" font-size="14.00" fill="#000000">across both fields</text>
</a>
</g>
</g>
<!-- zcash/halo2#75&#45;&gt;zcash/halo2#494 -->
<g id="edge4" class="edge">
<title>zcash/halo2#75&#45;&gt;zcash/halo2#494</title>
<path fill="none" stroke="#000000" d="M1402.8,-622C1416.7,-622 1431.3,-622 1445.5,-622"/>
<polygon fill="#000000" stroke="#000000" points="1445.8,-625.5001 1455.8,-622 1445.8,-618.5001 1445.8,-625.5001"/>
</g>
<!-- zcash/halo2#79 -->
<g id="node8" class="node open">
<title>zcash/halo2#79</title>
<g id="a_node8"><a xlink:href="https://github.com/zcash/halo2/issues/79" xlink:title="zcash/halo2#79&#10;Migrate Rescue and&#10;Poseidon gadgets to&#10;algebraic hash&#10;abstraction" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1145.5,-930.5 984.5,-930.5 984.5,-847.5 1145.5,-847.5 1145.5,-930.5"/>
<text text-anchor="middle" x="1065" y="-915.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#79</text>
<text text-anchor="middle" x="1065" y="-900.3" font-family="Times,serif" font-size="14.00" fill="#000000">Migrate Rescue and</text>
<text text-anchor="middle" x="1065" y="-885.3" font-family="Times,serif" font-size="14.00" fill="#000000">Poseidon gadgets to</text>
<text text-anchor="middle" x="1065" y="-870.3" font-family="Times,serif" font-size="14.00" fill="#000000">algebraic hash</text>
<text text-anchor="middle" x="1065" y="-855.3" font-family="Times,serif" font-size="14.00" fill="#000000">abstraction</text>
</a>
</g>
</g>
<!-- zcash/halo2#78 -->
<g id="node9" class="node open">
<title>zcash/halo2#78</title>
<g id="a_node9"><a xlink:href="https://github.com/zcash/halo2/issues/78" xlink:title="zcash/halo2#78&#10;Implement algebraic hash&#10;/ random oracle&#10;abstraction gadget" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="923,-923 719,-923 719,-855 923,-855 923,-923"/>
<text text-anchor="middle" x="821" y="-907.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#78</text>
<text text-anchor="middle" x="821" y="-892.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement algebraic hash</text>
<text text-anchor="middle" x="821" y="-877.8" font-family="Times,serif" font-size="14.00" fill="#000000">/ random oracle</text>
<text text-anchor="middle" x="821" y="-862.8" font-family="Times,serif" font-size="14.00" fill="#000000">abstraction gadget</text>
</a>
</g>
</g>
<!-- zcash/halo2#78&#45;&gt;zcash/halo2#79 -->
<g id="edge5" class="edge">
<title>zcash/halo2#78&#45;&gt;zcash/halo2#79</title>
<path fill="none" stroke="#000000" d="M923.06,-889C940.04,-889 957.55,-889 974.23,-889"/>
<polygon fill="#000000" stroke="#000000" points="974.49,-892.5001 984.49,-889 974.49,-885.5001 974.49,-892.5001"/>
</g>
<!-- zcash/halo2#250 -->
<g id="node10" class="node open">
<title>zcash/halo2#250</title>
<g id="a_node10"><a xlink:href="https://github.com/zcash/halo2/issues/250" xlink:title="zcash/halo2#250&#10;Implement the logic for&#10;the IVC verifier circuit" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1158,-710.5 972,-710.5 972,-657.5 1158,-657.5 1158,-710.5"/>
<text text-anchor="middle" x="1065" y="-695.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#250</text>
<text text-anchor="middle" x="1065" y="-680.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement the logic for</text>
<text text-anchor="middle" x="1065" y="-665.3" font-family="Times,serif" font-size="14.00" fill="#000000">the IVC verifier circuit</text>
</a>
</g>
</g>
<!-- zcash/halo2#78&#45;&gt;zcash/halo2#250 -->
<g id="edge6" class="edge">
<title>zcash/halo2#78&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M910.1,-854.99C914.93,-852.17 919.6,-849.17 924,-846 973.13,-810.55 1016.7,-754.85 1042,-718.87"/>
<polygon fill="#000000" stroke="#000000" points="1044.8952,-720.8368 1047.7,-710.62 1039.1361,-716.8578 1044.8952,-720.8368"/>
</g>
<!-- zcash/halo2#250&#45;&gt;zcash/halo2#75 -->
<g id="edge7" class="edge">
<title>zcash/halo2#250&#45;&gt;zcash/halo2#75</title>
<path fill="none" stroke="#000000" d="M1158.1,-660.74C1176.1,-656.22 1195.1,-651.47 1213.4,-646.91"/>
<polygon fill="#000000" stroke="#000000" points="1214.256,-650.3038 1223.1,-644.47 1212.5483,-643.5153 1214.256,-650.3038"/>
</g>
<!-- zcash/halo2#57 -->
<g id="node11" class="node open">
<title>zcash/halo2#57</title>
<g id="a_node11"><a xlink:href="https://github.com/zcash/halo2/issues/57" xlink:title="zcash/halo2#57&#10;Remove unused&#10;fixed_values from&#10;ProvingKey" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="181,-686 38,-686 38,-618 181,-618 181,-686"/>
<text text-anchor="middle" x="109.5" y="-670.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#57</text>
<text text-anchor="middle" x="109.5" y="-655.8" font-family="Times,serif" font-size="14.00" fill="#000000">Remove unused</text>
<text text-anchor="middle" x="109.5" y="-640.8" font-family="Times,serif" font-size="14.00" fill="#000000">fixed_values from</text>
<text text-anchor="middle" x="109.5" y="-625.8" font-family="Times,serif" font-size="14.00" fill="#000000">ProvingKey</text>
</a>
</g>
</g>
<!-- zcash/halo2#443 -->
<g id="node12" class="node open">
<title>zcash/halo2#443</title>
<g id="a_node12"><a xlink:href="https://github.com/zcash/halo2/issues/443" xlink:title="zcash/halo2#443&#10;implement `read` &amp;&#10;`write` for `halo2::plonk&#10;::ProvingKey`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="449,-686 255,-686 255,-618 449,-618 449,-686"/>
<text text-anchor="middle" x="352" y="-670.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#443</text>
<text text-anchor="middle" x="352" y="-655.8" font-family="Times,serif" font-size="14.00" fill="#000000">implement `read` &amp;</text>
<text text-anchor="middle" x="352" y="-640.8" font-family="Times,serif" font-size="14.00" fill="#000000">`write` for `halo2::plonk</text>
<text text-anchor="middle" x="352" y="-625.8" font-family="Times,serif" font-size="14.00" fill="#000000">::ProvingKey`</text>
</a>
</g>
</g>
<!-- zcash/halo2#57&#45;&gt;zcash/halo2#443 -->
<g id="edge8" class="edge">
<title>zcash/halo2#57&#45;&gt;zcash/halo2#443</title>
<path fill="none" stroke="#000000" d="M181.27,-652C201.17,-652 223.21,-652 244.66,-652"/>
<polygon fill="#000000" stroke="#000000" points="244.79,-655.5001 254.79,-652 244.79,-648.5001 244.79,-655.5001"/>
</g>
<!-- zcash/halo2#482 -->
<g id="node13" class="node open">
<title>zcash/halo2#482</title>
<g id="a_node13"><a xlink:href="https://github.com/zcash/halo2/issues/482" xlink:title="zcash/halo2#482&#10;Raise MSRV to 1.56.1" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="196,-742 23,-742 23,-704 196,-704 196,-742"/>
<text text-anchor="middle" x="109.5" y="-726.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#482</text>
<text text-anchor="middle" x="109.5" y="-711.8" font-family="Times,serif" font-size="14.00" fill="#000000">Raise MSRV to 1.56.1</text>
</a>
</g>
</g>
<!-- zcash/halo2#483 -->
<g id="node14" class="node open">
<title>zcash/halo2#483</title>
<g id="a_node14"><a xlink:href="https://github.com/zcash/halo2/issues/483" xlink:title="zcash/halo2#483&#10;Refactor variable&#45;base&#10;scalar mul to distinguish&#10;the &quot;base field element&quot;&#10;case" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="449,-359.5 255,-359.5 255,-276.5 449,-276.5 449,-359.5"/>
<text text-anchor="middle" x="352" y="-344.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#483</text>
<text text-anchor="middle" x="352" y="-329.3" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor variable&#45;base</text>
<text text-anchor="middle" x="352" y="-314.3" font-family="Times,serif" font-size="14.00" fill="#000000">scalar mul to distinguish</text>
<text text-anchor="middle" x="352" y="-299.3" font-family="Times,serif" font-size="14.00" fill="#000000">the &quot;base field element&quot;</text>
<text text-anchor="middle" x="352" y="-284.3" font-family="Times,serif" font-size="14.00" fill="#000000">case</text>
</a>
</g>
</g>
<!-- zcash/halo2#483&#45;&gt;zcash/halo2#460 -->
<g id="edge9" class="edge">
<title>zcash/halo2#483&#45;&gt;zcash/halo2#460</title>
<path fill="none" stroke="#000000" d="M449.17,-314.64C459.47,-314.29 469.97,-313.92 480.34,-313.56"/>
<polygon fill="#000000" stroke="#000000" points="480.7745,-317.0474 490.65,-313.21 480.537,-310.0514 480.7745,-317.0474"/>
</g>
<!-- zcash/halo2#420 -->
<g id="node15" class="node open">
<title>zcash/halo2#420</title>
<g id="a_node15"><a xlink:href="https://github.com/zcash/halo2/issues/420" xlink:title="zcash/halo2#420&#10;CI: Measure memory&#45;usage&#10;benchmarks" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="217,-813.5 2,-813.5 2,-760.5 217,-760.5 217,-813.5"/>
<text text-anchor="middle" x="109.5" y="-798.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#420</text>
<text text-anchor="middle" x="109.5" y="-783.3" font-family="Times,serif" font-size="14.00" fill="#000000">CI: Measure memory&#45;usage</text>
<text text-anchor="middle" x="109.5" y="-768.3" font-family="Times,serif" font-size="14.00" fill="#000000">benchmarks</text>
</a>
</g>
</g>
<!-- zcash/halo2#418 -->
<g id="node16" class="node open">
<title>zcash/halo2#418</title>
<g id="a_node16"><a xlink:href="https://github.com/zcash/halo2/issues/418" xlink:title="zcash/halo2#418&#10;[memory optimization]&#10;lookup prover memory&#10;analysis" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="441.5,-821 262.5,-821 262.5,-753 441.5,-753 441.5,-821"/>
<text text-anchor="middle" x="352" y="-805.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#418</text>
<text text-anchor="middle" x="352" y="-790.8" font-family="Times,serif" font-size="14.00" fill="#000000">[memory optimization]</text>
<text text-anchor="middle" x="352" y="-775.8" font-family="Times,serif" font-size="14.00" fill="#000000">lookup prover memory</text>
<text text-anchor="middle" x="352" y="-760.8" font-family="Times,serif" font-size="14.00" fill="#000000">analysis</text>
</a>
</g>
</g>
<!-- zcash/halo2#420&#45;&gt;zcash/halo2#418 -->
<g id="edge10" class="edge">
<title>zcash/halo2#420&#45;&gt;zcash/halo2#418</title>
<path fill="none" stroke="#000000" d="M217.28,-787C228.92,-787 240.73,-787 252.27,-787"/>
<polygon fill="#000000" stroke="#000000" points="252.33,-790.5001 262.33,-787 252.33,-783.5001 252.33,-790.5001"/>
</g>
<!-- zcash/halo2#425 -->
<g id="node17" class="node open">
<title>zcash/halo2#425</title>
<g id="a_node17"><a xlink:href="https://github.com/zcash/halo2/issues/425" xlink:title="zcash/halo2#425&#10;Make `Assigned&lt;F: Field&gt;`&#10;easier to use" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="219,-455.5 0,-455.5 0,-402.5 219,-402.5 219,-455.5"/>
<text text-anchor="middle" x="109.5" y="-440.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#425</text>
<text text-anchor="middle" x="109.5" y="-425.3" font-family="Times,serif" font-size="14.00" fill="#000000">Make `Assigned&lt;F: Field&gt;`</text>
<text text-anchor="middle" x="109.5" y="-410.3" font-family="Times,serif" font-size="14.00" fill="#000000">easier to use</text>
</a>
</g>
</g>
<!-- zcash/halo2#425&#45;&gt;zcash/halo2#426 -->
<g id="edge11" class="edge">
<title>zcash/halo2#425&#45;&gt;zcash/halo2#426</title>
<path fill="none" stroke="#000000" d="M208.09,-402.42C212,-399.59 215.67,-396.46 219,-393 259.36,-351.02 215.24,-309.56 255,-267 255.89,-266.04 256.82,-265.11 257.76,-264.21"/>
<polygon fill="#000000" stroke="#000000" points="260.0611,-266.8483 265.49,-257.75 255.5723,-261.477 260.0611,-266.8483"/>
</g>
<!-- zcash/halo2#427 -->
<g id="node18" class="node open">
<title>zcash/halo2#427</title>
<g id="a_node18"><a xlink:href="https://github.com/zcash/halo2/issues/427" xlink:title="zcash/halo2#427&#10;Use smaller extended&#10;domains where possible&#10;during proving" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="203.5,-900 15.5,-900 15.5,-832 203.5,-832 203.5,-900"/>
<text text-anchor="middle" x="109.5" y="-884.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#427</text>
<text text-anchor="middle" x="109.5" y="-869.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use smaller extended</text>
<text text-anchor="middle" x="109.5" y="-854.8" font-family="Times,serif" font-size="14.00" fill="#000000">domains where possible</text>
<text text-anchor="middle" x="109.5" y="-839.8" font-family="Times,serif" font-size="14.00" fill="#000000">during proving</text>
</a>
</g>
</g>
<!-- zcash/halo2#456 -->
<g id="node19" class="node open">
<title>zcash/halo2#456</title>
<g id="a_node19"><a xlink:href="https://github.com/zcash/halo2/issues/456" xlink:title="zcash/halo2#456&#10;Benchmark `sha256`&#10;gadget." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="194.5,-971.5 24.5,-971.5 24.5,-918.5 194.5,-918.5 194.5,-971.5"/>
<text text-anchor="middle" x="109.5" y="-956.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#456</text>
<text text-anchor="middle" x="109.5" y="-941.3" font-family="Times,serif" font-size="14.00" fill="#000000">Benchmark `sha256`</text>
<text text-anchor="middle" x="109.5" y="-926.3" font-family="Times,serif" font-size="14.00" fill="#000000">gadget.</text>
</a>
</g>
</g>
<!-- zcash/halo2#455 -->
<g id="node20" class="node open">
<title>zcash/halo2#455</title>
<g id="a_node20"><a xlink:href="https://github.com/zcash/halo2/issues/455" xlink:title="zcash/halo2#455&#10;[Book] add description of&#10;Poseidon gadget and chip" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="209.5,-1042.5 9.5,-1042.5 9.5,-989.5 209.5,-989.5 209.5,-1042.5"/>
<text text-anchor="middle" x="109.5" y="-1027.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#455</text>
<text text-anchor="middle" x="109.5" y="-1012.3" font-family="Times,serif" font-size="14.00" fill="#000000">[Book] add description of</text>
<text text-anchor="middle" x="109.5" y="-997.3" font-family="Times,serif" font-size="14.00" fill="#000000">Poseidon gadget and chip</text>
</a>
</g>
</g>
<!-- zcash/halo2#251 -->
<g id="node21" class="node open">
<title>zcash/halo2#251</title>
<g id="a_node21"><a xlink:href="https://github.com/zcash/halo2/issues/251" xlink:title="zcash/halo2#251&#10;Implement user&#45;facing API&#10;for recursive proving of&#10;IVC" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1170,-593 960,-593 960,-525 1170,-525 1170,-593"/>
<text text-anchor="middle" x="1065" y="-577.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#251</text>
<text text-anchor="middle" x="1065" y="-562.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement user&#45;facing API</text>
<text text-anchor="middle" x="1065" y="-547.8" font-family="Times,serif" font-size="14.00" fill="#000000">for recursive proving of</text>
<text text-anchor="middle" x="1065" y="-532.8" font-family="Times,serif" font-size="14.00" fill="#000000">IVC</text>
</a>
</g>
</g>
<!-- zcash/halo2#251&#45;&gt;zcash/halo2#75 -->
<g id="edge12" class="edge">
<title>zcash/halo2#251&#45;&gt;zcash/halo2#75</title>
<path fill="none" stroke="#000000" d="M1170.2,-585.72C1184.5,-589.37 1199.3,-593.11 1213.5,-596.73"/>
<polygon fill="#000000" stroke="#000000" points="1212.746,-600.1496 1223.3,-599.22 1214.4699,-593.3651 1212.746,-600.1496"/>
</g>
<!-- zcash/halo2#437 -->
<g id="node22" class="node open">
<title>zcash/halo2#437</title>
<g id="a_node22"><a xlink:href="https://github.com/zcash/halo2/issues/437" xlink:title="zcash/halo2#437&#10;Amend user&#45;facing API to&#10;work for both IVC and PCD" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1420,-554.5 1206,-554.5 1206,-501.5 1420,-501.5 1420,-554.5"/>
<text text-anchor="middle" x="1313" y="-539.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#437</text>
<text text-anchor="middle" x="1313" y="-524.3" font-family="Times,serif" font-size="14.00" fill="#000000">Amend user&#45;facing API to</text>
<text text-anchor="middle" x="1313" y="-509.3" font-family="Times,serif" font-size="14.00" fill="#000000">work for both IVC and PCD</text>
</a>
</g>
</g>
<!-- zcash/halo2#251&#45;&gt;zcash/halo2#437 -->
<g id="edge13" class="edge">
<title>zcash/halo2#251&#45;&gt;zcash/halo2#437</title>
<path fill="none" stroke="#000000" d="M1170.2,-545.85C1178.6,-544.8 1187.2,-543.73 1195.7,-542.66"/>
<polygon fill="#000000" stroke="#000000" points="1196.2114,-546.1234 1205.7,-541.41 1195.3431,-539.1775 1196.2114,-546.1234"/>
</g>
<!-- zcash/halo2#436 -->
<g id="node23" class="node open">
<title>zcash/halo2#436</title>
<g id="a_node23"><a xlink:href="https://github.com/zcash/halo2/issues/436" xlink:title="zcash/halo2#436&#10;Implement mock&#10;verification circuit for&#10;PCD" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="671,-495 496,-495 496,-427 671,-427 671,-495"/>
<text text-anchor="middle" x="583.5" y="-479.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#436</text>
<text text-anchor="middle" x="583.5" y="-464.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement mock</text>
<text text-anchor="middle" x="583.5" y="-449.8" font-family="Times,serif" font-size="14.00" fill="#000000">verification circuit for</text>
<text text-anchor="middle" x="583.5" y="-434.8" font-family="Times,serif" font-size="14.00" fill="#000000">PCD</text>
</a>
</g>
</g>
<!-- zcash/halo2#436&#45;&gt;zcash/halo2#437 -->
<g id="edge14" class="edge">
<title>zcash/halo2#436&#45;&gt;zcash/halo2#437</title>
<path fill="none" stroke="#000000" d="M671.36,-471.87C686.89,-473.67 702.91,-475.46 718,-477 764.08,-481.71 1035.8,-504.7 1195.6,-518.15"/>
<polygon fill="#000000" stroke="#000000" points="1195.743,-521.6741 1206,-519.02 1196.3266,-514.6985 1195.743,-521.6741"/>
</g>
<!-- zcash/halo2#438 -->
<g id="node24" class="node open">
<title>zcash/halo2#438</title>
<g id="a_node24"><a xlink:href="https://github.com/zcash/halo2/issues/438" xlink:title="zcash/halo2#438&#10;Implement the logic for&#10;the PCD verifier circuit" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="914,-468.5 728,-468.5 728,-415.5 914,-415.5 914,-468.5"/>
<text text-anchor="middle" x="821" y="-453.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#438</text>
<text text-anchor="middle" x="821" y="-438.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement the logic for</text>
<text text-anchor="middle" x="821" y="-423.3" font-family="Times,serif" font-size="14.00" fill="#000000">the PCD verifier circuit</text>
</a>
</g>
</g>
<!-- zcash/halo2#436&#45;&gt;zcash/halo2#438 -->
<g id="edge15" class="edge">
<title>zcash/halo2#436&#45;&gt;zcash/halo2#438</title>
<path fill="none" stroke="#000000" d="M671.26,-453.98C686.33,-452.77 702.11,-451.51 717.54,-450.28"/>
<polygon fill="#000000" stroke="#000000" points="717.9325,-453.7598 727.62,-449.47 717.3718,-446.7823 717.9325,-453.7598"/>
</g>
<!-- zcash/halo2#435 -->
<g id="node25" class="node open">
<title>zcash/halo2#435</title>
<g id="a_node25"><a xlink:href="https://github.com/zcash/halo2/issues/435" xlink:title="zcash/halo2#435&#10;Implement mock&#10;verification circuit for&#10;IVC" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="671,-653 496,-653 496,-585 671,-585 671,-653"/>
<text text-anchor="middle" x="583.5" y="-637.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#435</text>
<text text-anchor="middle" x="583.5" y="-622.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement mock</text>
<text text-anchor="middle" x="583.5" y="-607.8" font-family="Times,serif" font-size="14.00" fill="#000000">verification circuit for</text>
<text text-anchor="middle" x="583.5" y="-592.8" font-family="Times,serif" font-size="14.00" fill="#000000">IVC</text>
</a>
</g>
</g>
<!-- zcash/halo2#247 -->
<g id="node26" class="node open">
<title>zcash/halo2#247</title>
<g id="a_node26"><a xlink:href="https://github.com/zcash/halo2/issues/247" xlink:title="zcash/halo2#247&#10;Implement underlying&#10;scaffolding for creating&#10;the IVC proof cycle" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="913.5,-593 728.5,-593 728.5,-525 913.5,-525 913.5,-593"/>
<text text-anchor="middle" x="821" y="-577.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#247</text>
<text text-anchor="middle" x="821" y="-562.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement underlying</text>
<text text-anchor="middle" x="821" y="-547.8" font-family="Times,serif" font-size="14.00" fill="#000000">scaffolding for creating</text>
<text text-anchor="middle" x="821" y="-532.8" font-family="Times,serif" font-size="14.00" fill="#000000">the IVC proof cycle</text>
</a>
</g>
</g>
<!-- zcash/halo2#435&#45;&gt;zcash/halo2#247 -->
<g id="edge16" class="edge">
<title>zcash/halo2#435&#45;&gt;zcash/halo2#247</title>
<path fill="none" stroke="#000000" d="M671.26,-596.83C686.69,-592.93 702.87,-588.84 718.66,-584.86"/>
<polygon fill="#000000" stroke="#000000" points="719.5843,-588.2365 728.42,-582.39 717.8669,-581.4504 719.5843,-588.2365"/>
</g>
<!-- zcash/halo2#247&#45;&gt;zcash/halo2#250 -->
<g id="edge17" class="edge">
<title>zcash/halo2#247&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M905.17,-593.06C911.59,-595.99 917.93,-598.98 924,-602 954.53,-617.17 987.53,-636.21 1013.9,-652.12"/>
<polygon fill="#000000" stroke="#000000" points="1012.2316,-655.2012 1022.6,-657.38 1015.8533,-649.211 1012.2316,-655.2012"/>
</g>
<!-- zcash/halo2#247&#45;&gt;zcash/halo2#251 -->
<g id="edge18" class="edge">
<title>zcash/halo2#247&#45;&gt;zcash/halo2#251</title>
<path fill="none" stroke="#000000" d="M913.59,-559C925.39,-559 937.58,-559 949.68,-559"/>
<polygon fill="#000000" stroke="#000000" points="949.81,-562.5001 959.81,-559 949.81,-555.5001 949.81,-562.5001"/>
</g>
<!-- zcash/halo2#246 -->
<g id="node27" class="node open">
<title>zcash/halo2#246</title>
<g id="a_node27"><a xlink:href="https://github.com/zcash/halo2/issues/246" xlink:title="zcash/halo2#246&#10;Create recursive proof&#10;structures" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="441.5,-599.5 262.5,-599.5 262.5,-546.5 441.5,-546.5 441.5,-599.5"/>
<text text-anchor="middle" x="352" y="-584.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#246</text>
<text text-anchor="middle" x="352" y="-569.3" font-family="Times,serif" font-size="14.00" fill="#000000">Create recursive proof</text>
<text text-anchor="middle" x="352" y="-554.3" font-family="Times,serif" font-size="14.00" fill="#000000">structures</text>
</a>
</g>
</g>
<!-- zcash/halo2#246&#45;&gt;zcash/halo2#436 -->
<g id="edge19" class="edge">
<title>zcash/halo2#246&#45;&gt;zcash/halo2#436</title>
<path fill="none" stroke="#000000" d="M421.19,-546.39C430.73,-541.97 440.25,-537.13 449,-532 466.48,-521.74 467.58,-514.36 485,-504 487.36,-502.6 489.78,-501.21 492.23,-499.85"/>
<polygon fill="#000000" stroke="#000000" points="494.1125,-502.8124 501.28,-495.01 490.8112,-496.6397 494.1125,-502.8124"/>
</g>
<!-- zcash/halo2#246&#45;&gt;zcash/halo2#435 -->
<g id="edge20" class="edge">
<title>zcash/halo2#246&#45;&gt;zcash/halo2#435</title>
<path fill="none" stroke="#000000" d="M441.5,-590.78C455.98,-593.66 471.03,-596.65 485.69,-599.56"/>
<polygon fill="#000000" stroke="#000000" points="485.2683,-603.0448 495.76,-601.57 486.6386,-596.1802 485.2683,-603.0448"/>
</g>
<!-- zcash/halo2#439 -->
<g id="node28" class="node open">
<title>zcash/halo2#439</title>
<g id="a_node28"><a xlink:href="https://github.com/zcash/halo2/issues/439" xlink:title="zcash/halo2#439&#10;Support split&#10;accumulation in Halo 2" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="201,-599.5 18,-599.5 18,-546.5 201,-546.5 201,-599.5"/>
<text text-anchor="middle" x="109.5" y="-584.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#439</text>
<text text-anchor="middle" x="109.5" y="-569.3" font-family="Times,serif" font-size="14.00" fill="#000000">Support split</text>
<text text-anchor="middle" x="109.5" y="-554.3" font-family="Times,serif" font-size="14.00" fill="#000000">accumulation in Halo 2</text>
</a>
</g>
</g>
<!-- zcash/halo2#439&#45;&gt;zcash/halo2#246 -->
<g id="edge21" class="edge">
<title>zcash/halo2#439&#45;&gt;zcash/halo2#246</title>
<path fill="none" stroke="#000000" d="M201.18,-573C217.73,-573 235.06,-573 251.84,-573"/>
<polygon fill="#000000" stroke="#000000" points="252.2,-576.5001 262.2,-573 252.2,-569.5001 252.2,-576.5001"/>
</g>
<!-- zcash/halo2#359 -->
<g id="node29" class="node open">
<title>zcash/halo2#359</title>
<g id="a_node29"><a xlink:href="https://github.com/zcash/halo2/issues/359" xlink:title="zcash/halo2#359&#10;Set up `BaseTranscript`,&#10;`ScalarTranscript`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="682,-566.5 485,-566.5 485,-513.5 682,-513.5 682,-566.5"/>
<text text-anchor="middle" x="583.5" y="-551.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#359</text>
<text text-anchor="middle" x="583.5" y="-536.3" font-family="Times,serif" font-size="14.00" fill="#000000">Set up `BaseTranscript`,</text>
<text text-anchor="middle" x="583.5" y="-521.3" font-family="Times,serif" font-size="14.00" fill="#000000">`ScalarTranscript`</text>
</a>
</g>
</g>
<!-- zcash/halo2#359&#45;&gt;zcash/halo2#247 -->
<g id="edge22" class="edge">
<title>zcash/halo2#359&#45;&gt;zcash/halo2#247</title>
<path fill="none" stroke="#000000" d="M682.16,-547.89C694.11,-548.85 706.33,-549.83 718.34,-550.79"/>
<polygon fill="#000000" stroke="#000000" points="718.1131,-554.2829 728.36,-551.59 718.6703,-547.3051 718.1131,-554.2829"/>
</g>
<!-- zcash/halo2#249 -->
<g id="node30" class="node open">
<title>zcash/halo2#249</title>
<g id="a_node30"><a xlink:href="https://github.com/zcash/halo2/issues/249" xlink:title="zcash/halo2#249&#10;Implement recursion&#10;circuit logic for&#10;handling public inputs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="909.5,-837 732.5,-837 732.5,-769 909.5,-769 909.5,-837"/>
<text text-anchor="middle" x="821" y="-821.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#249</text>
<text text-anchor="middle" x="821" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement recursion</text>
<text text-anchor="middle" x="821" y="-791.8" font-family="Times,serif" font-size="14.00" fill="#000000">circuit logic for</text>
<text text-anchor="middle" x="821" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000">handling public inputs</text>
</a>
</g>
</g>
<!-- zcash/halo2#249&#45;&gt;zcash/halo2#250 -->
<g id="edge23" class="edge">
<title>zcash/halo2#249&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M904.51,-768.96C911.14,-766.01 917.7,-763 924,-760 952.74,-746.3 983.98,-729.65 1009.7,-715.43"/>
<polygon fill="#000000" stroke="#000000" points="1011.5416,-718.4112 1018.6,-710.51 1008.1549,-712.285 1011.5416,-718.4112"/>
</g>
<!-- zcash/halo2#449 -->
<g id="node31" class="node open">
<title>zcash/halo2#449</title>
<g id="a_node31"><a xlink:href="https://github.com/zcash/halo2/issues/449" xlink:title="zcash/halo2#449&#10;`VerifyingKey`&#10;serialization is not&#10;round&#45;trip compatible" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="196,-384 23,-384 23,-316 196,-316 196,-384"/>
<text text-anchor="middle" x="109.5" y="-368.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#449</text>
<text text-anchor="middle" x="109.5" y="-353.8" font-family="Times,serif" font-size="14.00" fill="#000000">`VerifyingKey`</text>
<text text-anchor="middle" x="109.5" y="-338.8" font-family="Times,serif" font-size="14.00" fill="#000000">serialization is not</text>
<text text-anchor="middle" x="109.5" y="-323.8" font-family="Times,serif" font-size="14.00" fill="#000000">round&#45;trip compatible</text>
</a>
</g>
</g>
<!-- zcash/halo2#449&#45;&gt;zcash/halo2#426 -->
<g id="edge24" class="edge">
<title>zcash/halo2#449&#45;&gt;zcash/halo2#426</title>
<path fill="none" stroke="#000000" d="M196.27,-319.41C204.21,-315.35 211.92,-310.89 219,-306 238.42,-292.61 235.34,-280.04 255,-267 256.68,-265.89 258.4,-264.8 260.15,-263.75"/>
<polygon fill="#000000" stroke="#000000" points="262.1216,-266.658 269.15,-258.73 258.7117,-260.5446 262.1216,-266.658"/>
</g>
<!-- zcash/halo2#398 -->
<g id="node32" class="node open">
<title>zcash/halo2#398</title>
<g id="a_node32"><a xlink:href="https://github.com/zcash/halo2/issues/398" xlink:title="zcash/halo2#398&#10;[MockProver] Testing is&#10;slower after #389" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="204,-297.5 15,-297.5 15,-244.5 204,-244.5 204,-297.5"/>
<text text-anchor="middle" x="109.5" y="-282.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#398</text>
<text text-anchor="middle" x="109.5" y="-267.3" font-family="Times,serif" font-size="14.00" fill="#000000">[MockProver] Testing is</text>
<text text-anchor="middle" x="109.5" y="-252.3" font-family="Times,serif" font-size="14.00" fill="#000000">slower after #389</text>
</a>
</g>
</g>
<!-- zcash/halo2#398&#45;&gt;zcash/halo2#426 -->
<g id="edge25" class="edge">
<title>zcash/halo2#398&#45;&gt;zcash/halo2#426</title>
<path fill="none" stroke="#000000" d="M204.3,-255.75C220.91,-253.08 238.22,-250.3 254.89,-247.62"/>
<polygon fill="#000000" stroke="#000000" points="255.8651,-251.008 265.18,-245.96 254.7502,-244.0974 255.8651,-251.008"/>
</g>
<!-- zcash/halo2#445 -->
<g id="node33" class="node open">
<title>zcash/halo2#445</title>
<g id="a_node33"><a xlink:href="https://github.com/zcash/halo2/pull/445" xlink:title="zcash/halo2#445&#10;Fix mock prover&#10;performance regression&#10;for lookup arguments" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="203.5,-226 15.5,-226 15.5,-222 11.5,-222 11.5,-218 15.5,-218 15.5,-166 11.5,-166 11.5,-162 15.5,-162 15.5,-158 203.5,-158 203.5,-226"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="15.5,-222 19.5,-222 19.5,-218 15.5,-218 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="15.5,-166 19.5,-166 19.5,-162 15.5,-162 "/>
<text text-anchor="middle" x="109.5" y="-210.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#445</text>
<text text-anchor="middle" x="109.5" y="-195.8" font-family="Times,serif" font-size="14.00" fill="#000000">Fix mock prover</text>
<text text-anchor="middle" x="109.5" y="-180.8" font-family="Times,serif" font-size="14.00" fill="#000000">performance regression</text>
<text text-anchor="middle" x="109.5" y="-165.8" font-family="Times,serif" font-size="14.00" fill="#000000">for lookup arguments</text>
</a>
</g>
</g>
<!-- zcash/halo2#445&#45;&gt;zcash/halo2#426 -->
<g id="edge26" class="edge">
<title>zcash/halo2#445&#45;&gt;zcash/halo2#426</title>
<path fill="none" stroke="#000000" d="M203.6,-207.52C220.63,-210.33 238.41,-213.26 255.51,-216.08"/>
<polygon fill="#000000" stroke="#000000" points="255.0427,-219.5502 265.48,-217.73 256.1857,-212.6441 255.0427,-219.5502"/>
</g>
<!-- zcash/halo2#506 -->
<g id="node34" class="node open">
<title>zcash/halo2#506</title>
<g id="a_node34"><a xlink:href="https://github.com/zcash/halo2/issues/506" xlink:title="zcash/halo2#506&#10;Docs not rendering on&#10;docs.rs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="197.5,-139.5 21.5,-139.5 21.5,-86.5 197.5,-86.5 197.5,-139.5"/>
<text text-anchor="middle" x="109.5" y="-124.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#506</text>
<text text-anchor="middle" x="109.5" y="-109.3" font-family="Times,serif" font-size="14.00" fill="#000000">Docs not rendering on</text>
<text text-anchor="middle" x="109.5" y="-94.3" font-family="Times,serif" font-size="14.00" fill="#000000">docs.rs</text>
</a>
</g>
</g>
<!-- zcash/halo2#506&#45;&gt;zcash/halo2#426 -->
<g id="edge27" class="edge">
<title>zcash/halo2#506&#45;&gt;zcash/halo2#426</title>
<path fill="none" stroke="#000000" d="M196.62,-139.5C204.28,-142.48 211.84,-145.65 219,-149 249.32,-163.19 281.21,-182.91 306.16,-199.56"/>
<polygon fill="#000000" stroke="#000000" points="304.4331,-202.617 314.68,-205.31 308.349,-196.8148 304.4331,-202.617"/>
</g>
<!-- zcash/halo2#480 -->
<g id="node35" class="node open">
<title>zcash/halo2#480</title>
<g id="a_node35"><a xlink:href="https://github.com/zcash/halo2/pull/480" xlink:title="zcash/halo2#480&#10;Add `MockProver::assert_s&#10;atisfied` with pretty&#45;&#10;printed failures" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="216,-68 3,-68 3,-64 -1,-64 -1,-60 3,-60 3,-8 -1,-8 -1,-4 3,-4 3,0 216,0 216,-68"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="3,-64 7,-64 7,-60 3,-60 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="3,-8 7,-8 7,-4 3,-4 "/>
<text text-anchor="middle" x="109.5" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#480</text>
<text text-anchor="middle" x="109.5" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add `MockProver::assert_s</text>
<text text-anchor="middle" x="109.5" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">atisfied` with pretty&#45;</text>
<text text-anchor="middle" x="109.5" y="-7.8" font-family="Times,serif" font-size="14.00" fill="#000000">printed failures</text>
</a>
</g>
</g>
<!-- zcash/halo2#480&#45;&gt;zcash/halo2#426 -->
<g id="edge28" class="edge">
<title>zcash/halo2#480&#45;&gt;zcash/halo2#426</title>
<path fill="none" stroke="#000000" d="M205.09,-68.153C209.92,-70.917 214.59,-73.864 219,-77 265.36,-109.95 305.84,-162.46 329.61,-197.09"/>
<polygon fill="#000000" stroke="#000000" points="326.7808,-199.1544 335.28,-205.48 332.5805,-195.2348 326.7808,-199.1544"/>
</g>
<!-- zcash/halo2#248 -->
<g id="node36" class="node open">
<title>zcash/halo2#248</title>
<g id="a_node36"><a xlink:href="https://github.com/zcash/halo2/issues/248" xlink:title="zcash/halo2#248&#10;Implement endoscaling in&#10;the circuit" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="922.5,-750.5 719.5,-750.5 719.5,-697.5 922.5,-697.5 922.5,-750.5"/>
<text text-anchor="middle" x="821" y="-735.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#248</text>
<text text-anchor="middle" x="821" y="-720.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement endoscaling in</text>
<text text-anchor="middle" x="821" y="-705.3" font-family="Times,serif" font-size="14.00" fill="#000000">the circuit</text>
</a>
</g>
</g>
<!-- zcash/halo2#248&#45;&gt;zcash/halo2#250 -->
<g id="edge29" class="edge">
<title>zcash/halo2#248&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M922.71,-707.33C935.51,-705.23 948.61,-703.08 961.43,-700.98"/>
<polygon fill="#000000" stroke="#000000" points="962.341,-704.3773 971.64,-699.3 961.2044,-697.4701 962.341,-704.3773"/>
</g>
<!-- zcash/halo2#245 -->
<g id="node37" class="node open">
<title>zcash/halo2#245</title>
<g id="a_node37"><a xlink:href="https://github.com/zcash/halo2/issues/245" xlink:title="zcash/halo2#245&#10;Remove the need to&#10;multiply by powers of x^n&#10;in verifier" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="924,-679 718,-679 718,-611 924,-611 924,-679"/>
<text text-anchor="middle" x="821" y="-663.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#245</text>
<text text-anchor="middle" x="821" y="-648.8" font-family="Times,serif" font-size="14.00" fill="#000000">Remove the need to</text>
<text text-anchor="middle" x="821" y="-633.8" font-family="Times,serif" font-size="14.00" fill="#000000">multiply by powers of x^n</text>
<text text-anchor="middle" x="821" y="-618.8" font-family="Times,serif" font-size="14.00" fill="#000000">in verifier</text>
</a>
</g>
</g>
<!-- zcash/halo2#245&#45;&gt;zcash/halo2#250 -->
<g id="edge30" class="edge">
<title>zcash/halo2#245&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M924.12,-661.48C936.65,-663.48 949.44,-665.53 961.96,-667.53"/>
<polygon fill="#000000" stroke="#000000" points="961.5036,-671.0014 971.93,-669.12 962.606,-664.0887 961.5036,-671.0014"/>
</g>
<!-- zcash/halo2#312 -->
<g id="node38" class="node open">
<title>zcash/halo2#312</title>
<g id="a_node38"><a xlink:href="https://github.com/zcash/halo2/issues/312" xlink:title="zcash/halo2#312&#10;[Book] Document gadget&#10;API" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="207,-1113.5 12,-1113.5 12,-1060.5 207,-1060.5 207,-1113.5"/>
<text text-anchor="middle" x="109.5" y="-1098.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#312</text>
<text text-anchor="middle" x="109.5" y="-1083.3" font-family="Times,serif" font-size="14.00" fill="#000000">[Book] Document gadget</text>
<text text-anchor="middle" x="109.5" y="-1068.3" font-family="Times,serif" font-size="14.00" fill="#000000">API</text>
</a>
</g>
</g>
<!-- zcash/pasta_curves#23 -->
<g id="node39" class="node open">
<title>zcash/pasta_curves#23</title>
<g id="a_node39"><a xlink:href="https://github.com/zcash/pasta_curves/pull/23" xlink:title="zcash/pasta_curves#23&#10;Ensure that GitHub&#39;s&#10;&quot;View license&quot; link&#10;points to complete&#10;license information" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="202.5,-1214.5 16.5,-1214.5 16.5,-1210.5 12.5,-1210.5 12.5,-1206.5 16.5,-1206.5 16.5,-1139.5 12.5,-1139.5 12.5,-1135.5 16.5,-1135.5 16.5,-1131.5 202.5,-1131.5 202.5,-1214.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16.5,-1210.5 20.5,-1210.5 20.5,-1206.5 16.5,-1206.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16.5,-1139.5 20.5,-1139.5 20.5,-1135.5 16.5,-1135.5 "/>
<text text-anchor="middle" x="109.5" y="-1199.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/pasta_curves#23</text>
<text text-anchor="middle" x="109.5" y="-1184.3" font-family="Times,serif" font-size="14.00" fill="#000000">Ensure that GitHub&#39;s</text>
<text text-anchor="middle" x="109.5" y="-1169.3" font-family="Times,serif" font-size="14.00" fill="#000000">&quot;View license&quot; link</text>
<text text-anchor="middle" x="109.5" y="-1154.3" font-family="Times,serif" font-size="14.00" fill="#000000">points to complete</text>
<text text-anchor="middle" x="109.5" y="-1139.3" font-family="Times,serif" font-size="14.00" fill="#000000">license information</text>
</a>
</g>
</g>
</g>
</svg>
</div>
<script>
svgPanZoom('#dag > svg', {
zoomScaleSensitivity: 0.4
});
</script>
</body>
</html>