

STATIC CONSTRAINT PROFILE -- problem crelay-topo
generated by tech/constraint-profile.lisp -- NEVER HAND-EDITED


MC  MECHANIC COVERAGE  [grade 1]
--------------------------------------------------------------

  public technologies spliced (16): 16 covered, 0 UNCOVERED
    beam-relay        COVERED    contract (also S6 RC; RL scenario)
    box               COVERED    extractors S2 S5
    elevation         COVERED    infrastructure -- authors levels; read by S5
    floor-blower      COVERED    contract (also S1)
    gate              COVERED    extractors S1 S3 S4
    jump              COVERED    contract (also S3 S5)
    ladder            COVERED    contract (also S3)
    plate             COVERED    extractors S1 S2 T6
    reachability      COVERED    infrastructure -- reach relations; read by S4
    recorder          COVERED    contract (also S2 RO CP)
    step              COVERED    extractors S2 T6; boarding a fixed floor blower in the floor-blower contract, a gears-mounted fan in the floor-gears contract
    switch            COVERED    extractors S1 S4
    topo-lower-bound  COVERED    infrastructure -- search pruning bound
    tray              COVERED    extractors S2 S5
    visibility        COVERED    infrastructure -- line of sight; read by S6
    walkability       COVERED    infrastructure -- derives walk-kind facts; read by S3

  UNCOVERED (0):
    READING: UNCOVERED means no static contract is declared for that technology.  The coverage gate (Problem-Solving Guide, Phase 0 step 2) requires a hand contract in the Briefing, or a component, before going on.  COVERED by extractors or infrastructure means the named components carry its static consequences; it is not a contract.

  contract beam-relay
    controls  the derived COLOR of every relay (connector or repeater), recomputed in each propagation after the crossing set, and each receiver's ACTIVE fact (RECORDING-ACTIVE in the recording view)
    moves     connectors only: PICKUP-CONNECTOR lifts one and deletes every PAIRED fact it owns and every one naming it; PICKUP-CONNECTOR-RETAINING-PAIRINGS keeps them, but a held connector has no location and neither receives nor sends a beam; PUT-CONNECTOR places without pairing; CONNECT-CONNECTOR places the held connector at a location the agent reaches and stores 1 to *max-connector-pairings* outgoing PAIRED facts, to termini structurally visible from any location the agent can walk to, never to a connector at the placement location
    requires  lighting runs in propagation layers from every transmitter (layer 0). A relay settles in the first layer in which any clear link from a lit source reaches it: one hue lights it; two or more hues in that layer leave it dark, and a dark relay feeds nothing; a hue arriving in a later layer is ignored. A connector is also dark when a connector at its location is already lit. Clear link: a stored PAIRED fact in either direction (COUPLED for fixed apparatus), a live sightline in the reading view, and no cut by an active crossing (physical view only). Pairings persist while their beam is blocked or cut; only pickup clears them. Capacity counts a connector's outgoing pairings; incoming links are unlimited. A receiver is reached only by a relay of its hue whose own outgoing pairing (or coupling) names it, visible and uncut; beam-direct may reach it independently. CONNECT-CONNECTOR needs no lit connector of the same recorder layer at the placement location. Layers are propagation order, not travel time or action order
    capacity: 3 outgoing pairings per connector (*max-connector-pairings*); incoming links unlimited
    transmitters by hue: red transmitter1
    receivers by hue: red receiver1
    connectors (2): connector1, connector1*
    repeaters (1):
      repeater1: coupled from none, coupled to none
    start-state links (0 stored pairings): none
    direct feeds by RC station (12 with a visible transmitter; 0 COMPETING HUES), each transmitter with the gates it requires open:
      location3@1: red transmitter1 requires open gate3, gate4
      location3@2: red transmitter1 requires open gate3, gate4
      location3@5/2: red transmitter1 requires open gate3, gate4
      location7@1: red transmitter1 requires open gate3, gate4
      location7@2: red transmitter1 requires open gate3, gate4
      location7@5/2: red transmitter1 requires open gate3, gate4
      location8@1: red transmitter1 requires open gate4
      location8@2: red transmitter1 requires open gate4
      location8@5/2: red transmitter1 requires open gate4
      location9@1: red transmitter1 requires open gate4
      location9@2: red transmitter1 requires open gate4
      location9@5/2: red transmitter1 requires open gate4
    Pairing one connector to two hues settles it in layer 1 with a CONFLICT (dark, feeds nothing). A direct transmitter link reaches a connector in layer 1, ahead of any relayed hue, so a relayed hue lights it only while that direct link is unpaired, blocked or cut. Separately possible per-hue routes are not claimed to compose; a joint arrangement needs REPORT-RELAY-LIGHTING-SCENARIO.

  contract floor-blower
    controls  its CONTROLS entry; turning == the control aggregate while no jammer jams it (S1 device state axiom), read in each object's own view
    moves     every non-fan occupant resting ON the blower, with its stack, to the AIMED-AT destination while the blower turns in that occupant's view; a fan resting on it is toppled at the source
    requires  an occupant ON the blower (an agent mounts it by step); when no floor drive aimed at the destination turns in its view, an occupant there not ON a support falls back to the blower's location -- keep the lift by leaving through an exit arc, or standing on a support there, before the stream stops
    blower1
      source       location4
      destination  location20
      control      ((switch1)) normal
      exits from location20 (2), by kind; each kind's own predicate is not evaluated
        jump (2): location5, location6 ((gate2))

  contract jump
    controls  nothing; a jump has no CONTROLS entry and no state
    moves     an agent across a jump-kind clause -- one naming an edge, a wall or a floor drive, or in a bare-level problem naming none across a level difference -- (symmetric, or one way when directed), landing on the floor or on a box or held-tray top at the far end; locally, onto a box or held-tray top at its own location, and down from one
    requires  the landing at most *vertical-reach-limit* above the launch elevation (the floor, or the top of the support the agent stands on); edges and floor drives are static and always passable; every other clause member a gate, screen or wall, and each one not passable (a closed gate, a non-passable screen, every wall) with its top at most that limit above the launch; a safe destination.  Downward and level landings are unrestricted; a grounded tray is no landing, nor the agent's own held tray
    reach limit 1 (*vertical-reach-limit*); a raise is the least launch elevation above the source floor, reached by standing on a support (S5 tops)
    location20 -> location5  clause ()  level 3/2 -> 0
      no feature  from the floor
    location5 -> location20  clause ()  level 0 -> 3/2
      no feature  raise 1/2 above the floor
    location20 -> location6  clause (gate2)  level 3/2 -> 3/2
      gate2 open  from the floor
      gate2 closed  raise 3 above the floor
    location6 -> location20  clause (gate2)  level 3/2 -> 3/2
      gate2 open  from the floor
      gate2 closed  raise 3 above the floor
    location4 -> location6  clause (gate2)  level 0 -> 3/2
      gate2 open  raise 1/2 above the floor
      gate2 closed  raise 9/2 above the floor
    location6 -> location4  clause (gate2)  level 3/2 -> 0
      gate2 open  from the floor
      gate2 closed  raise 3 above the floor
    location5 -> location6  clause (gate2)  level 0 -> 3/2
      gate2 open  raise 1/2 above the floor
      gate2 closed  raise 9/2 above the floor
    location6 -> location5  clause (gate2)  level 3/2 -> 0
      gate2 open  from the floor
      gate2 closed  raise 3 above the floor

  contract ladder
    controls  nothing; a ladder has no CONTROLS entry and no state
    moves     an agent across a climb-kind clause (one naming a ladder) from its fact's source to its destination, one way (traverse-via>); a supported agent at the source lands on the ground at the destination
    requires  a ladder named in the arc's clause positioned at its source (ladder-init-check), every other means in the clause clear, and a safe destination
    ladder1  at location3
      climb  location3 --> location1  family ((ladder1))  ladder at source: yes
    ladder2  at location8
      climb  location8 --> location5  family ((ladder2))  ladder at source: yes
    ladder3  at location11
      climb  location11 --> location10  family ((ladder3))  ladder at source: yes

  contract recorder
    controls  the recording session, not a device (no CONTROLS entry): START-RECORDER opens a cycle -- a live agent at a recorder's position, empty-handed, no ghost left from a closed cycle, within *max-recorder-cycles*; STOP-RECORDER (by a ghost agent) or CANCEL-PLAYBACK (by a live agent) closes it
    moves     at START-RECORDER each live mobile object's ghost appears where the live one is, with its holding, ON and pairing state; while the cycle is open live and ghost bodies both act, each manipulating only its own side's objects; closing removes every ghost and every fact naming one, and rebuilds the recording view from live state
    requires  STOP: every ghost agent at a recorder's position and empty-handed, and no HOLDING or ON between a live and a ghost object; CANCEL: the live agent at a recorder's position and empty-handed, ghost dependencies discarded.  Devices and plates are read in each object's own view: physical counts every body present, ghosts included; recording counts ghost occupants only.  A live body may stand on a ghost-held tray; a ghost never uses a live support.  A closed cycle must leave persistent progress.  Initialization rejects beam crossings, floor gears, angled blowers, threats, receiver-controlled blower drives and movable wall-fan copies
    cycles allowed  unlimited (*max-recorder-cycles*)
    live -> ghost (4): agent1 -> agent1*, box1 -> box1*, connector1 -> connector1*, tray1 -> tray1*
    recorder1  at location1


S0  TYPE EXTENT CENSUS  [grade 1]
--------------------------------------------------------------

  type extents (62 types)
    agent  2  authored
    angled-blower  0  optional  EMPTY
    angled-blower+angled-gears+floor-blower+floor-gears+wall-blower+wall-gears  1  synthesized  SINGLETON  components floor-gears wall-gears angled-gears floor-blower wall-blower angled-blower
    angled-blower+fan+floor-blower+wall-blower  1  synthesized  SINGLETON  components fan floor-blower wall-blower angled-blower
    angled-blower+floor-blower  1  synthesized  SINGLETON  components floor-blower angled-blower
    angled-gears  0  optional  EMPTY
    beam-blocker  6  authored  components agent box jammer connector
    beam-node  24  authored  components transmitter receiver floor-repeater wall-repeater location
    blower  1  authored  SINGLETON  components floor-blower wall-blower angled-blower
    box  2  authored
    cargo  6  authored  components box jammer connector fan tray
    connector  2  authored
    edge  1  authored  SINGLETON
    edge+wall  14  synthesized  components wall edge
    elevated-object  50  authored  components location gate screen wall edge transmitter receiver gun switch wall-gears wall-blower floor-repeater wall-repeater
    fan  0  optional  EMPTY
    fixed-beam-sink  2  authored  components floor-repeater wall-repeater receiver
    fixed-beam-source  2  authored  components transmitter floor-repeater wall-repeater
    fixed-position-object  13  authored  components pressure-plate toggle-plate ladder floor-gears wall-gears angled-gears floor-blower wall-blower angled-blower recorder
    floor-blower  1  authored  SINGLETON
    floor-blower+floor-gears  1  synthesized  SINGLETON  components floor-gears floor-blower
    floor-gears  0  optional  EMPTY
    floor-repeater  1  authored  SINGLETON
    gate  9  authored
    gate+screen  10  synthesized  components gate screen
    gears  0  authored  EMPTY  components floor-gears wall-gears angled-gears
    gun  0  optional  EMPTY
    heighted-object  31  authored  components box gate agent screen wall edge jammer connector floor-repeater wall-repeater
    hue  1  authored  SINGLETON
    jammer  0  optional  EMPTY
    jump-landing-support  4  authored  components box tray
    ladder  3  authored
    location  21  authored
    los-endpoint  24  authored  components transmitter receiver floor-repeater wall-repeater gun location
    mobile-object  8  authored  components agent box jammer connector fan tray
    mode  2  authored
    plate  8  authored  components pressure-plate toggle-plate
    pressure-plate  8  authored
    reach-target  23  authored  components location switch
    receiver  1  authored  SINGLETON
    recorder  1  authored  SINGLETON
    recording-blower-drive  1  authored  SINGLETON  components floor-blower wall-gears wall-blower
    relay  3  authored  components connector floor-repeater wall-repeater
    repeater  1  authored  SINGLETON  components floor-repeater wall-repeater
    screen  1  authored  SINGLETON
    steppable-object  9  authored  components pressure-plate toggle-plate fan floor-blower angled-blower
    support  13  authored  components pressure-plate toggle-plate box fan tray floor-blower angled-blower
    support-occupant  8  authored  components agent box jammer connector fan tray
    switch  2  authored
    terminus  5  authored  components transmitter receiver connector floor-repeater wall-repeater
    threat  0  authored  EMPTY  components gun
    toggle-plate  0  optional  EMPTY
    transmitter  1  authored  SINGLETON
    tray  2  authored
    vaultable-object  23  authored  components gate screen wall
    vertical-object  67  authored  components location agent box connector jammer tray fan gate screen wall edge floor-repeater wall-repeater transmitter receiver gun switch pressure-plate toggle-plate floor-blower angled-blower
    visibility-object  33  authored  components gate transmitter receiver floor-repeater wall-repeater gun location
    wall  13  authored
    wall-blower  0  optional  EMPTY
    wall-gears  0  optional  EMPTY
    wall-repeater  0  optional  EMPTY
    window  0  optional  EMPTY

  empty types (13)
    angled-blower  optional
    angled-gears  optional
    fan  optional
    floor-gears  optional
    gears  authored  alias over floor-gears wall-gears angled-gears
    gun  optional
    jammer  optional
    threat  authored  alias over gun
    toggle-plate  optional
    wall-blower  optional
    wall-gears  optional
    wall-repeater  optional
    window  optional

  singleton types (15)
    angled-blower+angled-gears+floor-blower+floor-gears+wall-blower+wall-gears == blower1  synthesized
    angled-blower+fan+floor-blower+wall-blower == blower1  synthesized
    angled-blower+floor-blower == blower1  synthesized
    blower == blower1  authored
    edge == edge1  authored
    floor-blower == blower1  authored
    floor-blower+floor-gears == blower1  synthesized
    floor-repeater == repeater1  authored
    hue == red  authored
    receiver == receiver1  authored
    recorder == recorder1  authored
    recording-blower-drive == blower1  authored
    repeater == repeater1  authored
    screen == screen1  authored
    transmitter == transmitter1  authored

  relations over an empty type (6 relations, 7 positions)
    latched  dynamic  position 1 of (toggle-plate)  empty type (toggle-plate)
    lethal  dynamic  position 1 of (threat)  empty type (threat)
    mounted-on  dynamic  position 2 of (fan gears)  empty type (gears)
    mounted-on  dynamic  position 1 of (fan gears)  empty type (fan)
    recording-latched  dynamic  position 1 of (toggle-plate)  empty type (toggle-plate)
    threatens  static  position 1 of (threat location)  empty type (threat)
    window-segment>  static  position 1 of (window rational rational rational rational rational)  empty type (window)

  constant quantifier sites (8)
    blower-present  exists (?fan fan)  ->  false
    physical-supports-at  doall (?fan fan)  ->  true
    recording-jammed  exists (?jammer jammer)  ->  false
    safe  exists (?t threat)  ->  false
    update-blower-status!  exists (?j jammer)  ->  false
    update-blower-status!  doall (?f fan)  ->  true
    update-gate-status!  exists (?j jammer)  ->  false
    window-segment-records  doall (?window window)  ->  true

  constant predicates (2)
    recording-jammed == false
    safe == true


