Each solver object has several attributes. @counter allows us to give each variable occurring in the description a distinct integer to encode it. @var2int is a dictionary mapping each atom naming a variable to the corresponding integer encoding it. @int2node is a dictionary mapping an integer encoding a variable x to the record representing \NODE{x}. @vars is a set variable representing the set of all variables occurring in the description. @labs represents the subset of these variables that are explicitly labeled in the description. @choices is a dictionary that allows us to map a pair of variables x,y to the corresponding R_{xy} representing the relationship between them. Since R_{yx} is the inverse of R_{xy}, we only need to represent one of them: we only represent R_{xy} when x,y are respectively encoded by integers I,J and I is larger than J. For simplicity, we assume that there are fewer than 1000 variables in the description and use index I*1000+J to retrieve R_{xy} from @choices.

<Dominance: Solver class, attributes>=
attr counter:0 var2int int2node vars labs choices

Denys Duchier
Version 1.2.0 (20010221)