% Instance course(1,1,5). course(1,2,5). course(2,1,4). course(2,2,4). course(3,1,6). course(4,1,3). course(5,1,4). course(6,2,2). course(7,2,4). course(3,3,6). course(4,3,3). course(4,4,3). course(5,4,4). course(6,3,2). course(7,3,4). course(7,4,4). course(8,3,5). course(8,4,5). % Generate 3{register(C) : course(C, _, _)}6. % Define domain(C, D) :- course(C, D, _). domain_count(N) :- N = #count {domain(C, _) : register(C)}. % Display #show register/1.