S1  CONTROL ALGEBRA  [grade 1]
--------------------------------------------------------------

  control table (10 entries)
    blower1 == switch1
    gate1 == plate1
    gate2 == (not switch1)
    gate3 == plate2
    gate4 == plate3
    gate5 == (not switch2)
    gate6 == (and plate4 plate5)
    gate7 == switch2
    gate8 == receiver1
    gate9 == (and plate6 plate7 plate8)

  device state axioms (4)
    open asserted by update-gate-status!
      condition  (or (exists (?j jammer) (jamming ?j ?gate)) (control-on ?gate nil))
      aggregate  (control-on ?gate nil)
      reading    state == aggregate  premise: jammer empty
    recording-open asserted by update-recording-gate-status!
      condition  (or (recording-jammed ?gate) (recording-control-on ?gate nil))
      aggregate  (recording-control-on ?gate nil)
      reading    state == aggregate  premise: jammer empty
    recording-turning asserted by update-recording-blower-status!
      condition  (and (recording-control-on ?drive t) (not (recording-jammed ?drive)))
      aggregate  (recording-control-on ?drive t)
      reading    state == aggregate  premise: jammer empty
    turning asserted by update-blower-status!
      condition  (and (control-on ?drive t) (not (exists (?j jammer) (jamming ?j ?drive))))
      aggregate  (control-on ?drive t)
      reading    state == aggregate  premise: jammer empty

  exclusion pairs (2)
    {blower1, gate2}  on ((switch1))
    {gate5, gate7}  on ((switch2))

  equivalence pairs (0)

  pair qualification
    UNCONDITIONAL, on a stated premise.  All 4 device state axioms reduce to their control aggregate because jammer is empty, so the table and the pairs are claims about device state.  Populate that type and both become false.

  primitive controllers (11)
    plate1  ground  status relation depressed
    plate2  ground  status relation depressed
    plate3  ground  status relation depressed
    plate4  ground  status relation depressed
    plate5  ground  status relation depressed
    plate6  ground  status relation depressed
    plate7  ground  status relation depressed
    plate8  ground  status relation depressed
    receiver1  device-mediated  status relation active
    switch1  ground  status relation switched-on
    switch2  ground  status relation switched-on

  device depth
    blower1  depth 1
    gate1  depth 1
    gate2  depth 1
    gate3  depth 1
    gate4  depth 1
    gate5  depth 1
    gate6  depth 1
    gate7  depth 1
    gate8  depth 2
    gate9  depth 1

  cycles: none

  notes
    receiver1 is device-mediated through its status relation active, which an update derives from another device's derived output.  The extra level is recorded; the identity of the supplying device is not decidable from the control algebra and is deferred to the sightline extractor.


S2  FUNCTIONAL-RELATION CENSUS  [grade 1 -> 2]
--------------------------------------------------------------

  functional relations (28: 6 dynamic, 22 static)
    4 bijective index relations excluded, as S0 excludes them
    aimed-at  static  key (1)  value (2)  signature ((either angled-blower angled-gears floor-blower floor-gears wall-blower wall-gears) location)
    apparatus-coords>  static  key (1)  value (2 3 4)  signature ((either floor-repeater gun receiver switch transmitter wall-repeater) rational rational rational)
    beam-via  static  key (1 3)  value (2)  signature (fixed-beam-source list fixed-beam-sink)
    boundary-wall  static  key none -- keyless global fluent  value (1)  signature (list)
    color  dynamic  key (1)  value (2)  signature (relay hue)
    controls  static  key (2)  value (1 3)  signature (list (either angled-blower angled-gears floor-blower floor-gears gate gun wall-blower wall-gears) mode)
    edge-segment>  static  key (1)  value (2 3 4 5 6)  signature (edge rational rational rational rational rational)
    gate-segment>  static  key (1)  value (2 3 4 5 6)  signature (gate rational rational rational rational rational)
    has-chroma  static  key (1)  value (2)  signature ((either receiver transmitter) hue)
    has-elevation  static  key (1)  value (2)  signature (elevated-object rational)
    has-height  static  key (1)  value (2)  signature (heighted-object rational)
    has-location  dynamic  key (1)  value (2)  signature (mobile-object location)
    has-position  static  key (1)  value (2)  signature (fixed-position-object location)
    holding  dynamic  key none -- bijective, functional both ways  value (1 2)  signature (agent cargo)
    location-coords>  static  key (1)  value (2 3 4)  signature (location rational rational rational)
    los-barrier-crossings>  static  key (1 3)  value (2)  signature (los-endpoint list visibility-object)
    los-via  static  key (1 3)  value (2)  signature (visibility-object list visibility-object)
    mounted-on  dynamic  key (1)  value (2)  signature (fan gears)
    on  dynamic  key (1)  value (2)  signature (support-occupant support)
    reach-via  static  key (1 3)  value (2)  signature (reach-target list reach-target)
    reach-via>  static  key (1 3)  value (2)  signature (location list reach-target)
    recorder-cycles-used  dynamic  key none -- keyless global fluent  value (1)  signature (fixnum)
    recording-copy>  static  key none -- bijective, functional both ways  value (1 2)  signature (mobile-object mobile-object)
    screen-segment>  static  key (1)  value (2 3 4 5 6)  signature (screen rational rational rational rational rational)
    traverse-via  static  key (1 3)  value (2)  signature (location list location)
    traverse-via>  static  key (1 3)  value (2)  signature (location list location)
    wall-segment>  static  key (1)  value (2 3 4 5 6)  signature (wall rational rational rational rational rational)
    window-segment>  static  key (1)  value (2 3 4 5 6)  signature (window rational rational rational rational rational)

  occupancy pools (7 placement relations; 4 layer pairs)
    layer pair: agent1 -> agent1*
    layer pair: box1 -> box1*
    layer pair: connector1 -> connector1*
    layer pair: tray1 -> tray1*
    aimed-at  static  (either angled-blower angled-gears floor-blower floor-gears wall-blower wall-gears) at 1  ->  location at 2
        key   pool (either angled-blower angled-gears floor-blower floor-gears wall-blower wall-gears) (1): 0 live, 0 ghost, 1 unpaired
              blower1[unpaired]
        value pool location (21): 0 live, 0 ghost, 21 unpaired
              location1[unpaired] location10[unpaired] location11[unpaired] location12[unpaired] location13[unpaired] location14[unpaired] location15[unpaired] location16[unpaired] location17[unpaired] location18[unpaired] location19[unpaired] location2[unpaired] location20[unpaired] location21[unpaired] location3[unpaired] location4[unpaired] location5[unpaired] location6[unpaired] location7[unpaired] location8[unpaired] location9[unpaired]
    color  dynamic  relay at 1  ->  hue at 2
        key   pool relay (3): 1 live, 1 ghost, 1 unpaired
              connector1[live] connector1*[ghost] repeater1[unpaired]
        value pool hue (1): 0 live, 0 ghost, 1 unpaired
              red[unpaired]
    has-chroma  static  (either receiver transmitter) at 1  ->  hue at 2
        key   pool (either receiver transmitter) (2): 0 live, 0 ghost, 2 unpaired
              receiver1[unpaired] transmitter1[unpaired]
        value pool hue (1): 0 live, 0 ghost, 1 unpaired
              members listed above
    has-location  dynamic  mobile-object at 1  ->  location at 2
        key   pool mobile-object (8): 4 live, 4 ghost, 0 unpaired
              agent1[live] agent1*[ghost] box1[live] box1*[ghost] connector1[live] connector1*[ghost] tray1[live] tray1*[ghost]
        value pool location (21): 0 live, 0 ghost, 21 unpaired
              members listed above
    has-position  static  fixed-position-object at 1  ->  location at 2
        key   pool fixed-position-object (13): 0 live, 0 ghost, 13 unpaired
              blower1[unpaired] ladder1[unpaired] ladder2[unpaired] ladder3[unpaired] plate1[unpaired] plate2[unpaired] plate3[unpaired] plate4[unpaired] plate5[unpaired] plate6[unpaired] plate7[unpaired] plate8[unpaired] recorder1[unpaired]
        value pool location (21): 0 live, 0 ghost, 21 unpaired
              members listed above
    mounted-on  dynamic  fan at 1  ->  gears at 2
        key   pool fan (0): 0 live, 0 ghost, 0 unpaired
        value pool gears (0): 0 live, 0 ghost, 0 unpaired
    on  dynamic  support-occupant at 1  ->  support at 2
        key   pool support-occupant (8): 4 live, 4 ghost, 0 unpaired
              agent1[live] agent1*[ghost] box1[live] box1*[ghost] connector1[live] connector1*[ghost] tray1[live] tray1*[ghost]
        value pool support (13): 2 live, 2 ghost, 9 unpaired
              blower1[unpaired] box1[live] box1*[ghost] plate1[unpaired] plate2[unpaired] plate3[unpaired] plate4[unpaired] plate5[unpaired] plate6[unpaired] plate7[unpaired] plate8[unpaired] tray1[live] tray1*[ghost]
        in both pools (4): box1 box1* tray1 tray1*

  cardinality bounds  [grade 2: the keying is structural, so no action moves it]
    color: relay -> hue
      |occupied hue| <= 3 - |unavailable relay|
      injective: the relation is keyed by its relay argument, so two distinct occupied values need two distinct witnesses
      BODIES by layer, not yet a claim about any predicate: live + unpaired 2, ghost + unpaired 2, total 3
      consumers (1 relation): the bound each one actually reads
        active [derived]  asserted by update-receiver-status!  via beam-reaches-receiver
          site in relay-beam-reaches-receiver: NONE -- layer-blind, it reads every occupant
          witnesses it reads: 3 -- the whole pool
      NOTE: assertion side only.  A query used in an action's precondition is not listed here.
      NOTE: the switch walk descends AND, OR, NOT, IF and the queries those call.  A switch inside any other form is not found, so "no switch found" is weaker than "no switch".
      *start-state* reading, NOT the bound: 0 of 3 keys assigned, 0 distinct values occupied
    has-location: mobile-object -> location
      |occupied location| <= 8 - |unavailable mobile-object|
      injective: the relation is keyed by its mobile-object argument, so two distinct occupied values need two distinct witnesses
      BODIES by layer, not yet a claim about any predicate: live + unpaired 4, ghost + unpaired 4, total 8
      consumers (2 relations): the bound each one actually reads
        active [derived]  asserted by update-receiver-status!  via beam-reaches-receiver
          site in relay-beam-reaches-receiver: NONE -- layer-blind, it reads every occupant
          site in base: NONE -- layer-blind, it reads every occupant
          site in beam-blocker-occludes-location: OTHER -- restricted by something that is not a layer by (beam-blocker-spans-elevation ?blocker ?beam-elevation)
          site in beam-blocker-occludes-location-for-object: LAYER, STATE-SELECTED by (recorder-cycle-closed) in recording-shadow-object-present
          witnesses it reads: 8 -- the whole pool
        recording-active [derived]  asserted by update-recording-receiver-status!  via recording-shadow-beam-reaches-receiver
          site in base: NONE -- layer-blind, it reads every occupant
          site in beam-blocker-occludes-location: OTHER -- restricted by something that is not a layer by (beam-blocker-spans-elevation ?blocker ?beam-elevation)
          site in beam-blocker-occludes-location-for-object: LAYER, STATE-SELECTED by (recorder-cycle-closed) in recording-shadow-object-present
          witnesses it reads: 8 -- the whole pool
      NOTE: assertion side only.  A query used in an action's precondition is not listed here.
      NOTE: the switch walk descends AND, OR, NOT, IF and the queries those call.  A switch inside any other form is not found, so "no switch found" is weaker than "no switch".
      *start-state* reading, NOT the bound: 4 of 8 keys assigned, 4 distinct values occupied
    mounted-on: fan -> gears
      |occupied gears| <= 0 - |unavailable fan|
      injective: the relation is keyed by its fan argument, so two distinct occupied values need two distinct witnesses
      BODIES by layer, not yet a claim about any predicate: live + unpaired 0, ghost + unpaired 0, total 0
      consumers (1 relation): the bound each one actually reads
        on [not derived]  asserted by blow-occupants-away!  via blower-active-for-object
          site in blower-present: NONE -- layer-blind, it reads every occupant
          witnesses it reads: 0 -- the whole pool
      NOTE: assertion side only.  A query used in an action's precondition is not listed here.
      NOTE: the switch walk descends AND, OR, NOT, IF and the queries those call.  A switch inside any other form is not found, so "no switch found" is weaker than "no switch".
      *start-state* reading, NOT the bound: 0 of 0 keys assigned, 0 distinct values occupied
    on: support-occupant -> support
      |occupied support| <= 8 - |unavailable support-occupant|
      injective: the relation is keyed by its support-occupant argument, so two distinct occupied values need two distinct witnesses
      BODIES by layer, not yet a claim about any predicate: live + unpaired 4, ghost + unpaired 4, total 8
      consumers (6 relations): the bound each one actually reads
        active [derived]  asserted by update-receiver-status!  via beam-reaches-receiver
          site in base: NONE -- layer-blind, it reads every occupant
          witnesses it reads: 8 -- the whole pool
        depressed [derived]  asserted by update-plate-status!  via support-occupied
          site in support-occupied: NONE -- layer-blind, it reads every occupant
          witnesses it reads: 8 -- the whole pool
        latched [not derived]  asserted by update-plate-status!  via support-occupied
          site in support-occupied: NONE -- layer-blind, it reads every occupant
          witnesses it reads: 8 -- the whole pool
        recording-active [derived]  asserted by update-recording-receiver-status!  via recording-shadow-beam-reaches-receiver
          site in base: NONE -- layer-blind, it reads every occupant
          witnesses it reads: 8 -- the whole pool
        recording-depressed [derived]  asserted by update-recording-plate-status!  via recording-plate-occupied
          site in recording-plate-occupied: LAYER, STATE-SELECTED by (recorder-cycle-closed)
          witnesses it reads: 4, either class -- the class is chosen at run time
        recording-latched [derived]  asserted by update-recording-plate-status!  via recording-plate-occupied
          site in recording-plate-occupied: LAYER, STATE-SELECTED by (recorder-cycle-closed)
          witnesses it reads: 4, either class -- the class is chosen at run time
      NOTE: assertion side only.  A query used in an action's precondition is not listed here.
      NOTE: the switch walk descends AND, OR, NOT, IF and the queries those call.  A switch inside any other form is not found, so "no switch found" is weaker than "no switch".
      *start-state* reading, NOT the bound: 1 of 8 keys assigned, 1 distinct value occupied


