%%%%% CONFIGURATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% :- module(extend, [mem/4,program_order/1,if_pair/1,lock_pair/1,synchro_order/1]). mem(i1,t1,cr,v(0)). mem(i2,t1,wr,x). mem(i3,t1,wr,y). mem(i4,t1,wr,z). mem(i5,t1,re,x). mem(i6,t1,wr,r1). mem(i7,t1,re,r1). mem(i8,t1,if,v(0)). mem(i9,t1,re,r1). mem(i10,t1,wr,y). mem(i11,t1,fi,null). mem(i12,t2,re,y). mem(i13,t2,wr,r2). mem(i14,t2,re,r2). mem(i15,t2,if,n(v(0))). mem(i16,t2,re,r2). mem(i17,t2,wr,x). mem(i18,t2,fi,null). mem(i19,t3,cr,v(1)). mem(i20,t3,wr,z). mem(i21,t4,re,z). mem(i22,t4,wr,r0). mem(i23,t4,re,r0). mem(i24,t4,if,v(1)). mem(i25,t4,cr,v(42)). mem(i26,t4,wr,x). mem(i27,t4,fi,null). program_order([i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11]). program_order([i4,i12,i13,i14,i15,i16,i17,i18]). program_order([i4,i19,i20]). program_order([i4,i21,i22,i23,i24,i25,i26,i27]). if_pair([(i8,i11),(i15,i18),(i24,i27)]). lock_pair([]). synchro_order([]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%