InspectionContracts¶
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.
object · operator
reference-profile · input revision 2 · CC0 1.0
object == IF dedicatedNeuralNetApplies THEN sideAChoice ELSE randomResultExact module download · Source bundle and reproduction instructions
eligible · operator
reference-profile · input revision 2 · CC0 1.0
eligible == {i \in 1..Len(deck) : deck[i] \notin excluded}Exact module download · Source bundle and reproduction instructions
central · operator
reference-profile · input revision 2 · CC0 1.0
central == IF ~CentralQuotaAvailable7(b) THEN {}
ELSE CASE b.kind = "SchemaAtom082" -> SideAZoneCards7(objects,"SideAHand") \ excluded
[] b.kind = "SchemaAtom018" -> SideAZoneCards7(objects,"SideADiscard") \ excluded
[] b.kind = "SchemaAtom129" -> DeckCandidate7(deck,excluded,exampleFamily058Off)
[] OTHER -> {}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: excluded, CentralQuotaAvailable7, DeckCandidate7, SideAZoneCards7
excluded · operator
reference-profile · input revision 2 · CC0 1.0
excluded == prohibited \cup InspectionChoiceObjects7(b) \cup m.deniedRootsExact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionChoiceObjects7
roots · operator
reference-profile · input revision 2 · CC0 1.0
roots == (InspectionRootCards7(b,objects) \cap m.admittedRoots) \ (excluded \cup m.deniedRoots \cup m.pendingRoots)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: excluded, InspectionRootCards7
basicPayable · operator
reference-profile · input revision 2 · CC0 1.0
basicPayable == \E o \in payable : o.id = "BasicRetire"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: payable
payable · operator
reference-profile · input revision 2 · CC0 1.0
payable == PayableMidOptions7(options)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PayableMidOptions7
trashPayable · operator
reference-profile · input revision 2 · CC0 1.0
trashPayable == \E o \in payable : o.trashesItemInspectionedExact module download · Source bundle and reproduction instructions
Resolved project definitions: payable
arrivals · operator
reference-profile · input revision 2 · CC0 1.0
arrivals == actualRootEntriesDuringInspection \cap rootsExact module download · Source bundle and reproduction instructions
Resolved project definitions: roots
roots · operator
reference-profile · input revision 2 · CC0 1.0
roots == InspectionRootCards7(b,objectsAfter)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionRootCards7
result · operator
reference-profile · input revision 2 · CC0 1.0
result == ItemInspectionClaimObjectiveDisposition7(objects[before.object],hasAdditionalCost,acceptsAdditionalCost,
allAdditionalCostsPayable,actualClaimObjectiveAllowed)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ItemInspectionClaimObjectiveDisposition7
view · operator
reference-profile · input revision 2 · CC0 1.0
view == InspectionCandidatesDirection7(before,m,objects,deck,prohibited,exampleFamily058Off)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionCandidatesDirection7
ActualItemInspectionesInInspection7 · operator
reference-profile · input revision 2 · CC0 1.0
ActualItemInspectionesInInspection7(history,siteInspectionId) ==
IF siteInspectionId = 0 THEN {} ELSE {id \in DOMAIN history : history[id].siteInspectionId = siteInspectionId}Exact module download · Source bundle and reproduction instructions
ActualItemInspectionesInTraversal7 · operator
reference-profile · input revision 2 · CC0 1.0
ActualItemInspectionesInTraversal7(history,traversalId) ==
IF traversalId = 0 THEN {} ELSE {id \in DOMAIN history : history[id].traversalId = traversalId}Exact module download · Source bundle and reproduction instructions
AddAdditionalItemInspectiones7 · operator
reference-profile · input revision 2 · CC0 1.0
AddAdditionalItemInspectiones7(before,after,amount,actualBeginningAbilityApplies) ==
/\ before.active /\ ~before.complete /\ ~before.limitSet /\ RandomLimitApplies7(before)
/\ before.step \in {"ProcedureCode839b301bad95","ProcedureCodeb6067693902e","ProcedureCode91f3ee0da236"} /\ amount \in Nat /\ actualBeginningAbilityApplies
/\ after = [before EXCEPT !.randomLimit = @+amount]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: RandomLimitApplies7
AdvanceInspectionSelection7 · operator
reference-profile · input revision 2 · CC0 1.0
AdvanceInspectionSelection7(before,after,actualChoiceInstructionAndNormalCheckpointDrained) ==
/\ before.active /\ ~before.complete /\ before.step = "ProcedureCode1404a82ab3ee"
/\ before.selectionPending /\ before.selectedObject \in InspectionChoiceObjects7(before)
/\ actualChoiceInstructionAndNormalCheckpointDrained
/\ after = [before EXCEPT !.step = "ProcedureCodee35e7c8fc57b"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionChoiceObjects7
AdvanceInspectionStep7 · operator
reference-profile · input revision 2 · CC0 1.0
AdvanceInspectionStep7(before,after,actualStepAndChildProceduresComplete,normalCheckpointAndReactionsDrained) ==
/\ before.active /\ ~before.complete /\ before.beginMet
/\ before.step \in {"ProcedureCode839b301bad95","ProcedureCodeb6067693902e","ProcedureCode91f3ee0da236","ProcedureCodee35e7c8fc57b","ProcedureCodeb1fbc90c4ab0"}
/\ actualStepAndChildProceduresComplete /\ normalCheckpointAndReactionsDrained
/\ CASE before.step = "ProcedureCodeb6067693902e" -> before.kind # "SchemaAtom018" \/ before.archivesPrepared
[] before.step = "ProcedureCode91f3ee0da236" -> ~RandomLimitApplies7(before) \/ before.limitSet
[] before.step \in {"ProcedureCodee35e7c8fc57b","ProcedureCodeb1fbc90c4ab0"} -> ~before.selectionPending /\ before.currentItemInspectionId = 0
[] OTHER -> TRUE
/\ after = [before EXCEPT !.step = NextInspectionStep7(before.step)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NextInspectionStep7, RandomLimitApplies7
AdvanceItemInspectionStep7 · operator
reference-profile · input revision 2 · CC0 1.0
AdvanceItemInspectionStep7(before,after,objects,actualStepAndChildProceduresComplete,normalCheckpointAndReactionsDrained) ==
/\ StillItemInspectioning7(before,objects) /\ before.step \in {"ProcedureCodefd91bef8bbd3","ProcedureCode1dd0e8f05be2","ProcedureCode546db7cc4546"}
/\ actualStepAndChildProceduresComplete /\ normalCheckpointAndReactionsDrained
/\ CASE before.step = "ProcedureCodefd91bef8bbd3" -> before.beginMet
[] before.step = "ProcedureCode1dd0e8f05be2" -> before.midDone /\ ~before.midResolving
[] OTHER -> before.claimObjectiveDone /\ ~before.claimObjectiveResolving
/\ after = [before EXCEPT !.step = NextItemInspectionStep7(before.step)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NextItemInspectionStep7, StillItemInspectioning7
ApplyInspectionAborts7 · operator
reference-profile · input revision 2 · CC0 1.0
ApplyInspectionAborts7(before,after,actualAbortedInspectionIds,events) ==
IF before.active /\ before.id \in actualAbortedInspectionIds
THEN EndInspection7(before,after,"EndTraversal",TRUE,events)
ELSE after = before /\ events = {}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EndInspection7
ApplyItemInspectionAborts7 · operator
reference-profile · input revision 2 · CC0 1.0
ApplyItemInspectionAborts7(before,after,actualAbortedItemInspectionIds,events) ==
IF before.active /\ before.id \in actualAbortedItemInspectionIds
THEN EndItemInspection7(before,after,"EndTraversal",TRUE,events)
ELSE after = before /\ events = {}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EndItemInspection7
AttachChosenItemInspection7 · operator
reference-profile · input revision 2 · CC0 1.0
AttachChosenItemInspection7(before,after,a,actualItemInspectionBeginEvent) ==
/\ before.active /\ ~before.complete /\ before.step = "ProcedureCodee35e7c8fc57b"
/\ before.selectionPending /\ before.currentItemInspectionId = 0
/\ a.beginMet /\ a.id \in Nat \ {0} /\ a.id \notin before.usedItemInspectionIds
/\ a.object = before.selectedObject /\ a.siteInspectionId = before.id /\ a.caller = InspectionItemInspectionCaller7(before)
/\ actualItemInspectionBeginEvent = ItemInspectionBeginEvent7(a)
/\ after = [before EXCEPT !.currentItemInspectionId = a.id,!.usedItemInspectionIds = @ \cup {a.id}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionItemInspectionCaller7, ItemInspectionBeginEvent7
BasicRetireOption7 · operator
reference-profile · input revision 2 · CC0 1.0
BasicRetireOption7(card,effectiveRetirePart,actualAllCostsPayable,actualBasicRetireAllowed) ==
MidOption7("BasicRetire",TRUE,actualAllCostsPayable,
ItemInspectionRetireCostOpportunity("SideB",card,TRUE,effectiveRetirePart) /\ actualBasicRetireAllowed)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MidOption7, ItemInspectionRetireCostOpportunity
BeginInspection7 · operator
reference-profile · input revision 2 · CC0 1.0
BeginInspection7(before,after,currentInspectionId,actualLiveTargetSites,actualNewTimingAllowed,actualAllInspectionPrerequisitesComplete,events) ==
/\ before.step = "ProcedureCode839b301bad95" /\ ~before.active /\ ~before.beginMet /\ ~before.complete
/\ before.id \in Nat \ {0} /\ currentInspectionId = 0
/\ before.targetSite \in actualLiveTargetSites /\ before.kind = InspectionTargetSiteCategory7(before.targetSite)
/\ actualNewTimingAllowed /\ actualAllInspectionPrerequisitesComplete
/\ after = [before EXCEPT !.active = TRUE,!.beginMet = TRUE]
/\ events = {InspectionBeginEvent7(before)}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionBeginEvent7, InspectionTargetSiteCategory7
BeginInspectionWithCandidates7 · operator
reference-profile · input revision 2 · CC0 1.0
BeginInspectionWithCandidates7(before,after,afterCapacity,objects,currentInspectionId,actualLiveTargetSites,
actualNewTimingAllowed,actualAllInspectionPrerequisitesComplete,events) ==
BeginInspection7(before,after,currentInspectionId,actualLiveTargetSites,actualNewTimingAllowed,actualAllInspectionPrerequisitesComplete,events) /\
afterCapacity = OpenCandidateCapacity7(after,objects)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BeginInspection7, OpenCandidateCapacity7
BeginItemInspection7 · operator
reference-profile · input revision 2 · CC0 1.0
BeginItemInspection7(before,after,objects,actualItemInspectionAndNewTimingAllowed,allItemInspectionCostsPaid,
actualCostCheckpointAndReactionsDrained,events) ==
/\ before.step = "ProcedureCodefd91bef8bbd3" /\ ~before.active /\ ~before.beginMet /\ ~before.complete
/\ before.id \in Nat \ {0} /\ ItemInspectionTargetPresent7(before,objects)
/\ actualItemInspectionAndNewTimingAllowed /\ allItemInspectionCostsPaid /\ actualCostCheckpointAndReactionsDrained
/\ after = [before EXCEPT !.active = TRUE,!.beginMet = TRUE]
/\ events = {ItemInspectionBeginEvent7(before)}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ItemInspectionBeginEvent7, ItemInspectionTargetPresent7
CancelUnstartedItemInspection7 · operator
reference-profile · input revision 2 · CC0 1.0
CancelUnstartedItemInspection7(before,after,reason,actualInstructionWithoutItemInspectionCompleted,events) ==
/\ before.step = "ProcedureCodefd91bef8bbd3" /\ ~before.active /\ ~before.beginMet /\ ~before.complete
/\ actualInstructionWithoutItemInspectionCompleted
/\ reason \in {"Replaced","ItemInspectionCostDeclined","Prohibited","MissingTarget","Cancelled"}
/\ after = [before EXCEPT !.complete = TRUE,!.step = "Complete",!.completionReason = reason]
/\ events = {}Exact module download · Source bundle and reproduction instructions
CandidateCapacityValid7 · operator
reference-profile · input revision 2 · CC0 1.0
CandidateCapacityValid7(m,b,objects) ==
/\ m.siteInspectionId = b.id
/\ m.admittedRoots \subseteq InspectionRootCards7(b,objects)
/\ m.pendingRoots \subseteq InspectionRootCards7(b,objects)
/\ m.admittedRoots \cap (m.pendingRoots \cup m.deniedRoots) = {}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionRootCards7
CandidateInputsValid7 · operator
reference-profile · input revision 2 · CC0 1.0
CandidateInputsValid7(b,m,objects,deck) ==
CandidateCapacityValid7(m,b,objects) /\ (b.kind = "SchemaAtom129" => DeckOrderValid7(objects,deck))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CandidateCapacityValid7, DeckOrderValid7
CandidateViewValid7 · operator
reference-profile · input revision 2 · CC0 1.0
CandidateViewValid7(view) == view.roots \cap view.central = {}Exact module download · Source bundle and reproduction instructions
CentralQuotaAvailable7 · operator
reference-profile · input revision 2 · CC0 1.0
CentralQuotaAvailable7(b) == ~RandomLimitApplies7(b) \/ InspectionCentralChoices7(b) < b.randomLimitExact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionCentralChoices7, RandomLimitApplies7
ChooseCentralAInspectionCard7 · operator
reference-profile · input revision 2 · CC0 1.0
ChooseCentralAInspectionCard7(before,after,view,randomResult,sideAChoice,dedicatedNeuralNetApplies,actualRandomDrawValid) ==
/\ before.kind = "SchemaAtom082"
/\ LET object == IF dedicatedNeuralNetApplies THEN sideAChoice ELSE randomResult
IN RecordInspectionChoice7(before,after,object,"SchemaAtom033",view,
IF dedicatedNeuralNetApplies THEN "SideADirectedCentralA" ELSE "RandomCentralA",
dedicatedNeuralNetApplies \/ actualRandomDrawValid)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: object, RecordInspectionChoice7
ChooseSpecificInspectionCard7 · operator
reference-profile · input revision 2 · CC0 1.0
ChooseSpecificInspectionCard7(before,after,object,view) ==
/\ object \in InspectionPresentation7(before,view).specific
/\ RecordInspectionChoice7(before,after,object,IF object \in view.roots THEN "Root" ELSE "SchemaAtom033",view,"Specific",TRUE)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionPresentation7, RecordInspectionChoice7
CloseEndedInspectionBeginReaction7 · operator
reference-profile · input revision 2 · CC0 1.0
CloseEndedInspectionBeginReaction7(before,after,b) ==
/\ b.complete /\ b.beginMet /\ before.open /\ before.kind = "Reaction" /\ before.beginInspectionId = b.id
/\ after = [before EXCEPT !.open = FALSE,!.pending = {},!.priority = "NoValue",
!.lostPending = @ \cup before.pending]Exact module download · Source bundle and reproduction instructions
CloseEndedItemInspectionBeginReaction7 · operator
reference-profile · input revision 2 · CC0 1.0
CloseEndedItemInspectionBeginReaction7(before,after,a) ==
/\ a.complete /\ a.beginMet /\ before.open /\ before.kind = "Reaction"
/\ before.beginItemInspectionId = a.id
/\ after = [before EXCEPT !.open = FALSE,!.pending = {},!.priority = "NoValue",
!.lostPending = @ \cup before.pending]Exact module download · Source bundle and reproduction instructions
CompleteNormalInspection7 · operator
reference-profile · input revision 2 · CC0 1.0
CompleteNormalInspection7(before,after,actualPriorStepsAndNormalReactionsComplete,events) ==
/\ before.active /\ ~before.complete /\ before.step = "ProcedureCode8c612115d469" /\ before.beginMet
/\ ~before.selectionPending /\ before.currentItemInspectionId = 0 /\ actualPriorStepsAndNormalReactionsComplete
/\ EndInspection7(before,after,"Normal",TRUE,events)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EndInspection7
CompleteNormalItemInspection7 · operator
reference-profile · input revision 2 · CC0 1.0
CompleteNormalItemInspection7(before,after,objects,allStepThreeReactionsAndCheckpointComplete,events) ==
/\ StillItemInspectioning7(before,objects) /\ before.step = "ProcedureCode662478499367" /\ before.beginMet
/\ before.midDone /\ before.claimObjectiveDone /\ ~before.midResolving /\ ~before.claimObjectiveResolving
/\ allStepThreeReactionsAndCheckpointComplete
/\ EndItemInspection7(before,after,"Normal",TRUE,events)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EndItemInspection7, StillItemInspectioning7
DecideRootAdmissions7 · operator
reference-profile · input revision 2 · CC0 1.0
DecideRootAdmissions7(before,after,b,objects,accepted,actualCheckpointStep,normalEarlierStepsComplete) ==
/\ b.active /\ ~b.complete /\ before.siteInspectionId = b.id
/\ actualCheckpointStep = "ProcedureCode7f181ce21011" /\ normalEarlierStepsComplete
/\ accepted \subseteq before.pendingRoots \cap InspectionRootCards7(b,objects)
/\ after = [before EXCEPT
!.admittedRoots = (@ \cup (accepted \ before.deniedRoots)) \cap InspectionRootCards7(b,objects),
!.deniedRoots = @ \cup (before.pendingRoots \ accepted),
!.pendingRoots = {}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionRootCards7
DeckCandidate7 · operator
reference-profile · input revision 2 · CC0 1.0
DeckCandidate7(deck,excluded,exampleFamily058Off) ==
LET eligible == {i \in 1..Len(deck) : deck[i] \notin excluded}
IN IF eligible = {} THEN {}
ELSE {deck[CHOOSE i \in eligible : \A j \in eligible : IF exampleFamily058Off THEN i >= j ELSE i <= j]}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: eligible
DeckOrderValid7 · operator
reference-profile · input revision 2 · CC0 1.0
DeckOrderValid7(objects,deck) ==
SubIds6(deck) = SideAZoneCards7(objects,"SideADeck") /\ Len(deck) = Cardinality(SubIds6(deck))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SideAZoneCards7, SubIds6
DeclineMidItemInspection7 · operator
reference-profile · input revision 2 · CC0 1.0
DeclineMidItemInspection7(before,after,objects,options,mustRetireIfAble,exampleFamily034Applies,beginReactionsAndCheckpointDrained) ==
/\ StillItemInspectioning7(before,objects) /\ before.step = "ProcedureCode1dd0e8f05be2"
/\ ~before.midUsed /\ ~before.midDone /\ ~before.midResolving /\ beginReactionsAndCheckpointDrained
/\ MidItemInspectionChoiceAllowed7("Decline",options,mustRetireIfAble,exampleFamily034Applies)
/\ after = [before EXCEPT !.midDone = TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MidItemInspectionChoiceAllowed7, StillItemInspectioning7
DelayInspection7 · operator
reference-profile · input revision 2 · CC0 1.0
DelayInspection7(before,after,conditionId,usedConditionIds,currentInspectionId,request,actualInspectionWouldBegin) ==
/\ currentInspectionId \in Nat \ {0} /\ actualInspectionWouldBegin
/\ conditionId \in Nat \ {0} /\ conditionId \notin usedConditionIds /\ conditionId \notin DOMAIN before
/\ after = [id \in DOMAIN before \cup {conditionId} |->
IF id = conditionId THEN [controller |-> "SideB",triggerInspectionId |-> currentInspectionId,request |-> request,pending |-> FALSE]
ELSE before[id]]Exact module download · Source bundle and reproduction instructions
DeriveCandidateView7 · operator
reference-profile · input revision 2 · CC0 1.0
DeriveCandidateView7(b,m,objects,deck,prohibited,exampleFamily058Off,view) ==
CandidateInputsValid7(b,m,objects,deck) /\
view = InspectionCandidatesDirection7(b,m,objects,deck,prohibited,exampleFamily058Off)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CandidateInputsValid7, InspectionCandidatesDirection7
DrainEndedInspectionInstruction7 · operator
reference-profile · input revision 2 · CC0 1.0
DrainEndedInspectionInstruction7(before,after,actualSelectedInstructionAndAllChildrenComplete) ==
/\ before.complete /\ ~before.returned /\ (before.selectionPending \/ before.currentItemInspectionId # 0)
/\ actualSelectedInstructionAndAllChildrenComplete
/\ after = [before EXCEPT !.selectionPending = FALSE,!.selectedObject = 0,
!.selectedSource = "NoValue",!.currentItemInspectionId = 0]Exact module download · Source bundle and reproduction instructions
EndInspection7 · operator
reference-profile · input revision 2 · CC0 1.0
EndInspection7(before,after,reason,actualEndAuthorized,events) ==
/\ before.active /\ ~before.complete /\ actualEndAuthorized /\ reason \in {"Normal","EndTraversal"}
/\ after = [before EXCEPT !.active = FALSE,!.complete = TRUE,!.step = "Complete",!.completionReason = reason]
/\ events = {InspectionEndEvent7(before)}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionEndEvent7
EndItemInspection7 · operator
reference-profile · input revision 2 · CC0 1.0
EndItemInspection7(before,after,reason,actualEndAuthorized,events) ==
/\ before.active /\ ~before.complete /\ actualEndAuthorized /\ reason \in {"Moved","EndTraversal","Normal"}
/\ after = [before EXCEPT !.active = FALSE,!.complete = TRUE,!.step = "Complete",!.completionReason = reason]
/\ events = {ItemInspectionEndEvent7(before)}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ItemInspectionEndEvent7
ExampleFamily034Reveal7 · operator
reference-profile · input revision 2 · CC0 1.0
ExampleFamily034Reveal7(beforeReveals,afterReveals,a,objects,abilityId,actualTriggeredInstanceResolving,events) ==
/\ StillItemInspectioning7(a,objects) /\ actualTriggeredInstanceResolving /\ abilityId \in Nat \ {0}
/\ afterReveals = beforeReveals \cup
{[object |-> a.object,loc |-> a.originLoc,viewers |-> SetupPlayers,ability |-> abilityId]}
/\ events = {[tag |-> "Reveal",object |-> a.object,ability |-> abilityId]}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: StillItemInspectioning7, SetupPlayers
ExampleFamily034Trigger7 · operator
reference-profile · input revision 2 · CC0 1.0
ExampleFamily034Trigger7(actualAbilityActive,hasRetireCost,earlierCostItemInspectionesThisTurn) ==
actualAbilityActive /\ hasRetireCost /\ earlierCostItemInspectionesThisTurn = 0Exact module download · Source bundle and reproduction instructions
FinishInspectionItemInspectionInstruction7 · operator
reference-profile · input revision 2 · CC0 1.0
FinishInspectionItemInspectionInstruction7(before,after,actualChosenInstructionAndItemInspectionReturnComplete) ==
/\ before.active /\ ~before.complete /\ before.step = "ProcedureCodee35e7c8fc57b" /\ before.selectionPending
/\ actualChosenInstructionAndItemInspectionReturnComplete
/\ after = [before EXCEPT !.selectionPending = FALSE,!.selectedObject = 0,
!.selectedSource = "NoValue",!.currentItemInspectionId = 0]Exact module download · Source bundle and reproduction instructions
FinishItemInspectionClaimObjective7 · operator
reference-profile · input revision 2 · CC0 1.0
FinishItemInspectionClaimObjective7(before,after,actualClaimObjectiveProcedureAndReactionsComplete) ==
/\ before.claimObjectiveResolving /\ actualClaimObjectiveProcedureAndReactionsComplete
/\ after = [before EXCEPT !.claimObjectiveResolving = FALSE,!.claimObjectiveDone = TRUE]Exact module download · Source bundle and reproduction instructions
FinishMidItemInspection7 · operator
reference-profile · input revision 2 · CC0 1.0
FinishMidItemInspection7(before,after,actualAbilityAndReactionsComplete) ==
/\ before.midResolving /\ actualAbilityAndReactionsComplete
/\ after = [before EXCEPT !.midResolving = FALSE,!.midDone = TRUE]Exact module download · Source bundle and reproduction instructions
FreezeInspectionLimit7 · operator
reference-profile · input revision 2 · CC0 1.0
FreezeInspectionLimit7(before,after,allBeginningModifiersAndReactionsComplete) ==
/\ before.active /\ ~before.complete /\ before.step = "ProcedureCode91f3ee0da236" /\ ~before.limitSet
/\ RandomLimitApplies7(before) /\ before.randomLimit \in Nat /\ allBeginningModifiersAndReactionsComplete
/\ after = [before EXCEPT !.limitSet = TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: RandomLimitApplies7
InformationSiftingNext7 · operator
reference-profile · input revision 2 · CC0 1.0
InformationSiftingNext7(beforeIndex,afterIndex,instructions,actualPreviousInstructionAndChildItemInspectionComplete,
normalInstructionCheckpointAndReactionsDrained) ==
/\ beforeIndex \in 1..Len(instructions) /\ actualPreviousInstructionAndChildItemInspectionComplete
/\ normalInstructionCheckpointAndReactionsDrained /\ afterIndex = beforeIndex+1Exact module download · Source bundle and reproduction instructions
InformationSiftingOrder7 · operator
reference-profile · input revision 2 · CC0 1.0
InformationSiftingOrder7(targets,order) ==
SubIds6(order) = targets /\ Cardinality(targets) = Len(order)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SubIds6
InformationSiftingPlan7 · operator
reference-profile · input revision 2 · CC0 1.0
InformationSiftingPlan7(targets,order,instructions,usedInstructionIds) ==
/\ InformationSiftingOrder7(targets,order) /\ Len(instructions) = Len(order)
/\ Cardinality({instructions[i].id : i \in 1..Len(instructions)}) = Len(instructions)
/\ \A i \in 1..Len(instructions) :
instructions[i].id \in Nat \ {0} /\ instructions[i].id \notin usedInstructionIds /\
instructions[i].kind = "ItemInspection" /\ instructions[i].target = order[i]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InformationSiftingOrder7
InspectionBeginEvent7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionBeginEvent7(b) == [tag |-> "InspectionTargetSite",siteInspectionId |-> b.id,targetSite |-> b.targetSite,traversalId |-> b.traversalId]Exact module download · Source bundle and reproduction instructions
InspectionCandidates7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionCandidates7(b,m,objects,deck,prohibited) ==
InspectionCandidatesDirection7(b,m,objects,deck,prohibited,FALSE)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionCandidatesDirection7
InspectionCandidatesDirection7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionCandidatesDirection7(b,m,objects,deck,prohibited,exampleFamily058Off) ==
LET excluded == prohibited \cup InspectionChoiceObjects7(b) \cup m.deniedRoots
roots == (InspectionRootCards7(b,objects) \cap m.admittedRoots) \ (excluded \cup m.deniedRoots \cup m.pendingRoots)
central == IF ~CentralQuotaAvailable7(b) THEN {}
ELSE CASE b.kind = "SchemaAtom082" -> SideAZoneCards7(objects,"SideAHand") \ excluded
[] b.kind = "SchemaAtom018" -> SideAZoneCards7(objects,"SideADiscard") \ excluded
[] b.kind = "SchemaAtom129" -> DeckCandidate7(deck,excluded,exampleFamily058Off)
[] OTHER -> {}
IN IF b.active /\ ~b.complete THEN [roots |-> roots,central |-> central]
ELSE [roots |-> {},central |-> {}]Exact module download · Source bundle and reproduction instructions
InspectionCentralChoices7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionCentralChoices7(b) == Cardinality({i \in 1..Len(b.choices) : b.choices[i].source = "SchemaAtom033"})Exact module download · Source bundle and reproduction instructions
InspectionChoiceObjects7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionChoiceObjects7(b) == {b.choices[i].object : i \in 1..Len(b.choices)}Exact module download · Source bundle and reproduction instructions
InspectionEndEvent7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionEndEvent7(b) == [tag |-> "InspectionEnds",siteInspectionId |-> b.id,targetSite |-> b.targetSite]Exact module download · Source bundle and reproduction instructions
InspectionItemInspectionCaller7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionItemInspectionCaller7(b) == <<"InspectionItemInspection",b.id>>Exact module download · Source bundle and reproduction instructions
InspectionObjectVisible7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionObjectVisible7(b,history,objects,object) ==
b.active /\ ~b.complete /\ object \in DOMAIN objects /\ object \in InspectionSeenObjects7(b,history)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionSeenObjects7
InspectionPolicy7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionPolicy7(mode,targetCount) ==
[randomLimitEnabled |-> mode # "CounterExampleFamily064",chosenCapEnabled |-> mode = "CounterExampleFamily064",chosenCap |-> targetCount]Exact module download · Source bundle and reproduction instructions
InspectionPolicyComplete7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionPolicyComplete7(policy,chosenCount,candidatesEmpty) ==
candidatesEmpty \/ (policy.chosenCapEnabled /\ chosenCount >= policy.chosenCap)Exact module download · Source bundle and reproduction instructions
InspectionPresentation7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionPresentation7(b,view) ==
[specific |-> view.roots \cup (IF b.kind = "SchemaAtom082" THEN {} ELSE view.central),
randomCentralAOffered |-> b.kind = "SchemaAtom082" /\ view.central # {}]Exact module download · Source bundle and reproduction instructions
InspectionProcedureValid7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionProcedureValid7(b) ==
/\ b.id \in Nat \ {0} /\ b.kind = InspectionTargetSiteCategory7(b.targetSite)
/\ b.active => b.beginMet /\ ~b.complete /\ b.step \in InspectionSteps7
/\ b.complete => ~b.active /\ b.step = "Complete"
/\ (~b.active /\ ~b.complete) => ~b.beginMet /\ b.step = "ProcedureCode839b301bad95"
/\ b.returned => b.complete /\ ~b.selectionPending /\ b.currentItemInspectionId = 0
/\ b.randomLimit \in Nat /\ b.usedItemInspectionIds \subseteq Nat \ {0}
/\ Cardinality(InspectionChoiceObjects7(b)) = Len(b.choices)
/\ IF b.selectionPending THEN b.selectedObject \in InspectionChoiceObjects7(b) /\ b.selectedObject # 0
ELSE b.selectedObject = 0 /\ b.selectedSource = "NoValue" /\ b.currentItemInspectionId = 0Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionChoiceObjects7, InspectionSteps7, InspectionTargetSiteCategory7
InspectionRootCards7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionRootCards7(b,objects) ==
{id \in SideAZoneCards7(objects,"Play") :
objects[id].area = "Root" /\ objects[id].targetSite = b.targetSite /\ objects[id].host = 0}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SideAZoneCards7
InspectionSeenObjects7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionSeenObjects7(b,history) == {history[id].object : id \in ActualItemInspectionesInInspection7(history,b.id)}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualItemInspectionesInInspection7
InspectionSelectionReady7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionSelectionReady7(b) ==
b.active /\ ~b.complete /\ b.step = "ProcedureCode1404a82ab3ee" /\ ~b.selectionPending /\ b.currentItemInspectionId = 0 /\
(RandomLimitApplies7(b) => b.limitSet) /\
(b.kind = "SchemaAtom018" => b.archivesPrepared) /\ SelectionWithinPolicy7(b.policy,Len(b.choices))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: RandomLimitApplies7, SelectionWithinPolicy7
InspectionStepInfo7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionStepInfo7(step) ==
[kind |-> CASE step = "ProcedureCode839b301bad95" -> "BeginInspection" [] step = "ProcedureCodeb6067693902e" -> "PrepareDiscardSite"
[] step = "ProcedureCode91f3ee0da236" -> "SetLimit" [] step = "ProcedureCode1404a82ab3ee" -> "Choose"
[] step = "ProcedureCodee35e7c8fc57b" -> "ItemInspection" [] step = "ProcedureCodeb1fbc90c4ab0" -> "Repeat"
[] step = "ProcedureCode8c612115d469" -> "CompleteInspection" [] OTHER -> "Invalid",
paidWindow |-> FALSE,objectivePlacementWindow |-> FALSE]Exact module download · Source bundle and reproduction instructions
InspectionSteps7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionSteps7 == {"ProcedureCode839b301bad95","ProcedureCodeb6067693902e","ProcedureCode91f3ee0da236","ProcedureCode1404a82ab3ee","ProcedureCodee35e7c8fc57b","ProcedureCodeb1fbc90c4ab0","ProcedureCode8c612115d469"}Exact module download · Source bundle and reproduction instructions
InspectionTargetSiteCategory7 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionTargetSiteCategory7(targetSite) == IF targetSite \in CentralTargetSites4 THEN targetSite ELSE "SchemaAtom132"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CentralTargetSites4
ItemInspectionAbilityActive7 · operator
reference-profile · input revision 2 · CC0 1.0
ItemInspectionAbilityActive7(normallyActive,ability) ==
normallyActive \/ (ability.kind = "Conditional" /\ ability.trigger = "SourceItemInspectioned")Exact module download · Source bundle and reproduction instructions
ItemInspectionAbilityMatches7 · operator
reference-profile · input revision 2 · CC0 1.0
ItemInspectionAbilityMatches7(ability,event) ==
ability.kind = "Conditional" /\ ability.trigger = "SourceItemInspectioned" /\ event.tag = "ItemInspectionCard" /\ ability.source = event.objectExact module download · Source bundle and reproduction instructions
ItemInspectionBeginEvent7 · operator
reference-profile · input revision 2 · CC0 1.0
ItemInspectionBeginEvent7(a) ==
[tag |-> "ItemInspectionCard",itemInspectionId |-> a.id,object |-> a.object,traversalId |-> a.traversalId,siteInspectionId |-> a.siteInspectionId]Exact module download · Source bundle and reproduction instructions
ItemInspectionClaimObjectiveDisposition7 · operator
reference-profile · input revision 2 · CC0 1.0
ItemInspectionClaimObjectiveDisposition7(card,hasAdditionalCost,acceptsAdditionalCost,allAdditionalCostsPayable,actualClaimObjectiveAllowed) ==
IF card.kind # "Objective" THEN "NotObjective"
ELSE IF hasAdditionalCost /\ ~acceptsAdditionalCost THEN "DeclineAdditional"
ELSE IF (hasAdditionalCost /\ ~allAdditionalCostsPayable) \/ ~actualClaimObjectiveAllowed THEN "Unable"
ELSE "ClaimObjective"Exact module download · Source bundle and reproduction instructions
ItemInspectionEndEvent7 · operator
reference-profile · input revision 2 · CC0 1.0
ItemInspectionEndEvent7(a) == [tag |-> "ItemInspectionEnds",itemInspectionId |-> a.id,object |-> a.object]Exact module download · Source bundle and reproduction instructions
ItemInspectionFrameValid7 · operator
reference-profile · input revision 2 · CC0 1.0
ItemInspectionFrameValid7(a) ==
/\ a.id \in Nat \ {0} /\ a.encounterAncestors \subseteq Nat \ {0}
/\ a.active \in BOOLEAN /\ a.complete \in BOOLEAN /\ a.beginMet \in BOOLEAN
/\ a.active => a.beginMet /\ ~a.complete
/\ a.complete => ~a.active
/\ a.midResolving => a.midUsed /\ ~a.midDone
/\ a.claimObjectiveResolving => ~a.claimObjectiveDoneExact module download · Source bundle and reproduction instructions
ItemInspectionHistoryCostCount7 · operator
reference-profile · input revision 2 · CC0 1.0
ItemInspectionHistoryCostCount7(history,turnId) ==
Cardinality({id \in DOMAIN history : history[id].turnId = turnId /\ history[id].hadRetireCost})Exact module download · Source bundle and reproduction instructions
ItemInspectionLookGrant7 · operator
reference-profile · input revision 2 · CC0 1.0
ItemInspectionLookGrant7(a,objects,player) ==
StillItemInspectioning7(a,objects) /\ (player = "SideB" \/ (player = "SideA" /\ a.sourceZone # "SideADeck"))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: StillItemInspectioning7
ItemInspectionMidOptions7 · operator
reference-profile · input revision 2 · CC0 1.0
ItemInspectionMidOptions7(card,cardOptions,trashPart,basicPayable,basicAllowed) ==
{o \in cardOptions \cup {BasicRetireOption7(card,trashPart,basicPayable,basicAllowed)} :
o.timing = "MidItemInspection" /\ (card.zone # "SideADiscard" \/ ~o.trashesItemInspectioned)}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BasicRetireOption7
ItemInspectionMovementOutcome7 · operator
reference-profile · input revision 2 · CC0 1.0
ItemInspectionMovementOutcome7(before,after,objectsAfter,actualMovementResolved,events) ==
/\ actualMovementResolved
/\ IF before.active /\ ~ItemInspectionTargetPresent7(before,objectsAfter)
THEN EndItemInspection7(before,after,"Moved",TRUE,events)
ELSE after = before /\ events = {}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EndItemInspection7, ItemInspectionTargetPresent7
ItemInspectionProcedureValid7 · operator
reference-profile · input revision 2 · CC0 1.0
ItemInspectionProcedureValid7(a,objects) ==
/\ ItemInspectionFrameValid7(a)
/\ IF a.complete THEN a.step = "Complete"
ELSE IF a.active THEN a.step \in ItemInspectionSteps7 /\ ItemInspectionTargetPresent7(a,objects)
ELSE a.step = "ProcedureCodefd91bef8bbd3" /\ ~a.beginMetExact module download · Source bundle and reproduction instructions
Resolved project definitions: ItemInspectionFrameValid7, ItemInspectionSteps7, ItemInspectionTargetPresent7
ItemInspectionStepInfo7 · operator
reference-profile · input revision 2 · CC0 1.0
ItemInspectionStepInfo7(step) ==
[kind |-> CASE step = "ProcedureCodefd91bef8bbd3" -> "ItemInspectionCard"
[] step = "ProcedureCode1dd0e8f05be2" -> "MidItemInspection"
[] step = "ProcedureCode546db7cc4546" -> "ClaimObjective"
[] step = "ProcedureCode662478499367" -> "CompleteItemInspection"
[] OTHER -> "Invalid",
paidWindow |-> FALSE,objectivePlacementWindow |-> FALSE]Exact module download · Source bundle and reproduction instructions
ItemInspectionSteps7 · operator
reference-profile · input revision 2 · CC0 1.0
ItemInspectionSteps7 == {"ProcedureCodefd91bef8bbd3","ProcedureCode1dd0e8f05be2","ProcedureCode546db7cc4546","ProcedureCode662478499367"}Exact module download · Source bundle and reproduction instructions
ItemInspectionTargetPresent7 · operator
reference-profile · input revision 2 · CC0 1.0
ItemInspectionTargetPresent7(a,objects) ==
IF a.object \notin DOMAIN objects THEN FALSE
ELSE objects[a.object].form = "Card" /\ objects[a.object].side = "SideA" /\ objects[a.object].loc = a.originLocExact module download · Source bundle and reproduction instructions
ItemInspectionViewers7 · operator
reference-profile · input revision 2 · CC0 1.0
ItemInspectionViewers7(a,objects,otherLawfulViewers,actualRevealToBoth) ==
otherLawfulViewers \cup
{p \in SetupPlayers : ItemInspectionLookGrant7(a,objects,p)} \cup
(IF StillItemInspectioning7(a,objects) /\ actualRevealToBoth THEN SetupPlayers ELSE {})Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ItemInspectionLookGrant7, StillItemInspectioning7, SetupPlayers
MarkDelayedInspectiones7 · operator
reference-profile · input revision 2 · CC0 1.0
MarkDelayedInspectiones7(before,after,actualInspectionEndEvent) ==
/\ actualInspectionEndEvent.tag = "InspectionEnds"
/\ after = [id \in DOMAIN before |-> IF before[id].triggerInspectionId = actualInspectionEndEvent.siteInspectionId
THEN [before[id] EXCEPT !.pending = TRUE] ELSE before[id]]Exact module download · Source bundle and reproduction instructions
MidItemInspectionChoiceAllowed7 · operator
reference-profile · input revision 2 · CC0 1.0
MidItemInspectionChoiceAllowed7(choice,options,mustRetireIfAble,exampleFamily034Applies) ==
LET payable == PayableMidOptions7(options)
basicPayable == \E o \in payable : o.id = "BasicRetire"
trashPayable == \E o \in payable : o.trashesItemInspectioned
IN /\ choice = "Decline" \/ \E o \in payable : o.id = choice
/\ (exampleFamily034Applies /\ basicPayable) => choice = "BasicRetire"
/\ (mustRetireIfAble /\ trashPayable) =>
choice # "Decline" /\ \E o \in payable : o.id = choice /\ o.trashesItemInspectionedExact module download · Source bundle and reproduction instructions
Resolved project definitions: basicPayable, payable, trashPayable
MidOption7 · operator
reference-profile · input revision 2 · CC0 1.0
MidOption7(id,trashesItemInspectioned,canPay,legal) ==
[id |-> id,timing |-> "MidItemInspection",trashesItemInspectioned |-> trashesItemInspectioned,canPay |-> canPay,legal |-> legal]Exact module download · Source bundle and reproduction instructions
MidOptionsValid7 · operator
reference-profile · input revision 2 · CC0 1.0
MidOptionsValid7(cardOptions) ==
/\ \A o \in cardOptions : o.id \notin {"BasicRetire","Decline"}
/\ Cardinality({o.id : o \in cardOptions}) = Cardinality(cardOptions)Exact module download · Source bundle and reproduction instructions
NextInspectionStep7 · operator
reference-profile · input revision 2 · CC0 1.0
NextInspectionStep7(step) ==
CASE step = "ProcedureCode839b301bad95" -> "ProcedureCodeb6067693902e" [] step = "ProcedureCodeb6067693902e" -> "ProcedureCode91f3ee0da236"
[] step = "ProcedureCode91f3ee0da236" -> "ProcedureCode1404a82ab3ee" [] step = "ProcedureCode1404a82ab3ee" -> "ProcedureCodee35e7c8fc57b"
[] step = "ProcedureCodee35e7c8fc57b" -> "ProcedureCodeb1fbc90c4ab0" [] step = "ProcedureCodeb1fbc90c4ab0" -> "ProcedureCode1404a82ab3ee"
[] step = "ProcedureCode8c612115d469" -> "Complete" [] OTHER -> "NoValue"Exact module download · Source bundle and reproduction instructions
NextItemInspectionStep7 · operator
reference-profile · input revision 2 · CC0 1.0
NextItemInspectionStep7(step) ==
CASE step = "ProcedureCodefd91bef8bbd3" -> "ProcedureCode1dd0e8f05be2" [] step = "ProcedureCode1dd0e8f05be2" -> "ProcedureCode546db7cc4546"
[] step = "ProcedureCode546db7cc4546" -> "ProcedureCode662478499367" [] step = "ProcedureCode662478499367" -> "Complete" [] OTHER -> "NoValue"Exact module download · Source bundle and reproduction instructions
ObserveRootEntries7 · operator
reference-profile · input revision 2 · CC0 1.0
ObserveRootEntries7(before,after,b,objectsAfter,actualRootEntriesDuringInspection) ==
/\ b.active /\ ~b.complete /\ before.siteInspectionId = b.id
/\ LET roots == InspectionRootCards7(b,objectsAfter)
arrivals == actualRootEntriesDuringInspection \cap roots
IN after = [before EXCEPT
!.admittedRoots = (@ \cap roots) \ arrivals,
!.pendingRoots = (@ \cup arrivals) \cap roots]Exact module download · Source bundle and reproduction instructions
OneCardTraversalProhibition7 · operator
reference-profile · input revision 2 · CC0 1.0
OneCardTraversalProhibition7(b,history,liveObjects,actualRestrictionApplies,exceptions) ==
IF actualRestrictionApplies /\ ActualItemInspectionesInTraversal7(history,b.traversalId) # {}
THEN liveObjects \ exceptions ELSE {}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualItemInspectionesInTraversal7
OpenCandidateCapacity7 · operator
reference-profile · input revision 2 · CC0 1.0
OpenCandidateCapacity7(b,objects) ==
[siteInspectionId |-> b.id,admittedRoots |-> InspectionRootCards7(b,objects),pendingRoots |-> {},deniedRoots |-> {}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionRootCards7
OpenInspection7 · operator
reference-profile · input revision 2 · CC0 1.0
OpenInspection7(id,targetSite,kind,traversalId,origin,caller,encounterAncestors,policy) ==
[id |-> id,targetSite |-> targetSite,kind |-> kind,traversalId |-> traversalId,origin |-> origin,caller |-> caller,
encounterAncestors |-> encounterAncestors,policy |-> policy,step |-> "ProcedureCode839b301bad95",
active |-> FALSE,beginMet |-> FALSE,complete |-> FALSE,returned |-> FALSE,
archivesPrepared |-> FALSE,randomLimit |-> 1,limitSet |-> FALSE,
choices |-> <<>>,selectionPending |-> FALSE,selectedObject |-> 0,selectedSource |-> "NoValue",
currentItemInspectionId |-> 0,usedItemInspectionIds |-> {},completionReason |-> "NoValue"]Exact module download · Source bundle and reproduction instructions
OpenItemInspection7 · operator
reference-profile · input revision 2 · CC0 1.0
OpenItemInspection7(id,object,card,traversalId,siteInspectionId,caller,encounterAncestors) ==
[id |-> id,object |-> object,originLoc |-> card.loc,sourceZone |-> card.zone,
traversalId |-> traversalId,siteInspectionId |-> siteInspectionId,caller |-> caller,encounterAncestors |-> encounterAncestors,
step |-> "ProcedureCodefd91bef8bbd3",active |-> FALSE,beginMet |-> FALSE,complete |-> FALSE,returned |-> FALSE,
midUsed |-> FALSE,midDone |-> FALSE,midResolving |-> FALSE,
claimObjectiveDone |-> FALSE,claimObjectiveResolving |-> FALSE,completionReason |-> "NoValue"]Exact module download · Source bundle and reproduction instructions
PayableMidOptions7 · operator
reference-profile · input revision 2 · CC0 1.0
PayableMidOptions7(options) == {o \in options : o.legal /\ o.canPay}Exact module download · Source bundle and reproduction instructions
PrepareDiscardSite7 · operator
reference-profile · input revision 2 · CC0 1.0
PrepareDiscardSite7(before,after,objects,afterObjects) ==
/\ before.active /\ ~before.complete /\ before.kind = "SchemaAtom018" /\ before.step = "ProcedureCodeb6067693902e" /\ ~before.archivesPrepared
/\ after = [before EXCEPT !.archivesPrepared = TRUE]
/\ afterObjects = [id \in DOMAIN objects |->
IF objects[id].form = "Card" /\ objects[id].side = "SideA" /\ objects[id].zone = "SideADiscard"
THEN [objects[id] EXCEPT !.face = "Up"] ELSE objects[id]]Exact module download · Source bundle and reproduction instructions
RandomLimitApplies7 · operator
reference-profile · input revision 2 · CC0 1.0
RandomLimitApplies7(b) == b.kind \in {"SchemaAtom082","SchemaAtom129"} /\ b.policy.randomLimitEnabledExact module download · Source bundle and reproduction instructions
RecordActualItemInspection7 · operator
reference-profile · input revision 2 · CC0 1.0
RecordActualItemInspection7(beforeHistory,afterHistory,a,turnId,hadRetireCostAtStart,actualItemInspectionBeginEvent) ==
/\ a.beginMet /\ a.id \in Nat \ {0} /\ a.id \notin DOMAIN beforeHistory /\ turnId \in Nat
/\ actualItemInspectionBeginEvent = ItemInspectionBeginEvent7(a)
/\ afterHistory = [id \in DOMAIN beforeHistory \cup {a.id} |->
IF id = a.id THEN [object |-> a.object,traversalId |-> a.traversalId,siteInspectionId |-> a.siteInspectionId,
turnId |-> turnId,hadRetireCost |-> hadRetireCostAtStart]
ELSE beforeHistory[id]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ItemInspectionBeginEvent7
RecordInspectionChoice7 · operator
reference-profile · input revision 2 · CC0 1.0
RecordInspectionChoice7(before,after,object,source,view,method,actualSelectionAuthority) ==
/\ InspectionSelectionReady7(before) /\ CandidateViewValid7(view) /\ actualSelectionAuthority
/\ object # 0 /\ object \notin InspectionChoiceObjects7(before)
/\ source \in {"Root","SchemaAtom033"}
/\ object \in (IF source = "Root" THEN view.roots ELSE view.central)
/\ (source = "SchemaAtom033" /\ RandomLimitApplies7(before)) => InspectionCentralChoices7(before) < before.randomLimit
/\ IF source = "SchemaAtom033" /\ before.kind = "SchemaAtom082" THEN method \in {"RandomCentralA","SideADirectedCentralA"} ELSE method = "Specific"
/\ after = [before EXCEPT !.choices = Append(@,[object |-> object,source |-> source,chooser |-> "SideB"]),
!.selectionPending = TRUE,!.selectedObject = object,!.selectedSource = source]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CandidateViewValid7, InspectionCentralChoices7, InspectionChoiceObjects7, InspectionSelectionReady7, RandomLimitApplies7
ResolveItemInspectionClaimObjective7 · operator
reference-profile · input revision 2 · CC0 1.0
ResolveItemInspectionClaimObjective7(before,after,objects,hasAdditionalCost,acceptsAdditionalCost,
allAdditionalCostsPayable,actualClaimObjectiveAllowed,allClaimObjectiveCostsPaid,actualCostCheckpointDrained) ==
/\ StillItemInspectioning7(before,objects) /\ before.step = "ProcedureCode546db7cc4546"
/\ before.midDone /\ ~before.midResolving /\ ~before.claimObjectiveResolving /\ ~before.claimObjectiveDone
/\ LET result == ItemInspectionClaimObjectiveDisposition7(objects[before.object],hasAdditionalCost,acceptsAdditionalCost,
allAdditionalCostsPayable,actualClaimObjectiveAllowed)
IN IF result = "ClaimObjective" THEN
/\ allClaimObjectiveCostsPaid /\ (hasAdditionalCost => actualCostCheckpointDrained)
/\ after = [before EXCEPT !.claimObjectiveResolving = TRUE]
ELSE after = [before EXCEPT !.claimObjectiveDone = TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: result, StillItemInspectioning7
ReturnInspectionToCaller7 · operator
reference-profile · input revision 2 · CC0 1.0
ReturnInspectionToCaller7(before,after,actualInspectionEndWindowsAndCheckpointComplete,caller) ==
/\ before.complete /\ ~before.returned /\ ~before.selectionPending /\ before.currentItemInspectionId = 0
/\ actualInspectionEndWindowsAndCheckpointComplete /\ caller = before.caller
/\ after = [before EXCEPT !.returned = TRUE]Exact module download · Source bundle and reproduction instructions
ReturnItemInspectionToCaller7 · operator
reference-profile · input revision 2 · CC0 1.0
ReturnItemInspectionToCaller7(before,after,actualItemInspectionEndWindowsAndCheckpointComplete,caller) ==
/\ before.complete /\ ~before.returned /\ ~before.midResolving /\ ~before.claimObjectiveResolving
/\ actualItemInspectionEndWindowsAndCheckpointComplete /\ caller = before.caller
/\ after = [before EXCEPT !.returned = TRUE]Exact module download · Source bundle and reproduction instructions
SelectionWithinPolicy7 · operator
reference-profile · input revision 2 · CC0 1.0
SelectionWithinPolicy7(policy,chosenCount) ==
chosenCount \in Nat /\ (~policy.chosenCapEnabled \/ chosenCount < policy.chosenCap)Exact module download · Source bundle and reproduction instructions
SideAZoneCards7 · operator
reference-profile · input revision 2 · CC0 1.0
SideAZoneCards7(objects,zone) ==
{id \in DOMAIN objects : objects[id].form = "Card" /\ objects[id].side = "SideA" /\ objects[id].zone = zone}Exact module download · Source bundle and reproduction instructions
SkipInspectionSelection7 · operator
reference-profile · input revision 2 · CC0 1.0
SkipInspectionSelection7(before,after,m,objects,deck,prohibited,exampleFamily058Off,actualReevaluationAndCheckpointComplete) ==
/\ before.active /\ ~before.complete /\ before.step = "ProcedureCode1404a82ab3ee"
/\ ~before.selectionPending /\ before.currentItemInspectionId = 0
/\ (RandomLimitApplies7(before) => before.limitSet)
/\ (before.kind = "SchemaAtom018" => before.archivesPrepared)
/\ CandidateInputsValid7(before,m,objects,deck) /\ actualReevaluationAndCheckpointComplete
/\ LET view == InspectionCandidatesDirection7(before,m,objects,deck,prohibited,exampleFamily058Off)
IN InspectionPolicyComplete7(before.policy,Len(before.choices),view.roots \cup view.central = {})
/\ after = [before EXCEPT !.step = "ProcedureCode8c612115d469"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: view, CandidateInputsValid7, InspectionPolicyComplete7, RandomLimitApplies7
StillItemInspectioning7 · operator
reference-profile · input revision 2 · CC0 1.0
StillItemInspectioning7(a,objects) == a.active /\ ~a.complete /\ ItemInspectionTargetPresent7(a,objects)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ItemInspectionTargetPresent7
TakeDelayedInspection7 · operator
reference-profile · input revision 2 · CC0 1.0
TakeDelayedInspection7(before,after,conditionId,currentInspectionId,actualSideBMayResolve,actualNewTimingAllowed,outcome) ==
/\ conditionId \in DOMAIN before /\ before[conditionId].pending /\ before[conditionId].controller = "SideB"
/\ currentInspectionId = 0 /\ actualSideBMayResolve
/\ after = [id \in DOMAIN before \ {conditionId} |-> before[id]]
/\ outcome = [perform |-> actualNewTimingAllowed,
request |-> [before[conditionId].request EXCEPT !.caller = <<"DelayedInspection",conditionId>>]]Exact module download · Source bundle and reproduction instructions
UseMidItemInspection7 · operator
reference-profile · input revision 2 · CC0 1.0
UseMidItemInspection7(before,after,objects,option,options,mustRetireIfAble,exampleFamily034Applies,
actualAllCostsPaid,beginReactionsAndCheckpointDrained) ==
/\ StillItemInspectioning7(before,objects) /\ before.step = "ProcedureCode1dd0e8f05be2"
/\ ~before.midUsed /\ ~before.midDone /\ ~before.midResolving
/\ beginReactionsAndCheckpointDrained /\ actualAllCostsPaid
/\ option \in PayableMidOptions7(options)
/\ option.timing = "MidItemInspection"
/\ objects[before.object].zone # "SideADiscard" \/ ~option.trashesItemInspectioned
/\ MidItemInspectionChoiceAllowed7(option.id,options,mustRetireIfAble,exampleFamily034Applies)
/\ after = [before EXCEPT !.midUsed = TRUE,!.midResolving = TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MidItemInspectionChoiceAllowed7, PayableMidOptions7, StillItemInspectioning7