CLP dialect :ISO PrologGNU PrologSicstus PrologOther (file)
Program to type check (below or local file) :- use_module(library(clpb)). adder(X, Y, Sum, Cin, Cout) :- sat(Sum =:= card([1,3],[X,Y,Cin])), sat(Cout =:= card([2,3],[X,Y,Cin])).
Optional type declarations (below or local file)