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.phaseExact 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).phaseExact 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
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.redirectExact 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 # 0Exact 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 removeExact 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 removeExact 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].retainedExact 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.usedSubIdsExact 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
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 0Exact 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.formalBegunExact 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 beforeExact 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 TRUEExact 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 completedEncounterIdsExact 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 = beforeExact 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 = beforeExact 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 0Exact 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.idExact 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 fullyBarrierInstructionSuppressedEncountersExact 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
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 -> FALSEExact 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] = pExact 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].barrierCardExact 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
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 = rExact 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
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 = pExact 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 targetSitesExact 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.toBarrierExact 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 = stepExact 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 BOOLEANExact 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.completeExact 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 eExact 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