:-op(400,xfy,'..'). '$function' X..tag = Tag :- X = (Data,Tag,Map). '$function' X..data = Data :- X = (Data,Tag,Map). '$function' X..map = Map :- X = (Data,Tag,Map). '$define' (store(ADR,Data,Bus):- Address <-- ADR,Bus := ADR..map ,H, *memory(Address) <= Data,Bus <= free) '$clause' (H:- if *d_bus = *g_bus ,Bus = d then (true && H)). '$define' (fetch(ADR,Data,Bus):- Address<--ADR,Bus := ADR..map,H, Data <= *memory(Address),Bus <= free) '$clause' (H:- if *d_bus = *g_bus ,Bus = d then (true && H)).