Executions in (Semi-)Integer Petri Nets are Compact Closed Categories

In this work, we analyse Petri nets where places are allowed to have a
negative number of tokens. For each net we build its correspondent category of
executions, which is compact closed, and prove that this procedure is
functorial. We moreover exhibit a procedure to recover the original net from
its category of executions, show that it is again functorial, and that this
gives rise to an adjoint pair. Finally, we use compact closeness to infer that
allowing negative tokens in a Petri net makes the causal relations between
transition firings non-trivial, and we use this to model interesting phenomena
in economics and computer science.