Models of a Propositional Logic Program I'm new to answer sets and logic, and struggle to understand the definition of a model in the book I'm reading. Given the propositional logic Program
$a \leftarrow \\
c \leftarrow \sim b, \sim d \\
d \leftarrow a, \sim c$
where ~x is the default negation ("x is possibly false"). The book claims there are six models to this program with the following definition:
A set X $\subseteq$ A of ground atoms is a model of a propositional logic program P, if head(r) $\in$ X whenever body(r)+ $\subseteq$ X and body(r)- $\cap$ X = $\emptyset$ for every r $\in$ P. 
body(r)+ are the positive atoms of the body, body(r)- the default negated ones. 
I have come up with two possible models: {a, c} and {a, d}, but they also claim {a, b, c, d} to be a model, which I don't understand.
 A: The program may be rewritten in propositional logic as :

$a$
$(\lnot b \land \lnot d) \to c$
$(a \land \lnot c) \to d$

and we have to find its models, i.e. the truth-assignements that simultaneously satisfy them.
As you correctly said, both $\{ a, c \}$ and $\{ a, d \}$ are models.
We will check the first one. With a truth-assignement $v$ such that :

$v(a)=v(c)=$ T

we have $v(a \land \lnot c)=$ F and thus : $v((a \land \lnot c) \to d)$= T : a conditional with a false antecedent is true.
We have $v(c)=$ T and thus : $v((\lnot b \land \lnot d) \to c)$= T :  a conditional with a true consequent is true.
And obviously $v(a)=$ T.
Consider now : $\{ a, b, c, d \}$.
Again : $v(a)=$ T and with $v(c)=$ T we have : $v(a \land \lnot c)=$ F and so : $v((a \land \lnot c) \to d)$= T.
Finally : $v(d)=$ T, and thus : $v((a \land \lnot c) \to d)$= T.

We may "generalise" the above argument and conclude that :

every set that includes one of the models $\{ a, c \}$ and $\{ a, d \}$ must also be a model.

This is why they are six :

$\{ a, c \} , \{ a, d \} , \{ a, c, b \} , \{ a, c, d \} , \{ a, d, b \} , \{ a, b, c, d \}.$

