AdditionalChecksMC¶
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 1,465 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.
BidAdvance1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidAdvance1014(world,changed) ==
LET x==MarkAdvance1011(world,world.lifetimeAuthority,changed,IF changed.objects=world.objects THEN "ActualTimingTransition" ELSE "ActualObjectTransition") IN [x EXCEPT !.after.lifetimeAuthority=x.authority]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkAdvance1011
BidAt1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidAt1014(world,frame) == [world EXCEPT !.bidFrames=ReplacementOverlay99(@,[id \in {frame.id} |-> frame]),!.bidOwners=ReplacementOverlay99(@,[id \in {frame.id} |-> frame.caller])]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99
BidBindingChecks1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidBindingChecks1014 ==
LET w==BidWorld1014("SideB","Specimen0006","Specimen0097") x==BidCase1014(w,"Specimen0006",FALSE,1,1,{1000},{1100})
badContext==[x.start.context EXCEPT !.templates[1].sourceSHA="Unbound",!.state.effects[1].sourceSHA="Unbound",!.actualEffects[1].sourceSHA="Unbound"]
removed==[x.start.context EXCEPT !.state.effects=Empty10,!.actualEffects=Empty10]
modified==[x.start.context EXCEPT !.state.effects[1].costProfile="ModifiedCost",!.actualEffects[1].costProfile="ModifiedCost"]
wrongOwner==[x.start.world EXCEPT !.bidOwners[140]=BidReference1014(2)]
cp==BidCheckpoint1014(BidPublishedWorld1014(x),x.paid,"Payment") cw==BidCheckpointWorld1014(BidPublishedWorld1014(x),x.paid,cp)
IN /\ ~BidPacket1014(badContext,badContext.currentRef,w,1,CardFacts10,BidPacketFixture1014(badContext))
/\ ~BeginBid1014(removed,removed.currentRef,w,1,CardFacts10,140,x.start.packet,x.start.frame,x.start.world.bidFrames,x.start.world.usedBidFrames)
/\ BidInstructionSupport1014(modified.actualEffects[1])="RequiresModifiedNestedCostAdapter"
/\ ~BidPacket1014(modified,modified.currentRef,w,1,CardFacts10,BidPacketFixture1014(modified))
/\ ~SelectSecretBid1014(x.start.frame,x.first,wrongOwner,"SideA",1,CardFacts10)
/\ ~RevealBids1014(x.ready,x.revealed,x.revealWorld,CardFacts10,[p \in SetupPlayers |-> 14501],x.revealWorld.bidContinuations[140])
/\ ~BidCheckpointReady1014(x.paid,[cw EXCEPT !.outcome="SideA"],cp,EscalatingResourceContestLedger108(cp))
/\ ~BidPublished1014([x.event EXCEPT !.sourceCard="Specimen0008"],[cw EXCEPT !.bidEvents[x.event.id]=[x.event EXCEPT !.sourceCard="Specimen0008"]])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidCase1014, BidCheckpoint1014, BidCheckpointWorld1014, BidPacketFixture1014, BidPublishedWorld1014, BidReference1014, BidWorld1014, Empty10, EscalatingResourceContestLedger108, BeginBid1014, BidCheckpointReady1014, BidInstructionSupport1014, BidPacket1014, BidPublished1014, RevealBids1014, SelectSecretBid1014, SetupPlayers, CardFacts10
BidCase1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidCase1014(world,card,general,nc,nr,pc,pr) ==
LET start==BidStart1014(world,card,general)
first==BidSelected1014(start.frame,IF general THEN "SideB" ELSE "SideA",IF general THEN nr ELSE nc)
both==IF general THEN first ELSE BidSelected1014(first,"SideB",nr)
ready==IF general THEN [both EXCEPT !.generalStages={"Selection","Guess"},!.generalCheckpoints={14601,14602},!.guess="Even"] ELSE both
rw==BidRevealWorld1014(start.world,ready) revealed==BidRevealed1014(ready,rw)
p1==IF general THEN "SideB" ELSE world.turn.owner p2==IF p1="SideA" THEN "SideB" ELSE "SideA"
chosen1==BidPlanSelected1014(revealed,p1,IF p1="SideA" THEN pc ELSE pr)
chosen==IF general THEN chosen1 ELSE BidPlanSelected1014(chosen1,p2,IF p2="SideA" THEN pc ELSE pr)
paying==BidAt1014(rw,chosen) paid==BidPaidFrame1014(chosen)
selected==UNION {chosen.plans[p] : p \in chosen.packet.participants}
converted=={id \in selected : world.objects[id].card#"none"}
successors==[id \in converted |-> id+10000]
afterObjects==CheckpointRetireMap103(world.objects,selected,successors,world.printed,world.owners,world.visible)
events==IF converted={} THEN {} ELSE {MovementEvent8(14700,"Retire",converted)}
history==IF converted={} THEN world.movementHistory ELSE ReplacementOverlay99(world.movementHistory,[id \in {14700} |-> MovementEvent8(14700,"Retire",converted)])
receipts==[p \in chosen.packet.participants |-> BidCompletedCost1014(chosen.costs[p],chosen.plans[p])]
snapshot==MarkSnapshot1011(101,0,"BidsPaid",BidObserverDefinitions1014(world.objects[900].card),[world EXCEPT !.objects=afterObjects])
event==BidPaymentEvent1014(paid,paying,14800,snapshot)
IN [start |-> start,first |-> first,both |-> both,ready |-> ready,revealWorld |-> rw,revealed |-> revealed,chosen1 |-> chosen1,chosen |-> chosen,paying |-> paying,paid |-> paid,selected |-> selected,converted |-> converted,
successors |-> successors,afterObjects |-> afterObjects,events |-> events,history |-> history,receipts |-> receipts,snapshot |-> snapshot,event |-> event]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, BidAt1014, BidObserverDefinitions1014, BidPlanSelected1014, BidRevealWorld1014, BidRevealed1014, BidSelected1014, BidStart1014, MarkSnapshot1011, BidCompletedCost1014, BidPaidFrame1014, BidPaymentEvent1014, CheckpointRetireMap103, MovementEvent8
BidCaseValid1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidCaseValid1014(x) ==
/\ BeginBid1014(x.start.context,x.start.context.currentRef,x.start.before,1,CardFacts10,140,x.start.packet,x.start.frame,x.start.world.bidFrames,x.start.world.usedBidFrames)
/\ SelectSecretBid1014(x.start.frame,x.first,x.start.world,IF x.start.frame.packet.kind="SimultaneousBidComparisonGame" THEN "SideA" ELSE "SideB",x.first.selections[IF x.start.frame.packet.kind="SimultaneousBidComparisonGame" THEN "SideA" ELSE "SideB"],CardFacts10)
/\ (x.start.frame.packet.kind="SimultaneousBidComparisonGame" => SelectSecretBid1014(x.first,x.both,BidAt1014(x.start.world,x.first),"SideB",x.both.selections["SideB"],CardFacts10))
/\ RevealBids1014(x.ready,x.revealed,x.revealWorld,CardFacts10,BidTransactions1014(x.ready),x.revealWorld.bidContinuations[140])
/\ ChooseBidPaymentSources1014(x.revealed,x.chosen1,BidAt1014(x.revealWorld,x.revealed),x.chosen1.choiceOrder[1],x.chosen1.plans[x.chosen1.choiceOrder[1]],CardFacts10)
/\ (x.start.frame.packet.kind="SimultaneousBidComparisonGame" => ChooseBidPaymentSources1014(x.chosen1,x.chosen,BidAt1014(x.revealWorld,x.chosen1),x.chosen.choiceOrder[2],x.chosen.plans[x.chosen.choiceOrder[2]],CardFacts10))
/\ CommitBidPayments1014(x.chosen,x.paid,x.paying,CardFacts10,x.afterObjects,x.successors,14700,x.history,x.events,x.receipts)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidAt1014, BidTransactions1014, BeginBid1014, ChooseBidPaymentSources1014, CommitBidPayments1014, RevealBids1014, SelectSecretBid1014, CardFacts10
BidCheckpoint1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidCheckpoint1014(world,frame,stage) ==
LET caller==IF stage="Payment" THEN BidCheckpointSite1014(frame) ELSE [kind |-> "GeneralBiddingInstructionEnd",bidId |-> frame.id,caller |-> frame.caller,stage |-> stage]
IN ReplacementOverlay99([NewCheckpoint103(IF stage="Payment" THEN 14600 ELSE IF stage="Selection" THEN 14601 ELSE 14602,caller,world.id,world.inside) EXCEPT !.phase="Returned",!.point="ProcedureCodeb74d673a0fc6",!.owed= <<>>,!.done=CheckpointStageSet103,
!.returned=TRUE,!.recognition=[id |-> IF stage="Payment" THEN 14600 ELSE IF stage="Selection" THEN 14601 ELSE 14602,caller |-> caller],!.recognized=Empty10],[site |-> caller])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, Empty10, BidCheckpointSite1014, CheckpointStageSet103, NewCheckpoint103
BidCheckpointChecks1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidCheckpointChecks1014 ==
LET x==BidCase1014(BidWorld1014("SideB","Specimen0006","Specimen0097"),"Specimen0006",FALSE,0,0,{}, {})
w==BidPublishedWorld1014(x) cp==BidCheckpoint1014(w,x.paid,"Payment") cw==BidCheckpointWorld1014(w,x.paid,cp)
completion==[tag |-> "BiddingInstructionComplete",bidId |-> 140,caller |-> x.paid.revealCaller,result |-> x.paid.result,checkpoint |-> cp.id,paid |-> TRUE]
done==[x.paid EXCEPT !.phase="Complete",!.complete=TRUE]
IN /\ BidCheckpointReady1014(x.paid,cw,cp,EscalatingResourceContestLedger108(cp))
/\ FinishBid1014(x.paid,done,cw,cp,EscalatingResourceContestLedger108(cp),completion)
/\ ReturnBid1014(done,[done EXCEPT !.phase="Returned",!.returned=TRUE],completion,x.paid.revealCaller)
/\ ~BidCheckpointReady1014(x.chosen,BidAt1014(cw,x.chosen),cp,EscalatingResourceContestLedger108(cp))
/\ ~BidCheckpointReady1014(x.paid,cw,[cp EXCEPT !.caller=x.paid.caller],EscalatingResourceContestLedger108(cp))
/\ ~BidCheckpointReady1014(x.paid,[cw EXCEPT !.conditionalLedger=[checkpoints |-> Empty10,instances |-> Empty10]],cp,EscalatingResourceContestLedger108(cp))
/\ ~BidCheckpointReady1014(x.paid,[cw EXCEPT !.bidCosts=Without101(@,{14502})],cp,EscalatingResourceContestLedger108(cp))
/\ ~ReturnBid1014(done,[done EXCEPT !.phase="Returned",!.returned=TRUE],completion,BidReference1014(2))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidAt1014, BidCase1014, BidCheckpoint1014, BidCheckpointWorld1014, BidPublishedWorld1014, BidReference1014, BidWorld1014, Empty10, EscalatingResourceContestLedger108, BidCheckpointReady1014, FinishBid1014, ReturnBid1014, Without101
BidCheckpointWorld1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidCheckpointWorld1014(world,frame,cp) == [BidAt1014(world,frame) EXCEPT !.checkpoints=[id \in {cp.id} |-> cp],!.conditionalLedger=EscalatingResourceContestLedger108(cp)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidAt1014, EscalatingResourceContestLedger108
BidContext1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidContext1014(world,card,general) ==
LET e==[id |-> 1,kind |-> IF general THEN "SecretBid" ELSE "SimultaneousBidComparisonGame",baseOrigin |-> BidReference1014(1).source,sourceCard |-> card,sourceSHA |-> CardFacts10[card].sourceSHA,
costProfile |-> "UnmodifiedNestedResourceUnits",participants |-> IF general THEN {"SideB"} ELSE SetupPlayers,rangeMode |-> IF ~general THEN "SchemaAtom127" ELSE IF card="Specimen0200" THEN "AtMost" ELSE "AnyAffordable",allowed |-> [p \in IF general THEN {"SideB"} ELSE SetupPlayers |-> IF general /\ card#"Specimen0200" THEN 0..5 ELSE {0,1,2}],
reveal |-> IF general THEN "LaterInstruction" ELSE "Immediate",classification |-> IF general THEN "GeneralBid" ELSE IF card \in {"Specimen0043","Specimen0137","Specimen0053"} THEN "LegacyPairedSimultaneousBidComparison" ELSE "PrintedSimultaneousBidComparison"]
IN [id |-> 14010,currentWorld |-> world.id,currentRef |-> BidReference1014(1),phase |-> "Resolving",templates |-> [id \in {1} |-> e],state |-> [effects |-> [id \in {1} |-> e]],actualEffects |-> [id \in {1} |-> e]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidReference1014, SetupPlayers, CardFacts10
BidContinuation1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidContinuation1014(world,frame,guess) ==
IF guess THEN [tag |-> "AuthorizedBidGuess",bidId |-> frame.id,instance |-> frame.caller.abilityInstance,player |-> "SideA",snapshotId |-> world.id]
ELSE [tag |-> "AuthorizedBidReveal",bidId |-> frame.id,instance |-> frame.caller.abilityInstance,snapshotId |-> world.id,source |-> frame.caller.source,instruction |-> IF frame.packet.reveal="Immediate" THEN frame.caller ELSE BidReference1014(3)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidReference1014
BidDetachedChecks1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidDetachedChecks1014 ==
LET w0==BidWorld1014("SideB","Specimen0137","Specimen0096")
moved==[w0.objects[500] EXCEPT !.zone="SideADiscard",!.deployed=FALSE,!.activated=FALSE,!.marks={},!.loc=0]
w==BidRebase1014([w0 EXCEPT !.objects=ReplacementOverlay99(Without101(@,{500}),[id \in {501} |-> moved]),!.usedObjects=@ \cup {501},!.controllers=ReplacementOverlay99(Without101(@,{500}),[id \in {501} |-> "SideA"])])
parent==OpenAbilityResolution9(14000,"Paid",ObjectAbilitySource9(500),"Play",<<14001>>,14009)
detached==[parent EXCEPT !.detached=TRUE]
imminent==[detached EXCEPT !.phase="Imminent",!.firstImminent=TRUE]
x==BidCase1014(w,"Specimen0137",FALSE,1,0,{1000},{})
IN /\ CardBatchTransfer8(w0.objects,w.objects,{500},[id \in {500} |-> 501],w0.usedObjects,"SideADiscard","Up",[id \in {500} |-> 0])
/\ DetachPaidAbility9(parent,detached,[abilityInstance |-> 14000,allPaid |-> TRUE]) /\ BeginAbilityInstructions9(detached,imminent,TRUE,FALSE)
/\ BidCaseValid1014(x) /\ BidPublishValid1014(x) /\ 500 \notin DOMAIN x.paying.objects /\ x.receipts["SideA"].source=ObjectAbilitySource9(500)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BeginAbilityInstructions9, DetachPaidAbility9, ObjectAbilitySource9, OpenAbilityResolution9, ReplacementOverlay99, BidCase1014, BidCaseValid1014, BidPublishValid1014, BidRebase1014, BidWorld1014, Without101, CardBatchTransfer8
BidExampleFamily022Checks1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidExampleFamily022Checks1014 ==
LET w0==BidWorld1014("SideB","Specimen0006","Specimen0097")
current==[w0 EXCEPT !.objects[700].zone="Play",!.activeAbilities={14701},!.abilitySources=[id \in {14701} |-> ObjectAbilitySource9(700)],!.abilityRoles=[id \in {14701} |-> "BidForbidTwo"]]
restriction==[tag |-> "CurrentBidValueRestriction",ability |-> 14701,snapshotId |-> current.id,forbidden |-> 2,source |-> ObjectAbilitySource9(700),sourceObject |-> current.objects[700],sourceSHA |-> CardFacts10["Specimen0102"].sourceSHA]
w==BidRebase1014([current EXCEPT !.bidValueRestrictions=[id \in {700} |-> restriction]]) s==BidStart1014(w,"Specimen0006",FALSE)
IN /\ BidWalletFresh1014(w) /\ BidExampleFamily022Ids1014(w,CardFacts10)={700}
/\ \A p \in SetupPlayers : BidPaymentPlans1014(w,p,2,CardFacts10)={} /\ BidPaymentPlans1014(w,p,0,CardFacts10)={{}} /\ BidPaymentPlans1014(w,p,1,CardFacts10)#{}
/\ SelectSecretBid1014(s.frame,BidSelected1014(s.frame,"SideA",1),s.world,"SideA",1,CardFacts10)
/\ ~SelectSecretBid1014(s.frame,BidSelected1014(s.frame,"SideA",2),s.world,"SideA",2,CardFacts10)
/\ ~BidWalletFresh1014([w EXCEPT !.bidValueRestrictions=Empty10])
/\ ~BidWalletFresh1014([w EXCEPT !.bidValueRestrictions[700].sourceSHA="Unbound"])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, BidRebase1014, BidSelected1014, BidStart1014, BidWorld1014, Empty10, BidExampleFamily022Ids1014, BidPaymentPlans1014, BidWalletFresh1014, SelectSecretBid1014, SetupPlayers, CardFacts10
BidGeneralChecks1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidGeneralChecks1014 ==
LET w==BidWorld1014("SideB","Specimen0191","Specimen0161") s==BidStart1014(w,"Specimen0191",TRUE)
selected==BidSelected1014(s.frame,"SideB",3)
cp1==BidCheckpoint1014(s.world,selected,"Selection") cw1==BidCheckpointWorld1014(s.world,selected,cp1)
after1==[selected EXCEPT !.generalStages={"Selection"},!.generalCheckpoints={14601}]
guessWorld==[BidAt1014(cw1,after1) EXCEPT !.bidContinuations=[id \in {140} |-> BidContinuation1014(w,after1,TRUE)]]
guessed==[after1 EXCEPT !.guess="Even"]
cp2==BidCheckpoint1014(guessWorld,guessed,"Guess") cw2==BidCheckpointWorld1014(guessWorld,guessed,cp2)
ready==[guessed EXCEPT !.generalStages=@ \cup {"Guess"},!.generalCheckpoints=@ \cup {14602}]
x==BidCase1014(w,"Specimen0191",TRUE,0,3,{},1100..1102)
revealWorld==BidRevealWorld1014(cw2,ready)
changed==BidRebase1014([revealWorld EXCEPT !.objects=Without101(@,{1100,1101,1102,1200,1300})])
IN /\ SelectSecretBid1014(s.frame,selected,s.world,"SideB",3,CardFacts10)
/\ GeneralBidInstructionCheckpoint1014(selected,after1,cw1,cp1,EscalatingResourceContestLedger108(cp1))
/\ RecordBidGuess1014(after1,guessed,guessWorld,"SideA","Even",guessWorld.bidContinuations[140])
/\ GeneralBidInstructionCheckpoint1014(guessed,ready,cw2,cp2,EscalatingResourceContestLedger108(cp2)) /\ ready=x.ready
/\ RevealBids1014(ready,BidRevealed1014(ready,revealWorld),revealWorld,CardFacts10,BidTransactions1014(ready),revealWorld.bidContinuations[140])
/\ BidCaseValid1014(x) /\ BidPublishValid1014(x) /\ x.receipts["SideB"].instruction=BidReference1014(3)
/\ ~BidGuessCorrect1014(x.paid) /\ x.paid.packet.participants={"SideB"}
/\ BidRevealSupport1014(ready,changed,CardFacts10)="RequiresChangedPayabilityAdapter"
/\ ~RevealBids1014(ready,BidRevealed1014(ready,changed),changed,CardFacts10,BidTransactions1014(ready),changed.bidContinuations[140])
/\ ~RecordBidGuess1014(selected,[selected EXCEPT !.guess="Even"],BidAt1014(guessWorld,selected),"SideA","Even",guessWorld.bidContinuations[140])
/\ LET w2==BidWorld1014("SideB","Specimen0200","Specimen0161") s2==BidStart1014(w2,"Specimen0200",TRUE)
IN /\ SelectSecretBid1014(s2.frame,BidSelected1014(s2.frame,"SideB",2),s2.world,"SideB",2,CardFacts10)
/\ ~SelectSecretBid1014(s2.frame,BidSelected1014(s2.frame,"SideB",3),s2.world,"SideB",3,CardFacts10)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidAt1014, BidCase1014, BidCaseValid1014, BidCheckpoint1014, BidCheckpointWorld1014, BidContinuation1014, BidPublishValid1014, BidRebase1014, BidReference1014, BidRevealWorld1014, BidRevealed1014, BidSelected1014, BidStart1014, BidTransactions1014, BidWorld1014, EscalatingResourceContestLedger108, BidGuessCorrect1014, BidRevealSupport1014, GeneralBidInstructionCheckpoint1014, RecordBidGuess1014, RevealBids1014, SelectSecretBid1014, Without101, CardFacts10
BidGrant1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidGrant1014(world,lock) ==
LET host==IF lock THEN 650 ELSE 600 card==IF lock THEN "Specimen0205" ELSE "Specimen0089" kind==IF lock THEN "BarrierInstruction" ELSE "Conditional" eid==IF lock THEN 141402 ELSE 141401
source==ObjectAbilitySource9(host)
blueprint==[kind |-> "Ordinary",source |-> source,originKind |-> kind,target |-> IF lock THEN "SideB" ELSE host,
value |-> [kind |-> IF lock THEN "CannotSpendResourceUnits" ELSE "SpendHostedResourceUnits",player |-> "SideB",host |-> host,traversalId |-> world.traversal.id,sourceCard |-> card,sourceSHA |-> CardFacts10[card].sourceSHA],
baseDuration |-> [kind |-> "Timing",ref |-> TimingRef9("SchemaAtom138",world.traversal.id)],durationMode |-> "Specified",durationClass |-> "SchemaAtom138",choiceKey |-> IF lock THEN "ExampleFamily050SpendLock" ELSE "ExampleFamily019Spend",lingeringConsumers |-> {},otherConsumers |-> {},definitionId |-> eid]
parent==[OpenAbilityResolution9(14100,kind,source,"Play",<<14101>>,14109) EXCEPT !.phase="Resolving",!.firstImminent=TRUE,!.detached=TRUE]
plan==[OpenInstruction93(14101,"Ability",14100,source,"Play",1,"NoValue",<<"CreateLingering">>,FALSE) EXCEPT !.phase="Resolving"]
blueprints==[id \in {eid} |-> blueprint]
effect==[id |-> 1,kind |-> "CreateLingering",sourceCard |-> card,sourceSHA |-> CardFacts10[card].sourceSHA,baseOrigin |-> source,blueprints |-> blueprints]
context==[id |-> 14102,imminenceId |-> IF lock THEN 14104 ELSE 14103,phase |-> "Resolving",currentRef |-> InstructionWindowRef93(plan),currentWorld |-> world.id,templates |-> [id \in {1} |-> effect],state |-> [effects |-> [id \in {1} |-> effect]],actualEffects |-> [id \in {1} |-> effect]]
origin==[kind |-> "Instruction",plan |-> plan,parent |-> parent,ruleStep |-> "NoValue"]
execution==[tag |-> "LingeringEffectExecution",contextId |-> context.id,instruction |-> context.currentRef,operation |-> 1,snapshotId |-> world.id,source |-> source,blueprints |-> blueprints,carriedOut |-> TRUE]
row==NewLingeringEffect910(eid,blueprint,context,1,world.lifetimeAuthority.current)
registry==[world.lingering EXCEPT !.effects=ReplacementOverlay99(@,[id \in {eid} |-> row]),!.usedEffects=@ \cup {eid},!.creations=@ \cup {LingeringCreationKey910(context,1)}]
IN [before |-> world,after |-> [world EXCEPT !.lingering=registry],context |-> context,origin |-> origin,execution |-> execution]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InstructionWindowRef93, LingeringCreationKey910, NewLingeringEffect910, ObjectAbilitySource9, OpenAbilityResolution9, OpenInstruction93, ReplacementOverlay99, TimingRef9, CardFacts10
BidGrantChecks1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidGrantChecks1014 ==
LET plain==BidPlainWorld1014("SideB","Specimen0006","Specimen0097") g==BidGrant1014(plain,FALSE)
only==BidRebase1014([g.after EXCEPT !.objects=Without101(@,{1100,1101,1102,1300})])
noGrant==BidRebase1014([plain EXCEPT !.objects=only.objects])
lock==BidGrant1014(g.after,TRUE)
blank==BidAdvance1014(g.after,[g.after EXCEPT !.id=101,!.objects[600].face="Down"])
end0==[g.after.traversal EXCEPT !.complete=TRUE,!.phase="Complete"]
ended==BidAdvance1014(g.after,[g.after EXCEPT !.id=102,!.traversal=end0,!.control.traversal=end0,!.inside={}])
outside==BidRebase1014([only EXCEPT !.inside={}])
x==BidCase1014(only,"Specimen0006",FALSE,0,1,{}, {1200})
IN /\ BidGrantValid1014(g) /\ BidGrantValid1014(lock)
/\ BidPaymentPlans1014(only,"SideB",1,CardFacts10)={{1200}} /\ BidPaymentPlans1014(only,"SideB",2,CardFacts10)={}
/\ BidPaymentPlans1014(noGrant,"SideB",1,CardFacts10)={} /\ noGrant.traversal.successful
/\ BidCaseValid1014(x) /\ x.receipts["SideB"].permissionSources={ObjectAbilitySource9(600)}
/\ MarkAdvanceValid1011(blank) /\ BidWalletFresh1014(blank.after) /\ 1200 \in BidEligibleResourceUnits1014(blank.after,"SideB",CardFacts10)
/\ MarkAdvanceValid1011(ended) /\ BidWalletFresh1014(ended.after) /\ 1200 \notin BidEligibleResourceUnits1014(ended.after,"SideB",CardFacts10)
/\ BidPaymentPlans1014(outside,"SideB",1,CardFacts10)={} /\ DuringTraversal6(outside.traversal)
/\ BidPaymentPlans1014(lock.after,"SideB",1,CardFacts10)={} /\ BidPaymentPlans1014(lock.after,"SideB",0,CardFacts10)={{}}
/\ BidCaseValid1014(BidCase1014(lock.after,"Specimen0006",FALSE,0,0,{},{}))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, BidAdvance1014, BidCase1014, BidCaseValid1014, BidGrant1014, BidGrantValid1014, BidPlainWorld1014, BidRebase1014, MarkAdvanceValid1011, BidEligibleResourceUnits1014, BidPaymentPlans1014, BidWalletFresh1014, Without101, CardFacts10, DuringTraversal6
BidGrantValid1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidGrantValid1014(x) == CreateObservedLingeringEffects910(x.before.lingering,x.after.lingering,x.context,x.origin,1,x.execution,x.before.lifetimeAuthority)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CreateObservedLingeringEffects910
BidMatrixChecks1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidMatrixChecks1014 ==
/\ \A active \in SetupPlayers,nc,nr \in 0..2 :
LET x==BidCase1014(BidWorld1014(active,"Specimen0006","Specimen0097"),"Specimen0006",FALSE,nc,nr,1000..(999+nc),1100..(1099+nr)) IN
/\ BidCaseValid1014(x) /\ BidPublishValid1014(x) /\ BidPublished1014(x.event,BidPublishedWorld1014(x))
/\ x.paid.result=IF nc=nr THEN "Equal" ELSE "Different"
/\ x.start.world.objects=x.revealWorld.objects /\ x.revealWorld.objects=x.paying.objects
/\ Cardinality(DOMAIN x.paying.objects \ DOMAIN x.afterObjects)=nc+nr
/\ x.receipts["SideA"].id#x.receipts["SideB"].id /\ x.receipts["SideA"].announced /\ x.receipts["SideB"].announced
/\ \A p \in SetupPlayers : x.receipts[p].payer=p /\ x.receipts[p].specification[1].amount=x.paid.selections[p] /\ x.receipts[p].source=x.paid.caller.source
/\ LET w==BidWorld1014("SideB","Specimen0043","Specimen0096") x==BidCase1014(w,"Specimen0043",FALSE,0,0,{},{} ) IN
/\ BidCaseValid1014(x) /\ x.paid.packet.classification="LegacyPairedSimultaneousBidComparison" /\ x.afterObjects=w.objects
/\ x.receipts["SideA"].specification[1].amount=0 /\ x.receipts["SideB"].specification[1].category="Nested"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidCase1014, BidCaseValid1014, BidPublishValid1014, BidPublishedWorld1014, BidWorld1014, BidPublished1014, SetupPlayers
BidMixedWorld1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidMixedWorld1014 ==
LET w==BidWorld1014("SideA","Specimen0006","Specimen0097")
converted==[id \in {1400,1401} |-> ReplacementOverlay99(BidResourceUnit1014(IF id=1400 THEN "SideAResourceUnits" ELSE "SideBResourceUnits",0),
[card |-> IF id=1400 THEN "Specimen0046" ELSE "NeutralValue00006",owner |-> IF id=1400 THEN "SideA" ELSE "SideB",marks |-> {"ConvertedResourceUnitOldMark"}])]
IN BidRebase1014([w EXCEPT !.objects=ReplacementOverlay99(@,converted),!.usedObjects=@ \cup DOMAIN converted,!.controllers=ReplacementOverlay99(@,[id \in DOMAIN converted |-> IF id=1400 THEN "SideA" ELSE "SideB"])])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, BidRebase1014, BidResourceUnit1014, BidWorld1014
BidMovementChecks1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidMovementChecks1014 ==
LET x==BidCase1014(BidMixedWorld1014,"Specimen0006",FALSE,2,2,{1000,1400},{1100,1401})
wrong==Without101(x.paying.objects,x.chosen.plans["SideA"])
changed==BidRebase1014([x.paying EXCEPT !.objects=Without101(@,{1102})])
IN /\ BidCaseValid1014(x) /\ BidPublishValid1014(x) /\ x.converted={1400,1401}
/\ x.afterObjects[11400].zone="SideADiscard" /\ x.afterObjects[11401].zone="SideBDiscard"
/\ x.afterObjects[11400].marks={} /\ x.afterObjects[11401].marks={} /\ x.afterObjects[1200]=x.paying.objects[1200]
/\ x.history[14700].originalObjects={1400,1401} /\ Cardinality(x.events)=1 /\ Cardinality(DOMAIN x.receipts)=2
/\ ~CommitBidPayments1014(x.chosen,x.paid,x.paying,CardFacts10,wrong,Empty10,14700,x.paying.movementHistory,{},x.receipts)
/\ ~CommitBidPayments1014(x.chosen,x.paid,changed,CardFacts10,x.afterObjects,x.successors,14700,x.history,x.events,x.receipts)
/\ ~CommitBidPayments1014(x.chosen,[x.paid EXCEPT !.result="Different"],x.paying,CardFacts10,x.afterObjects,x.successors,14700,x.history,x.events,x.receipts)
/\ ~CommitBidPayments1014([x.chosen EXCEPT !.costs["SideA"].optionalInterrupts={1}],x.paid,BidAt1014(x.paying,[x.chosen EXCEPT !.costs["SideA"].optionalInterrupts={1}]),CardFacts10,x.afterObjects,x.successors,14700,x.history,x.events,x.receipts)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidAt1014, BidCase1014, BidCaseValid1014, BidMixedWorld1014, BidPublishValid1014, BidRebase1014, Empty10, CommitBidPayments1014, Without101, CardFacts10
BidObserverChecks1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidObserverChecks1014 ==
/\ \A card \in {"Specimen0161","Specimen0096","Specimen0113","Specimen0097"},nr \in {0,1} :
LET x==BidCase1014(BidWorld1014("SideB","Specimen0006",card),"Specimen0006",FALSE,0,nr,{},1100..(1099+nr))
w==BidPublishedWorld1014(x) defs==BidObserverDefinitions1014(card) d==defs[CHOOSE key \in DOMAIN defs : TRUE]
holds==BidObserverCondition1014(BidObserverRule1014(card),x.event,Empty10,CardFacts10)
event==BidOccurrence1014(x,d) events==IF holds THEN [id \in {event.id} |-> event] ELSE Empty10
q==BidRecognition1014(w,defs,events,14910)
IN /\ BidCaseValid1014(x) /\ BidPublishValid1014(x)
/\ (holds => PublishBidOccurrence1014(w,x.event,d,card,Empty10,event,CardFacts10))
/\ EscalatingResourceContestRecognitionValid108(q) /\ Cardinality(DOMAIN q.after.instances)=IF holds THEN 1 ELSE 0
/\ (card="Specimen0096" => holds /\ ((x.event.result="Different")=(nr=1)))
/\ (card="Specimen0113" => holds /\ x.event.amounts["SideA"]=0)
/\ (card="Specimen0097" => holds=(nr=1))
/\ LET x==BidCase1014(BidWorld1014("SideB","Specimen0191","Specimen0161"),"Specimen0191",TRUE,0,0,{},{} )
y==BidCase1014(BidWorld1014("SideB","Specimen0008","Specimen0097"),"Specimen0008",FALSE,1,1,{1000},{1100})
IN /\ BidCaseValid1014(x) /\ BidPublishValid1014(x) /\ ~BidObserverCondition1014("BothReveal",x.event,Empty10,CardFacts10)
/\ BidCaseValid1014(y) /\ ~BidObserverCondition1014("SideBSpentFromSideATraversalAbility",y.event,Empty10,CardFacts10)
/\ ~BidObserverCondition1014("FirstReveal",y.event,[id \in {1} |-> [y.event EXCEPT !.id=1]],CardFacts10)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidCase1014, BidCaseValid1014, BidObserverDefinitions1014, BidOccurrence1014, BidPublishValid1014, BidPublishedWorld1014, BidRecognition1014, BidWorld1014, Empty10, EscalatingResourceContestRecognitionValid108, BidObserverCondition1014, BidObserverRule1014, PublishBidOccurrence1014, CardFacts10
BidObserverDefinitions1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidObserverDefinitions1014(card) ==
LET d==[EscalatingResourceContestConditional108(14900,card,"AnyResult") EXCEPT !.trigger.kinds={"BidsRevealedAndPaid"}]
IN [key \in {ConditionalKey96(d)} |-> d]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalKey96, EscalatingResourceContestConditional108
BidOccurrence1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidOccurrence1014(x,d) ==
ReplacementOverlay99(EscalatingResourceContestOccurrenceBase108(14801,"BidsRevealedAndPaid",500,CardFacts10[x.paid.packet.sourceCard].side,CardFacts10[x.paid.packet.sourceCard].side,x.event.snapshot,x.event.id),
[scopeKind |-> "Ability",scopeDefinition |-> ConditionalKey96(d),bidId |-> x.event.bidId,amounts |-> x.event.amounts,result |-> x.event.result])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalKey96, ReplacementOverlay99, EscalatingResourceContestOccurrenceBase108, CardFacts10
BidPacketFixture1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidPacketFixture1014(context) ==
LET e==context.actualEffects[1] IN [key |-> <<context.id,context.currentRef,1>>,reference |-> context.currentRef,sourceCard |-> e.sourceCard,sourceSHA |-> e.sourceSHA,
participants |-> e.participants,allowed |-> e.allowed,rangeMode |-> e.rangeMode,kind |-> e.kind,reveal |-> e.reveal,classification |-> e.classification]Exact module download · Source bundle and reproduction instructions
BidPlainWorld1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidPlainWorld1014(active,card,observer) ==
LET b==MarkBase1011(active).world
cards==[id \in {500,600,650,700,900} |-> LET cid==CASE id=500 -> card [] id=600 -> "Specimen0089" [] id=650 -> "Specimen0205" [] id=700 -> "Specimen0102" [] OTHER -> observer
IN EscalatingResourceContestCard108(cid,id \in {500,600,650,900} /\ CardFacts10[cid].kind \notin {"Profile","Action","Plan"},id \in {500,650,900} /\ CardFacts10[cid].kind \in {"Barrier","Facility","Attachment"})]
objects==ReplacementOverlay99(cards,ReplacementOverlay99([id \in 1000..1002 |-> BidResourceUnit1014("SideAResourceUnits",0)],
ReplacementOverlay99([id \in 1100..1102 |-> BidResourceUnit1014("SideBResourceUnits",0)],
ReplacementOverlay99([id \in {1200} |-> BidResourceUnit1014("Play",600)],[id \in {1300} |-> LiabilityMarkerFundRow106]))))
traversal==[OpenTraversal6(44,45,"NormalizedSuccessfulTraversal") EXCEPT !.formalBegun=TRUE,!.attacked="SchemaAtom082",!.phase="Success",!.step="ProcedureCodebbb14496b09b",!.reachedSuccess=TRUE,!.successful=TRUE]
w==ReplacementOverlay99(b,[id |-> 100,objects |-> [objects EXCEPT ![700].zone="SideBDiscard"],cardFacts |-> CardFacts10,sourceDefinitions |-> [c \in DOMAIN CardFacts10 |-> c],definitions |-> [c \in DOMAIN CardFacts10 |-> c],
control |-> [b.control EXCEPT !.traversal=traversal],traversal |-> traversal,inside |-> {TimingRef9("SchemaAtom138",44)},started |-> TRUE,
controllers |-> [id \in DOMAIN objects |-> IF id=500 THEN CardFacts10[card].side ELSE IF id \in 1000..1002 \/ id \in {650,900} THEN "SideA" ELSE "SideB"],
bidWalletProfile |-> "PoolFundAndExampleFamily019",activeAbilities |-> {},abilitySources |-> Empty10,abilityRoles |-> Empty10,bidValueRestrictions |-> Empty10,bidFrames |-> Empty10,usedBidFrames |-> {},bidOwners |-> Empty10,bidContinuations |-> Empty10,
usedCostTransactions |-> {},bidCosts |-> Empty10,bidEvents |-> Empty10,bidEventSerial |-> 0,usedWorlds |-> {100},usedObjects |-> DOMAIN objects,
printed |-> CheckpointPrinted103,owners |-> CheckpointOwners103,visible |-> {},movementHistory |-> Empty10,checkpoints |-> Empty10,conditionalLedger |-> [checkpoints |-> Empty10,instances |-> Empty10],outcome |-> "Playing"])
a==NewLifetimeAuthority910(w)
IN ReplacementOverlay99(w,[lifetimeAuthority |-> a,lingering |-> ReplacementOverlay99(NewLingeringRegistry910,[frontier |-> LifetimeFrontier910(a,1)])])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LifetimeFrontier910, NewLifetimeAuthority910, NewLingeringRegistry910, ReplacementOverlay99, TimingRef9, BidResourceUnit1014, CheckpointOwners103, CheckpointPrinted103, Empty10, EscalatingResourceContestCard108, MarkBase1011, LiabilityMarkerFundRow106, CardFacts10, OpenTraversal6
BidPlanSelected1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidPlanSelected1014(frame,player,selected) == [frame EXCEPT !.plans=ReplacementOverlay99(@,[p \in {player} |-> selected]),!.choiceOrder=Append(@,player)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99
BidPublishValid1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidPublishValid1014(x) == BidPublish1014(x.paid,x.paying,BidPublishedWorld1014(x),CardFacts10,x.afterObjects,x.successors,14700,x.history,x.events,x.receipts,x.event,x.event.id,x.snapshot)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidPublishedWorld1014, BidPublish1014, CardFacts10
BidPublishedWorld1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidPublishedWorld1014(x) ==
[x.paying EXCEPT !.id=101,!.objects=x.afterObjects,!.movementHistory=x.history,!.bidFrames[140]=x.paid,!.usedWorlds=@ \cup {101},!.usedObjects=@ \cup DOMAIN x.afterObjects,
!.controllers=[id \in DOMAIN x.afterObjects |-> IF id \in DOMAIN x.paying.controllers THEN x.paying.controllers[id] ELSE x.paying.owners[x.afterObjects[id].card]],
!.bidEventSerial=@+1,!.usedCostTransactions=@ \cup {x.chosen.transactions[p] : p \in x.chosen.packet.participants},
!.bidCosts=[id \in {x.chosen.transactions[p] : p \in x.chosen.packet.participants} |-> x.receipts[CHOOSE p \in x.chosen.packet.participants : x.chosen.transactions[p]=id]],!.bidEvents=[id \in {x.event.id} |-> x.event]]Exact module download · Source bundle and reproduction instructions
BidRebase1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidRebase1014(world) ==
LET a==NewLifetimeAuthority910(world) IN [world EXCEPT !.lifetimeAuthority=a,!.lingering.frontier=LifetimeFrontier910(a,1)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LifetimeFrontier910, NewLifetimeAuthority910
BidRecognition1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidRecognition1014(world,definitions,events,id) ==
LET previous==MarkSnapshot1011(world.id,0,"PreviousCheckpoint",definitions,world) before==NewConditionalLedger96(previous)
begin==MarkSnapshot1011(world.id,id,"CheckpointBeginning",definitions,world) current==[begin EXCEPT !.point="ProcedureCodee605a78f5d5e"]
cp==[tag |-> "ConditionalCheckpoint",point |-> "ProcedureCodee605a78f5d5e",id |-> id,previousCheckpoint |-> 0,serial |-> 1,previousSnapshot |-> previous,beginSnapshot |-> begin,processingSnapshot |-> current,stepSerial |-> 0,occurrences |-> events,caller |-> "BidPayment"]
conditions==[key \in DOMAIN definitions |-> [eventId \in DOMAIN events |-> [tag |-> "ConditionalTriggerStipulations",ability |-> definitions[key].syntax.id,source |-> definitions[key].syntax.source,occurrence |-> eventId,snapshotId |-> events[eventId].snapshot.id,results |-> Empty10]]]
candidates==CheckpointCandidates96(definitions,before,cp,conditions) allocation==[key \in candidates |-> 14901]
bindings==[key \in candidates |-> [kind |-> "Reaction",windowId |-> 14902,group |-> 14903,checkpointId |-> id]]
after==EscalatingResourceContestCommitted108(before,definitions,cp,conditions,allocation,bindings)
IN [before |-> before,after |-> after,cp |-> cp,conditions |-> conditions,definitions |-> definitions,candidates |-> candidates,allocation |-> allocation,bindings |-> bindings]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointCandidates96, NewConditionalLedger96, Empty10, EscalatingResourceContestCommitted108, MarkSnapshot1011
BidReference1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidReference1014(index) ==
InstructionWindowRef93([OpenInstruction93(14000+index,"Ability",14000,ObjectAbilitySource9(500),"Play",index,"NoValue",<<"Bidding">>,FALSE) EXCEPT !.phase="Resolving"])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InstructionWindowRef93, ObjectAbilitySource9, OpenInstruction93
BidRepairCase1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidRepairCase1014(world,mode,selected) ==
BidCase1014(world,"Specimen0006",FALSE,IF mode="SideAPool" THEN Cardinality(selected) ELSE 0,IF mode="SideAPool" THEN 0 ELSE Cardinality(selected),IF mode="SideAPool" THEN selected ELSE {},IF mode="SideAPool" THEN {} ELSE selected)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidCase1014
BidRepairWorld1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidRepairWorld1014(mode,virtual,converted,mixed) ==
LET w==BidWorld1014("SideB","Specimen0006","Specimen0161")
actor==IF mode="SideAPool" THEN "SideA" ELSE "SideB"
row==IF mode="Fund" THEN LiabilityMarkerFundRow106 ELSE BidResourceUnit1014(IF mode="SideAPool" THEN "SideAResourceUnits" ELSE IF mode="SideBPool" THEN "SideBResourceUnits" ELSE "Play",IF mode="Hosted" THEN 600 ELSE 0)
primary==ReplacementOverlay99([row EXCEPT !.virtual=virtual],IF converted THEN [card |-> IF mode \in {"SideAPool","Fund"} THEN "Specimen0046" ELSE "NeutralValue00006",owner |-> IF mode \in {"SideAPool","Fund"} THEN "SideA" ELSE "SideB",side |-> IF mode \in {"SideAPool","Fund"} THEN "SideA" ELSE "SideB",properties |-> [kind |-> "ResourceUnit"],marks |-> {"ConvertedRepairMark"}] ELSE Empty10)
resourceUnits=={id \in DOMAIN w.objects : w.objects[id].form="Counter" /\ w.objects[id].kind="ResourceUnit"}
added==IF mixed THEN [id \in {1500,1501} |-> IF id=1500 THEN primary ELSE row] ELSE [id \in {1500} |-> primary]
objects==ReplacementOverlay99(Without101(w.objects,resourceUnits),added)
controllers==[id \in DOMAIN objects |-> IF id \in DOMAIN added THEN IF mode="Fund" THEN "SideA" ELSE actor ELSE w.controllers[id]]
IN BidRebase1014([w EXCEPT !.objects=objects,!.controllers=controllers,!.usedObjects=@ \cup DOMAIN added])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, BidRebase1014, BidResourceUnit1014, BidWorld1014, Empty10, LiabilityMarkerFundRow106, Without101
BidResourceUnit1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidResourceUnit1014(zone,host) == ReplacementOverlay99(CheckpointCounter103("ResourceUnit",zone,host),[resourceUnitLocation |-> IF host#0 THEN "Hosted" ELSE IF zone="SideAResourceUnits" THEN "SideAPool" ELSE "SideBPool"])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, CheckpointCounter103
BidRevealWorld1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidRevealWorld1014(world,frame) == [BidAt1014(world,frame) EXCEPT !.bidContinuations=[id \in {frame.id} |-> BidContinuation1014(world,frame,FALSE)]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidAt1014, BidContinuation1014
BidRevealed1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidRevealed1014(frame,world) ==
LET ref==BidContinuation1014(world,frame,FALSE).instruction f==[frame EXCEPT !.revealCaller=ref] IN
[f EXCEPT !.phase="ChoosePayment",!.revealed=frame.packet.participants,!.paymentWorld=world.id,!.paymentScope=BidPaymentScope1014(world),!.transactions=BidTransactions1014(frame),
!.costs=[p \in frame.packet.participants |-> BidNestedCost1014(f,world,p,BidTransactions1014(frame)[p])]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidContinuation1014, BidTransactions1014, BidNestedCost1014, BidPaymentScope1014
BidSecretChecks1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidSecretChecks1014 ==
LET w==BidWorld1014("SideB","Specimen0006","Specimen0097") s==BidStart1014(w,"Specimen0006",FALSE)
c0==BidSelected1014(s.frame,"SideA",0) c2==BidSelected1014(s.frame,"SideA",2)
both0==BidSelected1014(c0,"SideB",1) both2==BidSelected1014(c2,"SideB",1)
x==BidCase1014(w,"Specimen0006",FALSE,1,1,{1000},{1100})
IN /\ SelectSecretBid1014(s.frame,c0,s.world,"SideA",0,CardFacts10) /\ SelectSecretBid1014(s.frame,c2,s.world,"SideA",2,CardFacts10)
/\ BidView1014(c0,"SideB")=BidView1014(c2,"SideB") /\ BidView1014(both0,"SideB")=BidView1014(both2,"SideB")
/\ BidView1014(c0,"SideA")#BidView1014(c2,"SideA") /\ BidView1014(x.revealed,"SideB").knownValues=[p \in SetupPlayers |-> 1]
/\ ~ChooseBidPaymentSources1014(x.ready,x.chosen1,BidAt1014(x.revealWorld,x.ready),"SideB",{1100},CardFacts10)
/\ ~SelectSecretBid1014(c0,BidSelected1014(c0,"SideA",1),BidAt1014(s.world,c0),"SideA",1,CardFacts10)
/\ ~SelectSecretBid1014(s.frame,BidSelected1014(s.frame,"SideA",3),s.world,"SideA",3,CardFacts10)
/\ ~ChooseBidPaymentSources1014(x.revealed,BidPlanSelected1014(x.revealed,"SideA",{1000}),BidAt1014(x.revealWorld,x.revealed),"SideA",{1000},CardFacts10)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidAt1014, BidCase1014, BidPlanSelected1014, BidSelected1014, BidStart1014, BidWorld1014, BidView1014, ChooseBidPaymentSources1014, SelectSecretBid1014, SetupPlayers, CardFacts10
BidSelected1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidSelected1014(frame,p,n) ==
LET selections==ReplacementOverlay99(frame.selections,[q \in {p} |-> n]) IN
[frame EXCEPT !.selections=selections,!.phase=IF DOMAIN selections=frame.packet.participants THEN IF frame.packet.reveal="Immediate" THEN "RevealDue" ELSE "WaitingReveal" ELSE "Selecting"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99
BidStart1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidStart1014(world,card,general) ==
LET ctx==BidContext1014(world,card,general) packet==BidPacketFixture1014(ctx) f==BidInitial1014(140,packet,world)
IN [before |-> world,context |-> ctx,packet |-> packet,frame |-> f,world |-> [BidAt1014(world,f) EXCEPT !.usedBidFrames=@ \cup {f.id}]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidAt1014, BidContext1014, BidPacketFixture1014, BidInitial1014
BidTransactions1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidTransactions1014(frame) == [p \in frame.packet.participants |-> IF p="SideA" THEN 14501 ELSE 14502]Exact module download · Source bundle and reproduction instructions
BidVirtualResourceUnitChecks1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidVirtualResourceUnitChecks1014 ==
/\ \A mode \in {"SideAPool","SideBPool","Fund","Hosted"} :
LET actor==IF mode="SideAPool" THEN "SideA" ELSE "SideB"
virtual==BidRepairWorld1014(mode,TRUE,FALSE,FALSE)
zero==BidRepairCase1014(virtual,mode,{})
invalid==BidRepairCase1014(virtual,mode,{1500})
first==IF actor="SideA" THEN invalid.start.frame ELSE invalid.first
next==IF actor="SideA" THEN invalid.first ELSE invalid.both
current==IF actor="SideA" THEN invalid.start.world ELSE BidAt1014(invalid.start.world,first)
mixed==BidRepairWorld1014(mode,TRUE,FALSE,TRUE) ordinary==BidRepairCase1014(mixed,mode,{1501})
IN /\ BidWalletFresh1014(virtual) /\ BidPaymentPlans1014(virtual,actor,1,CardFacts10)={} /\ BidPaymentPlans1014(virtual,actor,0,CardFacts10)={{}}
/\ ~SelectSecretBid1014(first,next,current,actor,1,CardFacts10)
/\ BidRevealSupport1014(invalid.ready,invalid.revealWorld,CardFacts10)="RequiresChangedPayabilityAdapter"
/\ BidCaseValid1014(zero) /\ BidPublishValid1014(zero) /\ zero.afterObjects=virtual.objects
/\ BidPaymentPlans1014(mixed,actor,1,CardFacts10)={{1501}} /\ BidPaymentPlans1014(mixed,actor,2,CardFacts10)={}
/\ BidCaseValid1014(ordinary) /\ BidPublishValid1014(ordinary) /\ ordinary.afterObjects[1500]=mixed.objects[1500] /\ 1501 \notin DOMAIN ordinary.afterObjects
/\ \A mode \in {"SideAPool","SideBPool","Fund","Hosted"},converted \in BOOLEAN :
LET w==BidRepairWorld1014(mode,FALSE,converted,FALSE) actor==IF mode="SideAPool" THEN "SideA" ELSE "SideB" x==BidRepairCase1014(w,mode,{1500})
IN /\ BidPaymentPlans1014(w,actor,1,CardFacts10)={{1500}} /\ BidCaseValid1014(x) /\ BidPublishValid1014(x)
/\ 1500 \notin DOMAIN x.afterObjects
/\ IF converted THEN x.afterObjects[11500].marks={} /\ x.afterObjects[11500].zone=(IF mode \in {"SideAPool","Fund"} THEN "SideADiscard" ELSE "SideBDiscard") ELSE DOMAIN x.afterObjects=DOMAIN w.objects \ {1500}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: BidAt1014, BidCaseValid1014, BidPublishValid1014, BidRepairCase1014, BidRepairWorld1014, BidPaymentPlans1014, BidRevealSupport1014, BidWalletFresh1014, SelectSecretBid1014, CardFacts10
BidWorld1014 · operator
reference-profile · input revision 2 · CC0 1.0
BidWorld1014(active,card,observer) == BidGrant1014(BidPlainWorld1014(active,card,observer),FALSE).afterExact module download · Source bundle and reproduction instructions
Resolved project definitions: BidGrant1014, BidPlainWorld1014
Block10Assertions · operator
reference-profile · input revision 2 · CC0 1.0
Block10Assertions == CASE block10=1 -> GeneralChecks101 /\ SimultaneousActivationChecks101
[] block10=2 -> InformationChecks102
[] block10=3 -> CheckpointCleanupChecks103 /\ CheckpointEnvironmentChecks103 /\ CheckpointHistoryChecks103 /\ CheckpointMarksChecks103
[] block10=4 -> DamagePacketChecks104 /\ DamageBatchChecks104 /\ DamageSequentialChecks104 /\ DamageCoreChecks104
[] block10=5 -> ExposureMarkerQuantityAndStatusChecks105 /\ ExposureMarkerActionAdmissionChecks105 /\ ExposureMarkerActionPostCostChecks105 /\ ExposureMarkerModifierAndSourceChecks105 /\ ExposureMarkerAdditionalCostChecks105 /\ ExposureMarkerConvertedCounterChecks105
[] block10=6 -> LiabilityMarkerViewsChecks106 /\ LiabilityMarkerPacketChecks106 /\ LiabilityMarkerLifecycleChecks106 /\ LiabilityMarkerZeroGrantChecks106 /\ LiabilityMarkerPaymentChecks106 /\ LiabilityMarkerConvertedChecks106
[] block10=7 -> LinkValueChecks107 /\ LinkFreshnessChecks107 /\ LinkProfileAndUseChecks107
[] block10=8 -> EscalatingResourceContestBirthChecks108 /\ EscalatingResourceContestPacketChecks108 /\ EscalatingResourceContestPhaseChecks108 /\ EscalatingResourceContestContextAndOrderChecks108 /\ EscalatingResourceContestWalletChecks108 /\ EscalatingResourceContestReactionAndCurrentReadChecks108 /\ EscalatingResourceContestResultRecognitionChecks108 /\ EscalatingResourceContestReactionProjectionChecks108 /\ EscalatingResourceContestInitiationReactionChecks108 /\ EscalatingResourceContestSideBSourceChecks108
[] block10=9 -> LoadAndEmptyChecks109 /\ UnloadedTypeChecks109 /\ LoadFreshnessChecks109 /\ LoadIncarnationChecks109 /\ LoadEffectiveCountChecks109 /\ EmptyStaticRecognitionChecks109 /\ EmptyBeforeLoadPendingChecks109
[] block10=10 -> ChargeChosenChecks1010 /\ ChargeCurrentLegalityChecks1010 /\ ChargeParticularChecks1010 /\ ChargeScopeAndCountChecks1010 /\ ChargeBindingChecks1010 /\ ChargeExampleFamily049Checks1010
[] block10=11 -> MarkCreationChecks1011 /\ MarkLifetimeChecks1011 /\ MarkSuccessHistoryChecks1011 /\ MarkSpecimen0119Checks1011 /\ MarkCleanupChecks1011 /\ MarkRelationChecks1011 /\ MarkProvenanceChecks1011 /\ MarkRenewalChecks1011 /\ MarkOtherTargetSiteBranches1011
[] block10=12 -> SabotageAllocationChecks1012 /\ SabotageSourceChecks1012 /\ SabotagePrivacyChecks1012 /\ SabotageDepartureChecks1012 /\ SabotageNegativeChecks1012 /\ SabotageObserverChecks1012
[] block10=13 -> DividendCaptureChecks1013 /\ DividendBodyChecks1013 /\ DividendBoundaryChecks1013 /\ DividendMissingSourceChecks1013 /\ DividendNegativeChecks1013 /\ DividendReplayChecks1013 /\ DividendConsideredBodyChecks1013
[] block10=14 -> BidMatrixChecks1014 /\ BidSecretChecks1014 /\ BidGeneralChecks1014 /\ BidGrantChecks1014 /\ BidExampleFamily022Checks1014 /\ BidMovementChecks1014 /\ BidDetachedChecks1014 /\ BidCheckpointChecks1014 /\ BidObserverChecks1014 /\ BidBindingChecks1014 /\ BidVirtualResourceUnitChecks1014
[] OTHER -> FALSEExact module download · Source bundle and reproduction instructions
Resolved project definitions: BidBindingChecks1014, BidCheckpointChecks1014, BidDetachedChecks1014, BidExampleFamily022Checks1014, BidGeneralChecks1014, BidGrantChecks1014, BidMatrixChecks1014, BidMovementChecks1014, BidObserverChecks1014, BidSecretChecks1014, BidVirtualResourceUnitChecks1014, ChargeBindingChecks1010, ChargeChosenChecks1010, ChargeCurrentLegalityChecks1010, ChargeExampleFamily049Checks1010, ChargeParticularChecks1010, ChargeScopeAndCountChecks1010, CheckpointCleanupChecks103, CheckpointEnvironmentChecks103, CheckpointHistoryChecks103, CheckpointMarksChecks103, DamageBatchChecks104, DamageCoreChecks104, DamagePacketChecks104, DamageSequentialChecks104, DividendBodyChecks1013, DividendBoundaryChecks1013, DividendCaptureChecks1013, DividendConsideredBodyChecks1013, DividendMissingSourceChecks1013, DividendNegativeChecks1013, DividendReplayChecks1013, EmptyBeforeLoadPendingChecks109, EmptyStaticRecognitionChecks109, EscalatingResourceContestBirthChecks108, EscalatingResourceContestContextAndOrderChecks108, EscalatingResourceContestInitiationReactionChecks108, EscalatingResourceContestPacketChecks108, EscalatingResourceContestPhaseChecks108, EscalatingResourceContestReactionAndCurrentReadChecks108, EscalatingResourceContestReactionProjectionChecks108, EscalatingResourceContestResultRecognitionChecks108, EscalatingResourceContestSideBSourceChecks108, EscalatingResourceContestWalletChecks108, ExposureMarkerActionAdmissionChecks105, ExposureMarkerActionPostCostChecks105, ExposureMarkerAdditionalCostChecks105, ExposureMarkerConvertedCounterChecks105, ExposureMarkerModifierAndSourceChecks105, ExposureMarkerQuantityAndStatusChecks105, GeneralChecks101, InformationChecks102, LiabilityMarkerConvertedChecks106, LiabilityMarkerLifecycleChecks106, LiabilityMarkerPacketChecks106, LiabilityMarkerPaymentChecks106, LiabilityMarkerViewsChecks106, LiabilityMarkerZeroGrantChecks106, LinkFreshnessChecks107, LinkProfileAndUseChecks107, LinkValueChecks107, LoadAndEmptyChecks109, LoadEffectiveCountChecks109, LoadFreshnessChecks109, LoadIncarnationChecks109, MarkCleanupChecks1011, MarkCreationChecks1011, MarkLifetimeChecks1011, MarkOtherTargetSiteBranches1011, MarkProvenanceChecks1011, MarkRelationChecks1011, MarkRenewalChecks1011, MarkSpecimen0119Checks1011, MarkSuccessHistoryChecks1011, SabotageAllocationChecks1012, SabotageDepartureChecks1012, SabotageNegativeChecks1012, SabotageObserverChecks1012, SabotagePrivacyChecks1012, SabotageSourceChecks1012, SimultaneousActivationChecks101, UnloadedTypeChecks109, block10
CapacityLegal103 · operator
reference-profile · input revision 2 · CC0 1.0
CapacityLegal103(selected) == SumMap([id \in DOMAIN CapacityUsage103 \ selected |-> CapacityUsage103[id]])<=3Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CapacityUsage103, SumMap
CapacityUsage103 · operator
reference-profile · input revision 2 · CC0 1.0
CapacityUsage103 == [id \in {1,2,3,4} |-> CASE id=1 -> 1 [] id=2 -> 1 [] id=3 -> 3 [] OTHER -> 0]Exact module download · Source bundle and reproduction instructions
CentralACostAfterWorld105 · operator
reference-profile · input revision 2 · CC0 1.0
CentralACostAfterWorld105(world,selected,successors) ==
LET move==DamageOwnerMoveMap104(world.objects,selected,successors,"SideA")
objects==[id \in DOMAIN move |-> IF id \in {successors[old] : old \in selected} THEN [move[id] EXCEPT !.face="Down"] ELSE move[id]]
IN [world EXCEPT !.id=@+1,!.objects=objects,!.controllers=[id \in (DOMAIN @ \ selected) \cup {successors[old] : old \in selected} |->
IF id \in DOMAIN @ \ selected THEN @[id] ELSE "SideA"]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageOwnerMoveMap104
CentralACostHistory105 · operator
reference-profile · input revision 2 · CC0 1.0
CentralACostHistory105(assignments,eventIds) ==
[id \in {eventIds[cost] : cost \in DOMAIN eventIds} |-> MovementEvent8(id,"Retire",assignments[CHOOSE cost \in DOMAIN eventIds : eventIds[cost]=id])]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MovementEvent8
ChargeAbility1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeAbility1010(card) == [OpenAbilityResolution9(8000,IF card="Specimen0225" THEN "Paid" ELSE IF card \in {"Specimen0201","Specimen0120"} THEN "Play" ELSE "Conditional",ObjectAbilitySource9(800),"Play",<<500>>,100) EXCEPT !.detached=card="Specimen0225"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, OpenAbilityResolution9
ChargeBindingChecks1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeBindingChecks1010 ==
LET c==ChargeCapture1010("Specimen0225","Chosen",1,0,{900})
r==ChargeTraversal1010(c,c.world,{900})
key==ChargeAdmissionKey1010(r.context,1)
zero==ChargeCapture1010("Specimen0201","Particular",1,902,{})
later==[zero.world EXCEPT !.objects=ReplacementOverlay99(@,[id \in {1500} |-> LoadedCounterToken109("Power","Play",902,"SideB")])]
would==ChargeTraversal1010(zero,later,{902})
forged==[would.admission EXCEPT !.initialPower[902]=TRUE]
otherRef==[InstructionWindowRef93(c.plan) EXCEPT !.abilityInstance=8001]
otherSpec==[c.spec EXCEPT !.reference=otherRef]
both==[c.world EXCEPT !.chargeSpecs=ReplacementOverlay99(@,[specKey \in {ChargeSpecKey1010(otherRef)} |-> otherSpec])]
wrongSpec==[c.spec EXCEPT !.sourceSHA="wrong"]
wrongWorld==[c.world EXCEPT !.chargeSpecs[ChargeSpecKey1010(wrongSpec.reference)]=wrongSpec]
IN /\ ChargeSpecKey1010(otherRef)#ChargeSpecKey1010(c.spec.reference)
/\ ChargeSpec1010(both,c.spec.reference,CardFacts10,c.spec) /\ ChargeSpec1010(both,otherRef,CardFacts10,otherSpec)
/\ ChargeTraversalValid1010(ChargeRevisedTraversal1010(r))
/\ ChargeOmitted1010([r.context EXCEPT !.state.effects=Empty10,!.actualEffects=Empty10],r.world,1,r.world.objects,r.world.loadHistory)
/\ ~ChargeTraversalValid1010([r EXCEPT !.context.state.effects=Empty10,!.context.actualEffects=Empty10])
/\ ~ChargeSpec1010(wrongWorld,InstructionWindowRef93(c.plan),CardFacts10,wrongSpec)
/\ ~ChargePacket1010([r.context EXCEPT !.currentWorld=99],r.world,1,CardFacts10,r.admission,r.spec)
/\ ~ChargePacket1010(r.context,[r.world EXCEPT !.chargeAdmissions=Empty10],1,CardFacts10,r.admission,r.spec)
/\ ~ChargePacket1010([r.context EXCEPT !.initialRef.id=999],r.world,1,CardFacts10,r.admission,r.spec)
/\ ~ChargePacket1010([r.context EXCEPT !.actualEffects[1].value=2,!.state.effects[1].value=2],r.world,1,CardFacts10,r.admission,r.spec)
/\ ~ChargePacket1010([r.context EXCEPT !.actualEffects[1].counterKind="ResourceUnit",!.state.effects[1].counterKind="ResourceUnit"],r.world,1,CardFacts10,r.admission,r.spec)
/\ ~ResolveCharge1010(would.context,would.world,1,CardFacts10,forged,would.spec,would.afterObjects,would.world.loadHistory,would.afterCompleted,would.added,10001,would.completion,would.events)
/\ ~ChargeTraversalValid1010([r EXCEPT !.world.completedCharges={key}])
/\ ~ChargeTraversalValid1010([r EXCEPT !.world.usedObjects=@ \cup DOMAIN r.added])
/\ ~ChargeTraversalValid1010([r EXCEPT !.afterObjects[900].marks={"ChangedHost"}])
/\ ~ResolveCharge1010(r.context,r.world,1,CardFacts10,r.admission,r.spec,r.afterObjects,[id \in {1} |-> [tag |-> "InventedLoad"]],r.afterCompleted,r.added,10001,r.completion,r.events)
/\ \A id \in DOMAIN r.added : r.added[id].marks={} /\ r.added[id].kind="Power"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InstructionWindowRef93, ReplacementOverlay99, ChargeCapture1010, ChargeRevisedTraversal1010, ChargeTraversal1010, ChargeTraversalValid1010, Empty10, ChargeAdmissionKey1010, ChargeOmitted1010, ChargePacket1010, ChargeSpec1010, ChargeSpecKey1010, LoadedCounterToken109, ResolveCharge1010, CardFacts10
ChargeCapture1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeCapture1010(card,mode,amount,particular,targets) ==
LET raw==ChargeWorld1010(card)
plan==ChargePlan1010(mode)
spec==ChargeSpecFixture1010(raw,plan,card,mode,amount,particular)
world==[raw EXCEPT !.chargeSpecs=[key \in {ChargeSpecKey1010(spec.reference)} |-> spec]]
ability==ChargeAbility1010(card)
announced==IF mode="Chosen" THEN [plan EXCEPT !.targets=targets,!.announced=TRUE] ELSE plan
imminent==[announced EXCEPT !.phase="Imminent"]
imminentAbility==[ability EXCEPT !.phase="Imminent",!.firstImminent=TRUE,!.detached=@ \/ ability.kind \in {"Conditional","BarrierInstruction"}]
refs==IF mode="Chosen" THEN targets ELSE {particular}
admission==[tag |-> "ChargeAtImminence",reference |-> InstructionWindowRef93(imminent),snapshotId |-> world.id,spec |-> spec,announced |-> announced.targets,
initialPower |-> [id \in refs |-> ChargePower1010(world.objects,id)],physical |-> [id \in refs \cap DOMAIN world.objects |-> world.objects[id].card]]
IN [world |-> world,plan |-> plan,spec |-> spec,ability |-> ability,announced |-> announced,imminent |-> imminent,imminentAbility |-> imminentAbility,admission |-> admission]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InstructionWindowRef93, ChargeAbility1010, ChargePlan1010, ChargeSpecFixture1010, ChargeWorld1010, ChargePower1010, ChargeSpecKey1010
ChargeCaptureValid1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeCaptureValid1010(x) ==
/\ IF x.spec.mode="Chosen" THEN AnnounceChargeTargets1010(x.plan,x.announced,x.ability,x.world,CardFacts10,x.spec,x.announced.targets,ChargeTargetReceipt1010(x.plan,x.announced.targets)) ELSE x.announced=x.plan
/\ EnterFirstAbilityInstruction93(x.ability,x.imminentAbility,x.announced,x.imminent,ChargeEntry1010(x.plan))
/\ CaptureChargeImminence1010(x.imminent,x.imminentAbility,x.world,CardFacts10,x.spec,x.admission)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EnterFirstAbilityInstruction93, ChargeEntry1010, AnnounceChargeTargets1010, CaptureChargeImminence1010, ChargeTargetReceipt1010, CardFacts10
ChargeChangeSpec1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeChangeSpec1010(c,spec) ==
[c EXCEPT !.spec=spec,!.world.chargeSpecs[ChargeSpecKey1010(spec.reference)]=spec,!.admission.spec=spec]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ChargeSpecKey1010
ChargeChosenChecks1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeChosenChecks1010 ==
/\ \A source \in {"Specimen0092","Specimen0120","Specimen0225","Specimen0170","Specimen0044","Specimen0064"}, target \in {900,904} :
LET c==ChargeCapture1010(source,"Chosen",1,0,{target})
result==ChargeTraversal1010(c,c.world,{target})
IN /\ ChargeCaptureValid1010(c) /\ ChargeTraversalValid1010(result) /\ Cardinality(DOMAIN result.added)=1
/\ Cardinality(HostedCounterIds109(result.afterObjects,target,"Power"))=Cardinality(HostedCounterIds109(c.world.objects,target,"Power"))+1
/\ result.world.loadHistory=Empty10
/\ LET two==ChargeCapture1010("Specimen0225","Chosen",2,0,{900,904})
partial==ChargeCapture1010("Specimen0225","Chosen",3,0,{900,904})
result==ChargeTraversal1010(two,two.world,{900,904})
wrongResourceUnit==ChargeCapture1010("Specimen0225","Chosen",1,0,{902})
wrongOwner==ChargeCapture1010("Specimen0225","Chosen",1,0,{901})
uninstalled==ChargeCapture1010("Specimen0225","Chosen",1,0,{903})
omitted==ChargeCapture1010("Specimen0225","Chosen",2,0,{900})
IN /\ ChargeCaptureValid1010(two) /\ ChargeCaptureValid1010(partial) /\ ChargeTraversalValid1010(result)
/\ ~ChargeCaptureValid1010(wrongResourceUnit) /\ ~ChargeCaptureValid1010(wrongOwner) /\ ~ChargeCaptureValid1010(uninstalled) /\ ~ChargeCaptureValid1010(omitted)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ChargeCapture1010, ChargeCaptureValid1010, ChargeTraversal1010, ChargeTraversalValid1010, Empty10, HostedCounterIds109
ChargeContext1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeContext1010(x,world) ==
LET reference==InstructionWindowRef93(x.imminent)
key== <<101000,reference,1>>
e==[id |-> 1,kind |-> "Charge",value |-> 1,counterKind |-> "Power",actor |-> "SideB",baseOrigin |-> reference.source,
sourceCard |-> x.spec.sourceCard,sourceSHA |-> x.spec.sourceSHA,admissionKey |-> key]
IN [id |-> 101000,phase |-> "Resolving",initialRef |-> reference,currentRef |-> reference,currentWorld |-> world.id,templates |-> [id \in {1} |-> e],
state |-> [effects |-> [id \in {1} |-> e]],actualEffects |-> [id \in {1} |-> e]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InstructionWindowRef93
ChargeCurrentLegalityChecks1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeCurrentLegalityChecks1010 ==
LET c==ChargeCapture1010("Specimen0225","Chosen",1,0,{900})
lost==[c.world EXCEPT !.objects=Without101(@,{1000})]
firstAdded==[lost EXCEPT !.objects=ReplacementOverlay99(@,[id \in {1500} |-> LoadedCounterToken109("Power","Play",902,"SideB")])]
regained==[lost EXCEPT !.objects=ReplacementOverlay99(@,[id \in {1501} |-> LoadedCounterToken109("Power","Play",900,"SideB")])]
changedControl==[c.world EXCEPT !.controllers[900]="SideA"]
noLongerDeployed==[c.world EXCEPT !.objects[900].deployed=FALSE]
blanked==[c.world EXCEPT !.objects[900].face="Down"]
sourceGone==[c.world EXCEPT !.objects=Without101(@,{800}),!.controllers=Without101(@,{800})]
IN /\ ChargeTraversalValid1010(ChargeTraversal1010(c,lost,{})) /\ ~ChargeTraversalValid1010(ChargeTraversal1010(c,lost,{900}))
/\ ChargeTraversalValid1010(ChargeTraversal1010(c,firstAdded,{})) /\ ~ChargeTraversalValid1010(ChargeTraversal1010(c,firstAdded,{902}))
/\ ChargeTraversalValid1010(ChargeTraversal1010(c,regained,{900}))
/\ ChargeTraversalValid1010(ChargeTraversal1010(c,changedControl,{})) /\ ChargeTraversalValid1010(ChargeTraversal1010(c,noLongerDeployed,{}))
/\ ChargeTraversalValid1010(ChargeTraversal1010(c,blanked,{900})) /\ ChargeTraversalValid1010(ChargeTraversal1010(c,sourceGone,{900}))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, ChargeCapture1010, ChargeTraversal1010, ChargeTraversalValid1010, LoadedCounterToken109, Without101
ChargeCurrentWorld1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeCurrentWorld1010(x,changed,id) ==
LET context==ChargeContext1010(x,changed)
current==[x.spec EXCEPT !.snapshotId=id]
IN [changed EXCEPT !.id=id,!.chargeSpecs=[key \in {ChargeSpecKey1010(current.reference)} |-> current],!.chargeAdmissions=ReplacementOverlay99(@,[key \in {ChargeAdmissionKey1010(context,1)} |-> x.admission])]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, ChargeContext1010, ChargeAdmissionKey1010, ChargeSpecKey1010
ChargeEntry1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeEntry1010(plan) ==
[tag |-> "AbilityInstructionEntry",abilityInstance |-> plan.abilityInstance,instruction |-> plan.id,index |-> plan.index,source |-> plan.source,sourceZone |-> plan.sourceZone,
schedulerAllows |-> TRUE,sourceEligible |-> TRUE,checkpointAndAllNewerChainsComplete |-> TRUE]Exact module download · Source bundle and reproduction instructions
ChargeExampleFamily049Checks1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeExampleFamily049Checks1010 ==
LET r==ExampleFamily049ChargeFixture1010
c==r.charge
result==ChargeTraversal1010(c,c.world,{811})
otherWorld==[c.world EXCEPT !.objects=ReplacementOverlay99(Without101(@,{811}),[id \in {812,2000} |-> IF id=812 THEN [@[811] EXCEPT !.card="Specimen0114",!.marks={}] ELSE [@[2000] EXCEPT !.host=812,!.loc=812]]),
!.controllers=ReplacementOverlay99(Without101(@,{811}),[id \in {812} |-> "SideB"])]
IN /\ ExampleFamily049DeployedReference1010(r.before.objects,r.moved,810,811,[id \in {810} |-> 811],r.before.usedObjects,ObjectAbilitySource9(800),r.deployRef,r.reference)
/\ ~ExampleFamily049DeployedReference1010(r.before.objects,r.moved,810,811,[id \in {810} |-> 811],r.before.usedObjects,ObjectAbilitySource9(800),r.deployRef,[r.reference EXCEPT !.object=900])
/\ SideBPaidDeployPost(r.deployed.objects[811],"SideB","Technique",TRUE,TRUE)
/\ EscalatingResourceContestRecognitionValid108(r.q) /\ Cardinality(r.q.candidates)=1
/\ ExecuteBankHostedCounterInstruction109(r.context,r.context.currentRef,r.deployed,1,CardFacts10,r.afterPower.objects,r.afterPower.loadHistory,r.afterPower.completedCounterInstructions,
{},r.added,2001,109999,r.counterEvent)
/\ r.afterPower.loadHistory=Empty10 /\ ~ChargePower1010(r.deployed.objects,811) /\ ChargePower1010(c.world.objects,811)
/\ r.cp.snapshotId=101 /\ c.world.id=102
/\ NextChargeAfterCheckpoint1010(c.ability,c.imminentAbility,c.plan,c.imminent,c.world,r.cp,r.ledger,<<>>,r.cohort,ChargeEntry1010(c.plan))
/\ ~NextChargeAfterCheckpoint1010(c.ability,c.imminentAbility,c.plan,c.imminent,[c.world EXCEPT !.conditionalLedger=r.q.after],r.cp,r.ledger,<<>>,r.cohort,ChargeEntry1010(c.plan))
/\ CaptureChargeImminence1010(c.imminent,c.imminentAbility,c.world,CardFacts10,c.spec,c.admission)
/\ ChargeTraversalValid1010(result) /\ Cardinality(HostedCounterIds109(result.afterObjects,811,"Power"))=2
/\ ChargePower1010(otherWorld.objects,812)
/\ ChargeTraversalValid1010(ChargeTraversal1010(c,otherWorld,{})) /\ ~ChargeTraversalValid1010(ChargeTraversal1010(c,otherWorld,{812}))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, ReplacementOverlay99, ChargeEntry1010, ChargeTraversal1010, ChargeTraversalValid1010, Empty10, EscalatingResourceContestRecognitionValid108, ExampleFamily049ChargeFixture1010, CaptureChargeImminence1010, ChargePower1010, ExampleFamily049DeployedReference1010, ExecuteBankHostedCounterInstruction109, HostedCounterIds109, NextChargeAfterCheckpoint1010, Without101, CardFacts10, SideBPaidDeployPost
ChargeParticularChecks1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeParticularChecks1010 ==
/\ \A target \in {900,902,904} :
LET c==ChargeCapture1010("Specimen0201","Particular",1,target,{})
targets==IF target=902 THEN {} ELSE {target}
IN ChargeCaptureValid1010(c) /\ ChargeTraversalValid1010(ChargeTraversal1010(c,c.world,targets))
/\ LET zero==ChargeCapture1010("Specimen0201","Particular",1,902,{})
later==[zero.world EXCEPT !.objects=ReplacementOverlay99(@,[id \in {1500} |-> LoadedCounterToken109("Power","Play",902,"SideB")])]
positive==ChargeCapture1010("Specimen0201","Particular",1,900,{})
lost==[positive.world EXCEPT !.objects=Without101(@,{1000})]
IN /\ ChargeTraversalValid1010(ChargeTraversal1010(zero,later,{})) /\ ~ChargeTraversalValid1010(ChargeTraversal1010(zero,later,{902}))
/\ ChargeTraversalValid1010(ChargeTraversal1010(positive,lost,{})) /\ ~ChargeTraversalValid1010(ChargeTraversal1010(positive,lost,{900}))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, ChargeCapture1010, ChargeCaptureValid1010, ChargeTraversal1010, ChargeTraversalValid1010, LoadedCounterToken109, Without101
ChargePlan1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargePlan1010(mode) == OpenInstruction93(500,"Ability",8000,ObjectAbilitySource9(800),"Play",1,"NoValue",<<"Charge">>,mode="Chosen")Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, OpenInstruction93
ChargeRevisedTraversal1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeRevisedTraversal1010(r) ==
LET reference==[r.context.currentRef EXCEPT !.revision=@+1]
spec==[r.spec EXCEPT !.reference=reference]
IN [r EXCEPT !.context.currentRef=reference,!.spec=spec,!.world.chargeSpecs[ChargeSpecKey1010(spec.reference)]=spec,!.completion.reference=reference,
!.events={[event EXCEPT !.instruction=reference] : event \in @}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ChargeSpecKey1010
ChargeScopeAndCountChecks1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeScopeAndCountChecks1010 ==
LET c==ChargeCapture1010("Specimen0225","Chosen",1,0,{900})
virtual==[c EXCEPT !.world.objects[1000].virtual=TRUE]
converted==[c EXCEPT !.world.objects[1000]=ReplacementOverlay99(@,[card |-> "Specimen0046",owner |-> "SideA",properties |-> [kind |-> "Power"]])]
nested==ReplacementOverlay99([c.world.objects EXCEPT ![1000].host=1500],[id \in {1500} |-> LoadedCounterToken109("SchemaAtom043","Play",900,"SideB")])
vResult==ChargeTraversal1010(virtual,virtual.world,{900})
convertedResult==ChargeTraversal1010(converted,converted.world,{900})
short==ChargeCapture1010("Specimen0225","Chosen",3,0,{900,904})
ifAble==ChargeChangeSpec1010(short,[short.spec EXCEPT !.ifAble=TRUE])
compiled0==ChargeCapture1010("Specimen0225","Chosen",2,0,{900,901})
compiled==ChargeChangeSpec1010(compiled0,[compiled0.spec EXCEPT !.setRule="CompiledSet",!.compiledSet={900,901,903}])
explicit0==ChargeCapture1010("Specimen0225","Chosen",3,0,{900,901,903})
explicit==ChargeChangeSpec1010(explicit0,[explicit0.spec EXCEPT !.setRule="CompiledSet",!.compiledSet={900,901,903},!.targetZone="Play"])
IN /\ ChargeCaptureValid1010(virtual) /\ ChargeTraversalValid1010(vResult) /\ vResult.afterObjects[1000].virtual /\ ~vResult.added[2000].virtual
/\ ChargeCaptureValid1010(converted) /\ ChargeTraversalValid1010(convertedResult) /\ convertedResult.afterObjects[1000]=converted.world.objects[1000]
/\ ~ChargePower1010(nested,900)
/\ ChargeCaptureValid1010(ifAble) /\ ChargeTraversalValid1010(ChargeTraversal1010(ifAble,ifAble.world,{}))
/\ ChargeCaptureValid1010(compiled) /\ ChargeTraversalValid1010(ChargeTraversal1010(compiled,compiled.world,{900,901}))
/\ ChargeCaptureValid1010(explicit) /\ ChargeTraversalValid1010(ChargeTraversal1010(explicit,explicit.world,{900,901,903}))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, ChargeCapture1010, ChargeCaptureValid1010, ChargeChangeSpec1010, ChargeTraversal1010, ChargeTraversalValid1010, ChargePower1010, LoadedCounterToken109
ChargeSpecFixture1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeSpecFixture1010(world,plan,card,mode,amount,particular) ==
[tag |-> "CurrentChargeSpec",reference |-> InstructionWindowRef93(plan),snapshotId |-> world.id,source |-> plan.source,sourceCard |-> card,sourceSHA |-> CardFacts10[card].sourceSHA,
actor |-> "SideB",mode |-> mode,requested |-> amount,ifAble |-> FALSE,setRule |-> "YourDeployedCards",targetZone |-> "DefaultDeployed",targetView |-> "OrdinaryHosting",compiledSet |-> {},particular |-> particular]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InstructionWindowRef93, CardFacts10
ChargeTraversal1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeTraversal1010(x,changed,targets) ==
LET world==ChargeCurrentWorld1010(x,changed,changed.id+1)
context==ChargeContext1010(x,world)
ids==world.nextCounterObject..(world.nextCounterObject+Cardinality(targets)-1)
targetFor==[id \in ids |-> CHOOSE t \in targets : Cardinality({other \in targets : other<t})=id-world.nextCounterObject]
added==[id \in ids |-> LoadedCounterToken109("Power",world.objects[targetFor[id]].zone,targetFor[id],"SideB")]
after==ReplacementOverlay99(world.objects,added)
completed==world.completedCharges \cup {ChargeAdmissionKey1010(context,1)}
completion==[tag |-> "ChargeInstructionComplete",id |-> 10001,reference |-> context.currentRef,admission |-> ChargeAdmissionKey1010(context,1),charged |-> targets,complete |-> TRUE]
events=={[tag |-> "PowerCounterPlacedByCharge",instruction |-> context.currentRef,host |-> target,counter |-> CHOOSE id \in DOMAIN added : added[id].host=target,
source |-> context.currentRef.source,snapshotId |-> world.id] : target \in targets}
IN [world |-> world,context |-> context,admission |-> x.admission,spec |-> world.chargeSpecs[ChargeSpecKey1010(context.currentRef)],afterObjects |-> after,added |-> added,afterCompleted |-> completed,completion |-> completion,events |-> events]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, ChargeContext1010, ChargeCurrentWorld1010, ChargeAdmissionKey1010, ChargeSpecKey1010, LoadedCounterToken109
ChargeTraversalValid1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeTraversalValid1010(x) == ResolveCharge1010(x.context,x.world,1,CardFacts10,x.admission,x.spec,x.afterObjects,x.world.loadHistory,x.afterCompleted,x.added,10001,x.completion,x.events)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ResolveCharge1010, CardFacts10
ChargeWorld1010 · operator
reference-profile · input revision 2 · CC0 1.0
ChargeWorld1010(card) ==
LET b==LoadWorld109("Specimen0181","Power")
cards==[id \in {800,901,902,903,904} |-> CASE id=800 -> EscalatingResourceContestCard108(card,CardFacts10[card].kind \in {"Technique","Equipment","Support"},FALSE)
[] id=901 -> EscalatingResourceContestCard108("Specimen0199",TRUE,TRUE) [] id=902 -> EscalatingResourceContestCard108("Specimen0060",TRUE,FALSE)
[] OTHER -> LinkObject107("Specimen0181",IF id=903 THEN "charge-copy-2" ELSE "charge-copy-3",id=904)]
counters==[id \in 1000..1005 |-> LoadedCounterToken109(IF id=1005 THEN "ResourceUnit" ELSE "Power","Play",CASE id=1000 -> 900 [] id \in {1001,1002} -> 904 [] id=1003 -> 903 [] id=1004 -> 901 [] OTHER -> 902,"SideB")]
objects==ReplacementOverlay99(ReplacementOverlay99(IF CardFacts10[card].kind="Profile" THEN Without101(b.objects,{1}) ELSE b.objects,cards),counters)
w==ReplacementOverlay99([b EXCEPT !.objects=objects,!.controllers=ReplacementOverlay99(IF CardFacts10[card].kind="Profile" THEN Without101(@,{1}) ELSE @,[id \in (DOMAIN cards \cup DOMAIN counters) |-> IF id \in {901,1004} THEN "SideA" ELSE "SideB"]),
!.definitions=ReplacementOverlay99(@,[key \in {card,"Specimen0199","Specimen0060","charge-copy-2","charge-copy-3"} |-> IF key \in {"charge-copy-2","charge-copy-3"} THEN "Specimen0181" ELSE key]),
!.usedObjects=DOMAIN objects,!.nextCounterObject=2000,!.sideBProfile=IF CardFacts10[card].kind="Profile" THEN 800 ELSE @,
!.properties=IF CardFacts10[card].kind="Profile" THEN [id \in {800} |-> [baseLink |-> 0]] ELSE @],
[chargeSpecs |-> Empty10,chargeAdmissions |-> Empty10,completedCharges |-> {},chargeEventIds |-> {}])
IN wExact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, Empty10, EscalatingResourceContestCard108, LinkObject107, LoadWorld109, LoadedCounterToken109, Without101, CardFacts10
CheckpointCleanupChecks103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointCleanupChecks103 ==
LET o==[id \in {1,2,3} |-> CheckpointObject103("NeutralValue00006","Play",TRUE,0)]
names==[id \in DOMAIN o |-> "Specimen0036"]
controllers==[id \in DOMAIN o |-> "SideB"]
order==[id \in DOMAIN o |-> id]
full==CheckpointUniquePlan103(o,names,{1,2,3},{1,2,3},{},controllers,order)
latestGone==CheckpointUniquePlan103(o,names,{1,2,3},{1,2},{},controllers,order)
tie==CheckpointUniquePlan103(o,names,{1,2},{1,2},{},controllers,[order EXCEPT ![2]=1])
uniqueSuccessors==[id \in {1,2} |-> id+10]
trashed==CheckpointRetireMap103(o,{1,2},uniqueSuccessors,CheckpointPrinted103,CheckpointOwners103,{1,2,3})
choices==AppropriateRetireSets103(DOMAIN CapacityUsage103,CapacityLegal103)
mObjects==[id \in DOMAIN CapacityUsage103 |-> CheckpointObject103("NeutralValue00007","Play",TRUE,0)]
mSuccessors==[id \in {1,2} |-> id+10]
mRetire==CheckpointRetireMap103(mObjects,{1,2},mSuccessors,CheckpointPrinted103,CheckpointOwners103,DOMAIN mObjects)
hostObjects==[id \in {1,2,3,4} |-> CASE id=1 -> CheckpointObject103("NeutralValue00007","Play",TRUE,9)
[] id=2 -> CheckpointObject103("Specimen0174","Play",TRUE,1)
[] id=3 -> CheckpointCounter103("SchemaAtom180","Play",2)
[] OTHER -> CheckpointObject103("Specimen0046","SetAside",FALSE,0)]
departures==[id \in {<<"Movement",90>>} |-> [source |-> 9,objectiveCompletionLeft |-> FALSE,uninstalled |-> TRUE,hostRemoved |-> TRUE,children |-> {1}]]
paid==[id |-> 900,costPaid |-> TRUE,ability |-> [lastFinished |-> FALSE],heldIds |-> {4},transaction |-> 99,sourceForfeited |-> TRUE]
paidMap==[id \in {900} |-> paid]
transit==[id \in {4} |-> [protected |-> TRUE,ability |-> 900,effect |-> 99,object |-> 4,cleanupStage |-> "ProcedureCode76ca53ad9dd0"]]
fHistory==[id \in {<<"Movement",91>>} |-> [source |-> 10,objectiveCompletionLeft |-> TRUE,uninstalled |-> FALSE,hostRemoved |-> TRUE,children |-> {4}]]
firstRetire==CheckpointRetireMap103(hostObjects,{1},[id \in {1} |-> 11],CheckpointPrinted103,CheckpointOwners103,DOMAIN hostObjects)
firstHistory==MergeCheckpointDepartures103(departures,CheckpointNewUninstallDepartures103(hostObjects,{1}))
atG==CheckpointFrameAt103(7)
afterPass==[atG EXCEPT !.snapshotId=101,!.hostPasses=1]
discard==[id \in {1,2} |-> IF id=1 THEN [CheckpointCounter103("SchemaAtom043","SideADiscard",0) EXCEPT !.card="Specimen0046"]
ELSE CheckpointCounter103("SchemaAtom180","SideBDiscard",0)]
conversions==[id \in {1} |-> [mode |-> "Counter",card |-> "Specimen0046",owner |-> "SideA",createdBy |-> 44,gained |-> [kind |-> "SchemaAtom043"]]]
restored==[discard EXCEPT ![1].form="Card",![1].kind="Plan",![1].properties=CheckpointPrinted103["Specimen0046"]]
scores==[id \in {1,2} |-> CheckpointObject103("Specimen0038",IF id=1 THEN "SideAObjectiveCompletion" ELSE "SideBObjectiveCompletion",FALSE,0)]
qC==CheckpointFrameAt103(3)
IN /\ full.disposition="Supported" /\ full.targets={1,2}
/\ latestGone.targets={1}
/\ tie.disposition="UnsupportedActivationTie" /\ tie.targets={}
/\ CheckpointUniquePlan103(o,names,{1},{1,2},{},controllers,order).disposition="UnsupportedMixedUniqueness"
/\ CheckpointUniquePlan103(o,[names EXCEPT ![3]="Other"],{},{1,2,3},{1,2,3},controllers,order).targets={1,2}
/\ CheckpointUniqueRetire103(CheckpointFrameAt103(4),CheckpointNextFrame103(CheckpointFrameAt103(4),101),o,trashed,names,{1,2,3},{1,2,3},{},controllers,order,
uniqueSuccessors,{1,2,3},CheckpointPrinted103,CheckpointOwners103,{1,2,3},101)
/\ ~CheckpointRetirePost103(o,trashed,{1,2},uniqueSuccessors,{1,2,3,11},CheckpointPrinted103,CheckpointOwners103,{1,2,3})
/\ ~CheckpointUniqueRetire103(CheckpointFrameAt103(3),CheckpointNextFrame103(CheckpointFrameAt103(3),101),o,trashed,names,{1,2,3},{1,2,3},{},controllers,order,
uniqueSuccessors,{1,2,3},CheckpointPrinted103,CheckpointOwners103,{1,2,3},101)
/\ choices={{1,2},{3}} /\ {1,2} \in choices /\ {3} \in choices
/\ {1,2,4} \notin choices /\ {1,3} \notin choices
/\ AppropriateRetireSets103({1,2},NonMonotoneLegal103)={{}}
/\ AppropriateRetireSets103({1,2},ImpossibleLegal103)={}
/\ CheckpointIllegalDisposition103({1,2},ImpossibleLegal103)="UnsupportedNoLegalizingSet"
/\ IllegalRetireChooser103({{1},{2}},[id \in {1,2} |-> IF id=1 THEN "SideA" ELSE "SideB"],"SideB")="SideB"
/\ IllegalRetireChooser103(choices,[id \in DOMAIN CapacityUsage103 |-> "SideB"],"SideA")="SideB"
/\ IllegalRetireChooser103({{1}},[id \in {1} |-> "SideB"],"SideA")="NoValue"
/\ IllegalRetireChooser103({{1},{2}},[id \in {1,2} |-> IF id=1 THEN "SideA" ELSE "SideB"],"SideA")="SideA"
/\ CheckpointIllegalRetire103(CheckpointFrameAt103(5),CheckpointNextFrame103(CheckpointFrameAt103(5),101),mObjects,mRetire,DOMAIN CapacityUsage103,
CapacityLegal103,[id \in DOMAIN CapacityUsage103 |-> "SideB"],"SideA",Empty10,[applies |-> FALSE],"SideB",{1,2},mSuccessors,DOMAIN mObjects,
CheckpointPrinted103,CheckpointOwners103,DOMAIN mObjects,101)
/\ CheckpointHostedTargets103(hostObjects,departures,"ProcedureCode96bfa1b6a970",transit,paidMap)={1}
/\ CheckpointHostedCleanup103(atG,afterPass,hostObjects,firstRetire,departures,firstHistory,transit,paidMap,[id \in {1} |-> 11],DOMAIN hostObjects,
CheckpointPrinted103,CheckpointOwners103,DOMAIN hostObjects,101)
/\ CheckpointHostedTargets103(firstRetire,firstHistory,"ProcedureCode96bfa1b6a970",transit,paidMap)={2}
/\ ~CheckpointHostedCleanup103(atG,CheckpointNextFrame103(atG,101),hostObjects,firstRetire,departures,firstHistory,transit,paidMap,[id \in {1} |-> 11],DOMAIN hostObjects,
CheckpointPrinted103,CheckpointOwners103,DOMAIN hostObjects,101)
/\ CheckpointHostedTargets103(hostObjects,fHistory,"ProcedureCode76ca53ad9dd0",transit,paidMap)={}
/\ CheckpointHostedTargets103(hostObjects,fHistory,"ProcedureCode76ca53ad9dd0",transit,[paidMap EXCEPT ![900].ability.lastFinished=TRUE])={4}
/\ RestoreDiscardConversions103(discard,restored,conversions,Empty10,CheckpointPrinted103)
/\ ~CheckpointReturnDiscardCounters103(CheckpointFrameAt103(12),CheckpointNextFrame103(CheckpointFrameAt103(12),101),discard,Without101(discard,{1,2}),101)
/\ CheckpointReturnDiscardCounters103(CheckpointFrameAt103(12),CheckpointNextFrame103(CheckpointFrameAt103(12),101),restored,Without101(restored,{2}),101)
/\ CheckpointObjectiveOutcome103(scores,[id \in {1,2} |-> 7])="Draw"
/\ CheckpointObjectiveOutcome103(scores,[id \in {1,2} |-> IF id=1 THEN 7 ELSE 6])="SideA"
/\ CheckpointVictory103(qC,[qC EXCEPT !.outcome="Draw",!.phase="SchemaAtom160",!.point="GameEnded"],scores,[id \in {1,2} |-> 7],100)
/\ ~CheckpointVictory103(qC,CheckpointNextFrame103(qC,100),scores,[id \in {1,2} |-> 7],100)
/\ CheckpointVictory103(qC,CheckpointNextFrame103(qC,100),scores,[id \in {1,2} |-> 6],100)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CapacityLegal103, CapacityUsage103, CheckpointCounter103, CheckpointFrameAt103, CheckpointNextFrame103, CheckpointObject103, CheckpointOwners103, CheckpointPrinted103, Empty10, ImpossibleLegal103, NonMonotoneLegal103, AppropriateRetireSets103, CheckpointHostedCleanup103, CheckpointHostedTargets103, CheckpointIllegalDisposition103, CheckpointIllegalRetire103, CheckpointNewUninstallDepartures103, CheckpointObjectiveOutcome103, CheckpointRetireMap103, CheckpointRetirePost103, CheckpointReturnDiscardCounters103, CheckpointUniquePlan103, CheckpointUniqueRetire103, CheckpointVictory103, IllegalRetireChooser103, MergeCheckpointDepartures103, RestoreDiscardConversions103, Without101
CheckpointCounter103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointCounter103(kind,zone,host) ==
[card |-> "none",form |-> "Counter",kind |-> kind,zone |-> zone,loc |-> host,host |-> host,
virtual |-> FALSE,deployed |-> FALSE,activated |-> FALSE,face |-> "Up",properties |-> Empty10,side |-> "SideB",area |-> "NoValue",targetSite |-> "NoValue",marks |-> {}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Empty10
CheckpointEnvironmentChecks103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointEnvironmentChecks103 ==
LET targetSites==[s \in CentralTargetSites4 \cup {"r1","r2"} |-> [kind |-> IF s \in CentralTargetSites4 THEN "SchemaAtom033" ELSE "SchemaAtom132"]]
deploy==[id \in {20} |-> [form |-> "Card",kind |-> "Barrier",destination |-> [zone |-> "Play",targetSite |-> "r1",area |-> "Protecting"]]]
afterTargetSites==Without101(targetSites,{"r2"})
atH==CheckpointFrameAt103(8)
layout==[slots |-> [p \in {"p1","p2","p3","p4"} |-> [targetSite |-> IF p="p3" THEN "r2" ELSE "r1",barrierCard |-> IF p="p4" THEN 50 ELSE 0,reservation |-> 0,retained |-> FALSE]],
orders |-> [s \in {"r1","r2"} |-> IF s="r1" THEN <<"p1","p2","p4">> ELSE <<"p3">>]]
kept==[layout EXCEPT !.slots=Without101(@,{"p3"}),!.orders["r2"]= <<>>]
noDeploy==[layout EXCEPT !.slots=[p \in {"p2","p4"} |-> [layout.slots[p] EXCEPT !.retained=(p="p2")]],
!.orders["r1"]= <<"p2","p4">>,!.orders["r2"]= <<>>]
rootObjects==[id \in {1,2} |-> [CheckpointObject103("Specimen0098","Play",TRUE,0) EXCEPT !.targetSite="r1"]]
siteInspection==[id |-> 8,active |-> TRUE,complete |-> FALSE,targetSite |-> "r1"]
capacity==[siteInspectionId |-> 8,admittedRoots |-> {1},pendingRoots |-> {},deniedRoots |-> {}]
entries==[id \in {1,2} |-> [tag |-> "RootEntry",siteInspectionId |-> 8,object |-> id,serial |-> IF id=1 THEN 8 ELSE 12,targetSite |-> "r1"]]
admitted==[capacity EXCEPT !.admittedRoots={1,2}]
denied==[capacity EXCEPT !.deniedRoots={2}]
atE==CheckpointFrameAt103(5)
auxiliarySiteObjects==[id \in {1,2} |-> [CheckpointObject103("Specimen0098","Play",TRUE,0) EXCEPT !.targetSite=IF id=1 THEN "r1" ELSE "r2"]]
auxiliarySiteSuccessors==[id \in {2} |-> 12]
retiredObjects==CheckpointRetireMap103(auxiliarySiteObjects,{2},auxiliarySiteSuccessors,CheckpointPrinted103,CheckpointOwners103,{1,2})
retiredFrame==[atE EXCEPT !.retiredRemotes={"r2"},!.snapshotId=101]
caller==[kind |-> "TraversalStep",structure |-> TimingRef9("SchemaAtom138",2),step |-> "ProcedureCodecd2caa81fb72"]
endEvent==[id |-> 90,complete |-> TRUE,caller |-> caller,tag |-> "TimingStructureEnded",structure |-> TimingRef9("TraversalPhase",21)]
inside=={TimingRef9("Turn",1),TimingRef9("SchemaAtom138",2),TimingRef9("TraversalPhase",21)}
endSite==[kind |-> "StructureEnd",caller |-> caller,eventId |-> 90,snapshotId |-> 100,inside |-> inside \ {TimingRef9("TraversalPhase",21)}]
siteFrame==NewCheckpoint103(7,caller,100,inside \ {TimingRef9("TraversalPhase",21)})
genericSite==[endSite EXCEPT !.kind="Instruction",!.inside=inside]
instructionEvent==[id |-> 90,complete |-> TRUE,caller |-> caller,tag |-> "InstructionFinished",origin |-> "TimingStep",instruction |-> "ProcedureCodecd2caa81fb72"]
overrideBefore==CheckpointFrameAt103(2)
overrideOwed== <<"ProcedureCodeb681cc249a04","ProcedureCode88eda145024f">> \o SubSeq(CheckpointStages103,4,12)
auth==[id |-> 1,checkpointId |-> 1,snapshotId |-> 100,rule |-> "CheckpointOrder",directContradiction |-> TRUE,prohibited |-> FALSE,
source |-> ObjectAbilitySource9(999),executionId |-> 500,instruction |-> 700,beforeOwed |-> overrideBefore.owed,afterOwed |-> overrideOwed,
discharged |-> {},explicitlyReplacedObligations |-> {}]
execution==[tag |-> "ActualCheckpointCardOverride",id |-> 500,source |-> ObjectAbilitySource9(999),instruction |-> 700,
checkpointId |-> 1,snapshotId |-> 100,resolved |-> TRUE]
allowed==[id \in {1} |-> auth]
overrideAfter==[overrideBefore EXCEPT !.owed=overrideOwed,!.overrideLog= <<auth>>,!.point="ProcedureCodeb681cc249a04"]
discharge==[auth EXCEPT !.afterOwed=SubSeq(CheckpointStages103,3,12),!.discharged={"ProcedureCode88eda145024f"},!.explicitlyReplacedObligations={"ProcedureCode88eda145024f"}]
discharged==[overrideBefore EXCEPT !.owed=SubSeq(CheckpointStages103,3,12),!.overrideLog= <<discharge>>,!.point="ProcedureCodeb681cc249a04",!.discharged={"ProcedureCode88eda145024f"}]
IN /\ AppropriateRetireSets103({1,2,3},SourceLostMuLegal103)={{1},{3}}
/\ AppropriateRetireSets103({1,2},Specimen0049HostLegal103)={{1}}
/\ CheckpointAuxiliarySiteCleanup103(atH,CheckpointNextFrame103(atH,100),targetSites,afterTargetSites,Empty10,deploy,100)
/\ ~CheckpointAuxiliarySiteCleanup103(atH,CheckpointNextFrame103(atH,100),targetSites,Without101(targetSites,{"r1","r2"}),Empty10,deploy,100)
/\ CheckpointAuxiliarySiteCleanup103(atH,CheckpointNextFrame103(atH,100),targetSites,Without101(targetSites,{"r1","r2"}),Empty10,Empty10,100)
/\ CheckpointPositionCleanup103(CheckpointFrameAt103(9),CheckpointNextFrame103(CheckpointFrameAt103(9),100),layout,kept,"NoValue",deploy,100)
/\ ~CheckpointPositionCleanup103(CheckpointFrameAt103(9),CheckpointNextFrame103(CheckpointFrameAt103(9),100),layout,layout,"NoValue",deploy,100)
/\ CheckpointPositionCleanup103(CheckpointFrameAt103(9),CheckpointNextFrame103(CheckpointFrameAt103(9),100),layout,noDeploy,"p2",Empty10,100)
/\ CheckpointRootAdmissions103(CheckpointFrameAt103(10),CheckpointNextFrame103(CheckpointFrameAt103(10),100),capacity,admitted,siteInspection,rootObjects,entries,10,15,{2},"SideB",100)
/\ CheckpointRootAdmissions103(CheckpointFrameAt103(10),CheckpointNextFrame103(CheckpointFrameAt103(10),100),capacity,denied,siteInspection,rootObjects,entries,10,15,{},"SideB",100)
/\ ~CheckpointRootAdmissions103(CheckpointFrameAt103(10),CheckpointNextFrame103(CheckpointFrameAt103(10),100),capacity,admitted,siteInspection,rootObjects,entries,10,15,{2},"SideA",100)
/\ ~CheckpointRootAdmissions103(CheckpointFrameAt103(10),CheckpointNextFrame103(CheckpointFrameAt103(10),100),capacity,admitted,siteInspection,rootObjects,entries,10,11,{2},"SideB",100)
/\ CheckpointRootAdmissions103(CheckpointFrameAt103(10),CheckpointNextFrame103(CheckpointFrameAt103(10),100),capacity,capacity,siteInspection,rootObjects,
[entries EXCEPT ![2].siteInspectionId=7],10,15,{},"SideB",100)
/\ ~CheckpointRootAdmissions103(CheckpointFrameAt103(10),CheckpointNextFrame103(CheckpointFrameAt103(10),100),capacity,admitted,siteInspection,rootObjects,
[entries EXCEPT ![2].siteInspectionId=7],10,15,{2},"SideB",100)
/\ CheckpointRootAdmissions103(CheckpointFrameAt103(10),CheckpointNextFrame103(CheckpointFrameAt103(10),100),capacity,
[capacity EXCEPT !.admittedRoots={},!.deniedRoots={1}],siteInspection,rootObjects,[id \in {1} |-> [entries[1] EXCEPT !.serial=14]],10,15,{},"SideB",100)
/\ CheckpointRootAdmissions103(CheckpointFrameAt103(10),CheckpointNextFrame103(CheckpointFrameAt103(10),100),
[capacity EXCEPT !.deniedRoots={2}],[capacity EXCEPT !.admittedRoots={1,3},!.deniedRoots={2}],siteInspection,
[id \in {1,3} |-> rootObjects[1]],[id \in {3} |-> [entries[2] EXCEPT !.object=3]],10,15,{3},"SideB",100)
/\ CheckpointRootAdmissions103(CheckpointFrameAt103(10),CheckpointNextFrame103(CheckpointFrameAt103(10),100),capacity,capacity,
[siteInspection EXCEPT !.active=FALSE],rootObjects,entries,10,15,{},"NoValue",100)
/\ ~CheckpointRootAdmissions103(CheckpointFrameAt103(10),CheckpointNextFrame103(CheckpointFrameAt103(10),100),capacity,admitted,
[siteInspection EXCEPT !.active=FALSE],rootObjects,entries,10,15,{2},"SideB",100)
/\ CheckpointAuxiliarySiteLimit103(atE,retiredFrame,targetSites,auxiliarySiteObjects,retiredObjects,{"r1"},1,auxiliarySiteSuccessors,{1,2},CheckpointPrinted103,CheckpointOwners103,{1,2},101)
/\ ~CheckpointIllegalRetire103(atE,CheckpointNextFrame103(atE,101),auxiliarySiteObjects,retiredObjects,{1,2},Specimen0049HostLegal103,[id \in {1,2} |-> "SideB"],
"SideB",targetSites,[applies |-> TRUE,value |-> 1],"SideB",{2},auxiliarySiteSuccessors,{1,2},CheckpointPrinted103,CheckpointOwners103,{1,2},101)
/\ ~CheckpointIllegalRetire103(atE,CheckpointNextFrame103(atE,100),auxiliarySiteObjects,auxiliarySiteObjects,{},NonMonotoneLegal103,Empty10,
"SideB",targetSites,[applies |-> TRUE,value |-> 1],"NoValue",{},Empty10,{1,2},CheckpointPrinted103,CheckpointOwners103,{1,2},100)
/\ CheckpointIllegalRetire103(retiredFrame,CheckpointNextFrame103(retiredFrame,101),retiredObjects,retiredObjects,{},NonMonotoneLegal103,Empty10,
"SideB",targetSites,[applies |-> TRUE,value |-> 1],"NoValue",{},Empty10,{1,12},CheckpointPrinted103,CheckpointOwners103,{1,12},101)
/\ OpenCheckpointAtSite103(siteFrame,7,endSite,endEvent,inside,{})
/\ BeginCheckpointSite103({}, {CheckpointSiteKey103(endSite)}, Empty10,[id \in {7} |-> siteFrame],siteFrame,7,endSite,endEvent,inside)
/\ ~BeginCheckpointSite103({CheckpointSiteKey103(endSite)}, {CheckpointSiteKey103(endSite)}, Empty10,[id \in {7} |-> siteFrame],siteFrame,7,endSite,endEvent,inside)
/\ ~BeginCheckpointSite103({}, {CheckpointSiteKey103(endSite)}, [id \in {1} |-> CheckpointFrameAt103(4)],
[id \in {1,7} |-> IF id=7 THEN siteFrame ELSE CheckpointFrameAt103(4)],siteFrame,7,endSite,endEvent,inside)
/\ TimingRef9("SchemaAtom138",2) \in siteFrame.inside /\ TimingRef9("TraversalPhase",21) \notin siteFrame.inside
/\ ~OpenCheckpointAtSite103([siteFrame EXCEPT !.inside=inside],7,endSite,endEvent,inside,{})
/\ CheckpointSite103(genericSite,instructionEvent,inside)
/\ ~CheckpointSite103(genericSite,[instructionEvent EXCEPT !.instruction="ProcedureCodea488e1ba6ca3"],inside)
/\ ~CheckpointSite103(genericSite,[instructionEvent EXCEPT !.origin="Checkpoint"],inside)
/\ ~CheckpointStageAdvance103([CheckpointFrameAt103(3) EXCEPT !.owed=SubSeq(CheckpointStages103,2,12)],
CheckpointNextFrame103([CheckpointFrameAt103(3) EXCEPT !.owed=SubSeq(CheckpointStages103,2,12)],100),"ProcedureCodeb681cc249a04",100)
/\ CheckpointSite103([endSite EXCEPT !.kind="Cost",!.inside=inside],[id |-> 90,complete |-> TRUE,caller |-> caller,tag |-> "CostPaid",transactionId |-> 3],inside)
/\ CheckpointSite103([endSite EXCEPT !.kind="SchemaAtom126",!.inside=inside],[id |-> 90,complete |-> TRUE,caller |-> caller,tag |-> "PriorityAboutToBeReceived",player |-> "SideB"],inside)
/\ RewriteCheckpointOrder103(overrideBefore,overrideAfter,auth,execution,allowed)
/\ ~RewriteCheckpointOrder103(overrideBefore,overrideAfter,auth,execution,Empty10)
/\ ~RewriteCheckpointOrder103(overrideBefore,overrideAfter,auth,[execution EXCEPT !.snapshotId=101],allowed)
/\ ~RewriteCheckpointOrder103(overrideBefore,overrideAfter,[auth EXCEPT !.discharged={"ProcedureCode88eda145024f"}],execution,allowed)
/\ RewriteCheckpointOrder103(overrideBefore,discharged,discharge,execution,[id \in {1} |-> discharge])
/\ ~RewriteCheckpointOrder103(overrideBefore,discharged,[discharge EXCEPT !.explicitlyReplacedObligations={}],execution,[id \in {1} |-> [discharge EXCEPT !.explicitlyReplacedObligations={}]])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, TimingRef9, CheckpointFrameAt103, CheckpointNextFrame103, CheckpointObject103, CheckpointOwners103, CheckpointPrinted103, Empty10, NonMonotoneLegal103, SourceLostMuLegal103, Specimen0049HostLegal103, AppropriateRetireSets103, BeginCheckpointSite103, CheckpointAuxiliarySiteCleanup103, CheckpointAuxiliarySiteLimit103, CheckpointIllegalRetire103, CheckpointPositionCleanup103, CheckpointRetireMap103, CheckpointRootAdmissions103, CheckpointSite103, CheckpointSiteKey103, CheckpointStageAdvance103, CheckpointStages103, NewCheckpoint103, OpenCheckpointAtSite103, RewriteCheckpointOrder103, Without101, CentralTargetSites4
CheckpointFrameAt103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointFrameAt103(index) ==
[NewCheckpoint103(1,[kind |-> "RuleStep",step |-> "Synthetic"],100,{TimingRef9("Turn",1)}) EXCEPT
!.point=CheckpointStages103[index],!.owed=SubSeq(CheckpointStages103,index,12),!.done=SetupRange(SubSeq(CheckpointStages103,1,index-1))]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: TimingRef9, CheckpointStages103, NewCheckpoint103, SetupRange
CheckpointHistoryChecks103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointHistoryChecks103 ==
LET hosted==[id \in {1,9} |-> IF id=9 THEN CheckpointObject103("Specimen0038","SideAObjectiveCompletion",FALSE,0)
ELSE CheckpointCounter103("Objective","SideAObjectiveCompletion",9)]
departed==[id \in {1,19} |-> IF id=19 THEN [hosted[9] EXCEPT !.zone="Removed"] ELSE hosted[id]]
transfer==[departed EXCEPT ![19].zone="SideBObjectiveCompletion"]
history==[id \in {<<"Movement",91>>} |-> [source |-> 9,objectiveCompletionLeft |-> TRUE,uninstalled |-> FALSE,hostRemoved |-> TRUE,children |-> {1}]]
cardHost==[hosted EXCEPT ![9]=CheckpointObject103("Specimen0227","Play",TRUE,0)]
uninstalled==[departed EXCEPT ![19]=CheckpointObject103("Specimen0227","SideBDiscard",FALSE,0)]
cardHistory==[history EXCEPT ![<<"Movement",91>>].objectiveCompletionLeft=FALSE,![<<"Movement",91>>].uninstalled=TRUE]
successorOnly==[id \in {21} |-> CheckpointObject103("NeutralValue00007","Play",TRUE,0)]
aside==[id \in {4} |-> CheckpointObject103("Specimen0090","SetAside",FALSE,0)]
paid==[id |-> 900,costPaid |-> TRUE,ability |-> [lastFinished |-> FALSE],heldIds |-> {4},transaction |-> 99,sourceForfeited |-> FALSE]
paidMap==[id \in {900} |-> paid]
transit==[id \in {4} |-> [protected |-> TRUE,ability |-> 900,effect |-> 99,object |-> 4,cleanupStage |-> "ProcedureCode96bfa1b6a970"]]
gHistory==[id \in {<<"Movement",92>>} |-> [source |-> 9,objectiveCompletionLeft |-> FALSE,uninstalled |-> TRUE,hostRemoved |-> TRUE,children |-> {4}]]
retained==[id \in {1} |-> CheckpointObject103("Specimen0235","Play",FALSE,0)]
retentions==[id \in {7} |-> [source |-> 1]]
retainRetire==CheckpointRetireMap103(retained,{1},[id \in {1} |-> 11],CheckpointPrinted103,CheckpointOwners103,{})
IN /\ RecordHostDeparture103(Empty10,history,91,hosted,departed,9,19,Empty10)
/\ ~RecordHostDeparture103(Empty10,history,91,hosted,transfer,9,19,Empty10)
/\ ~RecordHostDeparture103(history,history,91,hosted,departed,9,19,Empty10)
/\ RecordHostDeparture103(Empty10,cardHistory,91,cardHost,uninstalled,9,19,Empty10)
/\ CheckpointHostedTargets103(departed,history,"ProcedureCode76ca53ad9dd0",Empty10,Empty10)={1}
/\ CheckpointHostedTargets103(successorOnly,history,"ProcedureCode76ca53ad9dd0",Empty10,Empty10)={}
/\ CheckpointHostedTargets103(aside,gHistory,"ProcedureCode96bfa1b6a970",transit,paidMap)={}
/\ CheckpointHostedTargets103(aside,gHistory,"ProcedureCode96bfa1b6a970",transit,[paidMap EXCEPT ![900].ability.lastFinished=TRUE])={4}
/\ CheckpointHostedTargets103([aside EXCEPT ![4].zone="Play"],Empty10,"ProcedureCode96bfa1b6a970",transit,[paidMap EXCEPT ![900].ability.lastFinished=TRUE])={}
/\ CheckpointRetentionRetire103(CheckpointFrameAt103(2),retentions,Empty10,retained,retainRetire,{},[id \in {1} |-> 11],{1},CheckpointPrinted103,CheckpointOwners103,{})
/\ CheckpointRetentionRetire103(CheckpointFrameAt103(2),retentions,retentions,retained,retained,{7},Empty10,{1},CheckpointPrinted103,CheckpointOwners103,{})
/\ ~CheckpointRetentionRetire103(CheckpointFrameAt103(2),retentions,Empty10,retained,retained,{},[id \in {1} |-> 11],{1},CheckpointPrinted103,CheckpointOwners103,{})
/\ ~CheckpointRetentionRetire103(CheckpointFrameAt103(3),retentions,Empty10,retained,retainRetire,{},[id \in {1} |-> 11],{1},CheckpointPrinted103,CheckpointOwners103,{})
/\ CardFacts10["Specimen0090"].kind="Technique" /\ CardFacts10["Specimen0227"].kind="Support"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointCounter103, CheckpointFrameAt103, CheckpointObject103, CheckpointOwners103, CheckpointPrinted103, Empty10, CheckpointHostedTargets103, CheckpointRetentionRetire103, CheckpointRetireMap103, RecordHostDeparture103, CardFacts10
CheckpointMarksChecks103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointMarksChecks103 ==
LET physical=={"Specimen0036-physical-1","Specimen0036-physical-2","Specimen0049-unrelated"}
printed==[card \in physical |-> IF card="Specimen0049-unrelated" THEN CheckpointPrinted103["NeutralValue00007"] ELSE CheckpointPrinted103["NeutralValue00006"]]
owners==[card \in physical |-> "SideB"]
objects==[id \in {1,2,3} |-> IF id=3 THEN [CheckpointObject103("NeutralValue00007","Play",TRUE,0) EXCEPT
!.card="Specimen0049-unrelated",!.marks={"UnrelatedRestriction"}]
ELSE [CheckpointObject103("NeutralValue00006","Play",TRUE,0) EXCEPT
!.card=IF id=1 THEN "Specimen0036-physical-1" ELSE "Specimen0036-physical-2",!.marks={"OldObjectRestriction"}]]
names==[id \in DOMAIN objects |-> IF id=3 THEN "Specimen0049" ELSE "Specimen0036"]
controllers==[id \in DOMAIN objects |-> "SideB"]
order==[id \in DOMAIN objects |-> id]
successor==[id \in {1} |-> 11]
output==[id \in {2,3,11} |-> IF id=11 THEN [objects[1] EXCEPT !.zone="SideBDiscard",!.loc="discard",
!.host=0,!.deployed=FALSE,!.activated=FALSE,!.face="Up",!.marks={}] ELSE objects[id]]
inherited==[output EXCEPT ![11].marks=objects[1].marks]
counterObjects==[id \in {4,5} |-> IF id=4 THEN [CheckpointCounter103("SchemaAtom043","Play",9) EXCEPT
!.card="Specimen0046",!.side="SideA",!.marks={"ConvertedObjectRestriction"}]
ELSE [CheckpointObject103("NeutralValue00007","Play",TRUE,0) EXCEPT !.marks={"UnrelatedCounterCaseRestriction"}]]
counterSuccessor==[id \in {4} |-> 14]
counterOutput==[id \in {5,14} |-> IF id=14 THEN [counterObjects[4] EXCEPT !.form="Card",!.kind="Plan",
!.properties=CheckpointPrinted103["Specimen0046"],!.zone="SideADiscard",!.loc="discard",!.host=0,
!.deployed=FALSE,!.activated=FALSE,!.face="Up",!.marks={}] ELSE counterObjects[id]]
discard==[id \in {7,8,9} |-> CASE id=7 -> [CheckpointCounter103("SchemaAtom043","SideADiscard",0) EXCEPT
!.card="Specimen0046",!.marks={"CurrentDiscardRestriction"}]
[] id=8 -> [CheckpointObject103("Specimen0158","SideBDiscard",FALSE,0) EXCEPT
!.kind="Objective",!.properties=[kind |-> "Objective",objectivePoints |-> -1],!.marks={"CurrentObjectiveRestriction"}]
[] OTHER -> [CheckpointObject103("NeutralValue00007","SideBDiscard",FALSE,0) EXCEPT !.marks={"UnrelatedDiscardRestriction"}]]
conversions==[id \in {7,8} |-> IF id=7 THEN [mode |-> "Counter",card |-> "Specimen0046",owner |-> "SideA",createdBy |-> 44,gained |-> [kind |-> "SchemaAtom043"]]
ELSE [mode |-> "Objective",card |-> "Specimen0158",owner |-> "SideA",createdBy |-> 45,gained |-> [kind |-> "Objective",objectivePoints |-> -1]]]
restored==[id \in DOMAIN discard |-> IF id \in {7,8} THEN [discard[id] EXCEPT !.form="Card",
!.kind=CheckpointPrinted103[discard[id].card].kind,!.properties=CheckpointPrinted103[discard[id].card],!.host=0,!.deployed=FALSE]
ELSE discard[id]]
IN /\ CheckpointUniqueRetire103(CheckpointFrameAt103(4),CheckpointNextFrame103(CheckpointFrameAt103(4),101),
objects,output,names,{1,2},{1,2,3},{},controllers,order,successor,{1,2,3},printed,owners,{1,2,3},101)
/\ output[11].marks={} /\ output[11].card=objects[1].card /\ 1 \notin DOMAIN output
/\ output[2]=objects[2] /\ output[3]=objects[3]
/\ ~CheckpointUniqueRetire103(CheckpointFrameAt103(4),CheckpointNextFrame103(CheckpointFrameAt103(4),101),
objects,inherited,names,{1,2},{1,2,3},{},controllers,order,successor,{1,2,3},printed,owners,{1,2,3},101)
/\ ~CheckpointUniqueRetire103(CheckpointFrameAt103(4),CheckpointNextFrame103(CheckpointFrameAt103(4),101),
objects,[output EXCEPT ![3].marks={}],names,{1,2},{1,2,3},{},controllers,order,successor,{1,2,3},printed,owners,{1,2,3},101)
/\ CheckpointIllegalRetire103(CheckpointFrameAt103(5),CheckpointNextFrame103(CheckpointFrameAt103(5),101),counterObjects,counterOutput,{4},
MarkedCounterLegal103,[id \in {4,5} |-> IF id=4 THEN "SideA" ELSE "SideB"],"SideB",Empty10,[applies |-> FALSE],"NoValue",{4},counterSuccessor,{4,5},
CheckpointPrinted103,CheckpointOwners103,{4},101)
/\ counterOutput[14].marks={} /\ counterOutput[14].form="Card" /\ counterOutput[14].card="Specimen0046" /\ counterOutput[5]=counterObjects[5]
/\ ~CheckpointRetirePost103(counterObjects,[counterOutput EXCEPT ![14].marks=counterObjects[4].marks],{4},counterSuccessor,{4,5},CheckpointPrinted103,CheckpointOwners103,{4})
/\ RestoreDiscardConversions103(discard,restored,conversions,Empty10,CheckpointPrinted103)
/\ restored[7].marks=discard[7].marks /\ restored[8].marks=discard[8].marks /\ restored[9]=discard[9]
/\ ~RestoreDiscardConversions103(discard,[restored EXCEPT ![7].marks={}],conversions,Empty10,CheckpointPrinted103)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointCounter103, CheckpointFrameAt103, CheckpointNextFrame103, CheckpointObject103, CheckpointOwners103, CheckpointPrinted103, Empty10, MarkedCounterLegal103, CheckpointIllegalRetire103, CheckpointRetirePost103, CheckpointUniqueRetire103, RestoreDiscardConversions103
CheckpointNextFrame103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointNextFrame103(frame,snapshot) ==
LET rest==SubSeq(frame.owed,2,Len(frame.owed))
IN [frame EXCEPT !.owed=rest,!.done=@ \cup {frame.point},!.snapshotId=snapshot,
!.point=IF rest = <<>> THEN "ProcedureCodeb74d673a0fc6" ELSE rest[1],!.phase=IF rest = <<>> THEN "Completed" ELSE "Steps"]Exact module download · Source bundle and reproduction instructions
CheckpointObject103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointObject103(card,zone,deployed,host) ==
[card |-> card,form |-> "Card",kind |-> CardFacts10[card].kind,zone |-> zone,loc |-> zone,
host |-> host,virtual |-> FALSE,deployed |-> deployed,activated |-> deployed,face |-> "Up",
properties |-> CheckpointPrinted103[card],side |-> CardFacts10[card].side,area |-> "Root",targetSite |-> "SchemaAtom082",marks |-> {}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointPrinted103, CardFacts10
CheckpointOwners103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointOwners103 == [card \in DOMAIN CardFacts10 |-> CardFacts10[card].side]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CardFacts10
CheckpointPrinted103 · operator
reference-profile · input revision 2 · CC0 1.0
CheckpointPrinted103 == [card \in DOMAIN CardFacts10 |-> [kind |-> CardFacts10[card].kind]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CardFacts10
CounterContextFixture109 · operator
reference-profile · input revision 2 · CC0 1.0
CounterContextFixture109(world,operation,kind,amount,stamp) ==
LET card==LinkDefinition107(world,world.objects[900])
effect==[id |-> 1,kind |-> operation,value |-> amount,actor |-> CardFacts10[card].side,baseOrigin |-> ObjectAbilitySource9(900),
target |-> 900,counterKind |-> kind,counterKinds |-> {kind},loadDefinition |-> IF operation="LoadCounters" THEN 19000 ELSE 0,sourceCard |-> card,sourceSHA |-> CardFacts10[card].sourceSHA]
IN [id |-> 109000+stamp,phase |-> "Resolving",currentRef |-> DamageReference104(0),currentWorld |-> world.id,
templates |-> [id \in {1} |-> effect],state |-> [effects |-> [id \in {1} |-> effect]],actualEffects |-> [id \in {1} |-> effect]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, DamageReference104, LinkDefinition107, CardFacts10
CounterTraversalDefinition109 · operator
reference-profile · input revision 2 · CC0 1.0
CounterTraversalDefinition109(world,operation,kind,amount,stamp,selected,loadDefinition) ==
LET context==[CounterContextFixture109(world,operation,kind,amount,stamp) EXCEPT !.templates[1].loadDefinition=loadDefinition,!.state.effects[1].loadDefinition=loadDefinition,!.actualEffects[1].loadDefinition=loadDefinition]
e==context.actualEffects[1]
created==IF operation="RemoveCounters" THEN {} ELSE world.nextCounterObject..(world.nextCounterObject+amount-1)
added==[id \in created |-> LoadedCounterToken109(kind,world.objects[900].zone,900,e.actor)]
objects==IF operation="RemoveCounters" THEN Without101(world.objects,selected) ELSE ReplacementOverlay99(world.objects,added)
next==world.nextCounterObject+Cardinality(created)
eventId==1090000+stamp
h==[tag |-> "CompletedLoad",host |-> 900,kind |-> kind,loadDefinition |-> loadDefinition,reference |-> context.currentRef,sourceCard |-> e.sourceCard,
sourceSHA |-> e.sourceSHA,amount |-> amount,createdCounterIds |-> created,snapshotId |-> world.id]
history==IF operation="LoadCounters" THEN ReplacementOverlay99(world.loadHistory,[id \in {eventId} |-> h]) ELSE world.loadHistory
completed==world.completedCounterInstructions \cup {CounterInstructionKey109(context,context.currentRef,1)}
event==[tag |-> "HostedCounterInstructionComplete",id |-> eventId,operation |-> operation,reference |-> context.currentRef,host |-> 900,
kind |-> kind,amount |-> amount,selected |-> selected,created |-> created,snapshotId |-> world.id,complete |-> TRUE]
after==[world EXCEPT !.id=@+1,!.objects=objects,!.controllers=ReplacementOverlay99(Without101(@,selected),[id \in created |-> world.controllers[900]]),
!.usedObjects=@ \cup DOMAIN objects,!.nextCounterObject=next,!.loadHistory=history,!.completedCounterInstructions=completed,!.counterEventIds=@ \cup {eventId}]
IN [before |-> world,after |-> after,context |-> context,added |-> added,selected |-> selected,eventId |-> eventId,event |-> event]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, CounterContextFixture109, CounterInstructionKey109, LoadedCounterToken109, Without101
CounterTraversalFixture109 · operator
reference-profile · input revision 2 · CC0 1.0
CounterTraversalFixture109(world,operation,kind,amount,stamp,selected) ==
CounterTraversalDefinition109(world,operation,kind,amount,stamp,selected,IF operation="LoadCounters" THEN 19000 ELSE 0)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CounterTraversalDefinition109
CounterTraversalValid109 · operator
reference-profile · input revision 2 · CC0 1.0
CounterTraversalValid109(x) ==
ExecuteBankHostedCounterInstruction109(x.context,x.context.currentRef,x.before,1,CardFacts10,x.after.objects,x.after.loadHistory,x.after.completedCounterInstructions,
x.selected,x.added,x.after.nextCounterObject,x.eventId,x.event)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExecuteBankHostedCounterInstruction109, CardFacts10
DamageAtomFixture104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageAtomFixture104(card,verb,kind,value) ==
[id |-> 1,kind |-> "Damage",value |-> value,damageType |-> NormalizeDamageType104(kind),actor |-> DamageResponsible104(verb),
damageVerb |-> verb,baseOrigin |-> ObjectAbilitySource9(900),sourceCard |-> card,sourceSHA |-> CardFacts10[card].sourceSHA,
preventable |-> TRUE,lineage |-> 1,baseController |-> "SideA",targeted |-> FALSE,targetCard |-> 0,targetSite |-> "NoValue"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, DamageResponsible104, NormalizeDamageType104, CardFacts10
DamageBatchChecks104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageBatchChecks104 ==
LET objects==DamageObjectsFixture104
atom==DamageAtomFixture104("Specimen0221","Do","HarmClassA",3)
packet==DamagePacketFixture104(atom,0)
frame==DamageFrameFixture104(packet,objects)
selected=={1,2,3}
sample==DamageSampleFixture104(packet,frame.bHand,3,selected)
ready==DamageReadyFixture104(frame,selected)
successors==[id \in selected |-> id+10]
afterObjects==DamageOwnerMoveMap104(objects,selected,successors,"SideB")
complete==DamageCompleteFixture104(ready,afterObjects,successors,210)
event==DamageSufferedEvent104(ready,210,successors)
movement==MovementEvent8(210,"Retire",selected)
history==[id \in {210} |-> movement]
fatalAtom==DamageAtomFixture104("Specimen0035","Do","HarmClassB",5)
fatalPacket==DamagePacketFixture104(fatalAtom,1)
fatal==DamageFrameFixture104(fatalPacket,objects)
emptyObjects==[id \in {50} |-> objects[id]]
one==DamageAtomFixture104("Specimen0035","Do","HarmClassB",1)
onePacket==DamagePacketFixture104(one,0)
IN /\ Cardinality(RandomDamageChoices104(frame.bHand,3))=4
/\ SelectDamageRandomBatch104(frame,ready,objects,selected,"SideA",sample)
/\ ~SelectDamageRandomBatch104(frame,ready,objects,selected,"SideB",sample)
/\ ~SelectDamageRandomBatch104(frame,[ready EXCEPT !.selections= <<[sample EXCEPT !.actor="SideB"]>>],objects,selected,"SideB",[sample EXCEPT !.actor="SideB"])
/\ ~SelectDamageRandomBatch104(frame,ready,objects,{1,2},"SideA",sample)
/\ ~SelectDamageRandomBatch104(frame,DamageReadyFixture104(frame,{1,2}),objects,{1,2},"SideA",DamageSampleFixture104(packet,frame.bHand,3,{1,2}))
/\ ~SelectDamageRandomBatch104(frame,ready,objects,selected,"SideA",[sample EXCEPT !.population={1,2,3}])
/\ ResolveDamageBatch104(ready,complete,objects,afterObjects,successors,DOMAIN objects,DamageOwnersFixture104,Empty10,Empty10,history,210,{movement,event})
/\ ~ResolveDamageBatch104(frame,complete,objects,afterObjects,successors,DOMAIN objects,DamageOwnersFixture104,Empty10,Empty10,history,210,{movement,event})
/\ ~ResolveDamageBatch104([ready EXCEPT !.phase="Selecting"],complete,objects,afterObjects,successors,DOMAIN objects,DamageOwnersFixture104,Empty10,Empty10,history,210,{movement,event})
/\ ~ResolveDamageBatch104([ready EXCEPT !.selected={1,2}],complete,objects,afterObjects,successors,DOMAIN objects,DamageOwnersFixture104,Empty10,Empty10,history,210,{movement,event})
/\ ~ResolveDamageBatch104(ready,complete,objects,afterObjects,successors,DOMAIN objects,DamageOwnersFixture104,Empty10,history,history,210,{movement,event})
/\ afterObjects[50]=objects[50] /\ afterObjects[4]=objects[4] /\ {1,2,3} \cap DOMAIN afterObjects={}
/\ \A id \in selected : afterObjects[successors[id]].marks={} /\ afterObjects[successors[id]].zone="SideBDiscard"
/\ DamageBatchReadyForConditionals104(complete,afterObjects,event)
/\ DamageNetMeatRetireObservation104(complete,afterObjects,event,1)
/\ ~DamageBatchReadyForConditionals104(ready,objects,event)
/\ BeginDamage104(DamageContextFixture104(fatalAtom,1),DamageReference104(1),DamageWorldFixture104(objects),1,CardFacts10,fatalPacket,fatal,{},"SideA",{})
/\ ~BeginDamage104(DamageContextFixture104(fatalAtom,1),DamageReference104(1),DamageWorldFixture104(objects),1,CardFacts10,fatalPacket,[fatal EXCEPT !.phase="Selecting",!.outcome="Playing"],{},"Playing",{})
/\ ~SelectDamageRandomBatch104(fatal,DamageReadyFixture104(fatal,selected),objects,selected,"SideA",DamageSampleFixture104(fatalPacket,fatal.bHand,5,selected))
/\ ~DamageNetMeatRetireObservation104(fatal,objects,event,1)
/\ BeginDamage104(DamageContextFixture104(fatalAtom,1),DamageReference104(1),DamageWorldFixture104(objects),1,CardFacts10,fatalPacket,
[fatal EXCEPT !.outcome="Draw"],{},"Draw",{"SideB"})
/\ BeginDamage104(DamageContextFixture104(one,0),DamageReference104(0),DamageWorldFixture104(emptyObjects),1,CardFacts10,onePacket,DamageFrameFixture104(onePacket,emptyObjects),{},"SideA",{})Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageAtomFixture104, DamageCompleteFixture104, DamageContextFixture104, DamageFrameFixture104, DamageObjectsFixture104, DamageOwnersFixture104, DamagePacketFixture104, DamageReadyFixture104, DamageReference104, DamageSampleFixture104, DamageWorldFixture104, Empty10, BeginDamage104, DamageBatchReadyForConditionals104, DamageNetMeatRetireObservation104, DamageOwnerMoveMap104, DamageSufferedEvent104, RandomDamageChoices104, ResolveDamageBatch104, SelectDamageRandomBatch104, MovementEvent8, CardFacts10
DamageCompleteFixture104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageCompleteFixture104(frame,objects,successors,batchId) ==
[frame EXCEPT !.phase="Complete",!.finalObjects=objects,!.completion=[batchId |-> batchId,
damageEvent |-> DamageSufferedEvent104(frame,batchId,successors),movementEvent |-> MovementEvent8(batchId,"Retire",frame.selected)]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageSufferedEvent104, MovementEvent8
DamageContextFixture104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageContextFixture104(effect,revision) ==
[id |-> 1040,imminenceId |-> 1041,currentRef |-> DamageReference104(revision),currentWorld |-> 100,phase |-> "Resolving",
state |-> [effects |-> [id \in {1} |-> effect]],actualEffects |-> ActualExpectedEffects99([id \in {1} |-> effect]),templates |-> [id \in {1} |-> effect]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActualExpectedEffects99, DamageReference104
DamageCoreChecks104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageCoreChecks104 ==
LET oldCore==[id \in 100..104 |-> DamageCoreCounterRow104]
objects==ReplacementOverlay99(DamageObjectsFixture104,oldCore)
core==DamageAtomFixture104("Specimen0037","Do","PersistentCapacityHarm",1)
capacityHarmAlias==DamageAtomFixture104("Specimen0037","Do","CapacityHarmAlias",1)
packet==DamagePacketFixture104(core,0)
frame==DamageFrameFixture104(packet,objects)
ready==DamageReadyFixture104(frame,{1})
successors==[id \in {1} |-> 11]
cardsAfter==DamageOwnerMoveMap104(objects,{1},successors,"SideB")
added==[id \in {30000} |-> DamageCoreCounterRow104]
afterObjects==ReplacementOverlay99(cardsAfter,added)
complete==DamageCompleteFixture104(ready,afterObjects,successors,230)
event==DamageSufferedEvent104(ready,230,successors)
movement==MovementEvent8(230,"Retire",{1})
history==[id \in {230} |-> movement]
largerBHand==ReplacementOverlay99(afterObjects,[id \in {1000} |-> [CheckpointObject103("NeutralValue00007","SideBHand",FALSE,0) EXCEPT !.face="NA"]])
mixed==[DamageObjectsFixture104 EXCEPT ![4]=[CheckpointObject103("Specimen0221","SideBHand",FALSE,0) EXCEPT !.card="PhysicalItem0002",!.face="NA",!.marks={"OldSideAHandObjectMark"}]]
mixedOwners==ReplacementOverlay99(DamageOwnersFixture104,[card \in {"PhysicalItem0002"} |-> "SideA"])
mixedSuccessors==[id \in {1,4} |-> id+10]
mixedFirst==DamageOwnerMoveMap104(mixed,{1},[id \in {1} |-> 11],"SideB")
mixedAfter==DamageOwnerMoveMap104(mixedFirst,{4},[id \in {4} |-> 14],"SideA")
IN /\ core=capacityHarmAlias /\ packet.damageType="PersistentCapacityHarm"
/\ DamagePacketFromExpected104(DamageContextFixture104(core,0),DamageReference104(0),DamageWorldFixture104(objects),1,CardFacts10,packet)
/\ BeginDamage104(DamageContextFixture104(core,0),DamageReference104(0),DamageWorldFixture104(objects),1,CardFacts10,packet,frame,{},"Playing",{})
/\ SelectDamageRandomBatch104(frame,ready,objects,{1},"SideA",ready.selections[1])
/\ ResolveDamageBatch104(ready,complete,objects,afterObjects,successors,DOMAIN objects,DamageOwnersFixture104,added,Empty10,history,230,{movement,event})
/\ ~ResolveDamageBatch104(ready,DamageCompleteFixture104(ready,cardsAfter,successors,230),objects,cardsAfter,successors,DOMAIN objects,DamageOwnersFixture104,Empty10,Empty10,history,230,{movement,event})
/\ PersistentCapacityLossQuantity104(objects)=5 /\ PersistentCapacityLossQuantity104(afterObjects)=6
/\ DamageMaximumHandSize104(objects,0)=0 /\ DamageMaximumHandSize104(afterObjects,0)=-1
/\ DamageMaximumHandSize104(largerBHand,0)=-1 /\ DamageMaximumHandSize104(afterObjects,2)=1
/\ complete.outcome="Playing" /\ ~SideBHandHarmElimination4("SideB",-1,FALSE) /\ SideBHandHarmElimination4("SideB",-1,TRUE)
/\ SetupCounterController(DamageCoreCounterRow104,"SideA","SideB")="none"
/\ \A id \in DOMAIN oldCore : afterObjects[id]=oldCore[id]
/\ DamageBatchReadyForConditionals104(complete,afterObjects,event)
/\ ~DamageNetMeatRetireObservation104(complete,afterObjects,event,1)
/\ ~DamageCoreCounters104(packet,cardsAfter,afterObjects,[id \in {100} |-> DamageCoreCounterRow104],DOMAIN objects \cup {11})
/\ DamageCardBatchTransfer104(mixed,mixedAfter,{1,4},mixedSuccessors,DOMAIN mixed,mixedOwners)
/\ mixedAfter[11].zone="SideBDiscard" /\ mixedAfter[14].zone="SideADiscard"
/\ mixedAfter[11].marks={} /\ mixedAfter[14].marks={} /\ mixedAfter[50]=mixed[50]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, CheckpointObject103, DamageAtomFixture104, DamageCompleteFixture104, DamageContextFixture104, DamageFrameFixture104, DamageObjectsFixture104, DamageOwnersFixture104, DamagePacketFixture104, DamageReadyFixture104, DamageReference104, DamageWorldFixture104, Empty10, BeginDamage104, DamageBatchReadyForConditionals104, DamageCardBatchTransfer104, DamageCoreCounterRow104, DamageCoreCounters104, DamageMaximumHandSize104, DamageNetMeatRetireObservation104, DamageOwnerMoveMap104, DamagePacketFromExpected104, DamageSufferedEvent104, PersistentCapacityLossQuantity104, ResolveDamageBatch104, SelectDamageRandomBatch104, SideBHandHarmElimination4, MovementEvent8, SetupCounterController, CardFacts10
DamageCoreOverlay104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageCoreOverlay104(objects,added) == ReplacementOverlay99(objects,added)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99
DamageFrameFixture104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageFrameFixture104(packet,objects) ==
[packet |-> packet,beforeObjects |-> objects,bHand |-> DamageBHand104(objects),selected |-> {},selectionOrder |-> <<>>,selections |-> <<>>,
policy |-> [id |-> 0],phase |-> IF packet.amount>Cardinality(DamageBHand104(objects)) THEN "EliminatedByHarm" ELSE "Selecting",
outcome |-> IF packet.amount>Cardinality(DamageBHand104(objects)) THEN "SideA" ELSE "Playing",completion |-> [batchId |-> 0],finalObjects |-> Empty10]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Empty10, DamageBHand104
DamageObjectsFixture104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageObjectsFixture104 ==
[id \in {1,2,3,4,50} |-> IF id=50 THEN CheckpointObject103("Specimen0051","Play",FALSE,0)
ELSE [CheckpointObject103(IF id=1 THEN "Specimen0122" ELSE "NeutralValue00007","SideBHand",FALSE,0) EXCEPT
!.card=CASE id=1 -> "PhysicalItem0006" [] id=2 -> "PhysicalItem0013" [] id=3 -> "PhysicalItem0014" [] OTHER -> "PhysicalItem0015",!.face="NA",!.marks={"OldHandObjectMark"}]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointObject103
DamageOwnersFixture104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageOwnersFixture104 == [card \in {"PhysicalItem0006","PhysicalItem0013","PhysicalItem0014","PhysicalItem0015"} |-> "SideB"]Exact module download · Source bundle and reproduction instructions
DamagePacketChecks104 · operator
reference-profile · input revision 2 · CC0 1.0
DamagePacketChecks104 ==
LET objects==DamageObjectsFixture104
exampleFamily004==DamageAtomFixture104("Specimen0017","Suffer","HarmClassB",2)
exampleFamily044==DamageAtomFixture104("Specimen0190","Do","HarmClassB",1)
exampleFamily004Context==DamageContextFixture104(exampleFamily004,0)
exampleFamily044Context==DamageContextFixture104(exampleFamily044,0)
exampleFamily004Packet==DamagePacketFixture104(exampleFamily004,0)
exampleFamily044Packet==DamagePacketFixture104(exampleFamily044,0)
world==DamageWorldFixture104(objects)
Specimen0035==DamageAtomFixture104("Specimen0035","Do","HarmClassB",7)
initial==[id \in {1} |-> Specimen0035]
prevented==[initial EXCEPT ![1].value=4]
fatalRemaining==[initial EXCEPT ![1].value=5]
survivingContext==[DamageContextFixture104(prevented[1],1) EXCEPT !.templates=initial]
survivingPacket==DamagePacketFixture104(prevented[1],1)
zero==[initial EXCEPT ![1].value=0]
negative==[initial EXCEPT ![1].value=-1]
raised==[initial EXCEPT ![1].value=1]
removed==[survivingContext EXCEPT !.state.effects=Empty10,!.actualEffects=Empty10]
zeroContext==DamageContextFixture104(zero[1],1)
negativeContext==DamageContextFixture104(negative[1],1)
noPacketReceipt==[tag |-> "NoActualDamagePacket",contextId |-> 1040,reference |-> DamageReference104(1),effectId |-> 1,snapshotId |-> 100]
IN /\ DamagePacketFromExpected104(exampleFamily004Context,DamageReference104(0),world,1,CardFacts10,exampleFamily004Packet)
/\ exampleFamily004Packet.responsible="SideB" /\ CardFacts10[exampleFamily004Packet.sourceCard].side="SideA" /\ ~SideAMeatDamage104(exampleFamily004Packet)
/\ DamagePacketFromExpected104(exampleFamily044Context,DamageReference104(0),world,1,CardFacts10,exampleFamily044Packet) /\ SideAMeatDamage104(exampleFamily044Packet)
/\ ~DamagePacketFromExpected104([exampleFamily004Context EXCEPT !.state.effects[1].actor="SideA",!.actualEffects[1].actor="SideA"],DamageReference104(0),world,1,CardFacts10,[exampleFamily004Packet EXCEPT !.responsible="SideA"])
/\ ~DamagePacketFromExpected104(exampleFamily004Context,DamageReference104(0),world,1,CardFacts10,[exampleFamily004Packet EXCEPT !.amount=3])
/\ ~DamagePacketFromExpected104(exampleFamily004Context,DamageReference104(1),world,1,CardFacts10,exampleFamily004Packet)
/\ ~DamagePacketFromExpected104(exampleFamily004Context,DamageReference104(1),world,1,CardFacts10,[exampleFamily004Packet EXCEPT !.reference=DamageReference104(1)])
/\ ~DamagePacketFromExpected104(exampleFamily004Context,DamageReference104(0),[world EXCEPT !.id=101],1,CardFacts10,exampleFamily004Packet)
/\ ~DamagePacketFromExpected104(exampleFamily004Context,DamageReference104(0),[world EXCEPT !.id=101],1,CardFacts10,[exampleFamily004Packet EXCEPT !.snapshotId=101])
/\ ~DamagePacketFromExpected104(exampleFamily004Context,DamageReference104(0),world,2,CardFacts10,exampleFamily004Packet)
/\ ~DamagePacketFromExpected104([exampleFamily004Context EXCEPT !.state.effects[1].sourceSHA="forged",!.actualEffects[1].sourceSHA="forged"],DamageReference104(0),world,1,CardFacts10,[exampleFamily004Packet EXCEPT !.sourceSHA="forged"])
/\ BeginDamage104(exampleFamily004Context,DamageReference104(0),world,1,CardFacts10,exampleFamily004Packet,DamageFrameFixture104(exampleFamily004Packet,objects),{},"Playing",{})
/\ ~BeginDamage104(exampleFamily004Context,DamageReference104(0),world,1,CardFacts10,exampleFamily004Packet,DamageFrameFixture104(exampleFamily004Packet,objects),{exampleFamily004Packet.key},"Playing",{})
/\ PreventExpectedAmount99(initial,prevented,1,3) /\ PreventExpectedAmount99(initial,fatalRemaining,1,2)
/\ DamagePacketFromExpected104(survivingContext,DamageReference104(1),world,1,CardFacts10,survivingPacket) /\ survivingPacket.amount=4
/\ ~DamagePacketFromExpected104(survivingContext,DamageReference104(1),world,1,CardFacts10,DamagePacketFixture104(Specimen0035,1))
/\ BeginDamage104(survivingContext,DamageReference104(1),world,1,CardFacts10,survivingPacket,DamageFrameFixture104(survivingPacket,objects),{},"Playing",{})
/\ ModifyExpectedEffectValue99([id \in {1} |-> exampleFamily044],[id \in {1} |-> [exampleFamily044 EXCEPT !.value=2]],1,1)
/\ PreventExpectedAmount99(initial,zero,1,7) /\ PreventExpectedAmount99(initial,negative,1,8)
/\ ModifyExpectedEffectValue99(zero,raised,1,1) /\ ModifyExpectedEffectValue99(negative,raised,1,2)
/\ ~ModifyExpectedEffectValue99(Empty10,raised,1,1) /\ PreventExpectedWhole99(initial,Empty10,1)
/\ DamageOmitted104(zeroContext,DamageReference104(1),world,1,noPacketReceipt)
/\ DamageOmitted104(negativeContext,DamageReference104(1),world,1,noPacketReceipt)
/\ DamageOmitted104(removed,DamageReference104(1),world,1,noPacketReceipt)
/\ ~DamagePacketFromExpected104(zeroContext,DamageReference104(1),world,1,CardFacts10,DamagePacketFixture104(zero[1],1))
/\ ~DamageOmitted104([zeroContext EXCEPT !.phase="WindowOpen"],DamageReference104(1),world,1,noPacketReceipt)
/\ DamagePacketFromExpected104(DamageContextFixture104(raised[1],2),DamageReference104(2),world,1,CardFacts10,DamagePacketFixture104(raised[1],2))
/\ ~PreventExpectedAmount99([initial EXCEPT ![1].preventable=FALSE],prevented,1,3)
/\ ModifyExpectedEffectValue99([initial EXCEPT ![1].preventable=FALSE],[initial EXCEPT ![1].preventable=FALSE,![1].value=8],1,1)
/\ NormalizeDamageType104("CapacityHarmAlias")="PersistentCapacityHarm" /\ NormalizeDamageType104("HarmClassA")="HarmClassA"
/\ CardFacts10["Specimen0111"].kind="Objective" /\ CardFacts10["Specimen0238"].kind="Objective"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ModifyExpectedEffectValue99, PreventExpectedAmount99, PreventExpectedWhole99, DamageAtomFixture104, DamageContextFixture104, DamageFrameFixture104, DamageObjectsFixture104, DamagePacketFixture104, DamageReference104, DamageWorldFixture104, Empty10, BeginDamage104, DamageOmitted104, DamagePacketFromExpected104, NormalizeDamageType104, SideAMeatDamage104, CardFacts10
DamagePacketFixture104 · operator
reference-profile · input revision 2 · CC0 1.0
DamagePacketFixture104(effect,revision) ==
[key |-> <<1040,1041,1,revision>>,contextId |-> 1040,imminenceId |-> 1041,effectId |-> 1,reference |-> DamageReference104(revision),
snapshotId |-> 100,turnId |-> 1,source |-> effect.baseOrigin,sourceCard |-> effect.sourceCard,sourceSHA |-> effect.sourceSHA,
verb |-> effect.damageVerb,responsible |-> effect.actor,damageType |-> effect.damageType,amount |-> effect.value]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageReference104
DamageReadyFixture104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageReadyFixture104(frame,selected) ==
[frame EXCEPT !.selected=selected,!.selections= <<DamageSampleFixture104(frame.packet,frame.bHand,frame.packet.amount,selected)>>,!.phase="ReadyToRetire"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageSampleFixture104
DamageReference104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageReference104(revision) == [InstructionWindowRef93(OpenInstruction93(1000,"Ability",2000,ObjectAbilitySource9(900),"Play",1,"NoValue",<<"Damage">>,FALSE)) EXCEPT !.revision=revision]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InstructionWindowRef93, ObjectAbilitySource9, OpenInstruction93
DamageSampleFixture104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageSampleFixture104(packet,population,amount,selected) ==
[tag |-> "ActualRandomDamageSelection",packet |-> packet.key,reference |-> packet.reference,population |-> population,
amount |-> amount,selected |-> selected,actor |-> packet.responsible]Exact module download · Source bundle and reproduction instructions
DamageSequentialChecks104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageSequentialChecks104 ==
LET objects==DamageObjectsFixture104
atom==DamageAtomFixture104("Specimen0221","Do","HarmClassA",3)
packet==DamagePacketFixture104(atom,0)
frame==DamageFrameFixture104(packet,objects)
authority==ExampleFamily009AuthorityFixture104(packet,objects)
compiled==[id \in {71} |-> authority]
sequential==[frame EXCEPT !.policy=authority,!.phase="SelectingSequentially"]
one==SequentialNextFixture104(sequential,1)
two==SequentialNextFixture104(one,2)
three==SequentialNextFixture104(two,3)
successors==[id \in {1,2,3} |-> id+10]
afterObjects==DamageOwnerMoveMap104(objects,{1,2,3},successors,"SideB")
complete==DamageCompleteFixture104(three,afterObjects,successors,220)
event==DamageSufferedEvent104(three,220,successors)
movement==MovementEvent8(220,"Retire",{1,2,3})
history==[id \in {220} |-> movement]
priorNet==[id \in {210} |-> [event EXCEPT !.batchId=210]]
exampleFamily036==DamageAtomFixture104("Specimen0167","Suffer","HarmClassA",4)
sideBPacket==DamagePacketFixture104(exampleFamily036,0)
sideBFrame==DamageFrameFixture104(sideBPacket,objects)
sideBAuthority==ExampleFamily009AuthorityFixture104(sideBPacket,objects)
sideBSequential==[sideBFrame EXCEPT !.policy=sideBAuthority,!.phase="SelectingSequentially"]
sideBOne==SequentialNextFixture104(sideBSequential,1)
sideBTwo==SequentialNextFixture104(sideBOne,2)
IN /\ BeginExampleFamily009Damage104(frame,sequential,objects,authority,compiled,CardFacts10,Empty10)
/\ ~BeginExampleFamily009Damage104(frame,sequential,objects,authority,compiled,CardFacts10,priorNet)
/\ ~BeginExampleFamily009Damage104(frame,sequential,objects,authority,Empty10,CardFacts10,Empty10)
/\ ~BeginExampleFamily009Damage104(frame,sequential,objects,[authority EXCEPT !.snapshotId=99],[compiled EXCEPT ![71].snapshotId=99],CardFacts10,Empty10)
/\ ~BeginExampleFamily009Damage104(frame,[sequential EXCEPT !.policy.snapshotId=99],objects,[authority EXCEPT !.snapshotId=99],[compiled EXCEPT ![71].snapshotId=99],CardFacts10,Empty10)
/\ DamageFirstNetThisTurn104([packet EXCEPT !.turnId=2],priorNet)
/\ ~DamageFirstNetThisTurn104([packet EXCEPT !.damageType="HarmClassB"],Empty10)
/\ ~BeginSequentialDamage104(frame,sequential,objects,[authority EXCEPT !.sourceSHA="forged"],[compiled EXCEPT ![71].sourceSHA="forged"],CardFacts10)
/\ ~BeginSequentialDamage104(frame,[sequential EXCEPT !.policy.sourceSHA="forged"],objects,[authority EXCEPT !.sourceSHA="forged"],[compiled EXCEPT ![71].sourceSHA="forged"],CardFacts10)
/\ ~BeginSequentialDamage104(frame,sequential,objects,[authority EXCEPT !.card="Specimen0221",!.sourceSHA=CardFacts10["Specimen0221"].sourceSHA],
[compiled EXCEPT ![71].card="Specimen0221",![71].sourceSHA=CardFacts10["Specimen0221"].sourceSHA],CardFacts10)
/\ ~BeginSequentialDamage104(frame,[sequential EXCEPT !.policy.card="Specimen0221",!.policy.sourceSHA=CardFacts10["Specimen0221"].sourceSHA],objects,[authority EXCEPT !.card="Specimen0221",!.sourceSHA=CardFacts10["Specimen0221"].sourceSHA],
[compiled EXCEPT ![71].card="Specimen0221",![71].sourceSHA=CardFacts10["Specimen0221"].sourceSHA],CardFacts10)
/\ SelectDamageNext104(sequential,one,objects,1,"SideA",one.selections[1])
/\ SelectDamageNext104(one,two,objects,2,"SideA",two.selections[2])
/\ SelectDamageNext104(two,three,objects,3,"SideA",three.selections[3])
/\ one.beforeObjects=objects /\ two.beforeObjects=objects /\ three.beforeObjects=objects /\ three.selectionOrder= <<1,2,3>>
/\ ~SelectDamageNext104(one,two,objects,1,"SideA",two.selections[2])
/\ ~SelectDamageNext104(one,two,afterObjects,2,"SideA",two.selections[2])
/\ ~DamageBatchReadyForConditionals104(one,objects,event)
/\ ResolveDamageBatch104(three,complete,objects,afterObjects,successors,DOMAIN objects,DamageOwnersFixture104,Empty10,Empty10,history,220,{movement,event})
/\ ~ResolveDamageBatch104([one EXCEPT !.phase="ReadyToRetire"],complete,objects,afterObjects,successors,DOMAIN objects,DamageOwnersFixture104,Empty10,Empty10,history,220,{movement,event})
/\ DamageBatchReadyForConditionals104(complete,afterObjects,event)
/\ DamagePacketFromExpected104(DamageContextFixture104(exampleFamily036,0),DamageReference104(0),DamageWorldFixture104(objects),1,CardFacts10,sideBPacket)
/\ BeginExampleFamily009Damage104(sideBFrame,sideBSequential,objects,sideBAuthority,[id \in {71} |-> sideBAuthority],CardFacts10,Empty10)
/\ sideBPacket.responsible="SideB" /\ sideBAuthority.slots[1].actor="SideA"
/\ SelectDamageNext104(sideBSequential,sideBOne,objects,1,"SideA",sideBOne.selections[1])
/\ ~SelectDamageNext104(sideBSequential,sideBOne,objects,1,"SideB",sideBOne.selections[1])
/\ SelectDamageNext104(sideBOne,sideBTwo,objects,2,"SideB",sideBTwo.selections[2])
/\ ~SelectDamageNext104(sideBOne,sideBTwo,objects,2,"SideA",sideBTwo.selections[2])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageAtomFixture104, DamageCompleteFixture104, DamageContextFixture104, DamageFrameFixture104, DamageObjectsFixture104, DamageOwnersFixture104, DamagePacketFixture104, DamageReference104, DamageWorldFixture104, Empty10, ExampleFamily009AuthorityFixture104, SequentialNextFixture104, BeginExampleFamily009Damage104, BeginSequentialDamage104, DamageBatchReadyForConditionals104, DamageFirstNetThisTurn104, DamageOwnerMoveMap104, DamagePacketFromExpected104, DamageSufferedEvent104, ResolveDamageBatch104, SelectDamageNext104, MovementEvent8, CardFacts10
DamageWorldFixture104 · operator
reference-profile · input revision 2 · CC0 1.0
DamageWorldFixture104(objects) == [id |-> 100,turn |-> [id |-> 1],objects |-> objects,outcome |-> "Playing"]Exact module download · Source bundle and reproduction instructions
DividendBodyChecks1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendBodyChecks1013 ==
/\ \A card \in DividendSources1013 : \A count \in 3..6 : \A exampleFamily023 \in BOOLEAN :
LET x==DividendObjectiveCompletionFixture1013(DividendWorld1013(card,count,exampleFamily023,0)) q==DividendRecognition1013(x) s==DividendBodyStart1013(q)
e==s.basis.repetitions done==DividendChain1013(s,e)
receipt==[tag |-> "DividendInstructionComplete",instance |-> 13400,reference |-> s.plan.reference,objectiveCompletionId |-> 13000,applications |-> 1..e,skipped |-> {},totalPlaced |-> e*s.basis.multiplier,complete |-> TRUE]
IN /\ DividendObjectiveCompletionValid1013(x) /\ EscalatingResourceContestRecognitionValid108(q) /\ Cardinality(DOMAIN q.after.instances)=1 /\ q.after.instances[13400].status="Pending"
/\ DividendStartValid1013(s) /\ s.basis.requirement=x.capture.requirement /\ s.basis.progress=x.capture.progress
/\ \A i \in 1..e : DividendStepValid1013(DividendChain1013(s,i).step)
/\ CompleteDividendPlan1013(done.plan,[done.plan EXCEPT !.complete=TRUE],done.world,receipt)
/\ Cardinality(HostedCounterIds109(done.world.objects,1000,"Objective"))=e*s.basis.multiplier
/\ Cardinality(DOMAIN done.world.dividendPlacementEvents)=e /\ done.world.loadHistory=x.before.loadHistory
/\ \A id \in DOMAIN done.world.dividendPlacementEvents : done.world.dividendPlacementEvents[id].amount=s.basis.multiplier
/\ LET x==DividendObjectiveCompletionFixture1013(DividendWorld1013("Specimen0082",5,FALSE,0)) s==DividendBodyStart1013(DividendRecognition1013(x)) done==DividendChain1013(s,2)
IN /\ done.plan.totalPlaced=4 /\ DOMAIN done.world.dividendPlacementEvents={14001,14002} /\ done.world.dividendPlacementEvents[14001].amount=2 /\ done.world.dividendPlacementEvents[14002].amount=2
/\ LET x==DividendObjectiveCompletionFixture1013(DividendWorld1013("Specimen0186",3,FALSE,0)) q==DividendRecognition1013(x) s==DividendBodyStart1013(q)
IN /\ EscalatingResourceContestRecognitionValid108(q) /\ Cardinality(DOMAIN q.after.instances)=1 /\ s.basis.repetitions=0 /\ DividendStartValid1013(s)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DividendBodyStart1013, DividendChain1013, DividendObjectiveCompletionFixture1013, DividendObjectiveCompletionValid1013, DividendRecognition1013, DividendStartValid1013, DividendStepValid1013, DividendWorld1013, EscalatingResourceContestRecognitionValid108, CompleteDividendPlan1013, DividendSources1013, HostedCounterIds109
DividendBodyStart1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendBodyStart1013(q) ==
LET pending==q.after.instances[13400] instance==[pending EXCEPT !.status="Resolving"]
world0==[q.world EXCEPT !.conditionalLedger.instances[13400]=instance]
cap==world0.dividendCaptures[13000]
basis==[tag |-> "DividendCapturedBasis",instance |-> 13400,occurrence |-> 13100,objectiveCompletionId |-> 13000,target |-> 1000,physical |-> cap.physical,sourceCard |-> cap.sourceCard,sourceSHA |-> cap.sourceSHA,
requirement |-> cap.requirement,progress |-> cap.progress,repetitions |-> cap.excess,multiplier |-> cap.multiplier]
ref==InstructionWindowRef93(OpenInstruction93(700,"Ability",13400,ObjectAbilitySource9(1000),"SideAObjectiveCompletion",1,"NoValue",<<"RepeatedObjectivePlacement">>,FALSE))
plan==[tag |-> "DividendInstructionPlan",instance |-> 13400,reference |-> ref,basis |-> basis,cursor |-> 1,applied |-> {},skipped |-> {},totalPlaced |-> 0,complete |-> FALSE]
world==[world0 EXCEPT !.dividendBodyAnchors=[id \in {13400} |-> [basis |-> basis,reference |-> ref]]]
IN [beforeWorld |-> world0,world |-> world,instance |-> instance,event |-> q.event,basis |-> basis,plan |-> plan]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InstructionWindowRef93, ObjectAbilitySource9, OpenInstruction93
DividendBoundaryChecks1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendBoundaryChecks1013 ==
LET w==DividendWorld1013("Specimen0186",4,TRUE,0) begin==w.objectiveCompletionBeginnings[13000] cap==DividendCaptureFixture1013(w)
read==[tag |-> "CurrentExampleFamily052ObjectiveRequirement",snapshotId |-> 100,object |-> 100,sourceIds |-> {900},sourceSHA |-> CardFacts10["Specimen0208"].sourceSHA,value |-> 2]
converted==[w EXCEPT !.objects[201].card="synthetic-converted-progress-copy"]
convertedCap==DividendCaptureFixture1013(converted)
power==[w EXCEPT !.objects=ReplacementOverlay99(@,[id \in {701} |-> LoadedCounterToken109("Power","Play",100,"SideA")]),!.usedObjects=@ \cup {701}]
IN /\ ReadDividendExampleFamily052Requirement1013(w,100,read)
/\ ~ReadDividendExampleFamily052Requirement1013([w EXCEPT !.objects[900].activated=FALSE,!.objects[900].face="Down"],100,read)
/\ ~ReadDividendExampleFamily052Requirement1013([w EXCEPT !.objects[900].targetSite="OtherAuxiliarySite"],100,read)
/\ ~CaptureDividendBegin1013(w,begin,w.cardFacts,[cap EXCEPT !.requirement=3])
/\ ~CaptureDividendBegin1013(w,[begin EXCEPT !.point="PreviousCheckpoint"],w.cardFacts,cap)
/\ ~CaptureDividendBegin1013(w,[begin EXCEPT !.snapshotId=99],w.cardFacts,cap)
/\ DividendBeginSupport1013([begin EXCEPT !.costProfile="AdditionalObjectiveCompletionCosts"])="RequiresAdditionalCostCapturePointAdapter"
/\ DividendBeginSupport1013([begin EXCEPT !.mode="Replay"])="RequiresAsIfObjectiveCompletionCaptureAdapter"
/\ DividendBeginSupport1013([begin EXCEPT !.mode="ClaimObjective"])="NotAnOrdinaryObjectiveCompletion"
/\ DividendBeginSupport1013([begin EXCEPT !.mode="Add"])="NotAnOrdinaryObjectiveCompletion"
/\ CaptureDividendBegin1013(converted,converted.objectiveCompletionBeginnings[13000],converted.cardFacts,convertedCap)
/\ convertedCap.progress=4 /\ DividendCleanupSupport1013(converted,convertedCap)="RequiresConvertedCounterCleanupAdapter"
/\ DividendCleanupSupport1013(power,DividendCaptureFixture1013(power))="RequiresOtherHostedCleanupAdapter"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, DividendCaptureFixture1013, DividendWorld1013, CaptureDividendBegin1013, DividendBeginSupport1013, DividendCleanupSupport1013, LoadedCounterToken109, ReadDividendExampleFamily052Requirement1013, CardFacts10
DividendCaptureChecks1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendCaptureChecks1013 ==
/\ \A card \in DividendSources1013 : \A count \in 3..6 : \A exampleFamily023 \in BOOLEAN :
LET w==DividendWorld1013(card,count,exampleFamily023,0) x==DividendObjectiveCompletionFixture1013(w)
IN /\ CaptureDividendBegin1013(w,w.objectiveCompletionBeginnings[13000],w.cardFacts,x.capture) /\ DividendObjectiveCompletionValid1013(x)
/\ x.capture.requirement=IF exampleFamily023 THEN 2 ELSE 3
/\ x.capture.progress=count /\ x.capture.excess=MaxOf(0,count-x.capture.requirement)
/\ x.after.objects[1000].marks={} /\ x.after.objects[50]=w.objects[50]
/\ DividendPhysicalProgress1013(x.after,1000)={} /\ x.after.requirements[1000]=3
/\ LET x==DividendObjectiveCompletionFixture1013(DividendWorld1013("Specimen0082",5,FALSE,0)) IN x.capture.excess=2 /\ x.capture.multiplier=2
/\ LET x==DividendObjectiveCompletionFixture1013(DividendWorld1013("Specimen0186",3,TRUE,0)) IN x.capture.requirement=2 /\ x.capture.progress=3 /\ x.capture.excess=1 /\ DividendObjectiveCompletionValid1013(x)
/\ LET w==DividendWorld1013("Specimen0082",3,FALSE,2) x==DividendObjectiveCompletionFixture1013(w)
IN /\ DividendObjectiveCompletionValid1013(x) /\ x.capture.progress=5 /\ Cardinality(x.capture.physicalProgress)=3 /\ x.capture.excess=2
/\ x.after.consideredSources=w.consideredSources /\ x.after.consideredProgress[1000]=0Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DividendObjectiveCompletionFixture1013, DividendObjectiveCompletionValid1013, DividendWorld1013, CaptureDividendBegin1013, DividendPhysicalProgress1013, DividendSources1013, MaxOf
DividendCaptureFixture1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendCaptureFixture1013(world) ==
LET begin==world.objectiveCompletionBeginnings[13000] fact==DividendFacts1013!DividendPrintedFacts1013[begin.sourceCard]
physical==DividendPhysicalProgress1013(world,100) count==Cardinality(physical)+world.consideredProgress[100]
IN [tag |-> "DividendObjectiveCompletionBegin",objectiveCompletionId |-> 13000,beginSnapshot |-> world.id,oldObject |-> 100,physical |-> world.objects[100].card,sourceCard |-> begin.sourceCard,sourceSHA |-> fact.sourceSHA,
requirement |-> world.requirements[100],progress |-> count,physicalProgress |-> physical,considered |-> world.consideredProgress[100],multiplier |-> fact.multiplier,excess |-> MaxOf(0,count-world.requirements[100]),beforeObjects |-> world.objects]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DividendFacts1013!DividendPrintedFacts1013, DividendPhysicalProgress1013, MaxOf
DividendChain1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendChain1013(start,n) == IF n=0 THEN start ELSE DividendStepFixture1013(DividendChain1013(start,n-1))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DividendChain1013, DividendStepFixture1013
DividendConsideredBodyChecks1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendConsideredBodyChecks1013 ==
LET x==DividendObjectiveCompletionFixture1013(DividendWorld1013("Specimen0082",3,FALSE,2)) q==DividendRecognition1013(x) s==DividendBodyStart1013(q) done==DividendChain1013(s,2)
IN /\ DividendObjectiveCompletionValid1013(x) /\ EscalatingResourceContestRecognitionValid108(q) /\ DividendStartValid1013(s)
/\ \A i \in 1..2 : DividendStepValid1013(DividendChain1013(s,i).step)
/\ done.plan.totalPlaced=4 /\ Cardinality(HostedCounterIds109(done.world.objects,1000,"Objective"))=4
/\ done.world.consideredSources=x.before.consideredSources /\ done.world.consideredProgress[1000]=0Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DividendBodyStart1013, DividendChain1013, DividendObjectiveCompletionFixture1013, DividendObjectiveCompletionValid1013, DividendRecognition1013, DividendStartValid1013, DividendStepValid1013, DividendWorld1013, EscalatingResourceContestRecognitionValid108, HostedCounterIds109
DividendDefinition1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendDefinition1013(card) ==
[MarkDefinition1011(13200,1000,card,"ObjectivePlacementd") EXCEPT !.trigger.actor="SideA",!.trigger.subject="SchemaAtom149",!.triggerRequirements={}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkDefinition1011
DividendMissingSourceChecks1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendMissingSourceChecks1013 ==
LET x==DividendObjectiveCompletionFixture1013(DividendWorld1013("Specimen0082",5,FALSE,0)) s==DividendBodyStart1013(DividendRecognition1013(x))
moved==ReplacementOverlay99(Without101(s.world.objects,{1000}),[id \in {5000} |-> [s.world.objects[1000] EXCEPT !.zone="SideADiscard",!.deployed=FALSE,!.face="Up",!.loc=0,!.host=0,!.marks={}]])
copy==[s.world.objects[1000] EXCEPT !.card="PhysicalItem0009"]
world==[s.world EXCEPT !.id=150,!.objects=ReplacementOverlay99(moved,[id \in {1500} |-> copy]),!.usedObjects=@ \cup {1500,5000},!.usedWorlds=@ \cup {150},
!.definitions=ReplacementOverlay99(@,[physical \in {copy.card} |-> "Specimen0082"]),!.cardFacts=ReplacementOverlay99(@,[physical \in {copy.card} |-> CardFacts10["Specimen0082"]])]
skipped==[s.plan EXCEPT !.cursor=3,!.skipped={1,2}]
receipt==[tag |-> "DividendInstructionComplete",instance |-> 13400,reference |-> s.plan.reference,objectiveCompletionId |-> 13000,applications |-> {},skipped |-> {1,2},totalPlaced |-> 0,complete |-> TRUE]
forged==[s.plan EXCEPT !.basis.target=1500,!.basis.physical=copy.card]
IN /\ DividendStartValid1013(s)
/\ CardBatchTransfer8(s.world.objects,moved,{1000},[id \in {1000} |-> 5000],s.world.usedObjects,"SideADiscard","Up",[id \in {1000} |-> 0])
/\ DividendTargetStatus1013(world,s.plan)="ReferencedObjectGone" /\ SkipDividendRemainder1013(s.plan,skipped,world)
/\ CompleteDividendPlan1013(skipped,[skipped EXCEPT !.complete=TRUE],world,receipt) /\ world.dividendPlacementEvents=Empty10
/\ ~DividendPlanBound1013(world,forged) /\ ~DividendPlanBound1013(s.world,[s.plan EXCEPT !.basis.repetitions=3])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, DividendBodyStart1013, DividendObjectiveCompletionFixture1013, DividendRecognition1013, DividendStartValid1013, DividendWorld1013, Empty10, CompleteDividendPlan1013, DividendPlanBound1013, DividendTargetStatus1013, SkipDividendRemainder1013, Without101, CardBatchTransfer8, CardFacts10
DividendNegativeChecks1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendNegativeChecks1013 ==
LET x==DividendObjectiveCompletionFixture1013(DividendWorld1013("Specimen0082",5,FALSE,0)) q==DividendRecognition1013(x) s==DividendBodyStart1013(q)
first==DividendChain1013(s,1).step end==DividendChain1013(s,2)
falseCap==[x.capture EXCEPT !.progress=0,!.requirement=3,!.excess=0]
IN /\ ~MoveDividendObjective1013(x.before,x.after,x.begin,falseCap,1000,x.moved,x.binding,13100,x.event)
/\ ~MoveDividendObjective1013(x.before,[x.after EXCEPT !.objects[1000].marks={"Inherited"}],x.begin,x.capture,1000,x.moved,x.binding,13100,x.event)
/\ ~DividendBasis1013(s.world,s.instance,s.event,[s.basis EXCEPT !.requirement=3,!.progress=0,!.repetitions=0])
/\ ~DividendBasis1013(s.world,s.instance,[s.event EXCEPT !.object=50],s.basis)
/\ ~DividendBasis1013(s.world,s.instance,[s.event EXCEPT !.scored.binding.newObject=50],s.basis)
/\ DividendApplicationSupport1013(first.before,[first.context EXCEPT !.state.effects[1].value=4,!.actualEffects[1].value=4])="RequiresModifiedPlacementAdapter"
/\ ~ApplyDividendPlacement1013(first.before,first.after,[first.context EXCEPT !.state.effects[1].value=4,!.templates[1].value=4,!.actualEffects[1].value=4],first.world,first.next,{},first.added,first.eventId,first.event)
/\ ~ApplyDividendPlacement1013(first.before,first.after,first.context,[first.world EXCEPT !.outcome="SideA"],first.next,{},first.added,first.eventId,first.event)
/\ ~ApplyDividendPlacement1013(first.before,first.after,first.context,[first.world EXCEPT !.completedCounterInstructions={CounterInstructionKey109(first.context,first.before.reference,1)}],first.next,{},first.added,first.eventId,first.event)
/\ ~ApplyDividendPlacement1013(first.before,first.after,first.context,first.world,[first.next EXCEPT !.objects[50].marks={}],{},first.added,first.eventId,first.event)
/\ \A id \in DOMAIN first.added : first.next.objects[id].kind="Objective" /\ first.next.objects[id].host=1000 /\ first.next.objects[id].marks={}
/\ end.world.loadHistory=x.before.loadHistory /\ end.world.consideredSources=x.before.consideredSourcesExact module download · Source bundle and reproduction instructions
Resolved project definitions: DividendBodyStart1013, DividendChain1013, DividendObjectiveCompletionFixture1013, DividendRecognition1013, DividendWorld1013, ApplyDividendPlacement1013, CounterInstructionKey109, DividendApplicationSupport1013, DividendBasis1013, MoveDividendObjective1013
DividendObjectiveCompletionFixture1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendObjectiveCompletionFixture1013(world) ==
LET capture==DividendCaptureFixture1013(world) before==[world EXCEPT !.dividendCaptures=[id \in {13000} |-> capture]]
moved==DividendObjectiveCompletionMap1013(before.objects,100,1000)
objects==Without101(moved,capture.physicalProgress)
binding==[tag |-> "DividendObjectiveCompletionBinding",objectiveCompletionId |-> 13000,oldObject |-> 100,newObject |-> 1000,physical |-> capture.physical,beforeSnapshot |-> 100,afterSnapshot |-> 101]
event==[id |-> 13100,kind |-> "ObjectivePlacementd",actor |-> "SideA",object |-> 1000,objectiveCompletionId |-> 13000,binding |-> binding]
after==[before EXCEPT !.id=101,!.objects=objects,!.usedObjects=@ \cup {1000},!.usedWorlds=@ \cup {101},!.requirements=[id \in {1000} |-> DividendFacts1013!DividendPrintedFacts1013[capture.sourceCard].requirement],
!.consideredProgress=[id \in {1000} |-> 0],!.historicalPhysical=[id \in {100} |-> capture.physical],!.dividendBindings=[id \in {13000} |-> binding],!.objectiveCompletionEventIds={13100},!.objectiveCompletionEvents=[id \in {13100} |-> event]]
IN [before |-> before,after |-> after,begin |-> before.objectiveCompletionBeginnings[13000],capture |-> capture,moved |-> moved,binding |-> binding,event |-> event]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DividendCaptureFixture1013, DividendFacts1013!DividendPrintedFacts1013, DividendObjectiveCompletionMap1013, Without101
DividendObjectiveCompletionValid1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendObjectiveCompletionValid1013(x) == MoveDividendObjective1013(x.before,x.after,x.begin,x.capture,1000,x.moved,x.binding,13100,x.event)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MoveDividendObjective1013
DividendOccurrenceCheckpoint1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendOccurrenceCheckpoint1013(world,d,event) ==
LET definitions==[key \in {ConditionalKey96(d)} |-> d]
previous==MarkSnapshot1011(world.id,0,"PreviousCheckpoint",definitions,world)
before==NewConditionalLedger96(previous)
begin==MarkSnapshot1011(world.id,13800,"CheckpointBeginning",definitions,world)
cp==[tag |-> "ConditionalCheckpoint",point |-> "ProcedureCodee605a78f5d5e",id |-> 13800,previousCheckpoint |-> 0,serial |-> 1,previousSnapshot |-> previous,beginSnapshot |-> begin,
processingSnapshot |-> [begin EXCEPT !.point="ProcedureCodee605a78f5d5e"],stepSerial |-> 0,occurrences |-> [id \in {event.id} |-> event],caller |-> [kind |-> "ReplayOrOtherOccurrenceCheckpoint"]]
conditions==[key \in DOMAIN definitions |-> [id \in {event.id} |-> [tag |-> "ConditionalTriggerStipulations",ability |-> d.syntax.id,source |-> d.syntax.source,occurrence |-> event.id,snapshotId |-> event.snapshot.id,results |-> Empty10]]]
candidates==CheckpointCandidates96(definitions,before,cp,conditions)
allocation==[key \in candidates |-> 13401]
bindings==[key \in candidates |-> [kind |-> "Reaction",windowId |-> 13801,group |-> 13802,checkpointId |-> cp.id]]
after==EscalatingResourceContestCommitted108(before,definitions,cp,conditions,allocation,bindings)
IN [world |-> ReplacementOverlay99(world,[conditionalLedger |-> after,dividendDefinitions |-> [key \in DOMAIN definitions |-> [definition |-> d,card |-> "Specimen0186",sourceSHA |-> CardFacts10["Specimen0186"].sourceSHA]]]),
before |-> before,after |-> after,cp |-> cp,conditions |-> conditions,definitions |-> definitions,candidates |-> candidates,allocation |-> allocation,bindings |-> bindings]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointCandidates96, ConditionalKey96, NewConditionalLedger96, ReplacementOverlay99, Empty10, EscalatingResourceContestCommitted108, MarkSnapshot1011, CardFacts10
DividendRecognition1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendRecognition1013(x) ==
LET d==DividendDefinition1013(x.capture.sourceCard) definitions==[key \in {ConditionalKey96(d)} |-> d]
snapshot==MarkSnapshot1011(x.after.id,0,"ScoredOccurrence",definitions,x.after)
oldSnapshot==MarkSnapshot1011(x.before.id,0,"ObjectiveCompletionBegins",definitions,x.before)
event==ReplacementOverlay99(EscalatingResourceContestOccurrenceBase108(13100,"ObjectivePlacementd",1000,"SideA","SideA",snapshot,13000),
[movement |-> [tag |-> "ObjectiveCompletion",oldObject |-> 100,newObject |-> 1000,beforeSnapshot |-> oldSnapshot],scored |-> x.event])
previous==MarkSnapshot1011(x.after.id,0,"PreviousCheckpoint",definitions,x.after)
before==NewConditionalLedger96(previous)
begin==MarkSnapshot1011(x.after.id,13300,"CheckpointBeginning",definitions,x.after)
cp==[tag |-> "ConditionalCheckpoint",point |-> "ProcedureCodee605a78f5d5e",id |-> 13300,previousCheckpoint |-> 0,serial |-> 1,previousSnapshot |-> previous,beginSnapshot |-> begin,
processingSnapshot |-> [begin EXCEPT !.point="ProcedureCodee605a78f5d5e"],stepSerial |-> 0,occurrences |-> [id \in {event.id} |-> event],caller |-> [kind |-> "ObjectiveCompletionProcedureEnd",objectiveCompletionId |-> 13000]]
conditions==[key \in DOMAIN definitions |-> [id \in {event.id} |-> [tag |-> "ConditionalTriggerStipulations",ability |-> d.syntax.id,source |-> d.syntax.source,occurrence |-> event.id,snapshotId |-> event.snapshot.id,results |-> Empty10]]]
candidates==CheckpointCandidates96(definitions,before,cp,conditions)
allocation==[key \in candidates |-> 13400]
bindings==[key \in candidates |-> [kind |-> "Reaction",windowId |-> 13500,group |-> 13600,checkpointId |-> 13300]]
after==EscalatingResourceContestCommitted108(before,definitions,cp,conditions,allocation,bindings)
world==ReplacementOverlay99(x.after,[conditionalLedger |-> after,dividendDefinitions |-> [key \in DOMAIN definitions |-> [definition |-> d,card |-> x.capture.sourceCard,sourceSHA |-> x.capture.sourceSHA]]])
IN [world |-> world,before |-> before,after |-> after,cp |-> cp,conditions |-> conditions,definitions |-> definitions,candidates |-> candidates,allocation |-> allocation,bindings |-> bindings,event |-> event]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointCandidates96, ConditionalKey96, NewConditionalLedger96, ReplacementOverlay99, DividendDefinition1013, Empty10, EscalatingResourceContestCommitted108, EscalatingResourceContestOccurrenceBase108, MarkSnapshot1011
DividendReplayChecks1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendReplayChecks1013 ==
LET r==DividendReplayFixture1013
claimedObjective==[r.event EXCEPT !.id=13102,!.kind="ObjectiveClaimedObjective",!.actor="SideB",!.scopeKind="Global"]
added==[r.event EXCEPT !.id=13103,!.kind="ObjectiveAdded",!.scopeKind="Global"]
IN /\ ExecuteBankHostedCounterInstruction109(r.context,r.context.currentRef,r.world,1,r.world.cardFacts,r.placed.objects,r.placed.loadHistory,r.placed.completedCounterInstructions,{},r.added,r.placed.nextCounterObject,13703,r.placement)
/\ Cardinality(DividendPhysicalProgress1013(r.placed,1000))=3 /\ r.placed.requirements[1000]=3 /\ r.score.capture.requirement=2
/\ ExampleFamily092Occurrence96(r.definition,"WhenScored",r.plan,r.parent,"NoValue",r.actual,r.event.snapshot,r.event)
/\ EscalatingResourceContestRecognitionValid108(r.q) /\ Cardinality(DOMAIN r.q.after.instances)=1 /\ r.q.after.instances[13401].status="Pending"
/\ DividendEventSupport1013(r.event)="RequiresAsIfObjectiveCompletionCaptureAdapter"
/\ EscalatingResourceContestRecognitionValid108(DividendOccurrenceCheckpoint1013(r.placed,r.definition,claimedObjective)) /\ DOMAIN DividendOccurrenceCheckpoint1013(r.placed,r.definition,claimedObjective).after.instances={}
/\ EscalatingResourceContestRecognitionValid108(DividendOccurrenceCheckpoint1013(r.placed,r.definition,added)) /\ DOMAIN DividendOccurrenceCheckpoint1013(r.placed,r.definition,added).after.instances={}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExampleFamily092Occurrence96, DividendOccurrenceCheckpoint1013, DividendReplayFixture1013, EscalatingResourceContestRecognitionValid108, DividendEventSupport1013, DividendPhysicalProgress1013, ExecuteBankHostedCounterInstruction109
DividendReplayFixture1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendReplayFixture1013 ==
LET score==DividendObjectiveCompletionFixture1013(DividendWorld1013("Specimen0186",3,TRUE,0))
extra==[id \in {600,800} |-> IF id=600 THEN EscalatingResourceContestCard108("Specimen0071",FALSE,FALSE) ELSE [EscalatingResourceContestCard108("Specimen0030",FALSE,FALSE) EXCEPT !.zone="SideAObjectiveCompletion",!.deployed=FALSE,!.face="Up"]]
world==[score.after EXCEPT !.objects=ReplacementOverlay99(@,extra),!.usedObjects=@ \cup {600,800}]
ref==InstructionWindowRef93(OpenInstruction93(13700,"Ability",13701,ObjectAbilitySource9(600),"Play",1,"NoValue",<<"PlaceProgress">>,TRUE))
e==[id |-> 1,kind |-> "PlaceCounters",actor |-> "SideA",value |-> 3,target |-> 1000,counterKind |-> "Progress",counterKinds |-> {"Progress"},loadDefinition |-> 0,
sourceCard |-> "Specimen0071",sourceSHA |-> CardFacts10["Specimen0071"].sourceSHA,baseOrigin |-> ref.source]
context==[id |-> 13702,phase |-> "Resolving",currentWorld |-> world.id,currentRef |-> ref,templates |-> [id \in {1} |-> e],state |-> [effects |-> [id \in {1} |-> e]],actualEffects |-> [id \in {1} |-> e]]
added==[id \in 10000..10002 |-> LoadedCounterToken109("Progress","SideAObjectiveCompletion",1000,"SideA")]
placed==[world EXCEPT !.id=102,!.objects=ReplacementOverlay99(@,added),!.usedObjects=@ \cup DOMAIN added,!.usedWorlds=@ \cup {102},!.nextCounterObject=10003,
!.completedCounterInstructions=@ \cup {CounterInstructionKey109(context,ref,1)},!.counterEventIds=@ \cup {13703}]
placement==[tag |-> "HostedCounterInstructionComplete",id |-> 13703,operation |-> "PlaceCounters",reference |-> ref,host |-> 1000,kind |-> "Progress",amount |-> 3,selected |-> {},created |-> DOMAIN added,snapshotId |-> world.id,complete |-> TRUE]
d==DividendDefinition1013("Specimen0186")
parent==[OpenAbilityResolution9(13750,"Conditional",ObjectAbilitySource9(800),"SideAObjectiveCompletion",<<13751>>,13749) EXCEPT !.phase="Resolving",!.firstImminent=TRUE,!.detached=TRUE]
plan==[OpenInstruction93(13751,"Ability",13750,ObjectAbilitySource9(800),"SideAObjectiveCompletion",1,"NoValue",<<"ReplayWhenScored">>,TRUE) EXCEPT !.phase="Resolving",!.announced=TRUE,!.targets={1000}]
snapshot==MarkSnapshot1011(102,0,"ReplayOccurrence",[key \in {ConditionalKey96(d)} |-> d],placed)
actual==[tag |-> "ConditionalExampleFamily092",class |-> "WhenScored",ability |-> d.syntax.id,source |-> d.syntax.source,snapshotId |-> 102,instruction |-> InstructionWindowRef93(plan),authorized |-> TRUE,occurrenceId |-> 13101,
sourceCard |-> "Specimen0030",sourceSHA |-> CardFacts10["Specimen0030"].sourceSHA]
event==[EscalatingResourceContestOccurrenceBase108(13101,"ObjectivePlacementd",1000,"SideA","SideA",snapshot,13751) EXCEPT !.scopeKind="Ability",!.scopeDefinition=ConditionalKey96(d)]
q==DividendOccurrenceCheckpoint1013(placed,d,event)
IN [score |-> score,world |-> world,placed |-> placed,context |-> context,added |-> added,placement |-> placement,definition |-> d,parent |-> parent,plan |-> plan,actual |-> actual,event |-> event,q |-> q]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalKey96, InstructionWindowRef93, ObjectAbilitySource9, OpenAbilityResolution9, OpenInstruction93, ReplacementOverlay99, DividendDefinition1013, DividendObjectiveCompletionFixture1013, DividendOccurrenceCheckpoint1013, DividendWorld1013, EscalatingResourceContestCard108, EscalatingResourceContestOccurrenceBase108, MarkSnapshot1011, CounterInstructionKey109, LoadedCounterToken109, CardFacts10
DividendStartValid1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendStartValid1013(s) == PublishDividendPlan1013(s.beforeWorld,s.world,s.instance,s.event,s.basis,s.plan)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PublishDividendPlan1013
DividendStepFixture1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendStepFixture1013(start) ==
LET w==start.world p==start.plan effects==DividendEffects1013(p)
context==[id |-> p.instance,phase |-> "Resolving",currentWorld |-> w.id,currentRef |-> p.reference,templates |-> effects,state |-> [effects |-> effects],actualEffects |-> effects]
added==[id \in w.nextCounterObject..(w.nextCounterObject+p.basis.multiplier-1) |-> LoadedCounterToken109("Objective",w.objects[p.basis.target].zone,p.basis.target,"SideA")]
eventId==14000+p.cursor
event==[tag |-> "HostedCounterInstructionComplete",id |-> eventId,operation |-> "PlaceCounters",reference |-> p.reference,host |-> p.basis.target,kind |-> "Objective",amount |-> p.basis.multiplier,
selected |-> {},created |-> DOMAIN added,snapshotId |-> w.id,complete |-> TRUE]
next==[w EXCEPT !.id=@+1,!.objects=ReplacementOverlay99(@,added),!.completedCounterInstructions=@ \cup {CounterInstructionKey109(context,p.reference,p.cursor)},!.nextCounterObject=@+p.basis.multiplier,
!.usedObjects=@ \cup DOMAIN added,!.usedWorlds=@ \cup {w.id+1},!.counterEventIds=@ \cup {eventId},!.dividendPlacementEvents=ReplacementOverlay99(@,[id \in {eventId} |-> event])]
afterPlan==[p EXCEPT !.cursor=@+1,!.applied=@ \cup {p.cursor},!.totalPlaced=@+p.basis.multiplier]
IN [world |-> next,plan |-> afterPlan,step |-> [before |-> p,after |-> afterPlan,context |-> context,world |-> w,next |-> next,added |-> added,eventId |-> eventId,event |-> event]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, CounterInstructionKey109, DividendEffects1013, LoadedCounterToken109
DividendStepValid1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendStepValid1013(s) == ApplyDividendPlacement1013(s.before,s.after,s.context,s.world,s.next,{},s.added,s.eventId,s.event)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ApplyDividendPlacement1013
DividendWorld1013 · operator
reference-profile · input revision 2 · CC0 1.0
DividendWorld1013(card,progress,exampleFamily052,considered) ==
LET objective==ReplacementOverlay99(EscalatingResourceContestCard108(card,TRUE,FALSE),[area |-> "Root",targetSite |-> "AuxiliarySiteA",face |-> "Down",marks |-> {"OldObjectRestriction"}])
exampleFamily023==ReplacementOverlay99(EscalatingResourceContestCard108("Specimen0208",TRUE,exampleFamily052),[area |-> "Root",targetSite |-> "AuxiliarySiteA",face |-> IF exampleFamily052 THEN "Up" ELSE "Down"])
cards==[id \in {50,100,900} |-> IF id=100 THEN objective ELSE IF id=900 THEN exampleFamily023 ELSE [EscalatingResourceContestCard108("Specimen0110",TRUE,TRUE) EXCEPT !.marks={"UnrelatedRestriction"}]]
objects==ReplacementOverlay99(cards,[id \in 201..(200+progress) |-> LoadedCounterToken109("Progress","Play",100,"SideA")])
begin==[id |-> 13000,mode |-> "ObjectiveCompletion",actor |-> "SideA",point |-> "ObjectiveCompletionBegins",snapshotId |-> 100,object |-> 100,sourceCard |-> card,costProfile |-> "OrdinaryCostlessObjectiveCompletion"]
IN [id |-> 100,objects |-> objects,outcome |-> "Playing",cardFacts |-> CardFacts10,definitions |-> [id \in DOMAIN CardFacts10 |-> id],printed |-> Empty10,owners |-> Empty10,visible |-> Empty10,
usedObjects |-> DOMAIN objects,usedWorlds |-> {100},requirements |-> [id \in {100} |-> DividendFacts1013!DividendPrintedFacts1013[card].requirement-IF exampleFamily052 THEN 1 ELSE 0],
consideredProgress |-> [id \in {100} |-> considered],consideredSources |-> IF considered=0 THEN Empty10 ELSE [id \in {1} |-> [tag |-> "SyntheticConsideredProgressProvider",host |-> 100,value |-> considered]],
objectiveCompletionBeginnings |-> [id \in {13000} |-> begin],dividendCaptures |-> Empty10,dividendBindings |-> Empty10,objectiveCompletionEvents |-> Empty10,objectiveCompletionEventIds |-> {},historicalPhysical |-> Empty10,
movementHistory |-> Empty10,loadHistory |-> Empty10,loadLinks |-> Empty10,nextCounterObject |-> 10000,completedCounterInstructions |-> {},counterEventIds |-> {},dividendPlacementEvents |-> Empty10,
dividendBodyAnchors |-> Empty10,requirementProfile |-> "PrintedAndExampleFamily052Only",conditionalLedger |-> Empty10,gameStarted |-> TRUE,activity |-> ActivityContext9,points |-> [p \in SetupPlayers |-> 0]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActivityContext9, ReplacementOverlay99, Empty10, EscalatingResourceContestCard108, DividendFacts1013!DividendPrintedFacts1013, LoadedCounterToken109, SetupPlayers, CardFacts10
Empty10 · operator
reference-profile · input revision 2 · CC0 1.0
Empty10 == [id \in {} |-> id]Exact module download · Source bundle and reproduction instructions
EmptyBeforeLoadPendingChecks109 · operator
reference-profile · input revision 2 · CC0 1.0
EmptyBeforeLoadPendingChecks109 ==
LET w==LoadWorld109("Specimen0060","ResourceUnit")
emptyD==w.loadLinks[1].emptyDefinition
loadD==[EscalatingResourceContestConditional108(19000,"Specimen0060","AnyResult") EXCEPT !.trigger.kinds={"Deployed"},!.trigger.subject="SchemaAtom149"]
definitions==[key \in {ConditionalKey96(emptyD),ConditionalKey96(loadD)} |-> IF key=ConditionalKey96(emptyD) THEN emptyD ELSE loadD]
snapshot==EscalatingResourceContestSnapshot108(w.id,0,"DeploymentOccurrence",definitions,w)
event==EscalatingResourceContestOccurrenceBase108(6600,"Deployed",900,"SideB","SideB",snapshot,6600)
truth==[tag |-> "ConditionalStaticTruth",ability |-> emptyD.syntax.id,source |-> emptyD.syntax.source,checkpointId |-> 6200,snapshotId |-> w.id,
condition |-> emptyD.primaryCondition,holds |-> FALSE]
conditions==[key \in DOMAIN definitions |-> IF key=ConditionalKey96(emptyD) THEN [id \in {0} |-> truth]
ELSE [id \in {6600} |-> [tag |-> "ConditionalTriggerStipulations",ability |-> loadD.syntax.id,source |-> loadD.syntax.source,occurrence |-> 6600,
snapshotId |-> w.id,results |-> Empty10]]]
raw==EscalatingResourceContestRecognition108(definitions,w,[id \in {6600} |-> event],conditions,6200,[kind |-> "DeploymentInstructionEnd",source |-> ObjectAbilitySource9(900)])
q==[raw EXCEPT !.cp.beginSnapshot=ReplacementOverlay99(@,[loadState |-> LoadState109(w)])]
IN /\ EscalatingResourceContestRecognitionValid108(q) /\ Cardinality(q.candidates)=1
/\ \A key \in q.candidates : key.definition=ConditionalKey96(loadD)
/\ \A id \in DOMAIN q.after.instances : q.after.instances[id].member.ability=19000 /\ q.after.instances[id].status="Pending"
/\ EmptyStaticTruth109(w,CardFacts10,w.loadLinks[1],q.cp,EmptyReadFixture109(w,w.loadLinks[1]),truth)
/\ w.loadHistory=Empty10 /\ ~EmptyReadFixture109(w,w.loadLinks[1]).emptyExact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalKey96, ObjectAbilitySource9, ReplacementOverlay99, Empty10, EmptyReadFixture109, EscalatingResourceContestConditional108, EscalatingResourceContestOccurrenceBase108, EscalatingResourceContestRecognition108, EscalatingResourceContestRecognitionValid108, EscalatingResourceContestSnapshot108, LoadWorld109, EmptyStaticTruth109, LoadState109, CardFacts10
EmptyDefinitionFixture109 · operator
reference-profile · input revision 2 · CC0 1.0
EmptyDefinitionFixture109(card,host) ==
LET d==EscalatingResourceContestConditional108(19001,card,"AnyResult")
IN [d EXCEPT !.syntax.source=ObjectAbilitySource9(host),!.activity.source=ObjectAbilitySource9(host),
!.syntax.units= <<TextUnit93(1,"SchemaAtom043","Static",TRUE,0),TextUnit93(10,"Instruction","NoValue",FALSE,0)>>,
!.primaryKind="Static",!.trigger.kinds={}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, TextUnit93, EscalatingResourceContestConditional108
EmptyFixtureValid109 · operator
reference-profile · input revision 2 · CC0 1.0
EmptyFixtureValid109(world) == ReadEmpty109(world,CardFacts10,world.loadLinks[1],EmptyReadFixture109(world,world.loadLinks[1]))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EmptyReadFixture109, ReadEmpty109, CardFacts10
EmptyReadFixture109 · operator
reference-profile · input revision 2 · CC0 1.0
EmptyReadFixture109(world,link) ==
[tag |-> "CurrentLinkedEmpty",snapshotId |-> world.id,linkId |-> link.id,host |-> link.host,physical |-> link.physical,kind |-> link.kind,loadDefinition |-> link.loadDefinition,
linkedLoads |-> LinkedLoadIds109(world,link),effectiveCounterIds |-> HostedCounterIds109(world.objects,link.host,link.kind),
empty |-> LinkedLoadIds109(world,link)#{} /\ HostedCounterIds109(world.objects,link.host,link.kind)={}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: HostedCounterIds109, LinkedLoadIds109
EmptyRecognition109 · operator
reference-profile · input revision 2 · CC0 1.0
EmptyRecognition109(before,beginWorld,currentWorld,id) ==
LET link==beginWorld.loadLinks[1]
d==link.emptyDefinition
definitions==[key \in {ConditionalKey96(d)} |-> d]
begin==EmptySnapshot109(beginWorld,id,"CheckpointBeginning",definitions,before)
current==EmptySnapshot109(currentWorld,id,"ProcedureCodee605a78f5d5e",definitions,before)
cp==[tag |-> "ConditionalCheckpoint",point |-> "ProcedureCodee605a78f5d5e",id |-> id,previousCheckpoint |-> before.lastCheckpoint,serial |-> before.serial+1,
previousSnapshot |-> before.lastSnapshot,beginSnapshot |-> begin,processingSnapshot |-> current,stepSerial |-> before.stepSerial,
occurrences |-> Empty10,caller |-> [kind |-> "EmptyConditionCheckpoint",source |-> ObjectAbilitySource9(link.host)]]
read==EmptyReadFixture109(beginWorld,link)
truth==[tag |-> "ConditionalStaticTruth",ability |-> d.syntax.id,source |-> d.syntax.source,checkpointId |-> id,snapshotId |-> begin.id,
condition |-> d.primaryCondition,holds |-> read.empty]
conditions==[key \in DOMAIN definitions |-> [occurrence \in {0} |-> truth]]
candidates==CheckpointCandidates96(definitions,before,cp,conditions)
allocation==[key \in candidates |-> id*100000+key.definition.ability]
bindings==[key \in candidates |-> [kind |-> "Reaction",windowId |-> 7200,group |-> 7300,checkpointId |-> id]]
after==EscalatingResourceContestCommitted108(before,definitions,cp,conditions,allocation,bindings)
IN [before |-> before,after |-> after,cp |-> cp,conditions |-> conditions,definitions |-> definitions,candidates |-> candidates,allocation |-> allocation,bindings |-> bindings,
beginWorld |-> beginWorld,link |-> link,read |-> read,truth |-> truth]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointCandidates96, ConditionalKey96, ObjectAbilitySource9, Empty10, EmptyReadFixture109, EmptySnapshot109, EscalatingResourceContestCommitted108
EmptyRecognitionValid109 · operator
reference-profile · input revision 2 · CC0 1.0
EmptyRecognitionValid109(q) ==
/\ EmptyStaticTruth109(q.beginWorld,CardFacts10,q.link,q.cp,q.read,q.truth)
/\ EscalatingResourceContestRecognitionValid108(q)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestRecognitionValid108, EmptyStaticTruth109, CardFacts10
EmptySeed109 · operator
reference-profile · input revision 2 · CC0 1.0
EmptySeed109(world) ==
LET d==world.loadLinks[1].emptyDefinition
definitions==[key \in {ConditionalKey96(d)} |-> d]
initial==ReplacementOverlay99(EscalatingResourceContestSnapshot108(world.id,0,"PreviousCheckpoint",definitions,world),[loadState |-> LoadState109(world)])
IN NewConditionalLedger96(initial)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalKey96, NewConditionalLedger96, ReplacementOverlay99, EscalatingResourceContestSnapshot108, LoadState109
EmptySnapshot109 · operator
reference-profile · input revision 2 · CC0 1.0
EmptySnapshot109(world,checkpoint,point,definitions,ledger) ==
LET raw==ReplacementOverlay99(EscalatingResourceContestSnapshot108(world.id,checkpoint,point,definitions,world),[loadState |-> LoadState109(world)])
IN SnapshotWithConditionalRegistry96([raw EXCEPT !.activationEpoch=ConditionalEpochMap96(ledger,definitions),!.activationSerial=ledger.activationSerial,
!.usedObjects=@ \cup ledger.lastSnapshot.usedObjects],ledger)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalEpochMap96, ReplacementOverlay99, SnapshotWithConditionalRegistry96, EscalatingResourceContestSnapshot108, LoadState109
EmptyStaticRecognitionChecks109 · operator
reference-profile · input revision 2 · CC0 1.0
EmptyStaticRecognitionChecks109 ==
LET w==LoadWorld109("Specimen0060","ResourceUnit")
loaded==CounterTraversalFixture109(w,"LoadCounters","ResourceUnit",3,1,{})
gone==CounterTraversalFixture109(loaded.after,"RemoveCounters","ResourceUnit",3,2,DOMAIN loaded.added)
empty==gone.after
refilled==CounterTraversalFixture109(empty,"PlaceCounters","ResourceUnit",1,3,{})
initial==EmptyRecognition109(EmptySeed109(w),w,w,1)
q==EmptyRecognition109(EmptySeed109(empty),empty,empty,1)
filled==EmptyRecognition109(q.after,refilled.after,refilled.after,2)
startNonempty==EmptyRecognition109(EmptySeed109(refilled.after),refilled.after,empty,3)
startEmpty==EmptyRecognition109(EmptySeed109(empty),empty,refilled.after,4)
inactive==[empty EXCEPT !.objects[900].face="Down"]
notActive==EmptyRecognition109(EmptySeed109(empty),empty,inactive,5)
instance==CHOOSE id \in DOMAIN q.after.instances : TRUE
IN /\ EmptyRecognitionValid109(initial) /\ initial.candidates={}
/\ EmptyRecognitionValid109(q) /\ Cardinality(q.candidates)=1 /\ q.after.instances[instance].primaryKind="Static"
/\ EmptyRecognitionValid109(filled) /\ filled.candidates={} /\ filled.after.instances[instance].status="Pending"
/\ EmptyRecognitionValid109(startNonempty) /\ startNonempty.candidates={}
/\ EmptyRecognitionValid109(startEmpty) /\ Cardinality(startEmpty.candidates)=1
/\ EmptyRecognitionValid109(notActive) /\ notActive.candidates={}
/\ ~EmptyStaticTruth109(refilled.after,CardFacts10,q.link,q.cp,EmptyReadFixture109(refilled.after,q.link),q.truth)
/\ ~EmptyStaticTruth109(empty,CardFacts10,q.link,[q.cp EXCEPT !.beginSnapshot.loadState.history=Empty10],q.read,q.truth)
/\ \A status \in {"Pending","Imminent","Resolving"} :
LET sibling==[q.after EXCEPT !.instances[instance].status=status]
again==EmptyRecognition109(sibling,empty,empty,6)
IN EmptyRecognitionValid109(again) /\ again.candidates={}
/\ LET completed==[q.after EXCEPT !.instances[instance].status="Complete"]
repeated==EmptyRecognition109(completed,empty,empty,7)
key==ConditionalKey96(q.link.emptyDefinition)
throttled==[completed EXCEPT !.throttle=[k \in {key} |-> completed.stepSerial]]
blocked==EmptyRecognition109(throttled,empty,empty,8)
afterStep==[throttled EXCEPT !.stepSerial=@+1]
step==[tag |-> "TimingStructureStepCompleted",structure |-> TimingRef9("Turn",1),procedureId |-> 1,step |-> "DiscardEnd",previousSerial |-> throttled.stepSerial,serial |-> afterStep.stepSerial]
retry==EmptyRecognition109(afterStep,empty,empty,9)
IN /\ EmptyRecognitionValid109(repeated) /\ Cardinality(repeated.candidates)=1
/\ EmptyRecognitionValid109(blocked) /\ blocked.candidates={}
/\ ObserveConditionalTimingStep96(throttled,afterStep,step)
/\ EmptyRecognitionValid109(retry) /\ Cardinality(retry.candidates)=1Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalKey96, ObserveConditionalTimingStep96, TimingRef9, CounterTraversalFixture109, Empty10, EmptyReadFixture109, EmptyRecognition109, EmptyRecognitionValid109, EmptySeed109, LoadWorld109, EmptyStaticTruth109, CardFacts10
EmptyWorldsValid109 · operator
reference-profile · input revision 2 · CC0 1.0
EmptyWorldsValid109(worlds) == \A world \in worlds : \A id \in DOMAIN world.loadLinks : ReadEmpty109(world,CardFacts10,world.loadLinks[id],EmptyReadFixture109(world,world.loadLinks[id]))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EmptyReadFixture109, ReadEmpty109, CardFacts10
EscalatingResourceContestAnnouncement108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestAnnouncement108(frame,player,mode,amount) == [tag |-> "EscalatingResourceContestBoostChoice",escalatingResourceContestId |-> frame.id,player |-> player,mode |-> mode,amount |-> amount,viewers |-> SetupPlayers]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupPlayers
EscalatingResourceContestAssociatedEvent108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestAssociatedEvent108(frame,a,snapshot) ==
ReplacementOverlay99(EscalatingResourceContestOccurrenceBase108(frame.resultEvent.id*10+a.id,"EscalatingResourceContestAssociatedResult",frame.packet.source.object,"SideA","SideA",snapshot,frame.resultEvent.id),
[scopeKind |-> "Ability",scopeDefinition |-> ConditionalKey96(a.definition),escalatingResourceContestId |-> frame.id,rawResultId |-> frame.resultEvent.id,
escalatingResourceContestStrength |-> frame.resultEvent.escalatingResourceContestStrength,linkStrength |-> frame.resultEvent.linkStrength,result |-> frame.result])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalKey96, ReplacementOverlay99, EscalatingResourceContestOccurrenceBase108
EscalatingResourceContestAt108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestAt108(world,frame,id) ==
LET w==[world EXCEPT !.id=id,!.escalatingResourceContestFrames=ReplacementOverlay99(@,[i \in {frame.id} |-> frame]),
!.usedPayments=@ \cup {frame.boosts[p].transaction : p \in {p \in SetupPlayers : frame.boosts[p].mode="Pay"}},
!.usedObjects=@ \cup DOMAIN world.objects,!.eventIds=IF frame.resultEvent.id=0 THEN @ ELSE @ \cup {frame.resultEvent.id}]
live==LinkDeclaredWorld107(w)
IN [live EXCEPT !.escalatingResourceContestOrderPolicies=[i \in IF EscalatingResourceContestDuringTraversal108(live) THEN EscalatingResourceContestRoleIds108(live,"EscalatingResourceContestOrder","Specimen0231") ELSE {} |-> EscalatingResourceContestPolicy108(live,frame,i,"Order")],
!.escalatingResourceContestLinkPolicies=[i \in IF frame.ordinal=1 THEN EscalatingResourceContestRoleIds108(live,"EscalatingResourceContestLinkZero","Specimen0154") ELSE {} |-> EscalatingResourceContestPolicy108(live,frame,i,"Connection")]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, EscalatingResourceContestPolicy108, LinkDeclaredWorld107, EscalatingResourceContestDuringTraversal108, EscalatingResourceContestRoleIds108, SetupPlayers
EscalatingResourceContestAtom108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestAtom108(value,associations) ==
[id |-> 1,kind |-> "EscalatingResourceContest",value |-> value,actor |-> "SideA",baseOrigin |-> ObjectAbilitySource9(900),sourceCard |-> "Specimen0101",sourceSHA |-> CardFacts10["Specimen0101"].sourceSHA,associations |-> associations,preventable |-> TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, CardFacts10
EscalatingResourceContestBirthChecks108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestBirthChecks108 ==
LET w==EscalatingResourceContestWorld108("Specimen0229",{},TRUE,FALSE,FALSE)
context==EscalatingResourceContestContext108(w,2,EscalatingResourceContestSpecimen0101Associations108)
start==EscalatingResourceContestStart108(w,context,51,9001)
IN /\ BeginEscalatingResourceContest108(context,context.currentRef,w,1,CardFacts10,51,9001,EscalatingResourceContestPacketFixture108(context),start.frame,start.world.escalatingResourceContestFrames,start.history,start.event)
/\ start.frame.ordinal=1 /\ start.frame.phase="InitialCheckpoint"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestContext108, EscalatingResourceContestPacketFixture108, EscalatingResourceContestSpecimen0101Associations108, EscalatingResourceContestStart108, EscalatingResourceContestWorld108, BeginEscalatingResourceContest108, CardFacts10
EscalatingResourceContestCard108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestCard108(card,deployed,activated) == ReplacementOverlay99(ExposureMarkerCardFixture105(card,"Play",deployed),[side |-> CardFacts10[card].side,activated |-> activated])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, ExposureMarkerCardFixture105, CardFacts10
EscalatingResourceContestCheckpoint108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestCheckpoint108(frame,world,id) ==
[NewCheckpoint103(id,EscalatingResourceContestCheckpointCaller108(frame),world.id,world.inside) EXCEPT !.phase="Returned",!.point="ProcedureCodeb74d673a0fc6",!.owed= <<>>,!.done=CheckpointStageSet103,
!.returned=TRUE,!.recognition=[id |-> id,caller |-> EscalatingResourceContestCheckpointCaller108(frame)],!.recognized=Empty10]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Empty10, CheckpointStageSet103, EscalatingResourceContestCheckpointCaller108, NewCheckpoint103
EscalatingResourceContestCheckpointWorld108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestCheckpointWorld108(world,cp,ledger) ==
[world EXCEPT !.checkpointFrames=ReplacementOverlay99(@,[id \in {cp.id} |-> cp]),!.checkpointLedger=ledger]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99
EscalatingResourceContestChoose108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestChoose108(frame,order,cpId) ==
[frame EXCEPT !.phase="ChooseBoost",!.point=IF order[1]="SideA" THEN "ProcedureCode083016920358" ELSE "ProcedureCode785a8b2e5de4",!.order=order,!.nextPlayer=order[1],!.checkpoints=@ \cup {cpId}]Exact module download · Source bundle and reproduction instructions
EscalatingResourceContestCommitted108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestCommitted108(before,definitions,cp,conditions,allocation,bindings) ==
LET stable==ConditionalActivityLedger96(before,definitions,cp.processingSnapshot)
ids=={allocation[key] : key \in DOMAIN allocation}
IN [stable EXCEPT !.activationEpoch=cp.processingSnapshot.activationEpoch,!.lastCheckpoint=cp.id,!.checkpointIds=@ \cup {cp.id},
!.checkpoints=ReplacementOverlay99(@,[id \in {cp.id} |-> [caller |-> cp.caller]]),!.serial=cp.serial,!.lastSnapshot=cp.processingSnapshot,
!.processed=@ \cup DOMAIN cp.occurrences,!.instances=ReplacementOverlay99(@,[id \in ids |->
LET key==CHOOSE key \in DOMAIN allocation : allocation[key]=id
IN NewConditionalInstance96(id,definitions[key.definition],cp,key.occurrence,bindings[key].windowId,bindings[key].group)])]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalActivityLedger96, NewConditionalInstance96, ReplacementOverlay99
EscalatingResourceContestConditional108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestConditional108(id,card,trigger) ==
LET syntax==[id |-> id,kind |-> "Conditional",side |-> CardFacts10[card].side,controller |-> CardFacts10[card].side,cardKind |-> CardFacts10[card].kind,
source |-> ObjectAbilitySource9(900),units |-> <<TextUnit93(1,"SchemaAtom043","Trigger",TRUE,0),TextUnit93(10,"Instruction","NoValue",FALSE,0)>>,
arrowAfterFlags |-> TRUE,barrierInstructionPrefix |-> FALSE,paidPrefix |-> [present |-> FALSE,bold |-> TRUE,colon |-> TRUE]]
IN [syntax |-> syntax,activity |-> AbilityDefinition9(id,"Conditional",syntax.source,"Printed"),primaryKind |-> "Trigger",primaryCondition |-> 1,
instructions |-> <<700>>,instructionHasWould |-> FALSE,trigger |-> [kinds |-> {"EscalatingResourceContestAssociatedResult"},subject |-> "SchemaAtom016",actor |-> "SchemaAtom016",side |-> "SchemaAtom016"],
triggerRequirements |-> IF trigger="AnyResult" THEN {} ELSE {1},effectChoices |-> {{1}},optionalParts |-> {},partsByInstruction |-> [i \in {700} |-> {1}],delayedEffect |-> 0,thisTraversal |-> FALSE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: AbilityDefinition9, ObjectAbilitySource9, TextUnit93, CardFacts10
EscalatingResourceContestContext108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestContext108(world,value,associations) ==
[id |-> 10800,phase |-> "Resolving",currentRef |-> DamageReference104(0),currentWorld |-> world.id,templates |-> [id \in {1} |-> EscalatingResourceContestAtom108(2,associations)],
state |-> [effects |-> [id \in {1} |-> EscalatingResourceContestAtom108(value,associations)]],actualEffects |-> [id \in {1} |-> EscalatingResourceContestAtom108(value,associations)]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageReference104, EscalatingResourceContestAtom108
EscalatingResourceContestContextAndOrderChecks108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestContextAndOrderChecks108 ==
LET nq==EscalatingResourceContestScenario108("Specimen0229","Decline",0,"Decline",0,FALSE,TRUE)
reverse==EscalatingResourceContestScenario108("Specimen0229","Pay",1,"Pay",2,TRUE,TRUE)
outsideBase==EscalatingResourceContestWorld108("Specimen0229",{},FALSE,TRUE,FALSE)
outsideStart==EscalatingResourceContestStart108(outsideBase,EscalatingResourceContestContext108(outsideBase,2,Empty10),51,9001)
outsideCP==EscalatingResourceContestCheckpoint108(outsideStart.frame,outsideStart.world,5100)
outsideChoose==EscalatingResourceContestChoose108(outsideStart.frame,<<"SideA","SideB">>,5100)
r==nq.SchemaAtom187.ready
w==nq.SchemaAtom187.readyWorld
IN /\ EscalatingResourceContestScenarioValid108(nq) /\ nq.determined.result="Successful"
/\ nq.SchemaAtom187.after.strengths["SideB"].value=0 /\ LinkReadFixture107(w).value=2
/\ EscalatingResourceContestScenarioValid108(reverse) /\ reverse.first.player="SideB" /\ reverse.SchemaAtom187.player="SideA"
/\ reverse.determined.result="Successful"
/\ DrainEscalatingResourceContestCheckpoint108(outsideStart.frame,outsideChoose,EscalatingResourceContestCheckpointWorld108(outsideStart.world,outsideCP,EscalatingResourceContestLedger108(outsideCP)),CardFacts10,outsideCP,EscalatingResourceContestLedger108(outsideCP),<<>>,<<"SideA","SideB">>)
/\ ~DrainEscalatingResourceContestCheckpoint108(reverse.start.frame,EscalatingResourceContestChoose108(reverse.start.frame,<<"SideA","SideB">>,5100),EscalatingResourceContestCheckpointWorld108(reverse.start.world,reverse.initialCP,EscalatingResourceContestLedger108(reverse.initialCP)),CardFacts10,reverse.initialCP,EscalatingResourceContestLedger108(reverse.initialCP),<<>>,<<"SideA","SideB">>)
/\ ~EscalatingResourceContestSetValid108(r,[w EXCEPT !.escalatingResourceContestLinkPolicies=Empty10],0)
/\ ~EscalatingResourceContestSetValid108(r,[w EXCEPT !.escalatingResourceContestLinkPolicies[7000].snapshotId=99],0)
/\ ~EscalatingResourceContestSetValid108(r,[w EXCEPT !.escalatingResourceContestLinkPolicies[7000].sourceSHA="wrong-sha"],0)
/\ ~EscalatingResourceContestSetValid108(r,[w EXCEPT !.escalatingResourceContestLinkPolicies[7000].sourceObject.card="PhysicalItem0004"],0)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Empty10, EscalatingResourceContestCheckpoint108, EscalatingResourceContestCheckpointWorld108, EscalatingResourceContestChoose108, EscalatingResourceContestContext108, EscalatingResourceContestLedger108, EscalatingResourceContestScenario108, EscalatingResourceContestScenarioValid108, EscalatingResourceContestSetValid108, EscalatingResourceContestStart108, EscalatingResourceContestWorld108, LinkReadFixture107, DrainEscalatingResourceContestCheckpoint108, CardFacts10
EscalatingResourceContestDeclined108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestDeclined108(frame,player) ==
[frame EXCEPT !.phase="SetStrength",!.pendingPlayer=player,!.acted=@ \cup {player},!.boosts[player]=[mode |-> "Decline",amount |-> 0,transaction |-> 0]]Exact module download · Source bundle and reproduction instructions
EscalatingResourceContestDetermined108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestDetermined108(frame,event) == [frame EXCEPT !.phase="Determined",!.point="ProcedureCode0cb35cf3f8e6",!.result=event.result,!.resultEvent=event]Exact module download · Source bundle and reproduction instructions
EscalatingResourceContestEstablished108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestEstablished108(frame,contextualLink) ==
LET player==frame.pendingPlayer
value==IF player="SideA" THEN frame.packet.base+frame.boosts[player].amount ELSE contextualLink+frame.boosts[player].amount
IN [frame EXCEPT !.strengths[player]=[set |-> TRUE,value |-> value],!.pendingPlayer="NoValue",
!.phase=IF frame.acted=SetupPlayers THEN "Determine" ELSE "ChooseBoost",!.nextPlayer=IF frame.acted=SetupPlayers THEN "NoValue" ELSE frame.order[2],
!.point=IF frame.acted=SetupPlayers THEN "ProcedureCode42d1fb0bb9d2" ELSE IF frame.order[2]="SideA" THEN "ProcedureCode083016920358" ELSE "ProcedureCode785a8b2e5de4"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SetupPlayers
EscalatingResourceContestGlobalRecognition108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestGlobalRecognition108(world,definition,raw,kind,object,actor,side,occurrenceId,caller,positiveRequired) ==
LET definitions==[key \in {ConditionalKey96(definition)} |-> definition]
snapshot==EscalatingResourceContestSnapshot108(world.id,0,"EscalatingResourceContestEventOccurrence",definitions,world)
event==ReplacementOverlay99(EscalatingResourceContestOccurrenceBase108(occurrenceId,kind,object,actor,side,snapshot,occurrenceId),
[escalatingResourceContestId |-> raw.escalatingResourceContestId,amount |-> IF "amount" \in DOMAIN raw THEN raw.amount ELSE 0])
events==[id \in {event.id} |-> event]
conditions==[key \in DOMAIN definitions |-> [id \in DOMAIN events |->
[tag |-> "ConditionalTriggerStipulations",ability |-> definition.syntax.id,source |-> definition.syntax.source,occurrence |-> id,snapshotId |-> snapshot.id,
results |-> [r \in definition.triggerRequirements |-> ~positiveRequired \/ event.amount>0]]]]
IN EscalatingResourceContestRecognition108(definitions,world,events,conditions,6200,caller)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalKey96, ReplacementOverlay99, EscalatingResourceContestOccurrenceBase108, EscalatingResourceContestRecognition108, EscalatingResourceContestSnapshot108
EscalatingResourceContestInitiationReactionChecks108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestInitiationReactionChecks108 ==
LET initial==EscalatingResourceContestWorld108("Specimen0163",{},TRUE,FALSE,FALSE)
trimmed==[initial EXCEPT !.objects=Without101(@,2100..2104),!.controllers=Without101(@,2100..2104)]
active==[trimmed EXCEPT !.objects[630].zone="Play",!.objects[630].deployed=TRUE,!.activeAbilities=@ \cup {9801},
!.abilitySources=ReplacementOverlay99(@,[id \in {9801} |-> ObjectAbilitySource9(630)])]
ctx==EscalatingResourceContestContext108(active,2,Empty10)
start==EscalatingResourceContestStart108(active,ctx,51,9001)
d==[ReboundConditionalDefinition96(EscalatingResourceContestConditional108(9801,"Specimen0182","AnyResult"),630) EXCEPT !.trigger.kinds={"EscalatingResourceContestInitiated"}]
q==EscalatingResourceContestGlobalRecognition108(start.world,d,start.event,"EscalatingResourceContestInitiated",900,"SideA","SideA",9001,EscalatingResourceContestCheckpointCaller108(start.frame),FALSE)
added==[id \in {2199} |-> ExposureMarkerTokenFixture105("ResourceUnit","SideBResourceUnits",0,FALSE)]
afterGain==EscalatingResourceContestAt108([start.world EXCEPT !.objects=ReplacementOverlay99(@,added),!.controllers=ReplacementOverlay99(@,[id \in {2199} |-> "SideB"])],start.frame,101)
completeLedger==[q.after EXCEPT !.instances=[id \in DOMAIN @ |-> [@[id] EXCEPT !.status="Complete"]]]
cp==[EscalatingResourceContestCheckpoint108(start.frame,start.world,6200) EXCEPT !.recognition=q.cp,!.recognized=CheckpointMemberMap103(completeLedger,6200)]
returnedWorld==EscalatingResourceContestCheckpointWorld108(afterGain,cp,completeLedger)
choose==EscalatingResourceContestChoose108(start.frame,<<"SideA","SideB">>,6200)
firstWorld==EscalatingResourceContestAt108(returnedWorld,choose,102)
sideA==EscalatingResourceContestOneChoice108(firstWorld,choose,"Decline",0,{},0)
sideBWorld==EscalatingResourceContestReadyWorld108(sideA.world,sideA.after,1,8001)
IN /\ BeginEscalatingResourceContest108(ctx,ctx.currentRef,active,1,CardFacts10,51,9001,EscalatingResourceContestPacketFixture108(ctx),start.frame,start.world.escalatingResourceContestFrames,start.history,start.event)
/\ EscalatingResourceContestRecognitionValid108(q) /\ Cardinality(q.candidates)=1
/\ BankMintProjection4(start.world.objects,afterGain.objects,added,1,"ResourceUnit",start.world.usedObjects,[kind |-> "Zone",zone |-> "Bank"],TRUE,TRUE)
/\ cp.beginSnapshotId=q.cp.beginSnapshot.id /\ cp.snapshotId=q.cp.processingSnapshot.id /\ cp.snapshotId=100 /\ afterGain.id=101
/\ ~DrainEscalatingResourceContestCheckpoint108(start.frame,choose,EscalatingResourceContestCheckpointWorld108(afterGain,cp,q.after),CardFacts10,cp,q.after,<<>>,<<"SideA","SideB">>)
/\ DrainEscalatingResourceContestCheckpoint108(start.frame,choose,returnedWorld,CardFacts10,cp,completeLedger,<<>>,<<"SideA","SideB">>)
/\ EscalatingResourceContestOneChoiceValid108(sideA) /\ EscalatingResourceContestPayValid108(sideA.after,sideBWorld,1,{2199},8001)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, ReboundConditionalDefinition96, ReplacementOverlay99, Empty10, EscalatingResourceContestAt108, EscalatingResourceContestCheckpoint108, EscalatingResourceContestCheckpointWorld108, EscalatingResourceContestChoose108, EscalatingResourceContestConditional108, EscalatingResourceContestContext108, EscalatingResourceContestGlobalRecognition108, EscalatingResourceContestOneChoice108, EscalatingResourceContestOneChoiceValid108, EscalatingResourceContestPacketFixture108, EscalatingResourceContestPayValid108, EscalatingResourceContestReadyWorld108, EscalatingResourceContestRecognitionValid108, EscalatingResourceContestStart108, EscalatingResourceContestWorld108, ExposureMarkerTokenFixture105, BeginEscalatingResourceContest108, CheckpointMemberMap103, DrainEscalatingResourceContestCheckpoint108, EscalatingResourceContestCheckpointCaller108, Without101, BankMintProjection4, CardFacts10
EscalatingResourceContestLedger108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestLedger108(cp) == [checkpoints |-> [id \in {cp.id} |-> [caller |-> cp.caller]],instances |-> Empty10]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Empty10
EscalatingResourceContestOccurrenceBase108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestOccurrenceBase108(id,kind,object,actor,side,snapshot,effect) ==
[id |-> id,kind |-> kind,object |-> object,actor |-> actor,side |-> side,snapshot |-> snapshot,effectId |-> effect,
movement |-> [tag |-> "NoValue",oldObject |-> 0,newObject |-> 0,beforeSnapshot |-> snapshot],scopeKind |-> "Global",
scopeDefinition |-> [ability |-> 0,source |-> RuleAbilitySource9("NoValue")],structure |-> NoTimingRef9,step |-> "NoValue",traversal |-> NoTraversal6,siteInspection |-> [traversalId |-> 0,origin |-> "NoValue"]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NoTimingRef9, RuleAbilitySource9, NoTraversal6
EscalatingResourceContestOneChoice108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestOneChoice108(world,frame,mode,amount,selected,transaction) ==
LET player==frame.nextPlayer
paying==IF mode="Pay" THEN EscalatingResourceContestReadyWorld108(world,frame,amount,transaction) ELSE world
chosen==IF mode="Pay" THEN EscalatingResourceContestPaid108(frame,player,amount,transaction) ELSE EscalatingResourceContestDeclined108(frame,player)
afterObjects==IF mode="Pay" THEN Without101(world.objects,selected) ELSE world.objects
afterPayment==EscalatingResourceContestAt108([paying EXCEPT !.objects=afterObjects,!.controllers=IF mode="Pay" THEN Without101(@,selected) ELSE @],chosen,world.id+1)
cpId==IF player="SideA" THEN 5101 ELSE 5102
cp==EscalatingResourceContestCheckpoint108(chosen,afterPayment,cpId)
ready==IF mode="Pay" THEN [chosen EXCEPT !.phase="SetStrength",!.checkpoints=@ \cup {cpId}] ELSE chosen
readyWorld==EscalatingResourceContestAt108(IF mode="Pay" THEN EscalatingResourceContestCheckpointWorld108(afterPayment,cp,EscalatingResourceContestLedger108(cp)) ELSE afterPayment,ready,world.id+2)
link==IF player="SideA" THEN 0 ELSE IF frame.ordinal=1 /\ 7000 \in readyWorld.activeAbilities THEN 0 ELSE LinkReadFixture107(readyWorld).value
after==EscalatingResourceContestEstablished108(ready,link)
IN [player |-> player,mode |-> mode,amount |-> amount,selected |-> selected,transaction |-> transaction,
before |-> frame,paying |-> paying,chosen |-> chosen,afterPayment |-> afterPayment,cp |-> cp,ready |-> ready,readyWorld |-> readyWorld,
link |-> link,after |-> after,world |-> EscalatingResourceContestAt108(readyWorld,after,world.id+3)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestAt108, EscalatingResourceContestCheckpoint108, EscalatingResourceContestCheckpointWorld108, EscalatingResourceContestDeclined108, EscalatingResourceContestEstablished108, EscalatingResourceContestLedger108, EscalatingResourceContestPaid108, EscalatingResourceContestReadyWorld108, LinkReadFixture107, Without101
EscalatingResourceContestOneChoiceValid108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestOneChoiceValid108(x) ==
/\ IF x.mode="Pay" THEN
/\ EscalatingResourceContestPayValid108(x.before,x.paying,x.amount,x.selected,x.transaction)
/\ DrainEscalatingResourceContestCheckpoint108(x.chosen,x.ready,EscalatingResourceContestCheckpointWorld108(x.afterPayment,x.cp,EscalatingResourceContestLedger108(x.cp)),CardFacts10,x.cp,EscalatingResourceContestLedger108(x.cp),<<>>,x.before.order)
/\ ~EscalatingResourceContestSetValid108(x.chosen,x.afterPayment,x.link)
ELSE DeclineEscalatingResourceContestBoost108(x.before,x.chosen,x.paying,x.player,EscalatingResourceContestAnnouncement108(x.before,x.player,"Decline",0))
/\ EscalatingResourceContestSetValid108(x.ready,x.readyWorld,x.link)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestAnnouncement108, EscalatingResourceContestCheckpointWorld108, EscalatingResourceContestLedger108, EscalatingResourceContestPayValid108, EscalatingResourceContestSetValid108, DeclineEscalatingResourceContestBoost108, DrainEscalatingResourceContestCheckpoint108, CardFacts10
EscalatingResourceContestPacketChecks108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestPacketChecks108 ==
/\ \A value \in {-1,0,2,3} :
LET w==EscalatingResourceContestWorld108("Specimen0163",{},FALSE,FALSE,FALSE)
ctx==EscalatingResourceContestContext108(w,value,Empty10)
start==EscalatingResourceContestStart108(w,ctx,51,9001)
IN /\ BeginEscalatingResourceContest108(ctx,ctx.currentRef,w,1,CardFacts10,51,9001,EscalatingResourceContestPacketFixture108(ctx),start.frame,start.world.escalatingResourceContestFrames,start.history,start.event)
/\ ModifyExpectedEffectValue99(ctx.templates,ctx.state.effects,1,value-2)
/\ start.frame.packet.base=value
/\ ~EscalatingResourceContestPacket108([ctx EXCEPT !.currentWorld=99],ctx.currentRef,w,1,CardFacts10,EscalatingResourceContestPacketFixture108(ctx))
/\ ~BeginEscalatingResourceContest108(ctx,ctx.currentRef,w,1,CardFacts10,51,9001,[EscalatingResourceContestPacketFixture108(ctx) EXCEPT !.base=value+1],start.frame,start.world.escalatingResourceContestFrames,start.history,start.event)
/\ EscalatingResourceContestOmitted108([ctx EXCEPT !.state.effects=Empty10,!.actualEffects=Empty10],ctx.currentRef,w,1)
/\ LET w==EscalatingResourceContestWorld108("Specimen0229",{},TRUE,FALSE,TRUE)
ctx==EscalatingResourceContestContext108(w,2,EscalatingResourceContestSpecimen0101Associations108)
start==EscalatingResourceContestStart108(w,ctx,51,9001)
secondContext==[EscalatingResourceContestContext108(start.world,2,EscalatingResourceContestSpecimen0101Associations108) EXCEPT !.id=10801]
nested==EscalatingResourceContestStart108(start.world,secondContext,52,9003)
replayed==EscalatingResourceContestStart108(start.world,ctx,52,9003)
parentWorld==EscalatingResourceContestAt108(nested.world,start.frame,100)
secondWorld==EscalatingResourceContestAt108(nested.world,nested.frame,100)
IN /\ BeginEscalatingResourceContest108(secondContext,secondContext.currentRef,start.world,1,CardFacts10,52,9003,EscalatingResourceContestPacketFixture108(secondContext),nested.frame,nested.world.escalatingResourceContestFrames,nested.history,nested.event)
/\ nested.frame.ordinal=2 /\ start.frame.ordinal=1
/\ DOMAIN parentWorld.escalatingResourceContestLinkPolicies={7000} /\ DOMAIN secondWorld.escalatingResourceContestLinkPolicies={}
/\ EscalatingResourceContestContextualLink108(start.frame,parentWorld,CardFacts10,LinkBaseFixture107(parentWorld),parentWorld.linkDeclarations,LinkReadFixture107(parentWorld),0)
/\ EscalatingResourceContestContextualLink108(nested.frame,secondWorld,CardFacts10,LinkBaseFixture107(secondWorld),secondWorld.linkDeclarations,LinkReadFixture107(secondWorld),2)
/\ ~BeginEscalatingResourceContest108(ctx,ctx.currentRef,start.world,1,CardFacts10,52,9003,EscalatingResourceContestPacketFixture108(ctx),replayed.frame,replayed.world.escalatingResourceContestFrames,replayed.history,replayed.event)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ModifyExpectedEffectValue99, Empty10, EscalatingResourceContestAt108, EscalatingResourceContestContext108, EscalatingResourceContestPacketFixture108, EscalatingResourceContestSpecimen0101Associations108, EscalatingResourceContestStart108, EscalatingResourceContestWorld108, LinkBaseFixture107, LinkReadFixture107, BeginEscalatingResourceContest108, EscalatingResourceContestContextualLink108, EscalatingResourceContestOmitted108, EscalatingResourceContestPacket108, CardFacts10
EscalatingResourceContestPacketFixture108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestPacketFixture108(context) ==
LET e==context.actualEffects[1] IN
[key |-> <<context.id,context.currentRef,1>>,contextId |-> context.id,reference |-> context.currentRef,effectId |-> 1,source |-> e.baseOrigin,
sourceCard |-> e.sourceCard,sourceSHA |-> e.sourceSHA,base |-> e.value,associations |-> e.associations]Exact module download · Source bundle and reproduction instructions
EscalatingResourceContestPaid108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestPaid108(frame,player,amount,transaction) ==
[frame EXCEPT !.phase="BoostCheckpoint",!.pendingPlayer=player,!.acted=@ \cup {player},!.boosts[player]=[mode |-> "Pay",amount |-> amount,transaction |-> transaction]]Exact module download · Source bundle and reproduction instructions
EscalatingResourceContestPayValid108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestPayValid108(frame,world,amount,selected,transaction) ==
PayEscalatingResourceContestBoost108(frame,EscalatingResourceContestPaid108(frame,frame.nextPlayer,amount,transaction),world,Without101(world.objects,selected),frame.nextPlayer,amount,selected,transaction,
EscalatingResourceContestPayment108(frame,world,frame.nextPlayer,amount,transaction,selected),EscalatingResourceContestAnnouncement108(frame,frame.nextPlayer,"Pay",amount),CardFacts10,world.escalatingResourceContestSpendPermissions[frame.nextPlayer],world.usedPayments,
Empty10,world.usedObjects,CheckpointPrinted103,CheckpointOwners103,{},9900,Empty10,Empty10,{},EscalatingResourceContestSpendEvents108(frame,world,frame.nextPlayer,amount,transaction))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointOwners103, CheckpointPrinted103, Empty10, EscalatingResourceContestAnnouncement108, EscalatingResourceContestPaid108, EscalatingResourceContestPayment108, EscalatingResourceContestSpendEvents108, PayEscalatingResourceContestBoost108, Without101, CardFacts10
EscalatingResourceContestPayment108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestPayment108(frame,world,player,amount,transaction,selected) ==
[tag |-> "CompletedEscalatingResourceContestBoostCost",id |-> transaction,escalatingResourceContestId |-> frame.id,player |-> player,amount |-> amount,snapshotId |-> world.id,
source |-> EscalatingResourceContestBoostRule108(player),parent |-> frame.caller,paidCounterIds |-> selected,complete |-> TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestBoostRule108
EscalatingResourceContestPermission108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestPermission108(world,frame,player,transaction) ==
LET source==IF player="SideA" THEN 610 ELSE 620
ability==IF player="SideA" THEN 6100 ELSE 6200
object==world.objects[source]
IN [escalatingResourceContestId |-> frame.id,snapshotId |-> world.id,player |-> player,paymentId |-> transaction,purpose |-> "EscalatingResourceContest",ability |-> ability,
source |-> ObjectAbilitySource9(source),sourceObject |-> object,sourceSHA |-> CardFacts10[LinkDefinition107(world,object)].sourceSHA,
counters |-> IF player="SideA" THEN {2300,2301,2302} ELSE {2400}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, LinkDefinition107, CardFacts10
EscalatingResourceContestPhaseChecks108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestPhaseChecks108 ==
/\ \A profile \in {"Specimen0229","Specimen0163"}, exampleFamily065 \in BOOLEAN,
cm \in {"Pay","Decline"}, rm \in {"Pay","Decline"}, ca \in 0..2, ra \in 0..2 :
(cm="Decline" => ca=0) /\ (rm="Decline" => ra=0) =>
LET s==EscalatingResourceContestScenario108(profile,cm,ca,rm,ra,exampleFamily065,FALSE)
IN /\ EscalatingResourceContestScenarioValid108(s)
/\ s.SchemaAtom187.after.strengths["SideA"].value=2+ca
/\ s.SchemaAtom187.after.strengths["SideB"].value=LinkProfileFacts107[profile].baseLink+ra
/\ s.determined.result=IF 2+ca>LinkProfileFacts107[profile].baseLink+ra THEN "Successful" ELSE "Unsuccessful"
/\ Cardinality(s.SchemaAtom187.after.checkpoints)=1+(IF cm="Pay" THEN 1 ELSE 0)+(IF rm="Pay" THEN 1 ELSE 0)
/\ LET paid==EscalatingResourceContestScenario108("Specimen0229","Pay",0,"Pay",0,FALSE,FALSE)
declined==EscalatingResourceContestScenario108("Specimen0229","Decline",0,"Decline",0,FALSE,FALSE)
cp==paid.first.cp
first==paid.first
badCP==[cp EXCEPT !.caller.transactionId=999]
IN /\ paid.determined.result="Unsuccessful" /\ declined.determined.result="Unsuccessful"
/\ Cardinality(paid.SchemaAtom187.after.checkpoints)=3 /\ Cardinality(declined.SchemaAtom187.after.checkpoints)=1
/\ first.chosen.boosts["SideA"].mode="Pay" /\ first.chosen.boosts["SideA"].amount=0
/\ EscalatingResourceContestSpendEvents108(first.before,first.paying,"SideA",0,7001)={}
/\ ~DrainEscalatingResourceContestCheckpoint108(first.chosen,first.ready,EscalatingResourceContestCheckpointWorld108(first.afterPayment,badCP,EscalatingResourceContestLedger108(badCP)),CardFacts10,badCP,EscalatingResourceContestLedger108(badCP),<<>>,paid.order)
/\ ~DrainEscalatingResourceContestCheckpoint108(first.chosen,first.ready,EscalatingResourceContestCheckpointWorld108(first.afterPayment,[cp EXCEPT !.returned=FALSE],EscalatingResourceContestLedger108(cp)),CardFacts10,[cp EXCEPT !.returned=FALSE],EscalatingResourceContestLedger108(cp),<<>>,paid.order)
/\ ~DeclineEscalatingResourceContestBoost108(first.chosen,EscalatingResourceContestDeclined108(first.chosen,"SideA"),first.afterPayment,"SideA",EscalatingResourceContestAnnouncement108(first.chosen,"SideA","Decline",0))
/\ ~DetermineEscalatingResourceContest108(first.before,paid.determined,first.paying,first.paying.objects,9002,paid.event)
/\ ~CompleteEscalatingResourceContest108(first.before,paid.completed,first.paying)
/\ ~ReturnEscalatingResourceContest108(paid.determined,[paid.determined EXCEPT !.phase="Returned",!.returned=TRUE],paid.determinedWorld,paid.completion)
/\ ~ReturnEscalatingResourceContest108(paid.completed,[paid.completed EXCEPT !.phase="Returned",!.returned=TRUE],paid.completedWorld,[paid.completion EXCEPT !.caller.id=999])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestAnnouncement108, EscalatingResourceContestCheckpointWorld108, EscalatingResourceContestDeclined108, EscalatingResourceContestLedger108, EscalatingResourceContestScenario108, EscalatingResourceContestScenarioValid108, EscalatingResourceContestSpendEvents108, CompleteEscalatingResourceContest108, DeclineEscalatingResourceContestBoost108, DetermineEscalatingResourceContest108, DrainEscalatingResourceContestCheckpoint108, ReturnEscalatingResourceContest108, LinkProfileFacts107, CardFacts10
EscalatingResourceContestPolicy108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestPolicy108(world,frame,id,kind) ==
LET source==world.abilitySources[id]
object==world.objects[source.object]
common==[snapshotId |-> world.id,escalatingResourceContestId |-> frame.id,ability |-> id,source |-> source,sourceObject |-> object,sourceSHA |-> CardFacts10[LinkDefinition107(world,object)].sourceSHA]
IN ReplacementOverlay99(common,IF kind="Order" THEN [order |-> <<"SideB","SideA">>] ELSE [value |-> 0])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, LinkDefinition107, CardFacts10
EscalatingResourceContestReactionAndCurrentReadChecks108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestReactionAndCurrentReadChecks108 ==
LET s==EscalatingResourceContestScenario108("Specimen0163","Pay",0,"Pay",0,FALSE,FALSE)
x==s.SchemaAtom187
paid==x.chosen
afterPayment==x.afterPayment
changedBase==[afterPayment EXCEPT !.objects[21].deployed=TRUE,!.activeAbilities=@ \cup {2100}]
changed==EscalatingResourceContestAt108(changedBase,paid,150)
cp==EscalatingResourceContestCheckpoint108(paid,changed,5202)
ready==[paid EXCEPT !.phase="SetStrength",!.checkpoints=@ \cup {5202}]
current==EscalatingResourceContestAt108(EscalatingResourceContestCheckpointWorld108(changed,cp,EscalatingResourceContestLedger108(cp)),ready,151)
raised==EscalatingResourceContestEstablished108(ready,1)
next==EscalatingResourceContestAt108(current,raised,152)
event==EscalatingResourceContestResultEvent108(raised,next,9010)
IN /\ DrainEscalatingResourceContestCheckpoint108(paid,ready,EscalatingResourceContestCheckpointWorld108(changed,cp,EscalatingResourceContestLedger108(cp)),CardFacts10,cp,EscalatingResourceContestLedger108(cp),<<>>,paid.order)
/\ EstablishEscalatingResourceContestStrength108(ready,raised,current,CardFacts10,LinkBaseFixture107(current),current.linkDeclarations,LinkReadFixture107(current),1)
/\ raised.strengths["SideB"].value=1
/\ ~EstablishEscalatingResourceContestStrength108(ready,EscalatingResourceContestEstablished108(ready,0),current,CardFacts10,LinkBaseFixture107(x.readyWorld),x.readyWorld.linkDeclarations,LinkReadFixture107(x.readyWorld),0)
/\ DetermineEscalatingResourceContest108(raised,EscalatingResourceContestDetermined108(raised,event),next,next.objects,9010,event)
/\ ~DetermineEscalatingResourceContest108(raised,EscalatingResourceContestDetermined108(raised,event),next,Without101(next.objects,{1}),9010,event)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestAt108, EscalatingResourceContestCheckpoint108, EscalatingResourceContestCheckpointWorld108, EscalatingResourceContestDetermined108, EscalatingResourceContestEstablished108, EscalatingResourceContestLedger108, EscalatingResourceContestResultEvent108, EscalatingResourceContestScenario108, LinkBaseFixture107, LinkReadFixture107, DetermineEscalatingResourceContest108, DrainEscalatingResourceContestCheckpoint108, EstablishEscalatingResourceContestStrength108, Without101, CardFacts10
EscalatingResourceContestReactionProjectionChecks108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestReactionProjectionChecks108 ==
LET initial==EscalatingResourceContestWorld108("Specimen0163",{},TRUE,TRUE,TRUE)
emptySideA==[initial EXCEPT !.objects=Without101(@,2000..2004),!.controllers=Without101(@,2000..2004)]
ctx==EscalatingResourceContestContext108(emptySideA,2,EscalatingResourceContestSpecimen0101Associations108)
start==EscalatingResourceContestStart108(emptySideA,ctx,51,9001)
initialCP==EscalatingResourceContestCheckpoint108(start.frame,start.world,5100)
choose==EscalatingResourceContestChoose108(start.frame,<<"SideB","SideA">>,5100)
current==EscalatingResourceContestAt108(EscalatingResourceContestCheckpointWorld108(start.world,initialCP,EscalatingResourceContestLedger108(initialCP)),choose,101)
paying==EscalatingResourceContestReadyWorld108(current,choose,2,8001)
paid==EscalatingResourceContestPaid108(choose,"SideB",2,8001)
afterPay==EscalatingResourceContestAt108([paying EXCEPT !.objects=Without101(@,{2100,2101}),!.controllers=Without101(@,{2100,2101})],paid,102)
raw==CHOOSE e \in EscalatingResourceContestSpendEvents108(choose,paying,"SideB",2,8001) : TRUE
baseDef==ReboundConditionalDefinition96(EscalatingResourceContestConditional108(9701,"Specimen0154","Successful"),70)
definition==[baseDef EXCEPT !.trigger.kinds={"EscalatingResourceContestResourceUnitsSpent"},!.trigger.actor="SideB"]
q==EscalatingResourceContestGlobalRecognition108(afterPay,definition,raw,"EscalatingResourceContestResourceUnitsSpent",0,"SideB","SideB",9050,EscalatingResourceContestCheckpointCaller108(paid),TRUE)
gained==[id \in {2999} |-> ExposureMarkerTokenFixture105("ResourceUnit","SideAResourceUnits",0,FALSE)]
afterGain==EscalatingResourceContestAt108([afterPay EXCEPT !.objects=ReplacementOverlay99(@,gained),!.controllers=ReplacementOverlay99(@,[id \in {2999} |-> "SideA"])],paid,103)
completeLedger==[q.after EXCEPT !.instances=[id \in DOMAIN @ |-> [@[id] EXCEPT !.status="Complete"]]]
cp==[EscalatingResourceContestCheckpoint108(paid,afterPay,6200) EXCEPT !.recognition=q.cp,!.recognized=CheckpointMemberMap103(completeLedger,6200)]
returnWorld==EscalatingResourceContestCheckpointWorld108(afterGain,cp,completeLedger)
ready==[paid EXCEPT !.phase="SetStrength",!.checkpoints=@ \cup {6200}]
readyWorld==EscalatingResourceContestAt108(returnWorld,ready,104)
sideBStrength==EscalatingResourceContestEstablished108(ready,0)
sideAWorld==EscalatingResourceContestAt108(readyWorld,sideBStrength,105)
sideAPaying==EscalatingResourceContestReadyWorld108(sideAWorld,sideBStrength,1,7001)
noGain==[sideAPaying EXCEPT !.objects=Without101(@,{2999}),!.controllers=Without101(@,{2999})]
IN /\ BeginEscalatingResourceContest108(ctx,ctx.currentRef,emptySideA,1,CardFacts10,51,9001,EscalatingResourceContestPacketFixture108(ctx),start.frame,start.world.escalatingResourceContestFrames,start.history,start.event)
/\ DrainEscalatingResourceContestCheckpoint108(start.frame,choose,EscalatingResourceContestCheckpointWorld108(start.world,initialCP,EscalatingResourceContestLedger108(initialCP)),CardFacts10,initialCP,EscalatingResourceContestLedger108(initialCP),<<>>,<<"SideB","SideA">>)
/\ EscalatingResourceContestPayValid108(choose,paying,2,{2100,2101},8001)
/\ EscalatingResourceContestRecognitionValid108(q) /\ Cardinality(q.candidates)=1
/\ BankMintProjection4(afterPay.objects,afterGain.objects,gained,raw.amount \div 2,"ResourceUnit",afterPay.usedObjects,[kind |-> "Zone",zone |-> "Bank"],TRUE,TRUE)
/\ cp.snapshotId=102 /\ afterGain.id=103
/\ cp.beginSnapshotId=q.cp.beginSnapshot.id /\ cp.snapshotId=q.cp.processingSnapshot.id
/\ ~DrainEscalatingResourceContestCheckpoint108(paid,ready,[returnWorld EXCEPT !.checkpointFrames[6200].caller.transactionId=999],CardFacts10,cp,completeLedger,<<>>,paid.order)
/\ ~DrainEscalatingResourceContestCheckpoint108(paid,ready,[returnWorld EXCEPT !.checkpointLedger=q.after],CardFacts10,cp,completeLedger,<<>>,paid.order)
/\ ~DrainEscalatingResourceContestCheckpoint108(paid,ready,EscalatingResourceContestCheckpointWorld108(afterGain,cp,q.after),CardFacts10,cp,q.after,<<>>,paid.order)
/\ DrainEscalatingResourceContestCheckpoint108(paid,ready,returnWorld,CardFacts10,cp,completeLedger,<<>>,paid.order)
/\ EscalatingResourceContestSetValid108(ready,readyWorld,0) /\ sideBStrength.strengths["SideB"].value=2 /\ sideBStrength.nextPlayer="SideA"
/\ EscalatingResourceContestPayValid108(sideBStrength,sideAPaying,1,{2999},7001)
/\ ~EscalatingResourceContestPayValid108(sideBStrength,noGain,1,{2999},7001)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReboundConditionalDefinition96, ReplacementOverlay99, EscalatingResourceContestAt108, EscalatingResourceContestCheckpoint108, EscalatingResourceContestCheckpointWorld108, EscalatingResourceContestChoose108, EscalatingResourceContestConditional108, EscalatingResourceContestContext108, EscalatingResourceContestEstablished108, EscalatingResourceContestGlobalRecognition108, EscalatingResourceContestLedger108, EscalatingResourceContestPacketFixture108, EscalatingResourceContestPaid108, EscalatingResourceContestPayValid108, EscalatingResourceContestReadyWorld108, EscalatingResourceContestRecognitionValid108, EscalatingResourceContestSetValid108, EscalatingResourceContestSpecimen0101Associations108, EscalatingResourceContestSpendEvents108, EscalatingResourceContestStart108, EscalatingResourceContestWorld108, ExposureMarkerTokenFixture105, BeginEscalatingResourceContest108, CheckpointMemberMap103, DrainEscalatingResourceContestCheckpoint108, EscalatingResourceContestCheckpointCaller108, Without101, BankMintProjection4, CardFacts10
EscalatingResourceContestReadyWorld108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestReadyWorld108(world,frame,amount,transaction) ==
[world EXCEPT !.resourceUnitCost=[tag |-> "EscalatingResourceContestBoostCostContext",id |-> transaction,escalatingResourceContestId |-> frame.id,player |-> frame.nextPlayer,amount |-> amount,
snapshotId |-> world.id,source |-> EscalatingResourceContestBoostRule108(frame.nextPlayer),parent |-> frame.caller,status |-> "Paying"]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestBoostRule108
EscalatingResourceContestRecognition108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestRecognition108(definitions,world,events,conditions,id,caller) ==
LET previous==EscalatingResourceContestSnapshot108(world.id,0,"PreviousCheckpoint",definitions,world)
before==NewConditionalLedger96(previous)
begin==EscalatingResourceContestSnapshot108(world.id,id,"CheckpointBeginning",definitions,world)
current==[begin EXCEPT !.point="ProcedureCodee605a78f5d5e"]
cp==[tag |-> "ConditionalCheckpoint",point |-> "ProcedureCodee605a78f5d5e",id |-> id,previousCheckpoint |-> 0,serial |-> 1,
previousSnapshot |-> previous,beginSnapshot |-> begin,processingSnapshot |-> current,stepSerial |-> 0,occurrences |-> events,caller |-> caller]
candidates==CheckpointCandidates96(definitions,before,cp,conditions)
allocation==[key \in candidates |-> 100000+key.definition.ability*100000+key.occurrence]
bindings==[key \in candidates |-> [kind |-> "Reaction",windowId |-> 7200,group |-> 7300,checkpointId |-> id]]
after==EscalatingResourceContestCommitted108(before,definitions,cp,conditions,allocation,bindings)
IN [before |-> before,after |-> after,cp |-> cp,conditions |-> conditions,definitions |-> definitions,candidates |-> candidates,allocation |-> allocation,bindings |-> bindings]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointCandidates96, NewConditionalLedger96, EscalatingResourceContestCommitted108, EscalatingResourceContestSnapshot108
EscalatingResourceContestRecognitionValid108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestRecognitionValid108(q) ==
ProcessConditionalCheckpoint96(q.before,q.after,<<>>,<<>>,q.definitions,q.cp,q.conditions,q.allocation,q.bindings,Empty10,Empty10,{})Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ProcessConditionalCheckpoint96, Empty10
EscalatingResourceContestResourceUnitSelection108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestResourceUnitSelection108(player,amount) == IF player="SideA" THEN 2000..(1999+amount) ELSE 2100..(2099+amount)Exact module download · Source bundle and reproduction instructions
EscalatingResourceContestResultEvent108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestResultEvent108(frame,world,id) ==
[id |-> id,kind |-> "EscalatingResourceContestResult",escalatingResourceContestId |-> frame.id,actor |-> "SideA",source |-> frame.packet.source,reference |-> frame.caller,snapshotId |-> world.id,
result |-> IF frame.strengths["SideA"].value>frame.strengths["SideB"].value THEN "Successful" ELSE "Unsuccessful",escalatingResourceContestStrength |-> frame.strengths["SideA"].value,linkStrength |-> frame.strengths["SideB"].value]Exact module download · Source bundle and reproduction instructions
EscalatingResourceContestResultRecognition108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestResultRecognition108(frame,world) ==
LET associations==frame.packet.associations
definitions==[key \in {ConditionalKey96(associations[id].definition) : id \in DOMAIN associations} |->
associations[CHOOSE id \in DOMAIN associations : ConditionalKey96(associations[id].definition)=key].definition]
snapshot==EscalatingResourceContestSnapshot108(frame.resultEvent.snapshotId,0,"EscalatingResourceContestDetermination",definitions,world)
events==[id \in {frame.resultEvent.id*10+a : a \in DOMAIN associations} |->
EscalatingResourceContestAssociatedEvent108(frame,associations[CHOOSE a \in DOMAIN associations : frame.resultEvent.id*10+a=id],snapshot)]
conditions==[key \in DOMAIN definitions |->
LET a==associations[CHOOSE a \in DOMAIN associations : ConditionalKey96(associations[a].definition)=key]
IN [id \in DOMAIN events |-> EscalatingResourceContestAssociatedStipulation108(frame,a,events[id])]]
IN EscalatingResourceContestRecognition108(definitions,world,events,conditions,6100,[kind |-> "EscalatingResourceContestInstructionEndObservation",escalatingResourceContestId |-> frame.id,caller |-> frame.caller])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalKey96, EscalatingResourceContestAssociatedEvent108, EscalatingResourceContestRecognition108, EscalatingResourceContestSnapshot108, EscalatingResourceContestAssociatedStipulation108
EscalatingResourceContestResultRecognitionChecks108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestResultRecognitionChecks108 ==
/\ \A ca \in {0,3}, ra \in {0,3} :
LET s==EscalatingResourceContestScenario108("Specimen0229","Pay",ca,"Pay",ra,FALSE,FALSE)
frame==s.determined
q==EscalatingResourceContestResultRecognition108(frame,s.SchemaAtom187.world)
a==frame.packet.associations[2]
event==q.cp.occurrences[90022]
key==[definition |-> ConditionalKey96(a.definition),occurrence |-> event.id]
instance==q.after.instances[q.allocation[key]]
condition==[tag |-> "EscalatingResourceContestAssociatedInstructionCondition",escalatingResourceContestId |-> 51,occurrence |-> event.id,
definition |-> instance.definition,instance |-> instance.member.id,holds |-> ca>=3]
IN /\ EscalatingResourceContestScenarioValid108(s) /\ EscalatingResourceContestRecognitionValid108(q)
/\ Cardinality(q.candidates)=IF s.determined.result="Successful" THEN 2 ELSE 1
/\ \A id \in DOMAIN q.after.instances : q.after.instances[id].status="Pending"
/\ EscalatingResourceContestAssociatedCandidate108(frame,a,event,EscalatingResourceContestAssociatedStipulation108(frame,a,event))
/\ EscalatingResourceContestAssociatedInstructionCondition108(frame,a,event,instance,condition)
/\ condition.holds=(frame.resultEvent.escalatingResourceContestStrength>=5)
/\ EscalatingResourceContestAssociatedMatches108(frame,a)
/\ ~EscalatingResourceContestAssociatedMatches108(s.start.frame,a)
/\ ~EscalatingResourceContestAssociatedCandidate108(frame,a,[event EXCEPT !.escalatingResourceContestId=52],EscalatingResourceContestAssociatedStipulation108(frame,a,event))
/\ ~EscalatingResourceContestAssociatedCandidate108(frame,a,[event EXCEPT !.scopeDefinition=ConditionalKey96(frame.packet.associations[1].definition)],EscalatingResourceContestAssociatedStipulation108(frame,a,event))
/\ ~EscalatingResourceContestAssociatedInstructionCondition108(frame,a,[event EXCEPT !.rawResultId=999],instance,condition)
/\ s.SchemaAtom187.world.objects=s.determinedWorld.objects
/\ LET s==EscalatingResourceContestScenario108("Specimen0229","Pay",3,"Pay",3,FALSE,FALSE)
frame==s.determined
lost==[s.SchemaAtom187.world EXCEPT !.objects=Without101(@,{900})]
q==EscalatingResourceContestResultRecognition108(frame,lost)
IN /\ frame.result="Unsuccessful" /\ frame.resultEvent.escalatingResourceContestStrength=5 /\ EscalatingResourceContestAssociatedBodyGate108(frame,frame.packet.associations[2])
/\ EscalatingResourceContestRecognitionValid108(q) /\ q.candidates={} /\ q.after.instances=Empty10Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalKey96, Empty10, EscalatingResourceContestRecognitionValid108, EscalatingResourceContestResultRecognition108, EscalatingResourceContestScenario108, EscalatingResourceContestScenarioValid108, EscalatingResourceContestAssociatedBodyGate108, EscalatingResourceContestAssociatedCandidate108, EscalatingResourceContestAssociatedInstructionCondition108, EscalatingResourceContestAssociatedMatches108, EscalatingResourceContestAssociatedStipulation108, Without101
EscalatingResourceContestScenario108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestScenario108(profile,cMode,cAmount,rMode,rAmount,exampleFamily065,exampleFamily045) ==
LET w==EscalatingResourceContestWorld108(profile,{},TRUE,exampleFamily065,exampleFamily045)
ctx==EscalatingResourceContestContext108(w,2,EscalatingResourceContestSpecimen0101Associations108)
start==EscalatingResourceContestStart108(w,ctx,51,9001)
initialCP==EscalatingResourceContestCheckpoint108(start.frame,start.world,5100)
order==IF exampleFamily065 THEN <<"SideB","SideA">> ELSE <<"SideA","SideB">>
choose==EscalatingResourceContestChoose108(start.frame,order,5100)
firstWorld==EscalatingResourceContestAt108(EscalatingResourceContestCheckpointWorld108(start.world,initialCP,EscalatingResourceContestLedger108(initialCP)),choose,101)
firstPlayer==order[1]
firstMode==IF firstPlayer="SideA" THEN cMode ELSE rMode
firstAmount==IF firstPlayer="SideA" THEN cAmount ELSE rAmount
first==EscalatingResourceContestOneChoice108(firstWorld,choose,firstMode,firstAmount,EscalatingResourceContestResourceUnitSelection108(firstPlayer,firstAmount),IF firstPlayer="SideA" THEN 7001 ELSE 8001)
secondPlayer==order[2]
secondMode==IF secondPlayer="SideA" THEN cMode ELSE rMode
secondAmount==IF secondPlayer="SideA" THEN cAmount ELSE rAmount
SchemaAtom187==EscalatingResourceContestOneChoice108(first.world,first.after,secondMode,secondAmount,EscalatingResourceContestResourceUnitSelection108(secondPlayer,secondAmount),IF secondPlayer="SideA" THEN 7001 ELSE 8001)
event==EscalatingResourceContestResultEvent108(SchemaAtom187.after,SchemaAtom187.world,9002)
determined==EscalatingResourceContestDetermined108(SchemaAtom187.after,event)
determinedWorld==EscalatingResourceContestAt108(SchemaAtom187.world,determined,108)
completed==[determined EXCEPT !.phase="Complete",!.complete=TRUE]
completedWorld==EscalatingResourceContestAt108(determinedWorld,completed,109)
completion==[tag |-> "OwnedEscalatingResourceContestProcedureReturn",escalatingResourceContestId |-> 51,instance |-> start.frame.instance,caller |-> start.frame.caller,
operation |-> 1,resultEvent |-> event,complete |-> TRUE,unprocessedCheckpointRequests |-> {}]
IN [initial |-> w,context |-> ctx,start |-> start,initialCP |-> initialCP,order |-> order,choose |-> choose,firstWorld |-> firstWorld,
first |-> first,SchemaAtom187 |-> SchemaAtom187,event |-> event,determined |-> determined,determinedWorld |-> determinedWorld,completed |-> completed,completedWorld |-> completedWorld,completion |-> completion]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestAt108, EscalatingResourceContestCheckpoint108, EscalatingResourceContestCheckpointWorld108, EscalatingResourceContestChoose108, EscalatingResourceContestContext108, EscalatingResourceContestDetermined108, EscalatingResourceContestLedger108, EscalatingResourceContestOneChoice108, EscalatingResourceContestResourceUnitSelection108, EscalatingResourceContestResultEvent108, EscalatingResourceContestSpecimen0101Associations108, EscalatingResourceContestStart108, EscalatingResourceContestWorld108
EscalatingResourceContestScenarioValid108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestScenarioValid108(s) ==
/\ BeginEscalatingResourceContest108(s.context,s.context.currentRef,s.initial,1,CardFacts10,51,9001,EscalatingResourceContestPacketFixture108(s.context),s.start.frame,s.start.world.escalatingResourceContestFrames,s.start.history,s.start.event)
/\ DrainEscalatingResourceContestCheckpoint108(s.start.frame,s.choose,EscalatingResourceContestCheckpointWorld108(s.start.world,s.initialCP,EscalatingResourceContestLedger108(s.initialCP)),CardFacts10,s.initialCP,EscalatingResourceContestLedger108(s.initialCP),<<>>,s.order)
/\ EscalatingResourceContestOneChoiceValid108(s.first) /\ EscalatingResourceContestOneChoiceValid108(s.SchemaAtom187)
/\ DetermineEscalatingResourceContest108(s.SchemaAtom187.after,s.determined,s.SchemaAtom187.world,s.SchemaAtom187.world.objects,9002,s.event)
/\ CompleteEscalatingResourceContest108(s.determined,s.completed,s.determinedWorld)
/\ ReturnEscalatingResourceContest108(s.completed,[s.completed EXCEPT !.phase="Returned",!.returned=TRUE],s.completedWorld,s.completion)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestCheckpointWorld108, EscalatingResourceContestLedger108, EscalatingResourceContestOneChoiceValid108, EscalatingResourceContestPacketFixture108, BeginEscalatingResourceContest108, CompleteEscalatingResourceContest108, DetermineEscalatingResourceContest108, DrainEscalatingResourceContestCheckpoint108, ReturnEscalatingResourceContest108, CardFacts10
EscalatingResourceContestSetValid108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestSetValid108(frame,world,link) ==
EstablishEscalatingResourceContestStrength108(frame,EscalatingResourceContestEstablished108(frame,link),world,CardFacts10,LinkBaseFixture107(world),world.linkDeclarations,LinkReadFixture107(world),link)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestEstablished108, LinkBaseFixture107, LinkReadFixture107, EstablishEscalatingResourceContestStrength108, CardFacts10
EscalatingResourceContestSideBSourceChecks108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestSideBSourceChecks108 ==
/\ \A card \in {"Specimen0213","Specimen0052"} :
LET base==IF card="Specimen0213" THEN 5 ELSE 1
initial==EscalatingResourceContestWorld108("Specimen0229",{},FALSE,FALSE,FALSE)
w==[initial EXCEPT !.objects[900]=EscalatingResourceContestCard108(card,TRUE,FALSE),!.controllers[900]="SideB",!.definitions=ReplacementOverlay99(@,[id \in {card} |-> card]),
!.printedLinkAbilities=IF card="Specimen0213" THEN ReplacementOverlay99(@,[id \in {900} |-> 9900]) ELSE @,
!.activeAbilities=IF card="Specimen0213" THEN @ \cup {9900} ELSE @]
effect==[EscalatingResourceContestAtom108(base,Empty10) EXCEPT !.sourceCard=card,!.sourceSHA=CardFacts10[card].sourceSHA]
ctx==[EscalatingResourceContestContext108(w,base,Empty10) EXCEPT !.templates=[id \in {1} |-> effect],!.state.effects=[id \in {1} |-> effect],!.actualEffects=[id \in {1} |-> effect]]
start==EscalatingResourceContestStart108(w,ctx,51,9001)
cp==EscalatingResourceContestCheckpoint108(start.frame,start.world,5100)
choose==EscalatingResourceContestChoose108(start.frame,<<"SideA","SideB">>,5100)
IN /\ BeginEscalatingResourceContest108(ctx,ctx.currentRef,w,1,CardFacts10,51,9001,EscalatingResourceContestPacketFixture108(ctx),start.frame,start.world.escalatingResourceContestFrames,start.history,start.event)
/\ DrainEscalatingResourceContestCheckpoint108(start.frame,choose,EscalatingResourceContestCheckpointWorld108(start.world,cp,EscalatingResourceContestLedger108(cp)),CardFacts10,cp,EscalatingResourceContestLedger108(cp),<<>>,<<"SideA","SideB">>)
/\ choose.nextPlayer="SideA" /\ w.controllers[900]="SideB" /\ choose.packet.base=baseExact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, Empty10, EscalatingResourceContestAtom108, EscalatingResourceContestCard108, EscalatingResourceContestCheckpoint108, EscalatingResourceContestCheckpointWorld108, EscalatingResourceContestChoose108, EscalatingResourceContestContext108, EscalatingResourceContestLedger108, EscalatingResourceContestPacketFixture108, EscalatingResourceContestStart108, EscalatingResourceContestWorld108, BeginEscalatingResourceContest108, DrainEscalatingResourceContestCheckpoint108, CardFacts10
EscalatingResourceContestSnapshot108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestSnapshot108(id,checkpoint,point,definitions,world) ==
[id |-> id,checkpointId |-> checkpoint,point |-> point,definitions |-> definitions,objects |-> world.objects,
present |-> {definitions[key].syntax.id : key \in DOMAIN definitions},
ordinaryActivity |-> [key \in DOMAIN definitions |-> IF definitions[key].syntax.source.object \in DOMAIN world.objects THEN
DefaultActive([world.objects[definitions[key].syntax.source.object] EXCEPT !.card=LinkDefinition107(world,world.objects[definitions[key].syntax.source.object])],world.started,CardFacts10) ELSE FALSE],
cardActivity |-> [object \in DOMAIN world.objects |-> IF world.objects[object].form="Counter" THEN world.objects[object].kind="SchemaAtom043"
ELSE DefaultActive([world.objects[object] EXCEPT !.card=LinkDefinition107(world,world.objects[object])],world.started,CardFacts10)],
activationEpoch |-> [key \in DOMAIN definitions |-> 0],activationSerial |-> 0,activity |-> ActivityContext9,points |-> [p \in SetupPlayers |-> 0],
progress |-> [object \in DOMAIN world.objects |-> 0],link |-> [p \in SetupPlayers |-> IF p="SideB" THEN LinkReadFixture107(world).value ELSE 0],
exposureMarkers |-> [p \in SetupPlayers |-> 0],objectiveCompletionEvents |-> {},usedObjects |-> world.usedObjects,holds |-> Empty10,effects |-> Empty10]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActivityContext9, Empty10, LinkReadFixture107, LinkDefinition107, DefaultActive, SetupPlayers, CardFacts10
EscalatingResourceContestSpecimen0101Associations108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestSpecimen0101Associations108 ==
[id \in {1,2} |-> [id |-> id,trigger |-> IF id=1 THEN "Successful" ELSE "AnyResult",source |-> ObjectAbilitySource9(900),sourceSHA |-> CardFacts10["Specimen0101"].sourceSHA,
definition |-> EscalatingResourceContestConditional108(9100+id,"Specimen0101",IF id=1 THEN "Successful" ELSE "AnyResult"),
bodyCondition |-> IF id=1 THEN [kind |-> "NoValue"] ELSE [kind |-> "EscalatingResourceContestStrengthAtLeast",amount |-> 5]]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, EscalatingResourceContestConditional108, CardFacts10
EscalatingResourceContestSpendEvents108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestSpendEvents108(frame,world,player,amount,transaction) ==
IF amount=0 THEN {} ELSE {[kind |-> "EscalatingResourceContestResourceUnitsSpent",escalatingResourceContestId |-> frame.id,player |-> player,amount |-> amount,transactionId |-> transaction,escalatingResourceContestSource |-> frame.packet.source,beforeSnapshotId |-> world.id]}Exact module download · Source bundle and reproduction instructions
EscalatingResourceContestStart108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestStart108(world,context,id,eventId) ==
LET packet==EscalatingResourceContestPacketFixture108(context)
ordinal==1+Cardinality({old \in DOMAIN world.escalatingResourceContestHistory : world.escalatingResourceContestHistory[old].turnId=world.turn.id})
f==EscalatingResourceContestInitialFrame108(id,packet,world.turn.id,ordinal)
history==ReplacementOverlay99(world.escalatingResourceContestHistory,[i \in {id} |-> [key |-> packet.key,turnId |-> world.turn.id,ordinal |-> ordinal]])
event==[id |-> eventId,kind |-> "EscalatingResourceContestInitiated",escalatingResourceContestId |-> id,actor |-> "SideA",source |-> packet.source,reference |-> context.currentRef,snapshotId |-> world.id]
IN [frame |-> f,history |-> history,event |-> event,world |-> EscalatingResourceContestAt108([world EXCEPT !.escalatingResourceContestHistory=history,!.eventIds=@ \cup {eventId}],f,world.id)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, EscalatingResourceContestAt108, EscalatingResourceContestPacketFixture108, EscalatingResourceContestInitialFrame108
EscalatingResourceContestWalletChecks108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestWalletChecks108 ==
LET s==EscalatingResourceContestScenario108("Specimen0229","Decline",0,"Decline",0,FALSE,FALSE)
f==s.choose
w==EscalatingResourceContestReadyWorld108(s.firstWorld,f,2,7001)
permission==EscalatingResourceContestPermission108(w,f,"SideA",7001)
hosted==[w EXCEPT !.escalatingResourceContestSpendPermissions["SideA"]=[id \in {1} |-> permission]]
payment==EscalatingResourceContestPayment108(f,hosted,"SideA",2,7001,{2300,2301})
wrongPurpose==[hosted EXCEPT !.escalatingResourceContestSpendPermissions["SideA"][1].purpose="Retire"]
wrongTrace==[hosted EXCEPT !.escalatingResourceContestSpendPermissions["SideA"][1].escalatingResourceContestId=52]
inactive==[hosted EXCEPT !.activeAbilities=@ \ {6100}]
foreign==[hosted EXCEPT !.controllers[610]="SideB"]
wrongHost==[hosted EXCEPT !.objects[2300].host=620]
oldFrame==[hosted EXCEPT !.escalatingResourceContestFrames[51].complete=TRUE]
denied==[w EXCEPT !.resourceUnitCost.status="Forbidden"]
IN /\ EscalatingResourceContestPayValid108(f,hosted,2,{2300,2301},7001)
/\ EscalatingResourceContestPermissionUseSources108(payment,hosted.escalatingResourceContestSpendPermissions["SideA"])={ObjectAbilitySource9(610)}
/\ EscalatingResourceContestPermissionUseSources108(EscalatingResourceContestPayment108(f,hosted,"SideA",2,7001,{2000,2001}),hosted.escalatingResourceContestSpendPermissions["SideA"])={}
/\ ~EscalatingResourceContestPayValid108(f,wrongPurpose,2,{2300,2301},7001) /\ ~EscalatingResourceContestPayValid108(f,wrongTrace,2,{2300,2301},7001)
/\ ~EscalatingResourceContestPayValid108(f,inactive,2,{2300,2301},7001) /\ ~EscalatingResourceContestPayValid108(f,foreign,2,{2300,2301},7001)
/\ ~EscalatingResourceContestPayValid108(f,wrongHost,2,{2300,2301},7001) /\ ~EscalatingResourceContestPayValid108(f,oldFrame,2,{2300,2301},7001)
/\ ~EscalatingResourceContestPayValid108(f,[hosted EXCEPT !.escalatingResourceContestSpendPermissions["SideA"][1].snapshotId=99],2,{2300,2301},7001)
/\ ~EscalatingResourceContestPayValid108(f,denied,2,{2000,2001},7001)
/\ ~EscalatingResourceContestPayValid108(f,w,2,{2000},7001) /\ ~EscalatingResourceContestPayValid108(f,w,2,{2100,2101},7001)
/\ ~EscalatingResourceContestPayValid108(f,[w EXCEPT !.resourceUnitCost.snapshotId=99],2,{2000,2001},7001)
/\ ~EscalatingResourceContestPayValid108(f,[w EXCEPT !.usedPayments={7001}],2,{2000,2001},7001)
/\ ~PayEscalatingResourceContestBoost108(f,EscalatingResourceContestPaid108(f,"SideA",2,7001),w,Without101(w.objects,{2000,2001}),"SideA",2,{2000,2001},7001,EscalatingResourceContestPayment108(f,w,"SideA",2,7001,{2000,2001}),
[EscalatingResourceContestAnnouncement108(f,"SideA","Pay",2) EXCEPT !.viewers={"SideA"}],CardFacts10,Empty10,w.usedPayments,Empty10,w.usedObjects,
CheckpointPrinted103,CheckpointOwners103,{},9900,Empty10,Empty10,{},EscalatingResourceContestSpendEvents108(f,w,"SideA",2,7001))
/\ LET rev==EscalatingResourceContestScenario108("Specimen0163","Decline",0,"Decline",0,TRUE,FALSE)
rf==rev.choose
rw==EscalatingResourceContestReadyWorld108(rev.firstWorld,rf,2,8001)
rp==EscalatingResourceContestPermission108(rw,rf,"SideB",8001)
hostedSideB==[rw EXCEPT !.escalatingResourceContestSpendPermissions["SideB"]=[id \in {1} |-> rp]]
outside==[hostedSideB EXCEPT !.traversal=NoTraversal6,!.inside={}]
ended==[hostedSideB EXCEPT !.inside={}]
zero==EscalatingResourceContestReadyWorld108(rev.firstWorld,rf,0,8001)
IN /\ EscalatingResourceContestPayValid108(rf,hostedSideB,2,{2400,2100},8001)
/\ EscalatingResourceContestPayValid108(rf,rw,2,{2200,2100},8001)
/\ ~EscalatingResourceContestPayValid108(rf,outside,2,{2200,2100},8001)
/\ ~EscalatingResourceContestPayValid108(rf,ended,2,{2200,2100},8001) /\ DuringTraversal6(ended.traversal)
/\ EscalatingResourceContestPayValid108(rf,zero,0,{},8001)
/\ ~EscalatingResourceContestPayValid108(rf,[zero EXCEPT !.resourceUnitCost=[id |-> 0]],0,{},8001)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, CheckpointOwners103, CheckpointPrinted103, Empty10, EscalatingResourceContestAnnouncement108, EscalatingResourceContestPaid108, EscalatingResourceContestPayValid108, EscalatingResourceContestPayment108, EscalatingResourceContestPermission108, EscalatingResourceContestReadyWorld108, EscalatingResourceContestScenario108, EscalatingResourceContestSpendEvents108, EscalatingResourceContestPermissionUseSources108, PayEscalatingResourceContestBoost108, Without101, CardFacts10, DuringTraversal6, NoTraversal6
EscalatingResourceContestWorld108 · operator
reference-profile · input revision 2 · CC0 1.0
EscalatingResourceContestWorld108(profile,deployed,during,exampleFamily065,exampleFamily045) ==
LET b==LinkDeclaredWorld107(LinkWorld107(profile,deployed,FALSE))
objects==ReplacementOverlay99([b.objects EXCEPT ![70].zone=IF exampleFamily045 THEN "SideAObjectiveCompletion" ELSE "SideADiscard"],[id \in {600,610,620,630,900} \cup (2000..2004) \cup (2100..2104) \cup {2200,2201,2300,2301,2302,2400} |->
CASE id=600 -> EscalatingResourceContestCard108("Specimen0231",FALSE,FALSE)
[] id=610 -> EscalatingResourceContestCard108("Specimen0184",TRUE,TRUE)
[] id=620 -> EscalatingResourceContestCard108("Specimen0056",TRUE,FALSE)
[] id=630 -> [EscalatingResourceContestCard108("Specimen0182",FALSE,FALSE) EXCEPT !.zone="Outside"]
[] id=900 -> EscalatingResourceContestCard108("Specimen0101",TRUE,TRUE)
[] id \in 2000..2004 -> ExposureMarkerTokenFixture105("ResourceUnit","SideAResourceUnits",0,FALSE)
[] id \in 2100..2104 -> ExposureMarkerTokenFixture105("ResourceUnit","SideBResourceUnits",0,FALSE)
[] id \in {2200,2201} -> LiabilityMarkerFundRow106
[] id \in {2300,2301,2302} -> ExposureMarkerTokenFixture105("ResourceUnit","Play",610,FALSE)
[] OTHER -> ExposureMarkerTokenFixture105("ResourceUnit","Play",620,FALSE)])
defs==ReplacementOverlay99(b.definitions,[card \in {"Specimen0231","Specimen0184","Specimen0056","Specimen0182","Specimen0101"} |-> card])
r==IF during THEN [OpenTraversal6(1,10,"EscalatingResourceContestTraversalCaller") EXCEPT !.formalBegun=TRUE,!.phase="Encounter",!.step="ProcedureCode8b3260c0010f",!.attacked="SchemaAtom082"] ELSE NoTraversal6
IN ReplacementOverlay99([b EXCEPT !.objects=objects,!.definitions=defs,!.controllers=[id \in DOMAIN objects |-> IF id \in DOMAIN b.controllers THEN b.controllers[id]
ELSE IF id \in {600,610,900,2300,2301,2302} \cup (2000..2004) THEN "SideA" ELSE "SideB"],
!.activeAbilities=@ \cup {6100,6200} \cup (IF exampleFamily065 THEN {6000} ELSE {}) \cup (IF exampleFamily045 THEN {7000} ELSE {})]
,[started |-> TRUE,outcome |-> "Playing",turn |-> [OpenTurn5("SideB",1,[p \in SetupPlayers |-> 0]) EXCEPT !.phase="NeutralValue00001"],
traversal |-> r,inside |-> IF during THEN {TimingRef9("SchemaAtom138",1)} ELSE {},
escalatingResourceContestFrames |-> Empty10,escalatingResourceContestHistory |-> Empty10,checkpointFrames |-> Empty10,checkpointLedger |-> [checkpoints |-> Empty10,instances |-> Empty10],eventIds |-> {},usedPayments |-> {},usedObjects |-> DOMAIN objects,
abilitySources |-> [id \in {6000,6100,6200,7000} |-> ObjectAbilitySource9(IF id=6000 THEN 600 ELSE IF id=6100 THEN 610 ELSE IF id=6200 THEN 620 ELSE 70)],
abilityRoles |-> [id \in {6000,6100,6200,7000} |-> IF id=6000 THEN "EscalatingResourceContestOrder" ELSE IF id=7000 THEN "EscalatingResourceContestLinkZero" ELSE "EscalatingResourceContestPermission"],
escalatingResourceContestOrderPolicies |-> Empty10,escalatingResourceContestLinkPolicies |-> Empty10,escalatingResourceContestSpendPermissions |-> [p \in SetupPlayers |-> Empty10],resourceUnitCost |-> [id |-> 0]])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, ReplacementOverlay99, TimingRef9, Empty10, EscalatingResourceContestCard108, ExposureMarkerTokenFixture105, LinkDeclaredWorld107, LinkWorld107, LiabilityMarkerFundRow106, SetupPlayers, NoTraversal6, OpenTraversal6, OpenTurn5
ExampleFamily009AuthorityFixture104 · operator
reference-profile · input revision 2 · CC0 1.0
ExampleFamily009AuthorityFixture104(packet,objects) ==
[id |-> 71,tag |-> "SourceBoundDamageSelectionOverride",packet |-> packet.key,reference |-> packet.reference,snapshotId |-> packet.snapshotId,
source |-> ObjectAbilitySource9(50),card |-> "Specimen0051",sourceSHA |-> CardFacts10["Specimen0051"].sourceSHA,
sourceObject |-> objects[50],slots |-> [i \in 1..packet.amount |-> IF i=1 THEN [mode |-> "Choose",actor |-> "SideA"] ELSE [mode |-> "Random",actor |-> packet.responsible]]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, CardFacts10
ExampleFamily011PermissionFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExampleFamily011PermissionFixture105(world) ==
[action |-> "RemoveExposureMarker",player |-> "SideB",paymentId |-> 600,snapshotId |-> world.id,allowsPayment |-> TRUE,
source |-> ObjectAbilitySource9(11),sourceObject |-> world.objects[11],sourceSHA |-> CardFacts10["Specimen0058"].sourceSHA,paidCounters |-> {40,41}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, CardFacts10
ExampleFamily049ChargeFixture1010 · operator
reference-profile · input revision 2 · CC0 1.0
ExampleFamily049ChargeFixture1010 ==
LET base==ChargeWorld1010("Specimen0201")
bHand==[EscalatingResourceContestCard108("Specimen0114",FALSE,FALSE) EXCEPT !.zone="SideBHand",!.face="NA"]
before==[base EXCEPT !.objects=ReplacementOverlay99(@,[id \in {810} |-> bHand]),!.controllers=ReplacementOverlay99(@,[id \in {810} |-> "SideB"]),
!.definitions=ReplacementOverlay99(@,[id \in {"Specimen0114"} |-> "Specimen0114"]),!.usedObjects=@ \cup {810}]
playSource==ObjectAbilitySource9(800)
deployPlan==OpenInstruction93(499,"Ability",8000,playSource,"Play",1,"NoValue",<<"Deploy">>,TRUE)
deployRef==InstructionWindowRef93(deployPlan)
deployedRow==[bHand EXCEPT !.zone="Play",!.loc=0,!.face="Up",!.marks={}]
moved==ReplacementOverlay99(Without101(before.objects,{810}),[id \in {811} |-> deployedRow])
deployed==[before EXCEPT !.id=101,!.objects=ReplacementOverlay99(moved,[id \in {811} |-> [deployedRow EXCEPT !.deployed=TRUE]]),
!.controllers=ReplacementOverlay99(Without101(@,{810}),[id \in {811} |-> "SideB"]),!.usedObjects=@ \cup {811}]
reference==[tag |-> "InstructionDeployedObject",source |-> playSource,fromInstruction |-> deployRef,oldObject |-> 810,object |-> 811,physical |-> "Specimen0114"]
ability==[OpenAbilityResolution9(8000,"Play",playSource,"Play",<<499,500>>,7000) EXCEPT !.phase="Between",!.firstImminent=TRUE]
cohort==[playId |-> 7700,id |-> 8000,source |-> playSource,transaction |-> 7000,owner |-> [windowId |-> 7000],ability |-> ability]
caller==PlayInstructionCaller97(cohort)
d==ReboundConditionalDefinition96([EscalatingResourceContestConditional108(19900,"Specimen0114","AnyResult") EXCEPT !.trigger.kinds={"Deployed"},!.trigger.subject="SchemaAtom149"],811)
definitions==[key \in {ConditionalKey96(d)} |-> d]
snapshot==EscalatingResourceContestSnapshot108(deployed.id,0,"Deployed",definitions,deployed)
occurrence==EscalatingResourceContestOccurrenceBase108(6600,"Deployed",811,"SideB","SideB",snapshot,6600)
stipulation==[tag |-> "ConditionalTriggerStipulations",ability |-> 19900,source |-> ObjectAbilitySource9(811),occurrence |-> 6600,snapshotId |-> deployed.id,results |-> Empty10]
conditions==[key \in DOMAIN definitions |-> [id \in {6600} |-> stipulation]]
q==EscalatingResourceContestRecognition108(definitions,deployed,[id \in {6600} |-> occurrence],conditions,6200,caller)
instance==CHOOSE id \in DOMAIN q.after.instances : TRUE
powerRef==InstructionWindowRef93(OpenInstruction93(700,"Ability",instance,ObjectAbilitySource9(811),"Play",1,"NoValue",<<"PlacePower">>,FALSE))
effect==[id |-> 1,kind |-> "PlaceCounters",value |-> 1,actor |-> "SideB",baseOrigin |-> ObjectAbilitySource9(811),sourceCard |-> "Specimen0114",sourceSHA |-> CardFacts10["Specimen0114"].sourceSHA,
target |-> 811,counterKind |-> "Power",counterKinds |-> {"Power"},loadDefinition |-> 0]
context==[id |-> 101030,phase |-> "Resolving",currentRef |-> powerRef,currentWorld |-> deployed.id,templates |-> [id \in {1} |-> effect],state |-> [effects |-> [id \in {1} |-> effect]],actualEffects |-> [id \in {1} |-> effect]]
added==[id \in {2000} |-> LoadedCounterToken109("Power","Play",811,"SideB")]
afterPower==[deployed EXCEPT !.id=102,!.objects=ReplacementOverlay99(@,added),!.controllers=ReplacementOverlay99(@,[id \in {2000} |-> "SideB"]),!.usedObjects=@ \cup {2000},!.nextCounterObject=2001,
!.completedCounterInstructions=@ \cup {CounterInstructionKey109(context,powerRef,1)},!.counterEventIds=@ \cup {109999}]
counterEvent==[tag |-> "HostedCounterInstructionComplete",id |-> 109999,operation |-> "PlaceCounters",reference |-> powerRef,host |-> 811,kind |-> "Power",amount |-> 1,
selected |-> {},created |-> {2000},snapshotId |-> deployed.id,complete |-> TRUE]
ledger==[q.after EXCEPT !.instances=[id \in DOMAIN @ |-> [@[id] EXCEPT !.status="Complete"]]]
cp==[NewCheckpoint103(6200,caller,deployed.id,{}) EXCEPT !.phase="Returned",!.point="ProcedureCodeb74d673a0fc6",!.owed= <<>>,!.done=CheckpointStageSet103,!.returned=TRUE,
!.recognition=q.cp,!.recognized=CheckpointMemberMap103(ledger,6200)]
ready==ReplacementOverlay99(afterPower,[instructionCheckpoints |-> [id \in {6200} |-> cp],conditionalLedger |-> ledger])
plan==OpenInstruction93(500,"Ability",8000,playSource,"Play",2,"NoValue",<<"Charge">>,FALSE)
spec==ChargeSpecFixture1010(ready,plan,"Specimen0201","Particular",1,reference.object)
world==[ready EXCEPT !.chargeSpecs=[key \in {ChargeSpecKey1010(spec.reference)} |-> spec]]
imminent==[plan EXCEPT !.phase="Imminent"]
imminentAbility==[ability EXCEPT !.cursor=2,!.phase="Imminent"]
admission==[tag |-> "ChargeAtImminence",reference |-> InstructionWindowRef93(imminent),snapshotId |-> world.id,spec |-> spec,announced |-> {},
initialPower |-> [id \in {811} |-> TRUE],physical |-> [id \in {811} |-> "Specimen0114"]]
charge==[world |-> world,plan |-> plan,spec |-> spec,ability |-> ability,announced |-> plan,imminent |-> imminent,imminentAbility |-> imminentAbility,admission |-> admission]
IN [before |-> before,moved |-> moved,deployed |-> deployed,deployRef |-> deployRef,reference |-> reference,context |-> context,afterPower |-> afterPower,added |-> added,counterEvent |-> counterEvent,
q |-> q,cp |-> cp,ledger |-> ledger,cohort |-> cohort,charge |-> charge]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalKey96, InstructionWindowRef93, ObjectAbilitySource9, OpenAbilityResolution9, OpenInstruction93, PlayInstructionCaller97, ReboundConditionalDefinition96, ReplacementOverlay99, ChargeSpecFixture1010, ChargeWorld1010, Empty10, EscalatingResourceContestCard108, EscalatingResourceContestConditional108, EscalatingResourceContestOccurrenceBase108, EscalatingResourceContestRecognition108, EscalatingResourceContestSnapshot108, ChargeSpecKey1010, CheckpointMemberMap103, CheckpointStageSet103, CounterInstructionKey109, LoadedCounterToken109, NewCheckpoint103, Without101, CardFacts10
ExampleFamily094WorldFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExampleFamily094WorldFixture105(kind,front,chosen) ==
LET base==ExposureMarkerWorldFixture105(ExposureMarkerActionActor105(kind),1,FALSE)
live==[base EXCEPT !.objects[50].zone="Play",!.objects[50].front=front,!.activeSources=@ \cup {50}]
delta==IF front THEN IF kind="RemoveExposureMarker" THEN 1 ELSE 0 ELSE IF kind="RetireResource" /\ chosen THEN -2 ELSE 0
modifier==[snapshotId |-> 100,action |-> kind,source |-> ObjectAbilitySource9(50),sourceObject |-> live.objects[50],sourceSHA |-> CardFacts10["Specimen0233"].sourceSHA,
chosenReduction |-> chosen,delta |-> delta]
IN [live EXCEPT !.exposureMarkerCostModifiers[kind]=[id \in {77} |-> modifier]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, ExposureMarkerWorldFixture105, ExposureMarkerActionActor105, CardFacts10
ExposureMarkerActionAdmissionChecks105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerActionAdmissionChecks105 ==
/\ \A kind \in {"RetireResource","RemoveExposureMarker"}, count \in 0..1, pap \in BOOLEAN :
LET f==ExposureMarkerActionFixture105(kind,count,pap)
allowed==kind="RemoveExposureMarker" \/ count>0 \/ pap
IN IF allowed THEN ExposureMarkerReserveValid105(f) /\ ExposureMarkerPayValid105(f) ELSE ~ExposureMarkerReserveValid105(f) /\ ~ExposureMarkerPayValid105(f)
/\ LET f==ExposureMarkerActionFixture105("RemoveExposureMarker",0,FALSE)
cp==ExposureMarkerCheckpointFixture105(f.paid,f.afterWorld,"BaseCost",501)
targeted==ExposureMarkerTargetedFixture105(f.targets,0)
ready==ExposureMarkerEffectReadyFixture105(targeted,FALSE,Empty10)
returned==[ready EXCEPT !.phase="EffectCheckpoint"]
after==[returned EXCEPT !.phase="Complete",!.action.status="Complete"]
finalCp==ExposureMarkerCheckpointFixture105(returned,f.afterWorld,"Effect",502)
receipt==[tag |-> "PriorityOptionReturn",windowId |-> 10501,option |-> f.reserved.option,transactionId |-> 600,
triggerPayment |-> [tag |-> "PriorityOptionPayment",windowId |-> 10501,option |-> f.reserved.option,transactionId |-> 600,
allTriggerCostsPaid |-> TRUE,costCheckpointAndReactionsDrained |-> TRUE],
allCostsPaid |-> TRUE,optionComplete |-> TRUE,childrenReturned |-> TRUE,reactionsDrained |-> TRUE]
IN /\ ~BasicActionLocalGate5("SideB","RemoveExposureMarker",FALSE) /\ ExposureMarkerReserveValid105(f) /\ ExposureMarkerPayValid105(f)
/\ DrainExposureMarkerAction105(f.paid,f.targets,f.afterWorld,cp,ExposureMarkerCheckpointLedger105(cp),<<f.busy>>)
/\ ~DrainExposureMarkerAction105(f.paid,f.targets,f.afterWorld,[cp EXCEPT !.returned=FALSE],ExposureMarkerCheckpointLedger105(cp),<<f.busy>>)
/\ ~AnnounceExposureMarkerTarget105(f.paid,targeted,f.afterWorld,0,8000)
/\ AnnounceExposureMarkerTarget105(f.targets,targeted,f.afterWorld,0,8000)
/\ PrepareExposureMarkerEffect105(targeted,ready,f.afterWorld,ExposureMarkerEffectContext105(targeted,f.afterWorld,FALSE),ExposureMarkerEffectRef105(targeted),1,CardFacts10)
/\ ResolveExposureMarkerAction105(ready,returned,f.afterWorld,f.afterWorld.objects,Empty10,DOMAIN f.afterWorld.objects,CheckpointPrinted103,CheckpointOwners103,{},800,
Empty10,Empty10,Empty10,Empty10,{})
/\ f.afterWorld.actionPoints["SideB"]=2 /\ {30,31} \cap DOMAIN f.afterWorld.objects={}
/\ DrainExposureMarkerAction105(returned,after,f.afterWorld,finalCp,ExposureMarkerCheckpointLedger105(finalCp),<<f.busy>>)
/\ ReturnExposureMarkerAction105(after,<<f.busy>>,<<CompletePriorityOptionFrame9(f.busy)>>,receipt)
/\ ~ReturnExposureMarkerAction105(returned,<<f.busy>>,<<CompletePriorityOptionFrame9(f.busy)>>,receipt)
/\ LET f==ExposureMarkerActionFixture105("RetireResource",1,FALSE)
noTargetWorld==[f.world EXCEPT !.objects[11].deployed=FALSE,!.objects[11].zone="SideBDiscard",!.activeSources={}]
noTargetAfter==ExposureMarkerAfterPaymentWorld105(noTargetWorld,"SideA",{20,21})
payment==ExposureMarkerPaymentFixture105(f.reserved,noTargetWorld,noTargetAfter,{20,21},2)
paid==ExposureMarkerPaidFixture105(f.reserved,noTargetWorld,payment)
targets==ExposureMarkerTargetsFrame105(paid)
target==ExposureMarkerTargetedFixture105(targets,0)
ready==ExposureMarkerEffectReadyFixture105(target,FALSE,Empty10)
after==[ready EXCEPT !.phase="EffectCheckpoint"]
IN /\ ResourceTargetIds105(noTargetWorld)={}
/\ PayExposureMarkerAction105(f.reserved,paid,<<f.busy>>,noTargetWorld,noTargetAfter,Empty10,Empty10,CardFacts10,Empty10,Empty10,{20,21},payment)
/\ AnnounceExposureMarkerTarget105(targets,target,noTargetAfter,0,8000)
/\ PrepareExposureMarkerEffect105(target,ready,noTargetAfter,ExposureMarkerEffectContext105(target,noTargetAfter,FALSE),ExposureMarkerEffectRef105(target),1,CardFacts10)
/\ ResolveExposureMarkerAction105(ready,after,noTargetAfter,noTargetAfter.objects,Empty10,DOMAIN noTargetAfter.objects,CheckpointPrinted103,CheckpointOwners103,{},800,Empty10,Empty10,Empty10,Empty10,{})
/\ LET f==ExposureMarkerActionFixture105("RetireResource",1,FALSE)
lostBeforePay==[f.world EXCEPT !.id=101,!.objects=Without101(@,{1}),!.controllers=Without101(@,{1})]
afterLostPay==ExposureMarkerAfterPaymentWorld105(lostBeforePay,"SideA",{20,21})
lostPayment==ExposureMarkerPaymentFixture105(f.reserved,lostBeforePay,afterLostPay,{20,21},2)
lostPaid==ExposureMarkerPaidFixture105(f.reserved,lostBeforePay,lostPayment)
shortAfter==ExposureMarkerAfterPaymentWorld105(f.world,"SideA",{20})
shortPayment==ExposureMarkerPaymentFixture105(f.reserved,f.world,shortAfter,{20},2)
otherAfter==ExposureMarkerAfterPaymentWorld105(f.world,"SideA",{30,31})
otherPayment==ExposureMarkerPaymentFixture105(f.reserved,f.world,otherAfter,{30,31},2)
IN /\ ~PayExposureMarkerAction105(f.reserved,lostPaid,<<f.busy>>,lostBeforePay,afterLostPay,Empty10,Empty10,CardFacts10,Empty10,Empty10,{20,21},lostPayment)
/\ ~PayExposureMarkerAction105(f.reserved,ExposureMarkerPaidFixture105(f.reserved,f.world,shortPayment),<<f.busy>>,f.world,shortAfter,Empty10,Empty10,CardFacts10,Empty10,Empty10,{20},shortPayment)
/\ ~PayExposureMarkerAction105(f.reserved,ExposureMarkerPaidFixture105(f.reserved,f.world,otherPayment),<<f.busy>>,f.world,otherAfter,Empty10,Empty10,CardFacts10,Empty10,Empty10,{30,31},otherPayment)
/\ ~ExposureMarkerReserveValid105([f EXCEPT !.world.turn.phase="Discard"])
/\ ~ExposureMarkerReserveValid105([f EXCEPT !.world.actionPoints["SideA"]=0])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CompletePriorityOptionFrame9, CheckpointOwners103, CheckpointPrinted103, Empty10, ExposureMarkerActionFixture105, ExposureMarkerAfterPaymentWorld105, ExposureMarkerCheckpointFixture105, ExposureMarkerCheckpointLedger105, ExposureMarkerEffectContext105, ExposureMarkerEffectReadyFixture105, ExposureMarkerEffectRef105, ExposureMarkerPaidFixture105, ExposureMarkerPayValid105, ExposureMarkerPaymentFixture105, ExposureMarkerReserveValid105, ExposureMarkerTargetedFixture105, ExposureMarkerTargetsFrame105, AnnounceExposureMarkerTarget105, DrainExposureMarkerAction105, PayExposureMarkerAction105, PrepareExposureMarkerEffect105, ResolveExposureMarkerAction105, ResourceTargetIds105, ReturnExposureMarkerAction105, Without101, CardFacts10, BasicActionLocalGate5
ExposureMarkerActionFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerActionFixture105(kind,count,Specimen0173) ==
LET world==ExposureMarkerWorldFixture105(ExposureMarkerActionActor105(kind),count,Specimen0173)
selected==IF kind="RetireResource" THEN {20,21} ELSE {30,31}
reserved==ExposureMarkerReservedFixture105(kind)
afterWorld==ExposureMarkerAfterPaymentWorld105(world,reserved.player,selected)
payment==ExposureMarkerPaymentFixture105(reserved,world,afterWorld,selected,2)
paid==ExposureMarkerPaidFixture105(reserved,world,payment)
IN [world |-> world,selected |-> selected,reserved |-> reserved,afterWorld |-> afterWorld,payment |-> payment,paid |-> paid,
busy |-> ExposureMarkerBusyFixture105(world,kind),targets |-> ExposureMarkerTargetsFrame105(paid)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExposureMarkerAfterPaymentWorld105, ExposureMarkerBusyFixture105, ExposureMarkerPaidFixture105, ExposureMarkerPaymentFixture105, ExposureMarkerReservedFixture105, ExposureMarkerTargetsFrame105, ExposureMarkerWorldFixture105, ExposureMarkerActionActor105
ExposureMarkerActionPostCostChecks105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerActionPostCostChecks105 ==
LET f==ExposureMarkerActionFixture105("RetireResource",1,FALSE)
lostAfterCost==[f.afterWorld EXCEPT !.id=102,!.objects=Without101(@,{1}),!.controllers=Without101(@,{1})]
cp==ExposureMarkerCheckpointFixture105(f.paid,lostAfterCost,"BaseCost",501)
target==ExposureMarkerTargetedFixture105(f.targets,11)
ready==ExposureMarkerEffectReadyFixture105(target,FALSE,Empty10)
successors==[id \in {11} |-> 111]
trashed==CheckpointRetireMap103(lostAfterCost.objects,{11},successors,CheckpointPrinted103,CheckpointOwners103,{11})
move==MovementEvent8(810,"Retire",{11})
history==[id \in {810} |-> move]
departures==[id \in {<<"Movement",810>>} |-> [source |-> 11,objectiveCompletionLeft |-> FALSE,uninstalled |-> TRUE,hostRemoved |-> TRUE,children |-> {40,41}]]
done==[ready EXCEPT !.phase="EffectCheckpoint"]
pap==ExposureMarkerActionFixture105("RetireResource",0,TRUE)
papTarget==ExposureMarkerTargetedFixture105(pap.targets,10)
papReady==ExposureMarkerEffectReadyFixture105(papTarget,FALSE,Empty10)
papNext==[id \in {10} |-> 110]
papRetire==CheckpointRetireMap103(pap.afterWorld.objects,{10},papNext,CheckpointPrinted103,CheckpointOwners103,{10})
papMove==MovementEvent8(811,"Retire",{10})
papDepart==[id \in {<<"Movement",811>>} |-> [source |-> 10,objectiveCompletionLeft |-> FALSE,uninstalled |-> TRUE,hostRemoved |-> TRUE,children |-> {}]]
papAfterWorld==[pap.afterWorld EXCEPT !.id=103,!.objects=papRetire]
zero==ExposureMarkerActionFixture105("RemoveExposureMarker",0,FALSE)
addedAfterCost==[zero.afterWorld EXCEPT !.id=102,!.objects=ReplacementOverlay99(@,[id \in {2} |-> ExposureMarkerCounterRow105]),!.controllers=ReplacementOverlay99(@,[id \in {2} |-> "SideB"])]
zeroCP==ExposureMarkerCheckpointFixture105(zero.paid,addedAfterCost,"BaseCost",512)
zeroTarget==ExposureMarkerTargetedFixture105(zero.targets,2)
zeroReady==ExposureMarkerEffectReadyFixture105(zeroTarget,FALSE,Empty10)
IN /\ ~ExposureMarkerStateView105(lostAfterCost.objects,Empty10).hasExposureMarkers
/\ DrainExposureMarkerAction105(f.paid,f.targets,lostAfterCost,cp,ExposureMarkerCheckpointLedger105(cp),<<f.busy>>)
/\ AnnounceExposureMarkerTarget105(f.targets,target,lostAfterCost,11,8000)
/\ PrepareExposureMarkerEffect105(target,ready,lostAfterCost,ExposureMarkerEffectContext105(target,lostAfterCost,FALSE),ExposureMarkerEffectRef105(target),1,CardFacts10)
/\ ResolveExposureMarkerAction105(ready,done,lostAfterCost,trashed,successors,DOMAIN lostAfterCost.objects,CheckpointPrinted103,CheckpointOwners103,{11},810,
Empty10,history,Empty10,departures,{move})
/\ trashed[111].marks={} /\ departures[<<"Movement",810>>].children={40,41}
/\ AnnounceExposureMarkerTarget105(pap.targets,papTarget,pap.afterWorld,10,8000)
/\ PrepareExposureMarkerEffect105(papTarget,papReady,pap.afterWorld,ExposureMarkerEffectContext105(papTarget,pap.afterWorld,FALSE),ExposureMarkerEffectRef105(papTarget),1,CardFacts10)
/\ ResolveExposureMarkerAction105(papReady,[papReady EXCEPT !.phase="EffectCheckpoint"],pap.afterWorld,papRetire,papNext,DOMAIN pap.afterWorld.objects,
CheckpointPrinted103,CheckpointOwners103,{10},811,Empty10,[id \in {811} |-> papMove],Empty10,papDepart,{papMove})
/\ ExposureMarkerDeclarationsFixture105(papAfterWorld)=Empty10 /\ CurrentExposureMarkerState105(papAfterWorld,Empty10,CardFacts10,ExposureMarkerStateView105(papRetire,Empty10))
/\ ~ExposureMarkerStateView105(papRetire,Empty10).hasExposureMarkers /\ ExposureMarkerQuantity105(papRetire)=0
/\ DrainExposureMarkerAction105(zero.paid,zero.targets,addedAfterCost,zeroCP,ExposureMarkerCheckpointLedger105(zeroCP),<<zero.busy>>)
/\ AnnounceExposureMarkerTarget105(zero.targets,zeroTarget,addedAfterCost,2,8000)
/\ PrepareExposureMarkerEffect105(zeroTarget,zeroReady,addedAfterCost,ExposureMarkerEffectContext105(zeroTarget,addedAfterCost,FALSE),ExposureMarkerEffectRef105(zeroTarget),1,CardFacts10)
/\ ResolveExposureMarkerAction105(zeroReady,[zeroReady EXCEPT !.phase="EffectCheckpoint"],addedAfterCost,Without101(addedAfterCost.objects,{2}),Empty10,
DOMAIN addedAfterCost.objects,CheckpointPrinted103,CheckpointOwners103,{},812,Empty10,Empty10,Empty10,Empty10,{[tag |-> "ExposureMarkerRemoved",actionId |-> 7000,player |-> "SideB",counter |-> 2]})
/\ LET removeCase==ExposureMarkerActionFixture105("RemoveExposureMarker",1,FALSE)
removeTarget==ExposureMarkerTargetedFixture105(removeCase.targets,1)
removeReady==ExposureMarkerEffectReadyFixture105(removeTarget,FALSE,Empty10)
kept==ExposureMarkerEffectReadyFixture105(removeTarget,TRUE,Empty10)
event==[tag |-> "ExposureMarkerRemoved",actionId |-> 7000,player |-> "SideB",counter |-> 1]
IN /\ AnnounceExposureMarkerTarget105(removeCase.targets,removeTarget,removeCase.afterWorld,1,8000)
/\ PrepareExposureMarkerEffect105(removeTarget,removeReady,removeCase.afterWorld,ExposureMarkerEffectContext105(removeTarget,removeCase.afterWorld,FALSE),ExposureMarkerEffectRef105(removeTarget),1,CardFacts10)
/\ ResolveExposureMarkerAction105(removeReady,[removeReady EXCEPT !.phase="EffectCheckpoint"],removeCase.afterWorld,Without101(removeCase.afterWorld.objects,{1}),Empty10,DOMAIN removeCase.afterWorld.objects,
CheckpointPrinted103,CheckpointOwners103,{},820,Empty10,Empty10,Empty10,Empty10,{event})
/\ ~ResolveExposureMarkerAction105(removeReady,[removeReady EXCEPT !.phase="EffectCheckpoint"],removeCase.afterWorld,removeCase.afterWorld.objects,Empty10,DOMAIN removeCase.afterWorld.objects,
CheckpointPrinted103,CheckpointOwners103,{},820,Empty10,Empty10,Empty10,Empty10,{})
/\ PrepareExposureMarkerEffect105(removeTarget,kept,removeCase.afterWorld,ExposureMarkerEffectContext105(removeTarget,removeCase.afterWorld,TRUE),ExposureMarkerEffectRef105(removeTarget),1,CardFacts10)
/\ ResolveExposureMarkerAction105(kept,[kept EXCEPT !.phase="EffectCheckpoint"],removeCase.afterWorld,removeCase.afterWorld.objects,Empty10,DOMAIN removeCase.afterWorld.objects,
CheckpointPrinted103,CheckpointOwners103,{},820,Empty10,Empty10,Empty10,Empty10,{})Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, CheckpointOwners103, CheckpointPrinted103, Empty10, ExposureMarkerActionFixture105, ExposureMarkerCheckpointFixture105, ExposureMarkerCheckpointLedger105, ExposureMarkerDeclarationsFixture105, ExposureMarkerEffectContext105, ExposureMarkerEffectReadyFixture105, ExposureMarkerEffectRef105, ExposureMarkerTargetedFixture105, AnnounceExposureMarkerTarget105, CheckpointRetireMap103, CurrentExposureMarkerState105, DrainExposureMarkerAction105, ExposureMarkerCounterRow105, ExposureMarkerQuantity105, ExposureMarkerStateView105, PrepareExposureMarkerEffect105, ResolveExposureMarkerAction105, Without101, MovementEvent8, CardFacts10
ExposureMarkerAdditionalCostChecks105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerAdditionalCostChecks105 ==
LET world==ExtraWorldFixture105
reserved==ExposureMarkerReservedFixture105("RetireResource")
afterBase==ExposureMarkerAfterPaymentWorld105(world,"SideA",{20,21})
payment==ExposureMarkerPaymentFixture105(reserved,world,afterBase,{20,21},2)
paid==ExposureMarkerPaidFixture105(reserved,world,payment)
targets==ExposureMarkerTargetsFrame105(paid)
target==ExposureMarkerTargetedFixture105(targets,12)
current==[afterBase EXCEPT !.additionalResourceCosts=ResourceCostsFixture105(afterBase)]
costs==current.additionalResourceCosts
prepared==ExposureMarkerEffectReadyFixture105(target,FALSE,costs)
removedBeforeCosts==ExposureMarkerEffectReadyFixture105(target,TRUE,Empty10)
assignments==[cost \in {1,2} |-> IF cost=1 THEN {60} ELSE {61}]
successors==[id \in {60,61} |-> id+100]
eventIds==[cost \in {1,2} |-> cost+899]
history==CentralACostHistory105(assignments,eventIds)
events=={history[id] : id \in DOMAIN history}
afterCentralA==CentralACostAfterWorld105(current,{60,61},successors)
nested==[prepared EXCEPT !.phase="AdditionalCostCheckpoint",!.nestedTransaction=601]
ready==[nested EXCEPT !.phase="EffectReady"]
declined==[prepared EXCEPT !.phase="EffectReady",!.effective.mode="Removed"]
lost==[afterCentralA EXCEPT !.id=103,!.objects=ReplacementOverlay99(Without101(@,{12}),[id \in {212} |-> ExposureMarkerCardFixture105("Specimen0136","SideBHand",FALSE)]),
!.controllers=ReplacementOverlay99(Without101(@,{12}),[id \in {212} |-> "SideB"]),!.activeSources=@ \ {12}]
cp==ExposureMarkerCheckpointFixture105(nested,lost,"AdditionalCost",531)
singleSuccessor==[id \in {60} |-> 160]
singleAfter==CentralACostAfterWorld105(current,{60},singleSuccessor)
doubleUse==[cost \in {1,2} |-> {60}]
doubleHistory==CentralACostHistory105(doubleUse,eventIds)
partialAssign==[cost \in {1} |-> {60}]
partialEvents==[cost \in {1} |-> 900]
partialHistory==CentralACostHistory105(partialAssign,partialEvents)
missingKnownCosts==[id \in {1} |-> costs[id]]
missingKnownWorld==[current EXCEPT !.additionalResourceCosts=missingKnownCosts]
blocked==[afterCentralA EXCEPT !.id=103,!.currentRetireProhibitions={12}]
protectedCP==ExposureMarkerCheckpointFixture105(nested,blocked,"AdditionalCost",532)
resourceSuccessor==[id \in {12} |-> 112]
actualRetire==CheckpointRetireMap103(afterCentralA.objects,{12},resourceSuccessor,CheckpointPrinted103,CheckpointOwners103,{12})
resourceMove==MovementEvent8(902,"Retire",{12})
trashHistory==ReplacementOverlay99(history,[id \in {902} |-> resourceMove])
departure==[id \in {<<"Movement",902>>} |-> [source |-> 12,objectiveCompletionLeft |-> FALSE,uninstalled |-> TRUE,hostRemoved |-> TRUE,children |-> {}]]
IN /\ PayExposureMarkerAction105(reserved,paid,<<ExposureMarkerBusyFixture105(world,"RetireResource")>>,world,afterBase,Empty10,Empty10,CardFacts10,Empty10,Empty10,{20,21},payment)
/\ afterBase.objects[60]=world.objects[60] /\ afterBase.objects[61]=world.objects[61]
/\ AnnounceExposureMarkerTarget105(targets,target,current,12,8000)
/\ PrepareExposureMarkerEffect105(target,prepared,current,ExposureMarkerEffectContext105(target,current,FALSE),ExposureMarkerEffectRef105(target),1,CardFacts10)
/\ PreventExpectedWhole99([id \in {1} |-> ExposureMarkerEffectAtom105(target)],Empty10,1)
/\ PrepareExposureMarkerEffect105(target,removedBeforeCosts,current,ExposureMarkerEffectContext105(target,current,TRUE),ExposureMarkerEffectRef105(target),1,CardFacts10)
/\ ResolveExposureMarkerAction105(removedBeforeCosts,[removedBeforeCosts EXCEPT !.phase="EffectCheckpoint"],current,current.objects,Empty10,
DOMAIN current.objects,CheckpointPrinted103,CheckpointOwners103,{},899,Empty10,Empty10,Empty10,Empty10,{})
/\ ~PrepareExposureMarkerEffect105(target,ExposureMarkerEffectReadyFixture105(target,FALSE,missingKnownCosts),missingKnownWorld,
ExposureMarkerEffectContext105(target,missingKnownWorld,FALSE),ExposureMarkerEffectRef105(target),1,CardFacts10)
/\ ResourceAdditionalCosts105(prepared,current,CardFacts10)
/\ ~ResourceAdditionalCosts105(prepared,[current EXCEPT !.points["SideA"]=2],CardFacts10)
/\ ~ResourceAdditionalCosts105(prepared,[current EXCEPT !.subtypes[12]={}],CardFacts10)
/\ PayResourceAdditional105(prepared,nested,current,afterCentralA,CardFacts10,assignments,successors,DOMAIN current.objects,601,eventIds,Empty10,history,events)
/\ Cardinality(events)=2 /\ history[900].originalObjects={60} /\ history[901].originalObjects={61}
/\ afterCentralA.objects[160].marks={} /\ afterCentralA.objects[161].marks={} /\ afterCentralA.actionPoints["SideA"]=2
/\ ~PayResourceAdditional105(prepared,nested,current,singleAfter,CardFacts10,doubleUse,singleSuccessor,DOMAIN current.objects,601,eventIds,Empty10,doubleHistory,{doubleHistory[id] : id \in DOMAIN doubleHistory})
/\ ~PayResourceAdditional105(prepared,nested,current,singleAfter,CardFacts10,partialAssign,singleSuccessor,DOMAIN current.objects,601,partialEvents,Empty10,partialHistory,{partialHistory[900]})
/\ SkipResourceAdditional105(prepared,declined,current,"Declined")
/\ ResolveExposureMarkerAction105(declined,[declined EXCEPT !.phase="EffectCheckpoint"],current,current.objects,Empty10,DOMAIN current.objects,CheckpointPrinted103,CheckpointOwners103,{},902,Empty10,Empty10,Empty10,Empty10,{})
/\ DrainExposureMarkerAction105(nested,ready,lost,cp,ExposureMarkerCheckpointLedger105(cp),<<ExposureMarkerBusyFixture105(world,"RetireResource")>>)
/\ ResolveExposureMarkerAction105(ready,[ready EXCEPT !.phase="EffectCheckpoint"],lost,lost.objects,Empty10,DOMAIN lost.objects,CheckpointPrinted103,CheckpointOwners103,{},902,history,history,Empty10,Empty10,{})
/\ lost.actionPoints["SideA"]=2 /\ {20,21,60,61,12} \cap DOMAIN lost.objects={}
/\ ~AnnounceExposureMarkerTarget105(ready,ExposureMarkerTargetedFixture105(ready,212),lost,212,8000)
/\ DrainExposureMarkerAction105(nested,ready,blocked,protectedCP,ExposureMarkerCheckpointLedger105(protectedCP),<<ExposureMarkerBusyFixture105(world,"RetireResource")>>)
/\ ResolveExposureMarkerAction105(ready,[ready EXCEPT !.phase="EffectCheckpoint"],blocked,blocked.objects,Empty10,DOMAIN blocked.objects,CheckpointPrinted103,CheckpointOwners103,{},902,history,history,Empty10,Empty10,{})
/\ ResolveExposureMarkerAction105(ready,[ready EXCEPT !.phase="EffectCheckpoint"],afterCentralA,actualRetire,resourceSuccessor,DOMAIN afterCentralA.objects,CheckpointPrinted103,CheckpointOwners103,{12},902,history,trashHistory,Empty10,departure,{resourceMove})Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PreventExpectedWhole99, ReplacementOverlay99, CentralACostAfterWorld105, CentralACostHistory105, CheckpointOwners103, CheckpointPrinted103, Empty10, ExposureMarkerAfterPaymentWorld105, ExposureMarkerBusyFixture105, ExposureMarkerCardFixture105, ExposureMarkerCheckpointFixture105, ExposureMarkerCheckpointLedger105, ExposureMarkerEffectAtom105, ExposureMarkerEffectContext105, ExposureMarkerEffectReadyFixture105, ExposureMarkerEffectRef105, ExposureMarkerPaidFixture105, ExposureMarkerPaymentFixture105, ExposureMarkerReservedFixture105, ExposureMarkerTargetedFixture105, ExposureMarkerTargetsFrame105, ExtraWorldFixture105, ResourceCostsFixture105, AnnounceExposureMarkerTarget105, CheckpointRetireMap103, DrainExposureMarkerAction105, PayExposureMarkerAction105, PayResourceAdditional105, PrepareExposureMarkerEffect105, ResolveExposureMarkerAction105, ResourceAdditionalCosts105, SkipResourceAdditional105, Without101, MovementEvent8, CardFacts10
ExposureMarkerAfterPaymentWorld105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerAfterPaymentWorld105(world,player,selected) ==
[world EXCEPT !.id=@+1,!.objects=Without101(@,selected),!.controllers=Without101(@,selected),!.actionPoints[player]=@-1,!.spent[player]=@+1]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Without101
ExposureMarkerBusyFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerBusyFixture105(world,kind) == StartPriorityOptionFrame9(ExposureMarkerReadyWindow105(world),ExposureMarkerOptionFixture105(kind),600)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: StartPriorityOptionFrame9, ExposureMarkerOptionFixture105, ExposureMarkerReadyWindow105
ExposureMarkerCardFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerCardFixture105(card,zone,deployed) == ReplacementOverlay99(CheckpointObject103(card,zone,deployed,0),[front |-> TRUE])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, CheckpointObject103
ExposureMarkerCheckpointFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerCheckpointFixture105(frame,world,scope,cpId) ==
[NewCheckpoint103(cpId,ExposureMarkerCheckpointCaller105(frame,scope),world.id,{}) EXCEPT !.phase="Returned",!.point="ProcedureCodeb74d673a0fc6",!.owed= <<>>,
!.done=CheckpointStageSet103,!.returned=TRUE,!.recognition=[id |-> cpId,caller |-> ExposureMarkerCheckpointCaller105(frame,scope)],!.recognized=Empty10]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Empty10, CheckpointStageSet103, ExposureMarkerCheckpointCaller105, NewCheckpoint103
ExposureMarkerCheckpointLedger105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerCheckpointLedger105(cp) == [checkpoints |-> [id \in {cp.id} |-> [caller |-> cp.caller]],instances |-> Empty10]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Empty10
ExposureMarkerConvertedCounterChecks105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerConvertedCounterChecks105 ==
LET f==ExposureMarkerActionFixture105("RemoveExposureMarker",1,FALSE)
converted==ReplacementOverlay99(ExposureMarkerCounterRow105,[card |-> "Specimen0046",owner |-> "SideA",properties |-> [kind |-> "ExposureMarker"]])
world==[f.afterWorld EXCEPT !.objects[1]=converted]
target==ExposureMarkerTargetedFixture105(f.targets,1)
ready==ExposureMarkerEffectReadyFixture105(target,FALSE,Empty10)
successors==[id \in {1} |-> 1001]
afterObjects==CheckpointRetireMap103(world.objects,{1},successors,CheckpointPrinted103,CheckpointOwners103,{1})
event==MovementEvent8(840,"Retire",{1})
removed==[tag |-> "ExposureMarkerRemoved",actionId |-> 7000,player |-> "SideB",counter |-> 1]
conversion==[mode |-> "Counter",card |-> "Specimen0046",createdBy |-> 444,owner |-> "SideA",gained |-> [kind |-> "ExposureMarker"]]
receipt==[original |-> 1,successor |-> 1001,physical |-> "Specimen0046",owner |-> "SideA",complete |-> TRUE]
IN /\ AnnounceExposureMarkerTarget105(f.targets,target,world,1,8000)
/\ PrepareExposureMarkerEffect105(target,ready,world,ExposureMarkerEffectContext105(target,world,FALSE),ExposureMarkerEffectRef105(target),1,CardFacts10)
/\ ResolveExposureMarkerAction105(ready,[ready EXCEPT !.phase="EffectCheckpoint"],world,afterObjects,successors,DOMAIN world.objects,CheckpointPrinted103,CheckpointOwners103,{1},840,
Empty10,[id \in {840} |-> event],Empty10,Empty10,{event,removed})
/\ ConversionExitPost101(conversion,CheckpointPrinted103["Specimen0046"],1,1001,world.objects,afterObjects,DOMAIN world.objects,"SideADiscard","RemoveExposureMarker",receipt)
/\ afterObjects[1001].form="Card" /\ afterObjects[1001].zone="SideADiscard" /\ ExposureMarkerQuantity105(afterObjects)=0Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, CheckpointOwners103, CheckpointPrinted103, Empty10, ExposureMarkerActionFixture105, ExposureMarkerEffectContext105, ExposureMarkerEffectReadyFixture105, ExposureMarkerEffectRef105, ExposureMarkerTargetedFixture105, AnnounceExposureMarkerTarget105, CheckpointRetireMap103, ConversionExitPost101, ExposureMarkerCounterRow105, ExposureMarkerQuantity105, PrepareExposureMarkerEffect105, ResolveExposureMarkerAction105, MovementEvent8, CardFacts10
ExposureMarkerDeclarationsFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerDeclarationsFixture105(world) ==
IF 10 \in DOMAIN world.objects /\ 1050 \in world.activeAbilities /\ DefaultActive(world.objects[10],world.started,CardFacts10)
THEN [id \in {1} |-> [snapshotId |-> world.id,projection |-> StaticProjection94(ExposureMarkerStaticSyntax105,ExposureMarkerStaticPart105,TRUE),
sourceObject |-> world.objects[10],sourceSHA |-> CardFacts10["Specimen0173"].sourceSHA]] ELSE Empty10Exact module download · Source bundle and reproduction instructions
Resolved project definitions: StaticProjection94, Empty10, ExposureMarkerStaticPart105, ExposureMarkerStaticSyntax105, DefaultActive, CardFacts10
ExposureMarkerEffectAtom105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerEffectAtom105(frame) ==
[id |-> 1,kind |-> IF frame.kind="RetireResource" THEN "RetireCards" ELSE "RemoveExposureMarkers",targetCard |-> frame.target,actor |-> frame.player,value |-> 1,preventable |-> TRUE]Exact module download · Source bundle and reproduction instructions
ExposureMarkerEffectContext105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerEffectContext105(frame,world,removed) ==
[id |-> 9000,currentRef |-> ExposureMarkerEffectRef105(frame),currentWorld |-> world.id,phase |-> "Resolving",templates |-> [id \in {1} |-> ExposureMarkerEffectAtom105(frame)],
state |-> [effects |-> IF removed THEN Empty10 ELSE [id \in {1} |-> ExposureMarkerEffectAtom105(frame)]],actualEffects |-> IF removed THEN Empty10 ELSE [id \in {1} |-> ExposureMarkerEffectAtom105(frame)]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Empty10, ExposureMarkerEffectAtom105, ExposureMarkerEffectRef105
ExposureMarkerEffectReadyFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerEffectReadyFixture105(frame,removed,costs) ==
[frame EXCEPT !.effective=[mode |-> IF removed THEN "Removed" ELSE "Kept",reference |-> ExposureMarkerEffectRef105(frame),effectId |-> 1],
!.effectCosts=costs,!.phase=IF DOMAIN costs={} THEN "EffectReady" ELSE "AdditionalCosts"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExposureMarkerEffectRef105
ExposureMarkerEffectRef105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerEffectRef105(frame) == [DamageReference104(0) EXCEPT !.id=8000,!.abilityInstance=frame.id,!.source=RuleAbilitySource9(ExposureMarkerActionRule105(frame.kind))]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: RuleAbilitySource9, DamageReference104, ExposureMarkerActionRule105
ExposureMarkerLegalityFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerLegalityFixture105(world,kind) == [tag |-> "PriorityOptionLegality",windowId |-> 10501,reception |-> 1,option |-> ExposureMarkerOptionFixture105(kind),
legal |-> TRUE,active |-> TRUE,transactionId |-> 600,costsPayable |-> TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExposureMarkerOptionFixture105
ExposureMarkerModifierAndSourceChecks105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerModifierAndSourceChecks105 ==
/\ \A kind \in {"RetireResource","RemoveExposureMarker"}, front \in BOOLEAN, chosen \in BOOLEAN :
LET world==ExampleFamily094WorldFixture105(kind,front,chosen)
mods==world.exposureMarkerCostModifiers[kind]
amount==IF front /\ kind="RemoveExposureMarker" THEN 3 ELSE IF ~front /\ kind="RetireResource" /\ chosen THEN 0 ELSE 2
selected==IF amount=0 THEN {} ELSE IF kind="RetireResource" THEN {20,21} ELSE IF amount=3 THEN {30,31,32} ELSE {30,31}
reserved==ExposureMarkerReservedFixture105(kind)
afterWorld==ExposureMarkerAfterPaymentWorld105(world,reserved.player,selected)
payment==ExposureMarkerPaymentFixture105(reserved,world,afterWorld,selected,amount)
paid==ExposureMarkerPaidFixture105(reserved,world,payment)
IN /\ ExposureMarkerResourceUnitCost105(mods)=amount /\ ExposureMarkerCostModifiers105(world,kind,mods,CardFacts10)
/\ ExampleFamily094ExposureMarkerCostShape105(kind,world.objects[50],chosen,mods[77].delta)
/\ PayExposureMarkerAction105(reserved,paid,<<ExposureMarkerBusyFixture105(world,kind)>>,world,afterWorld,Empty10,Empty10,CardFacts10,mods,Empty10,selected,payment)
/\ afterWorld.objects[50].front=world.objects[50].front /\ afterWorld.actionPoints[reserved.player]=2
/\ LET world==ExampleFamily094WorldFixture105("RemoveExposureMarker",TRUE,FALSE)
p==ExampleFamily011PermissionFixture105(world)
withPermission==[world EXCEPT !.exposureMarkerSpendPermissions=[id \in {71} |-> p]]
selected=={40,41,30}
reserved==ExposureMarkerReservedFixture105("RemoveExposureMarker")
afterWorld==ExposureMarkerAfterPaymentWorld105(withPermission,"SideB",selected)
payment==ExposureMarkerPaymentFixture105(reserved,withPermission,afterWorld,selected,3)
paid==ExposureMarkerPaidFixture105(reserved,withPermission,payment)
shortAfter==ExposureMarkerAfterPaymentWorld105(withPermission,"SideB",{40,41})
shortPayment==ExposureMarkerPaymentFixture105(reserved,withPermission,shortAfter,{40,41},3)
frontWrong==[world EXCEPT !.exposureMarkerCostModifiers["RemoveExposureMarker"][77].sourceObject.front=FALSE]
omitted==[world EXCEPT !.exposureMarkerCostModifiers["RemoveExposureMarker"]=Empty10]
wrongPurpose==[withPermission EXCEPT !.exposureMarkerSpendPermissions[71].action="RetireResource"]
IN /\ ExampleFamily011ExposureMarkerPermission105(withPermission,"RemoveExposureMarker",600,p,CardFacts10)
/\ ~ExampleFamily011ExposureMarkerPermission105(withPermission,"RetireResource",600,p,CardFacts10)
/\ PayExposureMarkerAction105(reserved,paid,<<ExposureMarkerBusyFixture105(withPermission,"RemoveExposureMarker")>>,withPermission,afterWorld,Empty10,Empty10,CardFacts10,world.exposureMarkerCostModifiers["RemoveExposureMarker"],withPermission.exposureMarkerSpendPermissions,selected,payment)
/\ ExposureMarkerPaymentPermissionSources105(payment,withPermission.exposureMarkerSpendPermissions)={ObjectAbilitySource9(11)}
/\ ExposureMarkerPaymentPermissionSources105([payment EXCEPT !.paidCounterIds={30,31,32}],withPermission.exposureMarkerSpendPermissions)={}
/\ ExposureMarkerPaymentPermissionSources105([payment EXCEPT !.paidCounterIds={40,30,31}],withPermission.exposureMarkerSpendPermissions)={ObjectAbilitySource9(11)}
/\ ~PayExposureMarkerAction105(reserved,ExposureMarkerPaidFixture105(reserved,withPermission,shortPayment),<<ExposureMarkerBusyFixture105(withPermission,"RemoveExposureMarker")>>,withPermission,shortAfter,Empty10,Empty10,CardFacts10,world.exposureMarkerCostModifiers["RemoveExposureMarker"],withPermission.exposureMarkerSpendPermissions,{40,41},shortPayment)
/\ ~ExposureMarkerCostModifiers105(frontWrong,"RemoveExposureMarker",frontWrong.exposureMarkerCostModifiers["RemoveExposureMarker"],CardFacts10)
/\ ~ExposureMarkerCostModifiers105(omitted,"RemoveExposureMarker",Empty10,CardFacts10)
/\ ~ExampleFamily011ExposureMarkerPermission105(wrongPurpose,"RemoveExposureMarker",600,wrongPurpose.exposureMarkerSpendPermissions[71],CardFacts10)
/\ LET world==ExampleFamily094WorldFixture105("RetireResource",TRUE,TRUE)
wrong==[world EXCEPT !.exposureMarkerCostModifiers["RetireResource"][77].delta=-2]
IN ~ExposureMarkerCostModifiers105(wrong,"RetireResource",wrong.exposureMarkerCostModifiers["RetireResource"],CardFacts10)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, Empty10, ExampleFamily011PermissionFixture105, ExampleFamily094WorldFixture105, ExposureMarkerAfterPaymentWorld105, ExposureMarkerBusyFixture105, ExposureMarkerPaidFixture105, ExposureMarkerPaymentFixture105, ExposureMarkerReservedFixture105, ExampleFamily011ExposureMarkerPermission105, ExampleFamily094ExposureMarkerCostShape105, ExposureMarkerCostModifiers105, ExposureMarkerPaymentPermissionSources105, ExposureMarkerResourceUnitCost105, PayExposureMarkerAction105, CardFacts10
ExposureMarkerObjectsFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerObjectsFixture105(count,Specimen0173) ==
[id \in (1..count) \cup {10,11,20,21,22,30,31,32,40,41,50,51} |->
CASE id \in 1..count -> ExposureMarkerCounterRow105
[] id=10 -> [ExposureMarkerCardFixture105("Specimen0173",IF Specimen0173 THEN "Play" ELSE "SideBDiscard",Specimen0173) EXCEPT !.marks={"OldResourceMark"}]
[] id=11 -> ExposureMarkerCardFixture105("Specimen0058","Play",TRUE)
[] id=50 -> ExposureMarkerCardFixture105("Specimen0233","Outside",FALSE)
[] id=51 -> ExposureMarkerCardFixture105("Specimen0212","Outside",FALSE)
[] id \in {20,21,22} -> ExposureMarkerTokenFixture105("ResourceUnit","SideAResourceUnits",0,FALSE)
[] id \in {30,31,32} -> ExposureMarkerTokenFixture105("ResourceUnit","SideBResourceUnits",0,FALSE)
[] OTHER -> ExposureMarkerTokenFixture105("ResourceUnit","Play",11,FALSE)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExposureMarkerCardFixture105, ExposureMarkerTokenFixture105, ExposureMarkerCounterRow105
ExposureMarkerOptionFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerOptionFixture105(kind) == PriorityOption9(700,"NeutralValue00001",ExposureMarkerActionActor105(kind),9001,0,RuleAbilitySource9(ExposureMarkerActionRule105(kind)),0,{})Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PriorityOption9, RuleAbilitySource9, ExposureMarkerActionActor105, ExposureMarkerActionRule105
ExposureMarkerPaidFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerPaidFixture105(frame,world,payment) ==
[frame EXCEPT !.phase="BaseCostCheckpoint",!.activationSnapshot=world.id,!.action=NewAction5(frame.id,frame.player,ExposureMarkerActionKey105(frame.kind)),!.payment=payment]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExposureMarkerActionKey105, NewAction5
ExposureMarkerPayValid105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerPayValid105(f) == PayExposureMarkerAction105(f.reserved,f.paid,<<f.busy>>,f.world,f.afterWorld,ExposureMarkerDeclarationsFixture105(f.world),ExposureMarkerDeclarationsFixture105(f.afterWorld),
CardFacts10,Empty10,Empty10,f.selected,f.payment)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Empty10, ExposureMarkerDeclarationsFixture105, PayExposureMarkerAction105, CardFacts10
ExposureMarkerPaymentFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerPaymentFixture105(frame,world,afterWorld,selected,amount) ==
[tag |-> "BasicExposureMarkerTriggerPayment",id |-> frame.transaction,actionId |-> frame.id,player |-> frame.player,
beforeSnapshot |-> world.id,afterSnapshot |-> afterWorld.id,actionPoints |-> 1,resourceUnits |-> amount,paidCounterIds |-> selected,complete |-> TRUE]Exact module download · Source bundle and reproduction instructions
ExposureMarkerQuantityAndStatusChecks105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerQuantityAndStatusChecks105 ==
LET world==ExposureMarkerWorldFixture105("SideB",0,TRUE)
declarations==ExposureMarkerDeclarationsFixture105(world)
noPap==ExposureMarkerWorldFixture105("SideB",0,FALSE)
countWorld==ExposureMarkerWorldFixture105("SideB",1,FALSE)
considered==[world EXCEPT !.objects=ReplacementOverlay99(@,[id \in {1,2,3} |-> CASE id=1 -> [ExposureMarkerCounterRow105 EXCEPT !.virtual=TRUE]
[] id=2 -> [ExposureMarkerCounterRow105 EXCEPT !.host=11,!.zone="Play"] [] OTHER -> [ExposureMarkerCounterRow105 EXCEPT !.kind="Power"]])]
expected==[id \in {1} |-> StaticProjection94(ExposureMarkerStaticSyntax105,ExposureMarkerStaticPart105,TRUE)]
conditions==[tag |-> "StaticConditionSnapshot",ability |-> 1050,source |-> ObjectAbilitySource9(10),receipts |-> Empty10]
atom==[DamageAtomFixture104("Specimen0106","Do","HarmClassA",4) EXCEPT !.kind="ExposureMarkers"]
ctx==DamageContextFixture104(atom,0)
added==[id \in 100..103 |-> ExposureMarkerCounterRow105]
afterObjects==ReplacementOverlay99(noPap.objects,added)
event==[tag |-> "ExposureMarkersTaken",contextId |-> ctx.id,reference |-> ctx.currentRef,effectId |-> 1,source |-> atom.baseOrigin,
actor |-> "SideA",player |-> "SideB",amount |-> 4,counters |-> DOMAIN added]
IN /\ ObserveStaticDeclarations94(ExposureMarkerStaticSyntax105,[id \in {1} |-> ExposureMarkerStaticPart105],TRUE,conditions,[id \in {1} |-> TRUE],expected)
/\ ObserveStaticDeclarations94(ExposureMarkerStaticSyntax105,[id \in {1} |-> ExposureMarkerStaticPart105],FALSE,conditions,[id \in {1} |-> TRUE],Empty10)
/\ CurrentExposureMarkerState105(world,declarations,CardFacts10,ExposureMarkerStateView105(world.objects,declarations))
/\ ExposureMarkerStateView105(world.objects,declarations).quantity=0 /\ ExposureMarkerStateView105(world.objects,declarations).hasExposureMarkers
/\ CurrentExposureMarkerState105(noPap,Empty10,CardFacts10,ExposureMarkerStateView105(noPap.objects,Empty10)) /\ ~ExposureMarkerStateView105(noPap.objects,Empty10).hasExposureMarkers
/\ CurrentExposureMarkerState105(countWorld,Empty10,CardFacts10,ExposureMarkerStateView105(countWorld.objects,Empty10)) /\ ExposureMarkerStateView105(countWorld.objects,Empty10).hasExposureMarkers
/\ ExposureMarkerQuantity105(considered.objects)=1 /\ MovableExposureMarkerIds105(considered.objects)={}
/\ ~CurrentExposureMarkerState105(world,[declarations EXCEPT ![1].snapshotId=99],CardFacts10,ExposureMarkerStateView105(world.objects,declarations))
/\ ~CurrentExposureMarkerState105(noPap,[declarations EXCEPT ![1].sourceObject=noPap.objects[10]],CardFacts10,ExposureMarkerStateView105(noPap.objects,declarations))
/\ TakeExposureMarkers105(ctx,ctx.currentRef,noPap,1,afterObjects,added,DOMAIN noPap.objects,event)
/\ ExposureMarkerQuantity105(afterObjects)=4
/\ ~TakeExposureMarkers105(ctx,ctx.currentRef,noPap,1,noPap.objects,Empty10,DOMAIN noPap.objects,event)
/\ ~TakeExposureMarkers105([ctx EXCEPT !.state.effects[1].value=0,!.actualEffects=Empty10],ctx.currentRef,noPap,1,noPap.objects,Empty10,DOMAIN noPap.objects,event)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, ObserveStaticDeclarations94, ReplacementOverlay99, StaticProjection94, DamageAtomFixture104, DamageContextFixture104, Empty10, ExposureMarkerDeclarationsFixture105, ExposureMarkerStaticPart105, ExposureMarkerStaticSyntax105, ExposureMarkerWorldFixture105, CurrentExposureMarkerState105, ExposureMarkerCounterRow105, ExposureMarkerQuantity105, ExposureMarkerStateView105, MovableExposureMarkerIds105, TakeExposureMarkers105, CardFacts10
ExposureMarkerReadyWindow105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerReadyWindow105(world) ==
LET site==TurnPrioritySite9(world.turn,world.step,world.phaseId,world.actionPoints[world.turn.owner],[turn |-> world.turn,step |-> world.step])
IN [NewPriorityWindow9(10501,"NeutralValue00001",site,Empty10,0,NoTimingRef9,[id |-> 0,abilityInstance |-> 0,index |-> 0],0) EXCEPT !.stage="Ready",!.checkpoint=400]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: NewPriorityWindow9, NoTimingRef9, TurnPrioritySite9, Empty10
ExposureMarkerReserveValid105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerReserveValid105(f) == ReserveExposureMarkerAction105(<<ExposureMarkerReadyWindow105(f.world)>>,<<f.busy>>,f.world,ExposureMarkerDeclarationsFixture105(f.world),CardFacts10,
ExposureMarkerStateView105(f.world.objects,ExposureMarkerDeclarationsFixture105(f.world)),f.reserved.kind,ExposureMarkerOptionFixture105(f.reserved.kind),ExposureMarkerLegalityFixture105(f.world,f.reserved.kind),7000,{},f.reserved)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExposureMarkerDeclarationsFixture105, ExposureMarkerLegalityFixture105, ExposureMarkerOptionFixture105, ExposureMarkerReadyWindow105, ExposureMarkerStateView105, ReserveExposureMarkerAction105, CardFacts10
ExposureMarkerReservedFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerReservedFixture105(kind) ==
[id |-> 7000,kind |-> kind,player |-> ExposureMarkerActionActor105(kind),windowId |-> 10501,option |-> ExposureMarkerOptionFixture105(kind),transaction |-> 600,
activationSnapshot |-> 0,phase |-> "Reserved",action |-> [id |-> 0],target |-> 0,instruction |-> 0,effective |-> [mode |-> "NoValue"],
nestedTransaction |-> 0,effectCosts |-> Empty10,payment |-> [complete |-> FALSE]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Empty10, ExposureMarkerOptionFixture105, ExposureMarkerActionActor105
ExposureMarkerStaticPart105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerStaticPart105 == [id |-> 1,ability |-> 1050,conditions |-> {},target |-> "SideB",property |-> "HasExposureMarkers"]Exact module download · Source bundle and reproduction instructions
ExposureMarkerStaticSyntax105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerStaticSyntax105 == [id |-> 1050,kind |-> "Static",source |-> ObjectAbilitySource9(10),units |-> <<[id |-> 1,category |-> "Declaration",subtype |-> "Plain"]>>]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9
ExposureMarkerTargetedFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerTargetedFixture105(frame,target) == [frame EXCEPT !.phase="Targeted",!.target=target,!.instruction=8000]Exact module download · Source bundle and reproduction instructions
ExposureMarkerTargetsFrame105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerTargetsFrame105(frame) == [frame EXCEPT !.phase="Targets",!.action.status="Effects"]Exact module download · Source bundle and reproduction instructions
ExposureMarkerTokenFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerTokenFixture105(kind,zone,host,virtual) == [ExposureMarkerCounterRow105 EXCEPT !.kind=kind,!.zone=zone,!.host=host,!.loc=host,!.virtual=virtual]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExposureMarkerCounterRow105
ExposureMarkerWorldFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExposureMarkerWorldFixture105(player,count,Specimen0173) ==
LET objects==ExposureMarkerObjectsFixture105(count,Specimen0173) IN
[id |-> 100,started |-> TRUE,outcome |-> "Playing",objects |-> objects,
turn |-> [OpenTurn5(player,1,[p \in SetupPlayers |-> 0]) EXCEPT !.phase="NeutralValue00001"],step |-> IF player="SideA" THEN "ProcedureCode0e20572a4bab" ELSE "ProcedureCode989abc27e0c6",phaseId |-> 10,
actionPoints |-> [p \in SetupPlayers |-> 3],spent |-> [p \in SetupPlayers |-> 0],owners |-> CheckpointOwners103,
controllers |-> [id \in DOMAIN objects |-> IF id \in {20,21,22,50} THEN "SideA" ELSE "SideB"],
activeSources |-> IF Specimen0173 THEN {10,11} ELSE {11},activeAbilities |-> IF Specimen0173 THEN {1050} ELSE {},
exposureMarkerCostModifiers |-> [kind \in {"RetireResource","RemoveExposureMarker"} |-> Empty10],exposureMarkerSpendPermissions |-> Empty10,additionalResourceCosts |-> Empty10,
points |-> [p \in SetupPlayers |-> 0],subtypes |-> [id \in DOMAIN objects |-> {}],currentRetireProhibitions |-> {},currentExposureMarkerRemovalProhibitions |-> {}]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointOwners103, Empty10, ExposureMarkerObjectsFixture105, SetupPlayers, OpenTurn5
ExtraWorldFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ExtraWorldFixture105 ==
LET base==ExposureMarkerWorldFixture105("SideA",1,FALSE)
objects==ReplacementOverlay99(base.objects,[id \in {12,60,61} |-> IF id=12 THEN [ExposureMarkerCardFixture105("Specimen0136","Play",TRUE) EXCEPT !.marks={"OldExampleFamily028Mark"}]
ELSE [ExposureMarkerCardFixture105(IF id=60 THEN "Specimen0106" ELSE "Specimen0221","SideAHand",FALSE) EXCEPT !.face="NA",!.marks={"OldCentralARestriction"}]])
IN [base EXCEPT !.objects=[objects EXCEPT ![51].zone="Play"],!.controllers=ReplacementOverlay99(@,[id \in {12,60,61} |-> IF id=12 THEN "SideB" ELSE "SideA"]),
!.activeSources={11,12,51},!.subtypes=ReplacementOverlay99(@,[id \in {12,60,61} |-> IF id=12 THEN {"SchemaAtom044"} ELSE {}]),!.points["SideA"]=3]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, ExposureMarkerCardFixture105, ExposureMarkerWorldFixture105
GeneralChecks101 · operator
reference-profile · input revision 2 · CC0 1.0
GeneralChecks101 ==
LET objects==[i \in {1,2,3,4} |-> Obj101("NeutralValue00006","Card","Equipment","Play",0,FALSE)]
names==[i \in DOMAIN objects |-> IF i=4 THEN "other" ELSE "Specimen0036"]
plan==UniqueActivationPlan101(objects,names,{1,2,3},{1,2,4},{1,2,3,4},3)
restrictedDemandObjects==[i \in 1..8 |-> CASE i=1 -> Obj101("Specimen0174","Card","Technique","Play",0,FALSE)
[] i=2 -> Obj101("none","Counter","SchemaAtom180","Play",1,FALSE)
[] i=3 -> Obj101("none","Counter","Power","Play",1,FALSE)
[] i=4 -> Obj101("none","Counter","SchemaAtom180","Play",1,TRUE)
[] i=5 -> Obj101("none","Counter","SchemaAtom180","SideAExposureMarkers",0,FALSE)
[] i=6 -> Obj101("none","Counter","SchemaAtom180","Play",3,FALSE)
[] i=7 -> Obj101("Specimen0046","Counter","SchemaAtom180","Play",1,FALSE)
[] OTHER -> Obj101("Specimen0061","Card","Plan","SideADiscard",0,FALSE)]
purged==Without101(restrictedDemandObjects,{2,7})
objective==[mode |-> "Objective",card |-> "Specimen0158",createdBy |-> 101,owner |-> "SideA",
gained |-> [kind |-> "Objective",objectivePoints |-> -1]]
counter==[mode |-> "Counter",card |-> "Specimen0046",createdBy |-> 102,owner |-> "SideA",
gained |-> [kind |-> "SchemaAtom043",ability |-> 99]]
printedObjective==[kind |-> "Facility",objectivePoints |-> 0,subtypes |-> {"SchemaAtom014"},ability |-> 4]
printedCounter==[kind |-> "Plan",ability |-> 5]
source==[i \in {10} |-> Obj101("Specimen0158","Card","Objective","SideBObjectiveCompletion",0,FALSE)]
discarded==[i \in {11} |-> [card |-> "Specimen0158",form |-> "Card",kind |-> "Facility",zone |-> "SideADiscard",host |-> 0,deployed |-> FALSE,properties |-> printedObjective,owner |-> "SideA"]]
forfeited==[i \in {11} |-> [discarded[11] EXCEPT !.zone="Removed"]]
trash==[original |-> 10,successor |-> 11,physical |-> "Specimen0158",complete |-> TRUE,owner |-> "SideA"]
sourceCounter==[i \in {10} |-> Obj101("Specimen0046","Counter","SchemaAtom043","Play",1,FALSE)]
revertedCounter==[i \in {11} |-> [card |-> "Specimen0046",form |-> "Card",kind |-> "Plan",zone |-> "SideADiscard",host |-> 0,deployed |-> FALSE,properties |-> printedCounter,owner |-> "SideA"]]
counterRetire==[trash EXCEPT !.physical="Specimen0046"]
mandatory==[id |-> 501,kind |-> "Mandatory",phase |-> "Detected",resolver |-> "SideA",traversal |-> 8,caller |-> 17,iterations |-> 0,disposition |-> "NoValue"]
optional==[mandatory EXCEPT !.kind="Optional"]
ended==[mandatory EXCEPT !.phase="Ended",!.iterations=2157]
IN /\ CardRepositoryPin10="7ac9f802fcac1fc55eb4c8de3aabdd46c9b5d45f"
/\ CardFacts10["NeutralValue00006"].unique /\ ~CardFacts10["Specimen0267"].unique
/\ plan.valid /\ plan.targets={1,2} /\ plan.timing="NextCheckpoint" /\ ~plan.preventable
/\ UniqueActivationRetire101(plan,{1,2},"ProcedureCodefe50c31480ea",FALSE)
/\ ~UniqueActivationRetire101(plan,{1},"ProcedureCodefe50c31480ea",FALSE)
/\ ~UniqueActivationRetire101(plan,{1,2},"ProcedureCodee605a78f5d5e",FALSE)
/\ ~UniqueActivationRetire101(plan,{1,2},"ProcedureCodefe50c31480ea",TRUE)
/\ ~UniqueActivationPlan101(objects,names,{1,2,3},{1,2,3,4},{1,2,3,4},3).valid
/\ ~UniqueActivationPlan101(objects,names,{1,2},{1,2,4},{1,2,3,4},3).valid
/\ UniqueActivationPlan101(objects,names,{3},{1,2,4},{1,2,3,4},3).targets={1,2}
/\ PurgeClusterPlan101(restrictedDemandObjects)=[targets |-> {2,7},bank |-> {2},revertAndRetire |-> {7}]
/\ PurgeClusterOriginalProjectionPost101(restrictedDemandObjects,purged,{2},{7})
/\ ~PurgeClusterOriginalProjectionPost101(restrictedDemandObjects,Without101(restrictedDemandObjects,{2,4,7}),{2,4},{7})
/\ ~PurgeClusterOriginalProjectionPost101(restrictedDemandObjects,Without101(restrictedDemandObjects,{2,3,7}),{2,3},{7})
/\ ~PurgeClusterOriginalProjectionPost101(restrictedDemandObjects,purged,{2,7},{})
/\ ConversionValid101(objective) /\ ConversionValid101(counter)
/\ ~ConversionValid101([objective EXCEPT !.gained.kind="Facility"])
/\ ~ConversionValid101([counter EXCEPT !.gained.kind="Plan"])
/\ ConversionProperties101(objective,printedObjective,"SideBObjectiveCompletion","SideBObjectiveCompletion")=objective.gained
/\ ConversionProperties101(objective,printedObjective,"SideBObjectiveCompletion","SideAObjectiveCompletion")=objective.gained
/\ "ability" \notin DOMAIN ConversionProperties101(objective,printedObjective,"SideBObjectiveCompletion","SideAObjectiveCompletion")
/\ ConversionExitPlan101(objective,printedObjective,"SideBObjectiveCompletion","SideAHand","Add").trashImmediately
/\ ~ConversionExitPlan101(objective,printedObjective,"SideBObjectiveCompletion","Removed","Forfeit").trashImmediately
/\ ConversionExitPost101(objective,printedObjective,10,11,source,discarded,{10},"SideAHand","Add",trash)
/\ ConversionExitPost101(objective,printedObjective,10,11,source,forfeited,{10},"Removed","Forfeit",trash)
/\ ~ConversionExitPost101(objective,printedObjective,10,11,source,forfeited,{10},"Removed","Add",trash)
/\ ~ConversionExitPost101(objective,printedObjective,10,11,source,discarded,{10,11},"SideAHand","Add",trash)
/\ ~ConversionExitPost101(objective,printedObjective,10,11,source,discarded,{10},"SideAHand","Add",[trash EXCEPT !.physical="NeutralValue00006"])
/\ ~ConversionExitPost101(objective,printedObjective,10,11,source,[discarded EXCEPT ![11].zone="SideBDiscard"],{10},"SideAHand","Add",[trash EXCEPT !.owner="SideB"])
/\ ~ConversionExitPost101(objective,printedObjective,10,11,source,[discarded EXCEPT ![11].properties=objective.gained],{10},"SideAHand","Add",trash)
/\ ConversionProperties101(counter,printedCounter,"Play","Play")=counter.gained
/\ ConversionProperties101(counter,printedCounter,"Play","SetAside")=printedCounter
/\ ConversionExitPlan101(counter,printedCounter,"Play","SetAside","Forfeit").trashImmediately
/\ ConversionExitPost101(counter,printedCounter,10,11,sourceCounter,revertedCounter,{10},"SetAside","Add",counterRetire)
/\ NamedReference101(1,"Specimen0036","Specimen0036",FALSE,objects,names)={1}
/\ NamedReference101(1,"Specimen0036","Specimen0036",TRUE,objects,names)={1,2,3}
/\ NamedReference101(9,"Specimen0129","Specimen0129",FALSE,objects,names)={9}
/\ NamedReference101(9,"Specimen0129","Specimen0036",FALSE,objects,names)={1,2,3}
/\ LoopTrait101("Mandatory",FALSE,FALSE)="ChooseCount"
/\ LoopTrait101("Optional",TRUE,FALSE)="SideBWithdrawTraversal"
/\ LoopTrait101("Optional",TRUE,TRUE)="SideAContinueTraversal"
/\ LoopTrait101("Optional",FALSE,FALSE)="NoRuleIn10.1.6"
/\ ResolveMandatoryLoop101(mandatory,ended,17,17,2157,[i \in 1..2158 |-> 17],LoopProfile101)
/\ ResolveMandatoryLoop101(mandatory,[mandatory EXCEPT !.phase="Ended"],17,17,0,<<17>>,LoopProfile101)
/\ ~ResolveMandatoryLoop101(mandatory,ended,17,18,2157,[i \in 1..2158 |-> 17],LoopProfile101)
/\ ResolveMandatoryLoop101(mandatory,[mandatory EXCEPT !.phase="Ended",!.iterations=2],0,2,2,<<0,1,2>>,LoopIncrement101)
/\ ~ResolveMandatoryLoop101(mandatory,[mandatory EXCEPT !.phase="Ended",!.iterations=2],0,9,2,<<0,1,9>>,LoopIncrement101)
/\ ResolveOptionalTraversalLoop101(optional,[optional EXCEPT !.phase="Ended",!.disposition="WithdrawTraversal"],FALSE,"SideB","WithdrawTraversal")
/\ ResolveOptionalTraversalLoop101(optional,[optional EXCEPT !.phase="Ended",!.disposition="Continue"],TRUE,"SideA","Continue")
/\ ~ResolveOptionalTraversalLoop101(optional,[optional EXCEPT !.phase="Ended",!.disposition="Continue"],FALSE,"SideA","Continue")
/\ ~ResolveOptionalTraversalLoop101(optional,[optional EXCEPT !.phase="Ended",!.disposition="WithdrawTraversal"],TRUE,"SideB","WithdrawTraversal")
/\ ~ResolveOptionalTraversalLoop101(optional,[optional EXCEPT !.phase="Ended",!.disposition="Continue"],TRUE,"SideB","Continue")Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LoopIncrement101, LoopProfile101, Obj101, ConversionExitPlan101, ConversionExitPost101, ConversionProperties101, ConversionValid101, LoopTrait101, NamedReference101, PurgeClusterOriginalProjectionPost101, PurgeClusterPlan101, ResolveMandatoryLoop101, ResolveOptionalTraversalLoop101, UniqueActivationPlan101, UniqueActivationRetire101, Without101, CardFacts10, CardRepositoryPin10
ImpossibleLegal103 · operator
reference-profile · input revision 2 · CC0 1.0
ImpossibleLegal103(selected) == FALSEExact module download · Source bundle and reproduction instructions
InfoObj102 · operator
reference-profile · input revision 2 · CC0 1.0
InfoObj102(card,form,kind,zone,host,virtual,face,loc) ==
[card |-> card,form |-> form,kind |-> kind,zone |-> zone,host |-> host,virtual |-> virtual,face |-> face,loc |-> loc]Exact module download · Source bundle and reproduction instructions
InformationChecks102 · operator
reference-profile · input revision 2 · CC0 1.0
InformationChecks102 ==
LET o==[i \in 1..7 |-> CASE i=1 -> InfoObj102("Specimen0038","Card","Objective","SideADeck",0,FALSE,"NA",1)
[] i=2 -> InfoObj102("Specimen0221","Card","Facility","SideADeck",0,FALSE,"NA",2)
[] i=3 -> InfoObj102("Specimen0221","Card","Facility","SideAHand",0,FALSE,"NA",3)
[] i=4 -> InfoObj102("Specimen0221","Card","Facility","Play",0,FALSE,"Down","root1")
[] i=5 -> InfoObj102("Specimen0221","Card","Facility","SideADiscard",0,FALSE,"Down",5)
[] i=6 -> InfoObj102("Specimen0118","Card","Action","SideBDiscard",0,FALSE,"Up",6)
[] OTHER -> InfoObj102("none","Counter","ResourceUnit","SideBResourceUnits",0,FALSE,"Up",7)]
controllers==[i \in DOMAIN o |-> IF i \in {6,7} THEN "SideB" ELSE "SideA"]
Specimen0118==[id \in {91} |-> [object |-> 1,zone |-> "SideADeck",loc |-> 1,viewers |-> {"SideB"}]]
exposed==[id \in {92} |-> [object |-> 4,zone |-> "Play",loc |-> "root1",viewers |-> SetupPlayers]]
deckFact==CardProfileFact102(1,o,controllers,Empty10,100)
lookFact==CardProfileFact102(1,o,controllers,Specimen0118,100)
handFact==CardProfileFact102(3,o,controllers,Empty10,100)
deployedFact==CardProfileFact102(4,o,controllers,Empty10,100)
archivedFact==CardProfileFact102(5,o,controllers,Empty10,100)
bDiscardPileFact==CardProfileFact102(6,o,controllers,Empty10,100)
resourceUnits==ResourceUnitPoolFact102("SideB",o,100)
counts==ZoneCountFact102("SideADeck",o,100)
facts==[id \in {1,2,3,4,5,6,7,8} |-> CASE id=1 -> deckFact [] id=2 -> handFact [] id=3 -> deployedFact
[] id=4 -> archivedFact [] id=5 -> bDiscardPileFact [] id=6 -> resourceUnits [] id=7 -> counts [] OTHER -> lookFact]
secretSwap==[facts EXCEPT ![1].value="Specimen0221"]
observation==[tag |-> "AuthoritativeObservation",player |-> "SideB",fact |-> 8,value |-> "Specimen0038",snapshot |-> 100]
bluff==[tag |-> "Claim",speaker |-> "SideA",recipient |-> "SideB",fact |-> 3,value |-> "Specimen0038",snapshot |-> 100,verifiedOpen |-> FALSE]
honest==[bluff EXCEPT !.value="Specimen0221"]
declaredChoice==[source |-> 30,key |-> "ChosenBarrier",target |-> 40]
choices==[id \in {700} |-> declaredChoice]
openChoices==PublicChoiceFacts102(choices,100)
laterChoices==PublicChoiceFacts102(choices,200)
response==[id \in {700} |-> [value |-> declaredChoice,snapshot |-> 200]]
core==CoreInformationCatalog102(o,controllers,Empty10,choices,100)
coreChangedHidden==CoreInformationCatalog102([o EXCEPT ![1].card="Specimen0221"],controllers,Empty10,choices,100)
duringLook==CoreInformationCatalog102(o,controllers,Specimen0118,choices,100)
hosted==[id \in {1,2,3} |-> CASE id=1 -> InfoObj102("Specimen0118","Card","Action","Play",3,FALSE,"Down",3)
[] id=2 -> InfoObj102("Specimen0088","Card","Technique","Play",3,FALSE,"Down",3)
[] OTHER -> InfoObj102("Specimen0227","Card","Support","Play",0,FALSE,"Up","root")]
hostedControllers==[id \in DOMAIN hosted |-> "SideB"]
oneHostedGrant==[id \in {93} |-> [object |-> 1,zone |-> "Play",loc |-> 3,viewers |-> {"SideA"}]]
IN /\ InformationClass102(SetupPlayers)="Open"
/\ InformationClass102({"SideA"})="Hidden" /\ InformationClass102({})="Hidden"
/\ deckFact.viewers={} /\ lookFact.viewers={"SideB"}
/\ handFact.viewers={"SideA"} /\ deployedFact.viewers={"SideA"} /\ archivedFact.viewers={"SideA"}
/\ bDiscardPileFact.viewers=SetupPlayers
/\ CardProfileFact102(4,o,controllers,exposed,100).viewers=SetupPlayers
/\ resourceUnits.value=1 /\ resourceUnits.viewers=SetupPlayers /\ counts.value=2 /\ counts.viewers=SetupPlayers
/\ PlayerInformationView102(facts,"SideB",100)=[id \in {5,6,7,8} |-> facts[id].value]
/\ PlayerInformationView102(facts,"SideB",100)=PlayerInformationView102(secretSwap,"SideB",100)
/\ ObserveCurrentInformation102(<<>>,<<observation>>,facts,8,"SideB",100)
/\ ~ObserveCurrentInformation102(<<>>,<<[observation EXCEPT !.fact=1]>>,facts,1,"SideB",100)
/\ ~ObserveCurrentInformation102(<<>>,<<observation>>,facts,8,"SideB",101)
/\ ~ObserveCurrentInformation102(<<>>,<<[observation EXCEPT !.tag="Claim"]>>,facts,8,"SideB",100)
/\ CardProfileFact102(1,o,controllers,Empty10,101).viewers={}
/\ CurrentLookViewers102(1,[o EXCEPT ![1].loc=2],Specimen0118)={}
/\ CardProfileFact102(2,o,controllers,Specimen0118,100).viewers={}
/\ CommunicateInformation102(<<>>,<<bluff>>,o,o,facts,3,"SideA","SideB","Specimen0038",100)
/\ CommunicateInformation102(<<>>,<<honest>>,o,o,facts,3,"SideA","SideB","Specimen0221",100)
/\ ~CommunicateInformation102(<<>>,<<bluff>>,o,[o EXCEPT ![4].card="Specimen0038"],facts,3,"SideA","SideB","Specimen0038",100)
/\ ~CommunicateInformation102(<<>>,<<bluff>>,o,o,facts,1,"SideA","SideB","Specimen0038",100)
/\ ~CommunicateInformation102(<<>>,<<[bluff EXCEPT !.fact=6,!.value=9,!.verifiedOpen=TRUE]>>,o,o,facts,6,"SideA","SideB",9,100)
/\ DiscoverOpenInformation102(facts,"SideA",{5,6,7},[id \in {5,6,7} |-> [value |-> facts[id].value,snapshot |-> 100]],100)
/\ ~DiscoverOpenInformation102(facts,"SideA",{5,6,7},[id \in {5,6} |-> [value |-> facts[id].value,snapshot |-> 100]],100)
/\ ~DiscoverOpenInformation102(facts,"SideB",{2},[id \in {2} |-> [value |-> "Specimen0221",snapshot |-> 100]],100)
/\ PlayerInformationView102(openChoices,"SideA",100)[700]=declaredChoice
/\ PlayerInformationView102(openChoices,"SideB",100)[700]=declaredChoice
/\ DiscoverOpenInformation102(laterChoices,"SideA",{700},response,200)
/\ ~DiscoverOpenInformation102(laterChoices,"SideA",{700},[response EXCEPT ![700].value.target=41],200)
/\ ~DiscoverOpenInformation102(laterChoices,"SideA",{700},[response EXCEPT ![700].snapshot=100],200)
/\ ~DiscoverOpenInformation102(openChoices,"SideA",{700},response,200)
/\ PublicChoiceFacts102(Empty10,201)=Empty10
/\ PlayerInformationView102(facts,"SideB",101)=Empty10
/\ PlayerInformationView102(core,"SideB",100)=PlayerInformationView102(coreChangedHidden,"SideB",100)
/\ <<"CardProfile",1>> \notin DOMAIN PlayerInformationView102(core,"SideB",100)
/\ PlayerInformationView102(duringLook,"SideB",100)[<<"CardProfile",1>>]="Specimen0038"
/\ <<"CardProfile",2>> \notin DOMAIN PlayerInformationView102(duringLook,"SideB",100)
/\ {<<"ZoneCount",z>> : z \in {"SideAHand","SideADeck","SideBHand","SideBDeck"}} \subseteq DOMAIN PlayerInformationView102(core,"SideB",100)
/\ {<<"ResourceUnitPool",p>> : p \in SetupPlayers} \subseteq DOMAIN PlayerInformationView102(core,"SideA",100)
/\ PlayerInformationView102(core,"SideA",100)[<<"Choice",700>>]=declaredChoice
/\ ObserveCurrentInformation102(<<observation>>,Append(<<observation>>,[observation EXCEPT !.player="SideA",!.fact=3,!.value="Specimen0221"]),facts,3,"SideA",100)
/\ CardProfileFact102(1,hosted,hostedControllers,oneHostedGrant,100).viewers=SetupPlayers
/\ CardProfileFact102(2,hosted,hostedControllers,oneHostedGrant,100).viewers={"SideB"}
/\ CardFacts10["Specimen0088"].kind="Technique" /\ CardFacts10["Specimen0118"].kind="Action"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Empty10, InfoObj102, CardProfileFact102, CommunicateInformation102, CoreInformationCatalog102, CurrentLookViewers102, DiscoverOpenInformation102, InformationClass102, ObserveCurrentInformation102, PlayerInformationView102, PublicChoiceFacts102, ResourceUnitPoolFact102, ZoneCountFact102, SetupPlayers, CardFacts10
Init10 · operator
reference-profile · input revision 2 · CC0 1.0
Init10 == block10 \in 1..14Exact module download · Source bundle and reproduction instructions
Resolved project definitions: block10
LiabilityMarkerAtom106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerAtom106(card,operation,value) ==
[id |-> 1,kind |-> "LiabilityMarker",operation |-> operation,value |-> value,target |-> "SideA",actor |-> IF operation="Give" THEN "SideB" ELSE "SideA",
baseOrigin |-> ObjectAbilitySource9(900),sourceCard |-> card,sourceSHA |-> CardFacts10[card].sourceSHA,preventable |-> TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, CardFacts10
LiabilityMarkerContext106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerContext106(atom,world,removed) ==
[id |-> 10601,phase |-> "Resolving",currentRef |-> DamageReference104(0),currentWorld |-> world.id,
templates |-> [id \in {1} |-> atom],state |-> [effects |-> IF removed THEN Empty10 ELSE [id \in {1} |-> atom]],
actualEffects |-> IF removed THEN Empty10 ELSE [id \in {1} |-> atom]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageReference104, Empty10
LiabilityMarkerConvertedChecks106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerConvertedChecks106 ==
LET initial==LiabilityMarkerPayWorld106(2)
converted==ReplacementOverlay99(initial.objects[100],[card |-> "Specimen0046",owner |-> "SideA",properties |-> [kind |-> "ResourceUnit"],marks |-> {"ConvertedResourceUnitMark"}])
world==[initial EXCEPT !.objects[100]=converted]
selected=={100,101}
successors==[id \in {100} |-> 1000]
objects==CheckpointRetireMap103(world.objects,selected,successors,CheckpointPrinted103,CheckpointOwners103,{100})
event==MovementEvent8(9000,"Retire",{100})
history==[id \in {9000} |-> event]
ending==LiabilityMarkerEnd106(world.traversal)
endWorld==[world EXCEPT !.traversal=ending.traversal]
conversion==[mode |-> "Counter",card |-> "Specimen0046",createdBy |-> 444,owner |-> "SideA",gained |-> [kind |-> "ResourceUnit"]]
receipt==[original |-> 100,successor |-> 1000,physical |-> "Specimen0046",owner |-> "SideA",complete |-> TRUE]
IN /\ SpendLiabilityMarkerFund106(world,objects,world.resourceUnitCost,selected,LiabilityMarkerPayment106(world,selected),{},successors,DOMAIN world.objects,
CheckpointPrinted103,CheckpointOwners103,{100},9000,Empty10,history,{event})
/\ ReturnLiabilityMarkerFund106(ending,[ending EXCEPT !.fundReturned=TRUE],endWorld,objects,successors,DOMAIN world.objects,
CheckpointPrinted103,CheckpointOwners103,{100},9000,Empty10,history,{event})
/\ ConversionExitPost101(conversion,CheckpointPrinted103["Specimen0046"],100,1000,Without101(world.objects,{101}),objects,DOMAIN world.objects,"SideADiscard","LiabilityMarkerResourceUnitLeaves",receipt)
/\ objects[1000].form="Card" /\ objects[1000].zone="SideADiscard" /\ objects[1000].marks={}
/\ ~BankSpendReturn4(world.objects,Without101(world.objects,selected),selected,TRUE)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, CheckpointOwners103, CheckpointPrinted103, Empty10, LiabilityMarkerEnd106, LiabilityMarkerPayWorld106, LiabilityMarkerPayment106, CheckpointRetireMap103, ConversionExitPost101, ReturnLiabilityMarkerFund106, SpendLiabilityMarkerFund106, Without101, BankSpendReturn4, MovementEvent8
LiabilityMarkerCost106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerCost106(world,amount) ==
[tag |-> "ResourceUnitCostContext",id |-> 700,status |-> "Paying",source |-> RuleAbilitySource9("ActualOwnerCost"),player |-> "SideB",traversalId |-> world.traversal.id,snapshotId |-> world.id,amount |-> amount]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: RuleAbilitySource9
LiabilityMarkerDeclarations106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerDeclarations106(world) ==
IF 90 \in DOMAIN world.objects THEN [id \in {1} |-> [snapshotId |-> world.id,counters |-> {90},sourceObject |-> world.objects[54],sourceSHA |-> CardFacts10["Specimen0057"].sourceSHA,
projection |-> StaticProjection94(LiabilityMarkerSyntax106,LiabilityMarkerPart106,1)]] ELSE Empty10Exact module download · Source bundle and reproduction instructions
Resolved project definitions: StaticProjection94, Empty10, LiabilityMarkerPart106, LiabilityMarkerSyntax106, CardFacts10
LiabilityMarkerEnd106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerEnd106(traversal) ==
[traversal |-> [traversal EXCEPT !.phase="TraversalEnds",!.step="ProcedureCode84dea7dc8ecc",!.ending=TRUE],phaseEndedIds |-> {},windows |-> <<>>,
windowsDone |-> TRUE,fundReturned |-> FALSE,resultDeclared |-> FALSE,returned |-> FALSE]Exact module download · Source bundle and reproduction instructions
LiabilityMarkerInit106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerInit106(id) ==
[OpenInitiation6(OpenTraversal6(id,10*id,"LiabilityMarkerTraversalCaller")) EXCEPT !.traversal.step="ProcedureCodeacc82dbcc545",!.traversal.attacked="SchemaAtom082",!.announced=TRUE,!.costsPaid=TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: OpenInitiation6, OpenTraversal6
LiabilityMarkerLifecycleChecks106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerLifecycleChecks106 ==
LET initial==LiabilityMarkerWorld106(2,TRUE,1)
initiation==LiabilityMarkerInit106(1)
funded==[initiation EXCEPT !.badPubAdded=TRUE]
added==[id \in 110..112 |-> LiabilityMarkerFundRow106]
loaded==ReplacementOverlay99(initial.objects,added)
grantEvent==[tag |-> "LiabilityMarkerFundLoaded",traversalId |-> 1,source |-> RuleAbilitySource9("ProcedureCode5da712559aad"),snapshotId |-> 100,added |-> 110..112,amount |-> 3]
beginning==[funded EXCEPT !.traversal.step="ProcedureCode4d6bd06d2c9f"]
begun==[beginning EXCEPT !.traversal.formalBegun=TRUE]
live==[initial EXCEPT !.id=101,!.objects=loaded,!.traversal=begun.traversal,!.inside={TimingRef9("SchemaAtom138",1)}]
paying==[live EXCEPT !.resourceUnitCost=LiabilityMarkerCost106(live,3)]
selected=={100,110,200}
afterSpend==[paying EXCEPT !.id=102,!.objects=Without101(@,selected)]
take==LiabilityMarkerAtom106("Specimen0111","Take",1)
takeContext==LiabilityMarkerContext106(take,afterSpend,FALSE)
extraBP==[id \in {120} |-> LiabilityMarkerCounterRow106]
afterTake==[afterSpend EXCEPT !.id=103,!.objects=ReplacementOverlay99(@,extraBP)]
remove==LiabilityMarkerAtom106("Specimen0081","Remove",2)
removeContext==LiabilityMarkerContext106(remove,afterTake,FALSE)
afterRemove==[afterTake EXCEPT !.id=104,!.objects=Without101(@,{1,2})]
otherFund==[id \in {190} |-> LiabilityMarkerFundRow106]
extraFundWorld==[afterRemove EXCEPT !.id=105,!.objects=ReplacementOverlay99(@,otherFund)]
ending==LiabilityMarkerEnd106(extraFundWorld.traversal)
endWorld==[extraFundWorld EXCEPT !.traversal=ending.traversal]
returned==[ending EXCEPT !.fundReturned=TRUE]
allFund==LiabilityMarkerFundIds106(endWorld.objects)
empty==Without101(endWorld.objects,allFund)
nextInit==LiabilityMarkerInit106(2)
nextWorld==[extraFundWorld EXCEPT !.id=106,!.objects=empty,!.traversal=nextInit.traversal,!.inside={}]
nextAdded==[id \in {310,311} |-> LiabilityMarkerFundRow106]
nextObjects==ReplacementOverlay99(empty,nextAdded)
nextEvent==[tag |-> "LiabilityMarkerFundLoaded",traversalId |-> 2,source |-> RuleAbilitySource9("ProcedureCode5da712559aad"),snapshotId |-> 106,added |-> {310,311},amount |-> 2]
IN /\ GrantLiabilityMarkerFund106(initiation,funded,initial,loaded,LiabilityMarkerDeclarations106(initial),CardFacts10,added,DOMAIN initial.objects,{grantEvent})
/\ Cardinality(LiabilityMarkerFundIds106(loaded))=4 /\ BaseSideBPoolIds106(loaded)={200,201}
/\ ~GrantLiabilityMarkerFund106(initiation,funded,initial,loaded,LiabilityMarkerDeclarations106(initial),CardFacts10,added,DOMAIN initial.objects \cup {110},{grantEvent})
/\ ~GrantLiabilityMarkerFund106([initiation EXCEPT !.costsPaid=FALSE],[funded EXCEPT !.costsPaid=FALSE],initial,loaded,LiabilityMarkerDeclarations106(initial),CardFacts10,added,DOMAIN initial.objects,{grantEvent})
/\ ~GrantLiabilityMarkerFund106(funded,funded,initial,loaded,LiabilityMarkerDeclarations106(initial),CardFacts10,added,DOMAIN initial.objects,{grantEvent})
/\ ~GrantLiabilityMarkerFund106([initiation EXCEPT !.traversal.step="ProcedureCode4d6bd06d2c9f"],[funded EXCEPT !.traversal.step="ProcedureCode4d6bd06d2c9f"],[initial EXCEPT !.traversal.step="ProcedureCode4d6bd06d2c9f"],loaded,LiabilityMarkerDeclarations106(initial),CardFacts10,added,DOMAIN initial.objects,{grantEvent})
/\ FormalTraversalBegin6(beginning,begun,{TraversalBeginEvent6(beginning.traversal)})
/\ SpendLiabilityMarkerFund106(paying,afterSpend.objects,paying.resourceUnitCost,selected,LiabilityMarkerPayment106(paying,selected),{},Empty10,DOMAIN paying.objects,
CheckpointPrinted103,CheckpointOwners103,{},9000,Empty10,Empty10,{})
/\ TakeLiabilityMarker106(takeContext,takeContext.currentRef,afterSpend,1,CardFacts10,LiabilityMarkerPacketFixture106(take,afterSpend,FALSE),afterTake.objects,extraBP,DOMAIN afterSpend.objects,
{[tag |-> "LiabilityMarkerTaken",player |-> "SideA",actor |-> "SideA",packet |-> LiabilityMarkerPacketFixture106(take,afterSpend,FALSE),counters |-> {120},amount |-> 1]})
/\ LiabilityMarkerQuantity106(afterTake.objects)=4 /\ LiabilityMarkerFundIds106(afterTake.objects)={111,112}
/\ RemoveLiabilityMarker106(removeContext,removeContext.currentRef,afterTake,1,CardFacts10,LiabilityMarkerPacketFixture106(remove,afterTake,FALSE),afterRemove.objects,{1,2},Empty10,DOMAIN afterTake.objects,
CheckpointPrinted103,CheckpointOwners103,{},9001,Empty10,Empty10,{})
/\ LiabilityMarkerQuantity106(afterRemove.objects)=2 /\ LiabilityMarkerFundIds106(afterRemove.objects)={111,112}
/\ BankMintProjection4(afterRemove.objects,extraFundWorld.objects,otherFund,1,"ResourceUnit",DOMAIN afterRemove.objects,[kind |-> "Zone",zone |-> "Bank"],TRUE,TRUE)
/\ allFund={111,112,190}
/\ ReturnLiabilityMarkerFund106(ending,returned,endWorld,empty,Empty10,DOMAIN endWorld.objects,CheckpointPrinted103,CheckpointOwners103,{},9002,Empty10,Empty10,{})
/\ ~ReturnLiabilityMarkerFund106(ending,returned,endWorld,Without101(endWorld.objects,{111,112}),Empty10,DOMAIN endWorld.objects,CheckpointPrinted103,CheckpointOwners103,{},9002,Empty10,Empty10,{})
/\ ~ReturnLiabilityMarkerFund106([ending EXCEPT !.windowsDone=FALSE],[returned EXCEPT !.windowsDone=FALSE],endWorld,empty,Empty10,DOMAIN endWorld.objects,CheckpointPrinted103,CheckpointOwners103,{},9002,Empty10,Empty10,{})
/\ LiabilityMarkerQuantity106(empty)=2 /\ BaseSideBPoolIds106(empty)={201}
/\ GrantLiabilityMarkerFund106(nextInit,[nextInit EXCEPT !.badPubAdded=TRUE],nextWorld,nextObjects,LiabilityMarkerDeclarations106(nextWorld),CardFacts10,nextAdded,DOMAIN nextWorld.objects,{nextEvent})Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, RuleAbilitySource9, TimingRef9, CheckpointOwners103, CheckpointPrinted103, Empty10, LiabilityMarkerAtom106, LiabilityMarkerContext106, LiabilityMarkerCost106, LiabilityMarkerDeclarations106, LiabilityMarkerEnd106, LiabilityMarkerInit106, LiabilityMarkerPacketFixture106, LiabilityMarkerPayment106, LiabilityMarkerWorld106, BaseSideBPoolIds106, GrantLiabilityMarkerFund106, LiabilityMarkerCounterRow106, LiabilityMarkerFundIds106, LiabilityMarkerFundRow106, LiabilityMarkerQuantity106, RemoveLiabilityMarker106, ReturnLiabilityMarkerFund106, SpendLiabilityMarkerFund106, TakeLiabilityMarker106, Without101, BankMintProjection4, CardFacts10, FormalTraversalBegin6, TraversalBeginEvent6
LiabilityMarkerObjects106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerObjects106(count,exampleFamily053,fund) ==
[id \in (1..count) \cup (IF exampleFamily053 THEN {90} ELSE {}) \cup (100..(99+fund)) \cup {54,200,201,210,500} |->
CASE id \in 1..count -> LiabilityMarkerCounterRow106
[] id=90 -> [LiabilityMarkerCounterRow106 EXCEPT !.virtual=TRUE]
[] id=54 -> ExposureMarkerCardFixture105("Specimen0057",IF exampleFamily053 THEN "Play" ELSE "SideBDiscard",FALSE)
[] id \in 100..(99+fund) -> LiabilityMarkerFundRow106
[] id=210 -> ExposureMarkerTokenFixture105("ResourceUnit","SideAResourceUnits",0,FALSE)
[] id=500 -> ExposureMarkerTokenFixture105("ResourceUnit","Play",54,FALSE)
[] OTHER -> ExposureMarkerTokenFixture105("ResourceUnit","SideBResourceUnits",0,FALSE)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ExposureMarkerCardFixture105, ExposureMarkerTokenFixture105, LiabilityMarkerCounterRow106, LiabilityMarkerFundRow106
LiabilityMarkerPacketChecks106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerPacketChecks106 ==
/\ \A card \in {"Specimen0111","Specimen0121"} :
LET world==LiabilityMarkerWorld106(0,FALSE,1)
operation==IF card="Specimen0111" THEN "Take" ELSE "Give"
atom==LiabilityMarkerAtom106(card,operation,1)
context==LiabilityMarkerContext106(atom,world,FALSE)
packet==LiabilityMarkerPacketFixture106(atom,world,FALSE)
added==[id \in {10} |-> LiabilityMarkerCounterRow106]
after==ReplacementOverlay99(world.objects,added)
event==[tag |-> "LiabilityMarkerTaken",player |-> "SideA",actor |-> atom.actor,packet |-> packet,counters |-> {10},amount |-> 1]
omitted==LiabilityMarkerPacketFixture106(atom,world,TRUE)
IN /\ TakeLiabilityMarker106(context,context.currentRef,world,1,CardFacts10,packet,after,added,DOMAIN world.objects,{event})
/\ LiabilityMarkerFundIds106(after)={100} /\ after[100]=world.objects[100]
/\ PreventExpectedWhole99(context.state.effects,Empty10,1)
/\ TakeLiabilityMarker106(LiabilityMarkerContext106(atom,world,TRUE),context.currentRef,world,1,CardFacts10,omitted,world.objects,Empty10,DOMAIN world.objects,{})
/\ ~TakeLiabilityMarker106(context,context.currentRef,world,1,CardFacts10,[packet EXCEPT !.amount=2],after,added,DOMAIN world.objects,{event})
/\ ~TakeLiabilityMarker106([context EXCEPT !.currentWorld=99],context.currentRef,world,1,CardFacts10,packet,after,added,DOMAIN world.objects,{event})
/\ ~LiabilityMarkerPacket106([context EXCEPT !.templates[1].sourceSHA="wrong-sha",!.state.effects[1].sourceSHA="wrong-sha",!.actualEffects[1].sourceSHA="wrong-sha"],context.currentRef,world,1,CardFacts10,[packet EXCEPT !.sourceSHA="wrong-sha"])
/\ \A value \in {-2,0} :
LET world==LiabilityMarkerWorld106(0,FALSE,1)
atom==LiabilityMarkerAtom106("Specimen0111","Take",value)
context==LiabilityMarkerContext106(atom,world,FALSE)
packet==LiabilityMarkerPacketFixture106(atom,world,FALSE)
IN TakeLiabilityMarker106(context,context.currentRef,world,1,CardFacts10,packet,world.objects,Empty10,DOMAIN world.objects,{})Exact module download · Source bundle and reproduction instructions
Resolved project definitions: PreventExpectedWhole99, ReplacementOverlay99, Empty10, LiabilityMarkerAtom106, LiabilityMarkerContext106, LiabilityMarkerPacketFixture106, LiabilityMarkerWorld106, LiabilityMarkerCounterRow106, LiabilityMarkerFundIds106, LiabilityMarkerPacket106, TakeLiabilityMarker106, CardFacts10
LiabilityMarkerPacketFixture106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerPacketFixture106(atom,world,removed) ==
[contextId |-> 10601,reference |-> DamageReference104(0),effectId |-> 1,snapshotId |-> world.id,source |-> atom.baseOrigin,
sourceCard |-> atom.sourceCard,sourceSHA |-> atom.sourceSHA,operation |-> atom.operation,actor |-> atom.actor,amount |-> IF removed \/ atom.value<=0 THEN 0 ELSE atom.value]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageReference104
LiabilityMarkerPart106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerPart106 == [id |-> 1,ability |-> 1060,conditions |-> {},target |-> "SideA",property |-> "AdditionalLiabilityMarker"]Exact module download · Source bundle and reproduction instructions
LiabilityMarkerPayWorld106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerPayWorld106(amount) ==
LET w==LiabilityMarkerWorld106(1,FALSE,2)
r==[w.traversal EXCEPT !.formalBegun=TRUE,!.phase="Movement",!.step="ProcedureCode4f60245a1dde"]
live==[w EXCEPT !.traversal=r,!.inside={TimingRef9("SchemaAtom138",1)}]
IN [live EXCEPT !.resourceUnitCost=LiabilityMarkerCost106(live,amount)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: TimingRef9, LiabilityMarkerCost106, LiabilityMarkerWorld106
LiabilityMarkerPayment106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerPayment106(world,selected) ==
[tag |-> "CompletedResourceUnitMethod",id |-> world.resourceUnitCost.id,source |-> world.resourceUnitCost.source,player |-> "SideB",traversalId |-> world.traversal.id,
snapshotId |-> world.id,amount |-> world.resourceUnitCost.amount,paidCounterIds |-> selected,fundCounters |-> selected \cap LiabilityMarkerFundIds106(world.objects),complete |-> TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LiabilityMarkerFundIds106
LiabilityMarkerPaymentChecks106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerPaymentChecks106 ==
LET world==LiabilityMarkerPayWorld106(2)
selected=={100,200}
stale==[world EXCEPT !.inside={}]
outside==[world EXCEPT !.traversal=NoTraversal6,!.inside={}]
sideA==[world EXCEPT !.resourceUnitCost.player="SideA"]
wrongTraversal==[world EXCEPT !.resourceUnitCost.traversalId=2]
oldCost==[world EXCEPT !.resourceUnitCost.snapshotId=99]
virtual==[world EXCEPT !.objects[100].virtual=TRUE]
beforeTraversal==[world EXCEPT !.traversal=LiabilityMarkerInit106(1).traversal,!.inside={}]
IN /\ LiabilityMarkerSpendValid106(world,selected)
/\ LiabilityMarkerSpendSources106(LiabilityMarkerPayment106(world,selected))={RuleAbilitySource9("ProcedureCode51c5eb4c9e6c")}
/\ LiabilityMarkerSpendSources106(LiabilityMarkerPayment106(world,{200,201}))={}
/\ LiabilityMarkerSpendValid106(world,{100,101}) /\ LiabilityMarkerSpendValid106(world,{200,201})
/\ ~LiabilityMarkerSpendValid106(stale,selected) /\ DuringTraversal6(stale.traversal)
/\ ~LiabilityMarkerSpendValid106(outside,selected)
/\ ~LiabilityMarkerSpendValid106([world EXCEPT !.traversal.complete=TRUE],selected)
/\ ~LiabilityMarkerSpendValid106(beforeTraversal,selected)
/\ ~LiabilityMarkerSpendValid106(sideA,selected)
/\ ~LiabilityMarkerSpendValid106(wrongTraversal,selected) /\ ~LiabilityMarkerSpendValid106(oldCost,selected)
/\ ~LiabilityMarkerSpendValid106(world,{100}) /\ ~LiabilityMarkerSpendValid106(world,{100,210}) /\ ~LiabilityMarkerSpendValid106(world,{100,500})
/\ ~LiabilityMarkerSpendValid106(virtual,selected)
/\ ~SpendLiabilityMarkerFund106(world,Without101(world.objects,selected),world.resourceUnitCost,selected,LiabilityMarkerPayment106(world,selected),{700},Empty10,
DOMAIN world.objects,CheckpointPrinted103,CheckpointOwners103,{},9000,Empty10,Empty10,{})
/\ LET exampleFamily053World==LiabilityMarkerWorld106(0,TRUE,1)
atom==LiabilityMarkerAtom106("Specimen0081","Remove",2)
context==LiabilityMarkerContext106(atom,exampleFamily053World,FALSE)
packet==LiabilityMarkerPacketFixture106(atom,exampleFamily053World,FALSE)
IN /\ RemoveLiabilityMarker106(context,context.currentRef,exampleFamily053World,1,CardFacts10,packet,exampleFamily053World.objects,{},Empty10,DOMAIN exampleFamily053World.objects,CheckpointPrinted103,CheckpointOwners103,{},9000,Empty10,Empty10,{})
/\ ~RemoveLiabilityMarker106(context,context.currentRef,exampleFamily053World,1,CardFacts10,packet,Without101(exampleFamily053World.objects,{90}),{90},Empty10,DOMAIN exampleFamily053World.objects,CheckpointPrinted103,CheckpointOwners103,{},9000,Empty10,Empty10,{})Exact module download · Source bundle and reproduction instructions
Resolved project definitions: RuleAbilitySource9, CheckpointOwners103, CheckpointPrinted103, Empty10, LiabilityMarkerAtom106, LiabilityMarkerContext106, LiabilityMarkerInit106, LiabilityMarkerPacketFixture106, LiabilityMarkerPayWorld106, LiabilityMarkerPayment106, LiabilityMarkerSpendValid106, LiabilityMarkerWorld106, LiabilityMarkerSpendSources106, RemoveLiabilityMarker106, SpendLiabilityMarkerFund106, Without101, CardFacts10, DuringTraversal6, NoTraversal6
LiabilityMarkerSpendValid106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerSpendValid106(world,selected) ==
SpendLiabilityMarkerFund106(world,Without101(world.objects,selected),world.resourceUnitCost,selected,LiabilityMarkerPayment106(world,selected),{},Empty10,
DOMAIN world.objects,CheckpointPrinted103,CheckpointOwners103,{},9000,Empty10,Empty10,{})Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointOwners103, CheckpointPrinted103, Empty10, LiabilityMarkerPayment106, SpendLiabilityMarkerFund106, Without101
LiabilityMarkerSyntax106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerSyntax106 == [id |-> 1060,kind |-> "Static",source |-> ObjectAbilitySource9(54),units |-> <<[id |-> 1,category |-> "Declaration",subtype |-> "Plain"]>>]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9
LiabilityMarkerViewsChecks106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerViewsChecks106 ==
LET world==LiabilityMarkerWorld106(2,TRUE,1)
declarations==LiabilityMarkerDeclarations106(world)
expected==[id \in {1} |-> StaticProjection94(LiabilityMarkerSyntax106,LiabilityMarkerPart106,1)]
conditions==[tag |-> "StaticConditionSnapshot",ability |-> 1060,source |-> ObjectAbilitySource9(54),receipts |-> Empty10]
noPool==[world EXCEPT !.objects=Without101(@,{200,201})]
noPhysical==LiabilityMarkerWorld106(0,TRUE,0)
IN /\ ObserveStaticDeclarations94(LiabilityMarkerSyntax106,[id \in {1} |-> LiabilityMarkerPart106],TRUE,conditions,[id \in {1} |-> 1],expected)
/\ CurrentLiabilityMarker106(world,declarations,CardFacts10,3)
/\ LiabilityMarkerQuantity106(noPhysical.objects)=1 /\ MovableLiabilityMarkerIds106(noPhysical.objects)={}
/\ CurrentLiabilityMarker106(noPhysical,LiabilityMarkerDeclarations106(noPhysical),CardFacts10,1)
/\ MovableLiabilityMarkerIds106(world.objects)={1,2}
/\ LiabilityMarkerFundIds106(world.objects)={100} /\ BaseSideBPoolIds106(world.objects)={200,201}
/\ BaseSideBPoolIds106(noPool.objects)={} /\ LiabilityMarkerFundIds106(noPool.objects)={100}
/\ ModifiedCost(4,<<LiabilityMarkerQuantity106(world.objects)>>,<<>>)=7
/\ PlayLocation4(world.objects[100],0)=[kind |-> "ResourceUnitLocation",location |-> "LiabilityMarkerFund"]
/\ PlayResourceUnitLocationValid4(world.objects[100])
/\ LiabilityMarkerFundController106(world.objects[100],"none")="SideB"
/\ LiabilityMarkerFundController106(world.objects[1],"SideA")="SideA" /\ SetupCounterController(world.objects[1],"none","none")="SideA"
/\ ~CurrentLiabilityMarker106(world,Empty10,CardFacts10,3)
/\ ~CurrentLiabilityMarker106(world,[declarations EXCEPT ![1].snapshotId=99],CardFacts10,3)
/\ ~CurrentLiabilityMarker106(world,[declarations EXCEPT ![1].sourceSHA="wrong-sha"],CardFacts10,3)
/\ ~CurrentLiabilityMarker106([world EXCEPT !.activeAbilities={}],declarations,CardFacts10,3)
/\ ~CurrentLiabilityMarker106([world EXCEPT !.objects[54].zone="SideBDiscard"],[declarations EXCEPT ![1].sourceObject= [world.objects[54] EXCEPT !.zone="SideBDiscard"]],CardFacts10,3)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, ObserveStaticDeclarations94, StaticProjection94, Empty10, LiabilityMarkerDeclarations106, LiabilityMarkerPart106, LiabilityMarkerSyntax106, LiabilityMarkerWorld106, BaseSideBPoolIds106, CurrentLiabilityMarker106, LiabilityMarkerFundController106, LiabilityMarkerFundIds106, LiabilityMarkerQuantity106, MovableLiabilityMarkerIds106, Without101, ModifiedCost, PlayLocation4, PlayResourceUnitLocationValid4, SetupCounterController, CardFacts10
LiabilityMarkerWorld106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerWorld106(count,exampleFamily053,fund) ==
[id |-> 100,objects |-> LiabilityMarkerObjects106(count,exampleFamily053,fund),traversal |-> LiabilityMarkerInit106(1).traversal,
inside |-> {},started |-> TRUE,outcome |-> "Playing",activeAbilities |-> IF exampleFamily053 THEN {1060} ELSE {},
resourceUnitCost |-> [id |-> 0]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LiabilityMarkerInit106, LiabilityMarkerObjects106
LiabilityMarkerZeroGrantChecks106 · operator
reference-profile · input revision 2 · CC0 1.0
LiabilityMarkerZeroGrantChecks106 ==
LET zeroWorld==LiabilityMarkerWorld106(0,FALSE,1)
zeroInit==LiabilityMarkerInit106(1)
IN /\ GrantLiabilityMarkerFund106(zeroInit,[zeroInit EXCEPT !.badPubAdded=TRUE],zeroWorld,zeroWorld.objects,Empty10,CardFacts10,Empty10,DOMAIN zeroWorld.objects,{})
/\ LiabilityMarkerFundIds106(zeroWorld.objects)={100}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Empty10, LiabilityMarkerInit106, LiabilityMarkerWorld106, GrantLiabilityMarkerFund106, LiabilityMarkerFundIds106, CardFacts10
LinkBaseFixture107 · operator
reference-profile · input revision 2 · CC0 1.0
LinkBaseFixture107(world) ==
LET object==world.objects[world.sideBProfile]
definition==LinkDefinition107(world,object)
IN [tag |-> "CurrentBaseLink",snapshotId |-> world.id,object |-> world.sideBProfile,physical |-> object.card,definition |-> definition,
sourceSHA |-> CardFacts10[definition].sourceSHA,printedBase |-> LinkProfileFacts107[definition].baseLink,value |-> world.properties[world.sideBProfile].baseLink]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LinkDefinition107, LinkProfileFacts107, CardFacts10
LinkDeclaration107 · operator
reference-profile · input revision 2 · CC0 1.0
LinkDeclaration107(world,source,ability,origin,value) ==
[origin |-> origin,snapshotId |-> world.id,sourceObject |-> world.objects[source],definition |-> LinkDefinition107(world,world.objects[source]),
sourceSHA |-> CardFacts10[LinkDefinition107(world,world.objects[source])].sourceSHA,projection |-> StaticProjection94(LinkSyntax107(source,ability),LinkPart107(ability),value)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: StaticProjection94, LinkPart107, LinkSyntax107, LinkDefinition107, CardFacts10
LinkDeclaredWorld107 · operator
reference-profile · input revision 2 · CC0 1.0
LinkDeclaredWorld107(world) ==
[world EXCEPT !.linkDeclarations=[id \in EligiblePrintedLinkSources107(world) |-> LinkDeclaration107(world,id,world.printedLinkAbilities[id],"PrintedLink",1)]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LinkDeclaration107, EligiblePrintedLinkSources107
LinkFreshnessChecks107 · operator
reference-profile · input revision 2 · CC0 1.0
LinkFreshnessChecks107 ==
LET w==LinkDeclaredWorld107(LinkWorld107("Specimen0127",{21},FALSE))
base==LinkBaseFixture107(w)
declarations==w.linkDeclarations
wrongSHA==[w EXCEPT !.linkDeclarations[21].sourceSHA="wrong-sha"]
wrongObject==[w EXCEPT !.linkDeclarations[21].sourceObject.card="PhysicalItem0004"]
wrongSnapshot==[w EXCEPT !.linkDeclarations[21].snapshotId=99]
wrongValue==[w EXCEPT !.linkDeclarations[21].projection.value=2]
inactive==[w EXCEPT !.activeAbilities=@ \ {2100}]
uninstalled==[w EXCEPT !.objects[21].deployed=FALSE,!.objects[21].zone="SideBHand",!.linkDeclarations[21].sourceObject=[@ EXCEPT !.deployed=FALSE,!.zone="SideBHand"]]
facedown==[w EXCEPT !.objects[21].face="Down",!.linkDeclarations[21].sourceObject.face="Down"]
foreign==[w EXCEPT !.controllers[21]="SideA"]
duplicated==[w EXCEPT !.linkDeclarations=ReplacementOverlay99(@,[id \in {99} |-> declarations[21]])]
IN /\ LinkValid107(w)
/\ ~LinkValid107(wrongSHA) /\ ~LinkValid107(wrongObject) /\ ~LinkValid107(wrongSnapshot) /\ ~LinkValid107(wrongValue)
/\ ~LinkValid107(inactive) /\ ~LinkValid107(uninstalled) /\ ~LinkValid107(facedown) /\ ~LinkValid107(foreign) /\ ~LinkValid107(duplicated)
/\ ~ReadSideBLink107(w,CardFacts10,[base EXCEPT !.snapshotId=99],declarations,LinkReadFixture107(w))
/\ ~ReadSideBLink107(w,CardFacts10,[base EXCEPT !.sourceSHA="wrong-sha"],declarations,LinkReadFixture107(w))
/\ ~ReadSideBLink107(w,CardFacts10,[base EXCEPT !.printedBase=99],declarations,LinkReadFixture107(w))
/\ ~LinkValid107([w EXCEPT !.printedLinkAbilities=Without101(@,{22})])
/\ ~LinkValid107([w EXCEPT !.printedLinkAbilities[22]=2100])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, LinkBaseFixture107, LinkDeclaredWorld107, LinkReadFixture107, LinkValid107, LinkWorld107, ReadSideBLink107, Without101, CardFacts10
LinkObject107 · operator
reference-profile · input revision 2 · CC0 1.0
LinkObject107(definition,physical,deployed) ==
ReplacementOverlay99(CheckpointObject103(definition,"Play",deployed,0),[card |-> physical,side |-> CardFacts10[definition].side])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, CheckpointObject103, CardFacts10
LinkPart107 · operator
reference-profile · input revision 2 · CC0 1.0
LinkPart107(ability) == [id |-> 1,ability |-> ability,conditions |-> {},target |-> "SideB",property |-> "Connection"]Exact module download · Source bundle and reproduction instructions
LinkProfileAndUseChecks107 · operator
reference-profile · input revision 2 · CC0 1.0
LinkProfileAndUseChecks107 ==
LET blanked==LinkDeclaredWorld107(LinkWorld107("Specimen0127",{},TRUE))
baselineProfileFixture==LinkDeclaredWorld107(LinkWorld107("Specimen0229",{},TRUE))
replacement==[baselineProfileFixture EXCEPT !.id=101,!.sideBProfile=2,
!.objects=ReplacementOverlay99([@ EXCEPT ![1].zone="Outside"],[id \in {2} |-> LinkObject107("Specimen0163","PhysicalItem0012",FALSE)]),
!.definitions=ReplacementOverlay99(@,[physical \in {"PhysicalItem0012"} |-> "Specimen0163"]),
!.properties=ReplacementOverlay99(@,[id \in {2} |-> [baseLink |-> 0]])]
above==LinkDeclaredWorld107(LinkWorld107("Specimen0163",{21,22},FALSE))
below==LinkDeclaredWorld107(LinkWorld107("Specimen0163",{21},FALSE))
aboveSnapshot==[tag |-> "CurrentLinkInstructionSnapshot",id |-> 100,link |-> [player \in {"SideB"} |-> 2]]
belowSnapshot==[tag |-> "CurrentLinkInstructionSnapshot",id |-> 100,link |-> [player \in {"SideB"} |-> 1]]
signed==[baselineProfileFixture EXCEPT !.properties[1].baseLink= -3]
otherLive==[baselineProfileFixture EXCEPT !.objects[21].deployed=TRUE,!.activeAbilities={2100,2101}]
otherPrinted==LinkDeclaredWorld107(otherLive)
other==[otherPrinted EXCEPT !.linkDeclarations=ReplacementOverlay99(@,[id \in {900} |-> LinkDeclaration107(otherPrinted,21,2101,"OtherCompiled",-9)])]
IN /\ LinkValid107(blanked) /\ LinkReadFixture107(blanked).value=1 /\ blanked.activeAbilities={}
/\ LinkValid107(baselineProfileFixture) /\ LinkReadFixture107(baselineProfileFixture).value=2
/\ LinkValid107(replacement) /\ LinkReadFixture107(replacement).value=0
/\ ~ReadSideBLink107(replacement,CardFacts10,LinkBaseFixture107(baselineProfileFixture),Empty10,LinkReadFixture107(replacement))
/\ LinkInstructionSnapshot107(above,CardFacts10,LinkBaseFixture107(above),above.linkDeclarations,LinkReadFixture107(above),aboveSnapshot)
/\ InstructionLinkGate96(aboveSnapshot,"SideB")
/\ LinkInstructionSnapshot107(below,CardFacts10,LinkBaseFixture107(below),below.linkDeclarations,LinkReadFixture107(below),belowSnapshot)
/\ ~InstructionLinkGate96(belowSnapshot,"SideB")
/\ LinkValid107(signed) /\ LinkReadFixture107(signed).value= -3
/\ LinkValid107(other) /\ LinkReadFixture107(other).value= -6
/\ ~LinkValid107([other EXCEPT !.controllers[21]="SideA",!.linkDeclarations=Without101(@,{21})])
/\ ~LinkValid107([other EXCEPT !.linkDeclarations=ReplacementOverlay99(@,[id \in {901} |-> other.linkDeclarations[900]])])
/\ LinkValid107([baselineProfileFixture EXCEPT !.objects[70].zone="SideADiscard"]) /\ LinkReadFixture107(baselineProfileFixture).value=2Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InstructionLinkGate96, ReplacementOverlay99, Empty10, LinkBaseFixture107, LinkDeclaration107, LinkDeclaredWorld107, LinkObject107, LinkReadFixture107, LinkValid107, LinkWorld107, LinkInstructionSnapshot107, ReadSideBLink107, Without101, CardFacts10
LinkReadFixture107 · operator
reference-profile · input revision 2 · CC0 1.0
LinkReadFixture107(world) ==
[tag |-> "CurrentSideBLink",snapshotId |-> world.id,profile |-> world.sideBProfile,base |-> world.properties[world.sideBProfile].baseLink,
contributions |-> [id \in DOMAIN world.linkDeclarations |-> world.linkDeclarations[id].projection.value],
value |-> world.properties[world.sideBProfile].baseLink+SumMap([id \in DOMAIN world.linkDeclarations |-> world.linkDeclarations[id].projection.value])]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SumMap
LinkSyntax107 · operator
reference-profile · input revision 2 · CC0 1.0
LinkSyntax107(source,ability) == [id |-> ability,kind |-> "Static",source |-> ObjectAbilitySource9(source),units |-> <<[id |-> 1,category |-> "Declaration",subtype |-> "Plain"]>>]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9
LinkValid107 · operator
reference-profile · input revision 2 · CC0 1.0
LinkValid107(world) == ReadSideBLink107(world,CardFacts10,LinkBaseFixture107(world),world.linkDeclarations,LinkReadFixture107(world))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LinkBaseFixture107, LinkReadFixture107, ReadSideBLink107, CardFacts10
LinkValueChecks107 · operator
reference-profile · input revision 2 · CC0 1.0
LinkValueChecks107 ==
/\ \A profile \in DOMAIN LinkProfileFacts107, count \in 0..2 :
LET w==LinkDeclaredWorld107(LinkWorld107(profile,IF count=0 THEN {} ELSE IF count=1 THEN {21} ELSE {21,22},FALSE))
IN /\ LinkValid107(w) /\ LinkReadFixture107(w).value=LinkProfileFacts107[profile].baseLink+count
/\ w.objects[21].card#w.objects[22].card /\ LinkDefinition107(w,w.objects[21])=LinkDefinition107(w,w.objects[22])
/\ LET w==LinkDeclaredWorld107(LinkWorld107("Specimen0229",{21,22,23,24,25,26},FALSE))
base==LinkBaseFixture107(w)
declarations==w.linkDeclarations
syntax==LinkSyntax107(21,2100)
conditions==[tag |-> "StaticConditionSnapshot",ability |-> 2100,source |-> ObjectAbilitySource9(21),receipts |-> Empty10]
IN /\ LinkValid107(w) /\ base.printedBase=2 /\ LinkReadFixture107(w).value=8
/\ ObserveStaticDeclarations94(syntax,[id \in {1} |-> LinkPart107(2100)],TRUE,conditions,[id \in {1} |-> 1],[id \in {1} |-> declarations[21].projection])
/\ ~ReadSideBLink107(w,CardFacts10,base,Empty10,LinkReadFixture107(w))
/\ ~ReadSideBLink107([w EXCEPT !.linkDeclarations=Without101(@,{21})],CardFacts10,base,Without101(declarations,{21}),LinkReadFixture107([w EXCEPT !.linkDeclarations=Without101(@,{21})]))
/\ ~ReadSideBLink107(w,CardFacts10,base,declarations,[LinkReadFixture107(w) EXCEPT !.value=7])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, ObserveStaticDeclarations94, Empty10, LinkBaseFixture107, LinkDeclaredWorld107, LinkPart107, LinkReadFixture107, LinkSyntax107, LinkValid107, LinkWorld107, LinkDefinition107, ReadSideBLink107, Without101, LinkProfileFacts107, CardFacts10
LinkWorld107 · operator
reference-profile · input revision 2 · CC0 1.0
LinkWorld107(profile,deployed,blanked) ==
LET physical==profile \o "PhysicalItem0001"
objects==[id \in {1,21,22,23,24,25,26,70} |-> CASE id=1 -> LinkObject107(profile,physical,FALSE)
[] id=21 -> LinkObject107("Specimen0193","PhysicalItem0010",21 \in deployed)
[] id=22 -> LinkObject107("Specimen0193","PhysicalItem0011",22 \in deployed)
[] id=23 -> LinkObject107("Specimen0003","PhysicalItem0005",23 \in deployed)
[] id=24 -> LinkObject107("Specimen0079","PhysicalItem0003",24 \in deployed)
[] id=25 -> LinkObject107("Specimen0213","PhysicalItem0008",25 \in deployed)
[] id=26 -> LinkObject107("Specimen0093","Specimen0093-physical",26 \in deployed)
[] OTHER -> [LinkObject107("Specimen0154","PhysicalItem0007",FALSE) EXCEPT !.zone="SideAObjectiveCompletion"]]
definitions==[card \in {physical,"PhysicalItem0010","PhysicalItem0011","PhysicalItem0005","PhysicalItem0003","PhysicalItem0008","Specimen0093-physical","PhysicalItem0007"} |->
CASE card=physical -> profile [] card \in {"PhysicalItem0010","PhysicalItem0011"} -> "Specimen0193" [] card="PhysicalItem0005" -> "Specimen0003"
[] card="PhysicalItem0003" -> "Specimen0079" [] card="PhysicalItem0008" -> "Specimen0213" [] card="Specimen0093-physical" -> "Specimen0093" [] OTHER -> "Specimen0154"]
IN [id |-> 100,profileLinkFacts |-> LinkProfileFacts107,linkSymbolFacts |-> LinkSymbolFacts107,sideBProfile |-> 1,objects |-> objects,definitions |-> definitions,properties |-> [id \in {1} |-> [baseLink |-> LinkProfileFacts107[profile].baseLink]],
controllers |-> [id \in DOMAIN objects |-> IF id=70 THEN "SideA" ELSE "SideB"],printedLinkAbilities |-> [id \in 21..26 |-> id*100],
activeAbilities |-> {id*100 : id \in deployed} \cup (IF blanked \/ profile="Specimen0229" THEN {} ELSE {10}),linkDeclarations |-> Empty10]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Empty10, LinkObject107, LinkProfileFacts107, LinkSymbolFacts107
LoadAndEmptyChecks109 · operator
reference-profile · input revision 2 · CC0 1.0
LoadAndEmptyChecks109 ==
/\ \A card \in {"Specimen0060","Specimen0067","Specimen0181","Specimen0199","Specimen0230"} :
LET kind==IF card \in {"Specimen0060","Specimen0067"} THEN "ResourceUnit" ELSE IF card="Specimen0230" THEN "LiabilityMarker" ELSE "Power"
amount==CASE card="Specimen0060" -> 3 [] card="Specimen0067" -> 8 [] card="Specimen0181" -> 4 [] card="Specimen0199" -> 3 [] OTHER -> 6
w==LoadWorld109(card,kind)
loaded==CounterTraversalFixture109(w,"LoadCounters",kind,amount,1,{})
gone==CounterTraversalFixture109(loaded.after,"RemoveCounters",kind,amount+2,2,DOMAIN loaded.added)
IN /\ EmptyFixtureValid109(w) /\ ~EmptyReadFixture109(w,w.loadLinks[1]).empty
/\ CounterTraversalValid109(loaded) /\ Cardinality(DOMAIN loaded.added)=amount
/\ EmptyFixtureValid109(loaded.after) /\ ~EmptyReadFixture109(loaded.after,loaded.after.loadLinks[1]).empty
/\ CounterTraversalValid109(gone) /\ gone.after.loadHistory=loaded.after.loadHistory
/\ EmptyFixtureValid109(gone.after) /\ EmptyReadFixture109(gone.after,gone.after.loadLinks[1]).empty
/\ LET w==LoadWorld109("Specimen0060","ResourceUnit")
loaded==CounterTraversalFixture109(w,"LoadCounters","ResourceUnit",3,1,{})
extra==CounterTraversalFixture109(loaded.after,"PlaceCounters","ResourceUnit",2,2,{})
originalsGone==CounterTraversalFixture109(extra.after,"RemoveCounters","ResourceUnit",3,3,DOMAIN loaded.added)
allGone==CounterTraversalFixture109(originalsGone.after,"RemoveCounters","ResourceUnit",2,4,DOMAIN extra.added)
refilled==CounterTraversalFixture109(allGone.after,"PlaceCounters","ResourceUnit",1,5,{})
emptyAgain==CounterTraversalFixture109(refilled.after,"RemoveCounters","ResourceUnit",1,6,DOMAIN refilled.added)
reloaded==CounterTraversalFixture109(emptyAgain.after,"LoadCounters","ResourceUnit",3,7,{})
IN /\ EmptyWorldsValid109({w,loaded.after,extra.after,originalsGone.after,allGone.after,refilled.after,emptyAgain.after,reloaded.after})
/\ CounterTraversalValid109(extra) /\ CounterTraversalValid109(originalsGone) /\ CounterTraversalValid109(allGone)
/\ CounterTraversalValid109(refilled) /\ CounterTraversalValid109(emptyAgain) /\ CounterTraversalValid109(reloaded)
/\ ~EmptyReadFixture109(originalsGone.after,w.loadLinks[1]).empty
/\ EmptyReadFixture109(allGone.after,w.loadLinks[1]).empty /\ ~EmptyReadFixture109(refilled.after,w.loadLinks[1]).empty
/\ EmptyReadFixture109(emptyAgain.after,w.loadLinks[1]).empty /\ ~EmptyReadFixture109(reloaded.after,w.loadLinks[1]).empty
/\ Cardinality(DOMAIN reloaded.after.loadHistory)=2 /\ DOMAIN loaded.after.loadHistory \subseteq DOMAIN reloaded.after.loadHistory
/\ extra.after.loadHistory=loaded.after.loadHistory /\ emptyAgain.after.loadHistory=loaded.after.loadHistoryExact module download · Source bundle and reproduction instructions
Resolved project definitions: CounterTraversalFixture109, CounterTraversalValid109, EmptyFixtureValid109, EmptyReadFixture109, EmptyWorldsValid109, LoadWorld109
LoadEffectiveCountChecks109 · operator
reference-profile · input revision 2 · CC0 1.0
LoadEffectiveCountChecks109 ==
LET w==LoadWorld109("Specimen0181","Power")
loaded==CounterTraversalFixture109(w,"LoadCounters","Power",4,1,{})
gone==CounterTraversalFixture109(loaded.after,"RemoveCounters","Power",4,2,DOMAIN loaded.added)
virtual==[gone.after EXCEPT !.objects=ReplacementOverlay99(@,[id \in {2000} |-> [LoadedCounterToken109("Power","Play",900,"SideB") EXCEPT !.virtual=TRUE]])]
attempt==CounterTraversalFixture109(virtual,"RemoveCounters","Power",1,3,{2000})
nested==[gone.after EXCEPT !.objects=ReplacementOverlay99(@,[id \in {2000,2001} |-> IF id=2000 THEN LoadedCounterToken109("SchemaAtom043","Play",900,"SideB") ELSE LoadedCounterToken109("Power","Play",2000,"SideB")])]
converted==[gone.after EXCEPT !.objects=ReplacementOverlay99(@,[id \in {2000} |-> ReplacementOverlay99(LoadedCounterToken109("Power","Play",900,"SideB"),
[card |-> "Specimen0046",owner |-> "SideA",properties |-> [kind |-> "Power"],marks |-> {"ConvertedPower"}])])]
context==CounterContextFixture109(converted,"RemoveCounters","Power",1,4)
successors==[id \in {2000} |-> 2100]
objects==CheckpointRetireMap103(converted.objects,{2000},successors,CheckpointPrinted103,CheckpointOwners103,{})
event==MovementEvent8(9000,"Retire",{2000})
history==[id \in {9000} |-> event]
normalized==[converted EXCEPT !.objects=objects]
IN /\ EmptyWorldsValid109({virtual,nested,converted,normalized})
/\ ~EmptyReadFixture109(virtual,virtual.loadLinks[1]).empty /\ ~CounterTraversalValid109(attempt)
/\ MovableHostedTokens109(virtual.objects,900,"Power")={} /\ EmptyReadFixture109(nested,nested.loadLinks[1]).empty
/\ ~EmptyReadFixture109(converted,converted.loadLinks[1]).empty
/\ HostedCounterExecutionDisposition109(converted,context.actualEffects[1])="RequiresConvertedCounterDeparture"
/\ LiabilityMarkerCounterDeparture106(converted.objects,objects,{2000},successors,DOMAIN converted.objects,CheckpointPrinted103,CheckpointOwners103,{},9000,Empty10,history,{event})
/\ EmptyReadFixture109(normalized,normalized.loadLinks[1]).empty /\ normalized.loadHistory=converted.loadHistory
/\ objects[2100].form="Card" /\ objects[2100].zone="SideADiscard" /\ objects[2100].marks={}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, CheckpointOwners103, CheckpointPrinted103, CounterContextFixture109, CounterTraversalFixture109, CounterTraversalValid109, Empty10, EmptyReadFixture109, EmptyWorldsValid109, LoadWorld109, CheckpointRetireMap103, HostedCounterExecutionDisposition109, LiabilityMarkerCounterDeparture106, LoadedCounterToken109, MovableHostedTokens109, MovementEvent8
LoadFreshnessChecks109 · operator
reference-profile · input revision 2 · CC0 1.0
LoadFreshnessChecks109 ==
LET w==LoadWorld109("Specimen0060","ResourceUnit")
x==CounterTraversalFixture109(w,"LoadCounters","ResourceUnit",3,1,{})
gone==CounterTraversalFixture109(x.after,"RemoveCounters","ResourceUnit",3,2,DOMAIN x.added)
link==w.loadLinks[1]
h==CHOOSE id \in DOMAIN gone.after.loadHistory : TRUE
ordinary==CounterTraversalFixture109(w,"PlaceCounters","ResourceUnit",0,3,{})
IN /\ CounterTraversalValid109(ordinary) /\ ordinary.after.loadHistory=Empty10
/\ ~CounterInstruction109([x.context EXCEPT !.currentWorld=99],x.context.currentRef,w,1,CardFacts10)
/\ ~CounterInstruction109([x.context EXCEPT !.actualEffects[1].sourceSHA="wrong",!.state.effects[1].sourceSHA="wrong"],x.context.currentRef,w,1,CardFacts10)
/\ ~ExecuteBankHostedCounterInstruction109(x.context,x.context.currentRef,[w EXCEPT !.completedCounterInstructions=x.after.completedCounterInstructions],1,CardFacts10,
x.after.objects,x.after.loadHistory,x.after.completedCounterInstructions,x.selected,x.added,x.after.nextCounterObject,x.eventId,x.event)
/\ ~ReadEmpty109(gone.after,CardFacts10,[link EXCEPT !.sourceSHA="wrong"],EmptyReadFixture109(gone.after,link))
/\ ~ReadEmpty109(gone.after,CardFacts10,link,[EmptyReadFixture109(gone.after,link) EXCEPT !.snapshotId=99])
/\ \A field \in {"host","loadDefinition"} :
LET altered==[gone.after EXCEPT !.loadHistory[h]=[key \in DOMAIN @ |-> IF key=field THEN 777 ELSE @[key]]]
IN ~EmptyReadFixture109(altered,link).empty
/\ ~EmptyReadFixture109([gone.after EXCEPT !.loadHistory[h].reference.source=ObjectAbilitySource9(901)],link).empty
/\ ~EmptyReadFixture109([gone.after EXCEPT !.loadHistory[h].sourceSHA="wrong"],link).empty
/\ ~ExecuteBankHostedCounterInstruction109(x.context,x.context.currentRef,[w EXCEPT !.usedObjects=@ \cup DOMAIN x.added],1,CardFacts10,
x.after.objects,x.after.loadHistory,x.after.completedCounterInstructions,x.selected,x.added,x.after.nextCounterObject,x.eventId,x.event)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, CounterTraversalFixture109, CounterTraversalValid109, Empty10, EmptyReadFixture109, LoadWorld109, CounterInstruction109, ExecuteBankHostedCounterInstruction109, ReadEmpty109, CardFacts10
LoadIncarnationChecks109 · operator
reference-profile · input revision 2 · CC0 1.0
LoadIncarnationChecks109 ==
LET w==LoadWorld109("Specimen0060","ResourceUnit")
loaded==CounterTraversalFixture109(w,"LoadCounters","ResourceUnit",3,1,{})
gone==CounterTraversalFixture109(loaded.after,"RemoveCounters","ResourceUnit",3,2,DOMAIN loaded.added)
old==gone.after
bDiscardPileRow==[old.objects[900] EXCEPT !.zone="SideBDiscard",!.loc=0,!.deployed=FALSE,!.activated=FALSE,!.marks={}]
bDiscardPileObjects==ReplacementOverlay99(Without101(old.objects,{900}),[id \in {901} |-> bDiscardPileRow])
bDiscardPileWorld==[old EXCEPT !.objects=bDiscardPileObjects,!.controllers=ReplacementOverlay99(Without101(@,{900}),[id \in {901} |-> "SideB"]),!.usedObjects=@ \cup {901}]
incoming==[bDiscardPileRow EXCEPT !.zone="Play"]
incomingObjects==ReplacementOverlay99(Without101(bDiscardPileObjects,{901}),[id \in {902} |-> incoming])
deployed==[bDiscardPileWorld EXCEPT !.objects=ReplacementOverlay99(incomingObjects,[id \in {902} |-> [incoming EXCEPT !.deployed=TRUE]]),
!.controllers=ReplacementOverlay99(Without101(@,{901}),[id \in {902} |-> "SideB"]),!.usedObjects=@ \cup {902},!.loadLinks=Empty10]
new==[deployed EXCEPT !.loadLinks=[id \in {1} |-> LoadLinkFixture109(deployed,"Specimen0060",902,"ResourceUnit",1)]]
secondPhysical=="Specimen0060-copy-2"
copyRow==[old.objects[900] EXCEPT !.card=secondPhysical]
copied==[old EXCEPT !.objects=ReplacementOverlay99(@,[id \in {903} |-> copyRow]),!.definitions=ReplacementOverlay99(@,[card \in {secondPhysical} |-> "Specimen0060"]),
!.controllers=ReplacementOverlay99(@,[id \in {903} |-> "SideB"]),!.loadLinks=Empty10]
copies==[copied EXCEPT !.loadLinks=[id \in {1,2} |-> LoadLinkFixture109(copied,"Specimen0060",IF id=1 THEN 900 ELSE 903,"ResourceUnit",id)]]
IN /\ EmptyWorldsValid109({new,copies})
/\ CardBatchTransfer8(old.objects,bDiscardPileObjects,{900},[id \in {900} |-> 901],old.usedObjects,"SideBDiscard","Up",[id \in {900} |-> 0])
/\ CardBatchTransfer8(bDiscardPileObjects,incomingObjects,{901},[id \in {901} |-> 902],bDiscardPileWorld.usedObjects,"Play","Up",[id \in {901} |-> 0])
/\ old.loadHistory=new.loadHistory /\ ReadEmpty109(new,CardFacts10,new.loadLinks[1],EmptyReadFixture109(new,new.loadLinks[1]))
/\ ~EmptyReadFixture109(new,new.loadLinks[1]).empty /\ new.objects[902].card=old.objects[900].card
/\ EmptyReadFixture109(copies,copies.loadLinks[1]).empty /\ ~EmptyReadFixture109(copies,copies.loadLinks[2]).empty
/\ LET rexWorld==LoadWorld109("Specimen0199","Power")
rexLoaded==CounterTraversalFixture109(rexWorld,"LoadCounters","Power",3,1,{})
rexGone==CounterTraversalFixture109(rexLoaded.after,"RemoveCounters","Power",3,2,DOMAIN rexLoaded.added)
deactivationzed==[rexGone.after EXCEPT !.objects[900].activated=FALSE]
reactivationzed==[deactivationzed EXCEPT !.objects[900].activated=TRUE]
again==CounterTraversalFixture109(reactivationzed,"LoadCounters","Power",3,3,{})
IN /\ EmptyWorldsValid109({deactivationzed,reactivationzed,again.after})
/\ EmptyReadFixture109(deactivationzed,deactivationzed.loadLinks[1]).empty /\ EmptyReadFixture109(reactivationzed,reactivationzed.loadLinks[1]).empty
/\ CounterTraversalValid109(again) /\ Cardinality(DOMAIN again.after.loadHistory)=2Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, CounterTraversalFixture109, CounterTraversalValid109, Empty10, EmptyReadFixture109, EmptyWorldsValid109, LoadLinkFixture109, LoadWorld109, ReadEmpty109, Without101, CardBatchTransfer8, CardFacts10
LoadLinkFixture109 · operator
reference-profile · input revision 2 · CC0 1.0
LoadLinkFixture109(world,card,host,kind,id) ==
[id |-> id,host |-> host,physical |-> world.objects[host].card,card |-> card,sourceSHA |-> CardFacts10[card].sourceSHA,
kind |-> kind,loadDefinition |-> 19000,emptyDefinition |-> EmptyDefinitionFixture109(card,host)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EmptyDefinitionFixture109, CardFacts10
LoadWorld109 · operator
reference-profile · input revision 2 · CC0 1.0
LoadWorld109(card,kind) ==
LET b==LinkDeclaredWorld107(LinkWorld107("Specimen0163",{},FALSE))
objects==ReplacementOverlay99(b.objects,[id \in {900} |-> EscalatingResourceContestCard108(card,TRUE,CardFacts10[card].side="SideA")])
w==ReplacementOverlay99([b EXCEPT !.objects=objects,!.definitions=ReplacementOverlay99(@,[id \in {card} |-> card]),
!.controllers=ReplacementOverlay99(@,[id \in {900} |-> CardFacts10[card].side])],
[started |-> TRUE,outcome |-> "Playing",usedObjects |-> DOMAIN objects,nextCounterObject |-> 1000,loadHistory |-> Empty10,
completedCounterInstructions |-> {},counterEventIds |-> {},loadLinks |-> Empty10])
IN [w EXCEPT !.loadLinks=[id \in {1} |-> LoadLinkFixture109(w,card,900,kind,1)]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, Empty10, EscalatingResourceContestCard108, LinkDeclaredWorld107, LinkWorld107, LoadLinkFixture109, CardFacts10
LoopIncrement101 · operator
reference-profile · input revision 2 · CC0 1.0
LoopIncrement101(a,b) == b=a+1Exact module download · Source bundle and reproduction instructions
LoopProfile101 · operator
reference-profile · input revision 2 · CC0 1.0
LoopProfile101(a,b) == a=bExact module download · Source bundle and reproduction instructions
MarkAdvance1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkAdvance1011(world,a,changed,tag) ==
LET execution==[tag |-> tag,id |-> 9000+changed.id,snapshotId |-> changed.id,source |-> RuleAbilitySource9("10.11.LifetimeObservation")]
nextA==LifetimeAuthorityAfter910(a,LifetimeKernelTransition910(world,changed,execution))
observed==[world.lingering EXCEPT !.effects=ObserveLingeringEffects910(@,changed),!.frontier=LifetimeFrontier910(nextA,Len(nextA.order))]
IN [before |-> world,beforeAuthority |-> a,after |-> [changed EXCEPT !.lingering=observed],authority |-> nextA,execution |-> execution]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LifetimeAuthorityAfter910, LifetimeFrontier910, LifetimeKernelTransition910, ObserveLingeringEffects910, RuleAbilitySource9
MarkAdvanceValid1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkAdvanceValid1011(x) ==
/\ CommitLifetimeKernelCore910(x.beforeAuthority,x.authority,x.after,x.execution)
/\ PublishNextLifetime910(x.before.lingering,x.after.lingering,x.authority)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CommitLifetimeKernelCore910, PublishNextLifetime910
MarkBase1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkBase1011(owner) ==
LET objects0==[id \in 1..7 |-> EscalatingResourceContestCard108(CASE id=1 -> "Specimen0165" [] id=2 -> "Specimen0259" [] id=3 -> "Specimen0119"
[] id=4 -> "Specimen0026" [] id=5 -> "Specimen0253" [] id=6 -> "Specimen0045" [] OTHER -> "Specimen0101",id \in {2,3,4,5,7},id=7)]
objects==ReplacementOverlay99(objects0,[id \in {8} |-> [EscalatingResourceContestCard108("Specimen0259",FALSE,FALSE) EXCEPT !.card="Specimen0259-copy-2",!.zone="SideBHand",!.face="NA"]])
facts==ReplacementOverlay99(CardFacts10,[id \in {"Specimen0259-copy-2"} |-> CardFacts10["Specimen0259"]])
base==[id |-> 1,objects |-> objects,gameStarted |-> TRUE,cardFacts |-> facts,playActivated |-> {6},
turn |-> [OpenTurn5(owner,10,[p \in SetupPlayers |-> 1]) EXCEPT !.formalBegun=TRUE],turnPhase |-> [id |-> 11,ended |-> FALSE],
control |-> [traversal |-> NoTraversal6,phaseEndedIds |-> {}],encounters |-> Empty10,currentEncounter |-> 0,siteInspections |-> Empty10,itemInspections |-> Empty10,
finishedInstances |-> {},finishedDelayedEffects |-> {},statedDurations |-> Empty10,durationComparisons |-> Empty10,extenders |-> Empty10,
present |-> {},activity |-> ActivityContext9,points |-> [p \in SetupPlayers |-> 0],barrierResponseCards |-> {5},inside |-> {},barrierProtection |-> [id \in {7} |-> "SchemaAtom129"],
usedObjects |-> DOMAIN objects,eventSerial |-> 0,history |-> Empty10,draws |-> Empty10,pendingRandomDraws |-> Empty10,sourceOccurrences |-> Empty10,markRules |-> Empty10,
sourceDefinitions |-> [physical \in DOMAIN facts |-> IF physical="Specimen0259-copy-2" THEN "Specimen0259" ELSE physical]]
a==NewLifetimeAuthority910(base)
registry==ReplacementOverlay99(NewLingeringRegistry910,[frontier |-> LifetimeFrontier910(a,1)])
IN [world |-> ReplacementOverlay99(base,[lingering |-> registry]),authority |-> a]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActivityContext9, LifetimeFrontier910, NewLifetimeAuthority910, NewLingeringRegistry910, ReplacementOverlay99, Empty10, EscalatingResourceContestCard108, SetupPlayers, CardFacts10, NoTraversal6, OpenTurn5
MarkCaptureFixture1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkCaptureFixture1011(world,a,event) ==
LET before==[world EXCEPT !.sourceOccurrences=ReplacementOverlay99(@,[id \in {event.id} |-> event])]
mark==MarkReadFixture1011(before,a)
after==[before EXCEPT !.eventSerial=@+1,!.history=ReplacementOverlay99(@,[id \in {event.id} |-> [id |-> event.id,kind |-> event.kind,serial |-> event.journalSerial,turn |-> event.turnId,
targetSite |-> event.targetSite,traversalId |-> event.traversal.id,actor |-> event.actor,mark |-> mark,occurrence |-> event]])]
IN [before |-> before,after |-> after,authority |-> a,event |-> event,mark |-> mark]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, MarkReadFixture1011
MarkCaptureValid1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkCaptureValid1011(x) == CaptureMarkEvent1011(x.before,x.after,x.authority,x.event,x.mark)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CaptureMarkEvent1011
MarkCleanupChecks1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkCleanupChecks1011 ==
LET x==MarkLifetimeFixture1011.ended
q==MarkRecognition1011(x.after,x.authority,Empty10,Empty10,Empty10,8400)
frame==LingeringCheckpointFrame910(q.after,q.cp,x.authority.current)
cleanup==[tag |-> "LingeringCheckpointCleanup",frame |-> frame,expired |-> {3000},complete |-> TRUE]
after==[x.after.lingering EXCEPT !.effects=Empty10,!.cleanupIds=@ \cup {8400}]
IN /\ MarkRecognitionValid1011(q)
/\ CleanupObservedLingering910(x.after.lingering,after,q.after,x.authority,frame,[frame EXCEPT !.returned=TRUE,!.point="ProcedureCodeb681cc249a04"],cleanup)
/\ after.usedEffects=x.after.lingering.usedEffects /\ after.creations=x.after.lingering.creations
/\ ~CleanupObservedLingering910(x.after.lingering,after,q.after,x.authority,[frame EXCEPT !.caller=[kind |-> "Wrong"]],[frame EXCEPT !.returned=TRUE,!.point="ProcedureCodeb681cc249a04"],cleanup)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CleanupObservedLingering910, LingeringCheckpointFrame910, Empty10, MarkLifetimeFixture1011, MarkRecognition1011, MarkRecognitionValid1011
MarkCreate1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkCreate1011(base,atom) == MarkCreateDetails1011(base,atom,6,3000,7000,500)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkCreateDetails1011
MarkCreateDetails1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkCreateDetails1011(base,atom,source,effectId,eventId,drawId) ==
LET w==base.world a==base.authority
targetSite==MarkSampler1011.mapping[atom]
blueprints==[id \in {effectId} |-> MarkBlueprint1011(ObjectAbilitySource9(source),IF w.sourceDefinitions[w.objects[source].card]="Specimen0045" THEN "Play" ELSE "Conditional",targetSite,w.eventSerial+1,w.turn.id)]
creator==MarkCreator1011(w,source,blueprints)
draw==[id |-> drawId,tag |-> "UniformMarkDraw",phase |-> "InstructionResolution",snapshotId |-> w.id,reference |-> creator.context.currentRef,operation |-> 1,sampler |-> MarkSampler1011,atom |-> atom,targetSite |-> targetSite]
world==[w EXCEPT !.pendingRandomDraws=[id \in {drawId} |-> draw]]
row==NewLingeringEffect910(effectId,blueprints[effectId],creator.context,1,a.current)
registry==[world.lingering EXCEPT !.effects=ReplacementOverlay99(@,[id \in {effectId} |-> row]),!.usedEffects=@ \cup {effectId},!.creations=@ \cup {LingeringCreationKey910(creator.context,1)}]
event==[id |-> eventId,kind |-> "MarkDesignated",serial |-> world.eventSerial+1,turn |-> world.turn.id,targetSite |-> targetSite,effectId |-> effectId,reference |-> creator.context.currentRef,source |-> creator.context.currentRef.source]
after==[world EXCEPT !.lingering=registry,!.eventSerial=@+1,!.history=ReplacementOverlay99(@,[id \in {eventId} |-> event]),!.draws=ReplacementOverlay99(@,[id \in {drawId} |-> draw]),!.pendingRandomDraws=Empty10]
completion==[tag |-> "IdentifyMarkComplete",reference |-> creator.context.currentRef,operation |-> 1,created |-> TRUE,effectId |-> effectId,targetSite |-> targetSite]
IN [before |-> world,after |-> after,authority |-> a,creator |-> creator,draw |-> draw,event |-> event,completion |-> completion]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LingeringCreationKey910, NewLingeringEffect910, ObjectAbilitySource9, ReplacementOverlay99, Empty10, MarkCreator1011, MarkSampler1011, MarkBlueprint1011
MarkCreateValid1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkCreateValid1011(x) ==
IdentifyMark1011(x.before,x.after,x.authority,x.creator.context,x.creator.origin,1,x.before.cardFacts,MarkReadFixture1011(x.before,x.authority),x.draw,MarkSampler1011,3000,7000,x.creator.execution,x.completion,{x.event})Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkReadFixture1011, MarkSampler1011, IdentifyMark1011
MarkCreationChecks1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkCreationChecks1011 ==
/\ MarkBalancedSampler1011(MarkSampler1011)
/\ \A atom \in 1..3 :
LET b==MarkBase1011("SideB") x==MarkCreate1011(b,atom) read==MarkReadFixture1011(x.after,b.authority)
IN /\ MarkCreateValid1011(x) /\ read.targetSite=MarkSampler1011.mapping[atom]
/\ \A player \in SetupPlayers : MarkRead1011(x.after,b.authority,player,read)
/\ x.after.objects=x.before.objects /\ x.after.turn=x.before.turn
/\ x.after.lingering.effects[3000].kind="Ordinary" /\ x.after.lingering.effects[3000].choicePolicy="NoValue"
/\ MarkNoop1011(x.after,b.authority,1) /\ MarkNoop1011(x.after,b.authority,2)
/\ LET dice==[tag |-> "UniformFiniteAtoms",space |-> 1..6,mapping |-> [atom \in 1..6 |-> MarkSampler1011.mapping[1+((atom-1) % 3)]],weights |-> [atom \in 1..6 |-> 1],totalWeight |-> 6]
IN /\ MarkBalancedSampler1011(dice)
/\ ~MarkBalancedSampler1011([dice EXCEPT !.mapping[6]="SchemaAtom082"])
/\ ~MarkBalancedSampler1011([dice EXCEPT !.mapping[6]="auxiliarySite-X"])
/\ ~MarkBalancedSampler1011([dice EXCEPT !.weights[6]=2])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkBase1011, MarkCreate1011, MarkCreateValid1011, MarkNoop1011, MarkReadFixture1011, MarkSampler1011, MarkBalancedSampler1011, MarkRead1011, SetupPlayers
MarkCreator1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkCreator1011(world,source,blueprints) ==
LET card==world.sourceDefinitions[world.objects[source].card]
kind==IF card="Specimen0045" THEN "Play" ELSE "Conditional"
parent==[OpenAbilityResolution9(1100,kind,ObjectAbilitySource9(source),"Play",<<1101>>,100) EXCEPT !.phase="Resolving",!.firstImminent=TRUE,!.detached=kind="Conditional"]
plan==[OpenInstruction93(1101,"Ability",1100,ObjectAbilitySource9(source),"Play",1,"NoValue",<<"IdentifyMark">>,FALSE) EXCEPT !.phase="Resolving"]
effect==[id |-> 1,kind |-> "CreateLingering",semantic |-> "IdentifyMark",actor |-> "SideB",sourceCard |-> card,sourceSHA |-> CardFacts10[card].sourceSHA,baseOrigin |-> plan.source,blueprints |-> blueprints]
context==[id |-> 1102,imminenceId |-> 1103,phase |-> "Resolving",currentRef |-> InstructionWindowRef93(plan),currentWorld |-> world.id,
templates |-> [id \in {1} |-> effect],state |-> [effects |-> [id \in {1} |-> effect]],actualEffects |-> [id \in {1} |-> effect]]
execution==[tag |-> "LingeringEffectExecution",contextId |-> context.id,instruction |-> context.currentRef,operation |-> 1,snapshotId |-> world.id,source |-> plan.source,blueprints |-> blueprints,carriedOut |-> TRUE]
IN [context |-> context,origin |-> [kind |-> "Instruction",plan |-> plan,parent |-> parent,ruleStep |-> "NoValue"],execution |-> execution]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: InstructionWindowRef93, ObjectAbilitySource9, OpenAbilityResolution9, OpenInstruction93, CardFacts10
MarkDefinition1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkDefinition1011(id,object,card,kind) ==
LET d==EscalatingResourceContestConditional108(id,card,"Successful") source==ObjectAbilitySource9(object)
IN [d EXCEPT !.syntax.source=source,!.activity.source=source,!.trigger.kinds={kind},!.trigger.actor="SideB"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, EscalatingResourceContestConditional108
MarkDiscarded1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkDiscarded1011(world,old,new) ==
ReplacementOverlay99(Without101(world.objects,{old}),[id \in {new} |-> [world.objects[old] EXCEPT !.zone="SideBDiscard",!.deployed=FALSE,!.face="Up",!.loc=0,!.host=0,!.marks={}]])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, Without101
MarkLifetimeChecks1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkLifetimeChecks1011 ==
LET x==MarkLifetimeFixture1011
lost==x.lost discard==x.discard ended==x.ended next==x.next
stale==[ended.after EXCEPT !.lingering=discard.after.lingering]
IN /\ MarkCreateValid1011(x.create)
/\ CardBatchTransfer8(lost.before.objects,lost.after.objects,{6},[id \in {6} |-> 60],DOMAIN lost.before.objects,"SideBDiscard","Up",[id \in {6} |-> 0])
/\ MarkAdvanceValid1011(lost) /\ MarkRead1011(lost.after,lost.authority,"SideB",MarkReadFixture1011(lost.after,lost.authority))
/\ MarkReadFixture1011(lost.after,lost.authority).targetSite="SchemaAtom082" /\ 6 \notin DOMAIN lost.after.objects
/\ MarkNoop1011(lost.after,lost.authority,1)
/\ TurnPhaseAdvance5(discard.before.turn,discard.after.turn,TRUE) /\ MarkAdvanceValid1011(discard)
/\ MarkReadFixture1011(discard.after,discard.authority).present
/\ TurnFormalEnd5(ended.before.turn,ended.after.turn,TRUE,TurnEndEvents5(ended.before.turn)) /\ MarkAdvanceValid1011(ended)
/\ MarkRead1011(ended.after,ended.authority,"SideB",MarkReadFixture1011(ended.after,ended.authority)) /\ ~MarkReadFixture1011(ended.after,ended.authority).present
/\ 3000 \in DOMAIN ended.after.lingering.effects /\ ended.after.lingering.effects[3000].status="Expired"
/\ ~MarkRead1011(stale,ended.authority,"SideB",MarkReadFixture1011(ended.after,ended.authority))
/\ TurnHandoff5(ended.after.turn,next.after.turn,TRUE,{})
/\ MarkAdvanceValid1011(next) /\ MarkRead1011(next.after,next.authority,"SideA",MarkReadFixture1011(next.after,next.authority))
/\ ~MarkReadFixture1011(next.after,next.authority).present
/\ MarkCreateValid1011(MarkCreate1011(MarkBase1011("SideA"),3))Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkAdvanceValid1011, MarkBase1011, MarkCreate1011, MarkCreateValid1011, MarkLifetimeFixture1011, MarkNoop1011, MarkReadFixture1011, MarkRead1011, CardBatchTransfer8, TurnEndEvents5, TurnFormalEnd5, TurnHandoff5, TurnPhaseAdvance5
MarkLifetimeFixture1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkLifetimeFixture1011 ==
LET x==MarkCreate1011(MarkBase1011("SideB"),1)
lostWorld==[x.after EXCEPT !.id=2,!.objects=MarkDiscarded1011(x.after,6,60),!.usedObjects=@ \cup {60}]
lost==MarkAdvance1011(x.after,x.authority,lostWorld,"ActualObjectTransition")
discardWorld==[lost.after EXCEPT !.id=3,!.turn.phase="Discard",!.turnPhase=[id |-> 12,ended |-> FALSE]]
discard==MarkAdvance1011(lost.after,lost.authority,discardWorld,"ActualTimingTransition")
endedWorld==[discard.after EXCEPT !.id=4,!.turn.formalEnded=TRUE,!.turnPhase.ended=TRUE]
ended==MarkAdvance1011(discard.after,discard.authority,endedWorld,"ActualTimingTransition")
nextWorld==[ended.after EXCEPT !.id=5,!.turn=OpenTurn5("SideA",11,[p \in SetupPlayers |-> 1]),!.turnPhase=[id |-> 13,ended |-> FALSE]]
next==MarkAdvance1011(ended.after,ended.authority,nextWorld,"ActualTimingTransition")
IN [create |-> x,lost |-> lost,discard |-> discard,ended |-> ended,next |-> next]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkAdvance1011, MarkBase1011, MarkCreate1011, MarkDiscarded1011, SetupPlayers, OpenTurn5
MarkNoop1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkNoop1011(world,a,source) ==
LET creator==MarkCreator1011(world,source,Empty10)
read==MarkReadFixture1011(world,a)
completion==[tag |-> "IdentifyMarkComplete",reference |-> creator.context.currentRef,operation |-> 1,created |-> FALSE,effectId |-> read.effectId,targetSite |-> read.targetSite]
IN IdentifyMark1011(world,world,a,creator.context,creator.origin,1,world.cardFacts,read,[tag |-> "NoDraw"],[tag |-> "Unused"],9999,9999,creator.execution,completion,{})Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Empty10, MarkCreator1011, MarkReadFixture1011, IdentifyMark1011
MarkOccurrence1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkOccurrence1011(world,definitions,id,kind,targetSite,traversalId) ==
LET snapshot==MarkSnapshot1011(world.id,0,"ActualOccurrence",definitions,world)
traversal==[OpenTraversal6(traversalId,traversalId+100,"NormalizedTraversalCaller") EXCEPT !.attacked=targetSite,!.formalBegun=TRUE,!.phase=IF kind="EncounterBarrier" THEN "Encounter" ELSE IF kind="TraversalEnded" THEN "TraversalEnds" ELSE "Success",
!.step=IF kind="EncounterBarrier" THEN "ProcedureCodeda7bff1d9270" ELSE IF kind="TraversalEnded" THEN "ProcedureCode9606a4cd52b4" ELSE "ProcedureCodebbb14496b09b",!.reachedSuccess=kind#"EncounterBarrier",!.successful=kind#"EncounterBarrier",!.complete=kind="TraversalEnded"]
IN ReplacementOverlay99(EscalatingResourceContestOccurrenceBase108(id,kind,IF kind="EncounterBarrier" THEN 7 ELSE 0,"SideB","SideB",snapshot,id),
[journalSerial |-> world.eventSerial+1,turnId |-> world.turn.id,targetSite |-> targetSite,traversal |-> traversal])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, EscalatingResourceContestOccurrenceBase108, MarkSnapshot1011, OpenTraversal6
MarkOtherTargetSiteBranches1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkOtherTargetSiteBranches1011 ==
\A atom \in {2,3} :
LET x==MarkCreate1011(MarkBase1011("SideB"),atom) defs==MarkSuccessDefinitions1011(2,11102)
c==MarkCaptureFixture1011(x.after,x.authority,MarkOccurrence1011(x.after,defs,8601,"TraversalSuccessful",MarkSampler1011.mapping[atom],50))
q==MarkRecognitionOne1011(c,defs,TRUE,8600)
IN /\ MarkCaptureValid1011(c) /\ MarkSuccessfulSourceValid1011(c.event) /\ MarkRecognitionValid1011(q)
/\ Cardinality(DOMAIN q.after.instances)=2
/\ MarkSpecimen0259Branch1011(c.after,c.event,[tag |-> "Specimen0259InstructionBranch",occurrence |-> 8601,branch |-> "InspectionCentralAAfterTraversal"])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkBase1011, MarkCaptureFixture1011, MarkCaptureValid1011, MarkCreate1011, MarkOccurrence1011, MarkRecognitionOne1011, MarkRecognitionValid1011, MarkSampler1011, MarkSuccessDefinitions1011, MarkSuccessfulSourceValid1011, MarkSpecimen0259Branch1011
MarkOverinstall1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkOverinstall1011(world,a) ==
LET discarded==MarkDiscarded1011(world,2,12)
objects==ReplacementOverlay99(Without101(discarded,{8}),[id \in {22} |-> [world.objects[8] EXCEPT !.zone="Play",!.deployed=TRUE,!.face="Up",!.loc=0,!.host=0,!.marks={}]])
changed==[world EXCEPT !.id=@+1,!.objects=objects,!.usedObjects=@ \cup {12,22}]
IN MarkAdvance1011(world,a,changed,"ActualObjectTransition")Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, MarkAdvance1011, MarkDiscarded1011, Without101
MarkProvenanceChecks1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkProvenanceChecks1011 ==
LET x==MarkCreate1011(MarkBase1011("SideB"),1) w==x.after a==x.authority read==MarkReadFixture1011(w,a)
creator==MarkCreator1011(w,1,Empty10)
completion==[tag |-> "IdentifyMarkComplete",reference |-> creator.context.currentRef,operation |-> 1,created |-> FALSE,effectId |-> 3000,targetSite |-> "SchemaAtom082"]
rerolled==[w EXCEPT !.lingering.effects[3000].value.targetSite="SchemaAtom018"]
choice==[w EXCEPT !.lingering.effects[3000].kind="Choice",!.lingering.effects[3000].choicePolicy="SchemaAtom149"]
duplicate==[w.lingering.effects[3000] EXCEPT !.id=3001,!.value.cutoff=2]
otherBirth==[x.event EXCEPT !.id=7001,!.serial=2,!.effectId=3001]
double==[w EXCEPT !.eventSerial=2,!.history=ReplacementOverlay99(@,[id \in {7001} |-> otherBirth]),!.lingering.effects=ReplacementOverlay99(@,[id \in {3001} |-> duplicate])]
IN /\ ~IdentifyMark1011(w,rerolled,a,creator.context,creator.origin,1,w.cardFacts,read,[tag |-> "NoDraw"],[tag |-> "Unused"],9999,9999,creator.execution,completion,{})
/\ ~MarkRead1011(choice,a,"SideB",read) /\ ~MarkRead1011(double,a,"SideB",read)
/\ ~MarkRead1011([w EXCEPT !.history[7000].targetSite="SchemaAtom129"],a,"SideB",read)
/\ ~MarkRead1011([w EXCEPT !.history[7000].reference.source=ObjectAbilitySource9(1)],a,"SideB",read)
/\ ~MarkRead1011(w,a,"SideA",[read EXCEPT !.targetSite="SchemaAtom129"])
/\ ~MarkCreateValid1011([x EXCEPT !.draw.targetSite="SchemaAtom129"])
/\ ~MarkCreateValid1011([x EXCEPT !.creator.context.currentWorld=999])
/\ ~MarkCreateValid1011([x EXCEPT !.creator.context.currentRef.source=ObjectAbilitySource9(1)])
/\ ~MarkCreateValid1011([x EXCEPT !.creator.execution.source=ObjectAbilitySource9(1)])
/\ ~MarkCreateValid1011([x EXCEPT !.before.draws=[id \in {500} |-> x.draw]])
/\ ~MarkCreateValid1011([x EXCEPT !.before.lingering.usedEffects={3000}])
/\ ~MarkCreateValid1011([x EXCEPT !.creator.context.actualEffects[1].sourceSHA="Unbound",!.creator.context.state.effects[1].sourceSHA="Unbound"])
/\ LET c==MarkSuccessHistoryFixture1011.first
IN /\ ~CaptureMarkEvent1011(c.before,c.after,c.authority,[c.event EXCEPT !.journalSerial=@+1],c.mark)
/\ ~CaptureMarkEvent1011(c.before,c.after,c.authority,[c.event EXCEPT !.snapshot.id=999],c.mark)
/\ ~CaptureMarkEvent1011(c.before,c.after,c.authority,[c.event EXCEPT !.targetSite="SchemaAtom129"],c.mark)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, ReplacementOverlay99, Empty10, MarkBase1011, MarkCreate1011, MarkCreateValid1011, MarkCreator1011, MarkReadFixture1011, MarkSuccessHistoryFixture1011, CaptureMarkEvent1011, IdentifyMark1011, MarkRead1011
MarkReadFixture1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkReadFixture1011(world,a) ==
LET ids==LiveMarkIds1011(world.lingering,a.current)
IN IF ids={} THEN [tag |-> "CurrentGlobalMark",worldId |-> world.id,present |-> FALSE,effectId |-> 0,targetSite |-> "NoValue",cutoff |-> 0,turn |-> world.turn.id]
ELSE LET id==CHOOSE id \in ids : TRUE value==world.lingering.effects[id].value
IN [tag |-> "CurrentGlobalMark",worldId |-> world.id,present |-> TRUE,effectId |-> id,targetSite |-> value.targetSite,cutoff |-> value.cutoff,turn |-> value.turn]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: LiveMarkIds1011
MarkRecognition1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkRecognition1011(world,a,definitions,events,truths,id) ==
LET w==[world EXCEPT !.markRules=MarkRulesFixture1011(world,definitions)]
previous==MarkSnapshot1011(w.id,0,"PreviousCheckpoint",definitions,w)
before==NewConditionalLedger96(previous)
begin==MarkSnapshot1011(w.id,id,"CheckpointBeginning",definitions,w)
current==[begin EXCEPT !.point="ProcedureCodee605a78f5d5e"]
cp==[tag |-> "ConditionalCheckpoint",point |-> "ProcedureCodee605a78f5d5e",id |-> id,previousCheckpoint |-> 0,serial |-> 1,
previousSnapshot |-> previous,beginSnapshot |-> begin,processingSnapshot |-> current,stepSerial |-> 0,occurrences |-> events,caller |-> [kind |-> "MarkEventObservation",worldId |-> w.id]]
conditions==[key \in DOMAIN definitions |-> [eventId \in DOMAIN events |-> [tag |-> "ConditionalTriggerStipulations",ability |-> definitions[key].syntax.id,source |-> definitions[key].syntax.source,
occurrence |-> eventId,snapshotId |-> events[eventId].snapshot.id,results |-> [part \in {1} |-> truths[key][eventId]]]]]
candidates==CheckpointCandidates96(definitions,before,cp,conditions)
allocation==[key \in candidates |-> 100000+key.definition.ability*100000+key.occurrence]
bindings==[key \in candidates |-> [kind |-> "Reaction",windowId |-> 7200,group |-> 7300,checkpointId |-> id]]
after==EscalatingResourceContestCommitted108(before,definitions,cp,conditions,allocation,bindings)
IN [world |-> w,authority |-> a,before |-> before,after |-> after,cp |-> cp,conditions |-> conditions,definitions |-> definitions,candidates |-> candidates,allocation |-> allocation,bindings |-> bindings]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointCandidates96, NewConditionalLedger96, EscalatingResourceContestCommitted108, MarkRulesFixture1011, MarkSnapshot1011
MarkRecognitionOne1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkRecognitionOne1011(c,definitions,truth,id) ==
MarkRecognition1011(c.after,c.authority,definitions,[eventId \in {c.event.id} |-> c.event],[key \in DOMAIN definitions |-> [eventId \in {c.event.id} |-> truth]],id)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkRecognition1011
MarkRecognitionValid1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkRecognitionValid1011(q) ==
/\ \A key \in DOMAIN q.definitions : \A id \in DOMAIN q.cp.occurrences :
MarkConditionalStipulation1011(q.world,q.authority,q.definitions[key],q.cp.occurrences[id],q.world.markRules[key],q.conditions[key][id])
/\ EscalatingResourceContestRecognitionValid108(q)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestRecognitionValid108, MarkConditionalStipulation1011
MarkRelationChecks1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkRelationChecks1011 ==
LET forced==MarkRelationFixture1011("SchemaAtom082","SchemaAtom129") outside==MarkRelationFixture1011("SchemaAtom129","SchemaAtom082")
defs==MarkSingleDefinition1011(11104,4,"Specimen0026","EncounterBarrier")
capture==MarkCaptureFixture1011(forced.after,forced.authority,MarkOccurrence1011(forced.after,defs,8501,"EncounterBarrier","SchemaAtom082",40))
q==MarkRecognitionOne1011(capture,defs,TRUE,8500)
ended==MarkAdvance1011(outside.after,outside.authority,[outside.after EXCEPT !.id=3,!.control.traversal.complete=TRUE,!.control.traversal.phase="TraversalEnds",!.control.traversal.step="ProcedureCode9606a4cd52b4",!.inside={}],"ActualTimingTransition")
IN /\ MarkAdvanceValid1011(forced) /\ MarkAdvanceValid1011(outside)
/\ IndependentEncounterTraversalView6(forced.after.control.traversal,forced.after.control.traversal,TRUE)
/\ MarkTraversalRelation1011(forced.after,forced.authority,MarkReadFixture1011(forced.after,forced.authority),[tag |-> "OngoingTraversalOnMark",worldId |-> 2,traversalId |-> 40,holds |-> TRUE])
/\ MarkProtectionRelation1011(forced.after,forced.authority,MarkReadFixture1011(forced.after,forced.authority),7,forced.after.barrierProtection,[tag |-> "BarrierProtectingMark",worldId |-> 2,barrierCard |-> 7,holds |-> FALSE])
/\ capture.event.traversal=forced.after.control.traversal /\ MarkCaptureValid1011(capture) /\ MarkRecognitionValid1011(q) /\ Cardinality(DOMAIN q.after.instances)=1
/\ MarkTraversalRelation1011(outside.after,outside.authority,MarkReadFixture1011(outside.after,outside.authority),[tag |-> "OngoingTraversalOnMark",worldId |-> 2,traversalId |-> 40,holds |-> FALSE])
/\ MarkProtectionRelation1011(outside.after,outside.authority,MarkReadFixture1011(outside.after,outside.authority),7,outside.after.barrierProtection,[tag |-> "BarrierProtectingMark",worldId |-> 2,barrierCard |-> 7,holds |-> TRUE])
/\ MarkAdvanceValid1011(ended)
/\ MarkTraversalRelation1011(ended.after,ended.authority,MarkReadFixture1011(ended.after,ended.authority),[tag |-> "OngoingTraversalOnMark",worldId |-> 3,traversalId |-> 40,holds |-> FALSE])
/\ MarkProtectionRelation1011(ended.after,ended.authority,MarkReadFixture1011(ended.after,ended.authority),7,ended.after.barrierProtection,[tag |-> "BarrierProtectingMark",worldId |-> 3,barrierCard |-> 7,holds |-> TRUE])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkAdvance1011, MarkAdvanceValid1011, MarkCaptureFixture1011, MarkCaptureValid1011, MarkOccurrence1011, MarkReadFixture1011, MarkRecognitionOne1011, MarkRecognitionValid1011, MarkRelationFixture1011, MarkSingleDefinition1011, MarkProtectionRelation1011, MarkTraversalRelation1011, IndependentEncounterTraversalView6
MarkRelationFixture1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkRelationFixture1011(attacked,protecting) ==
LET x==MarkCreate1011(MarkBase1011("SideB"),1)
traversal==[OpenTraversal6(40,140,"NormalizedTraversalCaller") EXCEPT !.formalBegun=TRUE,!.phase="Encounter",!.step="ProcedureCodeda7bff1d9270",!.attacked=attacked]
changed==[x.after EXCEPT !.id=2,!.control.traversal=traversal,!.inside={TimingRef9("SchemaAtom138",40)},!.barrierProtection=[id \in {7} |-> protecting]]
IN MarkAdvance1011(x.after,x.authority,changed,"ActualTimingTransition")Exact module download · Source bundle and reproduction instructions
Resolved project definitions: TimingRef9, MarkAdvance1011, MarkBase1011, MarkCreate1011, OpenTraversal6
MarkRenewalChecks1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkRenewalChecks1011 ==
LET next==MarkLifetimeFixture1011.next
x==MarkCreateDetails1011([world |-> next.after,authority |-> next.authority],1,1,3001,7001,501)
read==MarkReadFixture1011(x.after,x.authority)
IN /\ IdentifyMark1011(x.before,x.after,x.authority,x.creator.context,x.creator.origin,1,x.before.cardFacts,MarkReadFixture1011(x.before,x.authority),x.draw,MarkSampler1011,3001,7001,x.creator.execution,x.completion,{x.event})
/\ read.targetSite="SchemaAtom082" /\ read.effectId=3001 /\ read.turn=11 /\ read.cutoff=2
/\ DOMAIN x.after.lingering.effects={3000,3001} /\ x.after.lingering.effects[3000].status="Expired"
/\ MarkRead1011(x.after,x.authority,"SideA",read) /\ LiveMarkIds1011(x.after.lingering,x.authority.current)={3001}
/\ MarkRelatedEvents1011(x.after,read,"TraversalSuccessful")={}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkCreateDetails1011, MarkLifetimeFixture1011, MarkReadFixture1011, MarkSampler1011, IdentifyMark1011, LiveMarkIds1011, MarkRead1011, MarkRelatedEvents1011
MarkRulesFixture1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkRulesFixture1011(world,definitions) ==
[key \in DOMAIN definitions |-> LET d==definitions[key] physical==world.objects[d.syntax.source.object].card card==world.sourceDefinitions[physical]
IN [definition |-> d,card |-> card,physical |-> physical,sourceSHA |-> world.cardFacts[card].sourceSHA,role |-> MarkRole1011(card)]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkRole1011
MarkSampler1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkSampler1011 ==
[tag |-> "UniformFiniteAtoms",space |-> 1..3,mapping |-> [atom \in 1..3 |-> CASE atom=1 -> "SchemaAtom082" [] atom=2 -> "SchemaAtom129" [] OTHER -> "SchemaAtom018"],
weights |-> [atom \in 1..3 |-> 1],totalWeight |-> 3]Exact module download · Source bundle and reproduction instructions
MarkSingleDefinition1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkSingleDefinition1011(id,object,card,kind) ==
LET d==MarkDefinition1011(id,object,card,kind) IN [key \in {ConditionalKey96(d)} |-> d]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalKey96, MarkDefinition1011
MarkSnapshot1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkSnapshot1011(id,checkpoint,point,definitions,world) ==
[id |-> id,checkpointId |-> checkpoint,point |-> point,definitions |-> definitions,objects |-> world.objects,
present |-> {definitions[key].syntax.id : key \in DOMAIN definitions},
ordinaryActivity |-> [key \in DOMAIN definitions |-> IF definitions[key].syntax.source.object \in DOMAIN world.objects THEN DefaultActive(world.objects[definitions[key].syntax.source.object],world.gameStarted,world.cardFacts) ELSE FALSE],
cardActivity |-> [object \in DOMAIN world.objects |-> DefaultActive(world.objects[object],world.gameStarted,world.cardFacts)],
activationEpoch |-> [key \in DOMAIN definitions |-> 0],activationSerial |-> 0,activity |-> world.activity,points |-> world.points,
progress |-> [object \in DOMAIN world.objects |-> 0],link |-> [p \in SetupPlayers |-> 0],exposureMarkers |-> [p \in SetupPlayers |-> 0],
objectiveCompletionEvents |-> {},usedObjects |-> world.usedObjects,holds |-> Empty10,effects |-> Empty10]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Empty10, DefaultActive, SetupPlayers
MarkSpecimen0119Checks1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkSpecimen0119Checks1011 ==
LET x==MarkCreate1011(MarkBase1011("SideB"),1) defs==MarkSingleDefinition1011(11103,3,"Specimen0119","TraversalEnded")
first==MarkCaptureFixture1011(x.after,x.authority,MarkOccurrence1011(x.after,defs,8201,"TraversalEnded","SchemaAtom082",30))
q1==MarkRecognitionOne1011(first,defs,TRUE,8300)
siteInspection==MarkCaptureFixture1011(first.after,first.authority,MarkOccurrence1011(first.after,defs,8202,"Inspection","SchemaAtom082",31))
later==MarkCaptureFixture1011(siteInspection.after,siteInspection.authority,MarkOccurrence1011(siteInspection.after,defs,8203,"TraversalEnded","SchemaAtom082",31))
q2==MarkRecognitionOne1011(later,defs,FALSE,8301)
IN /\ MarkCaptureValid1011(first) /\ MarkRecognitionValid1011(q1) /\ Cardinality(DOMAIN q1.after.instances)=1
/\ MarkSpecimen0119Body1011(first.after,first.event,[tag |-> "Specimen0119InstructionCondition",occurrence |-> 8201,traversalId |-> 30,holds |-> FALSE])
/\ MarkCaptureValid1011(siteInspection) /\ MarkCaptureValid1011(later) /\ MarkRecognitionValid1011(q2) /\ DOMAIN q2.after.instances={}
/\ MarkSpecimen0119Body1011(later.after,later.event,[tag |-> "Specimen0119InstructionCondition",occurrence |-> 8203,traversalId |-> 31,holds |-> TRUE])Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkBase1011, MarkCaptureFixture1011, MarkCaptureValid1011, MarkCreate1011, MarkOccurrence1011, MarkRecognitionOne1011, MarkRecognitionValid1011, MarkSingleDefinition1011, MarkSpecimen0119Body1011
MarkSuccessDefinitions1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkSuccessDefinitions1011(object,id) ==
LET exampleFamily051==MarkDefinition1011(11101,1,"Specimen0165","TraversalSuccessful")
Specimen0259==MarkDefinition1011(id,object,"Specimen0259","TraversalSuccessful")
IN [key \in {ConditionalKey96(exampleFamily051),ConditionalKey96(Specimen0259)} |-> IF key=ConditionalKey96(exampleFamily051) THEN exampleFamily051 ELSE Specimen0259]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalKey96, MarkDefinition1011
MarkSuccessHistoryChecks1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkSuccessHistoryChecks1011 ==
LET x==MarkSuccessHistoryFixture1011 m==x.first.mark r==x.replaced
read==[tag |-> "CurrentMarkHistory",worldId |-> x.SchemaAtom187.after.id,effectId |-> m.effectId,kind |-> "TraversalSuccessful",events |-> {8002,8003},first |-> {8002}]
IN /\ MarkCaptureValid1011(x.old) /\ ~x.old.mark.present /\ MarkSuccessfulSourceValid1011(x.old.event)
/\ MarkCreateValid1011(x.create) /\ x.create.event.serial=2
/\ MarkCaptureValid1011(x.first) /\ MarkSuccessfulSourceValid1011(x.first.event) /\ MarkRecognitionValid1011(x.q1)
/\ Cardinality(DOMAIN x.q1.after.instances)=2 /\ \A id \in DOMAIN x.q1.after.instances : x.q1.after.instances[id].status="Pending"
/\ r.before.objects[2].card#r.before.objects[8].card
/\ r.before.cardFacts[r.before.objects[2].card].sourceSHA=r.before.cardFacts[r.before.objects[8].card].sourceSHA
/\ MarkAdvanceValid1011(r)
/\ CardBatchTransfer8(r.before.objects,MarkDiscarded1011(r.before,2,12),{2},[id \in {2} |-> 12],r.before.usedObjects,"SideBDiscard","Up",[id \in {2} |-> 0])
/\ SideBPaidDeployPost(r.after.objects[22],"SideB","Equipment",TRUE,TRUE)
/\ CardBatchTransfer8(MarkDiscarded1011(r.before,2,12),[r.after.objects EXCEPT ![22].deployed=FALSE],{8},[id \in {8} |-> 22],r.before.usedObjects \cup {12},"Play","Up",[id \in {8} |-> 0])
/\ MarkCaptureValid1011(x.SchemaAtom187) /\ MarkSuccessfulSourceValid1011(x.SchemaAtom187.event) /\ MarkRecognitionValid1011(x.q2) /\ DOMAIN x.q2.after.instances={}
/\ MarkHistoryRead1011(x.SchemaAtom187.after,x.SchemaAtom187.authority,"SideB","TraversalSuccessful",MarkReadFixture1011(x.SchemaAtom187.after,x.SchemaAtom187.authority),read)
/\ MarkSpecimen0259Branch1011(x.first.after,x.first.event,[tag |-> "Specimen0259InstructionBranch",occurrence |-> 8002,branch |-> "AdditionalCentralAItemInspection"])
/\ ~FirstMarkEvent1011(x.SchemaAtom187.after,m,"TraversalSuccessful",8001) /\ ~FirstMarkEvent1011(x.SchemaAtom187.after,m,"TraversalSuccessful",8003)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkAdvanceValid1011, MarkCaptureValid1011, MarkCreateValid1011, MarkDiscarded1011, MarkReadFixture1011, MarkRecognitionValid1011, MarkSuccessHistoryFixture1011, MarkSuccessfulSourceValid1011, FirstMarkEvent1011, MarkHistoryRead1011, MarkSpecimen0259Branch1011, CardBatchTransfer8, SideBPaidDeployPost
MarkSuccessHistoryFixture1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkSuccessHistoryFixture1011 ==
LET base==MarkBase1011("SideB") defs==MarkSuccessDefinitions1011(2,11102)
old==MarkCaptureFixture1011(base.world,base.authority,MarkOccurrence1011(base.world,defs,8001,"TraversalSuccessful","SchemaAtom082",20))
x==MarkCreate1011([world |-> old.after,authority |-> base.authority],1)
first==MarkCaptureFixture1011(x.after,x.authority,MarkOccurrence1011(x.after,defs,8002,"TraversalSuccessful","SchemaAtom082",21))
q1==MarkRecognitionOne1011(first,defs,TRUE,8100)
replaced==MarkOverinstall1011(first.after,first.authority)
laterDefs==MarkSuccessDefinitions1011(22,11112)
SchemaAtom187==MarkCaptureFixture1011(replaced.after,replaced.authority,MarkOccurrence1011(replaced.after,laterDefs,8003,"TraversalSuccessful","SchemaAtom082",22))
q2==MarkRecognitionOne1011(SchemaAtom187,laterDefs,FALSE,8101)
IN [old |-> old,create |-> x,first |-> first,q1 |-> q1,replaced |-> replaced,SchemaAtom187 |-> SchemaAtom187,q2 |-> q2]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: MarkBase1011, MarkCaptureFixture1011, MarkCreate1011, MarkOccurrence1011, MarkOverinstall1011, MarkRecognitionOne1011, MarkSuccessDefinitions1011
MarkSuccessfulSourceValid1011 · operator
reference-profile · input revision 2 · CC0 1.0
MarkSuccessfulSourceValid1011(event) ==
LET before==OpenSuccess6([event.traversal EXCEPT !.successful=FALSE])
after==[before EXCEPT !.declarationProcessed=TRUE,!.traversal.successful=TRUE]
IN /\ after.traversal=event.traversal /\ DeclareSuccessfulTraversal6(before,after,TRUE,{[tag |-> "SuccessfulTraversal",traversalId |-> event.traversal.id,targetSite |-> event.targetSite]})Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DeclareSuccessfulTraversal6, OpenSuccess6
MarkedCounterLegal103 · operator
reference-profile · input revision 2 · CC0 1.0
MarkedCounterLegal103(selected) == 4 \in selectedExact module download · Source bundle and reproduction instructions
Next10 · operator
reference-profile · input revision 2 · CC0 1.0
Next10 == UNCHANGED block10Exact module download · Source bundle and reproduction instructions
Resolved project definitions: block10
NonMonotoneLegal103 · operator
reference-profile · input revision 2 · CC0 1.0
NonMonotoneLegal103(selected) == selected={} \/ selected={1,2}Exact module download · Source bundle and reproduction instructions
Obj101 · operator
reference-profile · input revision 2 · CC0 1.0
Obj101(card,form,kind,zone,host,virtual) ==
[card |-> card,form |-> form,kind |-> kind,zone |-> zone,host |-> host,virtual |-> virtual,deployed |-> FALSE,owner |-> IF card="NeutralValue00006" THEN "SideB" ELSE "SideA"]Exact module download · Source bundle and reproduction instructions
ResourceCostsFixture105 · operator
reference-profile · input revision 2 · CC0 1.0
ResourceCostsFixture105(world) == [id \in {1,2} |->
LET source==IF id=1 THEN 51 ELSE 12 IN
[snapshotId |-> world.id,actionId |-> 7000,target |-> 12,kind |-> "RetireCentralA",amount |-> 1,
source |-> ObjectAbilitySource9(source),sourceObject |-> world.objects[source],sourceSHA |-> CardFacts10[world.objects[source].card].sourceSHA,eligible |-> {60,61}]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, CardFacts10
SabotageAllocationChecks1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageAllocationChecks1012 ==
/\ \A h,d \in 0..3 : \A n \in 1..5 :
LET w==SabotageWorld1012("Specimen0048",h,d,n) choices==SabotageChoices1012(w,n)
IN /\ choices#{}
/\ \A q \in choices : LET x==SabotageTraversal1012(w,q) IN
/\ SabotageTraversalValid1012(x) /\ Cardinality(x.completion.trashed)=MinOf(n,h+d)
/\ SabotageZones1012(x.after) /\ x.after.outcome="Playing" /\ x.after.objects[950]=w.objects[950]
/\ x.after.aDrawPile=SubSeq(w.aDrawPile,x.ready.aDrawPileCount+1,d)
/\ \A old \in DOMAIN x.successors : x.after.objects[x.successors[old]].marks={} /\ x.after.objects[x.successors[old]].card=w.objects[old].card /\ x.after.owners[x.successors[old]]="SideA"
/\ LET w==SabotageWorld1012("Specimen0083",2,30,2)
IN \A q \in SUBSET w.aHand : SabotageTraversalValid1012(SabotageTraversal1012(w,q))
/\ LET w==SabotageWorld1012("Specimen0048",5,2,4)
IN /\ \A q \in SabotageChoices1012(w,4) : Cardinality(q)>=2 /\ SabotageTraversalValid1012(SabotageTraversal1012(w,q))
/\ ~SabotageChoiceValid1012(w,{})
/\ LET w==SabotageWorld1012("Specimen0048",2,1,4) x==SabotageTraversal1012(w,w.aHand)
IN /\ SabotageTraversalValid1012(x) /\ x.after.aHand={} /\ Len(x.after.aDrawPile)=0
/\ RequiredEmptyDeckWinner4("SideA",x.after.aDrawPile,FALSE,FALSE)="NoValue"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SabotageChoiceValid1012, SabotageChoices1012, SabotageTraversal1012, SabotageTraversalValid1012, SabotageWorld1012, SabotageZones1012, MinOf, RequiredEmptyDeckWinner4
SabotageChoiceValid1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageChoiceValid1012(world,aHandChoice) ==
LET c==SabotageContextFixture1012(world) p==SabotagePacketFixture1012(world) f==OpenSabotageFrame1012(12500,c,1,world,p)
d==[tag |-> "SideASabotageCentralAChoice",actor |-> "SideA",frameId |-> 12500,snapshotId |-> world.id,view |-> SideASabotageView1012(world,p),aHand |-> aHandChoice]
IN ChooseSabotageCentralA1012(f,[f EXCEPT !.phase="ReadyRetire",!.choiceSealed=TRUE,!.aHandChosen=aHandChoice,!.aDrawPileCount=SabotageTotal1012(world,p.amount)-Cardinality(aHandChoice)],c,1,world,p,d)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SabotageContextFixture1012, SabotagePacketFixture1012, ChooseSabotageCentralA1012, OpenSabotageFrame1012, SabotageTotal1012, SideASabotageView1012
SabotageChoices1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageChoices1012(world,amount) ==
{q \in SUBSET world.aHand : Cardinality(q)<=SabotageTotal1012(world,amount) /\ SabotageTotal1012(world,amount)-Cardinality(q)<=Len(world.aDrawPile)}Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SabotageTotal1012
SabotageContextFixture1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageContextFixture1012(world) == world.expectedInstructions[12003]Exact module download · Source bundle and reproduction instructions
SabotageDepartedSource1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageDepartedSource1012 ==
LET w==SabotageWorld1012("Specimen0242",1,2,3)
objects==ReplacementOverlay99(Without101(w.objects,{500}),[id \in {5000} |-> [w.objects[500] EXCEPT !.zone="SideBDiscard",!.face="Up",!.deployed=FALSE,!.activated=FALSE,!.loc=0,!.marks={}]])
c==[SabotageContextFixture1012(w) EXCEPT !.currentWorld=101]
p==[SabotagePacketFixture1012(w) EXCEPT !.snapshotId=101]
next==[w EXCEPT !.id=101,!.objects=objects,!.usedObjects=@ \cup {5000},!.owners=ReplacementOverlay99(Without101(@,{500}),[id \in {5000} |-> "SideB"]),
!.usedWorlds=@ \cup {101},!.historicalPhysical=[id \in {500} |-> "Specimen0242"],!.expectedInstructions=[id \in {c.id} |-> c],!.sabotagePackets=[key \in {p.key} |-> p]]
IN [before |-> w,after |-> next]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, SabotageContextFixture1012, SabotagePacketFixture1012, SabotageWorld1012, Without101
SabotageDepartureChecks1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageDepartureChecks1012 ==
LET d==SabotageDepartedSource1012 x==SabotageTraversal1012(d.after,d.after.aHand)
IN /\ CardBatchTransfer8(d.before.objects,d.after.objects,{500},[id \in {500} |-> 5000],d.before.usedObjects,"SideBDiscard","Up",[id \in {500} |-> 0])
/\ SabotageTraversalValid1012(x) /\ 500 \notin DOMAIN x.before.objects /\ x.packet.sourceCard="Specimen0242"
/\ Cardinality(x.completion.trashed)=3 /\ x.after.objects[5000]=d.after.objects[5000]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SabotageDepartedSource1012, SabotageTraversal1012, SabotageTraversalValid1012, CardBatchTransfer8
SabotageNegativeChecks1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageNegativeChecks1012 ==
LET w==SabotageWorld1012("Specimen0048",2,3,4) x==SabotageTraversal1012(w,w.aHand)
first==CHOOSE old \in DOMAIN x.successors : TRUE
next==x.after
shifted==[w EXCEPT !.aDrawPile= <<w.aDrawPile[2],w.aDrawPile[1],w.aDrawPile[3]>>]
IN /\ ~ChooseSabotageCentralA1012(x.frame,x.ready,x.context,1,w,x.packet,[x.decision EXCEPT !.actor="SideB"])
/\ ~SabotageChoiceValid1012(w,{w.aDrawPile[1]})
/\ ~ChooseSabotageCentralA1012(x.ready,x.ready,x.context,1,w,x.packet,x.decision)
/\ ~ChooseSabotageCentralA1012(x.frame,x.ready,x.context,1,shifted,x.packet,x.decision)
/\ ~ResolveSabotage1012(x.ready,x.done,x.context,1,w,[next EXCEPT !.objects[x.successors[first]].face="Up"],x.packet,x.successors,next.id,12600,x.events,x.completion)
/\ ~ResolveSabotage1012(x.ready,x.done,x.context,1,w,[next EXCEPT !.objects[x.successors[first]].marks={"InheritedRestriction"}],x.packet,x.successors,next.id,12600,x.events,x.completion)
/\ ~ResolveSabotage1012(x.ready,x.done,x.context,1,w,[next EXCEPT !.objects[950].marks={}],x.packet,x.successors,next.id,12600,x.events,x.completion)
/\ ~ResolveSabotage1012(x.ready,x.done,x.context,1,w,[next EXCEPT !.objects=ReplacementOverlay99(@,[id \in {first} |-> w.objects[first]])],x.packet,x.successors,next.id,12600,x.events,x.completion)
/\ ~ResolveSabotage1012(x.ready,x.done,x.context,1,w,[next EXCEPT !.aDrawPile=w.aDrawPile],x.packet,x.successors,next.id,12600,x.events,x.completion)
/\ ~ResolveSabotage1012(x.ready,x.done,x.context,1,w,[next EXCEPT !.owners[x.successors[first]]="SideB"],x.packet,x.successors,next.id,12600,x.events,x.completion)
/\ ~SabotagePacket1012(x.context,w,1,[x.packet EXCEPT !.amount=2])
/\ ~SabotagePacket1012([x.context EXCEPT !.currentWorld=99],w,1,x.packet)
/\ ~OpenSabotage1012(12500,x.context,1,[w EXCEPT !.completedSabotage={x.packet.key}],x.packet,x.frame)
/\ SabotageSupport1012([x.packet EXCEPT !.choicePolicy="AnnouncedCentralATargets"])="RequiresTargetTimingAdapter"
/\ SabotageSupport1012([x.packet EXCEPT !.trashProfile="ExternalReplacement"])="RequiresOwningRetireAdapter"
/\ ~OpenSabotage1012(12500,x.context,1,w,[x.packet EXCEPT !.trashProfile="ExternalReplacement"],x.frame)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, SabotageChoiceValid1012, SabotageTraversal1012, SabotageWorld1012, ChooseSabotageCentralA1012, OpenSabotage1012, ResolveSabotage1012, SabotagePacket1012, SabotageSupport1012
SabotageObserverChecks1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageObserverChecks1012 ==
LET w==SabotageWorld1012("Specimen0048",2,3,4) x==SabotageTraversal1012(w,w.aHand) q==SabotageRecognition1012(x)
deckOnly==SabotageTraversal1012(SabotageWorld1012("Specimen0159",2,3,1),{}) q2==SabotageRecognition1012(deckOnly)
IN /\ SabotageTraversalValid1012(x) /\ SabotageRecognitionValid1012(q) /\ Cardinality(DOMAIN q.after.instances)=1
/\ \A id \in DOMAIN q.after.instances : q.after.instances[id].definition.source=ObjectAbilitySource9(600) /\ q.after.instances[id].status="Pending"
/\ Cardinality(DOMAIN q.cp.occurrences)=Cardinality(q.batch.objects)+1
/\ q.occurrenceSnapshot.cardActivity[700] /\ q.occurrenceSnapshot.cardActivity[800] /\ q.occurrenceSnapshot.cardActivity[900]
/\ SabotageTraversalValid1012(deckOnly) /\ SabotageRecognitionValid1012(q2) /\ DOMAIN q2.after.instances={}
/\ \A key \in DOMAIN q.definitions : q.world.trashRules[key].card#"Specimen0024" =>
\A id \in DOMAIN q.cp.occurrences : ~q.conditions[key][id].results[1]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ObjectAbilitySource9, SabotageRecognition1012, SabotageRecognitionValid1012, SabotageTraversal1012, SabotageTraversalValid1012, SabotageWorld1012
SabotageObserverDefinitions1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageObserverDefinitions1012 ==
LET cards==[object \in {600,700,800,900} |-> CASE object=600 -> "Specimen0024" [] object=700 -> "Specimen0072" [] object=800 -> "Specimen0110" [] OTHER -> "Specimen0041"]
defs==[object \in DOMAIN cards |-> [MarkDefinition1011(12000+object,object,cards[object],"CardsRetireed") EXCEPT !.trigger.kinds={"CardsRetireed","CardRetireed"},!.trigger.actor="SchemaAtom016"]]
IN [key \in {ConditionalKey96(defs[object]) : object \in DOMAIN defs} |-> defs[CHOOSE object \in DOMAIN defs : ConditionalKey96(defs[object])=key]]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ConditionalKey96, MarkDefinition1011
SabotagePacketFixture1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotagePacketFixture1012(world) == world.sabotagePackets[SabotageKey1012(SabotageContextFixture1012(world),1)]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SabotageContextFixture1012, SabotageKey1012
SabotagePrivacyChecks1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotagePrivacyChecks1012 ==
LET w==SabotageWorld1012("Specimen0083",2,3,2)
hidden==[w EXCEPT !.aDrawPile= <<w.aDrawPile[2],w.aDrawPile[1],w.aDrawPile[3]>>]
x==SabotageTraversal1012(w,{101}) y==SabotageTraversal1012(hidden,{101})
moved=={x.successors[id] : id \in DOMAIN x.successors}
sideARead==[tag |-> "SabotageArchiveLook",viewer |-> "SideA",snapshotId |-> x.after.id,visible |-> moved]
sideBRead==[sideARead EXCEPT !.viewer="SideB",!.visible={}]
capacity==[id \in {"EarlierLegalLook"} |-> "RememberedCard"]
IN /\ SideASabotageView1012(w,x.packet)=SideASabotageView1012(hidden,y.packet)
/\ SabotageChoices1012(w,2)=SabotageChoices1012(hidden,2) /\ SabotageTraversalValid1012(x) /\ SabotageTraversalValid1012(y)
/\ x.events[12600].fromADrawPile#y.events[12600].fromADrawPile /\ x.completion.trashed#y.completion.trashed
/\ SabotagePublicSummary1012(x.events[12600])=SabotagePublicSummary1012(y.events[12600])
/\ SideASabotageView1012([w EXCEPT !.sideAKnowledge=capacity],x.packet).previousKnowledge=capacity
/\ HandVisibleCards4(w.aHand,"SideA","SideA",{})=w.aHand /\ ~DeckMayLook4("SideA",FALSE)
/\ ~ReadSabotageDiscardSite1012(x.frame,w,"SideA",{},sideARead) /\ ~ReadSabotageDiscardSite1012(x.ready,w,"SideA",{},sideARead)
/\ ReadSabotageDiscardSite1012(x.done,x.after,"SideA",{},sideARead) /\ ReadSabotageDiscardSite1012(x.done,x.after,"SideB",{},sideBRead)
/\ ~ReadSabotageDiscardSite1012(x.done,x.after,"SideB",moved,[sideBRead EXCEPT !.visible=moved])
/\ DiscardArrivalFace4("SideA","SideAHand","Retire",TRUE)="Up" /\ \A id \in moved : x.after.objects[id].face="Down"
/\ \A id \in w.aHand \cup SetupRange(w.aDrawPile) : ~DefaultActive(w.objects[id],TRUE,w.cardFacts)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SabotageChoices1012, SabotageTraversal1012, SabotageTraversalValid1012, SabotageWorld1012, ReadSabotageDiscardSite1012, SabotagePublicSummary1012, SideASabotageView1012, DeckMayLook4, DiscardArrivalFace4, HandVisibleCards4, DefaultActive, SetupRange
SabotageRecognition1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageRecognition1012(x) ==
LET definitions==SabotageObserverDefinitions1012
world==[x.after EXCEPT !.trashRules=[key \in DOMAIN definitions |-> LET d==definitions[key] card==x.after.sourceDefinitions[x.after.objects[d.syntax.source.object].card]
IN [definition |-> d,card |-> card,sourceSHA |-> x.after.cardFacts[card].sourceSHA,role |-> SabotageObserverRole1012(card)]]]
previous==MarkSnapshot1011(world.id,0,"PreviousCheckpoint",definitions,world)
snapshot==MarkSnapshot1011(world.id,0,"RetireOccurrence",definitions,world)
beforeSnapshot==MarkSnapshot1011(x.before.id,0,"BeforeSabotage",definitions,x.before)
batch==x.events[12600]
allocation==[unit \in {0} \cup batch.objects |-> 12600000+unit]
events==[id \in {allocation[unit] : unit \in DOMAIN allocation} |-> NewSabotageOccurrence1012(id,batch,CHOOSE unit \in DOMAIN allocation : allocation[unit]=id,snapshot,beforeSnapshot)]
published==[world EXCEPT !.sabotageOccurrences=events]
before==NewConditionalLedger96(previous)
begin==MarkSnapshot1011(world.id,12700,"CheckpointBeginning",definitions,world)
cp==[tag |-> "ConditionalCheckpoint",point |-> "ProcedureCodee605a78f5d5e",id |-> 12700,previousCheckpoint |-> 0,serial |-> 1,previousSnapshot |-> previous,beginSnapshot |-> begin,
processingSnapshot |-> [begin EXCEPT !.point="ProcedureCodee605a78f5d5e"],stepSerial |-> 0,occurrences |-> events,caller |-> [kind |-> "SabotageInstructionEnd",reference |-> x.context.currentRef,frameId |-> 12500]]
conditions==[key \in DOMAIN definitions |-> [id \in DOMAIN events |-> [tag |-> "ConditionalTriggerStipulations",ability |-> definitions[key].syntax.id,source |-> definitions[key].syntax.source,
occurrence |-> id,snapshotId |-> snapshot.id,results |-> [part \in {1} |-> definitions[key].syntax.source.object=600 /\ events[id].unit=0 /\ batch.fromCentralA#{}]]]]
candidates==CheckpointCandidates96(definitions,before,cp,conditions)
instances==[key \in candidates |-> 2000000000+key.occurrence]
bindings==[key \in candidates |-> [kind |-> "Reaction",windowId |-> 12800,group |-> 12900,checkpointId |-> cp.id]]
after==EscalatingResourceContestCommitted108(before,definitions,cp,conditions,instances,bindings)
IN [world |-> published,before |-> before,after |-> after,cp |-> cp,conditions |-> conditions,definitions |-> definitions,candidates |-> candidates,allocation |-> instances,bindings |-> bindings,
batch |-> batch,occurrenceAllocation |-> allocation,occurrenceSnapshot |-> snapshot,beforeSnapshot |-> beforeSnapshot]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CheckpointCandidates96, NewConditionalLedger96, EscalatingResourceContestCommitted108, MarkSnapshot1011, SabotageObserverDefinitions1012, NewSabotageOccurrence1012, SabotageObserverRole1012
SabotageRecognitionValid1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageRecognitionValid1012(q) ==
/\ PublishSabotageOccurrences1012(q.world,q.batch,q.occurrenceAllocation,q.occurrenceSnapshot,q.beforeSnapshot,q.cp.occurrences)
/\ \A key \in DOMAIN q.definitions : \A id \in DOMAIN q.cp.occurrences : SabotageTriggerStipulation1012(q.world,q.definitions[key],q.cp.occurrences[id],q.world.trashRules[key],q.conditions[key][id])
/\ EscalatingResourceContestRecognitionValid108(q)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: EscalatingResourceContestRecognitionValid108, PublishSabotageOccurrences1012, SabotageTriggerStipulation1012
SabotageSourceChecks1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageSourceChecks1012 ==
/\ \A source \in SabotageSources1012 :
LET n==CASE source="Specimen0083" -> 2 [] source="Specimen0048" -> 4 [] source \in {"Specimen0242","Specimen0041"} -> 3 [] OTHER -> 1
w==SabotageWorld1012(source,2,3,n)
IN \A q \in SabotageChoices1012(w,n) : SabotageTraversalValid1012(SabotageTraversal1012(w,q))
/\ \A n \in {-2,0} : LET w==SabotageWorld1012("Specimen0159",2,2,n) x==SabotageTraversal1012(w,{}) IN
/\ SabotageTraversalValid1012(x) /\ x.events=Empty10 /\ x.after.objects=w.objects /\ x.after.aHand=w.aHand /\ x.after.aDrawPile=w.aDrawPile
/\ LET w==SabotageWorld1012("Specimen0159",2,2,1) c==[SabotageContextFixture1012(w) EXCEPT !.state.effects=Empty10,!.actualEffects=Empty10]
current==[w EXCEPT !.expectedInstructions=[id \in {c.id} |-> c]]
IN SabotageOmitted1012(c,1,current,w.objects,w.aHand,w.aDrawPile,{})Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Empty10, SabotageChoices1012, SabotageContextFixture1012, SabotageTraversal1012, SabotageTraversalValid1012, SabotageWorld1012, SabotageOmitted1012, SabotageSources1012
SabotageTraversal1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageTraversal1012(world,aHandChoice) ==
LET ctx==SabotageContextFixture1012(world) packet==SabotagePacketFixture1012(world)
frame==OpenSabotageFrame1012(12500,ctx,1,world,packet)
decision==[tag |-> "SideASabotageCentralAChoice",actor |-> "SideA",frameId |-> frame.id,snapshotId |-> world.id,view |-> SideASabotageView1012(world,packet),aHand |-> aHandChoice]
ready==[frame EXCEPT !.phase="ReadyRetire",!.choiceSealed=TRUE,!.aHandChosen=aHandChoice,!.aDrawPileCount=SabotageTotal1012(world,packet.amount)-Cardinality(aHandChoice)]
selected==SabotageSelected1012(ready,world)
successors==[id \in selected |-> 10000+id]
objects==ReplacementOverlay99(Without101(world.objects,selected),[new \in {successors[old] : old \in selected} |->
[world.objects[CHOOSE old \in selected : successors[old]=new] EXCEPT !.zone="SideADiscard",!.face="Down",!.loc=0,!.host=0,!.deployed=FALSE,!.activated=FALSE,!.marks={}]])
eventMap==IF selected={} THEN Empty10 ELSE [id \in {12600} |-> SabotageRetireEvent1012(12600,ready,world,world.id+1,successors)]
after==[world EXCEPT !.id=world.id+1,!.objects=objects,!.aHand=@ \ aHandChoice,!.aDrawPile=SubSeq(@,ready.aDrawPileCount+1,Len(@)),
!.owners=ReplacementOverlay99(Without101(@,selected),[new \in {successors[old] : old \in selected} |-> world.owners[CHOOSE old \in selected : successors[old]=new]]),
!.usedObjects=@ \cup {successors[old] : old \in selected},!.usedProcedures=@ \cup {12500},!.usedWorlds=@ \cup {world.id+1},!.completedSabotage=@ \cup {packet.key},
!.eventIds=@ \cup DOMAIN eventMap,!.sabotageEvents=ReplacementOverlay99(@,eventMap)]
done==[ready EXCEPT !.phase="Complete",!.successors=successors,!.complete=TRUE,!.afterWorld=world.id+1]
completion==[tag |-> "SabotageBodyComplete",reference |-> frame.reference,operation |-> 1,snapshotId |-> world.id+1,frameId |-> 12500,actor |-> "SideA",trashed |-> selected,events |-> DOMAIN eventMap,complete |-> TRUE]
IN [before |-> world,context |-> ctx,packet |-> packet,frame |-> frame,decision |-> decision,ready |-> ready,successors |-> successors,after |-> after,done |-> done,events |-> eventMap,completion |-> completion]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ReplacementOverlay99, Empty10, SabotageContextFixture1012, SabotagePacketFixture1012, OpenSabotageFrame1012, SabotageRetireEvent1012, SabotageSelected1012, SabotageTotal1012, SideASabotageView1012, Without101
SabotageTraversalValid1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageTraversalValid1012(x) ==
/\ OpenSabotage1012(12500,x.context,1,x.before,x.packet,x.frame)
/\ ChooseSabotageCentralA1012(x.frame,x.ready,x.context,1,x.before,x.packet,x.decision)
/\ ResolveSabotage1012(x.ready,x.done,x.context,1,x.before,x.after,x.packet,x.successors,x.after.id,12600,x.events,x.completion)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ChooseSabotageCentralA1012, OpenSabotage1012, ResolveSabotage1012
SabotageWorld1012 · operator
reference-profile · input revision 2 · CC0 1.0
SabotageWorld1012(source,h,d,amount) ==
LET aHand=={100+i : i \in 1..h} aDrawPile==[i \in 1..d |-> 200+i] aliases==aHand \cup SetupRange(aDrawPile)
physical==[id \in aliases |-> "sabotage-physical-" \o SabotageStrings1012!ToString(id)]
semantic==[id \in aliases |-> IF id % 2=0 THEN "Specimen0138" ELSE "Specimen0101"]
cards==[id \in aliases |-> [EscalatingResourceContestCard108(semantic[id],FALSE,FALSE) EXCEPT !.card=physical[id],!.zone=IF id \in aHand THEN "SideAHand" ELSE "SideADeck",!.face="Down",!.marks={"OldObjectRestriction"}]]
sources==[id \in {500,600,700,800,900,950} |-> CASE id=500 -> EscalatingResourceContestCard108(source,CardFacts10[source].kind \in {"Technique","Equipment","Support"},FALSE)
[] id=600 -> EscalatingResourceContestCard108("Specimen0024",FALSE,FALSE) [] id=700 -> EscalatingResourceContestCard108("Specimen0072",source#"Specimen0141",FALSE)
[] id=800 -> EscalatingResourceContestCard108("Specimen0110",TRUE,TRUE) [] id=900 -> [EscalatingResourceContestCard108("Specimen0041",TRUE,FALSE) EXCEPT !.card="Specimen0041-observer-copy"]
[] OTHER -> [EscalatingResourceContestCard108("Specimen0138",FALSE,FALSE) EXCEPT !.zone="SideADiscard",!.marks={"UnrelatedRestriction"}]]
objects==ReplacementOverlay99(cards,sources)
facts==ReplacementOverlay99(ReplacementOverlay99(CardFacts10,[name \in {"Specimen0041-observer-copy"} |-> CardFacts10["Specimen0041"]]),[name \in {physical[id] : id \in aliases} |-> CardFacts10[semantic[CHOOSE id \in aliases : physical[id]=name]]])
ref==InstructionWindowRef93(OpenInstruction93(12001,"Ability",12002,ObjectAbilitySource9(500),"Play",1,"NoValue",<<"SchemaAtom139">>,FALSE))
effect==[id |-> 1,kind |-> "SchemaAtom139",actor |-> "SideA",abilityController |-> "SideB",value |-> amount,sourceCard |-> source,sourceSHA |-> CardFacts10[source].sourceSHA,baseOrigin |-> ref.source]
ctx==[id |-> 12003,phase |-> "Resolving",currentWorld |-> 100,currentRef |-> ref,templates |-> [id \in {1} |-> effect],state |-> [effects |-> [id \in {1} |-> effect]],actualEffects |-> [id \in {1} |-> effect]]
packet==[tag |-> "CurrentSabotagePacket",key |-> SabotageKey1012(ctx,1),reference |-> ref,snapshotId |-> 100,sourceCard |-> source,sourceSHA |-> CardFacts10[source].sourceSHA,
amount |-> amount,actor |-> "SideA",abilityController |-> "SideB",sourcePhysical |-> source,choicePolicy |-> "InternalResolutionChoice",trashProfile |-> "OrdinaryUnreplaced"]
IN [id |-> 100,objects |-> objects,aHand |-> aHand,aDrawPile |-> aDrawPile,usedObjects |-> DOMAIN objects,owners |-> [id \in DOMAIN objects |-> objects[id].side],
outcome |-> "Playing",cardFacts |-> facts,sourceDefinitions |-> [name \in DOMAIN facts |-> IF name \in {physical[id] : id \in aliases} THEN semantic[CHOOSE id \in aliases : physical[id]=name] ELSE IF name="Specimen0041-observer-copy" THEN "Specimen0041" ELSE name],historicalPhysical |-> Empty10,
sideAKnowledge |-> Empty10,currentLookIds |-> [p \in SetupPlayers |-> {}],expectedInstructions |-> [id \in {ctx.id} |-> ctx],sabotagePackets |-> [key \in {packet.key} |-> packet],
usedProcedures |-> {},usedWorlds |-> {100},completedSabotage |-> {},eventIds |-> {},usedOccurrenceIds |-> {},sabotageOccurrences |-> Empty10,sabotageEvents |-> Empty10,trashRules |-> Empty10,
activity |-> ActivityContext9,points |-> [p \in SetupPlayers |-> 0],gameStarted |-> TRUE]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: ActivityContext9, InstructionWindowRef93, ObjectAbilitySource9, OpenInstruction93, ReplacementOverlay99, Empty10, EscalatingResourceContestCard108, SabotageKey1012, SetupPlayers, SetupRange, CardFacts10
SequentialNextFixture104 · operator
reference-profile · input revision 2 · CC0 1.0
SequentialNextFixture104(frame,card) ==
LET index==Len(frame.selectionOrder)+1
slot==frame.policy.slots[index]
receipt==IF slot.mode="Random" THEN DamageSampleFixture104(frame.packet,frame.bHand \ frame.selected,1,{card})
ELSE [tag |-> "ActualAuthorizedDamageChoice",packet |-> frame.packet.key,reference |-> frame.packet.reference,
authorityId |-> frame.policy.id,index |-> index,card |-> card,actor |-> slot.actor]
IN [frame EXCEPT !.selected=@ \cup {card},!.selectionOrder=Append(@,card),!.selections=Append(@,receipt),
!.phase=IF Cardinality(frame.selected \cup {card})=frame.packet.amount THEN "ReadyToRetire" ELSE "SelectingSequentially"]Exact module download · Source bundle and reproduction instructions
Resolved project definitions: DamageSampleFixture104
SimultaneousActivationChecks101 · operator
reference-profile · input revision 2 · CC0 1.0
SimultaneousActivationChecks101 ==
LET objects==[i \in {1,2,3} |-> Obj101("NeutralValue00006","Card","Equipment","Play",0,FALSE)]
names==[i \in DOMAIN objects |-> IF i=3 THEN "different" ELSE "Specimen0036"]
tiedFirst==UniqueActivationPlan101(objects,names,{1,2},{},{1,2},1)
tiedSecond==UniqueActivationPlan101(objects,names,{1,2},{},{1,2},2)
firstOrdered==UniqueActivationPlan101(objects,names,{1,2},{},{1},1)
secondOrdered==UniqueActivationPlan101(objects,names,{1,2},{1},{1,2},2)
olderNonunique==UniqueActivationPlan101(objects,names,{2},{1},{1,2},2)
unrelatedBirth==UniqueActivationPlan101(objects,names,{1,2},{1},{1,2,3},2)
IN /\ ~tiedFirst.valid /\ ~tiedSecond.valid
/\ tiedFirst.disposition="UnsupportedSimultaneousActivation"
/\ tiedSecond.disposition="UnsupportedSimultaneousActivation"
/\ tiedFirst.targets={} /\ tiedSecond.targets={}
/\ ~UniqueActivationRetire101(tiedFirst,{2},"ProcedureCodefe50c31480ea",FALSE)
/\ ~UniqueActivationRetire101(tiedSecond,{1},"ProcedureCodefe50c31480ea",FALSE)
/\ ~UniqueActivationRetire101(tiedFirst,{},"ProcedureCodefe50c31480ea",FALSE)
/\ firstOrdered.valid /\ firstOrdered.disposition="Supported" /\ firstOrdered.targets={}
/\ UniqueActivationRetire101(firstOrdered,{},"ProcedureCodefe50c31480ea",FALSE)
/\ secondOrdered.valid /\ secondOrdered.disposition="Supported" /\ secondOrdered.targets={1}
/\ UniqueActivationRetire101(secondOrdered,{1},"ProcedureCodefe50c31480ea",FALSE)
/\ olderNonunique.valid /\ olderNonunique.targets={1}
/\ UniqueActivationRetire101(olderNonunique,{1},"ProcedureCodefe50c31480ea",FALSE)
/\ unrelatedBirth.valid /\ unrelatedBirth.targets={1}
/\ UniqueActivationRetire101(unrelatedBirth,{1},"ProcedureCodefe50c31480ea",FALSE)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: Obj101, UniqueActivationPlan101, UniqueActivationRetire101
SourceLostMuLegal103 · operator
reference-profile · input revision 2 · CC0 1.0
SourceLostMuLegal103(selected) ==
SumMap([id \in {1,3} \ selected |-> 2]) <= 1+(IF 2 \in selected THEN 0 ELSE 2)Exact module download · Source bundle and reproduction instructions
Resolved project definitions: SumMap
Spec10 · operator
reference-profile · input revision 2 · CC0 1.0
Spec10 == Init10 /\ [][Next10]_block10Exact module download · Source bundle and reproduction instructions
Specimen0049HostLegal103 · operator
reference-profile · input revision 2 · CC0 1.0
Specimen0049HostLegal103(selected) == 1 \in selectedExact module download · Source bundle and reproduction instructions
UnloadedTypeChecks109 · operator
reference-profile · input revision 2 · CC0 1.0
UnloadedTypeChecks109 ==
LET w==LoadWorld109("Specimen0060","ResourceUnit")
placedOnly==CounterTraversalFixture109(w,"PlaceCounters","ResourceUnit",3,1,{})
placedGone==CounterTraversalFixture109(placedOnly.after,"RemoveCounters","ResourceUnit",3,2,DOMAIN placedOnly.added)
otherOnly==CounterTraversalFixture109(w,"PlaceCounters","Power",1,3,{})
otherGone==CounterTraversalFixture109(otherOnly.after,"RemoveCounters","Power",1,4,DOMAIN otherOnly.added)
loaded==CounterTraversalFixture109(w,"LoadCounters","ResourceUnit",3,5,{})
other==CounterTraversalFixture109(loaded.after,"PlaceCounters","Power",1,6,{})
noResourceUnits==CounterTraversalFixture109(other.after,"RemoveCounters","ResourceUnit",3,7,DOMAIN loaded.added)
foreignLoad==CounterTraversalDefinition109(loaded.after,"LoadCounters","Power",1,8,{},19002)
emptied==CounterTraversalFixture109(foreignLoad.after,"RemoveCounters","ResourceUnit",3,9,DOMAIN loaded.added)
IN /\ EmptyWorldsValid109({w,placedOnly.after,placedGone.after,otherOnly.after,otherGone.after,loaded.after,other.after,noResourceUnits.after,foreignLoad.after,emptied.after})
/\ CounterTraversalValid109(placedOnly) /\ CounterTraversalValid109(placedGone) /\ CounterTraversalValid109(otherOnly) /\ CounterTraversalValid109(otherGone)
/\ ~EmptyReadFixture109(placedGone.after,w.loadLinks[1]).empty /\ ~EmptyReadFixture109(otherGone.after,w.loadLinks[1]).empty
/\ CounterTraversalValid109(other) /\ CounterTraversalValid109(noResourceUnits) /\ CounterTraversalValid109(foreignLoad) /\ CounterTraversalValid109(emptied)
/\ EmptyReadFixture109(noResourceUnits.after,w.loadLinks[1]).empty /\ Cardinality(HostedCounterIds109(noResourceUnits.after.objects,900,"Power"))=1
/\ EmptyReadFixture109(emptied.after,w.loadLinks[1]).empty /\ Cardinality(DOMAIN emptied.after.loadHistory)=2
/\ CounterInstructionDisposition109(CounterContextFixture109(w,"LoadCounters","ResourceUnit",0,10).actualEffects[1])="UnsupportedZeroLoad"
/\ CounterInstructionDisposition109([CounterContextFixture109(w,"LoadCounters","ResourceUnit",3,10).actualEffects[1] EXCEPT !.counterKinds={"ResourceUnit","Power"}])="UnsupportedCounterTypeOrMultiType"Exact module download · Source bundle and reproduction instructions
Resolved project definitions: CounterContextFixture109, CounterTraversalDefinition109, CounterTraversalFixture109, CounterTraversalValid109, EmptyReadFixture109, EmptyWorldsValid109, LoadWorld109, CounterInstructionDisposition109, HostedCounterIds109
block10 · variable
reference-profile · input revision 2 · CC0 1.0
block10Exact module download · Source bundle and reproduction instructions