Constructing Cooperative Logic Problems