|  | 
| 1 |  | -(spec u4 [(-b _ 1 _) (-b _ 2 _) (-b _ 3 _) (-b _ 4 _) ok]) | 
| 2 |  | - | 
|  | 1 | +(new-declaration (spec X Y) (:= X Y)) | 
| 3 | 2 | (new-declaration (:: Tested Test) | 
| 4 |  | -  (== @(exec (process #Test #Tested)) ok)) | 
|  | 3 | +  (== @(interact (process #Test #Tested)) ok)) | 
|  | 4 | + | 
|  | 5 | +(spec u4 [(-b _ 1 _) (-b _ 2 _) (-b _ 3 _) (-b _ 4 _) ok]) | 
| 5 | 6 | 
 | 
| 6 | 7 | (:= (make_bin Name X1 X2 X3 X4) | 
| 7 | 8 |   { [(+b Name 1 X1)] [(+b Name 2 X2)] [(+b Name 3 X3)] [(+b Name 4 X4)] }) | 
| 8 | 9 | 
 | 
| 9 |  | -(:= b1 #(make_bin b1 0 0 0 1)) | 
| 10 |  | -(:: b1 u4) | 
| 11 |  | - | 
| 12 |  | -(:= b2 #(make_bin b2 0 0 1 1)) | 
| 13 |  | -(:: b2 u4) | 
|  | 10 | +(:= b1 #(make_bin b1 0 0 0 1)) (:: b1 u4) | 
|  | 11 | +(:= b2 #(make_bin b2 0 0 1 1)) (:: b2 u4) | 
| 14 | 12 | 
 | 
| 15 | 13 | (show #b1) | 
| 16 | 14 | (show #b2) | 
| 17 | 15 | 
 | 
|  | 16 | +(:= (if A = X then R = Z) [(-b A I X) (+b R I Z)]) | 
| 18 | 17 | (:= (if A = X and B = Y then R = Z) [(-b A I X) (-b B I Y) (+b R I Z)]) | 
| 19 | 18 | 
 | 
| 20 |  | -''' | 
| 21 |  | -'FIXME | 
| 22 |  | - | 
| 23 |  | -(:= (and AA BB RR) { | 
| 24 |  | -  #(if AA = 0 and BB = XX then RR = 0) | 
| 25 |  | -  #(if AA = 1 and BB = XX then RR = XX) }) | 
| 26 |  | -(show #(and b1 b2 r1)) | 
| 27 |  | -(show (process #b1 #(and b1 b2 r1) #b2)) | 
|  | 19 | +(:= (and A B R) { | 
|  | 20 | +  #(if A = 0 and B = _ then R = 0) | 
|  | 21 | +  #(if A = 1 and B = X then R = X) }) | 
|  | 22 | +(:= rand (process #b1 #(and b1 b2 r) #b2)) | 
|  | 23 | +(show #rand) | 
|  | 24 | +(== #rand #(make_bin r 0 0 0 1)) | 
| 28 | 25 | 
 | 
| 29 | 26 | (:= (or A B R) { | 
| 30 |  | -  [(-b A I 0) (-b B I X) (+b R I X)] | 
| 31 |  | -  [(-b A I 1) (-b B I X) (+b R I 1)]}) | 
| 32 |  | - | 
| 33 |  | -(:= (xor A B R) { | 
| 34 |  | -  [(-b A I 1) (-b B I 0) (+b R I 1)] | 
| 35 |  | -  [(-b A I 0) (-b B I 1) (+b R I 1)] | 
| 36 |  | -  [(-b A I 0) (-b B I 0) (+b R I 0)] | 
| 37 |  | -  [(-b A I 1) (-b B I 1) (+b R I 0)]}) | 
|  | 27 | +  #(if A = 0 and B = X then R = X) | 
|  | 28 | +  #(if A = 1 and B = Y then R = 1) }) | 
|  | 29 | +(:= ror (process #b1 #(or b1 b2 r) #b2)) | 
|  | 30 | +(show #ror) | 
|  | 31 | +(== #ror #(make_bin r 0 0 1 1)) | 
|  | 32 | + | 
|  | 33 | +(:= (not A R) { | 
|  | 34 | +  #(if A = 1 then R = 0) | 
|  | 35 | +  #(if A = 0 then R = 1) }) | 
|  | 36 | +(:= rnot (process #b1 #(not b1 r))) | 
|  | 37 | +(show #rnot) | 
|  | 38 | +(== #rnot #(make_bin r 1 1 1 0)) | 
|  | 39 | + | 
|  | 40 | +(:= rnand (process #b1 #(and b1 b2 r1) #b2 #(not r1 r2))) | 
|  | 41 | +(show #rnand) | 
|  | 42 | + | 
|  | 43 | +''' | 
|  | 44 | +(:= rxor (process #rnand #(and r2 r r3) #ror)) | 
|  | 45 | +(show #rxor) | 
| 38 | 46 | ''' | 
0 commit comments