{"title": "Applicability decisions",
 "producer":
 ["GENERATED by tools/Drivers/Semantics.lean (make gen-semantics); do not edit",
  "format: effect4-semantics-report v8",
  "command: make gen-semantics",
  "inputs: tools/ProofGraph/Registry.lean, tools/Tools/Semantics.lean, tools/Drivers/Semantics.lean, tools/Tools/SemanticsDisplay.lean, tools/Tools/SemanticsDocument.lean, tools/Tools/Document.lean, tools/Tools/Document/Json.lean, src/Effect4/Laws/Auto/Semantics.lean, Test/Counterexamples/REGISTER.md, docs/core/decisions.md, lean-toolchain"],
 "format": "effect4-document/1",
 "body":
 [{"rows":
   [[[{"ref": "concept:store-typing", "label": "store-typing"}],
     [{"text": "163"}],
     [{"text": "owner"}],
     [{"text":
       "function values and closures in Val: Fits contains no arrow clause"}],
     [{"text":
       "the language cut, docs/research/history/language-cut.md section 1"}]],
    [[{"ref": "concept:store-typing", "label": "store-typing"}],
     [{"text": "96"}],
     [{"text": "owner"}],
     [{"text":
       "raw subtyping in handle arms: comparisons use Equiv under Ty.subN"}],
     [{"text":
       "checker compares and joins in normalized order (decisions row 137, E4-TYPED-CE-009)"}]],
    [[{"ref": "concept:store-typing", "label": "store-typing"}],
     [{"text": "156"}],
     [{"text": "owner"}],
     [{"text":
       "dangling scope handles: ScopeLive presence required at Ty.scope"}],
     [{"text":
       "machine halts on absent scope in prepareScopedExitR (E4-SCHED-CE-020)"}]],
    [[{"ref": "concept:residual-program-typing",
       "label": "residual-program-typing"}],
     [{"text": "163"}],
     [{"text": "owner"}],
     [{"text":
       "stored function values and closures: stored Eff syntax uses first-order program trees, while proof-side RProgram carries Lean function continuations at visible operations"}],
     [{"text":
       "the language cut, docs/research/history/language-cut.md section 1; row 163 excludes stored function values, not functions in the semantic model"}]],
    [[{"ref": "concept:residual-program-typing",
       "label": "residual-program-typing"}],
     [{"text": "117"}],
     [{"text": "owner"}],
     [{"text":
       "open root requirement rows: M5, M6c and M7 take the premise rootTy.requires = empty"}],
     [{"text":
       "rc.112 runs closed root rows (Effect.ts:17494-17497), while retaining separate per-position obligations"}]],
    [[{"ref": "concept:residual-program-typing",
       "label": "residual-program-typing"}],
     [{"text": "148"}],
     [{"text": "coordinator"}],
     [{"text":
       "general bind closure: sequencing is proved per construct via compatibility lemmas"}],
     [{"text": "closing marker unguard fixes exit type (E4-TYPED-CE-030)"}]],
    [[{"ref": "concept:scope-lifetime-finalization",
       "label": "scope-lifetime-finalization"}],
     [{"text": "156"}],
     [{"text": "owner"}],
     [{"text": "closure or exit of absent scopes: ScopeLive required"}],
     [{"text": "machine halts on absent scope in prepareScopedExitR"}]],
    [[{"ref": "concept:scope-lifetime-finalization",
       "label": "scope-lifetime-finalization"}],
     [{"text": "152"}],
     [{"text": "owner"}],
     [{"text":
       "badName and notImplemented defect transmission during close walk"}],
     [{"text":
       "ShapeFree exclusion on encoded causes in exit types (row 152)"}]],
    [[{"ref": "concept:reactive-scheduling", "label": "reactive-scheduling"}],
     [{"text": "106"}],
     [{"text": "owner"}],
     [{"text":
       "unbounded token indices: QueueOk enforces GuardState.keysBelow"}],
     [{"text":
       "fresh token bounds protect scheduler invariants (decisions row 106)"}]],
    [[{"ref": "concept:reactive-scheduling", "label": "reactive-scheduling"}],
     [{"text": "107"}],
     [{"text": "owner"}],
     [{"text":
       "defect-bearing exit boundaries: ExitOk requires NoShapeDefect"}],
     [{"text":
       "badName and notImplemented defects excluded from typed exits"}]],
    [[{"ref": "concept:reactive-scheduling", "label": "reactive-scheduling"}],
     [{"text": "134"}],
     [{"text": "owner"}],
     [{"text": "untyped timer and race columns in configuration typing"}],
     [{"text":
       "E4-TYPED-CE-024 through CE-029 separate timer, waiter, and race keys"}]],
    [[{"ref": "concept:exact-codecs", "label": "exact-codecs"}],
     [{"text": "128"}],
     [{"text": "owner"}],
     [{"text":
       "arbitrary syntactic equality: embeddings are exact modulo normJ and normS"}],
     [{"text":
       "JSON object key order and Schema AST annotations do not affect decoding"}]],
    [[{"ref": "concept:exact-codecs", "label": "exact-codecs"}],
     [{"text": "179"}],
     [{"text": "coordinator"}],
     [{"text":
       "unconditional metadata preservation: normS erases only nine approved keys"}],
     [{"text":
       "arbitrary effect4/* annotations cannot be silently discarded"}]],
    [[{"ref": "concept:subtyping-algebra", "label": "subtyping-algebra"}],
     [{"text": "137"}],
     [{"text": "owner"}],
     [{"text":
       "raw subtyping for checker comparisons: subN normalizes both sides first"}],
     [{"text":
       "raw sub does not distribute products over unions (E4-TYPED-CE-009)"}]],
    [[{"ref": "concept:subtyping-algebra", "label": "subtyping-algebra"}],
     [{"text": "163"}],
     [{"text": "owner"}],
     [{"text": "arrow subtyping: Ty contains no function constructor"}],
     [{"text":
       "the language cut, docs/research/history/language-cut.md section 1"}]],
    [[{"ref": "concept:initial-algebras-folds",
       "label": "initial-algebras-folds"}],
     [{"text": "127"}],
     [{"text": "owner"}],
     [{"text":
       "recursive-type unfolding in inhabited: inhabited is a fold over finite syntax"}],
     [{"text":
       "Ty is an inductive data type with no infinite equi-recursive unfolding"}]],
    [[{"ref": "concept:context-requirements", "label": "context-requirements"}],
     [{"text": "117"}],
     [{"text": "owner"}],
     [{"text":
       "open root requirement rows: M5, M6c and M7 require rootTy.requires = empty"}],
     [{"text": "rc.112 runs closed rows (Effect.ts:17494-17497)"}]],
    [[{"ref": "concept:context-requirements", "label": "context-requirements"}],
     [{"text": "104"}],
     [{"text": "owner"}],
     [{"text":
       "lexical environment capture in layers: layers build at closed points"}],
     [{"text":
       "Point.layerBuild prevents layer bodies from reading outer environments (E4-PROV-CE-005)"}]],
    [[{"ref": "concept:context-requirements", "label": "context-requirements"}],
     [{"text": "105"}],
     [{"text": "owner"}],
     [{"text":
       "mismatched layer values: layer value must fit declared service type"}],
     [{"text":
       "LayerHasTy requires declared service carrier and value subtyping (E4-PROV-CE-006)"}]],
    [[{"ref": "concept:host-session-protocol",
       "label": "host-session-protocol"}],
     [{"text": "122"}],
     [{"text": "owner"}],
     [{"text":
       "in-engine boundary decoding: Decision 12 adopts Route A typed membership"}],
     [{"text":
       "boundary decode checks membership before runtime admission (host-boundary.md section 7)"}]],
    [[{"ref": "concept:host-session-protocol",
       "label": "host-session-protocol"}],
     [{"text": "97"}],
     [{"text": "owner"}],
     [{"text":
       "internal handle kinds at host boundary: cells, promises, fibers, scopes refused"}],
     [{"text":
       "prevents leaking internal runtime capabilities across boundary (E4-HOST-CE-007)"}]],
    [[{"ref": "concept:translation-simulation",
       "label": "translation-simulation"}],
     [{"text": "138"}],
     [{"text": "owner"}],
     [{"text":
       "non-empty host tables in M7: M7 is stated strictly on M7Fragment with root.table = []"}],
     [{"text": "table-aware agreement is deferred to R6 (DI-57)"}]],
    [[{"ref": "concept:translation-simulation",
       "label": "translation-simulation"}],
     [{"text": "95"}],
     [{"text": "owner"}],
     [{"text":
       "host answers on decision tapes: M6 and M7 quantify over answer-free tapes"}],
     [{"text":
       "reference machine has no host table and refuses every answer (emptyTable_refuses_every_answer)"}]],
    [[{"ref": "concept:translation-simulation",
       "label": "translation-simulation"}],
     [{"text": "117"}],
     [{"text": "owner"}],
     [{"text":
       "open requirement rows: M7Fragment enforces rootTy.requires = empty"}],
     [{"text": "rc.112 runs closed rows (Effect.ts:17494-17497)"}]]],
   "kind": "table",
   "headers": ["Concept", "Row", "Who", "Excluded", "Reason"]}]}
