:- module bool. :- use_module builtin, enum, list, private_builtin. :- instance (enum:enum(bool : bool)). bool:(X_4 or Y_5) = Result_6 :- bool:or(X_4, Y_5, Result_6). bool:or((bool:yes), V_4, (bool:yes)). bool:or((bool:no), Bool_5, Bool_5). bool:or_list(List_3) = Result_4 :- bool:or_list(List_3, Result_4). bool:(X_4 and Y_5) = Result_6 :- bool:and(X_4, Y_5, Result_6). bool:and((bool:no), V_4, (bool:no)). bool:and((bool:yes), Bool_5, Bool_5). bool:and_list(List_3) = Result_4 :- bool:and_list(List_3, Result_4). bool:(not X_3) = Result_4 :- bool:not(X_3, Result_4). bool:not((bool:no), (bool:yes)). bool:not((bool:yes), (bool:no)). :- pragma termination_info(bool:or((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(bool:or((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(bool:or_list((builtin:in)) = (builtin:out), finite(0, [no, no]), cannot_loop). :- pragma termination_info(bool:or_list((builtin:in), (builtin:out)), finite(0, [no, no]), cannot_loop). :- pragma termination_info(bool:and((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(bool:and((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(bool:and_list((builtin:in)) = (builtin:out), finite(0, [no, no]), cannot_loop). :- pragma termination_info(bool:and_list((builtin:in), (builtin:out)), finite(0, [no, no]), cannot_loop). :- pragma termination_info(bool:not((builtin:in)) = (builtin:out), finite(0, [no, no]), cannot_loop). :- pragma termination_info(bool:not((builtin:in), (builtin:out)), finite(0, [no, no]), cannot_loop).