% % MOESI - DMC Code % :-dynamic r/4. :-dynamic info/4. info(1,[p],5,[i,s,e,o,m]). r(init,p(s_s,I,S,E,O,M),{I>=0,S=0,E=0,M=0,O1=0},1). r(p(s_s,I,S,E,O,M),p(s_s,I,S,E,O,M), {I>=0,S>=0,M>=0,E>=0, S+M+E+O>=1},2). r(p(s_s,I,S,E,O,M),p(s_s,I1,S1,E1,O1,M1), {I>=1, S>=0,E>=0,M>=0,O>=0, I1=I-1, S1=S+E+1, O1=O+M, E1=0, M1=0},3). r(p(s_s,I,S,E,O,M),p(s_s,I,S,E,O,M), {M>=1,I>=0,E>=0,S>=0,O>=0},4). r(p(s_s,I,S,E,O,M),p(s_s,I,S,E1,O,M1), {I>=0,S>=0,M>=0,E>=1, E1=E-1,M1=M+1},5). r(p(s_s,I,S,E,O,M),p(s_s,I1,S1,E1,O1,M1), {I>=0,S+O>=1,S>=0,O>=0,M>=0,E>=0, I1=I+O+M+E+S-1,E1=1,M1=0,O1=0,S1=0},6). r(p(s_s,I,S,E,O,M),p(s_s,I1,S1,E1,O,M1), {I>=1, S>=0,E>=0,M>=0,O>=0, I1=I+O+S+E+M-1,S1=0,E1=1,M1=0,O1=0},7). r(p(s_s,I,S,E,O,M),p(s_s,I1,S,E1,O,M), {I>=0,S>=0,M>=0,E>=1,O>=0, E1=E-1,I1=I+1},8). r(p(s_s,I,S,E,O,M),p(s_s,I1,S1,E,O,M), {I>=0,S>=1,M>=0,E>=0,O>=0, S1=S-1,I1=I+1},9). r(p(s_s,I,S,E,O,M),p(s_s,I1,S,E,O,M1), {I>=0,S>=0,M>=1,O>=0,E>=0, M1=M-1,I1=I+1},10). r(p(s_s,I,S,E,O,M),p(s_s,I1,S,E,O1,M), {I>=0,S>=0,M>=0,E>=0,O>=1, O1=O-1,I1=I+1},10). prop(unsafe,p:s * (s>=1) * (m>=1)). %prop(unsafe,p:s * (e>=2)). %prop(unsafe,p:s * (e>=2)). %prop(unsafe,p:s * (e>=2)).