
| P1 (Agent1) :   | go wedding ←                     | [ n 2 − 1, ]{go wedding}        |
|-----------------|----------------------------------|---------------------------------|
| P2 (Agent2) :   | okay(go wedding) ← okay(drive) ← | go wedding                      |
| P3 (Agent3) :   | go wedding ←                     | [Agent2]{go wedding, not drive} |
| P4 (Agent4) :   | empty program                    |                                 |

where selection condition **predicates about some** social condition **concerning either**
the cardinality of communities or particular individuals satisfying body.

For instance, consider the following rule, belonging to a program representing a given agent A:

## A ← [ **L, H** ] {B, Not C}

This rule means that agent A will require a in case a number ν **of agents (other**
than A) exists such that they require or tolerate b**, neither require nor tolerate** c and it holds that 0 ≤ l ≤ ν ≤ h ≤ n − 1. By default, l = 0 and h = n − **1. The** number n **is a parameter - known by each agent - representing the total number** of agents (including the agent A**). This enriched language is referred to as** SOcial Logic Programming **(SOLP). The wedding party scenario of Example 1 can be**
represented by the four SOLP programs shown in Table 1, where the program P4 is empty since the corresponding agent has not any request or desire to express.

The intended models represent the mental states of each agent inside the community. Concerning the party, such models are the following:
M1 = ∅, M2 = {go weddingP1
, go weddingP2
, driveP2 }**, and** M3 = {go weddingP1
,
go weddingP2
, go weddingP3 }, where the subscript Pi(1 ≤ i ≤ n**) references, for**
each atom in a model, the program (resp. agent) that atom is entailed by. The models respectively mean that either (M1) no agent will go to the party, (M2**) only**
Agent1 and Agent2 will go and also Agent2 will drive the car, or (M3**) all agents** but Agent4 **will go to the party.**
Let us show why the above models represent the intended meaning of the program: M1 is empty in case Agent2 **does not go to the wedding party (i.e.** go wedding is not derived by P2). Indeed, in such a case, Agent3 will not go too, since his requirements w.r.t. Agent2 are not satisfied. Moreover, since Agent4 **expresses neither requirements nor tolerated options, he does not go to the party (observe that**
such a behaviour is also represented by the models M2 and M3). Finally, **Agent**1 requires that at least one1 agent (other than himself) goes to the party. As a consequence of the other agents' behaviour, Agent1 **will not go. Thus, no agent will go**
to the party and M1 is empty. The intended meaning of M2 is that both **Agent**1