Menu

GrinGo 1.0.0 Release Announcement

GrinGo 1.0.0 Release Announcement

We are proud to announce the first release of the grounder GrinGo.
We also want to thank everyone who helped us by testing beta versions of GrinGo and sending bug reports.

GrinGo supports the class of lambda-restricted programs that extends Lparse's omega-restricted programs.
Its instantiation procedure uses back-jumping improved by the binder-splitting technique.
This release contains a number of bugfixes, performance optimizations,
and most importantly, new features demanded by the ASP community.

We encourage you to test GrinGo, it can be downloaded at:

www.cs.uni-potsdam.de/gringo

Please send questions, bug reports, and feature requests to:

sthiele@uni-potsdam.de .

What's New in GrinGo

One primary feature is the ability to generate Smodels internal format.
By using the command line option '-l', GrinGo operates similar to Lparse.

Moreover, a lot of effort was spent on compatibility with Lparse's input language.
Besides pure syntactical changes, GrinGo now supports:
- new built-in functions (absolute value 'abs()' and division '/'),
- classical negation,
- cardinality constraints,
- weight constraints,
- optimize statements (maximize and minimize),
- compute statements,
- domain declarations,
- hide declarations, and
- show declarations.

There still are some semantical differences to Lparse which should be mentioned.

GrinGo does not support assignment operator '=' of Lparse.
This is to avoid problems caused by cyclic assignments of variables.
However, in most cases the equality operator '==' can be used instead,
as it works like the assignment operator if one of the parameters is a constant.
For example,
a(X) :- X=1.
is not accepted by GrinGo, but the same can be expressed by
a(X) :- X==1.
However, GrinGo won't accept anything like
a(X) :- X=Y, Y=X.

Another difference lies in the semantics of cardinality constraints,
understood in GrinGo as constraints on sets of atoms.
For instance, consider the following fact:
2 {a, a, b, c}.
With Lparse, the interpretation {a} satisfies the constraint, since 'a' is counted twice.
With GrinGo, each atom is counted only once, that is, duplicates are removed.
For this reason, interpretation {a} is not an answer set according to the semantics of GrinGo.

Have a lot of fun using GrinGo!

Posted by Sven Thiele 2008-04-07

Log in to post a comment.