% DRAGON -- DMC Code [Delzanno 2003] % MP - Nov 14, 2007 :-dynamic r/4. :-dynamic info/4. info(1,[p],5,[i,d,e,sc,sd]). r(init,p(s_s,I,D,E,SC,SD),{I>=1,D=0,E=0,SC=0,SD=0},1). %initial state r(p(s_s,I,D,E,SC,SD),p(s_s,I,D,E,SC,SD), %rh {I>=0,D>=0,SC>=0,SD>=0,E>=0, D+SC+SD+E>=1},2). r(p(s_s,I,D,E,SC,SD),p(s_s,I1,D,E1,SC,SD), %rm1 {D=0,SC=0,SD=0,E=0, I>=1, I1=I-1,E1=E+1},3). r(p(s_s,I,D,E,SC,SD),p(s_s,I1,D1,E1,SC1,SD1), %rm2 {D>=0,SC>=0,SD>=0,E>=0, I>=1,D+E+SC+SD>=1, I1=I-1,D1=0,E1=0,SC1=SC+E+1,SD1=SD+D},4). r(p(s_s,I,D,E,SC,SD),p(s_s,I1,D1,E,SC,SD), %wm1 {D=0,E=0,SC=0,SD=0, I>=1, I1=I-1,D1=D+1},5). r(p(s_s,I,D,E,SC,SD),p(s_s,I1,D1,E1,SC1,SD1), %wm2 {D>=0,SC>=0,SD>=0,E>=0, I>=1,D+E+SC+SD>=1, I1=I-1,D1=0,E1=0,SC1=SC+E+D+SD,SD1=1},6). r(p(s_s,I,D,E,SC,SD),p(s_s,I,D,E,SC,SD), %wh1 {I>=0,E>=0,SC>=0,SD>=0, D>=1},7). r(p(s_s,I,D,E,SC,SD),p(s_s,I,D1,E1,SC,SD), %wh2 {I>=0,SC>=0,SD>=0,D>=0, E>=1, D1=D+1,E1=E-1},8). r(p(s_s,I,D,E,SC,SD),p(s_s,I,D1,E,SC,SD1), %wh3 {E>=0,I>=0,D>=0, SD=1,SC=0, SD1=0,D1=D+1},9). r(p(s_s,I,D,E,SC,SD),p(s_s,I,D1,E,SC1,SD), %wh4 {E>=0,I>=0,D>=0, SC=1,SD=0, SC1=0,D1=D+1},10). r(p(s_s,I,D,E,SC,SD),p(s_s,I,D,E,SC1,SD1), %wh5 {E>=0,I>=0,D>=0,SC>=0,SD>=0, SC+SD>=2, SC1=SC+SD-1,SD1=1},11). %unsafe14 prop(unsafe, p:s * (i>=0) * (d>=1) * (e>=0) * (sc>=0) * (sd>=0) * (e+sc+sd>=1) + p:s * (i>=0) * (d>=0) * (e>=1) * (sc>=0) * (sd>=0) * (sc+sd>=1) + p:s * (i>=0) * (d>=2) * (e>=0) * (sc>=0) * (sd>=0) + p:s * (i>=0) * (d>=0) * (e>=2) * (sc>=0) * (sd>=0)).