
INPUT TEXT:
John can have a card.
John is a customer.
If someone can have a card and is a customer then he/she must wait.
Every clerk must have a card.
Bill is a clerk.
Bill cannot wait.
No customer must buy a car.

RULES:
-group([can([pred_mod(wait,named('Bill'),[])])]).
-group([must([pred_mod(buy,A,gv(0),[]),object(gv(0),car,countable,na,eq,1)])]) <- [object(A,customer,countable,na,eq,1)].
can([pred_mod(have,named('John'),v(0),[]),object(v(0),card,countable,na,eq,1)]).
group([must([pred_mod(wait,A,[])])]) <- [can([pred_mod(have,A,B,[]),object(B,card,countable,na,eq,1)]), object(A,C,D,E,F,G), object(A,customer,countable,na,eq,1)].
group([must([pred_mod(have,A,gv(1),[]),object(gv(1),card,countable,na,eq,1)])]) <- [object(A,clerk,countable,na,eq,1)].
object(named('Bill'),'Bill',named,na,eq,1).
object(named('Bill'),clerk,countable,na,eq,1).
object(named('John'),'John',named,na,eq,1).
object(named('John'),customer,countable,na,eq,1).

SIMPLE RULES:
-can(wait(named('Bill'),[])).
-must([buy(A,gv(0),[]),car(gv(0))]) <- [customer(A)].
can([have(named('John'),v(0),[]),card(v(0))]).
must(wait(A,[])) <- [can([have(A,B,[]),card(B)]), something(A), customer(A)].
must([have(A,gv(1),[]),card(gv(1))]) <- [clerk(A)].
clerk(named('Bill')).
customer(named('John')).

ANSWERSET #1:
-group([can([pred_mod(wait,named('Bill'),[])])]).
-group([must([pred_mod(buy,named('John'),gv(0),[]),object(gv(0),car,countable,na,eq,1)])]).
can([pred_mod(have,named('John'),v(0),[]),object(v(0),card,countable,na,eq,1)]).
group([must([pred_mod(wait,named('John'),[])])]).
group([must([pred_mod(have,named('Bill'),gv(1),[]),object(gv(1),card,countable,na,eq,1)])]).
object(named('Bill'),'Bill',named,na,eq,1).
object(named('Bill'),clerk,countable,na,eq,1).
object(named('John'),'John',named,na,eq,1).
object(named('John'),customer,countable,na,eq,1).

ANSWERTEXT #1:
John is a customer.
Bill is a clerk.
It is false that it is possible that Bill waits.
It is false that it is necessary that John buys a car.
It is possible that John has a card.
It is necessary that John waits.
It is necessary that Bill has a card.

