)]}'
{
  "commit": "15ad0fc9058805bb201fea1215d91e73917d4010",
  "tree": "4444a192372af607dc5d443e4f12de28335aaebc",
  "parents": [
    "6ca23a7b8bee57152110ce500ce795148707d4ed"
  ],
  "author": {
    "name": "Leonardo de Moura",
    "email": "leomoura@amazon.com",
    "time": "Fri Feb 13 16:57:20 2026 -0800"
  },
  "committer": {
    "name": "Leonardo de Moura",
    "email": "leomoura@amazon.com",
    "time": "Fri Feb 13 16:57:20 2026 -0800"
  },
  "message": "fix: handle non-internalized terms in semiring reifier\n\nThis PR fixes a panic in `grind` where `sreifyCore?` could encounter\npower subterms not yet internalized in the E-graph during nested\npropagation. The ring reifier (`reifyCore?`) already had a defensive\n`alreadyInternalized` check before creating variables, but the semiring\nreifier (`sreifyCore?`) was missing this guard. When `propagatePower`\ndecomposed `a ^ (b₁ + b₂)` into `a^b₁ * a^b₂` and the resulting terms\ntriggered further propagation, the semiring reifier could be called on\nsubterms not yet in the E-graph, causing `markTerm` to fail.\n\nCloses #12428\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2f502546bd22863de461a5aedf1a4e0438260be3",
      "old_mode": 33188,
      "old_path": "src/Lean/Meta/Tactic/Grind/Arith/CommRing/Reify.lean",
      "new_id": "f04910195ec37643962f228b84e1e77d88afd69e",
      "new_mode": 33188,
      "new_path": "src/Lean/Meta/Tactic/Grind/Arith/CommRing/Reify.lean"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "819d010061698412d27f9bd41bdadd57287a1b6f",
      "new_mode": 33188,
      "new_path": "tests/lean/run/grind_12428.lean"
    }
  ]
}
