r1 qualified Selected asymmetric formal reference: 2,502 contracts across nine families; bounded evidence and three separate teaching models Read the evidence scope

TraversalContracts

Complete selected asymmetric reference profile. Definitions and supplied fixtures are distinct from the three teaching specializations; review and qualification are stated in the bound evidence and release.

Package reference-profile, input revision 2. Exact prepared source; CC0 1.0.

This is a definition inventory. Start with the learning chapters for the contract and its assumptions.

changed · operator

reference-profile · input revision 2 · CC0 1.0

changed == phase # before.traversal.phase

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: phase

next · operator

reference-profile · input revision 2 · CC0 1.0

next == NextTraversalStep6(before.traversal.step,TraversalBranch6(before.traversal,l,activationzedDeployedBarrier,e,m,work))

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: NextTraversalStep6, TraversalBranch6

phase · operator

reference-profile · input revision 2 · CC0 1.0

phase == TraversalStepInfo6(next).phase

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: next, TraversalStepInfo6

r · operator

reference-profile · input revision 2 · CC0 1.0

r == [before.traversal EXCEPT !.step = next,!.phase = phase,
                   !.phaseId = IF changed THEN newPhaseId ELSE @,
                   !.usedPhaseIds = IF changed THEN @ \cup {newPhaseId} ELSE @,
                   !.reachedSuccess = @ \/ phase = "Success",
                   !.ending = @ \/ phase = "TraversalEnds",
                   !.position = IF phase \in {"Success","TraversalEnds"} THEN "NoValue" ELSE @]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: changed, next, phase

next · operator

reference-profile · input revision 2 · CC0 1.0

next == NextTraversalStep6(before.traversal.step,TraversalBranch6(before.traversal,l,activationzedDeployedBarrier,e,m,work))

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: NextTraversalStep6, TraversalBranch6

t · operator

reference-profile · input revision 2 · CC0 1.0

t == before.redirect

Exact module download · Source bundle and reproduction instructions

base · operator

reference-profile · input revision 2 · CC0 1.0

base == EndTraversalOutcome6(control,newTraversalEndsPhaseId)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: EndTraversalOutcome6

ids · operator

reference-profile · input revision 2 · CC0 1.0

ids == EncounterChainIds6(stack)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: EncounterChainIds6

itemInspections · operator

reference-profile · input revision 2 · CC0 1.0

itemInspections == IF TraversalTimingPresent6(control.traversal) THEN base.itemInspections ELSE OutsideEncounterChain6(control.itemInspections,ids)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: base, ids, OutsideEncounterChain6, TraversalTimingPresent6

siteInspections · operator

reference-profile · input revision 2 · CC0 1.0

siteInspections == IF TraversalTimingPresent6(control.traversal) THEN base.siteInspections ELSE OutsideEncounterChain6(control.siteInspections,ids)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: base, ids, OutsideEncounterChain6, TraversalTimingPresent6

empty · operator

reference-profile · input revision 2 · CC0 1.0

empty == [before EXCEPT !.slots[oldPos].barrierCard = 0]

Exact module download · Source bundle and reproduction instructions

available · operator

reference-profile · input revision 2 · CC0 1.0

available == {i \in 1..Len(e.order) : e.order[i] \notin (e.barrierInstructionSuppressed \cup e.resolved)}

Exact module download · Source bundle and reproduction instructions

i · operator

reference-profile · input revision 2 · CC0 1.0

i == PositionIndex6(l.orders[targetSite],p)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: PositionIndex6

LAMBDA · operator

reference-profile · input revision 2 · CC0 1.0

LAMBDA p: l.slots[p].barrierCard # 0

Exact module download · Source bundle and reproduction instructions

occupied · operator

reference-profile · input revision 2 · CC0 1.0

