Example Problem Web Editor

class Family {
    contains Person[] members
}

class Person {
    Person[] children opposite parent
    Person parent opposite children
    TaxStatus[1] taxStatus
}

enum TaxStatus {
	child, student, adult, retired
}

error invalidTaxStatus(Person p) :-
	taxStatus(p, child), children(p, _q).

Family('family').
members('family', anne).
members('family', bob).
members('family', ciri).
children(anne, ciri).
?children(bob, ciri).
taxStatus(anne, adult).

scope Family = 1, Person += 5..10.