Is it possible to model maximization in a petri net without using inhibitor arcs? Creating a petri-net that models the minimum function is quite simple:

 -----     -----
   |         |
   |         |
   O         O
   |         |
   v         v
  -------------


If a tokens arrive via source 1 and b tokens arrive via source 2, min(a, b) tokens will eventually end up in the sink.

Now I would like to model the maximum function. I found a solution, but it requires the use of inhibitor arcs. Question: Is is possible to model the maximum function without the use of inhibitor arcs?
I know almost nothing about Petri nets, so watch out for any mistakes.  The terminology in this answer follows Wikipedia.

Theorem.  There is no Petri net with two distinguished source transitions S1 and S2 and one distinguished sink transition T such that if S1 fires a times and S2 fires b times, then T fires max{a,b} times eventually but T cannot fire more than max{a,b} times.

Proof.  Suppose that there is such a Petri net, and let M0 be the initial marking.  Let n be the number of places in this Petri net.  A marking can be viewed as an element in ℕn, where ℕ={0,1,2.…}.

Define markings M1, M2, … recursively as follows.  Starting with Ma (a=0,1,…), let S1 fire once, and wait for T to fire.  Let Ma+1 be the marking after T fires.

By Dickson’s lemma, there exist indices i&lt;j such that Mi≤Mj.  Consider the following scenario.  Starting with Mi, let S2 fire i+1 times.  Counting from the beginning, S1, S2 and T have fired i times, i+1 times and i times, respectively.  Therefore, from this situation, T will eventually fire.  Now consider another scenario.  Starting with Mj, let S2 fire i+1 times.  Then there exists a firing sequence which leads to T firing because Mi≤Mj (and the Petri net does not have inhibitor arcs), but this contradicts the assumption because counting from the beginning, S1, S2 and T have fired j times, i+1 times and j+1 times, respectively, and j+1&gt;max{j, i+1}.  QED.

Edit: The proof in revision 1 contained an error, which was pointed out by mweerden in a comment.  Now it is fixed.  Thanks, mweerden!