occupied == SelectSeq(l.orders[targetSite],LAMBDA p: l.slots[p].barrierCard # 0)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: LAMBDA

LAMBDA · operator

reference-profile · input revision 2 · CC0 1.0

LAMBDA p: p \notin remove

Exact module download · Source bundle and reproduction instructions

remove · operator

reference-profile · input revision 2 · CC0 1.0

remove == {p \in DOMAIN before.slots:
                         before.slots[p].barrierCard = 0 /\ before.slots[p].reservation = 0 /\ p # currentSideBPosition}

Exact module download · Source bundle and reproduction instructions

mode · operator

reference-profile · input revision 2 · CC0 1.0

mode == TraversalEndWindowClass6(w)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: w, TraversalEndWindowClass6

w · operator

reference-profile · input revision 2 · CC0 1.0

w == before[Len(before)]

Exact module download · Source bundle and reproduction instructions

LAMBDA · operator

reference-profile · input revision 2 · CC0 1.0

LAMBDA p: p \notin remove

Exact module download · Source bundle and reproduction instructions

release · operator

reference-profile · input revision 2 · CC0 1.0

release == oldPosition # newPosition /\ oldPosition \in DOMAIN before.slots /\
                   before.slots[oldPosition].barrierCard = 0 /\ before.slots[oldPosition].reservation = 0 /\
                   before.slots[oldPosition].retained

Exact module download · Source bundle and reproduction instructions

remove · operator

reference-profile · input revision 2 · CC0 1.0

remove == IF release THEN {oldPosition} ELSE {}

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: release

p · operator

reference-profile · input revision 2 · CC0 1.0

p == OutermostOccupiedPosition6(l,targetSite)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: OutermostOccupiedPosition6

t · operator

reference-profile · input revision 2 · CC0 1.0

t == SideBMoveToOutermostTarget6(before.traversal,l,targetSite,newPhaseId)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: SideBMoveToOutermostTarget6

b · operator

reference-profile · input revision 2 · CC0 1.0

b == [s \in before.usedSubIds \cup fresh |->
                    IF s \in fresh THEN 0 ELSE before.barrierInstructionSuppressedBy[s]]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: fresh

fresh · operator

reference-profile · input revision 2 · CC0 1.0

fresh == gained \ before.usedSubIds

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: gained

gained · operator

reference-profile · input revision 2 · CC0 1.0

gained == ids \ SubIds6(before.order)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: ids, SubIds6

ids · operator

reference-profile · input revision 2 · CC0 1.0

ids == SubIds6(newOrder)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: SubIds6

sources · operator

reference-profile · input revision 2 · CC0 1.0

sources == {e.barrierInstructionSuppressedBy[s] : s \in SubIds6(e.order)}

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: SubIds6

AddInitiationLiabilityMarker6 · operator

reference-profile · input revision 2 · CC0 1.0

AddInitiationLiabilityMarker6(before,after,fundBefore,fundAfter,effectiveSideALiabilityMarker) ==
    /\ before.traversal.phase = "Initiation" /\ before.traversal.step = "ProcedureCodeacc82dbcc545" /\ ~before.traversal.ending
    /\ before.announced /\ before.costsPaid /\ ~before.badPubAdded
    /\ effectiveSideALiabilityMarker \in Nat /\ fundBefore \in Nat
    /\ fundAfter = fundBefore+effectiveSideALiabilityMarker
    /\ after = [before EXCEPT !.badPubAdded = TRUE]

Exact module download · Source bundle and reproduction instructions

AdvanceMovement6 · operator

reference-profile · input revision 2 · CC0 1.0

AdvanceMovement6(beforeTraversal,afterTraversal,before,after,l,afterLayout) ==
    /\ MovementContext6(beforeTraversal,before,"ProcedureCoded4ddeafb5f2f") /\ before.declined /\ ~before.advanced
    /\ SideBAdvanceWithPositionCleanup6(beforeTraversal,afterTraversal,l,afterLayout,"ProcedureCoded4ddeafb5f2f")
    /\ after = [before EXCEPT !.advanced = TRUE,!.movedToNew = afterTraversal.position # "NoValue"]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: MovementContext6, SideBAdvanceWithPositionCleanup6

AdvanceNormalTraversalStep6 · operator

reference-profile · input revision 2 · CC0 1.0

AdvanceNormalTraversalStep6(before,after,l,activationzedDeployedBarrier,e,m,work,newPhaseId,
                      actualStepAndChildProceduresComplete,normalCheckpointAndReactionsDrained,events) ==
    /\ TraversalTimingPresent6(before.traversal) /\ before.traversal.step \in TraversalSteps6
    /\ before.traversal.phase = TraversalStepInfo6(before.traversal.step).phase
    /\ before.redirect = NoTraversalRedirect6 /\ ~before.redirectCheckpointDue
    /\ ~before.phaseStepsSkipped \/ before.traversal.phase = "TraversalEnds"
    /\ actualStepAndChildProceduresComplete /\ normalCheckpointAndReactionsDrained
    /\ IF before.traversal.phase = "Encounter" THEN
          e.id = before.traversal.phaseId /\ e.traversalId = before.traversal.id /\ ~e.forced /\ ~e.aborted /\
          e.stage = EncounterPostWorkStage6(before.traversal.step)
       ELSE TRUE
    /\ IF before.traversal.phase = "Movement" THEN m.id = before.traversal.phaseId /\ m.traversalId = before.traversal.id ELSE TRUE
    /\ work.jackChoice \in {"Continue","WithdrawTraversal"}
    /\ ~(before.traversal.step = "ProcedureCode9bca3a096549" /\ work.jackChoice = "WithdrawTraversal")
    /\ IF before.traversal.step = "ProcedureCodef1914978bb8e" THEN
          (work.resolvedSub # 0 /\ work.resolvedSub \in e.resolved) \/
          (work.resolvedSub = 0 /\ NextEncounterSub6(e) = 0)
       ELSE TRUE
    /\ before.traversal.step # "ProcedureCode9606a4cd52b4"
    /\ LET next == NextTraversalStep6(before.traversal.step,TraversalBranch6(before.traversal,l,activationzedDeployedBarrier,e,m,work))
           phase == TraversalStepInfo6(next).phase
           changed == phase # before.traversal.phase
           r == [before.traversal EXCEPT !.step = next,!.phase = phase,
                   !.phaseId = IF changed THEN newPhaseId ELSE @,
                   !.usedPhaseIds = IF changed THEN @ \cup {newPhaseId} ELSE @,
                   !.reachedSuccess = @ \/ phase = "Success",
                   !.ending = @ \/ phase = "TraversalEnds",
                   !.position = IF phase \in {"Success","TraversalEnds"} THEN "NoValue" ELSE @]
       IN /\ next \in TraversalSteps6
          /\ IF changed THEN before.traversal.phaseId \in before.phaseEndedIds
             ELSE before.traversal.phaseId \notin before.phaseEndedIds
          /\ IF changed THEN newPhaseId \in Nat \ {0} /\ newPhaseId \notin before.traversal.usedPhaseIds ELSE newPhaseId = before.traversal.phaseId
          /\ after = [before EXCEPT !.traversal = r,
                !.phaseEndedIds = IF changed THEN @ \cup {before.traversal.phaseId} ELSE @,
                !.encounter = IF phase = "Encounter" THEN r.phaseId ELSE IF before.traversal.phase = "Encounter" THEN 0 ELSE @,
                !.phaseStepsSkipped = FALSE,
                !.windowCleanupDue = IF phase = "TraversalEnds" /\ changed THEN TRUE ELSE IF before.traversal.step = "ProcedureCode6ea937bb44ac" THEN FALSE ELSE @]
          /\ events = {}

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: changed, next, phase, r, EncounterPostWorkStage6, NextEncounterSub6, NoTraversalRedirect6, TraversalStepInfo6, TraversalSteps6, TraversalTimingPresent6

AllCurrentSubsBarrierInstructionSuppressed6 · operator

reference-profile · input revision 2 · CC0 1.0

AllCurrentSubsBarrierInstructionSuppressed6(e) ==
    SubIds6(e.order) \subseteq e.barrierInstructionSuppressed /\ (Len(e.order) > 0 \/ e.paidReached)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: SubIds6

AnnounceTraversalTargetSite6 · operator

reference-profile · input revision 2 · CC0 1.0

AnnounceTraversalTargetSite6(before,after,targetSite,targetSites,actualInitiationRestrictionsAllow,allTraversalCostsPaid,events) ==
    /\ TraversalTimingPresent6(before.traversal) /\ before.traversal.phase = "Initiation" /\ before.traversal.step = "ProcedureCode12371046a2e5"
    /\ ~before.announced /\ ~before.traversal.formalBegun /\ ~before.traversal.ending
    /\ targetSite \in DOMAIN targetSites /\ actualInitiationRestrictionsAllow /\ allTraversalCostsPaid
    /\ after = [before EXCEPT !.traversal.attacked = targetSite,!.announced = TRUE,!.costsPaid = TRUE]
    /\ events = {[tag |-> "TraversalTargetSiteAnnounced",traversalId |-> before.traversal.id,targetSite |-> targetSite]}

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalTimingPresent6

ApproachActivation6 · operator

reference-profile · input revision 2 · CC0 1.0

ApproachActivation6(r,a,l,w,barrierCard,beforeCard,afterCard,allCostsPaid,actualActivationAllowed) ==
    /\ ApproachActivationPermission6(r,a,l,w,barrierCard)
    /\ StandardBarrierActivationStep(beforeCard,afterCard,barrierCard,"SideA",
          [inTraversal |-> TRUE,window |-> "ProcedureCode3a6daf593ad4",approachedObject |-> barrierCard],allCostsPaid,actualActivationAllowed)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: ApproachActivationPermission6, StandardBarrierActivationStep

ApproachActivationPermission6 · operator

reference-profile · input revision 2 · CC0 1.0

ApproachActivationPermission6(r,a,l,w,barrierCard) ==
    /\ TraversalTimingPresent6(r) /\ ~r.ending /\ r.phase = "Approach"
    /\ r.step = "ProcedureCode3a6daf593ad4"
    /\ a.id = r.phaseId /\ a.traversalId = r.id /\ a.begun
    /\ w.open /\ w.kind = "Paid" /\ w.phaseId = a.id /\ w.step = "ProcedureCode3a6daf593ad4"
    /\ w.priority = "SideA" /\ barrierCard # 0 /\ barrierCard = ApproachedBarrier6(a,l)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: ApproachedBarrier6, TraversalTimingPresent6

ApproachDestination6 · operator

reference-profile · input revision 2 · CC0 1.0

ApproachDestination6(a,l,activationzedDeployedBarrier) ==
    IF ApproachedBarrier6(a,l) # 0 /\ ApproachedBarrier6(a,l) \in activationzedDeployedBarrier
    THEN "Encounter" ELSE "Movement"

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: ApproachedBarrier6

ApproachTargetSite6 · operator

reference-profile · input revision 2 · CC0 1.0

ApproachTargetSite6(r,before,after,events) ==
    /\ MovementContext6(r,before,"ProcedureCode7e82ab2b38b7") /\ before.advanced /\ ~before.movedToNew /\ ~before.approachedTargetSite
    /\ after = [before EXCEPT !.approachedTargetSite = TRUE]
    /\ events = {[tag |-> "ApproachTargetSite",traversalId |-> r.id,targetSite |-> r.attacked,phaseId |-> r.phaseId]}

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: MovementContext6

ApproachedBarrier6 · operator

reference-profile · input revision 2 · CC0 1.0

ApproachedBarrier6(a,l) == IF a.position \in DOMAIN l.slots THEN l.slots[a.position].barrierCard ELSE 0

Exact module download · Source bundle and reproduction instructions

BarrierChangeRedirectTarget6 · operator

reference-profile · input revision 2 · CC0 1.0

BarrierChangeRedirectTarget6(plan,newPhaseId) ==
    [phase |-> "Movement",phaseId |-> newPhaseId,step |-> "ProcedureCode714dfe070fed",
     position |-> plan.traversal.position,attacked |-> plan.traversal.attacked]

Exact module download · Source bundle and reproduction instructions

BarrierChangeTraversalPlan6 · operator

reference-profile · input revision 2 · CC0 1.0

BarrierChangeTraversalPlan6(r,change,newPosition,newTargetSite) ==
    IF r.phase \in {"Initiation","Movement"} THEN
       [traversal |-> r,needsRedirect |-> FALSE,approachCondition |-> FALSE]
    ELSE IF r.phase = "Approach" /\ change \in {"Uninstall","Move"} THEN
       [traversal |-> r,needsRedirect |-> TRUE,approachCondition |-> FALSE]
    ELSE IF r.phase = "Approach" /\ change = "Swap" THEN
       [traversal |-> r,needsRedirect |-> FALSE,approachCondition |-> FALSE]
    ELSE IF r.phase = "Encounter" /\ change \in {"Uninstall","Deactivation"} THEN
       [traversal |-> r,needsRedirect |-> TRUE,approachCondition |-> FALSE]
    ELSE IF r.phase = "Encounter" /\ change \in {"Move","Swap"} THEN
       [traversal |-> [r EXCEPT !.position = newPosition,!.attacked = newTargetSite],
        needsRedirect |-> FALSE,approachCondition |-> FALSE]
    ELSE [traversal |-> r,needsRedirect |-> FALSE,approachCondition |-> FALSE]

Exact module download · Source bundle and reproduction instructions

BeginApproach6 · operator

reference-profile · input revision 2 · CC0 1.0

BeginApproach6(r,before,after,l,events) ==
    /\ TraversalTimingPresent6(r) /\ ~r.ending /\ r.phase = "Approach" /\ r.step = "ProcedureCode453e949a114f"
    /\ before.id = r.phaseId /\ before.traversalId = r.id /\ before.position = r.position /\ ~before.begun
    /\ after = [before EXCEPT !.begun = TRUE]
    /\ events = IF ApproachedBarrier6(before,l) = 0 THEN {}
                ELSE {[tag |-> "ApproachBarrier",barrierCard |-> ApproachedBarrier6(before,l),phaseId |-> before.id,traversalId |-> r.id]}

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: ApproachedBarrier6, TraversalTimingPresent6

BeginEncounter6 · operator

reference-profile · input revision 2 · CC0 1.0

BeginEncounter6(before,after,actualEncounterAuthorized,events) ==
    /\ actualEncounterAuthorized /\ before.id \in Nat \ {0} /\ before.barrierCard # 0
    /\ before.stage = "Begin" /\ ~before.aborted
    /\ after = [before EXCEPT !.stage = "BeginReactions"]
    /\ events = {[tag |-> "EncounterBarrier",encounterId |-> before.id,barrierCard |-> before.barrierCard,traversalId |-> before.traversalId]}

Exact module download · Source bundle and reproduction instructions

BeginEncounterPaid6 · operator

reference-profile · input revision 2 · CC0 1.0

BeginEncounterPaid6(before,after,beginReactionsAndCheckpointDrained,events) ==
    /\ before.stage = "BeginReactions" /\ ~before.aborted /\ beginReactionsAndCheckpointDrained
    /\ after = WithFullySuppressInstruction6([before EXCEPT !.stage = "Paid",!.paidReached = TRUE])
    /\ events = NewFullySuppressInstructionEvents6(before,after)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: NewFullySuppressInstructionEvents6, WithFullySuppressInstruction6

BeginMovement6 · operator

reference-profile · input revision 2 · CC0 1.0

BeginMovement6(r,before,after,l,events) ==
    /\ MovementContext6(r,before,"ProcedureCode714dfe070fed") /\ ~before.begun
    /\ after = [before EXCEPT !.begun = TRUE,!.passedBarrier = MovementBarrier6(r,l),
          !.passedAll = MovementBarrier6(r,l) # 0 /\ NextInwardPosition6(l,r.attacked,r.position) = "NoValue"]
    /\ events = MovementPassEvents6(r,l)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: MovementBarrier6, MovementContext6, MovementPassEvents6, NextInwardPosition6

BeginNormalTraversalPhaseEnd6 · operator

reference-profile · input revision 2 · CC0 1.0

BeginNormalTraversalPhaseEnd6(before,after,l,activationzedDeployedBarrier,e,m,work,actualStepAndChildProceduresComplete,events) ==
    /\ TraversalTimingPresent6(before.traversal)
    /\ before.traversal.step \in {"ProcedureCode7e3f7e5033c8","ProcedureCode4d474d346807","ProcedureCode687f72772ab1","ProcedureCode6c5d14f545f7","ProcedureCodea732fbc12ae0","ProcedureCodec7b41615d673"}
    /\ before.traversal.phase = TraversalStepInfo6(before.traversal.step).phase
    /\ before.redirect = NoTraversalRedirect6 /\ ~before.phaseStepsSkipped /\ ~before.redirectCheckpointDue
    /\ before.traversal.phaseId \notin before.phaseEndedIds /\ actualStepAndChildProceduresComplete
    /\ IF before.traversal.phase = "Encounter" THEN
          e.id = before.traversal.phaseId /\ e.traversalId = before.traversal.id /\ ~e.forced /\ ~e.aborted /\ e.stage = "Complete"
       ELSE TRUE
    /\ IF before.traversal.phase = "Movement" THEN m.id = before.traversal.phaseId /\ m.traversalId = before.traversal.id ELSE TRUE
    /\ LET next == NextTraversalStep6(before.traversal.step,TraversalBranch6(before.traversal,l,activationzedDeployedBarrier,e,m,work))
       IN next \in TraversalSteps6 /\ TraversalStepInfo6(next).phase # before.traversal.phase
    /\ after = [before EXCEPT !.phaseEndedIds = @ \cup {before.traversal.phaseId}]
    /\ events = {TraversalPhaseEndEvent6(before.traversal)}

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: next, NoTraversalRedirect6, TraversalPhaseEndEvent6, TraversalStepInfo6, TraversalSteps6, TraversalTimingPresent6

BypassEncounter6 · operator

reference-profile · input revision 2 · CC0 1.0

BypassEncounter6(before,after,actualAuthorizedBypass,events) ==
    /\ actualAuthorizedBypass /\ before.stage \in {"BeginReactions","Paid","BarrierInstructions"} /\ ~before.aborted
    /\ after = [before EXCEPT !.stage = "Complete",!.bypassed = TRUE,!.aborted = TRUE]
    /\ events = {[tag |-> "Bypass",encounterId |-> before.id,barrierCard |-> before.barrierCard,traversalId |-> before.traversalId]}

Exact module download · Source bundle and reproduction instructions

BypassTraversalRedirect6 · operator

reference-profile · input revision 2 · CC0 1.0

BypassTraversalRedirect6(before,after,e,newPhaseId,events) ==
    /\ ~e.forced /\ e.bypassed /\ e.stage = "Complete"
    /\ before.traversal.phase = "Encounter" /\ before.traversal.phaseId = e.id /\ before.traversal.id = e.traversalId
    /\ RequestOrRetargetTraversal6(before,after,
          [phase |-> "Movement",phaseId |-> newPhaseId,step |-> "ProcedureCode714dfe070fed",
           attacked |-> before.traversal.attacked,position |-> before.traversal.position],TRUE,events)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: RequestOrRetargetTraversal6

CancelPositionReservation6 · operator

reference-profile · input revision 2 · CC0 1.0

CancelPositionReservation6(before,after,p,deployId,actualDeployCancelled) ==
    /\ actualDeployCancelled /\ p \in DOMAIN before.slots
    /\ before.slots[p].barrierCard = 0 /\ before.slots[p].reservation = deployId /\ deployId # 0
    /\ after = [before EXCEPT !.slots[p].reservation = 0]

Exact module download · Source bundle and reproduction instructions

ChooseRulesInspection6 · operator

reference-profile · input revision 2 · CC0 1.0

ChooseRulesInspection6(before,after,choice,actualAvailableChoices,successReactionsDrained,directive) ==
    /\ TraversalTimingPresent6(before.traversal) /\ ~before.traversal.ending
    /\ before.traversal.phase = "Success" /\ before.traversal.step = "ProcedureCoded75d879e00ff"
    /\ before.declarationProcessed /\ ~before.siteInspectionChosen /\ successReactionsDrained
    /\ choice \in actualAvailableChoices
    /\ after = [before EXCEPT !.siteInspectionChosen = TRUE]
    /\ directive = [kind |-> IF choice = "Inspection" THEN "Inspection" ELSE "Replacement",
          choice |-> choice,traversalId |-> before.traversal.id,targetSite |-> before.traversal.attacked,origin |-> "RulesTraversalInspection"]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalTimingPresent6

CloseEncounterPaid6 · operator

reference-profile · input revision 2 · CC0 1.0

CloseEncounterPaid6(before,after,actualPaidWindowAndReactionsComplete) ==
    /\ before.stage = "Paid" /\ ~before.aborted /\ actualPaidWindowAndReactionsComplete
    /\ after = [before EXCEPT !.stage = "BarrierInstructions"]

Exact module download · Source bundle and reproduction instructions

CloseEndedBeginReaction6 · operator

reference-profile · input revision 2 · CC0 1.0

CloseEndedBeginReaction6(before,after,endedPhaseIds) ==
    /\ before.kind = "Reaction" /\ before.open /\ before.beginPhaseId # 0
    /\ before.beginPhaseId \in endedPhaseIds
    /\ after = [before EXCEPT !.open = FALSE,!.pending = {},!.priority = "NoValue",
                             !.lostPending = @ \cup before.pending]

Exact module download · Source bundle and reproduction instructions

CommitTraversalRedirect6 · operator

reference-profile · input revision 2 · CC0 1.0

CommitTraversalRedirect6(before,after) ==
    /\ before.redirect # NoTraversalRedirect6 /\ before.redirectStage = "Ready" /\ ~before.redirectCheckpointDue
    /\ LET t == before.redirect
       IN after = [before EXCEPT !.traversal.phase = t.phase,!.traversal.step = t.step,!.traversal.phaseId = t.phaseId,
                  !.traversal.usedPhaseIds = @ \cup {t.phaseId},
                  !.redirect = NoTraversalRedirect6,!.redirectStage = "NoValue",!.phaseStepsSkipped = FALSE]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: t, NoTraversalRedirect6

CompleteApproachTraversalView6 · operator

reference-profile · input revision 2 · CC0 1.0

CompleteApproachTraversalView6(before,after,a,l,activationzedDeployedBarrier,newPhaseId,actualPhaseIncludingReactionsComplete) ==
    /\ TraversalTimingPresent6(before) /\ ~before.ending /\ before.phase = "Approach" /\ before.step = "ProcedureCode4d474d346807"
    /\ a.id = before.phaseId /\ a.traversalId = before.id /\ a.begun
    /\ actualPhaseIncludingReactionsComplete
    /\ newPhaseId \in Nat \ {0} /\ newPhaseId \notin before.usedPhaseIds
    /\ after = [before EXCEPT !.phase = ApproachDestination6(a,l,activationzedDeployedBarrier),
          !.step = IF ApproachDestination6(a,l,activationzedDeployedBarrier) = "Encounter" THEN "ProcedureCodeda7bff1d9270" ELSE "ProcedureCode714dfe070fed",
          !.phaseId = newPhaseId,!.usedPhaseIds = @ \cup {newPhaseId}]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: ApproachDestination6, TraversalTimingPresent6

CompleteEncounter6 · operator

reference-profile · input revision 2 · CC0 1.0

CompleteEncounter6(before,after,allEffectsAndReactionsDrained) ==
    /\ before.stage = "BarrierInstructions" /\ ~before.aborted /\ NextEncounterSub6(before) = 0
    /\ allEffectsAndReactionsDrained /\ after = [before EXCEPT !.stage = "Complete"]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: NextEncounterSub6

CompleteInitiationTraversalView6 · operator

reference-profile · input revision 2 · CC0 1.0

CompleteInitiationTraversalView6(before,after,l,newPhaseId,actualPhaseIncludingReactionsComplete) ==
    /\ TraversalTimingPresent6(before) /\ before.phase = "Initiation" /\ before.step = "ProcedureCode7e3f7e5033c8" /\ ~before.ending
    /\ actualPhaseIncludingReactionsComplete
    /\ newPhaseId \in Nat \ {0} /\ newPhaseId \notin before.usedPhaseIds
    /\ after = [before EXCEPT !.phase = InitiationDestination6(before,l),
          !.step = IF InitiationDestination6(before,l) = "Approach" THEN "ProcedureCode453e949a114f" ELSE "ProcedureCode714dfe070fed",
          !.phaseId = newPhaseId,!.usedPhaseIds = @ \cup {newPhaseId}]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: InitiationDestination6, TraversalTimingPresent6

CompleteMovementTraversalView6 · operator

reference-profile · input revision 2 · CC0 1.0

CompleteMovementTraversalView6(before,after,m,newPhaseId,actualPhaseIncludingReactionsComplete) ==
    /\ TraversalTimingPresent6(before) /\ ~before.ending /\ before.phase = "Movement"
    /\ m.id = before.phaseId /\ m.traversalId = before.id /\ m.advanced
    /\ IF m.movedToNew THEN before.step = "ProcedureCode6c5d14f545f7" /\ before.position # "NoValue"
       ELSE before.step = "ProcedureCodea732fbc12ae0" /\ m.approachedTargetSite /\ before.position = "NoValue"
    /\ actualPhaseIncludingReactionsComplete
    /\ newPhaseId \in Nat \ {0} /\ newPhaseId \notin before.usedPhaseIds
    /\ after = [before EXCEPT !.phase = IF m.movedToNew THEN "Approach" ELSE "Success",
          !.step = IF m.movedToNew THEN "ProcedureCode453e949a114f" ELSE "ProcedureCodebbb14496b09b",!.phaseId = newPhaseId,
          !.usedPhaseIds = @ \cup {newPhaseId},!.reachedSuccess = IF m.movedToNew THEN @ ELSE TRUE]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalTimingPresent6

CompleteOrdinaryEncounterTraversalView6 · operator

reference-profile · input revision 2 · CC0 1.0

CompleteOrdinaryEncounterTraversalView6(before,after,e,newPhaseId,actualPhaseIncludingReactionsComplete) ==
    /\ TraversalTimingPresent6(before) /\ ~before.ending /\ before.phase = "Encounter" /\ before.step = "ProcedureCode687f72772ab1"
    /\ ~e.forced /\ e.id = before.phaseId /\ e.traversalId = before.id /\ e.stage = "Complete"
    /\ actualPhaseIncludingReactionsComplete
    /\ newPhaseId \in Nat \ {0} /\ newPhaseId \notin before.usedPhaseIds
    /\ after = [before EXCEPT !.phase = "Movement",!.step = "ProcedureCode714dfe070fed",
           !.phaseId = newPhaseId,!.usedPhaseIds = @ \cup {newPhaseId}]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalTimingPresent6

CompleteSuccessTraversalView6 · operator

reference-profile · input revision 2 · CC0 1.0

CompleteSuccessTraversalView6(before,after,newPhaseId,actualPhaseIncludingReactionsComplete) ==
    /\ TraversalTimingPresent6(before.traversal) /\ ~before.traversal.ending
    /\ before.traversal.phase = "Success" /\ before.traversal.step = "ProcedureCodec7b41615d673" /\ before.siteInspectionFinished
    /\ actualPhaseIncludingReactionsComplete
    /\ newPhaseId \in Nat \ {0} /\ newPhaseId \notin before.traversal.usedPhaseIds
    /\ after = [before EXCEPT !.traversal.phase = "TraversalEnds",!.traversal.step = "ProcedureCode6ea937bb44ac",
          !.traversal.ending = TRUE,!.traversal.position = "NoValue",!.traversal.phaseId = newPhaseId,
          !.traversal.usedPhaseIds = @ \cup {newPhaseId}]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalTimingPresent6

CompleteTraversal6 · operator

reference-profile · input revision 2 · CC0 1.0

CompleteTraversal6(before,after,allStepCReactionsAndCheckpointComplete,events,expiredTraversalIds) ==
    /\ TraversalEndContext6(before,"ProcedureCode9606a4cd52b4") /\ before.windowsDone /\ before.windows = <<>>
    /\ before.fundReturned /\ before.resultDeclared /\ allStepCReactionsAndCheckpointComplete
    /\ after = [before EXCEPT !.traversal.complete = TRUE,!.phaseEndedIds = @ \cup {before.traversal.phaseId}]
    /\ events = {[tag |-> "TraversalEnds",traversalId |-> before.traversal.id]} \cup
          (IF before.traversal.phaseId \in before.phaseEndedIds THEN {} ELSE {TraversalPhaseEndEvent6(before.traversal)})
    /\ expiredTraversalIds = {before.traversal.id}

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalEndContext6, TraversalPhaseEndEvent6

CreatePosition6 · operator

reference-profile · input revision 2 · CC0 1.0

CreatePosition6(before,after,p,targetSite,gap,barrierCard,reservation,actualCreationAuthorized) ==
    /\ actualCreationAuthorized /\ targetSite \in DOMAIN before.orders /\ p \notin before.used \cup {"NoValue"}
    /\ gap \in 0..Len(before.orders[targetSite])
    /\ (barrierCard # 0 => barrierCard \notin OccupiedBarrier6(before))
    /\ after = [before EXCEPT !.orders[targetSite] = InsertPositionSequence6(@,p,gap),
         !.slots = [q \in DOMAIN @ \cup {p} |-> IF q = p
                    THEN [targetSite |-> targetSite,barrierCard |-> barrierCard,reservation |-> reservation,retained |-> FALSE] ELSE before.slots[q]],
         !.used = @ \cup {p}]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: InsertPositionSequence6, OccupiedBarrier6

DeclareBarrierPosition6 · operator

reference-profile · input revision 2 · CC0 1.0

DeclareBarrierPosition6(before,after,p,targetSite,gap,mode,anchor,rememberedLocation,deployId,actualStep) ==
    /\ actualStep = "ProcedureCode6eba7e0bfa75" /\ deployId # 0
    /\ PositionGapAllowed6(before.orders[targetSite],mode,anchor,gap,rememberedLocation.gap)
    /\ (mode = "HistoricalPlace" => targetSite = rememberedLocation.targetSite)
    /\ CreatePosition6(before,after,p,targetSite,gap,0,deployId,TRUE)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: CreatePosition6, PositionGapAllowed6

DeclareSuccessfulTraversal6 · operator

reference-profile · input revision 2 · CC0 1.0

DeclareSuccessfulTraversal6(before,after,actualDeclarationAllowed,events) ==
    /\ TraversalTimingPresent6(before.traversal) /\ ~before.traversal.ending
    /\ before.traversal.phase = "Success" /\ before.traversal.step = "ProcedureCodebbb14496b09b" /\ before.traversal.reachedSuccess
    /\ ~before.declarationProcessed
    /\ after = [before EXCEPT !.declarationProcessed = TRUE,!.traversal.successful = actualDeclarationAllowed]
    /\ events = IF actualDeclarationAllowed
       THEN {[tag |-> "SuccessfulTraversal",traversalId |-> before.traversal.id,targetSite |-> before.traversal.attacked]}
       ELSE {}

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalTimingPresent6

DeclareUnsuccessfulTraversal6 · operator

reference-profile · input revision 2 · CC0 1.0

DeclareUnsuccessfulTraversal6(before,after,targetSites,events) ==
    /\ TraversalEndContext6(before,"ProcedureCode5e397645e65c") /\ before.windowsDone /\ before.fundReturned /\ ~before.resultDeclared
    /\ after = [before EXCEPT !.resultDeclared = TRUE,!.traversal.unsuccessful = ShouldDeclareUnsuccessful6(before.traversal,targetSites)]
    /\ events = IF ShouldDeclareUnsuccessful6(before.traversal,targetSites)
       THEN {[tag |-> "UnsuccessfulTraversal",traversalId |-> before.traversal.id,targetSite |-> before.traversal.attacked]}
       ELSE {}

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: ShouldDeclareUnsuccessful6, TraversalEndContext6

DeclineMovementWithdrawTraversal6 · operator

reference-profile · input revision 2 · CC0 1.0

DeclineMovementWithdrawTraversal6(r,before,after,actualDecisionReady) ==
    /\ MovementContext6(r,before,"ProcedureCode9bca3a096549") /\ before.begun /\ ~before.declined
    /\ actualDecisionReady /\ after = [before EXCEPT !.declined = TRUE]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: MovementContext6

DirectAttackedTargetSiteChange6 · operator

reference-profile · input revision 2 · CC0 1.0

DirectAttackedTargetSiteChange6(before,after,newTargetSite,actualAuthorizedTrait) ==
    /\ TraversalTimingPresent6(before) /\ actualAuthorizedTrait /\ newTargetSite # "NoValue"
    /\ after = [before EXCEPT !.attacked = newTargetSite]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalTimingPresent6

DuringTraversal6 · operator

reference-profile · input revision 2 · CC0 1.0

DuringTraversal6(r) == TraversalTimingPresent6(r) /\ r.formalBegun

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalTimingPresent6

EncounterAfterApproach6 · operator

reference-profile · input revision 2 · CC0 1.0

EncounterAfterApproach6(edge) == TraversalDirectEdge6(edge,"Approach","Encounter")

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalDirectEdge6

EncounterChainIds6 · operator

reference-profile · input revision 2 · CC0 1.0

EncounterChainIds6(stack) == {stack[i].id : i \in 1..Len(stack)}

Exact module download · Source bundle and reproduction instructions

EncounterPostWorkStage6 · operator

reference-profile · input revision 2 · CC0 1.0

EncounterPostWorkStage6(step) ==
    IF step = "ProcedureCodeda7bff1d9270" THEN "BeginReactions"
    ELSE IF step = "ProcedureCode687f72772ab1" THEN "Complete" ELSE "BarrierInstructions"

Exact module download · Source bundle and reproduction instructions

EndForcedChain6 · operator

reference-profile · input revision 2 · CC0 1.0

EndForcedChain6(before,after,abortedIds,afterAbortedIds,actualEndTraversalInstruction) ==
    /\ actualEndTraversalInstruction
    /\ after = [i \in 1..Len(before) |-> [before[i] EXCEPT !.stage = "Complete",!.aborted = TRUE]]
    /\ afterAbortedIds = abortedIds \cup {before[i].id : i \in 1..Len(before)}

Exact module download · Source bundle and reproduction instructions

EndTheTraversal6 · operator

reference-profile · input revision 2 · CC0 1.0

EndTheTraversal6(before,after,newTraversalEndsPhaseId,actualAuthorizedInstruction,events) ==
    /\ actualAuthorizedInstruction
    /\ ((TraversalTimingPresent6(before.traversal) /\ ~before.traversal.ending) =>
          newTraversalEndsPhaseId \in Nat \ {0} /\ newTraversalEndsPhaseId \notin before.traversal.usedPhaseIds)
    /\ after = EndTraversalOutcome6(before,newTraversalEndsPhaseId) /\ events = EndTraversalEffectEvents6(before)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: EndTraversalEffectEvents6, EndTraversalOutcome6, TraversalTimingPresent6

EndTraversalDuringForced6 · operator

reference-profile · input revision 2 · CC0 1.0

EndTraversalDuringForced6(control,afterControl,stack,afterStack,abortedIds,afterAbortedIds,newTraversalEndsPhaseId,events) ==
    /\ Len(stack) > 0 /\ stack[Len(stack)].forced /\ control.encounter = stack[Len(stack)].id
    /\ EndTheTraversal6(control,EndTraversalOutcome6(control,newTraversalEndsPhaseId),newTraversalEndsPhaseId,TRUE,EndTraversalEffectEvents6(control))
    /\ afterControl = ForcedEndOutcome6(control,stack,newTraversalEndsPhaseId)
    /\ events = ForcedEndEvents6(control,stack)
    /\ EndForcedChain6(stack,afterStack,abortedIds,afterAbortedIds,TRUE)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: EndForcedChain6, EndTheTraversal6, EndTraversalEffectEvents6, EndTraversalOutcome6, ForcedEndEvents6, ForcedEndOutcome6

EndTraversalEffectEvents6 · operator

reference-profile · input revision 2 · CC0 1.0

EndTraversalEffectEvents6(before) ==
    (IF TraversalTimingPresent6(before.traversal) /\ ~before.traversal.ending THEN TraversalPhaseEndEventsOnce6(before) ELSE {}) \cup
         (IF before.encounter # 0 /\ before.encounter \notin before.phaseEndedIds THEN
           {[tag |-> "PhaseEnds",phase |-> "Encounter",phaseId |-> before.encounter,
             traversalId |-> IF TraversalTimingPresent6(before.traversal) THEN before.traversal.id ELSE 0]} ELSE {})

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalPhaseEndEventsOnce6, TraversalTimingPresent6

EndTraversalOutcome6 · operator

reference-profile · input revision 2 · CC0 1.0

EndTraversalOutcome6(before,newTraversalEndsPhaseId) ==
    IF TraversalTimingPresent6(before.traversal) THEN
       IF before.traversal.ending /\ before.encounter = 0 /\ DOMAIN before.siteInspections = {} /\ DOMAIN before.itemInspections = {}
       THEN before
       ELSE [before EXCEPT
          !.traversal = IF before.traversal.ending THEN @ ELSE [@ EXCEPT
             !.phase = "TraversalEnds",!.step = "ProcedureCode6ea937bb44ac",!.phaseId = newTraversalEndsPhaseId,
             !.usedPhaseIds = @ \cup {newTraversalEndsPhaseId},!.ending = TRUE,!.position = "NoValue"],
          !.phaseEndedIds = @ \cup (IF before.traversal.ending THEN {} ELSE {before.traversal.phaseId}) \cup
                            (IF before.encounter = 0 THEN {} ELSE {before.encounter}),
          !.encounter = 0,!.siteInspections = [x \in {} |-> x],!.itemInspections = [x \in {} |-> x],
          !.abortedEncounters = IF before.encounter = 0 THEN @ ELSE @ \cup {before.encounter},
          !.abortedInspectiones = @ \cup DOMAIN before.siteInspections,!.abortedItemInspectiones = @ \cup DOMAIN before.itemInspections,
          !.windowCleanupDue = TRUE,!.onlyWindowCleanup = FALSE,!.phaseStepsSkipped = TRUE,
          !.redirect = NoTraversalRedirect6,!.redirectStage = "NoValue",!.redirectCheckpointDue = FALSE]
    ELSE IF before.encounter # 0 THEN
       [before EXCEPT !.encounter = 0,!.phaseEndedIds = @ \cup {before.encounter},
          !.siteInspections = OutsideEncounterScope6(@,before.encounter),
          !.itemInspections = OutsideEncounterScope6(@,before.encounter),
          !.abortedEncounters = @ \cup {before.encounter},
          !.abortedInspectiones = @ \cup (DOMAIN before.siteInspections \ DOMAIN OutsideEncounterScope6(before.siteInspections,before.encounter)),
          !.abortedItemInspectiones = @ \cup (DOMAIN before.itemInspections \ DOMAIN OutsideEncounterScope6(before.itemInspections,before.encounter)),
          !.windowCleanupDue = TRUE,!.onlyWindowCleanup = TRUE,!.phaseStepsSkipped = TRUE]
    ELSE before

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: NoTraversalRedirect6, OutsideEncounterScope6, TraversalTimingPresent6

EndTraversalWithPositionCleanup6 · operator

reference-profile · input revision 2 · CC0 1.0

EndTraversalWithPositionCleanup6(before,after,beforeLayout,afterLayout,newPhaseId,actualAuthority,events) ==
    EndTheTraversal6(before,after,newPhaseId,actualAuthority,events) /\
    ReleaseDepartedSideBPosition6(beforeLayout,afterLayout,before.traversal.position,after.traversal.position)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: EndTheTraversal6, ReleaseDepartedSideBPosition6

FinishRedirectCheckpoint6 · operator

reference-profile · input revision 2 · CC0 1.0

FinishRedirectCheckpoint6(before,after,actualNormalCheckpointAndReactionsComplete) ==
    /\ before.redirect # NoTraversalRedirect6 /\ before.redirectStage = "Checkpoint" /\ before.redirectCheckpointDue
    /\ actualNormalCheckpointAndReactionsComplete
    /\ after = [before EXCEPT !.redirectStage = "Ready",!.redirectCheckpointDue = FALSE]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: NoTraversalRedirect6

FinishRedirectPaidWindow6 · operator

reference-profile · input revision 2 · CC0 1.0

FinishRedirectPaidWindow6(before,after,actualWindowIncludingReactionsComplete,events) ==
    /\ before.redirect # NoTraversalRedirect6 /\ before.redirectStage = "PaidWindow" /\ before.paidOpen
    /\ actualWindowIncludingReactionsComplete
    /\ after = [before EXCEPT !.paidOpen = FALSE,!.redirectStage = "Checkpoint",!.redirectCheckpointDue = TRUE,
         !.phaseEndedIds = @ \cup {before.traversal.phaseId}]
    /\ events = TraversalPhaseEndEventsOnce6(before)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: NoTraversalRedirect6, TraversalPhaseEndEventsOnce6

FinishRulesInspectionInstruction6 · operator

reference-profile · input revision 2 · CC0 1.0

FinishRulesInspectionInstruction6(before,after,actualInspectionOrReplacementAndReactionsComplete) ==
    /\ before.traversal.phase = "Success" /\ before.traversal.step = "ProcedureCoded75d879e00ff" /\ ~before.traversal.ending
    /\ before.siteInspectionChosen /\ ~before.siteInspectionFinished /\ actualInspectionOrReplacementAndReactionsComplete
    /\ after = [before EXCEPT !.siteInspectionFinished = TRUE]

Exact module download · Source bundle and reproduction instructions

FinishTraversalEndWindows6 · operator

reference-profile · input revision 2 · CC0 1.0

FinishTraversalEndWindows6(before,after) ==
    /\ TraversalEndContext6(before,"ProcedureCode6ea937bb44ac") /\ before.windows = <<>> /\ ~before.windowsDone
    /\ after = [before EXCEPT !.windowsDone = TRUE]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalEndContext6

ForcedEncounterStep6 · operator

reference-profile · input revision 2 · CC0 1.0

ForcedEncounterStep6(beforeStep,afterStep,e,afterEncounter,resolvedSub,actualStepAndChildProceduresComplete,normalCheckpointAndReactionsDrained) ==
    /\ beforeStep \in {"ProcedureCodeda7bff1d9270","ProcedureCode8b3260c0010f","ProcedureCodef1914978bb8e","ProcedureCodeaa0828fbf852","ProcedureCode687f72772ab1"}
    /\ e.forced /\ actualStepAndChildProceduresComplete /\ normalCheckpointAndReactionsDrained
    /\ ~e.aborted /\ e.stage = EncounterPostWorkStage6(beforeStep)
    /\ afterEncounter = e
    /\ afterStep = NextTraversalStep6(beforeStep,
         IF beforeStep = "ProcedureCodef1914978bb8e" THEN IF resolvedSub = 0 THEN "NoValue" ELSE "BarrierInstruction"
         ELSE IF beforeStep = "ProcedureCode687f72772ab1" THEN "ReturnForced" ELSE "Next")
    /\ IF afterStep = "ReturnCaller" THEN e.stage = "Complete" ELSE TRUE
    /\ IF beforeStep = "ProcedureCodef1914978bb8e" THEN
          (resolvedSub # 0 /\ resolvedSub \in e.resolved) \/ (resolvedSub = 0 /\ NextEncounterSub6(e) = 0)
       ELSE TRUE

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: EncounterPostWorkStage6, NextEncounterSub6, NextTraversalStep6

ForcedEndEvents6 · operator

reference-profile · input revision 2 · CC0 1.0

ForcedEndEvents6(control,stack) ==
    EndTraversalEffectEvents6(control) \cup
      {[tag |-> "PhaseEnds",phase |-> "Encounter",phaseId |-> id,traversalId |-> control.traversal.id] :
          id \in EncounterChainIds6(stack) \ control.phaseEndedIds}

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: EncounterChainIds6, EndTraversalEffectEvents6

ForcedEndOutcome6 · operator

reference-profile · input revision 2 · CC0 1.0

ForcedEndOutcome6(control,stack,newTraversalEndsPhaseId) ==
    LET base == EndTraversalOutcome6(control,newTraversalEndsPhaseId)
        ids == EncounterChainIds6(stack)
        siteInspections == IF TraversalTimingPresent6(control.traversal) THEN base.siteInspections ELSE OutsideEncounterChain6(control.siteInspections,ids)
        itemInspections == IF TraversalTimingPresent6(control.traversal) THEN base.itemInspections ELSE OutsideEncounterChain6(control.itemInspections,ids)
    IN [base EXCEPT !.siteInspections = siteInspections,!.itemInspections = itemInspections,
          !.abortedInspectiones = @ \cup (DOMAIN control.siteInspections \ DOMAIN siteInspections),
          !.abortedItemInspectiones = @ \cup (DOMAIN control.itemInspections \ DOMAIN itemInspections),
          !.abortedEncounters = @ \cup ids,!.phaseEndedIds = @ \cup ids]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: base, ids, itemInspections, siteInspections

ForcedInstructionFinished6 · operator

reference-profile · input revision 2 · CC0 1.0

ForcedInstructionFinished6(waitingEncounter,completedEncounterIds) == waitingEncounter \in completedEncounterIds

Exact module download · Source bundle and reproduction instructions

FormalTraversalBegin6 · operator

reference-profile · input revision 2 · CC0 1.0

FormalTraversalBegin6(before,after,events) ==
    /\ TraversalTimingPresent6(before.traversal) /\ before.traversal.phase = "Initiation" /\ before.traversal.step = "ProcedureCode4d6bd06d2c9f"
    /\ before.announced /\ before.costsPaid /\ before.badPubAdded
    /\ ~before.traversal.formalBegun /\ ~before.traversal.ending
    /\ after = [before EXCEPT !.traversal.formalBegun = TRUE]
    /\ events = {TraversalBeginEvent6(before.traversal)}

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalBeginEvent6, TraversalTimingPresent6

IfSuccessfulCondition6 · operator

reference-profile · input revision 2 · CC0 1.0

IfSuccessfulCondition6(origin,r,sourcePermittedTargetSites) ==
    /\ r.successful /\ origin.traversalId # 0 /\ r.id = origin.traversalId
    /\ (~origin.targetSiteRestricted \/ r.attacked \in sourcePermittedTargetSites)

Exact module download · Source bundle and reproduction instructions

IndependentEncounterTraversalView6 · operator

reference-profile · input revision 2 · CC0 1.0

IndependentEncounterTraversalView6(before,after,actualEncounterWithoutPositionMove) ==
    actualEncounterWithoutPositionMove /\ after = before

Exact module download · Source bundle and reproduction instructions

InitiationDestination6 · operator

reference-profile · input revision 2 · CC0 1.0

InitiationDestination6(r,l) ==
    IF r.position = "NoValue" THEN "Movement"
    ELSE IF r.position \notin DOMAIN l.slots THEN "Movement"
    ELSE IF l.slots[r.position].barrierCard = 0 THEN "Movement" ELSE "Approach"

Exact module download · Source bundle and reproduction instructions

InsertPositionSequence6 · operator

reference-profile · input revision 2 · CC0 1.0

InsertPositionSequence6(order,p,gap) == SubSeq(order,1,gap) \o <<p>> \o SubSeq(order,gap+1,Len(order))

Exact module download · Source bundle and reproduction instructions

MoveBarrierPosition6 · operator

reference-profile · input revision 2 · CC0 1.0

MoveBarrierPosition6(before,after,oldPos,newPos,targetSite,gap,actualMovementAuthorized) ==
    /\ oldPos \in DOMAIN before.slots /\ before.slots[oldPos].barrierCard # 0
    /\ LET empty == [before EXCEPT !.slots[oldPos].barrierCard = 0]
       IN CreatePosition6(empty,after,newPos,targetSite,gap,before.slots[oldPos].barrierCard,0,actualMovementAuthorized)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: empty, CreatePosition6

MoveTraversalDuringForcedEncounter6 · operator

reference-profile · input revision 2 · CC0 1.0

MoveTraversalDuringForcedEncounter6(before,after,traversalBefore,traversalAfter,actualUnderlyingTraversalMovement) ==
    /\ Len(before) > 0 /\ before[Len(before)].forced /\ before[Len(before)].stage # "Complete"
    /\ actualUnderlyingTraversalMovement /\ after = before

Exact module download · Source bundle and reproduction instructions

MovementBarrier6 · operator

reference-profile · input revision 2 · CC0 1.0

MovementBarrier6(r,l) == IF r.position \in DOMAIN l.slots THEN l.slots[r.position].barrierCard ELSE 0

Exact module download · Source bundle and reproduction instructions

MovementContext6 · operator

reference-profile · input revision 2 · CC0 1.0

MovementContext6(r,m,step) ==
    TraversalTimingPresent6(r) /\ ~r.ending /\ r.phase = "Movement" /\ r.step = step /\
    m.id = r.phaseId /\ m.traversalId = r.id

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalTimingPresent6

MovementPassEdge6 · operator

reference-profile · input revision 2 · CC0 1.0

MovementPassEdge6(m) ==
    [traversalId |-> m.traversalId,standard |-> m.standard /\ m.begun /\ m.passedBarrier # 0,from |-> m.from,to |-> "Pass",
     fromBarrier |-> m.fromBarrier,toBarrier |-> m.passedBarrier,encounterId |-> m.fromEncounterId]

Exact module download · Source bundle and reproduction instructions

MovementPassEvents6 · operator

reference-profile · input revision 2 · CC0 1.0

MovementPassEvents6(r,l) ==
    IF MovementBarrier6(r,l) = 0 THEN {}
    ELSE {[tag |-> "PassBarrier",traversalId |-> r.id,phaseId |-> r.phaseId,barrierCard |-> MovementBarrier6(r,l)]} \cup
      (IF NextInwardPosition6(l,r.attacked,r.position) = "NoValue"
       THEN {[tag |-> "PassAllBarrier",traversalId |-> r.id,phaseId |-> r.phaseId,barrierCard |-> MovementBarrier6(r,l)]} ELSE {})

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: MovementBarrier6, NextInwardPosition6

MovementWithdrawTraversal6 · operator

reference-profile · input revision 2 · CC0 1.0

MovementWithdrawTraversal6(before,after,m,l,afterLayout,newPhaseId,sideBChooses,actualDecisionReady,legallyCanWithdrawTraversal,events) ==
    /\ MovementContext6(before.traversal,m,"ProcedureCode9bca3a096549") /\ m.begun /\ ~m.declined
    /\ WithdrawTraversal6(before,after,newPhaseId,sideBChooses,actualDecisionReady,legallyCanWithdrawTraversal,events)
    /\ ReleaseDepartedSideBPosition6(l,afterLayout,before.traversal.position,after.traversal.position)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: MovementContext6, ReleaseDepartedSideBPosition6, WithdrawTraversal6

NewFullySuppressInstructionEvents6 · operator

reference-profile · input revision 2 · CC0 1.0

NewFullySuppressInstructionEvents6(before,after) ==
    IF ~before.fullyBarrierInstructionSuppressed /\ after.fullyBarrierInstructionSuppressed
    THEN {[tag |-> "FullySuppressInstruction",encounterId |-> before.id,barrierCard |-> before.barrierCard,
           traversalId |-> before.traversalId,objects |-> after.fullyBy]}
    ELSE {}

Exact module download · Source bundle and reproduction instructions

NextEncounterSub6 · operator

reference-profile · input revision 2 · CC0 1.0

NextEncounterSub6(e) ==
    LET available == {i \in 1..Len(e.order) : e.order[i] \notin (e.barrierInstructionSuppressed \cup e.resolved)}
    IN IF available = {} THEN 0 ELSE e.order[CHOOSE i \in available : \A j \in available : i <= j]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: available

NextInwardPosition6 · operator

reference-profile · input revision 2 · CC0 1.0

NextInwardPosition6(l,targetSite,p) ==
    IF p = "NoValue" THEN "NoValue"
    ELSE LET i == PositionIndex6(l.orders[targetSite],p)
         IN IF i = 1 THEN "NoValue" ELSE l.orders[targetSite][i-1]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: i

NextTraversalStep6 · operator

reference-profile · input revision 2 · CC0 1.0

NextTraversalStep6(step,branch) ==
 CASE step = "ProcedureCode12371046a2e5" -> "ProcedureCodeacc82dbcc545" [] step = "ProcedureCodeacc82dbcc545" -> "ProcedureCode4d6bd06d2c9f"
 [] step = "ProcedureCode4d6bd06d2c9f" -> "ProcedureCode347de0bdd6b4" [] step = "ProcedureCode347de0bdd6b4" -> "ProcedureCode71e36c9e8e04" [] step = "ProcedureCode71e36c9e8e04" -> "ProcedureCode7e3f7e5033c8"
 [] step = "ProcedureCode7e3f7e5033c8" -> IF branch = "Approach" THEN "ProcedureCode453e949a114f" ELSE "ProcedureCode714dfe070fed"
 [] step = "ProcedureCode453e949a114f" -> "ProcedureCode3a6daf593ad4" [] step = "ProcedureCode3a6daf593ad4" -> "ProcedureCode4d474d346807"
 [] step = "ProcedureCode4d474d346807" -> IF branch = "Encounter" THEN "ProcedureCodeda7bff1d9270" ELSE "ProcedureCode714dfe070fed"
 [] step = "ProcedureCodeda7bff1d9270" -> "ProcedureCode8b3260c0010f" [] step = "ProcedureCode8b3260c0010f" -> "ProcedureCodef1914978bb8e"
 [] step = "ProcedureCodef1914978bb8e" -> IF branch = "BarrierInstruction" THEN "ProcedureCodeaa0828fbf852" ELSE "ProcedureCode687f72772ab1"
 [] step = "ProcedureCodeaa0828fbf852" -> "ProcedureCodef1914978bb8e"
 [] step = "ProcedureCode687f72772ab1" -> IF branch = "ReturnForced" THEN "ReturnCaller" ELSE "ProcedureCode714dfe070fed"
 [] step = "ProcedureCode714dfe070fed" -> "ProcedureCode4f60245a1dde" [] step = "ProcedureCode4f60245a1dde" -> "ProcedureCode9bca3a096549"
 [] step = "ProcedureCode9bca3a096549" -> IF branch = "WithdrawTraversal" THEN "ProcedureCode6ea937bb44ac" ELSE "ProcedureCoded4ddeafb5f2f"
 [] step = "ProcedureCoded4ddeafb5f2f" -> "ProcedureCode2cd618a9e624" [] step = "ProcedureCode2cd618a9e624" -> "ProcedureCode6c5d14f545f7"
 [] step = "ProcedureCode6c5d14f545f7" -> IF branch = "NewPosition" THEN "ProcedureCode453e949a114f" ELSE "ProcedureCode7e82ab2b38b7"
 [] step = "ProcedureCode7e82ab2b38b7" -> "ProcedureCodea732fbc12ae0" [] step = "ProcedureCodea732fbc12ae0" -> "ProcedureCodebbb14496b09b"
 [] step = "ProcedureCodebbb14496b09b" -> "ProcedureCoded75d879e00ff" [] step = "ProcedureCoded75d879e00ff" -> "ProcedureCodec7b41615d673" [] step = "ProcedureCodec7b41615d673" -> "ProcedureCode6ea937bb44ac"
 [] step = "ProcedureCode6ea937bb44ac" -> "ProcedureCode84dea7dc8ecc" [] step = "ProcedureCode84dea7dc8ecc" -> "ProcedureCode5e397645e65c"
 [] step = "ProcedureCode5e397645e65c" -> "ProcedureCode9606a4cd52b4" [] step = "ProcedureCode9606a4cd52b4" -> "Complete"
 [] OTHER -> "NoValue"

Exact module download · Source bundle and reproduction instructions

NoTraversal6 · operator

reference-profile · input revision 2 · CC0 1.0

NoTraversal6 == [OpenTraversal6(0,0,"NoValue") EXCEPT !.phase = "NoValue",!.step = "NoValue",!.complete = TRUE,!.usedPhaseIds = {}]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: OpenTraversal6

NoTraversalRedirect6 · operator

reference-profile · input revision 2 · CC0 1.0

NoTraversalRedirect6 == [phase |-> "NoValue",phaseId |-> 0,step |-> "NoValue",attacked |-> "NoValue",position |-> "NoValue"]

Exact module download · Source bundle and reproduction instructions

OccupiedBarrier6 · operator

reference-profile · input revision 2 · CC0 1.0

OccupiedBarrier6(l) == {l.slots[p].barrierCard: p \in {q \in DOMAIN l.slots: l.slots[q].barrierCard # 0}}

Exact module download · Source bundle and reproduction instructions

OccupyDeclaredPosition6 · operator

reference-profile · input revision 2 · CC0 1.0

OccupyDeclaredPosition6(before,after,p,deployId,newDeployedObject,actualStep,actualDeployAuthorized) ==
    /\ actualStep = "ProcedureCode0f76bcc2eb00" /\ actualDeployAuthorized /\ p \in DOMAIN before.slots
    /\ before.slots[p].reservation = deployId /\ deployId # 0 /\ before.slots[p].barrierCard = 0
    /\ newDeployedObject # 0 /\ newDeployedObject \notin OccupiedBarrier6(before)
    /\ after = [before EXCEPT !.slots[p].barrierCard = newDeployedObject,!.slots[p].reservation = 0,!.slots[p].retained = FALSE]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: OccupiedBarrier6

OpenApproach6 · operator

reference-profile · input revision 2 · CC0 1.0

OpenApproach6(r) == [id |-> r.phaseId,traversalId |-> r.id,position |-> r.position,begun |-> FALSE]

Exact module download · Source bundle and reproduction instructions

OpenEncounter6 · operator

reference-profile · input revision 2 · CC0 1.0

OpenEncounter6(id,barrierCard,traversalId,forced,caller,order) ==
 [id |-> id,barrierCard |-> barrierCard,traversalId |-> traversalId,forced |-> forced,caller |-> caller,
  stage |-> "Begin",order |-> order,usedSubIds |-> SubIds6(order),
  barrierInstructionSuppressedBy |-> [s \in SubIds6(order) |-> 0],barrierInstructionSuppressed |-> {},resolved |-> {},
  paidReached |-> FALSE,fullyBarrierInstructionSuppressed |-> FALSE,fullyBy |-> {},bypassed |-> FALSE,aborted |-> FALSE]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: SubIds6

OpenInitiation6 · operator

reference-profile · input revision 2 · CC0 1.0

OpenInitiation6(traversal) == [traversal |-> traversal,announced |-> FALSE,costsPaid |-> FALSE,badPubAdded |-> FALSE]

Exact module download · Source bundle and reproduction instructions

OpenMovement6 · operator

reference-profile · input revision 2 · CC0 1.0

OpenMovement6(r,fromPhase,fromBarrier,fromEncounterId,standard) ==
 [id |-> r.phaseId,traversalId |-> r.id,from |-> fromPhase,fromBarrier |-> fromBarrier,fromEncounterId |-> fromEncounterId,
  standard |-> standard,begun |-> FALSE,passedBarrier |-> 0,passedAll |-> FALSE,
  declined |-> FALSE,advanced |-> FALSE,movedToNew |-> FALSE,approachedTargetSite |-> FALSE]

Exact module download · Source bundle and reproduction instructions

OpenSuccess6 · operator

reference-profile · input revision 2 · CC0 1.0

OpenSuccess6(r) ==
    [traversal |-> r,declarationProcessed |-> FALSE,siteInspectionChosen |-> FALSE,siteInspectionFinished |-> FALSE]

Exact module download · Source bundle and reproduction instructions

OpenTraversal6 · operator

reference-profile · input revision 2 · CC0 1.0

OpenTraversal6(traversalId,phaseId,callerId) ==
    [id |-> traversalId,phaseId |-> phaseId,usedPhaseIds |-> {phaseId},caller |-> callerId,
     phase |-> "Initiation",step |-> "ProcedureCode12371046a2e5",attacked |-> "NoValue",position |-> "NoValue",
     formalBegun |-> FALSE,complete |-> FALSE,ending |-> FALSE,
     reachedSuccess |-> FALSE,successful |-> FALSE,unsuccessful |-> FALSE,withdrewTraversal |-> FALSE]

Exact module download · Source bundle and reproduction instructions

OpenTraversalEnd6 · operator

reference-profile · input revision 2 · CC0 1.0

OpenTraversalEnd6(control,windows) ==
    [traversal |-> control.traversal,phaseEndedIds |-> control.phaseEndedIds,windows |-> windows,
     windowsDone |-> FALSE,fundReturned |-> FALSE,resultDeclared |-> FALSE,returned |-> FALSE]

Exact module download · Source bundle and reproduction instructions

OutermostOccupiedPosition6 · operator

reference-profile · input revision 2 · CC0 1.0

OutermostOccupiedPosition6(l,targetSite) ==
    LET occupied == SelectSeq(l.orders[targetSite],LAMBDA p: l.slots[p].barrierCard # 0)
    IN IF Len(occupied) = 0 THEN "NoValue" ELSE occupied[Len(occupied)]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: occupied

OutsideEncounterChain6 · operator

reference-profile · input revision 2 · CC0 1.0

OutsideEncounterChain6(frames,ids) ==
    [id \in {x \in DOMAIN frames : frames[x].encounterAncestors \cap ids = {}} |-> frames[id]]

Exact module download · Source bundle and reproduction instructions

OutsideEncounterScope6 · operator

reference-profile · input revision 2 · CC0 1.0

OutsideEncounterScope6(frames,encounterId) ==
    [id \in {x \in DOMAIN frames: encounterId \notin frames[x].encounterAncestors} |-> frames[id]]

Exact module download · Source bundle and reproduction instructions

PaidSuppressInstructionEncounterSubs6 · operator

reference-profile · input revision 2 · CC0 1.0

PaidSuppressInstructionEncounterSubs6(before,after,w,subs,sourceObject,actualAbilityLegal,allCostsPaid,events) ==
    /\ before.stage = "Paid" /\ w.open /\ w.kind = "Paid"
    /\ w.step = "ProcedureCode8b3260c0010f" /\ w.phaseId = before.id /\ w.priority = "SideB"
    /\ SuppressInstructionEncounterSubs6(before,after,subs,sourceObject,actualAbilityLegal,allCostsPaid,events)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: SuppressInstructionEncounterSubs6

PassAfterEncounter6 · operator

reference-profile · input revision 2 · CC0 1.0

PassAfterEncounter6(edge) == TraversalDirectEdge6(edge,"Encounter","Pass")

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalDirectEdge6

PassAfterFullySuppressInstruction6 · operator

reference-profile · input revision 2 · CC0 1.0

PassAfterFullySuppressInstruction6(edge,fullyBarrierInstructionSuppressedEncounters) ==
    PassAfterEncounter6(edge) /\
    [traversalId |-> edge.traversalId,encounterId |-> edge.encounterId,barrierCard |-> edge.fromBarrier] \in fullyBarrierInstructionSuppressedEncounters

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: PassAfterEncounter6

PositionCleanup6 · operator

reference-profile · input revision 2 · CC0 1.0

PositionCleanup6(before,after,currentSideBPosition,actualCheckpointStage) ==
    /\ actualCheckpointStage = "ProcedureCode2d6279f9d639"
    /\ LET remove == {p \in DOMAIN before.slots:
                         before.slots[p].barrierCard = 0 /\ before.slots[p].reservation = 0 /\ p # currentSideBPosition}
       IN after = [before EXCEPT
          !.slots = [p \in DOMAIN @ \ remove |->
             IF p = currentSideBPosition /\ before.slots[p].barrierCard = 0 /\ before.slots[p].reservation = 0
             THEN [before.slots[p] EXCEPT !.retained = TRUE] ELSE before.slots[p]],
          !.orders = [s \in DOMAIN @ |-> SelectSeq(before.orders[s],LAMBDA p: p \notin remove)]]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: LAMBDA, remove

PositionGapAllowed6 · operator

reference-profile · input revision 2 · CC0 1.0

PositionGapAllowed6(order,mode,anchor,gap,rememberedGap) ==
    /\ gap \in 0..Len(order)
    /\ CASE mode = "Outermost" -> gap = Len(order)
         [] mode = "Innermost" -> gap = 0
         [] mode = "DirectlyInward" -> anchor \in SetupRange(order) /\ gap = PositionIndex6(order,anchor)-1
         [] mode = "SchemaAtom016" -> TRUE
         [] mode = "HistoricalPlace" -> gap = rememberedGap
         [] OTHER -> FALSE

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: SetupRange, PositionIndex6

PositionIds6 · operator

reference-profile · input revision 2 · CC0 1.0

PositionIds6(l) == UNION {SetupRange(l.orders[s]): s \in DOMAIN l.orders}

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: SetupRange

PositionIndex6 · operator

reference-profile · input revision 2 · CC0 1.0

PositionIndex6(order,p) == CHOOSE i \in 1..Len(order): order[i] = p

Exact module download · Source bundle and reproduction instructions

PositionLayoutValid6 · operator

reference-profile · input revision 2 · CC0 1.0

PositionLayoutValid6(l,actualProtectingBarrier) ==
    /\ DOMAIN l.slots = PositionIds6(l) /\ PositionIds6(l) \subseteq l.used
    /\ \A s \in DOMAIN l.orders:
         DeckSequenceValid4(l.orders[s]) /\ \A p \in SetupRange(l.orders[s]): l.slots[p].targetSite = s
    /\ \A s,t \in DOMAIN l.orders: s # t => SetupRange(l.orders[s]) \intersect SetupRange(l.orders[t]) = {}
    /\ OccupiedBarrier6(l) = actualProtectingBarrier
    /\ \A p \in DOMAIN l.slots: l.slots[p].barrierCard # 0 => l.slots[p].reservation = 0 /\ ~l.slots[p].retained
    /\ \A p,q \in DOMAIN l.slots: p # q /\ l.slots[p].barrierCard # 0 => l.slots[p].barrierCard # l.slots[q].barrierCard

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: DeckSequenceValid4, SetupRange, OccupiedBarrier6, PositionIds6

ProcessTraversalEndWindow6 · operator

reference-profile · input revision 2 · CC0 1.0

ProcessTraversalEndWindow6(before,after,finishedWindow,actualOtherWindowCompleted,optionsUsed,startedTimingStructures) ==
    /\ Len(before) > 0 /\ startedTimingStructures = {}
    /\ LET w == before[Len(before)]
           mode == TraversalEndWindowClass6(w)
       IN /\ w.open
          /\ IF mode \in {"Close","CloseBegin"} THEN optionsUsed = {} ELSE actualOtherWindowCompleted
          /\ finishedWindow = [w EXCEPT !.open = FALSE,!.pending = {},!.priority = "NoValue",
                !.lostPending = IF mode = "CloseBegin" THEN @ \cup w.pending ELSE @]
          /\ after = SubSeq(before,1,Len(before)-1)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: mode, w

ProtectingBarrierForPositions6 · operator

reference-profile · input revision 2 · CC0 1.0

ProtectingBarrierForPositions6(objects) ==
    {id \in DOMAIN objects: objects[id].form = "Card" /\ objects[id].kind = "Barrier" /\
       objects[id].deployed /\ objects[id].host = 0 /\ objects[id].zone = "Play" /\ objects[id].area = "Protecting"}

Exact module download · Source bundle and reproduction instructions

PushForcedEncounter6 · operator

reference-profile · input revision 2 · CC0 1.0

PushForcedEncounter6(before,after,r,afterTraversal,e,usedEncounterIds,actualTraitWithoutPositionChange) ==
    /\ actualTraitWithoutPositionChange /\ ~r.ending /\ e.forced /\ e.stage = "Begin"
    /\ e.id \in Nat \ {0} /\ e.id \notin usedEncounterIds /\ e.traversalId = r.id
    /\ after = Append(before,e) /\ afterTraversal = r

Exact module download · Source bundle and reproduction instructions

ReleaseDepartedSideBPosition6 · operator

reference-profile · input revision 2 · CC0 1.0

ReleaseDepartedSideBPosition6(before,after,oldPosition,newPosition) ==
    LET release == oldPosition # newPosition /\ oldPosition \in DOMAIN before.slots /\
                   before.slots[oldPosition].barrierCard = 0 /\ before.slots[oldPosition].reservation = 0 /\
                   before.slots[oldPosition].retained
        remove == IF release THEN {oldPosition} ELSE {}
    IN after = [before EXCEPT !.slots = [p \in DOMAIN @ \ remove |-> before.slots[p]],
          !.orders = [s \in DOMAIN @ |-> SelectSeq(before.orders[s],LAMBDA p: p \notin remove)]]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: LAMBDA, remove

RequestOrRetargetTraversal6 · operator

reference-profile · input revision 2 · CC0 1.0

RequestOrRetargetTraversal6(before,after,target,actualAuthority,events) ==
    IF before.redirect = NoTraversalRedirect6 THEN RequestTraversalRedirect6(before,after,target,actualAuthority,events)
    ELSE RetargetTraversalRedirect6(before,after,target,actualAuthority,events)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: NoTraversalRedirect6, RequestTraversalRedirect6, RetargetTraversalRedirect6

RequestTraversalRedirect6 · operator

reference-profile · input revision 2 · CC0 1.0

RequestTraversalRedirect6(before,after,target,actualAuthorizedTrait,events) ==
    /\ TraversalTimingPresent6(before.traversal) /\ ~before.traversal.ending /\ actualAuthorizedTrait
    /\ before.redirect = NoTraversalRedirect6 /\ target.phase \in TraversalPhases6 \ {"TraversalEnds"}
    /\ target.phaseId \in Nat \ {0} /\ target.phaseId \notin before.traversal.usedPhaseIds
    /\ after = [before EXCEPT !.redirect = target,!.phaseStepsSkipped = TRUE,
         !.traversal.position = target.position,!.traversal.attacked = target.attacked,
         !.traversal.usedPhaseIds = @ \cup {target.phaseId},
         !.phaseEndedIds = IF before.paidOpen THEN @ ELSE @ \cup {before.traversal.phaseId},
         !.redirectStage = IF before.paidOpen THEN "PaidWindow" ELSE "Checkpoint",
         !.redirectCheckpointDue = ~before.paidOpen]
    /\ events = IF before.paidOpen THEN {} ELSE TraversalPhaseEndEventsOnce6(before)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: NoTraversalRedirect6, TraversalPhaseEndEventsOnce6, TraversalPhases6, TraversalTimingPresent6

ResolveEncounterSub6 · operator

reference-profile · input revision 2 · CC0 1.0

ResolveEncounterSub6(before,after,sub,actualEntireBarrierInstructionCompleted) ==
    /\ before.stage = "BarrierInstructions" /\ ~before.aborted
    /\ sub # 0 /\ sub = NextEncounterSub6(before) /\ actualEntireBarrierInstructionCompleted
    /\ after = [before EXCEPT !.resolved = @ \cup {sub}]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: NextEncounterSub6

RetainedPositionValid6 · operator

reference-profile · input revision 2 · CC0 1.0

RetainedPositionValid6(l,r) ==
    \A p \in DOMAIN l.slots: l.slots[p].retained =>
        l.slots[p].barrierCard = 0 /\ l.slots[p].reservation = 0 /\ SideBMayHavePosition6(r) /\ r.position = p

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: SideBMayHavePosition6

RetargetTraversalRedirect6 · operator

reference-profile · input revision 2 · CC0 1.0

RetargetTraversalRedirect6(before,after,target,actualAuthorizedTrait,events) ==
    /\ TraversalTimingPresent6(before.traversal) /\ ~before.traversal.ending /\ actualAuthorizedTrait
    /\ before.redirect # NoTraversalRedirect6 /\ before.redirectStage \in {"PaidWindow","Checkpoint"}
    /\ target.phase \in TraversalPhases6 \ {"TraversalEnds"}
    /\ target.phaseId \in Nat \ {0} /\ target.phaseId \notin before.traversal.usedPhaseIds
    /\ after = [before EXCEPT !.redirect = target,!.traversal.position = target.position,
                 !.traversal.attacked = target.attacked,!.traversal.usedPhaseIds = @ \cup {target.phaseId}]
    /\ events = {}

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: NoTraversalRedirect6, TraversalPhases6, TraversalTimingPresent6

ReturnForcedEncounter6 · operator

reference-profile · input revision 2 · CC0 1.0

ReturnForcedEncounter6(before,after,r,afterTraversal,caller,completedIds,afterCompletedIds) ==
    /\ Len(before) > 0 /\ before[Len(before)].forced /\ before[Len(before)].stage = "Complete"
    /\ caller = before[Len(before)].caller
    /\ after = SubSeq(before,1,Len(before)-1) /\ afterTraversal = r
    /\ afterCompletedIds = completedIds \cup {before[Len(before)].id}

Exact module download · Source bundle and reproduction instructions

ReturnLiabilityMarkerFund6 · operator

reference-profile · input revision 2 · CC0 1.0

ReturnLiabilityMarkerFund6(before,after,fundBefore,fundAfter,bankBefore,bankAfter) ==
    /\ TraversalEndContext6(before,"ProcedureCode84dea7dc8ecc") /\ before.windowsDone /\ ~before.fundReturned
    /\ fundBefore \in Nat /\ bankBefore \in Nat /\ fundAfter = 0 /\ bankAfter = bankBefore+fundBefore
    /\ after = [before EXCEPT !.fundReturned = TRUE]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalEndContext6

ReturnTraversalToCaller6 · operator

reference-profile · input revision 2 · CC0 1.0

ReturnTraversalToCaller6(before,after,actualTraversalEndReactionsAndCheckpointComplete,caller) ==
    /\ before.traversal.complete /\ before.traversal.id # 0 /\ ~before.returned
    /\ actualTraversalEndReactionsAndCheckpointComplete /\ caller = before.traversal.caller
    /\ after = [before EXCEPT !.returned = TRUE]

Exact module download · Source bundle and reproduction instructions

SamePosition6 · operator

reference-profile · input revision 2 · CC0 1.0

SamePosition6(l,p,q) ==
    /\ p \in DOMAIN l.slots /\ q \in DOMAIN l.slots
    /\ PositionIndex6(l.orders[l.slots[p].targetSite],p) = PositionIndex6(l.orders[l.slots[q].targetSite],q)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: PositionIndex6

SetInitialSideBPosition6 · operator

reference-profile · input revision 2 · CC0 1.0

SetInitialSideBPosition6(before,after,l,actualStep) ==
    /\ actualStep = "ProcedureCode347de0bdd6b4" /\ before.phase = "Initiation" /\ TraversalTimingPresent6(before)
    /\ after = [before EXCEPT !.position = OutermostOccupiedPosition6(l,before.attacked)]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: OutermostOccupiedPosition6, TraversalTimingPresent6

ShouldDeclareUnsuccessful6 · operator

reference-profile · input revision 2 · CC0 1.0

ShouldDeclareUnsuccessful6(r,targetSites) == ~r.reachedSuccess /\ r.attacked \in DOMAIN targetSites

Exact module download · Source bundle and reproduction instructions

SideBAdvancePosition6 · operator

reference-profile · input revision 2 · CC0 1.0

SideBAdvancePosition6(before,after,l,actualStep) ==
    /\ actualStep = "ProcedureCoded4ddeafb5f2f" /\ before.phase = "Movement" /\ TraversalTimingPresent6(before)
    /\ after = [before EXCEPT !.position = NextInwardPosition6(l,before.attacked,before.position)]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: NextInwardPosition6, TraversalTimingPresent6

SideBAdvanceWithPositionCleanup6 · operator

reference-profile · input revision 2 · CC0 1.0

SideBAdvanceWithPositionCleanup6(beforeTraversal,afterTraversal,beforeLayout,afterLayout,actualStep) ==
    SideBAdvancePosition6(beforeTraversal,afterTraversal,beforeLayout,actualStep) /\
    ReleaseDepartedSideBPosition6(beforeLayout,afterLayout,beforeTraversal.position,afterTraversal.position)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: ReleaseDepartedSideBPosition6, SideBAdvancePosition6

SideBMayHavePosition6 · operator

reference-profile · input revision 2 · CC0 1.0

SideBMayHavePosition6(r) == TraversalTimingPresent6(r) /\ r.phase \notin {"Success","TraversalEnds"}

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalTimingPresent6

SideBMoveInstructionClass6 · operator

reference-profile · input revision 2 · CC0 1.0

SideBMoveInstructionClass6(r,p,directive) ==
    IF SideBMoveNoOp6(r,p,directive) THEN "NoOp"
    ELSE IF directive = "Encounter" /\ p = r.position THEN "ForcedEncounter"
    ELSE "Redirect"

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: SideBMoveNoOp6

SideBMoveNoOp6 · operator

reference-profile · input revision 2 · CC0 1.0

SideBMoveNoOp6(r,targetPosition,directive) ==
    ~SideBMayHavePosition6(r) \/
    (r.phase = "Approach" /\ r.position = targetPosition /\ directive = "Approach")

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: SideBMayHavePosition6

SideBMoveToBarrierTarget6 · operator

reference-profile · input revision 2 · CC0 1.0

SideBMoveToBarrierTarget6(r,l,p,directive,newPhaseId) ==
    [phase |-> directive,phaseId |-> newPhaseId,
     step |-> IF directive = "Approach" THEN "ProcedureCode453e949a114f" ELSE "ProcedureCodeda7bff1d9270",
     position |-> p,attacked |-> l.slots[p].targetSite]

Exact module download · Source bundle and reproduction instructions

SideBMoveToOutermostTarget6 · operator

reference-profile · input revision 2 · CC0 1.0

SideBMoveToOutermostTarget6(r,l,targetSite,newPhaseId) ==
    LET p == OutermostOccupiedPosition6(l,targetSite)
    IN [phase |-> IF p = "NoValue" THEN "Movement" ELSE "Approach",phaseId |-> newPhaseId,
        step |-> IF p = "NoValue" THEN "ProcedureCode714dfe070fed" ELSE "ProcedureCode453e949a114f",position |-> p,attacked |-> targetSite]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: p

SideBOutermostMoveRequest6 · operator

reference-profile · input revision 2 · CC0 1.0

SideBOutermostMoveRequest6(before,after,l,afterLayout,targetSite,newPhaseId,actualMovementAuthorized,events) ==
    /\ actualMovementAuthorized /\ targetSite \in DOMAIN l.orders
    /\ LET t == SideBMoveToOutermostTarget6(before.traversal,l,targetSite,newPhaseId)
       IN IF SideBMoveNoOp6(before.traversal,t.position,t.phase) THEN after = before /\ events = {}
          ELSE RequestOrRetargetTraversal6(before,after,t,TRUE,events)
    /\ ReleaseDepartedSideBPosition6(l,afterLayout,before.traversal.position,after.traversal.position)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: t, ReleaseDepartedSideBPosition6, RequestOrRetargetTraversal6, SideBMoveNoOp6

SideBPositionMoveRequest6 · operator

reference-profile · input revision 2 · CC0 1.0

SideBPositionMoveRequest6(before,after,l,afterLayout,p,directive,newPhaseId,actualMovementAuthorized,events) ==
    /\ actualMovementAuthorized /\ directive \in {"Approach","Encounter"} /\ p \in DOMAIN l.slots
    /\ l.slots[p].barrierCard # 0
    /\ IF SideBMoveNoOp6(before.traversal,p,directive) THEN after = before /\ events = {}
       ELSE /\ SideBMoveInstructionClass6(before.traversal,p,directive) = "Redirect"
            /\ RequestOrRetargetTraversal6(before,after,SideBMoveToBarrierTarget6(before.traversal,l,p,directive,newPhaseId),TRUE,events)
    /\ ReleaseDepartedSideBPosition6(l,afterLayout,before.traversal.position,after.traversal.position)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: ReleaseDepartedSideBPosition6, RequestOrRetargetTraversal6, SideBMoveInstructionClass6, SideBMoveNoOp6, SideBMoveToBarrierTarget6

SideBPositionValid6 · operator

reference-profile · input revision 2 · CC0 1.0

SideBPositionValid6(r,l) ==
    /\ (~SideBMayHavePosition6(r) => r.position = "NoValue")
    /\ (r.position # "NoValue" => r.position \in DOMAIN l.slots /\ l.slots[r.position].targetSite = r.attacked)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: SideBMayHavePosition6

SubIds6 · operator

reference-profile · input revision 2 · CC0 1.0

SubIds6(order) == {order[i] : i \in 1..Len(order)}

Exact module download · Source bundle and reproduction instructions

SuccessfulTraversalReaction6 · operator

reference-profile · input revision 2 · CC0 1.0

SuccessfulTraversalReaction6(windowId,pending) ==
    [id |-> windowId,kind |-> "Reaction",open |-> TRUE,beginPhaseId |-> 0,
     pending |-> pending,lostPending |-> {},priority |-> "NoValue"]

Exact module download · Source bundle and reproduction instructions

SuppressInstructionEncounterSubs6 · operator

reference-profile · input revision 2 · CC0 1.0

SuppressInstructionEncounterSubs6(before,after,subs,sourceObject,actualAbilityTimingAndLegality,allCostsPaid,events) ==
    /\ before.stage \in {"BeginReactions","Paid","BarrierInstructions"} /\ ~before.aborted
    /\ actualAbilityTimingAndLegality /\ allCostsPaid
    /\ subs # {} /\ subs \subseteq (SubIds6(before.order) \ before.barrierInstructionSuppressed)
    /\ after = WithFullySuppressInstruction6([before EXCEPT !.barrierInstructionSuppressed = @ \cup subs,
         !.barrierInstructionSuppressedBy = [s \in DOMAIN before.barrierInstructionSuppressedBy |-> IF s \in subs THEN sourceObject ELSE before.barrierInstructionSuppressedBy[s]]])
    /\ events = NewFullySuppressInstructionEvents6(before,after)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: NewFullySuppressInstructionEvents6, SubIds6, WithFullySuppressInstruction6

SwapIntoPosition6 · operator

reference-profile · input revision 2 · CC0 1.0

SwapIntoPosition6(before,after,p,incomingObject,otherPosition,actualSwapAuthorized) ==
    /\ actualSwapAuthorized /\ p \in DOMAIN before.slots /\ before.slots[p].barrierCard # 0 /\ incomingObject # 0
    /\ IF otherPosition = "NoValue" THEN
          /\ incomingObject \notin OccupiedBarrier6(before)
          /\ after = [before EXCEPT !.slots[p].barrierCard = incomingObject]
       ELSE
          /\ otherPosition \in DOMAIN before.slots /\ otherPosition # p
          /\ before.slots[otherPosition].barrierCard = incomingObject
          /\ after = [before EXCEPT !.slots[p].barrierCard = incomingObject,!.slots[otherPosition].barrierCard = before.slots[p].barrierCard]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: OccupiedBarrier6

TraversalBeginEvent6 · operator

reference-profile · input revision 2 · CC0 1.0

TraversalBeginEvent6(r) == [tag |-> "TraversalBegins",alsoInitiates |-> TRUE,traversalId |-> r.id,targetSite |-> r.attacked]

Exact module download · Source bundle and reproduction instructions

TraversalBranch6 · operator

reference-profile · input revision 2 · CC0 1.0

TraversalBranch6(r,l,activationzedDeployedBarrier,e,m,work) ==
 CASE r.step = "ProcedureCode7e3f7e5033c8" -> InitiationDestination6(r,l)
 [] r.step = "ProcedureCode4d474d346807" -> ApproachDestination6(OpenApproach6(r),l,activationzedDeployedBarrier)
 [] r.step = "ProcedureCodef1914978bb8e" -> IF work.resolvedSub = 0 THEN "NoValue" ELSE "BarrierInstruction"
 [] r.step = "ProcedureCode687f72772ab1" -> IF e.forced THEN "ReturnForced" ELSE "Movement"
 [] r.step = "ProcedureCode9bca3a096549" -> work.jackChoice
 [] r.step = "ProcedureCode6c5d14f545f7" -> IF m.movedToNew THEN "NewPosition" ELSE "NoPosition"
 [] OTHER -> "Next"

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: ApproachDestination6, InitiationDestination6, OpenApproach6

TraversalDirectEdge6 · operator

reference-profile · input revision 2 · CC0 1.0

TraversalDirectEdge6(edge,from,to) ==
    edge.traversalId # 0 /\ edge.standard /\ edge.from = from /\ edge.to = to /\ edge.fromBarrier = edge.toBarrier

Exact module download · Source bundle and reproduction instructions

TraversalEndContext6 · operator

reference-profile · input revision 2 · CC0 1.0

TraversalEndContext6(e,step) ==
    TraversalTimingPresent6(e.traversal) /\ e.traversal.ending /\ e.traversal.phase = "TraversalEnds" /\ e.traversal.step = step

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalTimingPresent6

TraversalEndWindowClass6 · operator

reference-profile · input revision 2 · CC0 1.0

TraversalEndWindowClass6(w) ==
    IF w.kind = "Paid" THEN "Close"
    ELSE IF w.kind = "Reaction" /\ w.beginPhaseId # 0 THEN "CloseBegin"
    ELSE "CompleteNormally"

Exact module download · Source bundle and reproduction instructions

TraversalEndWindowStep6 · operator

reference-profile · input revision 2 · CC0 1.0

TraversalEndWindowStep6(before,after,finishedWindow,actualOtherWindowCompleted,optionsUsed,startedTimingStructures) ==
    /\ TraversalEndContext6(before,"ProcedureCode6ea937bb44ac") /\ ~before.windowsDone
    /\ ProcessTraversalEndWindow6(before.windows,after.windows,finishedWindow,actualOtherWindowCompleted,optionsUsed,startedTimingStructures)
    /\ after = [before EXCEPT !.windows = after.windows]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: ProcessTraversalEndWindow6, TraversalEndContext6

TraversalFrameValid6 · operator

reference-profile · input revision 2 · CC0 1.0

TraversalFrameValid6(r) ==
    IF r.id = 0 THEN r.complete /\ r.phase = "NoValue"
    ELSE r.id \in Nat \ {0} /\ r.phase \in TraversalPhases6 /\ r.phaseId \in r.usedPhaseIds
         /\ r.usedPhaseIds \subseteq Nat \ {0} /\ r.formalBegun \in BOOLEAN
         /\ r.complete \in BOOLEAN /\ r.ending \in BOOLEAN

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalPhases6

TraversalInspectionModifierApplies6 · operator

reference-profile · input revision 2 · CC0 1.0

TraversalInspectionModifierApplies6(binding,r,siteInspection) ==
    /\ TraversalTimingPresent6(r) /\ binding.traversalId = r.id /\ siteInspection.traversalId = r.id
    /\ siteInspection.origin = "RulesTraversalInspection"

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalTimingPresent6

TraversalPhaseEndEvent6 · operator

reference-profile · input revision 2 · CC0 1.0

TraversalPhaseEndEvent6(r) == [tag |-> "PhaseEnds",phase |-> r.phase,phaseId |-> r.phaseId,traversalId |-> r.id]

Exact module download · Source bundle and reproduction instructions

TraversalPhaseEndEventsOnce6 · operator

reference-profile · input revision 2 · CC0 1.0

TraversalPhaseEndEventsOnce6(control) ==
    IF control.traversal.phaseId \in control.phaseEndedIds THEN {} ELSE {TraversalPhaseEndEvent6(control.traversal)}

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalPhaseEndEvent6

TraversalPhases6 · operator

reference-profile · input revision 2 · CC0 1.0

TraversalPhases6 == {"Initiation","Approach","Encounter","Movement","Success","TraversalEnds"}

Exact module download · Source bundle and reproduction instructions

TraversalStepInfo6 · operator

reference-profile · input revision 2 · CC0 1.0

TraversalStepInfo6(step) ==
 [phase |-> CASE step \in {"ProcedureCode12371046a2e5","ProcedureCodeacc82dbcc545","ProcedureCode4d6bd06d2c9f","ProcedureCode347de0bdd6b4","ProcedureCode71e36c9e8e04","ProcedureCode7e3f7e5033c8"} -> "Initiation"
             [] step \in {"ProcedureCode453e949a114f","ProcedureCode3a6daf593ad4","ProcedureCode4d474d346807"} -> "Approach"
             [] step \in {"ProcedureCodeda7bff1d9270","ProcedureCode8b3260c0010f","ProcedureCodef1914978bb8e","ProcedureCodeaa0828fbf852","ProcedureCode687f72772ab1"} -> "Encounter"
             [] step \in {"ProcedureCode714dfe070fed","ProcedureCode4f60245a1dde","ProcedureCode9bca3a096549","ProcedureCoded4ddeafb5f2f","ProcedureCode2cd618a9e624","ProcedureCode6c5d14f545f7","ProcedureCode7e82ab2b38b7","ProcedureCodea732fbc12ae0"} -> "Movement"
             [] step \in {"ProcedureCodebbb14496b09b","ProcedureCoded75d879e00ff","ProcedureCodec7b41615d673"} -> "Success"
             [] step \in {"ProcedureCode6ea937bb44ac","ProcedureCode84dea7dc8ecc","ProcedureCode5e397645e65c","ProcedureCode9606a4cd52b4"} -> "TraversalEnds"
             [] OTHER -> "NoValue",
  kind |-> CASE step = "ProcedureCode12371046a2e5" -> "AnnounceAndPay"
           [] step = "ProcedureCodeacc82dbcc545" -> "LiabilityMarker" [] step = "ProcedureCode4d6bd06d2c9f" -> "TraversalBegins"
           [] step = "ProcedureCode347de0bdd6b4" -> "InitialPosition"
           [] step \in {"ProcedureCode71e36c9e8e04","ProcedureCode3a6daf593ad4","ProcedureCode8b3260c0010f","ProcedureCode4f60245a1dde","ProcedureCode2cd618a9e624"} -> "PaidWindow"
           [] step = "ProcedureCode453e949a114f" -> "ApproachBarrier" [] step = "ProcedureCodeda7bff1d9270" -> "EncounterBarrier"
           [] step = "ProcedureCodef1914978bb8e" -> "NextBarrierInstruction" [] step = "ProcedureCodeaa0828fbf852" -> "BarrierInstructionLoop"
           [] step = "ProcedureCode714dfe070fed" -> "PassBarrier" [] step = "ProcedureCode9bca3a096549" -> "WithdrawTraversalDecision"
           [] step = "ProcedureCoded4ddeafb5f2f" -> "AdvancePosition" [] step = "ProcedureCode6c5d14f545f7" -> "MovementBranch"
           [] step = "ProcedureCode7e82ab2b38b7" -> "ApproachTargetSite" [] step = "ProcedureCodebbb14496b09b" -> "DeclareSuccessful"
           [] step = "ProcedureCoded75d879e00ff" -> "RulesInspection"
           [] step = "ProcedureCode6ea937bb44ac" -> "EndWindows" [] step = "ProcedureCode84dea7dc8ecc" -> "ReturnLiabilityMarker"
           [] step = "ProcedureCode5e397645e65c" -> "DeclareUnsuccessful" [] step = "ProcedureCode9606a4cd52b4" -> "CompleteTraversal"
           [] step \in TraversalSteps6 -> "CompletePhase" [] OTHER -> "Invalid"]

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: TraversalSteps6

TraversalSteps6 · operator

reference-profile · input revision 2 · CC0 1.0

TraversalSteps6 ==
 {"ProcedureCode12371046a2e5","ProcedureCodeacc82dbcc545","ProcedureCode4d6bd06d2c9f","ProcedureCode347de0bdd6b4","ProcedureCode71e36c9e8e04","ProcedureCode7e3f7e5033c8",
  "ProcedureCode453e949a114f","ProcedureCode3a6daf593ad4","ProcedureCode4d474d346807","ProcedureCodeda7bff1d9270","ProcedureCode8b3260c0010f","ProcedureCodef1914978bb8e","ProcedureCodeaa0828fbf852","ProcedureCode687f72772ab1",
  "ProcedureCode714dfe070fed","ProcedureCode4f60245a1dde","ProcedureCode9bca3a096549","ProcedureCoded4ddeafb5f2f","ProcedureCode2cd618a9e624","ProcedureCode6c5d14f545f7","ProcedureCode7e82ab2b38b7","ProcedureCodea732fbc12ae0",
  "ProcedureCodebbb14496b09b","ProcedureCoded75d879e00ff","ProcedureCodec7b41615d673","ProcedureCode6ea937bb44ac","ProcedureCode84dea7dc8ecc","ProcedureCode5e397645e65c","ProcedureCode9606a4cd52b4"}

Exact module download · Source bundle and reproduction instructions

TraversalTimingPresent6 · operator

reference-profile · input revision 2 · CC0 1.0

TraversalTimingPresent6(r) == r.id # 0 /\ ~r.complete

Exact module download · Source bundle and reproduction instructions

TraversalWindowOptions6 · operator

reference-profile · input revision 2 · CC0 1.0

TraversalWindowOptions6(step) ==
 [paid |-> step \in {"ProcedureCode71e36c9e8e04","ProcedureCode3a6daf593ad4","ProcedureCode8b3260c0010f","ProcedureCode4f60245a1dde","ProcedureCode2cd618a9e624"},
  nonBarrierActivation |-> step \in {"ProcedureCode71e36c9e8e04","ProcedureCode3a6daf593ad4","ProcedureCode2cd618a9e624"},
  approachedBarrierActivation |-> step = "ProcedureCode3a6daf593ad4",score |-> FALSE]

Exact module download · Source bundle and reproduction instructions

UpdateEncounterSubs6 · operator

reference-profile · input revision 2 · CC0 1.0

UpdateEncounterSubs6(before,after,newOrder,actualBarrierInstructionChange,events) ==
    LET ids == SubIds6(newOrder)
        gained == ids \ SubIds6(before.order)
        fresh == gained \ before.usedSubIds
        b == [s \in before.usedSubIds \cup fresh |->
                    IF s \in fresh THEN 0 ELSE before.barrierInstructionSuppressedBy[s]]
    IN /\ actualBarrierInstructionChange /\ before.stage \notin {"Begin","Complete"} /\ ~before.aborted
       /\ Cardinality(ids) = Len(newOrder) /\ gained = fresh
       /\ after = WithFullySuppressInstruction6([before EXCEPT !.order = newOrder,
              !.usedSubIds = @ \cup fresh,!.barrierInstructionSuppressedBy = b])
       /\ events = NewFullySuppressInstructionEvents6(before,after)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: b, fresh, gained, ids, NewFullySuppressInstructionEvents6, WithFullySuppressInstruction6

VacatePosition6 · operator

reference-profile · input revision 2 · CC0 1.0

VacatePosition6(before,after,p,actualDeparture) ==
    actualDeparture /\ p \in DOMAIN before.slots /\
    after = [before EXCEPT !.slots[p].barrierCard = 0,!.slots[p].reservation = 0,!.slots[p].retained = FALSE]

Exact module download · Source bundle and reproduction instructions

WithFullySuppressInstruction6 · operator

reference-profile · input revision 2 · CC0 1.0

WithFullySuppressInstruction6(e) ==
    IF ~e.fullyBarrierInstructionSuppressed /\ AllCurrentSubsBarrierInstructionSuppressed6(e)
    THEN [e EXCEPT !.fullyBarrierInstructionSuppressed = TRUE,
          !.fullyBy = IF Len(e.order) = 0 THEN {}
              ELSE LET sources == {e.barrierInstructionSuppressedBy[s] : s \in SubIds6(e.order)}
                   IN IF Cardinality(sources) = 1 /\ 0 \notin sources THEN sources ELSE {}]
    ELSE e

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: sources, AllCurrentSubsBarrierInstructionSuppressed6

WithdrawTraversal6 · operator

reference-profile · input revision 2 · CC0 1.0

WithdrawTraversal6(before,after,newTraversalEndsPhaseId,sideBChooses,actualOpportunity,legallyCanWithdrawTraversal,events) ==
    /\ TraversalTimingPresent6(before.traversal) /\ ~before.traversal.ending
    /\ sideBChooses /\ actualOpportunity /\ legallyCanWithdrawTraversal
    /\ newTraversalEndsPhaseId \in Nat \ {0} /\ newTraversalEndsPhaseId \notin before.traversal.usedPhaseIds
    /\ after = [EndTraversalOutcome6(before,newTraversalEndsPhaseId) EXCEPT !.traversal.withdrewTraversal = TRUE]
    /\ events = EndTraversalEffectEvents6(before)

Exact module download · Source bundle and reproduction instructions

Resolved project definitions: EndTraversalEffectEvents6, EndTraversalOutcome6, TraversalTimingPresent6