aboutsummaryrefslogtreecommitdiff
path: root/sample/process_networks/processnet1.in
blob: c6486505627b3f66f26c6d8d3739122f6702b037 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Rules
dup(a1,a2) >< (int i):xs => a1~(i:xs1), a2~(i:xs2), dup(xs1,xs2)~xs;
dup(a1,a2) >< []         => a1~[], a2~[];

inc(r) >< (int i):xs => r~(i+1):w, inc(w)~xs;
inc(r) >< []         => r~[];


// Nets
dup(r,w)~r1, inc(r1) ~ (0:w);

// r,w << dup(r1), r1 << inc(0:w)

//       +-----+       +-----+        +---+
// r ----|     |  r1   |     |        |   |
//       | dup |--->---| inc |---><---| 0 |----+
//   +---|     |       |     |        |   |    |
//   |   +-----+       +-----+        +---+    |
//   |                                         |
//   +-----------------------------------------+
//             w