T6  MECHANIZED BUDGET ARITHMETIC  [grade 1 -> 2]
--------------------------------------------------------------

  AM1 [grade 1 -> 2; S1 controls, S2 ON pool]: Budget is tight.  5 body-cost devices demand 8 total plate keepers; the full occupant pool is 8.  All can be open only if every body is on a plate.

  AM2 [grade 1 -> 2; S1 controls, S2 ON pool, goal form]: The goal actor occupies 1 of 8 bodies in the full occupant pool and its destination has no pressure plate.

  AM3a [grade 1 -> 2; S1 controls, S2 live ON pool]: Outside a cycle, 3 bodies remain for supports; demand is 8, so at least 5 support cost must close.

  AM3b [grade 1 -> 2; S1 controls, S2 full ON pool]: Inside a cycle, 7 bodies remain for supports; demand is 8, so at least 1 support cost must close.

  NOTE: these are impossibility constraints on state assignments, not on action sequences.  They refute the fully-open assignment without searching.


S5  HEIGHT AND REACH LATTICE  [grade 2]
--------------------------------------------------------------
  type heights (21 types; 3 authored overrides)
    location  height 0  axis NONE  base 0
    agent  height 3/2  axis VERTICAL  base 0
    box  height 1  axis VERTICAL  base 0
    connector  height 1  axis VERTICAL  base 0
    jammer  height 1  axis VERTICAL  base 0
    tray  height 0  axis VERTICAL  base 0
    fan  height 0  axis VERTICAL  base 0
    pressure-plate  height 0  axis VERTICAL  base 0
    toggle-plate  height 0  axis VERTICAL  base 0
    floor-blower  height 0  axis VERTICAL  base 0
    angled-blower  height 0  axis VERTICAL  base 0
    gate  height 4  axis VERTICAL  base 0
    screen  height 4  axis VERTICAL  base 0
    wall  height 4  axis VERTICAL  base 0  overrides 2
    edge  height 3/2  axis VERTICAL  base 0  overrides 1
    floor-repeater  height 1  axis VERTICAL  base 0
    wall-repeater  height 1  axis HORIZONTAL  base 1
    transmitter  height 0  axis NONE  base 1
    receiver  height 0  axis NONE  base 1
    switch  height 0  axis NONE  base 1
    gun  height 0  axis NONE  base 1

  location levels
    location1  0
    location2  0
    location3  0
    location4  0
    location5  0
    location6  3/2
    location7  0
    location8  0
    location9  0
    location10  0
    location11  0
    location12  0
    location13  0
    location14  0
    location15  0
    location16  0
    location17  0
    location18  0
    location19  0
    location20  3/2
    location21  0

  achievable carried-object tops
    box1  1, 2, 5/2
    box1*  1, 2, 5/2
    connector1  1, 2, 5/2
    connector1*  1, 2, 5/2
    tray1  0, 1, 3/2
    tray1*  0, 1, 3/2

  placement legality matrix (agent base -> support top)
    agent1 0 -> box1 1  YES
    agent1 0 -> box1* 1  YES
    agent1 0 -> ground 0  YES
    agent1 0 -> tray1 3/2  NO
    agent1 0 -> tray1* 3/2  NO
    agent1* 0 -> box1 1  YES
    agent1* 0 -> box1* 1  YES
    agent1* 0 -> ground 0  YES
    agent1* 0 -> tray1 3/2  NO
    agent1* 0 -> tray1* 3/2  NO

  unreachable from ground (placement reach limit 1)
    tray1  top 3/2
    tray1*  top 3/2


S6  BEAM SIGHTLINE TABLE  [grade 2]
--------------------------------------------------------------
  direct gate subsets: 512; no propagation applied

  visibility rows
    location1 @ 1 -> transmitter1  NEVER
    location1 @ 1 -> receiver1  NEVER
    location1 @ 1 -> repeater1  NEVER
    location1 @ 2 -> transmitter1  NEVER
    location1 @ 2 -> receiver1  NEVER
    location1 @ 2 -> repeater1  NEVER
    location1 @ 5/2 -> transmitter1  NEVER
    location1 @ 5/2 -> receiver1  NEVER
    location1 @ 5/2 -> repeater1  NEVER
    location2 @ 1 -> transmitter1  NEVER
    location2 @ 1 -> receiver1  NEVER
    location2 @ 1 -> repeater1  NEVER
    location2 @ 2 -> transmitter1  NEVER
    location2 @ 2 -> receiver1  NEVER
    location2 @ 2 -> repeater1  NEVER
    location2 @ 5/2 -> transmitter1  NEVER
    location2 @ 5/2 -> receiver1  NEVER
    location2 @ 5/2 -> repeater1  NEVER
    location3 @ 1 -> transmitter1  CONDITIONAL  requires open gate4, gate3
    location3 @ 1 -> receiver1  NEVER
    location3 @ 1 -> repeater1  NEVER
    location3 @ 2 -> transmitter1  CONDITIONAL  requires open gate4, gate3
    location3 @ 2 -> receiver1  NEVER
    location3 @ 2 -> repeater1  NEVER
    location3 @ 5/2 -> transmitter1  CONDITIONAL  requires open gate4, gate3
    location3 @ 5/2 -> receiver1  NEVER
    location3 @ 5/2 -> repeater1  NEVER
    location4 @ 1 -> transmitter1  NEVER
    location4 @ 1 -> receiver1  NEVER
    location4 @ 1 -> repeater1  NEVER
    location4 @ 2 -> transmitter1  NEVER
    location4 @ 2 -> receiver1  NEVER
    location4 @ 2 -> repeater1  NEVER
    location4 @ 5/2 -> transmitter1  NEVER
    location4 @ 5/2 -> receiver1  NEVER
    location4 @ 5/2 -> repeater1  NEVER
    location5 @ 1 -> transmitter1  NEVER
    location5 @ 1 -> receiver1  NEVER
    location5 @ 1 -> repeater1  NEVER
    location5 @ 2 -> transmitter1  NEVER
    location5 @ 2 -> receiver1  NEVER
    location5 @ 2 -> repeater1  NEVER
    location5 @ 5/2 -> transmitter1  NEVER
    location5 @ 5/2 -> receiver1  NEVER
    location5 @ 5/2 -> repeater1  NEVER
    location6 @ 1 -> transmitter1  NEVER
    location6 @ 1 -> receiver1  NEVER
    location6 @ 1 -> repeater1  NEVER
    location6 @ 2 -> transmitter1  NEVER
    location6 @ 2 -> receiver1  NEVER
    location6 @ 2 -> repeater1  NEVER
    location6 @ 5/2 -> transmitter1  NEVER
    location6 @ 5/2 -> receiver1  NEVER
    location6 @ 5/2 -> repeater1  NEVER
    location7 @ 1 -> transmitter1  CONDITIONAL  requires open gate4, gate3
    location7 @ 1 -> receiver1  NEVER
    location7 @ 1 -> repeater1  NEVER
    location7 @ 2 -> transmitter1  CONDITIONAL  requires open gate4, gate3
    location7 @ 2 -> receiver1  NEVER
    location7 @ 2 -> repeater1  NEVER
    location7 @ 5/2 -> transmitter1  CONDITIONAL  requires open gate4, gate3
    location7 @ 5/2 -> receiver1  NEVER
    location7 @ 5/2 -> repeater1  NEVER
    location8 @ 1 -> transmitter1  CONDITIONAL  requires open gate4
    location8 @ 1 -> receiver1  NEVER
    location8 @ 1 -> repeater1  ALWAYS
    location8 @ 2 -> transmitter1  CONDITIONAL  requires open gate4
    location8 @ 2 -> receiver1  NEVER
    location8 @ 2 -> repeater1  ALWAYS
    location8 @ 5/2 -> transmitter1  CONDITIONAL  requires open gate4
    location8 @ 5/2 -> receiver1  NEVER
    location8 @ 5/2 -> repeater1  ALWAYS
    location9 @ 1 -> transmitter1  CONDITIONAL  requires open gate4
    location9 @ 1 -> receiver1  NEVER
    location9 @ 1 -> repeater1  ALWAYS
    location9 @ 2 -> transmitter1  CONDITIONAL  requires open gate4
    location9 @ 2 -> receiver1  ALWAYS
    location9 @ 2 -> repeater1  ALWAYS
    location9 @ 5/2 -> transmitter1  CONDITIONAL  requires open gate4
    location9 @ 5/2 -> receiver1  ALWAYS
    location9 @ 5/2 -> repeater1  ALWAYS
    location10 @ 1 -> transmitter1  NEVER
    location10 @ 1 -> receiver1  NEVER
    location10 @ 1 -> repeater1  NEVER
    location10 @ 2 -> transmitter1  NEVER
    location10 @ 2 -> receiver1  NEVER
    location10 @ 2 -> repeater1  NEVER
    location10 @ 5/2 -> transmitter1  NEVER
    location10 @ 5/2 -> receiver1  NEVER
    location10 @ 5/2 -> repeater1  NEVER
    location11 @ 1 -> transmitter1  NEVER
    location11 @ 1 -> receiver1  NEVER
    location11 @ 1 -> repeater1  NEVER
    location11 @ 2 -> transmitter1  NEVER
    location11 @ 2 -> receiver1  NEVER
    location11 @ 2 -> repeater1  NEVER
    location11 @ 5/2 -> transmitter1  NEVER
    location11 @ 5/2 -> receiver1  NEVER
    location11 @ 5/2 -> repeater1  NEVER
    location12 @ 1 -> transmitter1  NEVER
    location12 @ 1 -> receiver1  CONDITIONAL  requires open gate7
    location12 @ 1 -> repeater1  NEVER
    location12 @ 2 -> transmitter1  NEVER
    location12 @ 2 -> receiver1  CONDITIONAL  requires open gate7
    location12 @ 2 -> repeater1  NEVER
    location12 @ 5/2 -> transmitter1  NEVER
    location12 @ 5/2 -> receiver1  CONDITIONAL  requires open gate7
    location12 @ 5/2 -> repeater1  NEVER
    location13 @ 1 -> transmitter1  NEVER
    location13 @ 1 -> receiver1  CONDITIONAL  requires open gate7
    location13 @ 1 -> repeater1  NEVER
    location13 @ 2 -> transmitter1  NEVER
    location13 @ 2 -> receiver1  CONDITIONAL  requires open gate7
    location13 @ 2 -> repeater1  NEVER
    location13 @ 5/2 -> transmitter1  NEVER
    location13 @ 5/2 -> receiver1  CONDITIONAL  requires open gate7
    location13 @ 5/2 -> repeater1  NEVER
    location14 @ 1 -> transmitter1  NEVER
    location14 @ 1 -> receiver1  NEVER
    location14 @ 1 -> repeater1  NEVER
    location14 @ 2 -> transmitter1  NEVER
    location14 @ 2 -> receiver1  NEVER
    location14 @ 2 -> repeater1  NEVER
    location14 @ 5/2 -> transmitter1  NEVER
    location14 @ 5/2 -> receiver1  NEVER
    location14 @ 5/2 -> repeater1  NEVER
    location15 @ 1 -> transmitter1  NEVER
    location15 @ 1 -> receiver1  ALWAYS
    location15 @ 1 -> repeater1  NEVER
    location15 @ 2 -> transmitter1  NEVER
    location15 @ 2 -> receiver1  ALWAYS
    location15 @ 2 -> repeater1  ALWAYS
    location15 @ 5/2 -> transmitter1  NEVER
    location15 @ 5/2 -> receiver1  ALWAYS
    location15 @ 5/2 -> repeater1  ALWAYS
    location16 @ 1 -> transmitter1  NEVER
    location16 @ 1 -> receiver1  CONDITIONAL  requires open gate8
    location16 @ 1 -> repeater1  NEVER
    location16 @ 2 -> transmitter1  NEVER
    location16 @ 2 -> receiver1  CONDITIONAL  requires open gate8
    location16 @ 2 -> repeater1  NEVER
    location16 @ 5/2 -> transmitter1  NEVER
    location16 @ 5/2 -> receiver1  CONDITIONAL  requires open gate8
    location16 @ 5/2 -> repeater1  NEVER
    location17 @ 1 -> transmitter1  NEVER
    location17 @ 1 -> receiver1  CONDITIONAL  requires open gate8
    location17 @ 1 -> repeater1  NEVER
    location17 @ 2 -> transmitter1  NEVER
    location17 @ 2 -> receiver1  CONDITIONAL  requires open gate8
    location17 @ 2 -> repeater1  NEVER
    location17 @ 5/2 -> transmitter1  NEVER
    location17 @ 5/2 -> receiver1  CONDITIONAL  requires open gate8
    location17 @ 5/2 -> repeater1  NEVER
    location18 @ 1 -> transmitter1  NEVER
    location18 @ 1 -> receiver1  CONDITIONAL  requires open gate8
    location18 @ 1 -> repeater1  NEVER
    location18 @ 2 -> transmitter1  NEVER
    location18 @ 2 -> receiver1  CONDITIONAL  requires open gate8
    location18 @ 2 -> repeater1  NEVER
    location18 @ 5/2 -> transmitter1  NEVER
    location18 @ 5/2 -> receiver1  CONDITIONAL  requires open gate8
    location18 @ 5/2 -> repeater1  NEVER
    location19 @ 1 -> transmitter1  NEVER
    location19 @ 1 -> receiver1  NEVER
    location19 @ 1 -> repeater1  NEVER
    location19 @ 2 -> transmitter1  NEVER
    location19 @ 2 -> receiver1  NEVER
    location19 @ 2 -> repeater1  NEVER
    location19 @ 5/2 -> transmitter1  NEVER
    location19 @ 5/2 -> receiver1  NEVER
    location19 @ 5/2 -> repeater1  NEVER
    location20 @ 1 -> transmitter1  NEVER
    location20 @ 1 -> receiver1  NEVER
    location20 @ 1 -> repeater1  NEVER
    location20 @ 2 -> transmitter1  NEVER
    location20 @ 2 -> receiver1  NEVER
    location20 @ 2 -> repeater1  NEVER
    location20 @ 5/2 -> transmitter1  NEVER
    location20 @ 5/2 -> receiver1  NEVER
    location20 @ 5/2 -> repeater1  NEVER
    location21 @ 1 -> transmitter1  NEVER
    location21 @ 1 -> receiver1  CONDITIONAL  requires open gate8
    location21 @ 1 -> repeater1  NEVER
    location21 @ 2 -> transmitter1  NEVER
    location21 @ 2 -> receiver1  CONDITIONAL  requires open gate8
    location21 @ 2 -> repeater1  CONDITIONAL  requires open gate8
    location21 @ 5/2 -> transmitter1  NEVER
    location21 @ 5/2 -> receiver1  CONDITIONAL  requires open gate8
    location21 @ 5/2 -> repeater1  CONDITIONAL  requires open gate8

  location-occluder kill list
    none


