Mercurial > hg > Applications > JavaLite
changeset 59:f97d0d631992
*** empty log message ***
author | kono |
---|---|
date | Wed, 09 Jan 2008 12:40:01 +0900 |
parents | 4102a550bd52 |
children | ff125345619d |
files | src/data/example src/lite/ITLCommander.java src/lite/ITLNodeParser.java src/sbdd/SBDDSet.java src/sbdd/SBDDTest.java |
diffstat | 5 files changed, 58 insertions(+), 54 deletions(-) [+] |
line wrap: on
line diff
--- a/src/data/example Tue Jan 08 17:01:21 2008 +0900 +++ b/src/data/example Wed Jan 09 12:40:01 2008 +0900 @@ -41,40 +41,40 @@ % dining philosopher % note: unspecified resource increase states % ex ((true & al,skip & al,ar,skip & ar,~al,skip) ;empty) * -ex(19,(more, -% three philosophers - *( ('[]'((~al, ~ar)) & @ (al, ~ar,@ (al,ar, @ (ar,'[]'( ~al)))) ;empty) ) , - *( ('[]'((~bl, ~br)) & @ (bl, ~br,@ (bl,br, @ (br,'[]'( ~bl)))) ;empty) ) , - *( ('[]'((~cl, ~cr)) & @ (cl, ~cr,@ (cl,cr, @ (cr,'[]'( ~cl)))) ;empty) ) , -% shared resources - '[]'( ~ ( ar, bl)), - '[]'( ~ ( br, cl)), - '[]'( ~ ( cr, al)) -)). -ex(20,(more, -% five philosophers - *( ('[]'((~al, ~ar)) & @ (al, ~ar,@ (al,ar, @ (ar,'[]'( ~al)))) ;empty) ) , - *( ('[]'((~bl, ~br)) & @ (bl, ~br,@ (bl,br, @ (br,'[]'( ~bl)))) ;empty) ) , - *( ('[]'((~cl, ~cr)) & @ (cl, ~cr,@ (cl,cr, @ (cr,'[]'( ~cl)))) ;empty) ) , - *( ('[]'((~dl, ~dr)) & @ (dl, ~dr,@ (dl,dr, @ (dr,'[]'( ~dl)))) ;empty) ) , - *( ('[]'((~el, ~er)) & @ (el, ~er,@ (el,er, @ (er,'[]'( ~el)))) ;empty) ) , -% shared resources - '[]'( ~ ( ar, bl)), '[]'( ~ ( br, cl)), '[]'( ~ ( cr, dl)), - '[]'( ~ ( dr, el)), '[]'( ~ ( er, al)) -)). % :-fail. % too big to verify (sigh...) - -ex(21,(more, - share([ar,bl]),share([br,cl]),share([cr,dl]), - share([dr,el]),share([er,al]), - *( ((true && '[]'(al) && '[]'((al,ar)) && '[]'(ar));empty) ) , - *( ((true && '[]'(bl) && '[]'((bl,br)) && '[]'(br));empty) ) , - *( ((true && '[]'(cl) && '[]'((cl,cr)) && '[]'(cr));empty) ) , - *( ((true && '[]'(dl) && '[]'((dl,dr)) && '[]'(dr));empty) ) , - *( ((true && '[]'(el) && '[]'((el,er)) && '[]'(er));empty) ) , -true)). % :-fail. % too big to verify (sigh...) +%ex(19,(more, +%% three philosophers +% *( ('[]'((~al, ~ar)) & @ (al, ~ar,@ (al,ar, @ (ar,'[]'( ~al)))) ;empty) ) , +% *( ('[]'((~bl, ~br)) & @ (bl, ~br,@ (bl,br, @ (br,'[]'( ~bl)))) ;empty) ) , +% *( ('[]'((~cl, ~cr)) & @ (cl, ~cr,@ (cl,cr, @ (cr,'[]'( ~cl)))) ;empty) ) , +%% shared resources +% '[]'( ~ ( ar, bl)), +% '[]'( ~ ( br, cl)), +% '[]'( ~ ( cr, al)) +%)). +%ex(20,(more, +%% five philosophers +% *( ('[]'((~al, ~ar)) & @ (al, ~ar,@ (al,ar, @ (ar,'[]'( ~al)))) ;empty) ) , +% *( ('[]'((~bl, ~br)) & @ (bl, ~br,@ (bl,br, @ (br,'[]'( ~bl)))) ;empty) ) , +% *( ('[]'((~cl, ~cr)) & @ (cl, ~cr,@ (cl,cr, @ (cr,'[]'( ~cl)))) ;empty) ) , +% *( ('[]'((~dl, ~dr)) & @ (dl, ~dr,@ (dl,dr, @ (dr,'[]'( ~dl)))) ;empty) ) , +% *( ('[]'((~el, ~er)) & @ (el, ~er,@ (el,er, @ (er,'[]'( ~el)))) ;empty) ) , +%% shared resources +% '[]'( ~ ( ar, bl)), '[]'( ~ ( br, cl)), '[]'( ~ ( cr, dl)), +% '[]'( ~ ( dr, el)), '[]'( ~ ( er, al)) +%)). % :-fail. % too big to verify (sigh...) +% +%ex(21,(more, +% share([ar,bl]),share([br,cl]),share([cr,dl]), +% share([dr,el]),share([er,al]), +% *( ((true && '[]'(al) && '[]'((al,ar)) && '[]'(ar));empty) ) , +% *( ((true && '[]'(bl) && '[]'((bl,br)) && '[]'(br));empty) ) , +% *( ((true && '[]'(cl) && '[]'((cl,cr)) && '[]'(cr));empty) ) , +% *( ((true && '[]'(dl) && '[]'((dl,dr)) && '[]'(dr));empty) ) , +% *( ((true && '[]'(el) && '[]'((el,er)) && '[]'(er));empty) ) , +%true)). % :-fail. % too big to verify (sigh...) ex(22,(more, -% three philosophers with no iteration +%% three philosophers with no iteration ( ('[]'((~al, ~ar)) & @ (al, ~ar,@ (al,ar, @ (ar,'[]'( ~al)))) ;empty) ) , ( ('[]'((~bl, ~br)) & @ (bl, ~br,@ (bl,br, @ (br,'[]'( ~bl)))) ;empty) ) , ( ('[]'((~cl, ~cr)) & @ (cl, ~cr,@ (cl,cr, @ (cr,'[]'( ~cl)))) ;empty) ) , @@ -100,7 +100,7 @@ ex(110,(more-> (more&more))). % our dense time -ex(demo(X),Y) :- demo(X,Y). +% ex(demo(X),Y) :- demo(X,Y). % Regular variable examples ( doesnot work now....) ex(200,^r). @@ -139,9 +139,9 @@ % State Diagram Support -ex(300,(((length(2), @ '<>'(q)) proj true), - st(ns0) - )) :- ensure_loaded(kiss_ex). +%ex(300,(((length(2), @ '<>'(q)) proj true), +% st(ns0) +% )) :- ensure_loaded(kiss_ex). % Infinite Interval @@ -152,13 +152,13 @@ ex(404,~('<>'(empty))). ex(405,('<>'(empty))). % unsatisfiable ex(406,(infinite-> @infinite)). -ex(407,((less(5),[](q))&(length(3)&([](<>(p)),[](<>(~p)),*length(6))))). +% ex(407,((less(5),[](q))&(length(3)&([](<>(p)),[](<>(~p)),*length(6))))). ex(408,(infinite -> ~(<>([](p)) = [](<>(p))))). % satisfiable ex(409,finite). % unsatisfiable -demo(X) :- number(X),demo(X,ITL),nl,ex(ITL),nl,write(ITL). - +% demo(X) :- number(X),demo(X,ITL),nl,ex(ITL),nl,write(ITL). +def("demo(X,Y)","true"). % length 5 interval demo(1, length(5)).
--- a/src/lite/ITLCommander.java Tue Jan 08 17:01:21 2008 +0900 +++ b/src/lite/ITLCommander.java Wed Jan 09 12:40:01 2008 +0900 @@ -8,11 +8,8 @@ private ITLNodeFactoryInterface<Node> lf; - - BDDSatisfier sat; - private ITLNodeParser<Node> parser; - + public BDDSatisfier sat; public ITLCommander(ITLNodeFactoryInterface<Node> lf, ITLNodeParser<Node> parser) { this.lf = lf; @@ -21,14 +18,14 @@ public Node exec(Node predicate, Node value, LinkedList<Node> args) { if (predicate.toString() == "length") { - Node n = lf.trueNode(); + Node n = lf.emptyNode(); int length = Integer.parseInt(args.get(0).toString()); for(int i =0;i<length;i++) { n = lf.nextNode(n); } return (Node)n; } else if (predicate.toString() == "less") { - Node n = lf.trueNode(); + Node n = lf.falseNode(); int length = Integer.parseInt(args.get(0).toString()); for(int i =0;i<length;i++) { n = lf.orNode(lf.emptyNode(),lf.nextNode(n));
--- a/src/lite/ITLNodeParser.java Tue Jan 08 17:01:21 2008 +0900 +++ b/src/lite/ITLNodeParser.java Wed Jan 09 12:40:01 2008 +0900 @@ -13,7 +13,7 @@ public ITLNodeFactoryInterface<Node> logicNodeFactory; public ITLNodeScanner<Node> scanner; - private Command<Node> parseCommand; + public ITLCommander<Node> parseCommand; public Node emptyNode; public ITLNodeParser(ITLNodeFactoryInterface<Node> lf) { @@ -45,8 +45,8 @@ define("skip"," @(empty))"); // 1 length interval define("infinite"," (true & false))"); // define("finite"," ~((true & false)))"); // - // define("length(I)", "true",50,parseCommand); // length operator - define("length(I)", "true",50, // length operator + // define("length(I)", "true",50,command); // length operator + define("length(I)", "empty",50, // length operator new Command<Node>() { public Node exec(Node predicate, Node value, LinkedList<Node> args) { Node n = value; @@ -57,7 +57,7 @@ return (Node)n; } }); - define("less(I)","true",50,parseCommand); // less than N length + define("less(I)","false",50,parseCommand); // less than N length define("next(P)","(empty; @(P)))"); // temporal assignments define("gets(A,B)","keep(@A<->B))"); @@ -83,6 +83,8 @@ define("ex(N,Exp)","true",50,parseCommand); define("def(Head,Body,Order)","true",50,parseCommand); define("include(path)","true",50,parseCommand); + + define("^(r)","r"); // interval variable (we cannot handle now) } @@ -155,7 +157,7 @@ } return arg; } - + /* @Override protected Node term() { Node n; @@ -178,7 +180,7 @@ nextToken(); return n; } - + */ public ITLSolver emptyNode() { return emptyNode; }
--- a/src/sbdd/SBDDSet.java Tue Jan 08 17:01:21 2008 +0900 +++ b/src/sbdd/SBDDSet.java Wed Jan 09 12:40:01 2008 +0900 @@ -12,7 +12,7 @@ public SBDDEntry[] sbddArray ; public int hash; private int hash0; - private int hashSize = 1024; + private int hashSize = 1024*256; public Object lastEntry; SBDDFactory sf; int size = 0;
--- a/src/sbdd/SBDDTest.java Tue Jan 08 17:01:21 2008 +0900 +++ b/src/sbdd/SBDDTest.java Wed Jan 09 12:40:01 2008 +0900 @@ -5,7 +5,6 @@ import lite.ITLNodeParser; import lite.ITLSolver; - public class SBDDTest { @@ -42,11 +41,16 @@ sat.showAllNext("true&q"); sat.showAllNext("~(true& ~q)"); sat.showAllNext("proj(length(3),<>(p))"); + } public void verifyTest() { + // sat.showVerify("((less(5),[](q))&(length(3)&([](<>(p)),[](<>(~p)),*length(6)))))"); + if (true) { + sat.showVerify("skip"); + sat.showVerify(" '<>'p"); sat.showVerify("<>(p) = <>(p)"); sat.showVerify("~(@(q))"); sat.showVerify("p&q"); @@ -58,8 +62,9 @@ sat.showVerify("fin(p)=([](<>(p)))"); } sat.showVerify("fin(p)"); + System.out.println(sat.state); sat.p.parse("include('data/example')."); - System.out.println(sat.state); + System.out.println(p.parseCommand.sat.state); }