set item all items / dish, ink, lipstick, pen, pencil, perfume / subitem1(item) first subset / pen, pencil, perfume / subitem2(item) second subset; subitem1('ink') = yes; subitem1('lipstick') = yes; subitem2(item) = yes; subitem2('perfume') = no; display subitem1, subitem2; sets stuff items sold /pencil, pen/ firm suppliers /bic, parker, waterman/ supply(stuff,firm); supply('pencil','bic') = yes; supply('pen',firm) = yes; set allr /n,s,w,e,n-e,s-w/, r(allr); scalar price /10/; equations prodbal(allr); variables activity(allr), revenue(allr); * equation prodbal declared over allr, defined over r prodbal(r).. activity(r)*price =e= revenue(r); * sum over the dynamic set only parameter totinv, inventory(item); inventory(item) = ord(item); totinv = sum(item$subitem1(item), inventory(item)); * alternative for the same thing totinv = sum(subitem1, inventory(subitem1)); * union set sunion(item); sunion(item) = subitem1(item) + subitem2(item); display sunion; * intersection set sint(item); sint(item) = subitem1(item) * subitem2(item); display sint; * complement set scomp(item); scomp(item) = not subitem1(item); display scomp; * difference set sdiff(item); sdiff(item) = subitem1(item) - subitem2(item); display sdiff;