logicmoo_workspace
logicmoo_workspace copied to clipboard
logicmoo.base.examples.fol.POSS_FORALL_EXISTS_05 JUnit
(cd /var/lib/jenkins/workspace/logicmoo_workspace@2/packs_sys/logicmoo_base/t/examples/fol ; timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['poss_forall_exists_05.pfc.pl']")
% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_base/t/examples/fol/poss_forall_exists_05.pfc.pl % JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.base.examples.fol/POSS_FORALL_EXISTS_05/ % ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3APOSS_FORALL_EXISTS_05 % ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/441
%~ init_phase(after_load)
%~ init_phase(restore_state)
%
%~ init_why(after_boot,program)
%~ after_boot.
%~ Dont forget to ?- logicmoo_i_cyc_xform.
running('/var/lib/jenkins/workspace/logicmoo_workspace@2/packs_sys/logicmoo_base/t/examples/fol/poss_forall_exists_05.pfc.pl'),
%~ this_test_might_need( :-( use_module( library(logicmoo_plarkc))))
% =================================================================================
% Set our engine up
% =================================================================================
:- expects_dialect(clif).
% deduce instances from usages in args having the effect of deducing human,dwelling,beverage_class are classes
/*~
~*/
% deduce instances from usages in args having the effect of deducing human,dwelling,beverage_class are classes
==> feature_setting(make_wff,true).
/*~
~*/
==> feature_setting(add_admitted_arguments,true).
% set truth maintainance system to remove previous assertions that new assertions disagree with
/*~
~*/
% set truth maintainance system to remove previous assertions that new assertions disagree with
==> feature_setting(tms_mode,remove_conflicting).
/*~
~*/
:- set_prolog_flag(runtime_debug,3). % mention it when we remove previous assertions
/*~
~*/
% mention it when we remove previous assertions
:- set_prolog_flag_until_eof(do_renames,mpred_expansion).
%:- set_prolog_flag_until_eof(runtime_speed,0). % but dont gripe about speed
/*~
~*/
%:- set_prolog_flag_until_eof(runtime_speed,0). % but dont gripe about speed
:- kif_compile.
% =================================================================================
% temp test
% =================================================================================
/*~
~*/
% =================================================================================
% temp test
% =================================================================================
ff1:- show_kif_to_boxlog(if(nesc(livesAt(X, green_house)),nesc(drinks(X, coffee)))).
/*~
~*/
ff2:- show_kif_to_boxlog(if((livesAt(X, green_house)),(drinks(X, coffee)))).
/*~
~*/
ff3:- show_kif_to_boxlog(nesc(drinks(_X, coffee))).
/*~
~*/
ff4:- show_kif_to_boxlog(~nesc(drinks(_X, coffee))).
/*~
~*/
ff5:- show_kif_to_boxlog(~poss(drinks(_X, coffee))).
/*~
~*/
ff6:- show_kif_to_boxlog(poss(drinks(_X, coffee))).
/*~
~*/
:- show_kif_to_boxlog(all(X, if(nesc(livesAt(X, green_house)),poss(livesAt(X, green_house))))).
/*~
%~ test_boxlog( all(X,if(nesc(livesAt(X,green_house)),poss(livesAt(X,green_house)))))
~*/
:- show_kif_to_boxlog(all(X, if(poss(livesAt(X, green_house)),nesc(livesAt(X, green_house))))).
/*~
%~ test_boxlog( all(X,if(poss(livesAt(X,green_house)),nesc(livesAt(X,green_house)))))
~*/
:- break.
% =================================================================================
% Note these two assertions are implicit to the system and have no side effect
% (they are here to serve as a reminder)
% =================================================================================
% for any objects in the universe that live in the green house must obvously have that as a possibility
/*~
%~ skipped(blocks_on_input,break)
~*/
% =================================================================================
% Note these two assertions are implicit to the system and have no side effect
% (they are here to serve as a reminder)
% =================================================================================
% for any objects in the universe that live in the green house must obvously have that as a possibility
all(X, if(livesAt(X, green_house),poss(livesAt(X, green_house)))).
% all objects in the universe that do drink coffee, may drink coffee
/*~
%~ kifi = all(_24304,if(livesAt(_24304,green_house),poss(livesAt(_24304,green_house)))).
%~ /var/lib/jenkins/workspace/logicmoo_workspace@2/packs_sys/logicmoo_base/t/examples/fol/poss_forall_exists_05.pfc.pl:43
%~ kifm = all( If_Green_house,
%~ livesAt(If_Green_house,green_house)=>poss(livesAt(If_Green_house,green_house))).
%~ kifm = all( Green_house4,
%~ livesAt(Green_house4,green_house)=>poss(livesAt(Green_house4,green_house))).
%~ kif_to_boxlog_attvars2 = forall('$VAR'('Green_house4'),=>(livesAt('$VAR'('Green_house4'),green_house),possible(livesAt('$VAR'('Green_house4'),green_house))))
%~ debugm( baseKB,
%~ show_success( baseKB,
%~ baseKB : ain( clif( all(X,if(livesAt(X,green_house),poss(livesAt(X,green_house))))))))
% xgrun compiled into parser_chat80 0.00 sec, 0 clauses
% xgproc compiled into parser_chat80 0.02 sec, 0 clauses
** Grammar from file /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_nlu/ext/chat80/original/clone.xg: 211 words .. **
** Grammar from file /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_nlu/ext/chat80/original/lex.xg: -221 words .. **
% chatops compiled into parser_chat80 0.00 sec, 0 clauses
% chatops compiled into parser_chat80 0.00 sec, 0 clauses
% :- share_mfa_pt2(parser_chat80,test_chat80,1).
% :- share_mfa_pt2(parser_chat80,hi80,0).
% :- share_mfa_pt2(parser_chat80,hi80,1).
% :- share_mfa_pt2(parser_chat80,control80,1).
% :- share_mfa_pt2(parser_chat80,trace_chat80,1).
% /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_nlu/ext/chat80/original/load compiled into parser_chat80 2.63 sec, 3 clauses
% /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/debuggery/dmsg compiled into dmsg 0.14 sec, -16 clauses
=======================================================
all('$VAR'('If_Green_house'),if(livesAt('$VAR'('If_Green_house'),green_house),poss(livesAt('$VAR'('If_Green_house'),green_house))))
============================================
?- kif_to_boxlog( all(If_Green_house,if(livesAt(If_Green_house,green_house),poss(livesAt(If_Green_house,green_house)))) ).
% In English:
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~
%~ For all ?If_Green_house
%~ ?If_Green_house livesAt green_house if " ?If_Green_house livesAt green_house " is possible
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = forall('$VAR'('If_Green_house'),=>(livesAt('$VAR'('If_Green_house'),green_house),possible(livesAt('$VAR'('If_Green_house'),green_house))))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 2 entailment(s):
nesc(~livesAt(If_Green_house,green_house))==>nesc(~livesAt(If_Green_house,green_house)).
nesc(livesAt(If_Green_house,green_house))==>poss(livesAt(If_Green_house,green_house)).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?If_Green_house livesAt green_house " is necessarily false
%~ It's Proof that:
%~ " ?If_Green_house livesAt green_house " is necessarily false
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(~livesAt(If_Green_house,green_house))==>nesc(~livesAt(If_Green_house,green_house)).
% AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?If_Green_house livesAt green_house " is necessarily true
%~ It's Proof that:
%~ " ?If_Green_house livesAt green_house " is possible
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(livesAt(If_Green_house,green_house))==>poss(livesAt(If_Green_house,green_house)).
============================================
%~ kif_to_boxlog_attvars2 = forall('$VAR'('X'),=>(livesAt('$VAR'('X'),green_house),possible(livesAt('$VAR'('X'),green_house))))
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?X livesAt green_house " is necessarily false
%~ It's Proof that:
%~ " ?X livesAt green_house " is necessarily false
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(~livesAt(X,green_house))==>nesc(~livesAt(X,green_house)).
% AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?X livesAt green_house " is necessarily true
%~ It's Proof that:
%~ " ?X livesAt green_house " is possible
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(livesAt(X,green_house))==>poss(livesAt(X,green_house)).
~*/
% all objects in the universe that do drink coffee, may drink coffee
if(nesc(drinks(X, coffee)),poss(drinks(X, coffee))).
% =================================================================================
% Define a couple predicates
% =================================================================================
% maximum cardinality of livesAt/2 is 1
/*~
%~ kif_to_boxlog_attvars2 = =>(necessary(drinks('$VAR'('Coffee3'),coffee)),possible(drinks('$VAR'('Coffee3'),coffee)))
%~ debugm(baseKB,show_success(baseKB,baseKB:ain(clif(if(nesc(drinks(_484,coffee)),poss(drinks(_484,coffee)))))))
=======================================================
if(nesc(drinks('$VAR'('Coffee'),coffee)),poss(drinks('$VAR'('Coffee'),coffee)))
============================================
?- kif_to_boxlog( if(nesc(drinks(Coffee,coffee)),poss(drinks(Coffee,coffee))) ).
% In English:
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ " ?Coffee drinks coffee " is necessarily true if " ?Coffee drinks coffee " is possible
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = =>(necessary(drinks('$VAR'('Coffee'),coffee)),possible(drinks('$VAR'('Coffee'),coffee)))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 2 entailment(s):
nesc(~drinks(Coffee,coffee))==>poss(~drinks(Coffee,coffee)).
nesc(drinks(Coffee,coffee))==>poss(drinks(Coffee,coffee)).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?Coffee drinks coffee " is necessarily false
%~ It's Proof that:
%~ " ?Coffee drinks coffee " is possibly false
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(~drinks(Coffee,coffee))==>poss(~drinks(Coffee,coffee)).
% AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?Coffee drinks coffee " is necessarily true
%~ It's Proof that:
%~ " ?Coffee drinks coffee " is possible
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(drinks(Coffee,coffee))==>poss(drinks(Coffee,coffee)).
============================================
%~ kif_to_boxlog_attvars2 = =>(necessary(drinks('$VAR'('X'),coffee)),possible(drinks('$VAR'('X'),coffee)))
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?X drinks coffee " is necessarily false
%~ It's Proof that:
%~ " ?X drinks coffee " is possibly false
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(~drinks(X,coffee))==>poss(~drinks(X,coffee)).
% AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?X drinks coffee " is necessarily true
%~ It's Proof that:
%~ " ?X drinks coffee " is possible
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(drinks(X,coffee))==>poss(drinks(X,coffee)).
~*/
% =================================================================================
% Define a couple predicates
% =================================================================================
% maximum cardinality of livesAt/2 is 1
instance(livesAt,'FunctionalBinaryPredicate').
% thus implies
/*~
%~ /var/lib/jenkins/workspace/logicmoo_workspace@2/packs_sys/logicmoo_base/t/examples/fol/poss_forall_exists_05.pfc.pl:54
%~ azzert_rename('FunctionalBinaryPredicate',rtFunctionalBinaryPredicate)
%~ kif_to_boxlog_attvars2 = necessary(rtFunctionalBinaryPredicate(livesAt))
%~ debugm(baseKB,show_success(baseKB,baseKB:ain(clif(instance(livesAt,rtFunctionalBinaryPredicate)))))
=======================================================
instance(livesAt,rtFunctionalBinaryPredicate)
============================================
?- kif_to_boxlog( instance(livesAt,rtFunctionalBinaryPredicate) ).
% In English:
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ livesAt instance rtFunctionalBinaryPredicate
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(rtFunctionalBinaryPredicate(livesAt))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s):
nesc(rtFunctionalBinaryPredicate(livesAt)).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ it is necessarily true that livesAt isa rtFunctionalBinaryPredicate
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc( rtFunctionalBinaryPredicate(livesAt)).
============================================
~*/
% thus implies
==> arity(livesAt,2).
/*~
~*/
==> domain(livesAt,1,human).
/*~
~*/
==> domain(livesAt,2,dwelling).
% define drinks/2
/*~
~*/
% define drinks/2
==> arity(drinks,2).
/*~
~*/
domain(drinks,1,human).
/*~
%~ kif_to_boxlog_attvars2 = necessary(argIsa(drinks,1,human))
%~ debugm(baseKB,show_success(baseKB,baseKB:ain(clif(domain(drinks,1,human)))))
=======================================================
domain(drinks,1,human)
============================================
?- kif_to_boxlog( domain(drinks,1,human) ).
% In English:
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ domain(drinks,1,human)
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argIsa(drinks,1,human))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s):
nesc(argIsa(drinks,1,human)).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ it is necessarily true that argIsa(drinks,1,human)
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc( argIsa(drinks,1,human)).
============================================
~*/
domain(drinks,2,beverage_class).
% =================================================================================
% Note these two assertions are implicit to the system and have no side effect
% (they are here to serve as a reminder)
% =================================================================================
% all objects in the universe that do drink coffee, may drink coffee
/*~
%~ kif_to_boxlog_attvars2 = necessary(argIsa(drinks,2,beverage_class))
%~ debugm(baseKB,show_success(baseKB,baseKB:ain(clif(domain(drinks,2,beverage_class)))))
=======================================================
domain(drinks,2,beverage_class)
============================================
?- kif_to_boxlog( domain(drinks,2,beverage_class) ).
% In English:
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ domain(drinks,2,beverage_class)
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argIsa(drinks,2,beverage_class))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s):
nesc(argIsa(drinks,2,beverage_class)).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ it is necessarily true that argIsa(drinks,2,beverage_class)
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc( argIsa(drinks,2,beverage_class)).
============================================
~*/
% =================================================================================
% Note these two assertions are implicit to the system and have no side effect
% (they are here to serve as a reminder)
% =================================================================================
% all objects in the universe that do drink coffee, may drink coffee
all(X, if(drinks(X, coffee),possible(drinks(X, coffee)))).
% for any objects in the universe that live in the green house must obvously have that as a possibility
/*~
%~ kif_to_boxlog_attvars2 = forall('$VAR'('Coffee4'),=>(drinks('$VAR'('Coffee4'),coffee),possible(drinks('$VAR'('Coffee4'),coffee))))
%~ debugm( baseKB,
%~ show_success( baseKB,
%~ baseKB : ain( clif( all(X,if(drinks(X,coffee),possible(drinks(X,coffee))))))))
=======================================================
all('$VAR'('If_Coffee'),if(drinks('$VAR'('If_Coffee'),coffee),possible(drinks('$VAR'('If_Coffee'),coffee))))
============================================
?- kif_to_boxlog( all(If_Coffee,if(drinks(If_Coffee,coffee),possible(drinks(If_Coffee,coffee)))) ).
% In English:
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~
%~ For all ?If_Coffee
%~ " ?If_Coffee drinks coffee if ?If_Coffee drinks coffee isa possible "
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = forall('$VAR'('If_Coffee'),=>(drinks('$VAR'('If_Coffee'),coffee),possible(drinks('$VAR'('If_Coffee'),coffee))))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 2 entailment(s):
nesc(~drinks(If_Coffee,coffee))==>nesc(~drinks(If_Coffee,coffee)).
nesc(drinks(If_Coffee,coffee))==>poss(drinks(If_Coffee,coffee)).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?If_Coffee drinks coffee " is necessarily false
%~ It's Proof that:
%~ " ?If_Coffee drinks coffee " is necessarily false
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(~drinks(If_Coffee,coffee))==>nesc(~drinks(If_Coffee,coffee)).
% AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?If_Coffee drinks coffee " is necessarily true
%~ It's Proof that:
%~ " ?If_Coffee drinks coffee " is possible
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(drinks(If_Coffee,coffee))==>poss(drinks(If_Coffee,coffee)).
============================================
%~ kif_to_boxlog_attvars2 = forall('$VAR'('X'),=>(drinks('$VAR'('X'),coffee),possible(drinks('$VAR'('X'),coffee))))
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?X drinks coffee " is necessarily false
%~ It's Proof that:
%~ " ?X drinks coffee " is necessarily false
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(~drinks(X,coffee))==>nesc(~drinks(X,coffee)).
% AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?X drinks coffee " is necessarily true
%~ It's Proof that:
%~ " ?X drinks coffee " is possible
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(drinks(X,coffee))==>poss(drinks(X,coffee)).
~*/
% for any objects in the universe that live in the green house must obvously have that as a possibility
all(X, if(livesAt(X, green_house),possible(livesAt(X, green_house)))).
% =================================================================================
% But given the above:
%
% Only things that possibly can drink coffee live in the green house?
%
% =================================================================================
/*~
%~ debugm( baseKB,
%~ show_success( baseKB,
%~ baseKB : ain( clif( all(X,if(livesAt(X,green_house),possible(livesAt(X,green_house))))))))
=======================================================
all('$VAR'('If_Green_house'),if(livesAt('$VAR'('If_Green_house'),green_house),possible(livesAt('$VAR'('If_Green_house'),green_house))))
============================================
?- kif_to_boxlog( all(If_Green_house,if(livesAt(If_Green_house,green_house),possible(livesAt(If_Green_house,green_house)))) ).
% In English:
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~
%~ For all ?If_Green_house
%~ " ?If_Green_house livesAt green_house if ?If_Green_house livesAt green_house isa possible "
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = forall('$VAR'('If_Green_house'),=>(livesAt('$VAR'('If_Green_house'),green_house),possible(livesAt('$VAR'('If_Green_house'),green_house))))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 2 entailment(s):
nesc(~livesAt(If_Green_house,green_house))==>nesc(~livesAt(If_Green_house,green_house)).
nesc(livesAt(If_Green_house,green_house))==>poss(livesAt(If_Green_house,green_house)).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?If_Green_house livesAt green_house " is necessarily false
%~ It's Proof that:
%~ " ?If_Green_house livesAt green_house " is necessarily false
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(~livesAt(If_Green_house,green_house))==>nesc(~livesAt(If_Green_house,green_house)).
% AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?If_Green_house livesAt green_house " is necessarily true
%~ It's Proof that:
%~ " ?If_Green_house livesAt green_house " is possible
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(livesAt(If_Green_house,green_house))==>poss(livesAt(If_Green_house,green_house)).
============================================
%~ kif_to_boxlog_attvars2 = forall('$VAR'('X'),=>(livesAt('$VAR'('X'),green_house),possible(livesAt('$VAR'('X'),green_house))))
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?X livesAt green_house " is necessarily false
%~ It's Proof that:
%~ " ?X livesAt green_house " is necessarily false
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(~livesAt(X,green_house))==>nesc(~livesAt(X,green_house)).
% AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?X livesAt green_house " is necessarily true
%~ It's Proof that:
%~ " ?X livesAt green_house " is possible
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(livesAt(X,green_house))==>poss(livesAt(X,green_house)).
~*/
% =================================================================================
% But given the above:
%
% Only things that possibly can drink coffee live in the green house?
%
% =================================================================================
all(X, livesAt(X, green_house) & drinks(X, coffee)).
/*~
%~ kif_to_boxlog_attvars2 = forall('$VAR'('Nesc_Coffee_Green_house4'),necessary(and(livesAt('$VAR'('Nesc_Coffee_Green_house4'),green_house),drinks('$VAR'('Nesc_Coffee_Green_house4'),coffee))))
%~ debugm(baseKB,show_success(baseKB,baseKB:ain(clif(all(_480,livesAt(_480,green_house)&drinks(_480,coffee))))))
=======================================================
all('$VAR'('Coffee_Green_house'),&(livesAt('$VAR'('Coffee_Green_house'),green_house),drinks('$VAR'('Coffee_Green_house'),coffee)))
============================================
?- kif_to_boxlog( all(Coffee_Green_house,livesAt(Coffee_Green_house,green_house)&drinks(Coffee_Green_house,coffee)) ).
% In English:
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~
%~ For all ?Coffee_Green_house
%~ (" ?Coffee_Green_house livesAt green_house " and
%~ " ?Coffee_Green_house drinks coffee " )
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = forall('$VAR'('Coffee_Green_house'),necessary(and(livesAt('$VAR'('Coffee_Green_house'),green_house),drinks('$VAR'('Coffee_Green_house'),coffee))))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 4 entailment(s):
nesc(drinks(Coffee_Green_house,coffee))==>nesc(livesAt(Coffee_Green_house,green_house)).
nesc(livesAt(Coffee_Green_house,green_house))==>nesc(drinks(Coffee_Green_house,coffee)).
poss(~drinks(Coffee_Green_house,coffee))==>poss(~livesAt(Coffee_Green_house,green_house)).
poss(~livesAt(Coffee_Green_house,green_house))==>poss(~drinks(Coffee_Green_house,coffee)).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?Coffee_Green_house drinks coffee " is necessarily true
%~ It's Proof that:
%~ " ?Coffee_Green_house livesAt green_house " is necessarily true
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(drinks(Coffee_Green_house,coffee))==>nesc(livesAt(Coffee_Green_house,green_house)).
% AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?Coffee_Green_house livesAt green_house " is necessarily true
%~ It's Proof that:
%~ " ?Coffee_Green_house drinks coffee " is necessarily true
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(livesAt(Coffee_Green_house,green_house))==>nesc(drinks(Coffee_Green_house,coffee)).
% AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?Coffee_Green_house drinks coffee " is possibly false
%~ It's Proof that:
%~ " ?Coffee_Green_house livesAt green_house " is possibly false
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
poss(~drinks(Coffee_Green_house,coffee))==>poss(~livesAt(Coffee_Green_house,green_house)).
% AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?Coffee_Green_house livesAt green_house " is possibly false
%~ It's Proof that:
%~ " ?Coffee_Green_house drinks coffee " is possibly false
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
poss(~livesAt(Coffee_Green_house,green_house))==>poss(~drinks(Coffee_Green_house,coffee)).
============================================
%~ kif_to_boxlog_attvars2 = forall('$VAR'('X'),necessary(and(livesAt('$VAR'('X'),green_house),drinks('$VAR'('X'),coffee))))
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?X livesAt green_house " is possibly false
%~ It's Proof that:
%~ " ?X drinks coffee " is possibly false
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
poss(~livesAt(X,green_house))==>poss(~drinks(X,coffee)).
% AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?X drinks coffee " is necessarily true
%~ It's Proof that:
%~ " ?X livesAt green_house " is necessarily true
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(drinks(X,coffee))==>nesc(livesAt(X,green_house)).
% AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?X drinks coffee " is possibly false
%~ It's Proof that:
%~ " ?X livesAt green_house " is possibly false
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
poss(~drinks(X,coffee))==>poss(~livesAt(X,green_house)).
% AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ Whenever:
%~ " ?X livesAt green_house " is necessarily true
%~ It's Proof that:
%~ " ?X drinks coffee " is necessarily true
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nesc(livesAt(X,green_house))==>nesc(drinks(X,coffee)).
~*/
~poss(livesAt(fred,green_house)).
% Does fred drink coffee? (should be unknown)
/*~
~*/
% Does fred drink coffee? (should be unknown)
:- \+ drinks(fred,coffee).
/*~
%~ /var/lib/jenkins/workspace/logicmoo_workspace@2/packs_sys/logicmoo_base/t/examples/fol/poss_forall_exists_05.pfc.pl:87
%~ ?-( mpred_test("Test_0001_Line_0000__naf_Fred",baseKB:(\+drinks(fred,coffee)))).
%~ make_dynamic_here(baseKB,drinks(fred,coffee))
passed=info(why_was_true(baseKB:(\+drinks(fred,coffee))))
no_proof_for(\+drinks(fred,coffee)).
no_proof_for(\+drinks(fred,coffee)).
no_proof_for(\+drinks(fred,coffee)).
name = 'logicmoo.base.examples.fol.POSS_FORALL_EXISTS_05-Test_0001_Line_0000__naf_Fred'.
JUNIT_CLASSNAME = 'logicmoo.base.examples.fol.POSS_FORALL_EXISTS_05'.
JUNIT_CMD = 'timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "[\'poss_forall_exists_05.pfc.pl\']"'.
% saving_junit: /var/lib/jenkins/workspace/logicmoo_workspace@2/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Logicmoo_base_examples_fol_POSS_FORALL_EXISTS_05_Test_0001_Line_0000_naf_Fred-junit.xml
~*/
possible(livesAt(joe,green_house)).
/*~
%~ kif_to_boxlog_attvars2 = possible(livesAt(joe,green_house))
%~ debugm(baseKB,show_success(baseKB,baseKB:ain(clif(possible(livesAt(joe,green_house))))))
=======================================================
possible(livesAt(joe,green_house))
============================================
?- kif_to_boxlog( possible(livesAt(joe,green_house)) ).
% In English:
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ joe livesAt green_house isa possible
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = possible(livesAt(joe,green_house))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s):
poss(livesAt(joe,green_house)).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ it is possible that joe livesAt green_house
%~
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
poss( livesAt(joe,green_house)).
============================================
~*/
:- drinks(joe,coffee).
% =================================================================================
% These two assertions are a bit weird but are for fun
% =================================================================================
% all objects in the universe that may drink coffee do drink coffee
%all(X, if(possible(drinks(X, coffee)),drinks(X, coffee))).
% all objects in the universe that may live in the green house do live in the green house
%all(X, if(possible(livesAt(X, green_house)),lives(X, green_house) )).
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/441
% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_base/t/examples/fol/poss_forall_exists_05.pfc.pl
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.base.examples.fol/POSS_FORALL_EXISTS_05/
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3APOSS_FORALL_EXISTS_05
/*~
%~ message_hook_type(warning)
%~ message_hook(
%~ goal_failed(directive,baseKB:drinks(joe,coffee)),
%~ warning,
%~ [ 'Goal (~w) failed: ~p' - [ directive,
%~ baseKB : drinks(joe,coffee)]])
Goal (directive) failed: baseKB:drinks(joe,coffee)
Warning: Goal (directive) failed: baseKB:drinks(joe,coffee)
~*/
%~ unused(no_junit_results)
Test_0001_Line_0000__naf_Fred result = passed.
logicmoo.base.examples.fol.POSS_FORALL_EXISTS_05 JUnit warning = Goal (directive) failed: baseKB:drinks(joe,coffee)
%~ test_completed_exit(80)
totalTime=6.000
SUCCESS: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k poss_forall_exists_05.pfc.pl (returned 80) Add_LABELS='Warnings' Rem_LABELS='Skipped,Skipped,Errors,Overtime,Skipped,Skipped'
Broken in https://github.com/logicmoo/logicmoo_workspace/commit/47cfb56e12234430e980d22dbcca206411201b38 https://logicmoo.org:2082/gitlab/logicmoo/logicmoo_workspace/-/commit/47cfb56e12234430e980d22dbcca206411201b38
Fixed in https://github.com/logicmoo/logicmoo_workspace/commit/51a38b8a8cc92a39cbea53faf8883a32e6dc3b61 https://logicmoo.org:2082/gitlab/logicmoo/logicmoo_workspace/-/commit/51a38b8a8cc92a39cbea53faf8883a32e6dc3b61
Broken in https://github.com/logicmoo/logicmoo_workspace/commit/157f663e9aafee41e1bef5aa3e17fd16962ab8c7 https://logicmoo.org:2082/gitlab/logicmoo/logicmoo_workspace/-/commit/157f663e9aafee41e1bef5aa3e17fd16962ab8c7
Fixed in https://github.com/logicmoo/logicmoo_workspace/commit/90f5d1e5fc22fb1b2f7fdc46074babc473034f36 https://logicmoo.org:2082/gitlab/logicmoo/logicmoo_workspace/-/commit/90f5d1e5fc22fb1b2f7fdc46074babc473034f36