import 'petrinet.ecore' package petrinet context Network inv validName('Invalid name: ' + self.name): self.name.matches('[A-Za-z_][A-Za-z0-9_]*') context Node inv nameMin2Char: self.name.matches('..+') inv weirdName: not self.name.matches('([0-9]*|_*)') context Place inv negativeQuantity: self.tokens >= 0 context Arc inv negativeQuantity: self.weight >= 0 endpackage