RC  RELAY CHAIN TABLE  [grade 2]

  SUPPLIED RELAY SCENARIO (T33): CLEAR is conditional, not stable/reachable/validated.
    PHYSICAL UNRESOLVED: no explicit scenario supplied
    RECORDING UNRESOLVED: no explicit scenario supplied
--------------------------------------------------------------
  GEOMETRIC ENUMERATION SCOPE: physical view only; supplied scenario views are separate.  Hops are
  tested on start-state copies with gate OPEN bits forced and no propagation.  A
  hop's required gates are those whose closing alone blocks it (monotone reading).
  Stations are placements, not reachability claims.  Bodies count the connector and
  its riser (ground 0, held tray 2, other support 1); a station with a plate is
  counted as keeping it, so off-plate counts are least values within this enumeration.
  GEOMETRIC CANDIDATES: stable simultaneous occupancy and support motion UNRESOLVED.
  BOOTSTRAP/LATCH are geometric classes, not validated realizations. Connector height
  is that used by station enumeration; differing connector heights are not enumerated.
  connectors 2; fixed couplings 0 (not enumerated); exclusion pairs {blower1, gate2}, {gate5, gate7}

  stations (63): location, then top (supports) per achievable connector top
    location1  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)
    location2  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)  plate plate1
    location3  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)
    location4  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)
    location5  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)
    location6  5/2 (ground)  7/2 (box1 box1*)  4 (tray1 tray1*)
    location7  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)  plate plate2
    location8  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)
    location9  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)
    location10  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)  plate plate3
    location11  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)
    location12  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)  plate plate5
    location13  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)  plate plate4
    location14  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)
    location15  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)
    location16  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)  plate plate6
    location17  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)  plate plate7
    location18  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)  plate plate8
    location19  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)
    location20  5/2 (ground)  7/2 (box1 box1*)  4 (tray1 tray1*)
    location21  1 (ground)  2 (box1 box1*)  5/2 (tray1 tray1*)

  station-to-endpoint hops (45 visible)
    location3@1 -> transmitter1  requires open gate3, gate4
    location3@2 -> transmitter1  requires open gate3, gate4
    location3@5/2 -> transmitter1  requires open gate3, gate4
    location7@1 -> transmitter1  requires open gate3, gate4
    location7@2 -> transmitter1  requires open gate3, gate4
    location7@5/2 -> transmitter1  requires open gate3, gate4
    location8@1 -> transmitter1  requires open gate4
    location8@1 -> repeater1  ALWAYS
    location8@2 -> transmitter1  requires open gate4
    location8@2 -> repeater1  ALWAYS
    location8@5/2 -> transmitter1  requires open gate4
    location8@5/2 -> repeater1  ALWAYS
    location9@1 -> transmitter1  requires open gate4
    location9@1 -> repeater1  ALWAYS
    location9@2 -> transmitter1  requires open gate4
    location9@2 -> receiver1  ALWAYS
    location9@2 -> repeater1  ALWAYS
    location9@5/2 -> transmitter1  requires open gate4
    location9@5/2 -> receiver1  ALWAYS
    location9@5/2 -> repeater1  ALWAYS
    location12@1 -> receiver1  requires open gate7
    location12@2 -> receiver1  requires open gate7
    location12@5/2 -> receiver1  requires open gate7
    location13@1 -> receiver1  requires open gate7
    location13@2 -> receiver1  requires open gate7
    location13@5/2 -> receiver1  requires open gate7
    location15@1 -> receiver1  ALWAYS
    location15@2 -> receiver1  ALWAYS
    location15@2 -> repeater1  ALWAYS
    location15@5/2 -> receiver1  ALWAYS
    location15@5/2 -> repeater1  ALWAYS
    location16@1 -> receiver1  requires open gate8
    location16@2 -> receiver1  requires open gate8
    location16@5/2 -> receiver1  requires open gate8
    location17@1 -> receiver1  requires open gate8
    location17@2 -> receiver1  requires open gate8
    location17@5/2 -> receiver1  requires open gate8
    location18@1 -> receiver1  requires open gate8
    location18@2 -> receiver1  requires open gate8
    location18@5/2 -> receiver1  requires open gate8
    location21@1 -> receiver1  requires open gate8
    location21@2 -> receiver1  requires open gate8
    location21@2 -> repeater1  requires open gate8
    location21@5/2 -> receiver1  requires open gate8
    location21@5/2 -> repeater1  requires open gate8

  station-to-station hops (1020 visible, 114 groups): source -> target, source>target tops, gates required
    location1 -> location2  all tops  ALWAYS
    location1 -> location6  all tops  requires open gate1, gate2
    location2 -> location1  all tops  ALWAYS
    location2 -> location4  all tops  requires open gate1
    location2 -> location5  all tops  requires open gate1
    location2 -> location7  all tops  requires open gate1
    location2 -> location10  all tops  requires open gate1, gate3
    location2 -> location20  all tops  requires open gate1
    location3 -> location4  all tops  ALWAYS
    location3 -> location5  all tops  ALWAYS
    location3 -> location7  all tops  ALWAYS
    location3 -> location10  all tops  requires open gate3
    location3 -> location20  all tops  ALWAYS
    location4 -> location2  all tops  requires open gate1
    location4 -> location3  all tops  ALWAYS
    location4 -> location5  all tops  ALWAYS
    location4 -> location6  all tops  requires open gate2
    location4 -> location7  all tops  ALWAYS
    location4 -> location9  all tops  requires open gate3
    location4 -> location12  all tops  requires open gate3, gate5
    location4 -> location13  1>2 1>5/2 2>1 2>2 2>5/2 5/2>1 5/2>2 5/2>5/2  requires open gate3, gate5
    location4 -> location20  all tops  ALWAYS
    location5 -> location2  all tops  requires open gate1
    location5 -> location3  all tops  ALWAYS
    location5 -> location4  all tops  ALWAYS
    location5 -> location6  all tops  requires open gate2
    location5 -> location7  all tops  ALWAYS
    location5 -> location12  all tops  requires open gate3, gate5
    location5 -> location20  all tops  ALWAYS
    location6 -> location1  all tops  requires open gate1, gate2
    location6 -> location4  all tops  requires open gate2
    location6 -> location5  all tops  requires open gate2
    location6 -> location7  all tops  requires open gate2
    location6 -> location20  all tops  requires open gate2
    location7 -> location2  all tops  requires open gate1
    location7 -> location3  all tops  ALWAYS
    location7 -> location4  all tops  ALWAYS
    location7 -> location5  all tops  ALWAYS
    location7 -> location6  all tops  requires open gate2
    location7 -> location9  all tops  requires open gate3
    location7 -> location10  all tops  requires open gate3
    location7 -> location12  all tops  requires open gate3, gate5
    location7 -> location13  1>2 1>5/2 2>1 2>2 2>5/2 5/2>1 5/2>2 5/2>5/2  requires open gate3, gate5
    location7 -> location20  all tops  ALWAYS
    location8 -> location9  all tops  ALWAYS
    location8 -> location10  all tops  ALWAYS
    location8 -> location12  all tops  requires open gate5
    location8 -> location13  all tops  requires open gate5
    location9 -> location4  all tops  requires open gate3
    location9 -> location7  all tops  requires open gate3
    location9 -> location8  all tops  ALWAYS
    location9 -> location10  all tops  ALWAYS
    location9 -> location12  all tops  requires open gate5
    location9 -> location15  1>2 1>5/2 2>1 2>2 2>5/2 5/2>1 5/2>2 5/2>5/2  ALWAYS
    location9 -> location20  all tops  requires open gate3
    location10 -> location2  all tops  requires open gate1, gate3
    location10 -> location3  all tops  requires open gate3
    location10 -> location7  all tops  requires open gate3
    location10 -> location8  all tops  ALWAYS
    location10 -> location9  all tops  ALWAYS
    location11 -> location12  all tops  ALWAYS
    location11 -> location13  all tops  ALWAYS
    location11 -> location14  all tops  requires open gate6
    location12 -> location4  all tops  requires open gate3, gate5
    location12 -> location5  all tops  requires open gate3, gate5
    location12 -> location7  all tops  requires open gate3, gate5
    location12 -> location8  all tops  requires open gate5
    location12 -> location9  all tops  requires open gate5
    location12 -> location11  all tops  ALWAYS
    location12 -> location13  all tops  ALWAYS
    location12 -> location20  all tops  requires open gate3, gate5
    location13 -> location4  1>2 1>5/2 2>1 2>2 2>5/2 5/2>1 5/2>2 5/2>5/2  requires open gate3, gate5
    location13 -> location7  1>2 1>5/2 2>1 2>2 2>5/2 5/2>1 5/2>2 5/2>5/2  requires open gate3, gate5
    location13 -> location8  all tops  requires open gate5
    location13 -> location11  all tops  ALWAYS
    location13 -> location12  all tops  ALWAYS
    location13 -> location20  all tops  requires open gate3, gate5
    location14 -> location11  all tops  requires open gate6
    location15 -> location9  1>2 1>5/2 2>1 2>2 2>5/2 5/2>1 5/2>2 5/2>5/2  ALWAYS
    location15 -> location16  all tops  requires open gate8
    location15 -> location17  all tops  requires open gate8
    location15 -> location18  all tops  requires open gate8
    location15 -> location21  all tops  requires open gate8
    location16 -> location15  all tops  requires open gate8
    location16 -> location17  all tops  ALWAYS
    location16 -> location18  all tops  ALWAYS
    location16 -> location19  all tops  requires open gate9
    location16 -> location21  all tops  ALWAYS
    location17 -> location15  all tops  requires open gate8
    location17 -> location16  all tops  ALWAYS
    location17 -> location18  all tops  ALWAYS
    location17 -> location19  all tops  requires open gate9
    location17 -> location21  all tops  ALWAYS
    location18 -> location15  all tops  requires open gate8
    location18 -> location16  all tops  ALWAYS
    location18 -> location17  all tops  ALWAYS
    location18 -> location19  all tops  requires open gate9
    location18 -> location21  all tops  ALWAYS
    location19 -> location16  all tops  requires open gate9
    location19 -> location17  all tops  requires open gate9
    location19 -> location18  all tops  requires open gate9
    location20 -> location2  all tops  requires open gate1
    location20 -> location3  all tops  ALWAYS
    location20 -> location4  all tops  ALWAYS
    location20 -> location5  all tops  ALWAYS
    location20 -> location6  all tops  requires open gate2
    location20 -> location7  all tops  ALWAYS
    location20 -> location9  all tops  requires open gate3
    location20 -> location12  all tops  requires open gate3, gate5
    location20 -> location13  all tops  requires open gate3, gate5
    location21 -> location15  all tops  requires open gate8
    location21 -> location16  all tops  ALWAYS
    location21 -> location17  all tops  ALWAYS
    location21 -> location18  all tops  ALWAYS

  chains to receiver1 (96); LATCH needs a device this receiver controls
    1  transmitter1 -> location7@1 -> location9@2 -> receiver1  BOOTSTRAP
        gates gate3, gate4; plates for them plate2, plate3, self-kept plate2
        connectors 2; risers ground, box1; bodies 3, on plates 1, off plates 2
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    2  transmitter1 -> location9@2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 1; risers box1; bodies 2, on plates 0, off plates 2
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    3  transmitter1 -> location7@1 -> location9@5/2 -> receiver1  BOOTSTRAP
        gates gate3, gate4; plates for them plate2, plate3, self-kept plate2
        connectors 2; risers ground, tray1; bodies 4, on plates 1, off plates 3
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    4  transmitter1 -> location7@2 -> location9@2 -> receiver1  BOOTSTRAP
        gates gate3, gate4; plates for them plate2, plate3, self-kept plate2
        connectors 2; risers box1, box1*; bodies 4, on plates 1, off plates 3
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    5  transmitter1 -> location8@1 -> repeater1 -> location9@2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers ground, box1; bodies 3, on plates 0, off plates 3
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    6  transmitter1 -> location8@1 -> repeater1 -> location15@2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers ground, box1; bodies 3, on plates 0, off plates 3
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    7  transmitter1 -> location8@1 -> location9@2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers ground, box1; bodies 3, on plates 0, off plates 3
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    8  transmitter1 -> location9@1 -> repeater1 -> location15@2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers ground, box1; bodies 3, on plates 0, off plates 3
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    9  transmitter1 -> location9@1 -> location15@2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers ground, box1; bodies 3, on plates 0, off plates 3
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    10  transmitter1 -> location9@2 -> location15@1 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers box1, ground; bodies 3, on plates 0, off plates 3
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    11  transmitter1 -> location9@5/2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 1; risers tray1; bodies 3, on plates 0, off plates 3
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    12  transmitter1 -> location7@2 -> location9@5/2 -> receiver1  BOOTSTRAP
        gates gate3, gate4; plates for them plate2, plate3, self-kept plate2
        connectors 2; risers box1, tray1; bodies 5, on plates 1, off plates 4
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    13  transmitter1 -> location7@5/2 -> location9@2 -> receiver1  BOOTSTRAP
        gates gate3, gate4; plates for them plate2, plate3, self-kept plate2
        connectors 2; risers tray1, box1; bodies 5, on plates 1, off plates 4
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    14  transmitter1 -> location8@1 -> repeater1 -> location9@5/2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers ground, tray1; bodies 4, on plates 0, off plates 4
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    15  transmitter1 -> location8@1 -> repeater1 -> location15@5/2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers ground, tray1; bodies 4, on plates 0, off plates 4
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    16  transmitter1 -> location8@1 -> location9@5/2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers ground, tray1; bodies 4, on plates 0, off plates 4
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    17  transmitter1 -> location8@2 -> repeater1 -> location9@2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers box1, box1*; bodies 4, on plates 0, off plates 4
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    18  transmitter1 -> location8@2 -> repeater1 -> location15@2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers box1, box1*; bodies 4, on plates 0, off plates 4
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    19  transmitter1 -> location8@2 -> location9@2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers box1, box1*; bodies 4, on plates 0, off plates 4
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    20  transmitter1 -> location9@1 -> repeater1 -> location15@5/2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers ground, tray1; bodies 4, on plates 0, off plates 4
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    21  transmitter1 -> location9@1 -> location15@5/2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers ground, tray1; bodies 4, on plates 0, off plates 4
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    22  transmitter1 -> location9@2 -> repeater1 -> location15@2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers box1, box1*; bodies 4, on plates 0, off plates 4
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    23  transmitter1 -> location9@2 -> location15@2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers box1, box1*; bodies 4, on plates 0, off plates 4
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    24  transmitter1 -> location9@5/2 -> location15@1 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers tray1, ground; bodies 4, on plates 0, off plates 4
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    25  transmitter1 -> location7@5/2 -> location9@5/2 -> receiver1  BOOTSTRAP
        gates gate3, gate4; plates for them plate2, plate3, self-kept plate2
        connectors 2; risers tray1, tray1*; bodies 6, on plates 1, off plates 5
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    26  transmitter1 -> location8@2 -> repeater1 -> location9@5/2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers box1, tray1; bodies 5, on plates 0, off plates 5
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    27  transmitter1 -> location8@2 -> repeater1 -> location15@5/2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers box1, tray1; bodies 5, on plates 0, off plates 5
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    28  transmitter1 -> location8@2 -> location9@5/2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers box1, tray1; bodies 5, on plates 0, off plates 5
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    29  transmitter1 -> location8@5/2 -> repeater1 -> location9@2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers tray1, box1; bodies 5, on plates 0, off plates 5
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    30  transmitter1 -> location8@5/2 -> repeater1 -> location15@2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers tray1, box1; bodies 5, on plates 0, off plates 5
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    31  transmitter1 -> location8@5/2 -> location9@2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers tray1, box1; bodies 5, on plates 0, off plates 5
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    32  transmitter1 -> location9@2 -> repeater1 -> location15@5/2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers box1, tray1; bodies 5, on plates 0, off plates 5
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    33  transmitter1 -> location9@2 -> location15@5/2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers box1, tray1; bodies 5, on plates 0, off plates 5
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    34  transmitter1 -> location9@5/2 -> repeater1 -> location15@2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers tray1, box1; bodies 5, on plates 0, off plates 5
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    35  transmitter1 -> location9@5/2 -> location15@2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers tray1, box1; bodies 5, on plates 0, off plates 5
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    36  transmitter1 -> location8@5/2 -> repeater1 -> location9@5/2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers tray1, tray1*; bodies 6, on plates 0, off plates 6
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    37  transmitter1 -> location8@5/2 -> repeater1 -> location15@5/2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers tray1, tray1*; bodies 6, on plates 0, off plates 6
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    38  transmitter1 -> location8@5/2 -> location9@5/2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers tray1, tray1*; bodies 6, on plates 0, off plates 6
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    39  transmitter1 -> location9@5/2 -> repeater1 -> location15@5/2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers tray1, tray1*; bodies 6, on plates 0, off plates 6
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    40  transmitter1 -> location9@5/2 -> location15@5/2 -> receiver1  BOOTSTRAP
        gates gate4; plates for them plate3
        connectors 2; risers tray1, tray1*; bodies 6, on plates 0, off plates 6
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    41  transmitter1 -> location8@1 -> repeater1 -> location21@2 -> receiver1  LATCH
        gates gate4, gate8; plates for them plate3
        connectors 2; risers ground, box1; bodies 3, on plates 0, off plates 3
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    42  transmitter1 -> location9@1 -> repeater1 -> location21@2 -> receiver1  LATCH
        gates gate4, gate8; plates for them plate3
        connectors 2; risers ground, box1; bodies 3, on plates 0, off plates 3
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    43  transmitter1 -> location8@1 -> repeater1 -> location21@5/2 -> receiver1  LATCH
        gates gate4, gate8; plates for them plate3
        connectors 2; risers ground, tray1; bodies 4, on plates 0, off plates 4
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    44  transmitter1 -> location8@2 -> repeater1 -> location21@2 -> receiver1  LATCH
        gates gate4, gate8; plates for them plate3
        connectors 2; risers box1, box1*; bodies 4, on plates 0, off plates 4
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    45  transmitter1 -> location9@1 -> repeater1 -> location21@5/2 -> receiver1  LATCH
        gates gate4, gate8; plates for them plate3
        connectors 2; risers ground, tray1; bodies 4, on plates 0, off plates 4
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    46  transmitter1 -> location9@2 -> repeater1 -> location21@2 -> receiver1  LATCH
        gates gate4, gate8; plates for them plate3
        connectors 2; risers box1, box1*; bodies 4, on plates 0, off plates 4
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    47  transmitter1 -> location8@2 -> repeater1 -> location21@5/2 -> receiver1  LATCH
        gates gate4, gate8; plates for them plate3
        connectors 2; risers box1, tray1; bodies 5, on plates 0, off plates 5
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    48  transmitter1 -> location8@5/2 -> repeater1 -> location21@2 -> receiver1  LATCH
        gates gate4, gate8; plates for them plate3
        connectors 2; risers tray1, box1; bodies 5, on plates 0, off plates 5
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    49  transmitter1 -> location9@2 -> repeater1 -> location21@5/2 -> receiver1  LATCH
        gates gate4, gate8; plates for them plate3
        connectors 2; risers box1, tray1; bodies 5, on plates 0, off plates 5
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    50  transmitter1 -> location9@5/2 -> repeater1 -> location21@2 -> receiver1  LATCH
        gates gate4, gate8; plates for them plate3
        connectors 2; risers tray1, box1; bodies 5, on plates 0, off plates 5
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    51  transmitter1 -> location8@5/2 -> repeater1 -> location21@5/2 -> receiver1  LATCH
        gates gate4, gate8; plates for them plate3
        connectors 2; risers tray1, tray1*; bodies 6, on plates 0, off plates 6
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    52  transmitter1 -> location9@5/2 -> repeater1 -> location21@5/2 -> receiver1  LATCH
        gates gate4, gate8; plates for them plate3
        connectors 2; risers tray1, tray1*; bodies 6, on plates 0, off plates 6
        GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    53  transmitter1 -> location7@1 -> location12@1 -> receiver1  EXCLUDED on {gate5, gate7}
    54  transmitter1 -> location7@1 -> location12@2 -> receiver1  EXCLUDED on {gate5, gate7}
    55  transmitter1 -> location7@1 -> location13@2 -> receiver1  EXCLUDED on {gate5, gate7}
    56  transmitter1 -> location7@2 -> location12@1 -> receiver1  EXCLUDED on {gate5, gate7}
    57  transmitter1 -> location7@2 -> location13@1 -> receiver1  EXCLUDED on {gate5, gate7}
    58  transmitter1 -> location8@1 -> location12@1 -> receiver1  EXCLUDED on {gate5, gate7}
    59  transmitter1 -> location8@1 -> location13@1 -> receiver1  EXCLUDED on {gate5, gate7}
    60  transmitter1 -> location9@1 -> location12@1 -> receiver1  EXCLUDED on {gate5, gate7}
    61  transmitter1 -> location7@1 -> location12@5/2 -> receiver1  EXCLUDED on {gate5, gate7}
    62  transmitter1 -> location7@1 -> location13@5/2 -> receiver1  EXCLUDED on {gate5, gate7}
    63  transmitter1 -> location7@2 -> location12@2 -> receiver1  EXCLUDED on {gate5, gate7}
    64  transmitter1 -> location7@2 -> location13@2 -> receiver1  EXCLUDED on {gate5, gate7}
    65  transmitter1 -> location7@5/2 -> location12@1 -> receiver1  EXCLUDED on {gate5, gate7}
    66  transmitter1 -> location7@5/2 -> location13@1 -> receiver1  EXCLUDED on {gate5, gate7}
    67  transmitter1 -> location8@1 -> location12@2 -> receiver1  EXCLUDED on {gate5, gate7}
    68  transmitter1 -> location8@1 -> location13@2 -> receiver1  EXCLUDED on {gate5, gate7}
    69  transmitter1 -> location8@2 -> location12@1 -> receiver1  EXCLUDED on {gate5, gate7}
    70  transmitter1 -> location8@2 -> location13@1 -> receiver1  EXCLUDED on {gate5, gate7}
    71  transmitter1 -> location9@1 -> location12@2 -> receiver1  EXCLUDED on {gate5, gate7}
    72  transmitter1 -> location9@2 -> location12@1 -> receiver1  EXCLUDED on {gate5, gate7}
    73  transmitter1 -> location7@2 -> location12@5/2 -> receiver1  EXCLUDED on {gate5, gate7}
    74  transmitter1 -> location7@2 -> location13@5/2 -> receiver1  EXCLUDED on {gate5, gate7}
    75  transmitter1 -> location7@5/2 -> location12@2 -> receiver1  EXCLUDED on {gate5, gate7}
    76  transmitter1 -> location7@5/2 -> location13@2 -> receiver1  EXCLUDED on {gate5, gate7}
    77  transmitter1 -> location8@1 -> location12@5/2 -> receiver1  EXCLUDED on {gate5, gate7}
    78  transmitter1 -> location8@1 -> location13@5/2 -> receiver1  EXCLUDED on {gate5, gate7}
    79  transmitter1 -> location8@2 -> location12@2 -> receiver1  EXCLUDED on {gate5, gate7}
    80  transmitter1 -> location8@2 -> location13@2 -> receiver1  EXCLUDED on {gate5, gate7}
    81  transmitter1 -> location8@5/2 -> location12@1 -> receiver1  EXCLUDED on {gate5, gate7}
    82  transmitter1 -> location8@5/2 -> location13@1 -> receiver1  EXCLUDED on {gate5, gate7}
    83  transmitter1 -> location9@1 -> location12@5/2 -> receiver1  EXCLUDED on {gate5, gate7}
    84  transmitter1 -> location9@2 -> location12@2 -> receiver1  EXCLUDED on {gate5, gate7}
    85  transmitter1 -> location9@5/2 -> location12@1 -> receiver1  EXCLUDED on {gate5, gate7}
    86  transmitter1 -> location7@5/2 -> location12@5/2 -> receiver1  EXCLUDED on {gate5, gate7}
    87  transmitter1 -> location7@5/2 -> location13@5/2 -> receiver1  EXCLUDED on {gate5, gate7}
    88  transmitter1 -> location8@2 -> location12@5/2 -> receiver1  EXCLUDED on {gate5, gate7}
    89  transmitter1 -> location8@2 -> location13@5/2 -> receiver1  EXCLUDED on {gate5, gate7}
    90  transmitter1 -> location8@5/2 -> location12@2 -> receiver1  EXCLUDED on {gate5, gate7}
    91  transmitter1 -> location8@5/2 -> location13@2 -> receiver1  EXCLUDED on {gate5, gate7}
    92  transmitter1 -> location9@2 -> location12@5/2 -> receiver1  EXCLUDED on {gate5, gate7}
    93  transmitter1 -> location9@5/2 -> location12@2 -> receiver1  EXCLUDED on {gate5, gate7}
    94  transmitter1 -> location8@5/2 -> location12@5/2 -> receiver1  EXCLUDED on {gate5, gate7}
    95  transmitter1 -> location8@5/2 -> location13@5/2 -> receiver1  EXCLUDED on {gate5, gate7}
    96  transmitter1 -> location9@5/2 -> location12@5/2 -> receiver1  EXCLUDED on {gate5, gate7}

  summary for receiver1
    chains 96: bootstrap 40, latch 12, excluded 44, infeasible 0
    gates open in every bootstrap chain: gate4
    least off-plate bodies over bootstrap chains: 2
    with 1 connector: 2 chains, least off-plate bodies 2, receiver-end stations location9@2, location9@5/2
    with 2 connectors: 38 chains, least off-plate bodies 2, receiver-end stations location9@2, location9@5/2, location15@1, location15@2, location15@5/2


