PURPOSE Parallel execution of multiset rewrite rules on a multi-core platform. Rules are executed in parallel as long as their left-hand sides won't overlap. Main novelty is the support of guards and propagation. Here is a (sugared) version of an example using guards Seller x, Buyer x <==> "found matching seller/buyer" The rule applies, i.e. fires, as soon as a seller has found a matching buyer. The above non-linear pattern can be expressed as a linear pattern (each pattern variable is distinct) plus some guard Seller x, Buyer y when x == y <==> ... A (sugared) example using guards and propagation Leq(x,a) \ Leq(x,b) when a Leq(a,b) The above rule replaces Leq(x,b) by Leq(a,b) but keeps (propagates) Leq(x,a) when a