annotate ex.pl @ 22:29cf617f49db default tip

newer CVS version
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 22 Apr 2016 16:47:13 +0900
parents e1d3145cff7a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
1 /*
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
2 Copyright (C) 1991, Shinji Kono, Sony Computer Science Laboratory, Inc.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
3 The University, Newcastle upton Tyne
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
4
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
5 Everyone is permitted to copy and distribute verbatim copies
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
6 of this license, but changing it is not allowed. You can also
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
7 use this wording to make the terms for other programs.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
8
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
9 send your comments to kono@csl.sony.co.jp
22
29cf617f49db newer CVS version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
10 $Id: ex.pl,v 1.5 2007/08/30 03:44:35 kono Exp $
2
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
11
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
12 Examples
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
13 */
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
14
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
15 ex(0,(p)).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
16 ex(1,((p&q))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
17 ex(2,( (fin(p)&true) <-> '<>'p)).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
18 ex(3,( fin(p) <-> '[]'( '<>' p) )).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
19 ex(4,(~(true&q))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
20 ex(5,(~(true& ~q))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
21 ex(6,(((true& p),(true& q)))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
22 ex(7,('[]'((p -> '<>' q)))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
23 ex(8,( '<>' '[]'(p))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
24 ex(9,( '[]'( '<>'(p)))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
25 ex(10,((p && p && p && p && p && ~p && p)-> '[]'('<>'(p)))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
26 % weak closure (or finite closure)
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
27 ex(11,+ (a,@ (b,@ (c,@empty)))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
28 % quantifier
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
29 ex(12,exists(R,(R,keep(@R = ~R),'[]'((R->p))))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
30 % temporal assignment
22
29cf617f49db newer CVS version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
31 ex(13,exists(R,(R = p,keep(@R = R),fin(R = q)))).
29cf617f49db newer CVS version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
32
29cf617f49db newer CVS version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
33 ex(133,
29cf617f49db newer CVS version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
34 (exists(R,(q = R,stable(R),fin(p = R))))
29cf617f49db newer CVS version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
35 =
29cf617f49db newer CVS version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
36 (q & (empty,p); ~q & (empty, ~p))).
2
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
37 %
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
38 ex(14,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
39 exists(Q,(Q,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
40 '[]'((Q ->
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
41 (((((a,skip) & (b,skip)), @ keep(~Q)) & Q)
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
42 ;empty))
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
43 )))
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
44 <-> *(((a,skip) & (b,skip) ; empty))
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
45 ).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
46 ex(15,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
47 while(q,((a,skip) & (b,skip)))
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
48 <-> exists(C,(C,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
49 '[]'(
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
50 (C ->
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
51 (((q -> ((a,skip) & (b,skip)), @ keep(~C)) & C),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
52 (~q -> empty))
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
53 ))))
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
54 ).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
55 ex(16,even(p)<->evenp(p)).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
56 % wrong example, but hard to solve
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
57 % ex(17,(p=>(q=>r)) <-> ((p=>q)=>r)).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
58 % ex(18,exists(Q,(p=>Q & Q=>r)) <-> (p=>r)).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
59 % dining philosopher
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
60 % note: unspecified resource increase states
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
61 % ex ((true & al,skip & al,ar,skip & ar,~al,skip) ;empty) *
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
62 ex(19,(more,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
63 % three philosophers
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
64 *( ('[]'((~al, ~ar)) & @ (al, ~ar,@ (al,ar, @ (ar,'[]'( ~al)))) ;empty) ) ,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
65 *( ('[]'((~bl, ~br)) & @ (bl, ~br,@ (bl,br, @ (br,'[]'( ~bl)))) ;empty) ) ,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
66 *( ('[]'((~cl, ~cr)) & @ (cl, ~cr,@ (cl,cr, @ (cr,'[]'( ~cl)))) ;empty) ) ,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
67 % shared resources
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
68 '[]'( ~ ( ar, bl)),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
69 '[]'( ~ ( br, cl)),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
70 '[]'( ~ ( cr, al))
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
71 )).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
72 ex(20,(more,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
73 % five philosophers
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
74 *( ('[]'((~al, ~ar)) & @ (al, ~ar,@ (al,ar, @ (ar,'[]'( ~al)))) ;empty) ) ,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
75 *( ('[]'((~bl, ~br)) & @ (bl, ~br,@ (bl,br, @ (br,'[]'( ~bl)))) ;empty) ) ,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
76 *( ('[]'((~cl, ~cr)) & @ (cl, ~cr,@ (cl,cr, @ (cr,'[]'( ~cl)))) ;empty) ) ,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
77 *( ('[]'((~dl, ~dr)) & @ (dl, ~dr,@ (dl,dr, @ (dr,'[]'( ~dl)))) ;empty) ) ,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
78 *( ('[]'((~el, ~er)) & @ (el, ~er,@ (el,er, @ (er,'[]'( ~el)))) ;empty) ) ,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
79 % shared resources
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
80 '[]'( ~ ( ar, bl)), '[]'( ~ ( br, cl)), '[]'( ~ ( cr, dl)),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
81 '[]'( ~ ( dr, el)), '[]'( ~ ( er, al))
19
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
82 )). % :-fail. % too big to verify (sigh...)
2
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
83
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
84 ex(21,(more,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
85 share([ar,bl]),share([br,cl]),share([cr,dl]),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
86 share([dr,el]),share([er,al]),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
87 *( ((true && '[]'(al) && '[]'((al,ar)) && '[]'(ar));empty) ) ,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
88 *( ((true && '[]'(bl) && '[]'((bl,br)) && '[]'(br));empty) ) ,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
89 *( ((true && '[]'(cl) && '[]'((cl,cr)) && '[]'(cr));empty) ) ,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
90 *( ((true && '[]'(dl) && '[]'((dl,dr)) && '[]'(dr));empty) ) ,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
91 *( ((true && '[]'(el) && '[]'((el,er)) && '[]'(er));empty) ) ,
19
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
92 true)). % :-fail. % too big to verify (sigh...)
2
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
93
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
94 ex(22,(more,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
95 % three philosophers with no iteration
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
96 ( ('[]'((~al, ~ar)) & @ (al, ~ar,@ (al,ar, @ (ar,'[]'( ~al)))) ;empty) ) ,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
97 ( ('[]'((~bl, ~br)) & @ (bl, ~br,@ (bl,br, @ (br,'[]'( ~bl)))) ;empty) ) ,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
98 ( ('[]'((~cl, ~cr)) & @ (cl, ~cr,@ (cl,cr, @ (cr,'[]'( ~cl)))) ;empty) ) ,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
99 % shared resources
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
100 '[]'( ~ ( ar, bl)),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
101 '[]'( ~ ( br, cl)),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
102 '[]'( ~ ( cr, al))
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
103 )).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
104 % These are not schema. Just check
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
105 % Linear Time Axioms, valid in ITL
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
106 ex(100,('[]'((a->b)) -> ('[]'(a) -> '[]'(b)))). % K
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
107 ex(101,('[]'(((a , '[]'(a))->b));'[]'(((b , '[]'(b))->a)))). % 4
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
108 ex(102,('[]'(a)-> '<>'(a))). % D
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
109 ex(103,('[]'(a)-> '[]'('[]'(a)))). % L
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
110 ex(104,(('[]'(a)) -> a)). % T
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
111 ex(105,('[]'('[]'((((a-> '[]'(a)))->a))) -> ((('<>'('[]'(a)))-> '[]'(a))))). % Diodorean discreteness
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
112 % Linear Time Axioms, not valid in ITL
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
113 ex(106,('[]'(('[]'(a)->a))-> ((('<>'('[]'(a)))-> '[]'(a))))). % Z discreteness
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
114 ex(107,('[]'(('[]'(a)->a))-> ('[]'(a)))). % W weak density
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
115 % Other Axioms, not valid in ITL
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
116 ex(108,(a-> '[]'('<>'(a)))). % B
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
117 ex(109,(('<>'a)-> '[]'('<>'(a)))). % 5
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
118
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
119 ex(110,(more-> (more&more))). % our dense time
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
120
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
121 ex(demo(X),Y) :- demo(X,Y).
19
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
122 % Regular variable examples ( doesnot work now....)
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
123
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
124 ex(200,^r).
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
125 ex(201,true & ^r). % will terminate?
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
126 ex(202,((^r & ^r),not(^r))). % is non-local?
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
127 ex(203,(^r,length(4))). % distinguish different state?
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
128 ex(204,('[a]'(^r))). % non-deterministic?
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
129 ex(205,('[a]'(^r = length(2)))). % imitate length?
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
130 ex(206,('[a]'(^r = length(4)),(^r& ^r))).
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
131 ex(207,('[a]'(^r = (length(4);empty)),* ^r)).
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
132 ex(208,('[]'(^r = (
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
133 a,@ ^r;
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
134 not(a),c,@ @ ^r;
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
135 not(a),not(c),b,empty)),^r)). % RE
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
136 ex(209,('[a]'(^r = (
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
137 a,@((^r & @((b,empty)))) ;
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
138 not(a),b,empty)),
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
139 ^r)). % CFG
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
140
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
141 % Linear Time Axioms, valid in ITL
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
142 ex(210,('[]'((^a-> ^b)) -> ('[]'(^a) -> '[]'(^b)))). % K
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
143 ex(211,('[]'(((^a , '[]'(^a))-> ^b));'[]'(((^b , '[]'(^b))-> ^a)))). % 4
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
144 ex(212,('[]'(^a)-> '<>'(^a))). % D
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
145 ex(213,('[]'(^a)-> '[]'('[]'(^a)))). % L
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
146 ex(214,(('[]'(^a))-> ^a)). % T
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
147 % Diodorean discreteness
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
148 ex(215,('[]'('[]'((((^a-> '[]'(^a)))-> ^a))) -> ((('<>'('[]'(^a)))-> '[]'(^a))))).
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
149 % Linear Time Axioms, not valid in ITL
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
150 % Z discreteness
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
151 ex(216,('[]'(('[]'(^a)-> ^a))-> ((('<>'('[]'(^a)))-> '[]'(^a))))).
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
152 % W weak density
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
153 ex(217,('[]'(('[]'(^a)-> ^a))-> ('[]'(^a)))).
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
154 % Other Axioms, not v^alid in ITL
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
155 ex(218,(^a-> '[]'('<>'(^a)))). % B
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
156 ex(219,(('<>' ^a)-> '[]'('<>'(^a)))). % 5
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
157
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
158 % State Diagram Support
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
159
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
160 ex(300,(((length(2), @ '<>'(q)) proj true),
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
161 st(ns0)
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
162 )) :- ensure_loaded(kiss_ex).
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
163
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
164 % Infinite Interval
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
165
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
166 ex(400,infinite).
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
167 ex(401,*infinite).
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
168 ex(402,*skip).
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
169 ex(403,*length(5)).
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
170 ex(404,~('<>'(empty))).
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
171 ex(405,('<>'(empty))). % unsatisfiable
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
172 ex(406,(infinite-> @infinite)).
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
173 ex(407,((less(5),[](q))&(length(3)&([](<>(p)),[](<>(~p)),*length(6))))).
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
174 ex(408,(infinite -> ~(<>([](p)) = [](<>(p))))). % satisfiable
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
175 ex(409,finite). % unsatisfiable
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
176
e1d3145cff7a *** empty log message ***
kono
parents: 16
diff changeset
177
2
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
178 demo(X) :- number(X),demo(X,ITL),nl,ex(ITL),nl,write(ITL).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
179
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
180 % length 5 interval
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
181 demo(1, length(5)).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
182
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
183 % p is trun at the top of a interval
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
184 demo(2, (length(5),p)).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
185
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
186 % @ meas next time.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
187 demo(3, (length(5),@p,@ @q,@ @ @r)).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
188
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
189 % &(chop) devides an interval into to parts
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
190 demo(4, ((length(2),p)) & (length(3),q)).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
191
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
192 % there are several ways of division.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
193 demo(5, (length(5),(p&q))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
194
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
195 % sometime usinng chop
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
196 demo(6, (length(5),(true & p))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
197
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
198 % always: dual of sometime
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
199 demo(7, (length(5),not(true & not(p)))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
200
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
201 % counter intutive theorem
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
202 demo(8, '<>' '[]'(p) = '[]'('<>'(p))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
203
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
204 % shared resource / exclusive condition
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
205 demo(9, (length(5),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
206 '[]'((( ac ,not(bc),not(cc),not(dc));
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
207 (not(ac), bc ,not(cc),not(dc));
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
208 (not(ac),not(bc), cc ,not(dc));
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
209 (not(ac),not(bc),not(cc), dc ))))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
210
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
211 % periodical task by Projection
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
212 demo(10, (more,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
213 proj((@ '<>'(q),length(2)),true))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
214
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
215 % time sharing taks by Projection
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
216 demo(11, (more,length(7),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
217 proj(true,('[]'(p),length(4))))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
218
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
219 % combination of periodical task
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
220 demo(12, (more,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
221 proj(length(2),'[]'(ac)),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
222 proj(length(3),'[]'(bc)),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
223 proj(length(5),'[]'(cc)))).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
224
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
225 % periodical task with shared resources
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
226 demo(13, (more,
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
227 proj((length(3),@ '<>'(ac)),true),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
228 proj((length(5),@ '<>'(bc)),true),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
229 proj((length(5),@ '<>'(cc)),true),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
230 '[]'((not((ac,bc)),not((bc,cc)),not((cc,ac)))),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
231 true)).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
232
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
233 % combination of periodical taks and aperiodical task with shared resource
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
234 demo(14, (
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
235 ((proj(true,(length(5),'[]'(dc))),length(15) )&true),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
236 proj((length(3),@ '<>'(ac)),true),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
237 proj((length(5),@ '<>'(bc)),true),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
238 proj((length(5),@ '<>'(cc)),true),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
239 '[]'((( ac ,not(bc),not(cc),not(dc));
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
240 (not(ac), bc ,not(cc),not(dc));
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
241 (not(ac),not(bc), cc ,not(dc));
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
242 (not(ac),not(bc),not(cc), dc ))),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
243 true)).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
244 % combination of periodical taks and aperiodical task with shared resource
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
245 % schedulable case
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
246 demo(15, (
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
247 ((proj(true,(length(4),'[]'(dc))),length(15) )&true),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
248 proj((length(3),@ '<>'(ac)),true),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
249 proj((length(5),@ '<>'(bc)),true),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
250 proj((length(5),@ '<>'(cc)),true),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
251 '[]'((( ac ,not(bc),not(cc),not(dc));
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
252 (not(ac), bc ,not(cc),not(dc));
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
253 (not(ac),not(bc), cc ,not(dc));
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
254 (not(ac),not(bc),not(cc), dc ))),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
255 true)).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
256
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
257
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
258 % model restriction by share predicate ( a little smaller.... :-)
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
259 demo(16, (
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
260 share([ac,bc,cc,dc]),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
261 ((proj(true,(length(4),'[]'(dc))),length(15) )&true),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
262 proj((length(3),@ '<>'(ac)),true),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
263 proj((length(5),@ '<>'(bc)),true),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
264 proj((length(5),@ '<>'(cc)),true),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
265 true)).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
266 demo(17, (
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
267 ((proj(true,(length(5),'[]'(c))),length(15))&true),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
268 (proj((length(3),@ '<>'(a)),true)&less(3)),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
269 (proj((length(5),@ '<>'(b)),true)&less(5)),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
270 '[]'(not((a,b))),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
271 '[]'(not((b,c))),
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
272 '[]'(not((c,a)))
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
273 )).
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
274
14
0d896bcc1061 *** empty log message ***
kono
parents: 2
diff changeset
275
2
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
276 /* end */