S7  LANDMARK GRAPH AND ORDERINGS  [grade 4]
--------------------------------------------------------------
  relaxation: delete relaxation; achieved landmarks persist.
  no simultaneous-role, keeper-return, segment, or route claim is emitted.

  explicit goal landmarks
    (has-location agent1 location19)  movement/query landmark; S1 expansion unavailable.

  S1 controller expansions
    none: the explicit goal has no controlled-device condition.

  greedy-necessary orderings
    none: route/order extraction needs a separately stated movement relaxation.


S3  GATE-LABELLED REGION QUOTIENT  [grade 2]
--------------------------------------------------------------

  traversal arcs read (178)
    175 symmetric (traverse-via), 3 directed (traverse-via>)
    kind climb: 3 arcs, 0 with an empty family
    kind jump: 4 arcs, 1 with an empty family
    kind walk: 171 arcs, 19 with an empty family

  contraction rule: two endpoints share a region when an arc of traverse-via joins them with an EMPTY door family.  Static separators -- staircases, edges, floor drives -- are not doors.  Arcs of traverse-via> are never contracted, whatever their family.
  NOTE: a region is a set of endpoints NO DOOR separates.  Each kind carries its own predicate -- a jump's reach limit, a ladder's position -- which this extractor does not evaluate, having no state to evaluate it in.  Two endpoints in one region therefore need not be mutually reachable.

  regions (9 over 21 endpoints of type location)
    R1  (2): location1 location2
    R2  (3): location10 location8 location9
    R3  (3): location11 location12 location13
    R4  (1): location14
    R5  (1): location15
    R6  (4): location16 location17 location18 location21
    R7  (1): location19
    R8  (5): location20 location3 location4 location5 location7
    R9  (1): location6

  region crossings (32 rows: 11 spine, 21 composed)
    NOTE: these rows are the transitive CLOSURE, one minimal door-set per location pair. The spine preserves reachability; it is not a physical doorway count.
    R1 <-> R2  kind walk  family ((gate1 gate3))  6 location arcs  composed
    R1 <-> R3  kind walk  family ((gate1 gate3 gate5))  6 location arcs  composed
    R1 <-> R4  kind walk  family ((gate1 gate3 gate5 gate6 screen1))  2 location arcs  composed
    R1 <-> R5  kind walk  family ((gate1 gate3 gate5 gate7))  2 location arcs  composed
    R1 <-> R6  kind walk  family ((gate1 gate3 gate5 gate7 gate8))  8 location arcs  composed
    R1 <-> R7  kind walk  family ((gate1 gate3 gate5 gate7 gate8 gate9))  2 location arcs  composed
    R1 <-> R8  kind walk  family ((gate1))  8 location arcs  SPINE
    R2 <-> R3  kind walk  family ((gate5))  9 location arcs  SPINE
    R2 <-> R4  kind walk  family ((gate5 gate6 screen1))  3 location arcs  composed
    R2 <-> R5  kind walk  family ((gate5 gate7))  3 location arcs  composed
    R2 <-> R6  kind walk  family ((gate5 gate7 gate8))  12 location arcs  composed
    R2 <-> R7  kind walk  family ((gate5 gate7 gate8 gate9))  3 location arcs  composed
    R2 --> R8  kind climb  family ((ladder2))  1 location arc  SPINE
    R2 <-> R8  kind walk  family ((gate3))  12 location arcs  SPINE
    R3 --> R2  kind climb  family ((ladder3))  1 location arc  SPINE
    R3 <-> R4  kind walk  family ((gate6 screen1))  3 location arcs  SPINE
    R3 <-> R5  kind walk  family ((gate7))  3 location arcs  SPINE
    R3 <-> R6  kind walk  family ((gate7 gate8))  12 location arcs  composed
    R3 <-> R7  kind walk  family ((gate7 gate8 gate9))  3 location arcs  composed
    R3 <-> R8  kind walk  family ((gate3 gate5))  12 location arcs  composed
    R4 <-> R5  kind walk  family ((gate6 gate7 screen1))  1 location arc  composed
    R4 <-> R6  kind walk  family ((gate6 gate7 gate8 screen1))  4 location arcs  composed
    R4 <-> R7  kind walk  family ((gate6 gate7 gate8 gate9 screen1))  1 location arc  composed
    R4 <-> R8  kind walk  family ((gate3 gate5 gate6 screen1))  4 location arcs  composed
    R5 <-> R6  kind walk  family ((gate8))  4 location arcs  SPINE
    R5 <-> R7  kind walk  family ((gate8 gate9))  1 location arc  composed
    R5 <-> R8  kind walk  family ((gate3 gate5 gate7))  4 location arcs  composed
    R6 <-> R7  kind walk  family ((gate9))  4 location arcs  SPINE
    R6 <-> R8  kind walk  family ((gate3 gate5 gate7 gate8))  16 location arcs  composed
    R7 <-> R8  kind walk  family ((gate3 gate5 gate7 gate8 gate9))  4 location arcs  composed
    R8 --> R1  kind climb  family ((ladder1))  1 location arc  SPINE
    R8 <-> R9  kind jump  family ((gate2))  3 location arcs  SPINE

  adjacency spine (11)
    R1 <-> R8  kind walk  family ((gate1))
    R2 <-> R3  kind walk  family ((gate5))
    R2 --> R8  kind climb  family ((ladder2))
    R2 <-> R8  kind walk  family ((gate3))
    R3 --> R2  kind climb  family ((ladder3))
    R3 <-> R4  kind walk  family ((gate6 screen1))
    R3 <-> R5  kind walk  family ((gate7))
    R5 <-> R6  kind walk  family ((gate8))
    R6 <-> R7  kind walk  family ((gate9))
    R8 --> R1  kind climb  family ((ladder1))
    R8 <-> R9  kind jump  family ((gate2))

  doors on arcs (12)
    gate1 gate2 gate3 gate5 gate6 gate7 gate8 gate9 ladder1 ladder2 ladder3 screen1

  controlled devices labelling NO traversal arc (2 of 10)
    blower1
    gate4
    READING: such a device is movement-irrelevant, meaning that no traversal clause names it.  It is NOT a claim that the device is inert -- a device may act on objects rather than on passage -- and it is NOT a claim about reaching, which a separate relation carries and this extractor does not read.

  doors that are NOT controlled devices (4)
    ladder1 ladder2 ladder3 screen1
    these are obstacles with no CONTROLS entry, so no plate or switch opens them and S1's algebra says nothing about them.


