{
  "schemaVersion": 1,
  "lessonId": "state-03",
  "contentHash": "f5aeddbef90d417df5b3a131bd0b5bda95f7b7da91cb151fb394a0ae5478ecba",
  "rendererHash": "a1bd5b648f4731ae5d5f0a24811c2540d1a0a132149ce589d17c4113509cbedf",
  "kind": "executed",
  "generatedAt": "2026-10-20T10:45:16.178098+00:00",
  "provenance": "recorded_cpu_computation",
  "environment": {
    "backend": "cpu",
    "deviceCount": 1,
    "jax": "0.9.2",
    "numpy": "2.4.4",
    "matplotlib": "3.10.8"
  },
  "stdout": "History: [1.    1.5   1.75  1.875]\nFinal: 1.875\n",
  "data": {
    "kind": "line",
    "x": [
      1,
      2,
      3,
      4
    ],
    "xlabel": "completed step",
    "ylabel": "carry value",
    "series": [
      {
        "label": "scan history",
        "y": [
          1.0,
          1.5,
          1.75,
          1.875
        ]
      },
      {
        "label": "fixed point 2",
        "y": [
          2.0,
          2.0,
          2.0,
          2.0
        ]
      }
    ]
  },
  "diagram": {
    "title": "Carry moves through time; outputs are collected",
    "prediction": "What changes if the step emits the old carry instead of the new carry?",
    "reading": "An additive scan starts with carry \\(0\\) and inputs \\(1,2,3\\). Horizontal arrows pass updated carry; downward arrows collect emitted values. Final carry \\(6\\) and outputs \\([1,3,6]\\) are different return values. Arrow lengths do not represent runtime.",
    "alt": "An additive scan starts with carry \\(0\\) and inputs \\(1,2,3\\). Horizontal arrows pass updated carry; downward arrows collect emitted values. Final carry \\(6\\) and outputs \\([1,3,6]\\) are different return values. Arrow lengths do not represent runtime.",
    "scope": "Architecture and dataflow mechanism diagram.",
    "height": 4.8,
    "panel": {
      "kind": "graph",
      "nodes": [
        {
          "id": "x0",
          "x": 2,
          "y": 1,
          "label": "Input 1",
          "tone": "data",
          "w": 2,
          "h": 0.85
        },
        {
          "id": "x1",
          "x": 5,
          "y": 1,
          "label": "Input 2",
          "tone": "data",
          "w": 2,
          "h": 0.85
        },
        {
          "id": "x2",
          "x": 8,
          "y": 1,
          "label": "Input 3",
          "tone": "data",
          "w": 2,
          "h": 0.85
        },
        {
          "id": "s0",
          "x": 2,
          "y": 3,
          "label": "Step 0\ncarry + input",
          "tone": "data",
          "w": 2.5,
          "h": 0.85
        },
        {
          "id": "s1",
          "x": 5,
          "y": 3,
          "label": "Step 1\ncarry + input",
          "tone": "data",
          "w": 2.5,
          "h": 0.85
        },
        {
          "id": "s2",
          "x": 8,
          "y": 3,
          "label": "Step 2\ncarry + input",
          "tone": "data",
          "w": 2.5,
          "h": 0.85
        },
        {
          "id": "y0",
          "x": 2,
          "y": 5,
          "label": "Emit 1",
          "tone": "result",
          "w": 2,
          "h": 0.85
        },
        {
          "id": "y1",
          "x": 5,
          "y": 5,
          "label": "Emit 3",
          "tone": "result",
          "w": 2,
          "h": 0.85
        },
        {
          "id": "y2",
          "x": 8,
          "y": 5,
          "label": "Emit 6",
          "tone": "result",
          "w": 2,
          "h": 0.85
        }
      ],
      "edges": [
        {
          "from": "x0",
          "to": "s0"
        },
        {
          "from": "x1",
          "to": "s1"
        },
        {
          "from": "x2",
          "to": "s2"
        },
        {
          "from": "s0",
          "to": "y0"
        },
        {
          "from": "s1",
          "to": "y1"
        },
        {
          "from": "s2",
          "to": "y2"
        },
        {
          "from": "s0",
          "to": "s1",
          "exit": "right",
          "enter": "left",
          "label": "1"
        },
        {
          "from": "s1",
          "to": "s2",
          "exit": "right",
          "enter": "left",
          "label": "3"
        }
      ],
      "height": 6,
      "width": 10
    }
  }
}
