//namespace DSM.machine.PetriNet; import DSM.metamodel.PetriNet.PetriNetEditor; @incremental //@localsearch // All transformation for Petri Net simulation machine 'PetriNetBug' { rule main() = seq{ let C = 1, PN = DSM.model.PetriNet.Sparse_10 in iterate choose P with find petriPlace(PN,P) do seq{ println("found: " + P); update C = C + 1; if (C > 100) fail; } /*let C = 1, PN = DSM.model.PetriNet.Sparse_10 in forall P with find petriPlace(PN,P) do seq{ println("found: " + P); //update C = C + 1; //if (C > 5) fail; }*/ } @Random pattern petriPlace(PN,Place) = { 'PetriNet'(PN); 'PetriNet'.'Place'(Place); 'PetriNet'.'places'(X2, PN, Place); } }