InspectionTimingMC¶
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.
This model/fact module also contains 86 local fixture helpers outside the selected contract inventory. Their complete executable text remains in the exact module download and owning definition bodies. Listed dependencies include paths through those helpers. All selected contracts and frozen nested helpers retain their own entries.
ActualInspectionDestinationsT11 · operator
reference-profile · input revision 2 · CC0 1.0
ActualInspectionDestinationsT11(b,completed,drained) ==
LET objects==InspectionObjectsT11("SchemaAtom082",1,0) m==OpenCandidateCapacity7(b,objects)
done==[b EXCEPT !.active=FALSE,!.complete=TRUE,!.step="Complete",!.completionReason="Normal"] returned==[done EXCEPT !.returned=TRUE]
IN {InspectionDestinationT11(g) : g \in {a \in InspectionCandidateFramesT11(b) : AdvanceInspectionStep7(b,a,completed,drained) \/ AdvanceInspectionSelection7(b,a,completed /\ drained) \/ SkipInspectionSelection7(b,a,m,objects,<<>> ,{},FALSE,completed /\ drained)}} \cup
(IF CompleteNormalInspection7(b,done,completed,{InspectionEndEvent7(b)}) /\ ReturnInspectionToCaller7(done,returned,drained,"InspectionAuditCaller") THEN {InspectionDestinationT11(returned)} ELSE {})Exact module download · Source bundle and reproduction instructions
Resolved project definitions: AdvanceInspectionSelection7, AdvanceInspectionStep7, CompleteNormalInspection7, InspectionEndEvent7, OpenCandidateCapacity7, ReturnInspectionToCaller7, SkipInspectionSelection7, InspectionCandidateFramesT11, InspectionDestinationT11, InspectionObjectsT11
InspectionAuditAdvanceT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionAuditAdvanceT11 ==
/\ qT11.ready /\ qT11.drained /\ ~qT11.siteInspection.complete /\ ~qT11.skipPending
/\ \E after \in InspectionCandidateFramesT11(qT11.siteInspection) :
/\ AdvanceInspectionStep7(qT11.siteInspection,after,qT11.ready,qT11.drained) \/ AdvanceInspectionSelection7(qT11.siteInspection,after,qT11.ready /\ qT11.drained)
/\ qT11'=InspectionRecordEdgeT11(qT11,[qT11 EXCEPT !.siteInspection=after,!.ready=FALSE,!.drained=FALSE,!.pendingEvents={}],qT11.siteInspection.step,after.step,IF qT11.siteInspection.step="ProcedureCode1404a82ab3ee" THEN qT11.decision ELSE "Next")Exact module download · Source bundle and reproduction instructions
Resolved project definitions: AdvanceInspectionSelection7, AdvanceInspectionStep7, InspectionCandidateFramesT11, InspectionRecordEdgeT11, qT11
InspectionAuditAfterSkipT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionAuditAfterSkipT11 ==
/\ qT11.ready /\ qT11.drained /\ qT11.skipPending
/\ qT11'=[qT11 EXCEPT !.ready=FALSE,!.drained=FALSE,!.skipPending=FALSE,!.pendingEvents={}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: qT11
InspectionAuditDoneT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionAuditDoneT11 == qT11.siteInspection.returnedExact module download · Source bundle and reproduction instructions
Resolved project definitions: qT11
InspectionAuditDrainT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionAuditDrainT11 ==
/\ qT11.ready /\ ~qT11.drained
/\ qT11'=[qT11 EXCEPT !.drained=TRUE,!.checkpoints=Append(@,[step |-> qT11.pendingStep,ongoingInspection |-> qT11.siteInspection.active /\ ~qT11.siteInspection.complete])]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: qT11
InspectionAuditEventuallyReturnsT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionAuditEventuallyReturnsT11 == <>InspectionAuditDoneT11Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionAuditDoneT11
InspectionAuditInitT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionAuditInitT11 ==
/\ guideCaseT11=9
/\ \E kind \in {"SchemaAtom082","SchemaAtom129","SchemaAtom018","SchemaAtom132"} :
\E n \in 0..2,roots \in 0..1,extra \in 0..1,perform \in BOOLEAN,late \in IF kind="SchemaAtom018" THEN BOOLEAN ELSE {FALSE} :
LET b==InspectionInitialT11(kind,7) objects==InspectionObjectsT11(kind,n,roots) IN
qT11=[siteInspection |-> b,objects |-> objects,deck |-> InspectionDeckT11(kind,n),capacity |-> OpenCandidateCapacity7(b,objects),
n |-> n,roots |-> roots,extra |-> extra,perform |-> perform,latePlan |-> late,lateInjected |-> FALSE,modifierDone |-> FALSE,
pendingEvents |-> {},eventOccurrences |-> <<>>,ready |-> FALSE,drained |-> FALSE,skipPending |-> FALSE,pendingStep |-> "NoValue",decision |-> "Next",
child |-> EmptyT11,childState |-> "NoValue",itemInspectionHistory |-> EmptyT11,limitSnapshot |-> 0,history |-> <<>>,edges |-> <<>>,checkpoints |-> <<>>]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: OpenCandidateCapacity7, InspectionDeckT11, InspectionInitialT11, InspectionObjectsT11, EmptyT11, guideCaseT11, qT11
InspectionAuditInvariantT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionAuditInvariantT11 ==
/\ guideCaseT11=9 /\ InspectionProcedureValid7(qT11.siteInspection) /\ CandidateCapacityValid7(qT11.capacity,qT11.siteInspection,qT11.objects)
/\ (qT11.siteInspection.limitSet => qT11.siteInspection.randomLimit=qT11.limitSnapshot)
/\ (RandomLimitApplies7(qT11.siteInspection) => InspectionCentralChoices7(qT11.siteInspection)<=qT11.siteInspection.randomLimit)
/\ Cardinality(ActualItemInspectionesInInspection7(qT11.itemInspectionHistory,20))<=Len(qT11.siteInspection.choices)
/\ (~qT11.perform => qT11.itemInspectionHistory=EmptyT11 /\ qT11.siteInspection.usedItemInspectionIds={})
/\ \A i \in 1..Len(qT11.edges) : qT11.edges[i] \in InspectionOracleEdges11 /\ qT11.edges[i].before=qT11.history[i].step
/\ \A i \in 1..Len(qT11.history) :
LET row==qT11.history[i] IN
/\ row.kind=InspectionOracleKinds11[row.step]
/\ InspectionFormalConditionsT11(row.events)=IF row.step \in DOMAIN InspectionOracleFormalConditions11 THEN InspectionOracleFormalConditions11[row.step] ELSE {}
/\ row.performed<=row.chosen /\ row.central<=row.chosen
/\ \A i \in 1..Len(qT11.checkpoints) : qT11.checkpoints[i].step="ProcedureCode8c612115d469" => ~qT11.checkpoints[i].ongoingInspection
/\ (qT11.siteInspection.archivesPrepared => \A id \in 1..qT11.n : qT11.objects[id].face="Up")
/\ (qT11.lateInjected => qT11.objects[90].face="Down")
/\ (qT11.lateInjected /\ qT11.siteInspection.active /\ 90 \in InspectionSeenObjects7(qT11.siteInspection,qT11.itemInspectionHistory) => InspectionObjectVisible7(qT11.siteInspection,qT11.itemInspectionHistory,qT11.objects,90))
/\ (InspectionAuditDoneT11 =>
LET expectedCentral==IF qT11.siteInspection.kind \in {"SchemaAtom082","SchemaAtom129"} THEN MinOf(qT11.n,1+qT11.extra) ELSE IF qT11.siteInspection.kind="SchemaAtom018" THEN qT11.n+(IF qT11.latePlan THEN 1 ELSE 0) ELSE 0 IN
/\ qT11.siteInspection.complete /\ ~qT11.siteInspection.active /\ qT11.drained /\ Len(qT11.edges)=Len(qT11.history)
/\ InspectionCentralChoices7(qT11.siteInspection)=expectedCentral /\ Len(qT11.siteInspection.choices)=expectedCentral+qT11.roots
/\ Cardinality(ActualItemInspectionesInInspection7(qT11.itemInspectionHistory,20))=IF qT11.perform THEN Len(qT11.siteInspection.choices) ELSE 0)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MinOf, ActualItemInspectionesInInspection7, CandidateCapacityValid7, InspectionCentralChoices7, InspectionObjectVisible7, InspectionProcedureValid7, InspectionSeenObjects7, RandomLimitApplies7, InspectionAuditDoneT11, InspectionFormalConditionsT11, EmptyT11, guideCaseT11, qT11, InspectionOracleEdges11, InspectionOracleFormalConditions11, InspectionOracleKinds11
InspectionAuditLateArrivalT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionAuditLateArrivalT11 ==
/\ ~qT11.ready /\ qT11.siteInspection.step="ProcedureCode91f3ee0da236" /\ qT11.siteInspection.kind="SchemaAtom018" /\ qT11.latePlan /\ ~qT11.lateInjected
/\ qT11'=[qT11 EXCEPT !.objects=[id \in DOMAIN @ \cup {90} |-> IF id=90 THEN InspectionCardT11(90,"SideADiscard","SchemaAtom018") ELSE @[id]],!.lateInjected=TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionCardT11, qT11
InspectionAuditNextT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionAuditNextT11 == /\ UNCHANGED guideCaseT11
/\ (InspectionAuditWorkT11 \/ InspectionAuditLateArrivalT11 \/ InspectionAuditDrainT11 \/ InspectionAuditAdvanceT11 \/ InspectionAuditAfterSkipT11 \/ InspectionAuditReturnT11 \/ (InspectionAuditDoneT11 /\ UNCHANGED qT11))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionAuditAdvanceT11, InspectionAuditAfterSkipT11, InspectionAuditDoneT11, InspectionAuditDrainT11, InspectionAuditLateArrivalT11, InspectionAuditReturnT11, InspectionAuditWorkT11, guideCaseT11, qT11
InspectionAuditReturnT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionAuditReturnT11 ==
/\ qT11.ready /\ qT11.drained /\ qT11.siteInspection.complete /\ ~InspectionAuditDoneT11
/\ LET after==[qT11.siteInspection EXCEPT !.returned=TRUE] IN
/\ ReturnInspectionToCaller7(qT11.siteInspection,after,qT11.drained,"InspectionAuditCaller")
/\ qT11'=InspectionRecordEdgeT11(qT11,[qT11 EXCEPT !.siteInspection=after],"ProcedureCode8c612115d469","ReturnToCaller","Next")Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReturnInspectionToCaller7, InspectionAuditDoneT11, InspectionRecordEdgeT11, qT11
InspectionAuditSpecT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionAuditSpecT11 == InspectionAuditInitT11 /\ [][InspectionAuditNextT11]_<<guideCaseT11,qT11>> /\ WF_<<guideCaseT11,qT11>>(InspectionAuditNextT11)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionAuditInitT11, InspectionAuditNextT11, guideCaseT11, qT11
InspectionAuditWorkT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionAuditWorkT11 ==
/\ ~InspectionAuditDoneT11 /\ ~qT11.ready
/\ LET b==qT11.siteInspection kind==InspectionStepInfo7(b.step).kind IN
CASE kind="BeginInspection" ->
IF ~b.beginMet THEN
LET after==[b EXCEPT !.active=TRUE,!.beginMet=TRUE] capacity==OpenCandidateCapacity7(after,qT11.objects) ev=={InspectionBeginEvent7(b)} IN
/\ BeginInspectionWithCandidates7(b,after,capacity,qT11.objects,0,{b.targetSite},TRUE,TRUE,ev)
/\ qT11'=[qT11 EXCEPT !.siteInspection=after,!.capacity=capacity,!.pendingEvents=ev,!.eventOccurrences=Append(@,ev)]
ELSE IF ~qT11.modifierDone THEN
/\ (qT11.extra=0 \/ ~RandomLimitApplies7(b) \/ AddAdditionalItemInspectiones7(b,[b EXCEPT !.randomLimit=@+qT11.extra],qT11.extra,TRUE))
/\ qT11'=[qT11 EXCEPT !.modifierDone=TRUE,!.siteInspection.randomLimit=IF RandomLimitApplies7(b) THEN @+qT11.extra ELSE @]
ELSE qT11'=InspectionRecordWorkT11(qT11,qT11,qT11.pendingEvents)
[] kind="PrepareDiscardSite" ->
IF b.kind="SchemaAtom018" THEN
LET after==[b EXCEPT !.archivesPrepared=TRUE] objects==[id \in DOMAIN qT11.objects |-> IF qT11.objects[id].zone="SideADiscard" THEN [qT11.objects[id] EXCEPT !.face="Up"] ELSE qT11.objects[id]] IN
/\ PrepareDiscardSite7(b,after,qT11.objects,objects)
/\ qT11'=InspectionRecordWorkT11(qT11,[qT11 EXCEPT !.siteInspection=after,!.objects=objects],{})
ELSE qT11'=InspectionRecordWorkT11(qT11,qT11,{})
[] kind="SetLimit" ->
/\ (~qT11.latePlan \/ qT11.lateInjected)
/\ IF RandomLimitApplies7(b) THEN
LET after==[b EXCEPT !.limitSet=TRUE] IN
/\ FreezeInspectionLimit7(b,after,qT11.modifierDone)
/\ qT11'=InspectionRecordWorkT11(qT11,[qT11 EXCEPT !.siteInspection=after,!.limitSnapshot=b.randomLimit],{})
ELSE qT11'=InspectionRecordWorkT11(qT11,qT11,{})
[] kind="Choose" ->
LET view==InspectionViewT11(qT11) IN
/\ DeriveCandidateView7(b,qT11.capacity,qT11.objects,qT11.deck,{},FALSE,view)
/\ IF view.roots \cup view.central={} THEN
LET after==[b EXCEPT !.step="ProcedureCode8c612115d469"] next==InspectionRecordWorkT11(qT11,[qT11 EXCEPT !.siteInspection=after,!.decision="Done",!.skipPending=TRUE],{}) IN
/\ SkipInspectionSelection7(b,after,qT11.capacity,qT11.objects,qT11.deck,{},FALSE,TRUE)
/\ qT11'=InspectionRecordEdgeT11(qT11,next,"ProcedureCode1404a82ab3ee","ProcedureCode8c612115d469","Done")
ELSE \E id \in view.roots \cup view.central :
LET source==IF id \in view.roots THEN "Root" ELSE "SchemaAtom033" after==InspectionSelectT11(b,id,source) IN
/\ IF b.kind="SchemaAtom082" /\ source="SchemaAtom033" THEN ChooseCentralAInspectionCard7(b,after,view,id,0,FALSE,TRUE) ELSE ChooseSpecificInspectionCard7(b,after,id,view)
/\ qT11'=InspectionRecordWorkT11(qT11,[qT11 EXCEPT !.siteInspection=after,!.decision="Choose",!.childState="NoValue"],{})
[] kind="ItemInspection" ->
IF qT11.perform THEN
IF qT11.childState="NoValue" THEN
LET a==InspectionChildProjectionT11(b,100+Len(b.choices),b.selectedObject,qT11.objects[b.selectedObject])
after==[b EXCEPT !.currentItemInspectionId=a.id,!.usedItemInspectionIds=@ \cup {a.id}] ev==ItemInspectionBeginEvent7(a)
history==[id \in DOMAIN qT11.itemInspectionHistory \cup {a.id} |-> IF id=a.id THEN [object |-> a.object,traversalId |-> a.traversalId,siteInspectionId |-> a.siteInspectionId,turnId |-> 2,hadRetireCost |-> FALSE] ELSE qT11.itemInspectionHistory[id]] IN
/\ AttachChosenItemInspection7(b,after,a,ev) /\ RecordActualItemInspection7(qT11.itemInspectionHistory,history,a,2,FALSE,ev)
/\ qT11'=[qT11 EXCEPT !.siteInspection=after,!.child=a,!.childState="Begun",!.itemInspectionHistory=history,!.eventOccurrences=Append(@,{ev})]
ELSE IF qT11.childState="Begun" THEN
qT11'=[qT11 EXCEPT !.child.active=FALSE,!.child.complete=TRUE,!.child.returned=TRUE,!.child.step="Complete",!.childState="Returned"]
ELSE
LET after==[b EXCEPT !.selectionPending=FALSE,!.selectedObject=0,!.selectedSource="NoValue",!.currentItemInspectionId=0] IN
/\ qT11.childState="Returned" /\ FinishInspectionItemInspectionInstruction7(b,after,InspectionChildReturnedT11(b,qT11.child))
/\ qT11'=InspectionRecordWorkT11(qT11,[qT11 EXCEPT !.siteInspection=after],{})
ELSE IF qT11.childState="NoValue" THEN qT11'=[qT11 EXCEPT !.childState="AlternativeDone"]
ELSE LET after==[b EXCEPT !.selectionPending=FALSE,!.selectedObject=0,!.selectedSource="NoValue",!.currentItemInspectionId=0] IN
/\ qT11.childState="AlternativeDone" /\ FinishInspectionItemInspectionInstruction7(b,after,TRUE)
/\ qT11'=InspectionRecordWorkT11(qT11,[qT11 EXCEPT !.siteInspection=after],{})
[] kind="Repeat" -> qT11'=InspectionRecordWorkT11(qT11,qT11,{})
[] kind="CompleteInspection" ->
LET after==[b EXCEPT !.active=FALSE,!.complete=TRUE,!.step="Complete",!.completionReason="Normal"] ev=={InspectionEndEvent7(b)} IN
/\ CompleteNormalInspection7(b,after,TRUE,ev)
/\ qT11'=InspectionRecordWorkT11(qT11,[qT11 EXCEPT !.siteInspection=after,!.eventOccurrences=Append(@,ev)],ev)
[] OTHER -> FALSEExact module download · Source bundle and reproduction instructions
Resolved project definitions: AddAdditionalItemInspectiones7, AttachChosenItemInspection7, BeginInspectionWithCandidates7, ChooseCentralAInspectionCard7, ChooseSpecificInspectionCard7, CompleteNormalInspection7, DeriveCandidateView7, FinishInspectionItemInspectionInstruction7, FreezeInspectionLimit7, InspectionBeginEvent7, InspectionEndEvent7, InspectionStepInfo7, ItemInspectionBeginEvent7, OpenCandidateCapacity7, PrepareDiscardSite7, RandomLimitApplies7, RecordActualItemInspection7, SkipInspectionSelection7, InspectionAuditDoneT11, InspectionChildProjectionT11, InspectionChildReturnedT11, InspectionRecordEdgeT11, InspectionRecordWorkT11, InspectionSelectT11, InspectionViewT11, qT11
InspectionBeginningChecksT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionBeginningChecksT11 ==
LET b==InspectionInitialT11("SchemaAtom082",0) begun==[b EXCEPT !.active=TRUE,!.beginMet=TRUE] ev=={InspectionBeginEvent7(b)}
set==[InspectionWorkedT11("SchemaAtom082","ProcedureCode91f3ee0da236","Next") EXCEPT !.limitSet=FALSE] fixed==[set EXCEPT !.limitSet=TRUE]
ar==[InspectionWorkedT11("SchemaAtom018","ProcedureCodeb6067693902e","Next") EXCEPT !.archivesPrepared=FALSE] arp==[ar EXCEPT !.archivesPrepared=TRUE]
objects==InspectionObjectsT11("SchemaAtom018",2,1) up==[id \in DOMAIN objects |-> IF objects[id].zone="SideADiscard" THEN [objects[id] EXCEPT !.face="Up"] ELSE objects[id]]
IN /\ BeginInspection7(b,begun,0,{"SchemaAtom082"},TRUE,TRUE,ev) /\ ~BeginInspection7(b,begun,99,{"SchemaAtom082"},TRUE,TRUE,ev)
/\ ~BeginInspection7(b,begun,0,{},TRUE,TRUE,ev) /\ ~BeginInspection7(b,begun,0,{"SchemaAtom082"},FALSE,TRUE,ev)
/\ ~BeginInspection7(b,begun,0,{"SchemaAtom082"},TRUE,FALSE,ev) /\ ~BeginInspection7(b,begun,0,{"SchemaAtom082"},TRUE,TRUE,{})
/\ InspectionBeginEvent7(b)=[tag |-> "InspectionTargetSite",siteInspectionId |-> 20,targetSite |-> "SchemaAtom082",traversalId |-> 0]
/\ FreezeInspectionLimit7(set,fixed,TRUE) /\ ~FreezeInspectionLimit7(set,fixed,FALSE)
/\ ~AddAdditionalItemInspectiones7(fixed,[fixed EXCEPT !.randomLimit=@+1],1,TRUE)
/\ AddAdditionalItemInspectiones7(set,[set EXCEPT !.randomLimit=@+1],1,TRUE)
/\ PrepareDiscardSite7(ar,arp,objects,up) /\ up[1].face="Up" /\ up[10].face="Down" /\ up[1].loc=objects[1].loc /\ up[1].marks=objects[1].marks
/\ ~PrepareDiscardSite7(arp,arp,objects,up)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: AddAdditionalItemInspectiones7, BeginInspection7, FreezeInspectionLimit7, InspectionBeginEvent7, PrepareDiscardSite7, InspectionInitialT11, InspectionObjectsT11, InspectionWorkedT11
InspectionCandidateChecksT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionCandidateChecksT11 ==
LET b==[InspectionWorkedT11("SchemaAtom129","ProcedureCode1404a82ab3ee","Next") EXCEPT !.choices= <<>>,!.randomLimit=3] objects==InspectionObjectsT11("SchemaAtom129",3,0) m==OpenCandidateCapacity7(b,objects)
first==InspectionSelectT11(b,1,"SchemaAtom033") after==InspectionRoundAfterT11(first)
h==[b EXCEPT !.targetSite="SchemaAtom082",!.kind="SchemaAtom082"] ho==InspectionObjectsT11("SchemaAtom082",2,0) hm==OpenCandidateCapacity7(h,ho)
newer==[id \in {2,3,4} |-> IF id=4 THEN [InspectionCardT11(4,"SideADeck","SchemaAtom129") EXCEPT !.physical=1] ELSE objects[id]]
base==InspectionObjectsT11("SchemaAtom082",1,1) rb==[h EXCEPT !.randomLimit=3] rm==OpenCandidateCapacity7(rb,base)
arrived==[id \in DOMAIN base \cup {90} |-> IF id=90 THEN InspectionCardT11(90,"Play","SchemaAtom082") ELSE base[id]]
pending==[rm EXCEPT !.pendingRoots={90}] admitted==[pending EXCEPT !.pendingRoots={},!.admittedRoots=@ \cup {90}] denied==[pending EXCEPT !.pendingRoots={},!.deniedRoots={90}]
IN /\ InspectionCandidates7(b,m,objects,<<1,2,3>>,{}).central={1}
/\ InspectionCandidates7(b,m,objects,<<1,2,3>>,{1,2,3}).central={}
/\ ChooseSpecificInspectionCard7(b,first,1,[roots |-> {},central |-> {1}]) /\ InspectionNonItemInspectionRoundT11(first,after)
/\ InspectionCandidates7(after,m,objects,<<1,2,3>>,{2}).central={3}
/\ InspectionCandidates7(after,m,objects,<<3,2,1>>,{}).central={3}
/\ InspectionCandidates7(after,OpenCandidateCapacity7(after,newer),newer,<<4,2,3>>,{}).central={4}
/\ InspectionCandidates7(h,hm,ho,<<>>,{1}).central={2} /\ InspectionCandidates7(h,hm,ho,<<>>,{}).central={1,2}
/\ ObserveRootEntries7(rm,pending,rb,arrived,{90})
/\ InspectionCandidates7(rb,pending,arrived,<<>>,{}).roots={10}
/\ DecideRootAdmissions7(pending,admitted,rb,arrived,{90},"ProcedureCode7f181ce21011",TRUE)
/\ ~DecideRootAdmissions7(pending,admitted,rb,arrived,{90},"ProcedureCode2d6279f9d639",TRUE)
/\ ~DecideRootAdmissions7(pending,admitted,rb,arrived,{90},"ProcedureCode7f181ce21011",FALSE)
/\ DecideRootAdmissions7(pending,denied,rb,arrived,{},"ProcedureCode7f181ce21011",TRUE)
/\ InspectionCandidates7(rb,admitted,arrived,<<>>,{}).roots={10,90} /\ InspectionCandidates7(rb,denied,arrived,<<>>,{}).roots={10}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ChooseSpecificInspectionCard7, DecideRootAdmissions7, InspectionCandidates7, ObserveRootEntries7, OpenCandidateCapacity7, InspectionCardT11, InspectionNonItemInspectionRoundT11, InspectionObjectsT11, InspectionRoundAfterT11, InspectionSelectT11, InspectionWorkedT11
InspectionCandidateFramesT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionCandidateFramesT11(b) == {[b EXCEPT !.step=step] : step \in InspectionOracleStepSet11 \cup {"UnauthorizedStep"}}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionOracleStepSet11
InspectionCardT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionCardT11(id,zone,targetSite) == [form |-> "Card",side |-> "SideA",kind |-> "Attachment",zone |-> zone,targetSite |-> IF zone="Play" THEN targetSite ELSE "NoValue",area |-> IF zone="Play" THEN "Root" ELSE "NoValue",host |-> 0,deployed |-> zone="Play",face |-> "Down",loc |-> <<zone,id>>,physical |-> id,marks |-> {}]Exact module download · Source bundle and reproduction instructions
InspectionChildAndEndChecksT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionChildAndEndChecksT11 ==
LET b==InspectionWorkedT11("SchemaAtom082","ProcedureCodee35e7c8fc57b","Next") chosen==[b EXCEPT !.selectionPending=TRUE,!.selectedObject=1,!.selectedSource="SchemaAtom033"]
card==InspectionCardT11(1,"SideAHand","SchemaAtom082") a==InspectionChildProjectionT11(chosen,101,1,card) attached==[chosen EXCEPT !.currentItemInspectionId=101,!.usedItemInspectionIds={101}]
doneChild==[a EXCEPT !.active=FALSE,!.complete=TRUE,!.returned=TRUE,!.step="Complete"] finished==[attached EXCEPT !.selectionPending=FALSE,!.selectedObject=0,!.selectedSource="NoValue",!.currentItemInspectionId=0]
itemInspectionHistory==[id \in {101} |-> [object |-> 1,traversalId |-> 7,siteInspectionId |-> 20,turnId |-> 2,hadRetireCost |-> FALSE]]
visibleObjects==[id \in {1,2} |-> InspectionCardT11(id,"SideAHand","SchemaAtom082")]
last==[finished EXCEPT !.step="ProcedureCode8c612115d469"] complete==[last EXCEPT !.active=FALSE,!.complete=TRUE,!.step="Complete",!.completionReason="Normal"]
interrupted==[attached EXCEPT !.active=FALSE,!.complete=TRUE,!.step="Complete",!.completionReason="EndTraversal"] drained==[interrupted EXCEPT !.selectionPending=FALSE,!.selectedObject=0,!.selectedSource="NoValue",!.currentItemInspectionId=0]
IN /\ AttachChosenItemInspection7(chosen,attached,a,ItemInspectionBeginEvent7(a))
/\ RecordActualItemInspection7(EmptyT11,itemInspectionHistory,a,2,FALSE,ItemInspectionBeginEvent7(a))
/\ InspectionObjectVisible7(attached,itemInspectionHistory,visibleObjects,1) /\ ~InspectionObjectVisible7(attached,itemInspectionHistory,visibleObjects,2)
/\ ~InspectionObjectVisible7(attached,itemInspectionHistory,[id \in {3} |-> [InspectionCardT11(3,"SideAHand","SchemaAtom082") EXCEPT !.physical=1]],3)
/\ ~InspectionObjectVisible7(complete,itemInspectionHistory,visibleObjects,1)
/\ ~AttachChosenItemInspection7(chosen,attached,[a EXCEPT !.object=2],ItemInspectionBeginEvent7([a EXCEPT !.object=2]))
/\ ~AttachChosenItemInspection7(chosen,attached,[a EXCEPT !.caller= <<"InspectionItemInspection",99>>],ItemInspectionBeginEvent7(a))
/\ InspectionChildReturnedT11(attached,doneChild) /\ ~InspectionChildReturnedT11(attached,a)
/\ ~InspectionChildReturnedT11(attached,[doneChild EXCEPT !.id=102]) /\ ~InspectionChildReturnedT11(attached,[doneChild EXCEPT !.returned=FALSE])
/\ FinishInspectionItemInspectionInstruction7(attached,finished,InspectionChildReturnedT11(attached,doneChild))
/\ ~FinishInspectionItemInspectionInstruction7(attached,finished,InspectionChildReturnedT11(attached,a))
/\ CompleteNormalInspection7(last,complete,TRUE,{InspectionEndEvent7(last)}) /\ ~CompleteNormalInspection7(last,complete,FALSE,{InspectionEndEvent7(last)})
/\ ReturnInspectionToCaller7(complete,[complete EXCEPT !.returned=TRUE],TRUE,"InspectionAuditCaller")
/\ ~ReturnInspectionToCaller7(complete,[complete EXCEPT !.returned=TRUE],FALSE,"InspectionAuditCaller")
/\ ~ReturnInspectionToCaller7(complete,[complete EXCEPT !.returned=TRUE],TRUE,"WrongInspectionCaller")
/\ ApplyInspectionAborts7(attached,interrupted,{20},{InspectionEndEvent7(attached)})
/\ ~ReturnInspectionToCaller7(interrupted,[interrupted EXCEPT !.returned=TRUE],TRUE,"InspectionAuditCaller")
/\ DrainEndedInspectionInstruction7(interrupted,drained,TRUE) /\ ~DrainEndedInspectionInstruction7(interrupted,drained,FALSE)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ApplyInspectionAborts7, AttachChosenItemInspection7, CompleteNormalInspection7, DrainEndedInspectionInstruction7, FinishInspectionItemInspectionInstruction7, InspectionEndEvent7, InspectionObjectVisible7, ItemInspectionBeginEvent7, RecordActualItemInspection7, ReturnInspectionToCaller7, InspectionCardT11, InspectionChildProjectionT11, InspectionChildReturnedT11, InspectionWorkedT11, EmptyT11
InspectionChildProjectionT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionChildProjectionT11(b,id,object,card) == [OpenItemInspection7(id,object,card,b.traversalId,b.id,InspectionItemInspectionCaller7(b),b.encounterAncestors) EXCEPT !.active=TRUE,!.beginMet=TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionItemInspectionCaller7, OpenItemInspection7
InspectionChildReturnedT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionChildReturnedT11(b,a) == a.id=b.currentItemInspectionId /\ a.object=b.selectedObject /\ a.siteInspectionId=b.id /\ a.traversalId=b.traversalId /\ a.caller=InspectionItemInspectionCaller7(b) /\ a.beginMet /\ a.complete /\ a.returned /\ ~a.activeExact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionItemInspectionCaller7
InspectionDeckT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionDeckT11(kind,n) == IF kind="SchemaAtom129" THEN IF n=0 THEN <<>> ELSE IF n=1 THEN <<1>> ELSE IF n=2 THEN <<1,2>> ELSE <<1,2,3>> ELSE <<>>Exact module download · Source bundle and reproduction instructions
InspectionDestinationT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionDestinationT11(b) == IF b.returned THEN "ReturnToCaller" ELSE b.stepExact module download · Source bundle and reproduction instructions
InspectionFormalConditionsT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionFormalConditionsT11(events) == {IF event.tag="InspectionTargetSite" THEN "InspectionBegins" ELSE "InspectionEnds" : event \in {e \in events : e.tag \in {"InspectionTargetSite","InspectionEnds"}}}Exact module download · Source bundle and reproduction instructions
InspectionGraphChecksT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionGraphChecksT11 ==
/\ InspectionInitialT11("SchemaAtom082",7).step=InspectionOracleEntry11 /\ ~InspectionInitialT11("SchemaAtom082",7).active /\ ~InspectionInitialT11("SchemaAtom082",7).beginMet
/\ InspectionInitialT11("SchemaAtom082",7).randomLimit=InspectionOracleDefaultLimit11 /\ InspectionSteps7=InspectionOracleStepSet11 /\ InspectionOracleHidden11={}
/\ \A step \in InspectionOracleStepSet11 : InspectionStepInfo7(step).kind=InspectionOracleKinds11[step]
/\ \A edge \in InspectionOracleEdges11 : LET b==InspectionWorkedT11("SchemaAtom082",edge.before,edge.decision) IN
/\ ActualInspectionDestinationsT11(b,TRUE,TRUE)={edge.after}
/\ ActualInspectionDestinationsT11(b,FALSE,TRUE)={} /\ ActualInspectionDestinationsT11(b,TRUE,FALSE)={}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionStepInfo7, InspectionSteps7, ActualInspectionDestinationsT11, InspectionInitialT11, InspectionWorkedT11, InspectionOracleDefaultLimit11, InspectionOracleEdges11, InspectionOracleEntry11, InspectionOracleHidden11, InspectionOracleKinds11, InspectionOracleStepSet11
InspectionInitialT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionInitialT11(kind,traversal) == OpenInspection7(20,InspectionTargetSiteT11(kind),kind,traversal,"AuditInspection","InspectionAuditCaller",{},InspectionPolicy7("Normal",0))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionPolicy7, OpenInspection7, InspectionTargetSiteT11
InspectionNonItemInspectionRoundT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionNonItemInspectionRoundT11(b,after) ==
LET entry==[b EXCEPT !.step="ProcedureCodee35e7c8fc57b"] finished==[entry EXCEPT !.selectionPending=FALSE,!.selectedObject=0,!.selectedSource="NoValue",!.currentItemInspectionId=0] loop==[finished EXCEPT !.step="ProcedureCodeb1fbc90c4ab0"] IN
/\ AdvanceInspectionSelection7(b,entry,TRUE) /\ FinishInspectionItemInspectionInstruction7(entry,finished,TRUE)
/\ AdvanceInspectionStep7(finished,loop,TRUE,TRUE) /\ AdvanceInspectionStep7(loop,after,TRUE,TRUE)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: AdvanceInspectionSelection7, AdvanceInspectionStep7, FinishInspectionItemInspectionInstruction7
InspectionObjectsT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionObjectsT11(kind,n,roots) ==
[id \in (1..n) \cup (IF roots=1 THEN {10} ELSE {}) |->
InspectionCardT11(id,IF id=10 THEN "Play" ELSE CASE kind="SchemaAtom082" -> "SideAHand" [] kind="SchemaAtom129" -> "SideADeck" [] kind="SchemaAtom018" -> "SideADiscard" [] OTHER -> "SideAHand",InspectionTargetSiteT11(kind))]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionCardT11, InspectionTargetSiteT11
InspectionPermissionsChecksT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionPermissionsChecksT11 ==
/\ InspectionOraclePaidSteps11={}
/\ \A step \in InspectionOracleStepSet11 :
/\ ~InspectionStepInfo7(step).paidWindow /\ ~InspectionStepInfo7(step).objectivePlacementWindow
/\ \A player \in SetupPlayers :
LET b==InspectionWorkedT11("SchemaAtom082",step,"Next") site==InspectionPrioritySite9(TraversalTurnT11(player),b) IN
/\ ~WindowSiteAllowed9("Paid",site) /\ ~WindowSiteAllowed9("NeutralValue00001",site)
/\ WindowSiteAllowed9("Reaction",site) /\ WindowSiteAllowed9("Interrupt",site)
/\ LET b==[InspectionWorkedT11("SchemaAtom082","ProcedureCode8c612115d469","Next") EXCEPT !.complete=TRUE,!.active=FALSE,!.step="Complete"]
site==InspectionPrioritySite9(TraversalTurnT11("SideB"),b) IN
/\ site.live /\ ~site.timingLive /\ WindowSiteAllowed9("Reaction",site)
/\ ~WindowSiteAllowed9("Paid",site) /\ ~WindowSiteAllowed9("Reaction",InspectionPrioritySite9(TraversalTurnT11("SideB"),[b EXCEPT !.returned=TRUE]))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionPrioritySite9, WindowSiteAllowed9, InspectionStepInfo7, InspectionWorkedT11, InspectionOraclePaidSteps11, InspectionOracleStepSet11, SetupPlayers, TraversalTurnT11
InspectionPointwiseChecksT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionPointwiseChecksT11 == CASE guideCaseT11=1 -> InspectionGraphChecksT11 [] guideCaseT11=2 -> InspectionPermissionsChecksT11
[] guideCaseT11=3 -> InspectionBeginningChecksT11 [] guideCaseT11=4 -> InspectionQuotaAndGroupsChecksT11
[] guideCaseT11=5 -> InspectionCandidateChecksT11 [] OTHER -> InspectionChildAndEndChecksT11Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionBeginningChecksT11, InspectionCandidateChecksT11, InspectionChildAndEndChecksT11, InspectionGraphChecksT11, InspectionPermissionsChecksT11, InspectionQuotaAndGroupsChecksT11, guideCaseT11
InspectionPointwiseInitT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionPointwiseInitT11 == guideCaseT11 \in 1..6 /\ qT11=EmptyT11Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EmptyT11, guideCaseT11, qT11
InspectionPointwiseSpecT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionPointwiseSpecT11 == InspectionPointwiseInitT11 /\ [][PointwiseNextT11]_<<guideCaseT11,qT11>>Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionPointwiseInitT11, PointwiseNextT11, guideCaseT11, qT11
InspectionQuotaAndGroupsChecksT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionQuotaAndGroupsChecksT11 ==
LET b==[InspectionWorkedT11("SchemaAtom082","ProcedureCode1404a82ab3ee","Next") EXCEPT !.choices= <<>>] objects==InspectionObjectsT11("SchemaAtom082",2,1) m==OpenCandidateCapacity7(b,objects)
view==[roots |-> {10},central |-> {1,2}] hand==InspectionSelectT11(b,1,"SchemaAtom033") root==InspectionSelectT11(b,10,"Root") after==InspectionRoundAfterT11(hand)
exhausted==InspectionCandidates7(after,m,objects,<<>>,{} ) emptyObjects==InspectionObjectsT11("SchemaAtom082",0,0)
IN /\ DeriveCandidateView7(b,m,objects,<<>>,{},FALSE,view)
/\ InspectionPresentation7(b,view)=[specific |-> {10},randomCentralAOffered |-> TRUE]
/\ ChooseSpecificInspectionCard7(b,root,10,view) /\ ~ChooseSpecificInspectionCard7(b,hand,1,view)
/\ ChooseCentralAInspectionCard7(b,hand,view,1,0,FALSE,TRUE) /\ ~ChooseCentralAInspectionCard7(b,hand,view,1,0,FALSE,FALSE)
/\ ChooseCentralAInspectionCard7(b,hand,view,0,1,TRUE,FALSE) /\ hand.choices[1].chooser="SideB"
/\ ~ChooseCentralAInspectionCard7(b,[hand EXCEPT !.selectedObject=99],view,99,0,FALSE,TRUE)
/\ InspectionNonItemInspectionRoundT11(hand,after) /\ InspectionCentralChoices7(after)=1 /\ ActualItemInspectionesInInspection7(EmptyT11,20)={}
/\ exhausted=[roots |-> {10},central |-> {}]
/\ ChooseSpecificInspectionCard7(after,InspectionSelectT11(after,10,"Root"),10,exhausted)
/\ InspectionCentralChoices7(root)=0 /\ InspectionCandidates7(InspectionRoundAfterT11(root),m,objects,<<>>,{}).central={1,2}
/\ ~SkipInspectionSelection7(b,[b EXCEPT !.step="ProcedureCode8c612115d469"],m,objects,<<>>,{},FALSE,TRUE)
/\ SkipInspectionSelection7(b,[b EXCEPT !.step="ProcedureCode8c612115d469"],OpenCandidateCapacity7(b,emptyObjects),emptyObjects,<<>>,{},FALSE,TRUE)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualItemInspectionesInInspection7, ChooseCentralAInspectionCard7, ChooseSpecificInspectionCard7, DeriveCandidateView7, InspectionCandidates7, InspectionCentralChoices7, InspectionPresentation7, OpenCandidateCapacity7, SkipInspectionSelection7, InspectionNonItemInspectionRoundT11, InspectionObjectsT11, InspectionRoundAfterT11, InspectionSelectT11, InspectionWorkedT11, EmptyT11
InspectionRecordEdgeT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionRecordEdgeT11(before,after,source,target,decision) ==
[after EXCEPT !.edges=Append(@,[before |-> source,after |-> target,decision |-> decision])]Exact module download · Source bundle and reproduction instructions
InspectionRecordWorkT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionRecordWorkT11(before,after,events) ==
[after EXCEPT !.ready=TRUE,!.drained=FALSE,!.pendingStep=before.siteInspection.step,
!.history=Append(@,[step |-> before.siteInspection.step,kind |-> InspectionStepInfo7(before.siteInspection.step).kind,events |-> events,
chosen |-> Len(after.siteInspection.choices),central |-> InspectionCentralChoices7(after.siteInspection),performed |-> Cardinality(ActualItemInspectionesInInspection7(after.itemInspectionHistory,after.siteInspection.id))])]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualItemInspectionesInInspection7, InspectionCentralChoices7, InspectionStepInfo7
InspectionRoundAfterT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionRoundAfterT11(b) == [b EXCEPT !.step="ProcedureCode1404a82ab3ee",!.selectionPending=FALSE,!.selectedObject=0,!.selectedSource="NoValue",!.currentItemInspectionId=0]Exact module download · Source bundle and reproduction instructions
InspectionSelectT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionSelectT11(b,id,source) == [b EXCEPT !.choices=Append(@,[object |-> id,source |-> source,chooser |-> "SideB"]),!.selectionPending=TRUE,!.selectedObject=id,!.selectedSource=source]Exact module download · Source bundle and reproduction instructions
InspectionTargetSiteT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionTargetSiteT11(kind) == IF kind="SchemaAtom132" THEN "AuxiliarySite1" ELSE kindExact module download · Source bundle and reproduction instructions
InspectionViewT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionViewT11(s) == InspectionCandidates7(s.siteInspection,s.capacity,s.objects,s.deck,{})Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionCandidates7
InspectionWorkedT11 · operator
reference-profile · input revision 2 · CC0 1.0
InspectionWorkedT11(kind,step,decision) ==
LET b==[InspectionInitialT11(kind,7) EXCEPT !.active=TRUE,!.beginMet=TRUE,!.step=step,
!.archivesPrepared=kind="SchemaAtom018" /\ step \notin {"ProcedureCode839b301bad95"},!.limitSet=kind \in {"SchemaAtom082","SchemaAtom129"} /\ step \notin {"ProcedureCode839b301bad95","ProcedureCodeb6067693902e"}]
IN IF step \in {"ProcedureCode1404a82ab3ee","ProcedureCodee35e7c8fc57b","ProcedureCodeb1fbc90c4ab0","ProcedureCode8c612115d469"} THEN
[b EXCEPT !.choices= <<[object |-> 1,source |-> "SchemaAtom033",chooser |-> "SideB"]>>,
!.selectionPending=step="ProcedureCode1404a82ab3ee" /\ decision="Choose",!.selectedObject=IF step="ProcedureCode1404a82ab3ee" /\ decision="Choose" THEN 1 ELSE 0,
!.selectedSource=IF step="ProcedureCode1404a82ab3ee" /\ decision="Choose" THEN "SchemaAtom033" ELSE "NoValue"] ELSE bExact module download · Source bundle and reproduction instructions
Resolved project definitions: InspectionInitialT11