Hi Jay,
This is a trickier issue than it might seem at first glace. First off, the GMPL/MathProg language uses several syntactic constructs to facilitate modeling such as indexing and logical expressions. These are different from the linear expressions used to express MILP constraints and objective functions. The language definition doesn't allow you to mix them up as you can in some scripting languages (Matlab comes to mind). It's easy to miss these distinctions when quickly browsing the GMPL language reference. As Xypron noted, mixing these would lead to nonlinear and nonconvex problems that are not trivially translated to LP's or MILP's.
Also note that the "Big M" technique commonly used to implement logical constraints as an MILP needs to be 'tuned' to work effectively. A proper value of M is data dependent, so the automatic translation of logical constraints to an MILP is not a trivial issue.
Second, with regard to your application, it sounds like you may need to introduce a binary decision variable -- say
var y{B} binary;
that is one if b is in set B, and a parameter -- call it
param p{a in A} := some logical _expression_ regarding a
From here I'm not sure that I understand your problem, but something like
s.t. constr {a in A : p[a] = 1} : sum{b in B} y[b] >= x[a];
may be what you're looking for. But it's not at all clear to me that this is what you had in mind.
Hope that helps,
Jeff