{
  "handle": "Reversibility",
  "mechanism": "Evaluates whether the post-state of an action allows a return to the pre-state. Two tests in order: whether the information needed to reconstruct the pre-state still exists, and only then whether restoring it costs less than the caller's declared limit. Returns TRUE for Type 2 decisions (reversible) and FALSE for Type 1 (one-way doors).",
  "gloss": "Condition: Can this action be undone?",
  "invariants": [
    "A post-state that destroyed the information yields FALSE at any cost limit.",
    "The verdict names the cost limit and information-loss tolerance it was judged against, both {{constraint}}s supplied by the caller."
  ],
  "parameters": [
    {
      "name": "cost_limit",
      "type": "PositiveInteger",
      "range": "unspecified",
      "description": "Maximum acceptable cost to reverse, in a unit the caller states."
    }
  ],
  "_meta": {
    "tier": 1,
    "ring": 0,
    "supersedes": [
      "sema:Reversibility#mh:SHA-256:049f5fd98135ec288888fa61056f65a7e46067b06eaa5e7cee7a7bd3bfef2f74",
      "sema:Reversibility#mh:SHA-256:af6fad316d76d324d6c2ac02a69fc1f2f095bfc69a48c33578e599c431e9598e"
    ],
    "path": [
      "Physics",
      "Primitives"
    ],
    "related": [
      "Trialhaven#da45",
      "ErrorCostAsymmetry"
    ]
  },
  "failure_modes": [
    "False reversibility: the action created externalities the pre-action analysis omitted.",
    "Cost drift: the tolerance was declared before the reversal is attempted."
  ],
  "sema_id": "sema:Reversibility#mh:SHA-256:cb359b693e6f3e674083df81b207143179d19330d5c3ce6e1832674901074b37",
  "sema_ref": "Reversibility#cb35",
  "sema_stub": "cb35",
  "dependencies": {
    "references": {
      "constraint": "sema:Constraint#mh:SHA-256:70136d525260a10eedf156aad1fe6c50510eadb10a89d063c7a85575b15708fc"
    }
  },
  "sema_layer": "Physics",
  "sema_category": "Primitives",
  "used_by": {
    "references": {
      "ReversibilityCheck": "sema:ReversibilityCheck#mh:SHA-256:7dfa94c373732b9074abd29eb733e3ccc8c07b691795b526cf83811106c15358",
      "Translate": "sema:Translate#mh:SHA-256:31ed60a9638151e862227245e0d9a4752ce6c59ee6023ddd84222c2e7afb63ea",
      "Trialhaven": "sema:Trialhaven#mh:SHA-256:da45a57852e01967d396450d08b024feec43296a65197767d27ffca3aa8cfc3a"
    }
  }
}
