"source": "## META\n\n<div class=\"ntt-cell-head ntt-role-meta\">\n <span class=\"ntt-difficulty-pill\">Level 1</span>\n <div class=\"ntt-cell-row\">\n <span class=\"ntt-role-pill\">META</span>\n <span class=\"ntt-kind-pill\">route nav</span>\n </div>\n <div class=\"ntt-cell-title\">Route Guardrails</div>\n</div>\n\nYou are at **step 18 of 27** in the only supported route.\n\nNever choose the next notebook manually from the file tree. Use only the links in this cell and the final handoff cell.\n\n**Immediate navigation**\n- Next notebook: [Kyber Mapping / 05 Kyber NTT And Base Multiplication / Lecture](../../kyber_mapping/05_kyber_ntt_and_base_multiplication/lecture.ipynb)\n- Previous notebook: [Butterfly Mechanics / 04 Fast Inverse GS / Problems](problems.ipynb)\n- Restart route: [Start Here](../../START_HERE.ipynb)\n\n**Official route chain**\n1. [Start Here](../../START_HERE.ipynb)\n2. [Course Blueprint](../../COURSE_BLUEPRINT.ipynb)\n3. [Foundations / 01 Convolution To Toy NTT / Lecture](../../foundations/01_convolution_to_toy_ntt/lecture.ipynb)\n4. [Foundations / 01 Convolution To Toy NTT / Lab](../../foundations/01_convolution_to_toy_ntt/lab.ipynb)\n5. [Foundations / 01 Convolution To Toy NTT / Problems](../../foundations/01_convolution_to_toy_ntt/problems.ipynb)\n6. [Foundations / 01 Convolution To Toy NTT / Studio](../../foundations/01_convolution_to_toy_ntt/studio.ipynb)\n7. [Foundations / 02 Negative Wrapped NTT / Lecture](../../foundations/02_negative_wrapped_ntt/lecture.ipynb)\n8. [Foundations / 02 Negative Wrapped NTT / Lab](../../foundations/02_negative_wrapped_ntt/lab.ipynb)\n9. [Foundations / 02 Negative Wrapped NTT / Problems](../../foundations/02_negative_wrapped_ntt/problems.ipynb)\n10. [Foundations / 02 Negative Wrapped NTT / Studio](../../foundations/02_negative_wrapped_ntt/studio.ipynb)\n11. [Butterfly Mechanics / 03 Fast Forward CT / Lecture](../03_fast_forward_ct/lecture.ipynb)\n12. [Butterfly Mechanics / 03 Fast Forward CT / Lab](../03_fast_forward_ct/lab.ipynb)\n13. [Butterfly Mechanics / 03 Fast Forward CT / Problems](../03_fast_forward_ct/problems.ipynb)\n14. [Butterfly Mechanics / 03 Fast Forward CT / Studio](../03_fast_forward_ct/studio.ipynb)\n15. [Butterfly Mechanics / 04 Fast Inverse GS / Lecture](lecture.ipynb)\n16. [Butterfly Mechanics / 04 Fast Inverse GS / Lab](lab.ipynb)\n17. [Butterfly Mechanics / 04 Fast Inverse GS / Problems](problems.ipynb)\n18. **Butterfly Mechanics / 04 Fast Inverse GS / Studio** <- you are here\n19. [Kyber Mapping / 05 Kyber NTT And Base Multiplication / Lecture](../../kyber_mapping/05_kyber_ntt_and_base_multiplication/lecture.ipynb)\n20. [Kyber Mapping / 05 Kyber NTT And Base Multiplication / Lab](../../kyber_mapping/05_kyber_ntt_and_base_multiplication/lab.ipynb)\n21. [Kyber Mapping / 05 Kyber NTT And Base Multiplication / Problems](../../kyber_mapping/05_kyber_ntt_and_base_multiplication/problems.ipynb)\n22. [Kyber Mapping / 05 Kyber NTT And Base Multiplication / Studio](../../kyber_mapping/05_kyber_ntt_and_base_multiplication/studio.ipynb)\n23. [Professional / 06 Debugging NTT Failures / Lecture](../../professional/06_debugging_ntt_failures/lecture.ipynb)\n24. [Professional / 06 Debugging NTT Failures / Lab](../../professional/06_debugging_ntt_failures/lab.ipynb)\n25. [Professional / 06 Debugging NTT Failures / Problems](../../professional/06_debugging_ntt_failures/problems.ipynb)\n26. [Professional / 06 Debugging NTT Failures / Studio](../../professional/06_debugging_ntt_failures/studio.ipynb)\n27. [Course Complete](../../COURSE_COMPLETE.ipynb)\n"
},
{
"cell_type": "markdown",
"metadata": {
"pedagogy": {
"role": "meta",
"difficulty": 1,
"kind": "orientation",
"title": "Studio Goals"
}
},
"source": "## META\n\n<div class=\"ntt-cell-head ntt-role-meta\">\n <span class=\"ntt-difficulty-pill\">Level 1</span>\n <div class=\"ntt-cell-row\">\n <span class=\"ntt-role-pill\">META</span>\n <span class=\"ntt-kind-pill\">orientation</span>\n </div>\n <div class=\"ntt-cell-title\">Studio Goals</div>\n</div>\n\nThe studio puts CT and GS next to each other and treats ordering as a first-class object, not a side note.\n"
"source": "## MANDATORY\n\n<div class=\"ntt-cell-head ntt-role-mandatory\">\n <span class=\"ntt-difficulty-pill\">Level 3</span>\n <div class=\"ntt-cell-row\">\n <span class=\"ntt-role-pill\">MANDATORY</span>\n <span class=\"ntt-kind-pill\">explanation</span>\n </div>\n <div class=\"ntt-cell-title\">Forward And Inverse Need To Meet In The Middle Cleanly</div>\n</div>\n\nThe whole point of the pair is:\n\n- CT gets you into the transform domain efficiently\n- GS gets you back out efficiently\n- the two only meet cleanly if you respect BO/NO and the final scaling\n"
"source": "## MANDATORY\n\n<div class=\"ntt-cell-head ntt-role-mandatory\">\n <span class=\"ntt-difficulty-pill\">Level 2</span>\n <div class=\"ntt-cell-row\">\n <span class=\"ntt-role-pill\">MANDATORY</span>\n <span class=\"ntt-kind-pill\">exercise</span>\n </div>\n <div class=\"ntt-cell-title\">Debug Checklist</div>\n</div>\n\nIf the inverse output is wrong, inspect:\n\n1. whether the input was BO\n2. whether the zetas were inverse-stage zetas\n3. whether the final `n^-1` scaling was applied\n4. whether you compared the correct order against the direct reference\n"
"source": "## MANDATORY\n\n<div class=\"ntt-cell-head ntt-role-mandatory\">\n <span class=\"ntt-difficulty-pill\">Level 2</span>\n <div class=\"ntt-cell-row\">\n <span class=\"ntt-role-pill\">MANDATORY</span>\n <span class=\"ntt-kind-pill\">reflection</span>\n </div>\n <div class=\"ntt-cell-title\">Reflection</div>\n</div>\n\nExplain why \u201cthe inverse looked almost right\u201d is a dangerous debugging sentence unless you say what happened with ordering and scaling.\n"