Skip to content

Commit 054d5d1

Browse files
committed
Add examples
1 parent 6b3d4c1 commit 054d5d1

9 files changed

+137
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
%agent: A(x{u p})
2+
// global boolean parameter
3+
// P
4+
%guard_param: P [false]
5+
6+
#[P] . -> A(x{u}) @ 1
7+
A(x{u}) -> A(x{p}) @ 1
8+
9+
%obs: 'Ap' |A(x{p})|
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
%agent: A(x{u p})
2+
%agent: B()
3+
// global boolean parameter
4+
// P1, P2
5+
6+
#[P1 && P2] . -> A(x{u}) @ 1
7+
#[P1 || P2] . -> B(x{u}) @ 1
8+
9+
%obs: 'Ap' |A(x{p})|
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
2+
3+
%agent: A(x,y,z)
4+
%agent: E(t)
5+
6+
%conflict: A x y
7+
8+
%init: 100 A(),E()
9+
10+
A(x[.]), E(t[.]) -> A(x[1]), E(t[1]) @ 1
11+
A(y[.]), E(t[.]) -> A(y[1]), E(t[1]) @ 1
12+
13+
A(x[_], y[_], z[.]), E(t[.]) -> A(x[_], y[_], z[1]), E(t[1]) @ 1
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
%agent: A(x{u p} y)
2+
%conflict: A x y
3+
// global boolean parameter
4+
// P
5+
%guard_param: B [false]
6+
%guard_param: P [true]
7+
%guard_param: C [false]
8+
%guard_param: x [true]
9+
%guard_param: y [true]
10+
11+
12+
#[P] . -> A(x{u}) @ 1
13+
'~namef' A(x{u}) -> A(x{p}) @ 1
14+
#[x && y] A(x[.]), A(x[.]) -> A(x[1]), A(x[1]) @ 1
15+
#[B || C] A(y[.]), A(y[.]) -> A(y[1]), A(y[1]) @ 1
16+
17+
18+
%obs: 'Ap' |A(x{p})|
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
%init: 50 A(x{u},y{u},z{u})
2+
3+
#[a] A(x{u}, y{u}) -> A(x{u},y{p}) @ 1
4+
#[a || b] A(y{u}, z{u}) -> A(y{u},z{p}) @ 1
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
3+
// Define agents
4+
%agent: A(x,y,z)
5+
// global boolean parameter
6+
%guard_param: P [true]
7+
// P = x and y are in conflict
8+
9+
// Initial conditions
10+
%init: 100 A()
11+
12+
A(x[.],y[.]), A(x[.],y[.]) -> A(x[.],y[1]), A(x[.],y[1]) @ 1
13+
A(x[.],y[.]), A(x[.],y[.]) -> A(x[1],y[.]), A(x[1],y[.]) @ 1
14+
15+
// if there is no conflict
16+
#[[not] P] A(x[.]), A(x[.]) -> A(x[1]), A(x[1]) @ 1
17+
#[[not] P] A(y[.]), A(y[.]) -> A(y[1]), A(y[1]) @ 1
18+
19+
// else
20+
#[P] A(x[1],y[.]), A(x[1],y[.]) -> A(x[2],y[1]), A(x[2],y[1]) @ 1
21+
#[P] A(x[.],y[1]), A(x[.],y[1]) -> A(x[1],y[2]), A(x[1],y[2]) @ 1
22+
23+
// Measure amount of A double bonds
24+
%obs: 'Trimer' |A(x[1],y[2]),A(x[1],y[2])|
25+
26+
// Static analysis must show that P => no double bonds
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
%agent: A(x{u p} y)
2+
%sequential_bond: A x y
3+
// global boolean parameter
4+
// P
5+
6+
7+
. -> A(x{u}) @ 1
8+
A(x{u}) -> A(x{p}) @ 1
9+
A(x[.]), A(x[.]) -> A(x[1]), A(x[1]) @ 1
10+
A(y[.]), A(y[.]) -> A(y[1]), A(y[1]) @ 1
11+
A(x[.],y[.]), A(x[.],y[.]) -> A(x[.],y[1]), A(x[.],y[1]) @ 1
12+
13+
14+
15+
%obs: 'Ap' |A(x{p})|
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
2+
3+
// Define agents
4+
%agent: A(a,b{u p})
5+
%agent: B(x,y{u p})
6+
%agent: C(z,k{u p})
7+
// global boolean parameter
8+
//%guard_param: P [true]
9+
10+
// Initial conditions
11+
%init: 100 A(),B(),C()
12+
13+
A(a[.]),B(x[.]) -> A(a[1]),B(x[1]) @ 1
14+
A(a[1],b{u}),B(x[1],y{u}) <-> A(a[1],b{p}),B(x[1],y{p}) @ 1
15+
#[P]
16+
A(a[.]),C(z[.],k{u}) -> A(a[1]),C(z[1],k{u}) @ 1
17+
#[Q || [not] J]
18+
A(a[1]),C(z[1],k{u}) -> A(a[.]),C(z[.],k{p}) @ 1
19+
#[J && Q]
20+
A(a[.]),C(z[.],k{p}) -> A(a[1]),C(z[1],k{p}) @ 1
21+
#[P || J || [not] Q]
22+
A(a[1],b{u}),C(z[1],k{p}) -> A(a[1],b{p}),C(z[1],k{p}) @ 1
23+
#[Q]
24+
A(a[1]),C(z[1]),B(x[.]) -> A(a[1]),C(z[.]),B(x[1]) @ 1
25+
26+
'not_sym1' A(a[1],b{p}),B(x[1],y{u}) -> .,. @ 1
27+
'not_sym2' A(a[1],b{u}),B(x[1],y{p}) -> .,. @ 1
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
%agent: A(x{u p} y)
2+
//%conflict: A x y
3+
%guard_param: A [true]
4+
%guard_param: B [true]
5+
%guard_param: B [true]
6+
7+
8+
%working_set: [
9+
'create A' #[A && B] . -> A(x{u}) @ 1
10+
'phosphorization' A(x{u}) -> A(x{p}) @ 1
11+
'binding x' A(x[.]), A(x[.]) -> A(x[1]), A(x[1]) @ 1
12+
]
13+
'binding y' A(y[.]), A(y[.]) -> A(y[1]), A(y[1]) @ 1
14+
15+
16+
%obs: 'Ap' |A(x{p})|

0 commit comments

Comments
 (0)