annotate ex.pl @ 16:4360c2030303

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