S4  CUT-KEEPER TABLE  [conditional bounds; graph candidates]
--------------------------------------------------------------
  SCOPE: graph reachability relaxes all other doors, elevation and cargo conditions.
  It omits non-traversal relocation, support transitions and recorder lifecycle.
  Graph cuts and approach-only regions therefore do NOT prove concrete stranding.
  Pressure counts require ON's functional key and the relevant view's occupancy semantics.
  Device-state conclusions additionally require the printed S1 axiom premises.

  controlled devices (10); spine rows (11); spine check :VERIFIED-AGAINST-QUOTIENT

    blower1 == switch1
      state recording-turning: state == aggregate; empty-type premises (jammer)
      state turning: state == aggregate; empty-type premises (jammer)
      controller switch1: SWITCH; position unresolved; region UNRESOLVED
        manipulation reach candidates (location region required-open barriers): ((location20 "r8" nil) (location4 "r8" nil) (location5 "r8" nil) (location6 "r9" (gate2)))
        persistent state; no continuous weight requirement inferred.
      positive pressure alternatives (nil); individually mandatory nil
      conditional shortage: available eligible ON witnesses < 0 implies
        this normal aggregate cannot activate (minimum simultaneous plate demand).
      no movement-spine occurrence; nonmovement function UNRESOLVED, not inert.

    gate1 == plate1
      state open: state == aggregate; empty-type premises (jammer)
      state recording-open: state == aggregate; empty-type premises (jammer)
      controller plate1: PRESSURE; position location2; region R1
      positive pressure alternatives ((plate1)); individually mandatory (plate1)
      conditional shortage: available eligible ON witnesses < 1 implies
        this normal aggregate cannot activate (minimum simultaneous plate demand).
      spine kind walk, family ((gate1))
        R1 -> R8, device absent: source reaches ("R1"); destination reaches ("R1" "R2" "R3" "R4" "R5" "R6" "R7" "R8" "R9")
          graph cut in this direction: YES
          mandatory pressure plate1 at R1: BOTH
        R8 -> R1, device absent: source reaches ("R1" "R2" "R3" "R4" "R5" "R6" "R7" "R8" "R9"); destination reaches ("R1")
          graph cut in this direction: NO, bypass exists
          mandatory pressure plate1 at R1: BOTH

    gate2 == (not switch1)
      state open: state == aggregate; empty-type premises (jammer)
      state recording-open: state == aggregate; empty-type premises (jammer)
      controller switch1: SWITCH; position unresolved; region UNRESOLVED
        manipulation reach candidates (location region required-open barriers): ((location20 "r8" nil) (location4 "r8" nil) (location5 "r8" nil) (location6 "r9" (gate2)))
        persistent state; no continuous weight requirement inferred.
      positive pressure alternatives nil; individually mandatory nil
      inverted aggregate: no positive keeper demand inferred.
      spine kind jump, family ((gate2))
        R8 -> R9, device absent: source reaches ("R1" "R2" "R3" "R4" "R5" "R6" "R7" "R8"); destination reaches ("R9")
          graph cut in this direction: YES
        R9 -> R8, device absent: source reaches ("R9"); destination reaches ("R1" "R2" "R3" "R4" "R5" "R6" "R7" "R8")
          graph cut in this direction: YES

    gate3 == plate2
      state open: state == aggregate; empty-type premises (jammer)
      state recording-open: state == aggregate; empty-type premises (jammer)
      controller plate2: PRESSURE; position location7; region R8
      positive pressure alternatives ((plate2)); individually mandatory (plate2)
      conditional shortage: available eligible ON witnesses < 1 implies
        this normal aggregate cannot activate (minimum simultaneous plate demand).
      spine kind walk, family ((gate3))
        R2 -> R8, device absent: source reaches ("R1" "R2" "R3" "R4" "R5" "R6" "R7" "R8" "R9"); destination reaches ("R1" "R8" "R9")
          graph cut in this direction: NO, bypass exists
          mandatory pressure plate2 at R8: BOTH
        R8 -> R2, device absent: source reaches ("R1" "R8" "R9"); destination reaches ("R1" "R2" "R3" "R4" "R5" "R6" "R7" "R8" "R9")
          graph cut in this direction: YES
          mandatory pressure plate2 at R8: BOTH

    gate4 == plate3
      state open: state == aggregate; empty-type premises (jammer)
      state recording-open: state == aggregate; empty-type premises (jammer)
      controller plate3: PRESSURE; position location10; region R2
      positive pressure alternatives ((plate3)); individually mandatory (plate3)
      conditional shortage: available eligible ON witnesses < 1 implies
        this normal aggregate cannot activate (minimum simultaneous plate demand).
      no movement-spine occurrence; nonmovement function UNRESOLVED, not inert.

    gate5 == (not switch2)
      state open: state == aggregate; empty-type premises (jammer)
      state recording-open: state == aggregate; empty-type premises (jammer)
      controller switch2: SWITCH; position unresolved; region UNRESOLVED
        manipulation reach candidates (location region required-open barriers): ((location14 "r4" nil))
        persistent state; no continuous weight requirement inferred.
      positive pressure alternatives nil; individually mandatory nil
      inverted aggregate: no positive keeper demand inferred.
      spine kind walk, family ((gate5))
        R2 -> R3, device absent: source reaches ("R1" "R2" "R8" "R9"); destination reaches ("R1" "R2" "R3" "R4" "R5" "R6" "R7" "R8" "R9")
          graph cut in this direction: YES
        R3 -> R2, device absent: source reaches ("R1" "R2" "R3" "R4" "R5" "R6" "R7" "R8" "R9"); destination reaches ("R1" "R2" "R8" "R9")
          graph cut in this direction: NO, bypass exists

    gate6 == (and plate4 plate5)
      state open: state == aggregate; empty-type premises (jammer)
      state recording-open: state == aggregate; empty-type premises (jammer)
      controller plate4: PRESSURE; position location13; region R3
      controller plate5: PRESSURE; position location12; region R3
      positive pressure alternatives ((plate4 plate5)); individually mandatory (plate4 plate5)
      conditional shortage: available eligible ON witnesses < 2 implies
        this normal aggregate cannot activate (minimum simultaneous plate demand).
      spine kind walk, family ((gate6 screen1))
        R3 -> R4, device absent: source reaches ("R1" "R2" "R3" "R5" "R6" "R7" "R8" "R9"); destination reaches ("R4")
          graph cut in this direction: YES
          mandatory pressure plate4 at R3: APPROACH-ONLY
            KEEPER-OBLIGATED candidate while device state requires this aggregate;
            permanent stranding UNRESOLVED (movement and lifecycle coverage).
          mandatory pressure plate5 at R3: APPROACH-ONLY
            KEEPER-OBLIGATED candidate while device state requires this aggregate;
            permanent stranding UNRESOLVED (movement and lifecycle coverage).
        R4 -> R3, device absent: source reaches ("R4"); destination reaches ("R1" "R2" "R3" "R5" "R6" "R7" "R8" "R9")
          graph cut in this direction: YES
          mandatory pressure plate4 at R3: DEPARTURE-ONLY
          mandatory pressure plate5 at R3: DEPARTURE-ONLY

    gate7 == switch2
      state open: state == aggregate; empty-type premises (jammer)
      state recording-open: state == aggregate; empty-type premises (jammer)
      controller switch2: SWITCH; position unresolved; region UNRESOLVED
        manipulation reach candidates (location region required-open barriers): ((location14 "r4" nil))
        persistent state; no continuous weight requirement inferred.
      positive pressure alternatives (nil); individually mandatory nil
      conditional shortage: available eligible ON witnesses < 0 implies
        this normal aggregate cannot activate (minimum simultaneous plate demand).
      spine kind walk, family ((gate7))
        R3 -> R5, device absent: source reaches ("R1" "R2" "R3" "R4" "R8" "R9"); destination reaches ("R5" "R6" "R7")
          graph cut in this direction: YES
        R5 -> R3, device absent: source reaches ("R5" "R6" "R7"); destination reaches ("R1" "R2" "R3" "R4" "R8" "R9")
          graph cut in this direction: YES

    gate8 == receiver1
      state open: state == aggregate; empty-type premises (jammer)
      state recording-open: state == aggregate; empty-type premises (jammer)
      controller receiver1: RECEIVER; position unresolved; region UNRESOLVED
        beam dependency unresolved; requires sightline analysis.
      positive pressure alternatives (nil); individually mandatory nil
      conditional shortage: available eligible ON witnesses < 0 implies
        this normal aggregate cannot activate (minimum simultaneous plate demand).
      spine kind walk, family ((gate8))
        R5 -> R6, device absent: source reaches ("R1" "R2" "R3" "R4" "R5" "R8" "R9"); destination reaches ("R6" "R7")
          graph cut in this direction: YES
        R6 -> R5, device absent: source reaches ("R6" "R7"); destination reaches ("R1" "R2" "R3" "R4" "R5" "R8" "R9")
          graph cut in this direction: YES

    gate9 == (and plate6 plate7 plate8)
      state open: state == aggregate; empty-type premises (jammer)
      state recording-open: state == aggregate; empty-type premises (jammer)
      controller plate6: PRESSURE; position location16; region R6
      controller plate7: PRESSURE; position location17; region R6
      controller plate8: PRESSURE; position location18; region R6
      positive pressure alternatives ((plate6 plate7 plate8)); individually mandatory (plate6 plate7 plate8)
      conditional shortage: available eligible ON witnesses < 3 implies
        this normal aggregate cannot activate (minimum simultaneous plate demand).
      spine kind walk, family ((gate9))
        R6 -> R7, device absent: source reaches ("R1" "R2" "R3" "R4" "R5" "R6" "R8" "R9"); destination reaches ("R7")
          graph cut in this direction: YES
          mandatory pressure plate6 at R6: APPROACH-ONLY
            KEEPER-OBLIGATED candidate while device state requires this aggregate;
            permanent stranding UNRESOLVED (movement and lifecycle coverage).
          mandatory pressure plate7 at R6: APPROACH-ONLY
            KEEPER-OBLIGATED candidate while device state requires this aggregate;
            permanent stranding UNRESOLVED (movement and lifecycle coverage).
          mandatory pressure plate8 at R6: APPROACH-ONLY
            KEEPER-OBLIGATED candidate while device state requires this aggregate;
            permanent stranding UNRESOLVED (movement and lifecycle coverage).
        R7 -> R6, device absent: source reaches ("R7"); destination reaches ("R1" "R2" "R3" "R4" "R5" "R6" "R8" "R9")
          graph cut in this direction: YES
          mandatory pressure plate6 at R6: DEPARTURE-ONLY
          mandatory pressure plate7 at R6: DEPARTURE-ONLY
          mandatory pressure plate8 at R6: DEPARTURE-ONLY

  explicit goal destinations (1); goal form (has-location agent1 location19)
    agent1: location1 (R1) -> location19 (R7)
      GRAPH-REQUIRED candidates (gate1 gate3 gate5 gate7 gate8 gate9); concrete necessity UNRESOLVED.
    connector1: initially location9; no explicit destination, crossings UNRESOLVED.
    box1: initially location6; no explicit destination, crossings UNRESOLVED.
    tray1: initially location7; no explicit destination, crossings UNRESOLVED.

  keeper supply from S2
    on: support-occupant -> support
      |occupied support| <= 8 - |unavailable support-occupant|
      injective: the relation is keyed by its support-occupant argument, so two distinct occupied values need two distinct witnesses
      BODIES by layer, not yet a claim about any predicate: live + unpaired 4, ghost + unpaired 4, total 8
      consumers (6 relations): the bound each one actually reads
        active [derived]  asserted by update-receiver-status!  via beam-reaches-receiver
          site in base: NONE -- layer-blind, it reads every occupant
          witnesses it reads: 8 -- the whole pool
        depressed [derived]  asserted by update-plate-status!  via support-occupied
          site in support-occupied: NONE -- layer-blind, it reads every occupant
          witnesses it reads: 8 -- the whole pool
        latched [not derived]  asserted by update-plate-status!  via support-occupied
          site in support-occupied: NONE -- layer-blind, it reads every occupant
          witnesses it reads: 8 -- the whole pool
        recording-active [derived]  asserted by update-recording-receiver-status!  via recording-shadow-beam-reaches-receiver
          site in base: NONE -- layer-blind, it reads every occupant
          witnesses it reads: 8 -- the whole pool
        recording-depressed [derived]  asserted by update-recording-plate-status!  via recording-plate-occupied
          site in recording-plate-occupied: LAYER, STATE-SELECTED by (recorder-cycle-closed)
          witnesses it reads: 4, either class -- the class is chosen at run time
        recording-latched [derived]  asserted by update-recording-plate-status!  via recording-plate-occupied
          site in recording-plate-occupied: LAYER, STATE-SELECTED by (recorder-cycle-closed)
          witnesses it reads: 4, either class -- the class is chosen at run time
      NOTE: assertion side only.  A query used in an action's precondition is not listed here.
      NOTE: the switch walk descends AND, OR, NOT, IF and the queries those call.  A switch inside any other form is not found, so "no switch found" is weaker than "no switch".
      *start-state* reading, NOT the bound: 1 of 8 keys assigned, 1 distinct value occupied
    Available eligible witnesses are a parameter for each view and segment.
    Total sequential crossers are NOT simultaneous body demand.

  UNCONDITIONAL STRANDING: unresolved; no verdict emitted.


