riddle-lang 0.2.0

RiDDLe is a language for the definition of timeline-based domains and problem definitions, designed to facilitate the integration with solvers and to increase modularity and reusability of domain models.
Documentation
/*
* This domain represents a navigator which moves from one position to another alternating `At` and `GoingTo` values.
* Starting from a position 0.0, this problem requires to reach two positions (i.e., 1.0 and 2.0) in an unspecified order.
*/

class Navigator : StateVariable {

    predicate At(real l) : Interval {
        duration >= 1;
        goal going = new GoingTo(end:start, to:l);
    }

    predicate GoingTo(real from, real to) : Interval {
        duration >= 1;
        goal at = new At(end:start, l:from);
    }
}

Navigator nav = new Navigator();

fact at_0 = new nav.At(start:origin, l:0.0);
at_0.duration >= 1;

goal at_1 = new nav.At(l:1.0);
goal at_2 = new nav.At(l:2.0);