#============================================================================== # This file contains three synthesis rules dealing with situations where # there are desirable components in the sources but none are # produce-adjustable. Therefore, they are separable. #============================================================================== code rulebase:=insertnote rulebase ("SS1 ['% (SS1)', '% If the source must be separated', '% and the relevant goals flowrates equal those of the flowrates', '% then put in a separator '] ['and((goaltruth sublist second goal) fuzzyeq (goaltruth sublist second separate_set))'] ['newsource:=snum pair ((second separate_set)-(second goal))', 'put_in_a "SEPARATOR (solitary separate_set) (goal newsource)', 'snum:=snum+1', 'sources:=newsource hitch (sources except solitary separate_set)'] [[],[],[],[]] [[]] o)"Insert; code rulebase:=insertnote rulebase ("SS2 ['% (SS2)', '% If the source must be separated', '% and the relevant goals flowrates exceed those of the flowrates', '% then put in a separator and a mixer'] ['and((goaltruth sublist second goal) > (goaltruth sublist second separate_set))'] ['newsource:=snum pair separate_xes goal separate_set', 'intermediate:=separate_set - newsource', 'update "intermediate 0 (snum+1)', 'newgoal:=goal-intermediate', 'update "newgoal 0 (snum+2)', 'put_in_a "SEPARATOR (solitary separate_set) (intermediate newsource)', 'put_in_a "MIXER (intermediate newgoal) (solitary goal)', 'snum:=snum+3', 'sources:=newsource hitch (sources except solitary separate_set)', 'goals:= newgoal hitch goals'] [[],[],[],[],[],[],[],[],[],[]] [[]]o)"Insert; code rulebase:=insertnote rulebase ("SS3 ['% (SS3)', '% else put in a divider and a separator'] ['truth'] ['frac:=max ((eachboth div (each second (separate_set goal))except ??div))', 'intermediate:=snum pair ((second separate_set)/frac)', 'newsource1:=(snum+1)pair ((second separate_set)-(second intermediate))', 'newsource2:=snum+2 pair (separate_xes goal intermediate)', 'newsource3:=(snum +3) pair ((second intermediate )-(second newsource2))', 'snum:=snum+4', 'put_in_a "DIVIDER (solitary separate_set)(newsource1 intermediate)', 'put_in_a "SEPARATOR (solitary intermediate)(newsource3 newsource2)', 'goals:=goal hitch goals', 'sources:=newsource1 hitch (newsource2 hitch (newsource3 hitch (sources except solitary separate_set)))'] [[],[],[],[],[],[],[],[],[],[]] [[]] o) "Insert;