A pleasant headache that parents have every year is preparing Christmas gifts for their children. Because each child envies each other having seen what others received, the parents have to prepare gifts so that no child should envy any other child.
Before a husband and wife go for Christmas shopping, they announce to their children a fixed set of gift candidates and declare that each child will receive a subset of the candidates. The children then respond to the parents with conditions for them to be happy. Each child's condition is relatively defined in terms of the gifts that other siblings would have. The goal of the parents is to satisfy all their children's conditions with the smallest such gift set for each child.
Each child's condition is always expressed as a conjunction:
I need at least (a1 and a2 and ... and an)
where each ai is either
[type 1] a constant subset of the gift candidates, or
[type 2] one sibling's name (meaning his/her gifts), or
[type 3] "common-things-of" two ai of type 1 or 2 (meaning the gifts that are common among the two), or
[type 4] one sibling's name followed by "except-for" a constant subset of the gift candidates (meaning the sibling's gifts excluding those in the constant subset).
For example, for three children {X, Y, Z} and for three candidates {a, b, c} for gifts, let the condition for each child be:
X needs at least ({a, b} and common-things-of (Y, Z))
Y needs at least (common-things-of (Z, {b, c}))
Z needs at least ({a} and (X except-for {c}))
Then the smallest gifts for each child that satisfy his/her condition are {a, b} for X, {b} for Y, and {a, b} for Z.