CC  COUPLING CENSUS  [grade 1; occluder role grade 2]
--------------------------------------------------------------
  subsystems: route (barrier), beam (occluder, beam-driven), lift (lift), transport (horizontal-transport, transport), occupancy (support-controller)

  role table (21 objects)
    blower1  device  lift  subsystems lift
    gate1  device  barrier occluder  subsystems route beam
    gate2  device  barrier occluder  subsystems route beam
    gate3  device  barrier occluder  subsystems route beam
    gate4  device  occluder  subsystems beam
    gate5  device  barrier occluder  subsystems route beam
    gate6  device  barrier occluder  subsystems route beam
    gate7  device  barrier occluder  subsystems route beam
    gate8  device  barrier occluder  subsystems route beam
    gate9  device  barrier occluder  subsystems route beam
    plate1  primitive  support-controller  subsystems occupancy
    plate2  primitive  support-controller  subsystems occupancy
    plate3  primitive  support-controller  subsystems occupancy
    plate4  primitive  support-controller  subsystems occupancy
    plate5  primitive  support-controller  subsystems occupancy
    plate6  primitive  support-controller  subsystems occupancy
    plate7  primitive  support-controller  subsystems occupancy
    plate8  primitive  support-controller  subsystems occupancy
    receiver1  primitive  beam-driven  subsystems beam
    switch1  primitive  none  subsystems none
    switch2  primitive  none  subsystems none

  K1 fan-out (2)
    switch1  subsystems route beam lift
      blower1 == switch1  lift
      gate2 == (not switch1)  barrier occluder
      {blower1, gate2}  EXCLUSION
    switch2  subsystems route beam
      gate5 == (not switch2)  barrier occluder
      gate7 == switch2  barrier occluder
      {gate5, gate7}  EXCLUSION

  K2 multi-role (8)
    gate1  route beam
    gate2  route beam
    gate3  route beam
    gate5  route beam
    gate6  route beam
    gate7  route beam
    gate8  route beam
    gate9  route beam

  K3 beam feedback (1)
    receiver1  drives gate8
      last-hop gates (2)
        gate7  controllers switch2  K1
        gate8  controllers receiver1  SELF

  G15 lift-barrier couplings (1)
    switch1  lift blower1 -> location20  barrier gate2
      exit jump location6 ((gate2))
      EXCLUSION  G15 FLAG: gate2 is active only while blower1 is inactive
      QUESTION (checklist 2.2): in the successor after the toggle, is the launch support at location20 still present?


