“…In the past three decades, a myriad of analyses have been proposed that require reasoning about constraints. These include automated analyses of feature models [9,38] and analyses also incorporating other domain artifacts [86,92]. In particular, a logical representation has been used for feature-model evolution [67,87], feature-model interfaces and slicing [1,74], computation of implicit constraints [3], product configuration [44,72] including staged configuration [28], parsing [50], dead-code analysis [83], code simplification [93], type checking [85], consistency checking [29], dataflow analyses [56], model checking [19], testing [16] including variability-aware execution [66] and sampling [58,89], optimization of non-functional properties [78], and variant-preserving refactoring [35].…”