More on the Requires Operator
The requires operator is not an incremental add. For example, you write the constraint req(A, B). If the user picks A and there are no B's in the solution, the Siebel Product Configurator engine will add at least one B. The next time the user picks A, the engine does not add another B.
If you want to add a B each time an A is added, use the inc() operator.