')). /*~ ~*/ :- op(1050,xfx,''). /*~ ~*/ :- op(1100,fx,('==>')). /*~ ~*/ :- op(1150,xfx,('::::')). /*~ ~*/ :- set_fileAssertMt(header_sane). /*~ %~ set_fileAssertMt(header_sane) ~*/ :- expects_dialect(pfc). /*~ ~*/ :- dynamic(full_name/2). % These tests mix singleValuedInArg and mdefault/1 is differnt ways % if we learn that something has a full name, then we guess it is a user_login object. (in our version of reality) /*~ ~*/ % These tests mix singleValuedInArg and mdefault/1 is differnt ways % if we learn that something has a full name, then we guess it is a user_login object. (in our version of reality) full_name(U,_) ==> user_login(U). % if we learn that something has a host name, then we guess it is a user_login object. /*~ ~*/ % if we learn that something has a host name, then we guess it is a user_login object. host_name(U,_) ==> user_login(U). % when we know a user_login's full name and host name, make a user_name_host/3 assertion. /*~ ~*/ % when we know a user_login's full name and host name, make a user_name_host/3 assertion. (((user_login(User), full_name(User,Name)/(Name\=isMissing), host_name(User,Host)/(Host\=isMissing) ), {ground(user_name_host(User,Name,Host))}) ==> user_name_host(User,Name,Host)). % the default full_name for a user_login is 'isMissing'. %user_login(User), ~full_name(User,X)/(X\=isMissing)==>full_name(User,isMissing). /*~ ~*/ % the default full_name for a user_login is 'isMissing'. %user_login(User), ~full_name(User,X)/(X\=isMissing)==>full_name(User,isMissing). prologSingleValued(full_name). /*~ ~*/ mdefault( user_login(User) ==> full_name(User,isMissing)). % the default host_name for a user_login is 'isMissing'. %user_login(User), ~host_name(User,X)/(X\==isMissing) ==> host_name(User,isMissing). /*~ ~*/ % the default host_name for a user_login is 'isMissing'. %user_login(User), ~host_name(User,X)/(X\==isMissing) ==> host_name(User,isMissing). prologSingleValued(host_name). /*~ ~*/ mdefault( user_login(User) ==> host_name(User,isMissing)). /*~ ~*/ never_assert_u(full_name(finin,isMissing),too_much_forward_chaing). /*~ ~*/ user_login(joe1). /*~ ~*/ :- sanity(listing([full_name/2,host_name/2,user_login/1])). /*~ %~ ?-( mpred_test(Kw,user:listing([full_name/2,host_name/2,user_login/1]))). :- dynamic full_name/2. :- multifile full_name/2. :- public full_name/2. :- module_transparent full_name/2. full_name(joe1, isMissing). :- dynamic host_name/2. :- multifile host_name/2. :- public host_name/2. :- module_transparent host_name/2. host_name(joe1, isMissing). :- dynamic user_login/1. :- multifile use goal=user:listing([full_name/2,host_name/2,user_login/1]). time=0.00171661376953125. passed=passed=info(why_was_true(user:listing([full_name/2,host_name/2,user_login/1]))) no_proof_for(listing([ full_name/2, host_name/2,user_login/1])). :- dynamic full_name/2. :- multifile full_name/2. :- public full_name/2. :- module_transparent full_name/2. full_name(joe1, isMissing). :- dynamic host_name/2. :- multifile host_name/2. :- public host_name/2. :- module_transparent host_name/2. host_name(joe1, isMissing). :- dynamic user_login/1. :- multifile user_login/1. :- public user_login/1. :- module_transparent user_login/1. user_login(joe1). no_proof_for(listing([ full_name/2, host_name/2,user_login/1])). no_proof_for(listing([ full_name/2, host_name/2,user_login/1])). result=passed. goal=user:listing([full_name/2,host_name/2,user_login/1,user_name_host/3]). time=0.0021431446075439453. passed=passed=info(why_was_true(user:listing([full_name/2,host_name/2,user_login/1,user_name_host/3]))) no_proof_for(listing([ full_name/2, host_name/2,user_login/1, user_name_host/3])). :- dynamic full_name/2. :- multifile full_name/2. :- public full_name/2. :- module_transparent full_name/2. full_name(joe1, isMissing). full_name(finin, 'Tim Finin'). full_name(robin, 'Robin,McEntire'). full_name(fritzson, isMissing). :- dynamic host_name/2. :- multifile host_name/2. :- public host_name/2. :- module_transparent host_name/2. host_name(joe1, isMissing). host_name(finin, isMissing). host_name(finin, antares). host_name(robin, isMissing). host_name(fritzson, hamlet). :- dynamic user_login/1. :- multifile user_login/1. :- public user_login/1. :- module_transparent user_login/1. user_login(joe1). user_login(finin). user_login(robin). user_login(fritzson). :- dynamic user_name_host/3. :- multifile user_name_host/3. :- public user_name_host/3. :- module_transparent user_name_host/3. user_name_host(finin, 'Tim Finin', antares). no_proof_for(listing([ full_name/2, host_name/2,user_login/1, user_name_host/3])). no_proof_for(listing([ full_name/2, host_name/2,user_login/1, user_name_host/3])). goal=user:(\+host_name(robin,rmachine)). time=0.0004742145538330078. passed=passed=info(why_was_true(user:(\+host_name(robin,rmachine)))) no_proof_for(\+host_name(robin,rmachine)). no_proof_for(\+host_name(robin,rmachine)). no_proof_for(\+host_name(robin,rmachine)). ]]>