NH  NECESSITY HINTS  [grade per hint]

  SUPPLIED RELAY SCENARIO (T33): CLEAR is conditional, not stable/reachable/validated.
    PHYSICAL UNRESOLVED: no explicit scenario supplied
    RECORDING UNRESOLVED: no explicit scenario supplied
--------------------------------------------------------------
  READING: a hint restates static limits as a candidate plan element for the Briefing (Problem-Solving Guide, Phase 1 step 3).  NECESSARY: every plan meets it, under the grade shown.  CANDIDATE: one way to meet a limit; others may exist.  A hint is not a plan, and a graph candidate is not a proof.

  hints (14): 7 NECESSARY, 7 CANDIDATE

  H1 body budget (3)
    H1.1  NECESSARY  [grade 1 -> 2; T6 S2]
      limit  plate demand 8 (5 devices) exceeds the 3 bodies outside a cycle (4 live, less the goal actor agent1)
      hint   a state holding more than 3 plates needs ghost bodies (4 in the ON pool)
    H1.2  NECESSARY  [grade 1 -> 2; T6 S2]
      limit  plate demand 8 exceeds the 7 bodies inside a cycle (8 in the ON pool, less the goal actor agent1)
      hint   at least 1 plate is free at every moment: the plate demands are met in sequence, never all at once
    H1.3  NECESSARY  [grade 1 -> 2; T6 S2]
      limit  gate9 needs 3 plates at once (plate6, plate7, plate8); 3 bodies outside a cycle besides the goal actor agent1
      hint   opening gate9 outside a cycle takes every one of them; any other plate held at the same time needs a ghost

  H2 keepers left behind (2)
    H2.1  NECESSARY  [grade 2, graph candidate; S4 S1]
      limit  crossing gate6 from R3 {location11 location12 location13} to R4 {location14} needs plate4, plate5 held; they lie on the R3 side only (approach-only)
      hint   before crossing gate6 into R4, leave 2 bodies other than the crosser on plate4, plate5 (off the goal route)
      note   coming back from R4 to R3 through gate6 needs the same plates held: the bodies stay until the crosser returns
    H2.2  NECESSARY  [grade 2, graph candidate; S4 S1]
      limit  crossing gate9 from R6 {location16 location17 location18 location21} to R7 {location19} needs plate6, plate7, plate8 held; they lie on the R6 side only (approach-only)
      hint   before crossing gate9 into R7, leave 3 bodies other than the crosser on plate6, plate7, plate8 (goal route)
      note   coming back from R7 to R6 through gate9 needs the same plates held: the bodies stay until the crosser returns

  H3 beam-held devices (3)
    H3.1  NECESSARY  [grade 2; S1 RC]
      limit  gate8 == receiver1 holds only while receiver1 is active; within RC's enumerated physical geometric candidates, every chain to receiver1 (40 bootstrap, 12 latch) needs gate4 open (plate3)
      hint   within those geometric candidates for gate8, a body stands on plate3, and at least 2 bodies are off plates for the beam
      note   S1's receiver condition is necessary; RC gate/body bounds are conditional on its physical geometric enumeration, not all recording-view beams
      note   Recording sightlines, body/view assignment, forced transport and occupancy stability UNRESOLVED; geometric chains are not validated realizations
    H3.2  CANDIDATE  [grade 2; RC]
      limit  physical geometric candidates to receiver1 with last connector at location15 (R5): least off-plate bodies 3
      hint   transmitter1 -> location8@1 -> repeater1 -> location15@2 -> receiver1  risers ground, box1; bodies 3, off plates 3
      hint   transmitter1 -> location9@1 -> location15@2 -> receiver1  risers ground, box1; bodies 3, off plates 3
      hint   transmitter1 -> location9@1 -> repeater1 -> location15@2 -> receiver1  risers ground, box1; bodies 3, off plates 3
      hint   transmitter1 -> location9@2 -> location15@1 -> receiver1  risers box1, ground; bodies 3, off plates 3
      note   GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED
    H3.3  CANDIDATE  [grade 2; RC]
      limit  physical geometric candidates to receiver1 with last connector at location9 (R2): least off-plate bodies 2
      hint   transmitter1 -> location7@1 -> location9@2 -> receiver1  risers ground, box1; bodies 3, off plates 2, self-kept plate2
      hint   transmitter1 -> location9@2 -> receiver1  risers box1; bodies 2, off plates 2
      note   GEOMETRIC CANDIDATE, physical sightlines only; recording sightlines, body/view assignment and occupancy stability UNRESOLVED

  H4 controllers off the goal route (1)
    H4.1  NECESSARY  [grade 2, graph candidate; S4 S3 S1]
      limit  switch2 drives gate5, gate7 (goal route); it is operated only from location14 (R4)
      hint   an excursion off the goal route: reaching R4 from R1 also needs gate6 (plate4, plate5)
      note   {gate5, gate7} EXCLUSION on switch2: never active together; the route crosses them under different settings of switch2

  H5 lift landings (1)
    H5.1  CANDIDATE  [grade 1; CC MC S5]
      limit  switch1 drives lift blower1 (location4 -> location20) and gate2 on an exit from location20: gate2 is active only while blower1 is inactive (G15 FLAG)
      hint   keep the lift through the toggle: a support at location20 (box1, box1*, tray1, tray1*), then leave through gate2: jump (1): location6 ((gate2))
      hint   or leave location20 while blower1 runs, by an exit not through gate2: jump (1): location5
      note   each kind's own rule is not evaluated: a listed exit is a candidate, not a legal move

  H6 active at the start (3)
    H6.1  CANDIDATE  [grade 1; S1, start state]
      limit  gate2 == (not switch1) holds at the start: switch1 is not switched-on
      hint   gate2 is free until switch1 changes (off the goal route)
    H6.2  CANDIDATE  [grade 1; S1, start state]
      limit  gate3 == plate2 holds at the start: plate2 is depressed, held by tray1
      hint   gate3 is free while tray1 stays on plate2 (goal route)
    H6.3  CANDIDATE  [grade 1; S1, start state]
      limit  gate5 == (not switch2) holds at the start: switch2 is not switched-on
      hint   gate5 is free until switch2 changes (goal route)

  H7 placement limits (1)
    H7.1  CANDIDATE  [grade 2; S5]
      limit  tray1, tray1* at top 3/2 take no placement from a grounded agent (placement reach limit 1)
      hint   place onto them from a raised location: location20 (level 3/2), location6 (level 3/2)
      note   placement reach from that location to the support, and a base raised by standing on a support, are not evaluated


SD  SERVICES AND SETUP DEPENDENCIES  [grade 2]
--------------------------------------------------------------
  SCOPE: a monotone premise closure over passage services (every gate; each drive a traversal clause names) and receiver literals.  Providers: S1 CONTROL options, MC jam sites (OVERRIDE), gears with no fan (EQUIPMENT), RC chains and fixed corridors to a receiver.  No ordering, simultaneity, bodies, reach, occupancy or view is checked.
  CLASSES: DIRECT no premise; SUPPORTED premises available without this service; NEEDS <service> FIRST: installing this provider needs the service it will provide (a setup dependency); UNSUPPORTED IN SCOPE.  A service with only NEEDS-FIRST options is a SETUP QUESTION, not an impossibility.  "Through standing providers" repeats the test with premises supplied only by CONTROL, chains, corridors and equipment, never another jam, and is printed when that exposes a setup dependency a further jammer would hide.
  RECORDER SPLICED: physical view only; recording-view providers are not read.

  goal actor agent1: start location1 (R1) -> goal location19 (R7)
    transit door sets (R1 -> R7, 1): (gate1 gate3 gate5 gate7 gate8 gate9)
      necessary: gate1 gate3 gate5 gate7 gate8 gate9
    return door sets (R7 -> R1, 8): (gate1 gate3 gate5 gate7 gate8 gate9) (gate1 gate3 gate7 gate8 gate9 ladder3) (gate1 gate5 gate7 gate8 gate9 ladder2) (gate1 gate7 gate8 gate9 ladder2 ladder3) (gate3 gate5 gate7 gate8 gate9 ladder1) (gate3 gate7 gate8 gate9 ladder1 ladder3) (gate5 gate7 gate8 gate9 ladder1 ladder2) (gate7 gate8 gate9 ladder1 ladder2 ladder3)
      necessary: gate7 gate8 gate9
    final services: none (the goal names no receiver or controlled device)
    temporary services (in some transit set, not final): gate1 via plate1, gate3 via plate2, gate5 via switch2, gate7 via switch2, gate8 via receiver1, gate9 via plate6 plate7 plate8
      READING: TEMPORARY means needed while crossing and expendable afterward, unless a return or a later crossing needs it again.

  access from R1 (minimal door sets to each region; kind predicates not evaluated)
    R1  ()
    R2  (gate1 gate3)
    R3  (gate1 gate3 gate5)
    R4  (gate1 gate3 gate5 gate6 screen1)
    R5  (gate1 gate3 gate5 gate7)
    R6  (gate1 gate3 gate5 gate7 gate8)
    R7  (gate1 gate3 gate5 gate7 gate8 gate9)
    R8  (gate1)
    R9  (gate1 gate2)

  retrieval (start places of jammers, connectors and fans)
    connector1  location9 (R2)
    connector1*  absent

  services (10): 10 SUPPORTED, 0 SETUP QUESTION, 0 NO PROVIDER IN SCOPE
    gate1 open  == plate1  start BLOCKED  verdict SUPPORTED  route TRANSIT necessary, RETURN alternative, TEMPORARY
      CONTROL DIRECT: a body on plate1 (T6)
    gate2 open  == (not switch1)  start PASSABLE  verdict SUPPORTED
      CONTROL DIRECT: switch1 not switched-on
    gate3 open  == plate2  start PASSABLE  verdict SUPPORTED  route TRANSIT necessary, RETURN alternative, TEMPORARY
      CONTROL DIRECT: a body on plate2 (T6)
    gate4 open  == plate3  start BLOCKED  verdict SUPPORTED
      CONTROL DIRECT: a body on plate3 (T6)
    gate5 open  == (not switch2)  start PASSABLE  verdict SUPPORTED  route TRANSIT necessary, RETURN alternative, TEMPORARY
      CONTROL DIRECT: switch2 not switched-on
    gate6 open  == (and plate4 plate5)  start BLOCKED  verdict SUPPORTED
      CONTROL DIRECT: a body on plate4 (T6); a body on plate5 (T6)
    gate7 open  == switch2  start BLOCKED  verdict SUPPORTED  route TRANSIT necessary, RETURN necessary, TEMPORARY
      CONTROL DIRECT: switch2 switched-on
    gate8 open  == receiver1  start BLOCKED  verdict SUPPORTED  route TRANSIT necessary, RETURN necessary, TEMPORARY
      CONTROL SUPPORTED: receiver1 active
    gate9 open  == (and plate6 plate7 plate8)  start BLOCKED  verdict SUPPORTED  route TRANSIT necessary, RETURN necessary, TEMPORARY
      CONTROL DIRECT: a body on plate6 (T6); a body on plate7 (T6); a body on plate8 (T6)
    receiver1 active  start INACTIVE  verdict SUPPORTED
      (44 RC chains EXCLUDED or INFEASIBLE, not options)
      CHAINS SUPPORTED: 6 RC chains (bootstrap); gate3 open; gate4 open
      CHAINS SUPPORTED: 34 RC chains (bootstrap); gate4 open
      CHAINS NEEDS receiver1 active FIRST (path gate8 open -> receiver1 active): 12 RC chains (latch); gate4 open; gate8 open

  opposed controls (a primitive needed in both states by different services)
    switch2: on for gate7; off for gate5

  setup dependencies (options whose premises lead back to their own service)
    receiver1 active: 1 option, 1 even with further jams
    setup questions: none

  NOT CLAIMED: an order, simultaneous availability, a body or reach allocation, occupancy, view or a realized setup.  A premise-free provider still needs placing, and a NEEDS-FIRST provider needs another provider in force while it is installed (a handover).  Access is to a site's own region; placement or pickup from another location within reach is not modelled.  For concrete consequences use REPORT-SERVICE-TRANSITION on two settled states.
RO requires an explicit segment input and is not generated; call
REPORT-ROLE-OBLIGATIONS with a stated scenario.
