package hu.bme.mit.inf.dslreasoner.domains.alloyexamples import epackage "FS" pattern patternContent(o1: Dir, o2: FSObject) { Dir.contents(o1,o2); } @QueryBasedFeature pattern live(this: FileSystem, l: FSObject) { FileSystem.root(this,l); } or { FileSystem.root(this,root); find patternContent+(root,l); } @Constraint(key={child}, severity="error", message="error") pattern contentInNotLive(parent : Dir, child: FSObject) { Dir.contents(parent,child); neg find live(_,parent); } or { Dir.contents(parent,child); neg find live(_,child); } pattern dir(d: Dir) { Dir(d); } @Constraint(key={fs}, severity="error", message="error") pattern rootIsNotDir(fs: FileSystem) { FileSystem.root(fs, root); neg find dir(root); }