Started by user Douglas Miles
Running as SYSTEM
Building in workspace /var/lib/jenkins/workspace/logicmoo_workspace
Script returned: hudson.model.RunMap$1@50b96573
[logicmoo_workspace] $ /bin/sh -xe /tmp/jenkins1165792700349553645.sh
+ ./test_on_release.sh
#* Set logicmoo workspace
#* LOGICMOO_WS=/var/lib/jenkins/workspace/logicmoo_workspace
#* PATH=/var/lib/jenkins/workspace/logicmoo_workspace/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin:/var/lib/jenkins/.dotnet/tools
#* DISPLAY=
Finding/Setting LIBJVM...
#* LIBJVM=/usr/lib/jvm/java-17-openjdk-amd64/lib/server
Finding/Setting LD_LIBRARY_PATH...
#* LD_LIBRARY_PATH=/usr/lib/jvm/java-17-openjdk-amd64/lib/server:/usr/local/lib
#* PATH=/var/lib/jenkins/workspace/logicmoo_workspace/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin:/var/lib/jenkins/.dotnet/tools:/var/lib/jenkins/workspace/logicmoo_workspace/packs_lib/sparqlprog/bin
#* Found ~/.local/share/swi-prolog/pack
Already on 'master'
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)
warning: redirecting to https://logicmoo.org:2082/gitlab/logicmoo/logicmoo_workspace.git/
From https://logicmoo.org/gitlab/logicmoo/logicmoo_workspace
 * branch                master     -> FETCH_HEAD
Already up to date.
From https://github.com/logicmoo/logicmoo_workspace
 * branch                master     -> FETCH_HEAD
Already up to date.
From https://github.com/logicmoo/logicmoo_workspace
 * branch                master     -> FETCH_HEAD
   7db044c1d..7ca50dc94  master     -> origin/master
Already up to date.
Everything up-to-date
Running release (all) tests
TESTING_TEMP=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins
( cd /var/lib/jenkins/workspace/logicmoo_workspace ; ./test_on_release.sh *0*.* )
TEST_DIRS=./packs_sys/logicmoo_nlu/test/logicmoo_nlu ./packs_sys/logicmoo_ec/test/ec_planner/ectest ./packs_sys/logicmoo_base/t/examples/fol ./packs_sys/logicmoo_base/t/examples/fol/quick_test ./packs_sys/logicmoo_base/t/examples/fol/fiveof ./packs_sys/logicmoo_agi/t/agi_tests/adv_story ./packs_sys/logicmoo_agi/t/agi_tests/comprehension ./packs_sys/pfc/t/sanity_base ./packs_sys/pfc/t/sanity_base/quick_test
DIRS_SORTED=./packs_sys/logicmoo_agi/t/agi_tests/adv_story ./packs_sys/logicmoo_ec/test/ec_planner/ectest ./packs_sys/logicmoo_agi/t/agi_tests/comprehension ./packs_sys/logicmoo_nlu/test/logicmoo_nlu ./packs_sys/pfc/t/sanity_base ./packs_sys/pfc/t/sanity_base/quick_test ./packs_sys/logicmoo_base/t/examples/fol/quick_test ./packs_sys/logicmoo_base/t/examples/fol/fiveof ./packs_sys/logicmoo_base/t/examples/fol
./packs_sys/logicmoo_agi/t/agi_tests/adv_story
./packs_sys/logicmoo_ec/test/ec_planner/ectest
./packs_sys/logicmoo_agi/t/agi_tests/comprehension
./packs_sys/logicmoo_nlu/test/logicmoo_nlu
./packs_sys/pfc/t/sanity_base
./packs_sys/pfc/t/sanity_base/quick_test
./packs_sys/logicmoo_base/t/examples/fol/quick_test
./packs_sys/logicmoo_base/t/examples/fol/fiveof
./packs_sys/logicmoo_base/t/examples/fol

Warn: (MAX_JUNIT_TESTS < 10) we want our tests to be short:  CMD_TIMEOUT=40s
<!-- PACK_DIR=logicmoo_agi -->
<!-- JUNIT_PACKAGE=logicmoo.agi.agi_test.adv_story -->
<!-- GLOBSTEM=logicmoo-agi-agi_test-adv_story-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass- -->
<!-- TEST_STEM=Report-logicmoo-agi-agi_test-adv_story-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-adv_story-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- Running release (all) tests
 ( cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/t/agi_tests/adv_story ; /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit *0*.* 2>&1 | grep -2 -i 'WARN\|ERROR\|_file\|00\|fail\|pass') -->
<!-- PACK_DIR=logicmoo_agi -->
<!-- JUNIT_PACKAGE=logicmoo.agi.agi_test.adv_story -->
<!-- GLOBSTEM=logicmoo-agi-agi_test-adv_story-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass- -->
<!-- TEST_STEM=Report-logicmoo-agi-agi_test-adv_story-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-adv_story-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- LOGICMOO_WS=/var/lib/jenkins/workspace/logicmoo_workspace -->
<!-- test_completed=true -->
<!-- ROLLUP_STEM=Report-logicmoo-agi-agi_test-adv_story-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Rollup -->
<!-- ROLLUP_TMP=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-adv_story-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Rollup.tmp -->
Running Matching Tests: (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/t/agi_tests/adv_story ; /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k *0*.* 2>&1 | grep -2 -i 'WARN\|ERROR\|_file\|00\|fail\|pass')

gh: Validation Failed (HTTP 422)
SORTED_FILES=adv_test_02.pl adv_test_01.pl
FileTestCase=logicmoo.agi.agi_test.adv_story.ADV_TEST_02 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['adv_test_02.pl']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/t/agi_tests/adv_story ; timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['adv_test_02.pl']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_agi/t/agi_tests/adv_story/adv_test_02.pl 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.agi.agi_test.adv_story/ADV_TEST_02/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AADV_TEST_02 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/704 


%~ init_phase(after_load)
%~ init_phase(restore_state)
%
%~ init_why(after_boot,program)
%~ READONLY PACKAGES
%~ READONLY PACKAGES
%~ READONLY PACKAGES
%~ after_boot.
%~ Dont forget to ?- logicmoo_i_cyc_xform.
%~ message_hook_type(warning)
%~ message_hook(
%~    redefined_procedure(static,mu:aXiom/1),
%~    warning,
%~    [ 'Redefined ~w procedure ~p' - [ static,
%~                                      mu : aXiom/1]])
%~ source_location('/var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl',44)
Redefined static procedure mu:(aXiom/1)
Warning: /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:44:
Warning:    Redefined static procedure mu:(aXiom/1)
/* ==>>(will_need_touch(Agent,Thing),h(spatial,touchable,Agent,Thing)) */
%~ will_need_touch(Agent,Thing,A9,B9) :-
%~ 
%~   h(spatial,touchable,Agent,Thing,A9,B9).
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:51 
%~ will_need_touch(Touchable_Will_need_touch5,Will_need_touch4,Will_need_touch,Touch) :-
%~ 
%~   h(spatial,touchable,Touchable_Will_need_touch5,Will_need_touch4,Will_need_touch,Touch).
/* ( will_need_touch(Agent,Thing) ==>> 
  ( can_sense(Agent,Sense_Agent2,Thing) , 
    h(spatial,touchable,Agent,Thing))) */
%~ will_need_touch(Agent,Thing,A9,C9) :-
%~   can_sense(Agent,Sense_Agent2,Thing,A9,B9) ,
%~   h(spatial,touchable,Agent,Thing,B9,C9).
:- multifile will_need_touch/4.

/* ( will_need_touch(Source_Agent_Touchable_Will_need_touch,Target_Thing_Touch) ==>> 
  ( can_sense(Source_Agent_Touchable_Will_need_touch,Can_senseWill_need_touch,Target_Thing_Touch) , 
    h(spatial,touchable,Source_Agent_Touchable_Will_need_touch,Target_Thing_Touch))) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:59 
%~ will_need_touch(Agent_Touchable_Will_need_touch,Thing,A9,C9) :-
%~   can_sense( Agent_Touchable_Will_need_touch,
%~     Can_senseWill_need_touch, Thing,A9,B9) ,
%~   h(spatial,touchable,Agent_Touchable_Will_need_touch,Thing,B9,C9).
will_need_touch(Agent, Thing, A, B) :-
    can_sense(Agent, _, Thing, A, C),
    h(spatial, touchable, Agent, Thing, C, B).

/* ( eVent(Agent,Event) ==>> 
  send_1percept(Agent,Event),apply_aXioms(Event)) */
%~ eVent(Agent,Event,A9,C9) :-
%~   send_1percept(Agent,Event,A9,B9) ,
%~   must_mw1(apply_aXioms(Event),B9,C9).
/* ( aXiom(Action,_S0,_S9) ::= 
  xnotrace((\+trival_act(Action),dbug1(aXiom(Action)))),xnotrace(fail)) */
%~ aXiom(Action,_S0,_S9) :-
%~   xnotrace( \+trival_act(Action),dbug1(aXiom(Action))) ,
%~   xnotrace(fail).
/* ==>>(aXiom(Action),aXiom_p1(Action)) */
%~ aXiom(Action,A9,B9) :-
%~ 
%~   aXiom_p1(Action,A9,B9).
/* ==>>(aXiom(Action),aXiom_p2(Action)) */
%~ aXiom(Action,A9,B9) :-
%~ 
%~   aXiom_p2(Action,A9,B9).
/* ==>>(aXiom_p1((P1,P11)),(!,aXiom_p1(P1),aXiom_p1(P11))) */
%~ aXiom_p1((_4718,_4720),A9,C9) :-
%~   ! ,
%~   A9=A9 ,
%~   aXiom_p1(_4718,A9,B9) ,
%~   aXiom_p1(_4720,B9,C9).
/* ==>>(aXiom_p1((P1;P11)),(!,(aXiom_p1(P1);aXiom_p1(P11)))) */
%~ aXiom_p1((_50948;_50950),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   aXiom_p1(_50948,A9,B9);aXiom_p1(_50950,A9,B9).
/* ==>>(aXiom_p1((P1->P11)),(!,(aXiom_p1(P1)->aXiom_p1(P11)))) */
%~ aXiom_p1((_35010->_35012),A9,C9) ->
%~   ! ,
%~   A9=A9 ,
%~   aXiom_p1(_35010,A9,B9) ->
%~ 
%~     aXiom_p1(_35012,B9,C9).
/* ==>>(aXiom_p1(true),!) */
%~ aXiom_p1(true,A9,B9) :-
%~   ! ,
%~   B9=A9.
/* ( aXiom_p1( P1_Xx_c62*->P1;P1_Xx_c621) ==>> 
  !,(aXiom_p1(P1_Xx_c62)*->aXiom_p1(P1);aXiom_p1(P1_Xx_c621))) */
%~ aXiom_p1((Xx_c62*->Xx_c622;Xx_c621),A9,C9) :-
%~   ! ,
%~   A9=A9 ,
%~   ( aXiom_p1(Xx_c62,A9,B9)*->aXiom_p1(Xx_c622,B9,C9) ;
%~     aXiom_p1(Xx_c621,A9,C9)).
/* ( aXiom_p1( P1_Xx_c623*->P1) ==>> 
  !,(aXiom_p1(P1_Xx_c623)*->aXiom_p1(P1))) */
%~ aXiom_p1((Xx_c623*->Xx_c6234),A9,C9) :-
%~   ! ,
%~   A9=A9 ,
%~   aXiom_p1(Xx_c623,A9,B9)*->aXiom_p1(Xx_c6234,B9,C9).
/* ( aXiom_p2(Action) ==>> 
  ( { implications(DoesEvent,Action,Preconds,Postconds), 
      action_doer(Action,Agent) }  ,
    satisfy_each(preCond(_1),Preconds) , 
    ( sg(member(failed(Why))),send_1percept(Agent,failed(Action,Why)) ; 
      satisfy_each(postCond(_2),Postconds),send_1percept(Agent,Action)) , 
    { episodic_mem(Agent,implications(DoesEvent,Action,Preconds,Postconds)) } , 
    { dbug1( used_implications(DoesEvent,Action,Preconds,Postconds)) } , 
    !)) */
%~ aXiom_p2(Action,A9,I9) :-
%~   implications(DoesEvent,Action,Preconds,Postconds) ,
%~   action_doer(Action,Agent) ,
%~   H9=A9 ,
%~   satisfy_each(preCond(_1),Preconds,H9,G9) ,
%~   ( ( sg(member(failed(Why)),G9,F9) ,
%~       send_1percept(Agent,failed(Action,Why),F9,E9)) ;
%~     ( satisfy_each(postCond(_2),Postconds,G9,D9) ,
%~       send_1percept(Agent,Action,D9,E9))) ,
%~   episodic_mem( Agent,
%~     implications(DoesEvent,Action,Preconds,Postconds)) ,
%~   C9=E9 ,
%~   dbug1( used_implications(DoesEvent,Action,Preconds,Postconds)) ,
%~   B9=C9 ,
%~   ! ,
%~   I9=B9.
/* ( aXiom_p1(Action) ==>> 
  ( { oper_splitk(Agent,Action,Preconds,Postconds) }  ,
    { dbug1( using_oper_splitk(Agent,Action,Preconds,Postconds)) } , 
    satisfy_each(preCond(_1),Preconds) , 
    ( sg(member(failed(Why))),send_1percept(Agent,failed(Action,Why)) ; 
      ( satisfy_each(postCond(_2),Postconds) , 
        send_1percept(Agent,success(Action)))) , 
    { dbug1( used_oper_splitk(Agent,Action,Preconds,Postconds)) } , 
    !)) */
%~ aXiom_p1(Action,A9,I9) :-
%~   oper_splitk(Agent,Action,Preconds,Postconds) ,
%~   H9=A9 ,
%~   dbug1( using_oper_splitk(Agent,Action,Preconds,Postconds)) ,
%~   G9=H9 ,
%~   satisfy_each(preCond(_1),Preconds,G9,F9) ,
%~   ( ( sg(member(failed(Why)),F9,E9) ,
%~       send_1percept(Agent,failed(Action,Why),E9,D9)) ;
%~     ( satisfy_each(postCond(_2),Postconds,F9,C9) ,
%~       send_1percept(Agent,success(Action),C9,D9))) ,
%~   dbug1( used_oper_splitk(Agent,Action,Preconds,Postconds)) ,
%~   B9=D9 ,
%~   ! ,
%~   I9=B9.
/* ( aXiom_p2(Action,S,E) ::= 
  ( append_termlist(Action,[S,E],ActionSE)  ,
    current_predicate(_26162,mu:ActionSE) , 
    adv_safe_to_call(ActionSE) , 
    ! , 
    call(Action,S,E))) */
%~ aXiom_p2(Action,S,E) :-
%~   append_termlist(Action,[S,E],ActionSE) ,
%~   current_predicate(Kw,mu:ActionSE) ,
%~   adv_safe_to_call(ActionSE) ,
%~   ! ,
%~   call(Action,S,E).
/* ( aXiom_p2(Action,S,E) ::= 
  ( current_predicate(Kw,mu:Action)  ,
    ! , 
    adv_safe_to_call(Action) , 
    call(Action) , 
    S=E)) */
%~ aXiom_p2(Action,S,E) :-
%~   current_predicate(Kw,mu:Action) ,
%~   ! ,
%~   adv_safe_to_call(Action) ,
%~   call(Action) ,
%~   S=E.
/* ( aXiom_p1(Action) ==>> 
  ( action_doer(Action,Agent)  ,
    invoke_introspect(Agent,Action,Answer) , 
    send_1percept(Agent,[answer(Answer),Answer]) , 
    !)) */
%~ aXiom_p1(Action,A9,E9) :-
%~   action_doer(Action,Agent,A9,D9) ,
%~   invoke_introspect(Agent,Action,Answer,D9,C9) ,
%~   send_1percept(Agent,[answer(Answer),Answer],C9,B9) ,
%~   ! ,
%~   E9=B9.
/* ( aXiom_p1( print_(Agent,Msg)) ==>> 
  ( h(spatial,descended,Agent,Here) , 
    queue_local_event(msg_from(Agent,Msg),[Here]))) */
%~ aXiom_p1(print_(Agent,Msg),A9,C9) :-
%~   h(spatial,descended,Agent,Here,A9,B9) ,
%~   queue_local_event(msg_from(Agent,Msg),[Here],B9,C9).
/* ( aXiom_p1( attempts(Agent,act3(wait,Agent,[]))) ==>> 
  from_loc(Agent,Here),queue_local_event(time_passes(Agent),Here)) */
%~ aXiom_p1(attempts(Agent,act3(wait,Agent,[])),A9,C9) :-
%~   from_loc(Agent,Here,A9,B9) ,
%~   queue_local_event(time_passes(Agent),Here,B9,C9).
/* ( aXiom_p1( attempts(Agent,act3(english,Agent,[English]))) ==>> 
  eng2cmd(Agent,English,Action),add_intent(Agent,Action)) */
%~ aXiom_p1(attempts(Agent,act3(english,Agent,[English])),A9,C9) :-
%~   eng2cmd(Agent,English,Action,A9,B9) ,
%~   add_intent(Agent,Action,B9,C9).
/* ( aXiom_p1( intent_english(Agent,English)) ==>> 
  !,{assertz(mu_global:console_tokens(Agent,English))}) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:143 
%~ aXiom_p1(intent_english(Agent,English),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   assertz( mu_global : console_tokens(Agent,English)) ,
%~   B9=A9.
/* ( aXiom_p1( attempts(Agent,act3(talk,Agent,[Object,Message]))) ==>> 
  ( can_sense(Agent,audio,Object)  ,
    from_loc(Agent,Here) , 
    queue_local_event( 
       [ did( Agent, 
           act3(talk,Agent,[Here,Object,Message]))], 
       [Here]))) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:147 
%~ aXiom_p1(
%~    attempts(Agent,act3(talk,Agent,[Object,Message])), A9,D9) :-
%~   can_sense(Agent,audio,Object,A9,C9) ,
%~   from_loc(Agent,Here,C9,B9) ,
%~   queue_local_event(
%~      [ did( Agent,
%~          act3(talk,Agent,[Here,Object,Message]))], [Here],B9,D9).
/* ( aXiom_p1( say(Agent,Message)) ==>> 
  ( from_loc(Agent,Here) , 
    queue_local_event( 
       [ did(Agent,act3(talk,Agent,[Here,*,Message]))], 
       [Here]))) */
%~ aXiom_p1(say(Agent,Message),A9,C9) :-
%~   from_loc(Agent,Here,A9,B9) ,
%~   queue_local_event(
%~      [ did(Agent,act3(talk,Agent,[Here,*,Message]))], [Here],B9,C9).
/* ( aXiom_p1( attempts( Agent, 
              act3(emote,Agent,[EmoteType,Object,Message]))) ==>> 
  ( !  ,
    from_loc(Agent,Here) , 
    queue_local_event( 
       [ act3(emote,Agent,[EmoteType,Object,Message])], 
       [Here]))) */
%~ aXiom_p1(
%~    attempts( Agent,
%~      act3(emote,Agent,[EmoteType,Object,Message])), A9,C9) :-
%~   ! ,
%~   A9=A9 ,
%~   from_loc(Agent,Here,A9,B9) ,
%~   queue_local_event(
%~      [ act3(emote,Agent,[EmoteType,Object,Message])], [Here],B9,C9).
/* ( aXiom_p1( terminates( h(Spatially,Prep,Object,Here))) ==>> 
  !,undeclare(h(Spatially,Prep,Object,Here))) */
%~ aXiom_p1(terminates(h(Spatially,Prep,Object,Here)),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   undeclare(h(Spatially,Prep,Object,Here),A9,B9).
/* ( aXiom_p1( attempts( Agent, 
              act3(go__prep_obj,Agent,[Walk,At,Object]))) ==>> 
  ( will_need_touch(Agent,Object)  ,
    has_rel(At,Object) , 
    \+( is_closed(At,Object)) , 
    eVent( Agent, 
      event3( arrive, 
        [At,Agent,Object], 
        [Walk,At])))) */
%~ aXiom_p1(
%~    attempts( Agent,
%~      act3(go__prep_obj,Agent,[Walk,At,Object])), A9,F9) :-
%~   will_need_touch(Agent,Object,A9,E9) ,
%~   has_rel(At,Object,E9,D9) ,
%~   \+( is_closed(At,Object,D9,C9)) ,
%~   B9=D9 ,
%~   eVent( Agent,
%~     event3( arrive,
%~       [At,Agent,Object],
%~       [Walk,At]), B9,F9).
/* ( aXiom_p1( initiates( h(Spatially,Prep,Object,Dest))) ==>> 
  !,declare(h(Spatially,Prep,Object,Dest))) */
%~ aXiom_p1(initiates(h(Spatially,Prep,Object,Dest)),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   declare(h(Spatially,Prep,Object,Dest),A9,B9).
/* ==>>(aXiom_p1(status_msg(_Begin,_End)),[]) */
%~ aXiom_p1(status_msg(_Begin,_End),P1_Status_msg,P1_Status_msg) :-
%~ 
%~   true.
/* ( axiom_Recalc_e( 
     attempts(Agent,act3(go__obj,Agent,[Walk,Object])), 
     RECALC) ==>> 
  ( has_rel(At,Object) , 
    RECALC =  
         
      attempts( Agent, 
        act3(go__prep_obj,Agent,[Walk,At,Object])))) */
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(go__obj,Agent,[Walk,Object])), RECALC,A9,C9) :-
%~   has_rel(At,Object,A9,B9) ,
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(go__prep_obj,Agent,[Walk,At,Object])), B9,C9).
/* ( aXiom_p1( attempts(Agent,act3(go__loc,Agent,[_Walk,There]))) ==>> 
  ( has_rel(fn(exit,Fn_Exit),There) , 
    eVent(Agent,make_true(Agent,h(spatial,in,Agent,There))))) */
%~ aXiom_p1(
%~    attempts(Agent,act3(go__loc,Agent,[_Walk,There])), A9,C9) :-
%~   has_rel(fn(exit,Fn_Exit),There,A9,B9) ,
%~   eVent( Agent,
%~     make_true(Agent,h(spatial,in,Agent,There)), B9,C9).
/* ( aXiom_p1( make_true(Doer,h(spatial,in,Agent,There))) ==>> 
  ( { Doer==Agent }  ,
    has_rel(fn(exit,Fn_Exit),There) , 
    from_loc(Agent,Here) , 
    agent_thought_model(Agent,ModelData) , 
    { find_path(Doer,Here,There,Route,ModelData) } , 
    ! , 
    eVent( Agent, 
      follow_plan( Agent, 
        did(Agent,act3(go__loc,Agent,[walk,There])), 
        Route)))) */
%~ aXiom_p1(make_true(Doer,h(spatial,in,Agent,There)),A9,H9) :-
%~   Doer==Agent ,
%~   G9=A9 ,
%~   has_rel(fn(exit,Fn_Exit),There,G9,F9) ,
%~   from_loc(Agent,Here,F9,E9) ,
%~   agent_thought_model(Agent,ModelData,E9,D9) ,
%~   find_path(Doer,Here,There,Route,ModelData) ,
%~   C9=D9 ,
%~   ! ,
%~   B9=C9 ,
%~   eVent( Agent,
%~     follow_plan( Agent,
%~       did(Agent,act3(go__loc,Agent,[walk,There])),
%~       Route), B9,H9).
/* ==>>(aXiom_p1(make_true(Agent,FACT)),add_agent_goal(Agent,FACT)) */
%~ aXiom_p1(make_true(Agent,FACT),A9,B9) :-
%~ 
%~   add_agent_goal(Agent,FACT,A9,B9).
/* ==>>(aXiom_p1(add_intent(Agent,TODO)),add_agent_intent(Agent,TODO)) */
%~ aXiom_p1(add_intent(Agent,TODO),A9,B9) :-
%~ 
%~   add_agent_intent(Agent,TODO,A9,B9).
/* ( aXiom_p1( follow_plan(Agent,Name,[])) ==>> 
  !,send_1percept(Agent,[success(followed_plan(Agent,Name))])) */
%~ aXiom_p1(follow_plan(Agent,Name,[]),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   send_1percept( Agent,
%~     [ success( followed_plan(Agent,Name))], A9,B9).
/* ( aXiom_p1( follow_plan(Agent,Name,[Step])) ==>> 
  ( eVent(Agent,follow_step(Agent,Name,Step)) , 
    eVent(Agent,follow_plan(Agent,Name,CO_Route)))) */
%~ aXiom_p1(follow_plan(Agent,Name,[Step|Route]),A9,C9) :-
%~   eVent(Agent,follow_step(Agent,Name,Step),A9,B9) ,
%~   eVent(Agent,follow_plan(Agent,Name,Route),B9,C9).
/* ( aXiom_p1( follow_step(Agent,Name,Step)) ==>> 
  {dbug1(follow_step(Agent,Name,Step))},raise_aXiom_events(Step)) */
%~ aXiom_p1(follow_step(Agent,Name,Step),A9,C9) :-
%~   dbug1( follow_step(Agent,Name,Step)) ,
%~   B9=A9 ,
%~   raise_aXiom_events(Step,B9,C9).
/* ( axiom_Recalc_e(attempts(Agent,act3(take,Agent,[Thing])),RECALC) ==>> 
  ( ! , 
    RECALC =  
         
      attempts( Agent, 
        act3(put__via,Agent,[take,Thing,held_by,Agent])))) */
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(take,Agent,[Thing])), RECALC,A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(put__via,Agent,[take,Thing,held_by,Agent])), A9,B9).
/* ( axiom_Recalc_e(attempts(Agent,act3(drop,Agent,[Thing])),RECALC) ==>> 
  ( !  ,
    dshow_failure( h(spatial,At,Agent,Here)) , 
    RECALC =  
         
      attempts( Agent, 
        act3(put__via,Agent,[drop,Thing,At,Here])))) */
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(drop,Agent,[Thing])), RECALC,A9,C9) :-
%~   ! ,
%~   A9=A9 ,
%~   dshow_failure(h(spatial,At,Agent,Here),A9,B9) ,
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(put__via,Agent,[drop,Thing,At,Here])), B9,C9).
/* ( axiom_Recalc_e( 
     attempts( Agent, 
       act3(put,Agent,[Thing1,PrepAt,Thing2])), 
     RECALC) ==>> 
  RECALC =  
       
    attempts( Agent, 
      act3(put__via,Agent,[put,Thing1,PrepAt,Thing2]))) */
%~ axiom_Recalc_e(
%~    attempts( Agent,
%~      act3(put,Agent,[Thing1,PrepAt,Thing2])), RECALC,A9,B9) :-
%~ 
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(put__via,Agent,[put,Thing1,PrepAt,Thing2])), A9,B9).
/* ( axiom_Recalc_e( 
     attempts(Agent,act3(give,Agent,[Thing,Recipient])), 
     RECALC) ==>> 
  RECALC =  
       
    attempts( Agent, 
      act3(put__via,Agent,[give,Thing,held_by,Recipient]))) */
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(give,Agent,[Thing,Recipient])), RECALC,A9,B9) :-
%~ 
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(put__via,Agent,[give,Thing,held_by,Recipient])), A9,B9).
/* ( aXiom_p1( attempts( Agent, 
              act3( put__via, 
                Agent, 
                [How,Thing1,Prep,Thing2]))) ==>> 
  ( {fail}  ,
    ! , 
    dshow_failure( prep_to_rel(Thing2,Prep,At)) , 
    from_loc(Agent,Here) , 
    dshow_failure( has_rel(At,Thing2)) , 
    dshow_failure( will_need_touch(Agent,Thing2)) , 
    moveto( Agent, 
      How, Thing1,At,Thing2, 
      [Here], 
      [ cap( subj(Agent)), 
        person(How,es(How)), Thing1,At,Thing2, 
        '.']))) */
%~ aXiom_p1(
%~    attempts( Agent,
%~      act3( put__via,
%~        Agent,
%~        [How,Thing1,Prep,Thing2])), A9,H9) :-
%~   fail ,
%~   G9=A9 ,
%~   ! ,
%~   F9=G9 ,
%~   dshow_failure(prep_to_rel(Thing2,Prep,At),F9,E9) ,
%~   from_loc(Agent,Here,E9,D9) ,
%~   dshow_failure(has_rel(At,Thing2),D9,C9) ,
%~   dshow_failure(will_need_touch(Agent,Thing2),C9,B9) ,
%~   moveto( Agent,
%~     How, Thing1,At,Thing2,
%~     [Here],
%~     [ cap( subj(Agent)), person(How,es(How)),Thing1,
%~       At,Thing2,'.'], B9,H9).
/* ( axiom_Recalc_e( 
     attempts(Agent,act3(throw_dir,Agent,[Thing,ExitName])), 
     RECALC) ==>> 
  ( from_loc(Agent,Here) , 
    RECALC =  
         
      attempts( Agent, 
        act3(throw_prep_obj,Agent,[Thing,ExitName,Here])))) */
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(throw_dir,Agent,[Thing,ExitName])), RECALC,A9,C9) :-
%~   from_loc(Agent,Here,A9,B9) ,
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(throw_prep_obj,Agent,[Thing,ExitName,Here])), B9,C9).
/* ( axiom_Recalc_e( 
     attempts(Agent,act3(throw_at,Agent,[Thing,Target])), 
     RECALC) ==>> 
  RECALC =  
       
    attempts( Agent, 
      act3(throw_prep_obj,Agent,[Thing,at,Target]))) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:274 
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(throw_at,Agent,[Thing,Target])), RECALC,A9,B9) :-
%~ 
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(throw_prep_obj,Agent,[Thing,at,Target])), A9,B9).
/* ( axiom_Recalc_e( 
     attempts( Agent, 
       act3(throw_prep_obj,Agent,[Thing,Prep,Target])), 
     RECALC) ==>> 
  ( prep_to_rel(Target,Prep,Rel) , 
    RECALC =  
         
      attempts( Agent, 
        act3(put,Agent,[throw,Thing,Rel,Target])))) */
%~ axiom_Recalc_e(
%~    attempts( Agent,
%~      act3(throw_prep_obj,Agent,[Thing,Prep,Target])), RECALC,A9,C9) :-
%~   prep_to_rel(Target,Prep,Rel,A9,B9) ,
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(put,Agent,[throw,Thing,Rel,Target])), B9,C9).
/* ( axiom_Recalc_e( 
     attempts( Agent, 
       act3(throw,Agent,[Thing,Prep,Target])), 
     RECALC) ==>> 
  ( prep_to_rel(Target,Prep,Rel);Prep=Rel , 
    RECALC =  
         
      attempts( Agent, 
        act3(put,Agent,[throw,Thing,Rel,Target])))) */
%~ axiom_Recalc_e(
%~    attempts( Agent,
%~      act3(throw,Agent,[Thing,Prep,Target])), RECALC,A9,C9) :-
%~   ( prep_to_rel(Target,Prep,Rel,A9,B9) ;
%~     =(Prep,Rel,A9,B9)) ,
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(put,Agent,[throw,Thing,Rel,Target])), B9,C9).
/* ( aXiom_p1( attempts( Agent, 
              act3(throw,Agent,[Thing,At,Target]))) ==>> 
  ( will_need_touch(Agent,Thing)  ,
    can_sense(Agent,see,Target) , 
    eVent( Agent, 
      act3(throw,Agent,[Thing,At,Target])))) */
%~ aXiom_p1(
%~    attempts( Agent,
%~      act3(throw,Agent,[Thing,At,Target])), A9,D9) :-
%~   will_need_touch(Agent,Thing,A9,C9) ,
%~   can_sense(Agent,see,Target,C9,B9) ,
%~   eVent( Agent,
%~     act3(throw,Agent,[Thing,At,Target]), B9,D9).
/* ( aXiom_p1( act3(throw,Agent,[Thing,AtTarget,Target])) ==>> 
  ( ignore( ( getprop(Thing,breaks_into(Broken))  ,
              dbug(general,'object ~p is breaks_into~n',[Thing]) , 
              eVent(Agent,thing_transforms(Thing,Broken)))) , 
    eVent( Agent, 
      disgorge( Agent, 
        do_throw, Target,AtTarget,Target, 
        [Target],'Something falls out.')))) */
%~ aXiom_p1(
%~    act3(throw,Agent,[Thing,AtTarget,Target]), A9,C9) :-
%~   ignore(
%~      ( getprop(Thing,breaks_into(Broken))  ,
%~        dbug(general,'object ~p is breaks_into~n',[Thing]) ,
%~        eVent(Agent,thing_transforms(Thing,Broken))), A9,B9) ,
%~   eVent( Agent,
%~     disgorge( Agent,
%~       do_throw, Target,AtTarget,Target,
%~       [Target],'Something falls out.'), B9,C9).
/* ( aXiom_p1( thing_transforms(Thing,Broken)) ==>> 
  ( undeclare( h(Spatial,At,Thing,Here))  ,
    declare( h(Spatial,At,Broken,Here)) , 
    queue_local_event([transformed(Thing,Broken)],Here))) */
%~ aXiom_p1(thing_transforms(Thing,Broken),A9,D9) :-
%~   undeclare(h(Spatial,At,Thing,Here),A9,C9) ,
%~   declare(h(Spatial,At,Broken,Here),C9,B9) ,
%~   queue_local_event([transformed(Thing,Broken)],Here,B9,D9).
/* ( aXiom_p1( attempts(Agent,act3(hit_with,Agent,[Thing,With]))) ==>> 
  ( from_loc(Agent,Here)  ,
    invoke_hit(Agent,Thing,With,[Here]) , 
    send_1percept(Agent,[true,'OK.']))) */
%~ aXiom_p1(
%~    attempts(Agent,act3(hit_with,Agent,[Thing,With])), A9,D9) :-
%~   from_loc(Agent,Here,A9,C9) ,
%~   invoke_hit(Agent,Thing,With,[Here],C9,B9) ,
%~   send_1percept(Agent,[true,'OK.'],B9,D9).
/* ( aXiom_p1( attempts(Agent,act3(hit,Agent,[Thing]))) ==>> 
  ( from_loc(Agent,Here)  ,
    invoke_hit(Agent,Thing,Agent,[Here]) , 
    send_1percept(Agent,[true,'OK.']))) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:311 
%~ aXiom_p1(attempts(Agent,act3(hit,Agent,[Thing])),A9,D9) :-
%~   from_loc(Agent,Here,A9,C9) ,
%~   invoke_hit(Agent,Thing,Agent,[Here],C9,B9) ,
%~   send_1percept(Agent,[true,'OK.'],B9,D9).
/* ( invoke_hit(Doer,Target,_With,Vicinity) ==>> 
  ignore( ( getprop(Target,breaks_into(Broken))  ,
            dbug(general,'target ~p is breaks_into~n',[Target]) , 
            undeclare( h(Spatial,Prep,Target,Here)) , 
            queue_local_event([transformed(Target,Broken)],Vicinity) , 
            declare( h(Spatial,Prep,Broken,Here)) , 
            disgorge(Doer,hit,Target,Prep,Here,Vicinity,'Something falls out.')))) */
%~ invoke_hit(Doer,Target,_With,Vicinity,A9,B9) :-
%~ 
%~   ignore(
%~      ( getprop(Target,breaks_into(Broken))  ,
%~        dbug(general,'target ~p is breaks_into~n',[Target]) ,
%~        undeclare( h(Spatial,Prep,Target,Here)) ,
%~        queue_local_event([transformed(Target,Broken)],Vicinity) ,
%~        declare( h(Spatial,Prep,Broken,Here)) ,
%~        disgorge(Doer,hit,Target,Prep,Here,Vicinity,'Something falls out.')), A9,B9).
/* ( aXiom_p1( attempts( Agent, 
              act3(dig,Agent,[Hole,Where,Tool]))) ==>> 
  ( { memberchk(Hole,[hole,trench,pit,ditch]), 
      memberchk(Where,[garden]), 
      memberchk(Tool,[shovel,spade]) }  ,
    open_traverse(Tool,Agent) , 
    from_loc(Agent,Where) , 
    \+( h(spatial,_At,Hole,Where)) , 
    declare( h(spatial,in,Hole,Where)) , 
    setprop(Hole,default_rel=in) , 
    setprop(Hole,can_be(move,f)) , 
    setprop(Hole,can_be(take,f)) , 
    declare( h(spatial,in,dirt,Where)) , 
    queue_event( [ created(Hole,Where), 
                   [ cap( subj(Agent)), person(dig,digs),a,Hole,'in the', 
                     Where,'.']]))) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:326 
%~ aXiom_p1(
%~    attempts( Agent,
%~      act3(dig,Agent,[Hole,Where,Tool])), A9,L9) :-
%~   memberchk(Hole,[hole,trench,pit,ditch]) ,
%~   memberchk(Where,[garden]) ,
%~   memberchk(Tool,[shovel,spade]) ,
%~   K9=A9 ,
%~   open_traverse(Tool,Agent,K9,J9) ,
%~   from_loc(Agent,Where,J9,I9) ,
%~   \+( h(spatial,_At,Hole,Where,I9,H9)) ,
%~   G9=I9 ,
%~   declare(h(spatial,in,Hole,Where),G9,F9) ,
%~   setprop(Hole,default_rel=in,F9,E9) ,
%~   setprop(Hole,can_be(move,f),E9,D9) ,
%~   setprop(Hole,can_be(take,f),D9,C9) ,
%~   declare(h(spatial,in,dirt,Where),C9,B9) ,
%~   queue_event(
%~      [ created(Hole,Where),
%~        [ cap( subj(Agent)), person(dig,digs),a,Hole,'in the',
%~          Where,'.']], B9,L9).
/* ( aXiom_p1( attempts(Agent,act3(eat,Agent,[Thing]))) ==>> 
  ( getprop(Thing,can_be(eat,t)) ->  
         
      ( undeclare( h(spatial,_1,Thing,_2)) , 
        send_1percept(Agent,[destroyed(Thing),'Mmmm, good!'])) ; 
    send_1percept( Agent, [
      [ failure( attempts(Agent,act3(eat,Agent,[Thing]))), 
        'It\'s inedible!'])])) */
%~ aXiom_p1(attempts(Agent,act3(eat,Agent,[Thing])),A9,D9) ->
%~ 
%~   ( getprop(Thing,can_be(eat,t),A9,C9) ->
%~       undeclare(h(spatial,_1,Thing,_2),C9,B9) ,
%~       send_1percept(Agent,[destroyed(Thing),'Mmmm, good!'],B9,D9) ;
%~     send_1percept( Agent,
%~       [ failure( attempts(Agent,act3(eat,Agent,[Thing]))),
%~         'It\'s inedible!'], A9,D9)).
/* ( aXiom_p1( attempts(Agent,act3(switch,Agent,[OnOff,Thing]))) ==>> 
  ( will_need_touch(Agent,Thing)  ,
    getprop(Thing,can_be(switch(OnOff),t)) , 
    getprop(Thing,effect(switch(OnOff),Term0)) , 
    { adv_subst(equivalent,$self,Thing,Term0,Term) } , 
    call(Term) , 
    send_1percept(Agent,[success(true,'OK')]))) */
%~ aXiom_p1(
%~    attempts(Agent,act3(switch,Agent,[OnOff,Thing])), A9,G9) :-
%~   will_need_touch(Agent,Thing,A9,F9) ,
%~   getprop(Thing,can_be(switch(OnOff),t),F9,E9) ,
%~   getprop(Thing,effect(switch(OnOff),Term0),E9,D9) ,
%~   adv_subst(equivalent,$self,Thing,Term0,Term) ,
%~   C9=D9 ,
%~   call(Term,C9,B9) ,
%~   send_1percept(Agent,[success(true,'OK')],B9,G9).
/* ( axiom_Recalc_e(attempts(Agent,act3(inventory,Who,[])),RECALC) ==>> 
  RECALC =  
       
    attempts(Agent,act3(examine,Agent,[Who]))) */
%~ axiom_Recalc_e(attempts(Agent,act3(inventory,Who,[])),RECALC,A9,B9) :-
%~ 
%~   =( RECALC,
%~     attempts(Agent,act3(examine,Agent,[Who])), A9,B9).
/* ( axiom_Recalc_e(attempts(Agent,act3(look,Agent,[])),RECALC) ==>> 
  ( h(spatial,At,Agent,Here) , 
    RECALC =  
         
      attempts( Agent, 
        act3(examine__D3,Agent,[see,At,Here])))) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:365 
%~ axiom_Recalc_e(attempts(Agent,act3(look,Agent,[])),RECALC,A9,C9) :-
%~   h(spatial,At,Agent,Here,A9,B9) ,
%~   =( RECALC,
%~     attempts(Agent,act3(examine__D3,Agent,[see,At,Here])), B9,C9).
/* ( axiom_Recalc_e(attempts(Agent,act3(examine,Agent,[Sense])),RECALC) ==>> 
  ( { is_sense(Sense) }  ,
    ! , 
    from_loc(Agent,Place) , 
    RECALC =  
         
      attempts(Agent,act3(examine__D3,Agent,[see,in,Place])))) */
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(examine,Agent,[Sense])), RECALC,A9,E9) :-
%~   is_sense(Sense) ,
%~   D9=A9 ,
%~   ! ,
%~   C9=D9 ,
%~   from_loc(Agent,Place,C9,B9) ,
%~   =( RECALC,
%~     attempts(Agent,act3(examine__D3,Agent,[see,in,Place])), B9,E9).
/* ( axiom_Recalc_e(attempts(Agent,act3(examine,Agent,[Object])),RECALC) ==>> 
  RECALC =  
       
    attempts(Agent,act3(examine__D3,Agent,[see,at,Object]))) */
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(examine,Agent,[Object])), RECALC,A9,B9) :-
%~ 
%~   =( RECALC,
%~     attempts(Agent,act3(examine__D3,Agent,[see,at,Object])), A9,B9).
/* ( axiom_Recalc_e( 
     attempts(Agent,act3(examine,Agent,[Sense,Object])), 
     RECALC) ==>> 
  ( RECALC =  
         
      attempts( Agent, 
        act3(examine__D3,Agent,[Sense,at,Object])) , 
    !)) */
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(examine,Agent,[Sense,Object])), RECALC,A9,C9) :-
%~   =( RECALC,
%~     attempts(Agent,act3(examine__D3,Agent,[Sense,at,Object])), A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( axiom_Recalc_e( 
     attempts( Agent, 
       act3(examine,Agent,[Sense,Prep,Object])), 
     RECALC) ==>> 
  ( RECALC =  
         
      attempts( Agent, 
        act3(examine__D3,Agent,[Sense,Prep,Object])) , 
    !)) */
%~ axiom_Recalc_e(
%~    attempts( Agent,
%~      act3(examine,Agent,[Sense,Prep,Object])), RECALC,A9,C9) :-
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(examine__D3,Agent,[Sense,Prep,Object])), A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( axiom_Recalc_e( 
     attempts( Agent, 
       act3( examine, 
         Agent, 
         [Sense,Prep,Object,Depth])), 
     RECALC) ==>> 
  ( RECALC =  
         
      attempts( Agent, 
        act3( examine__D3, 
          Agent, 
          [Sense,Prep,Object,Depth])) , 
    !)) */
%~ axiom_Recalc_e(
%~    attempts( Agent,
%~      act3( examine,
%~        Agent,
%~        [Sense,Prep,Object,Depth])), RECALC,A9,C9) :-
%~   =( RECALC,
%~     attempts( Agent,
%~       act3( examine__D3,
%~         Agent,
%~         [Sense,Prep,Object,Depth])), A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( axiom_Recalc_e( 
     attempts( Agent, 
       act3(examine__D3,Agent,[Sense,Prep,Object])), 
     RECALC) ==>> 
  ( RECALC =  
         
      attempts( Agent, 
        act3(examine__D5,Agent,[Sense,Prep,Object,3])) , 
    !)) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:380 
%~ axiom_Recalc_e(
%~    attempts( Agent,
%~      act3(examine__D3,Agent,[Sense,Prep,Object])), RECALC,A9,C9) :-
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(examine__D5,Agent,[Sense,Prep,Object,3])), A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( axiom_Recalc_e( 
     attempts( Agent, 
       act3( examine__D3, 
         Agent, 
         [Sense,Prep,Object,Depth])), 
     RECALC) ==>> 
  ( RECALC =  
         
      attempts( Agent, 
        act3( examine__D5, 
          Agent, 
          [Sense,Prep,Object,Depth])) , 
    !)) */
%~ axiom_Recalc_e(
%~    attempts( Agent,
%~      act3( examine__D3,
%~        Agent,
%~        [Sense,Prep,Object,Depth])), RECALC,A9,C9) :-
%~   =( RECALC,
%~     attempts( Agent,
%~       act3( examine__D5,
%~         Agent,
%~         [Sense,Prep,Object,Depth])), A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( aXiom_p1( attempts( Agent, 
              act3( examine__D5, 
                Agent, 
                [Sense,Prep,Object,Depth]))) ==>> 
  ( \+( sg( can_sense_here(Agent,Sense)))  ,
    ! , 
    raise_aXiom_events( failed( 
                           did( Agent, 
                             act3( examine, 
                               Agent, 
                               [Sense,Prep,Object,Depth])), 
                           \+( can_sense_here(Agent,Sense)))))) */
%~ aXiom_p1(
%~    attempts( Agent,
%~      act3( examine__D5,
%~        Agent,
%~        [Sense,Prep,Object,Depth])), A9,E9) :-
%~   \+( sg(can_sense_here(Agent,Sense),A9,D9)) ,
%~   C9=A9 ,
%~   ! ,
%~   B9=C9 ,
%~   raise_aXiom_events(
%~      failed(
%~         did( Agent,
%~           act3( examine,
%~             Agent,
%~             [Sense,Prep,Object,Depth])),
%~         \+( can_sense_here(Agent,Sense))), B9,E9).
/* ( aXiom_p1( attempts( Agent, 
              act3( examine__D5, 
                Agent, 
                [Sense,Prep,Object,Depth]))) ==>> 
  ( \+( sg( can_sense(Agent,Sense,Object)))  ,
    ! , 
    raise_aXiom_events( failed( 
                           did( Agent, 
                             act3( examine, 
                               Agent, 
                               [Sense,Prep,Object,Depth])), 
                           \+( can_sense(Agent,Sense,Object)))))) */
%~ aXiom_p1(
%~    attempts( Agent,
%~      act3( examine__D5,
%~        Agent,
%~        [Sense,Prep,Object,Depth])), A9,E9) :-
%~   \+( sg(can_sense(Agent,Sense,Object),A9,D9)) ,
%~   C9=A9 ,
%~   ! ,
%~   B9=C9 ,
%~   raise_aXiom_events(
%~      failed(
%~         did( Agent,
%~           act3( examine,
%~             Agent,
%~             [Sense,Prep,Object,Depth])),
%~         \+( can_sense(Agent,Sense,Object))), B9,E9).
/* ( aXiom_p1( attempts( Agent, 
              act3( examine__D5, 
                Agent, 
                [Sense,Prep,Object,Depth]))) ==>> 
  act_examine(Agent,Sense,Prep,Object,Depth),!) */
%~ aXiom_p1(
%~    attempts( Agent,
%~      act3( examine__D5,
%~        Agent,
%~        [Sense,Prep,Object,Depth])), A9,C9) :-
%~   must_mw1(
%~      act_examine(Agent,Sense,Prep,Object,Depth), A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( aXiom_p1( attempts(Agent,act3(touch,Agent,[Thing]))) ==>> 
  ( ! , 
    unless_reason( Agent, 
      will_need_touch(Agent,Thing), 
      cant( reach(Agent,Thing)), 
      send_1percept(Agent,[success(act3(touch,Agent,[Thing]),'Ok.')])))) */
%~ aXiom_p1(attempts(Agent,act3(touch,Agent,[Thing])),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   unless_reason( Agent,
%~     will_need_touch(Agent,Thing),
%~     cant( reach(Agent,Thing)),
%~     send_1percept(Agent,[success(act3(touch,Agent,[Thing]),'Ok.')]), A9,B9).
/* ( aXiom_p1( change_state(Agent,Action,Thing,Prop)) ==>> 
  !,change_state(Agent,Action,Thing,Prop)) */
%~ aXiom_p1(change_state(Agent,Action,Thing,Prop),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   change_state(Agent,Action,Thing,Prop,A9,B9).
/* ( aXiom_p1(Action,S0,S9) ::= 
  ( action_verb_agent_thing(Action,Verb,Agent,Thing)  ,
    nonvar(Verb) , 
    nonvar(Thing) , 
    nonvar(Agent) , 
    act_change_state_or_fallback(Verb,State,TF) , 
    ! , 
    eVent( Agent, 
      change_state(Agent,Action,Thing,State=TF), S0,S9) , 
    !)) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:406 
%~ aXiom_p1(Action,S0,S9) :-
%~   action_verb_agent_thing(Action,Verb,Agent,Thing) ,
%~   nonvar(Verb) ,
%~   nonvar(Thing) ,
%~   nonvar(Agent) ,
%~   act_change_state_or_fallback(Verb,State,TF) ,
%~   ! ,
%~   eVent( Agent,
%~     change_state(Agent,Action,Thing,State=TF), S0,S9) ,
%~   !.
/* ( invoke_command(Requester,attempts(Agent,Action)) ==>> 
  ( { Requester==Agent }  ,
    invoke_command(Agent,Action) , 
    !)) */
%~ invoke_command(Requester,attempts(Agent,Action),A9,D9) :-
%~   Requester==Agent ,
%~   C9=A9 ,
%~   invoke_command(Agent,Action,C9,B9) ,
%~   ! ,
%~   D9=B9.
/* ( invoke_command(Agent,Action) ==>> 
  ( invoke_metacmd(Agent,Action)  ,
    { overwrote_prompt(Agent) } , 
    !)) */
%~ invoke_command(Agent,Action,A9,D9) :-
%~   invoke_metacmd(Agent,Action,A9,C9) ,
%~   overwrote_prompt(Agent) ,
%~   B9=C9 ,
%~   ! ,
%~   D9=B9.
/* ( invoke_command(Agent,Action) ==>> 
  ( { set_last_action(Agent,Action) }  ,
    agent_try_action(Agent,Action) , 
    !)) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:137 
%~ invoke_command(Agent,Action,A9,D9) :-
%~   set_last_action(Agent,Action) ,
%~   C9=A9 ,
%~   agent_try_action(Agent,Action,C9,B9) ,
%~   ! ,
%~   D9=B9.
/* ( invoke_intents(Agent) ==>> 
  ( sg( declared( memories(Agent,Mem0)))  ,
    { member(intent(Agent,[]),Mem0) } , 
    !)) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:154 
%~ invoke_intents(Agent,A9,D9) :-
%~   sg(declared(memories(Agent,Mem0)),A9,C9) ,
%~   member(intent(Agent,[]),Mem0) ,
%~   B9=C9 ,
%~   ! ,
%~   D9=B9.
/* ==>>(satisfy_each_cond(Ctxt,[],success(Ctxt)),!) */
%~ satisfy_each_cond(Ctxt,[],success(Ctxt),A9,B9) :-
%~   ! ,
%~   B9=A9.
/* ( satisfy_each_cond(Context,[Cond],Out) ==>> 
  ( satisfy_each(Context,Cond)  ,
    ! , 
    ( sg( member( failed(Why))) ->  
           
        Out =  
             
          failed(Why) ; 
      satisfy_each_cond(Context,CondList,Out)) , 
    !)) */
%~ satisfy_each_cond(Context,[Cond|CondList],Out,A9,F9) ->
%~   dmust_tracing(satisfy_each(Context,Cond),A9,E9) ,
%~   ! ,
%~   D9=E9 ,
%~   ( sg(member(failed(Why)),D9,C9) ->
%~ 
%~       =(Out,failed(Why),C9,B9) ;
%~     satisfy_each_cond(Context,CondList,Out,D9,B9)) ,
%~   ! ,
%~   F9=B9.
/* ==>>(satisfy_each2(Ctx,Cond),satisfy_each1(Ctx,Cond)) */
%~ satisfy_each2(Ctx,Cond,A9,B9) :-
%~ 
%~   satisfy_each1(Ctx,Cond,A9,B9).
/* ==>>(satisfy_each2(Cond3,Cond),[failed(Cond)]) */
%~ satisfy_each2( Cond2,
%~   Cond,
%~   [ failed(Cond) |
%~     Each2_Failed],
%~   Each2_Failed) :-
%~ 
%~   true.
/* ( satisfy_each1(_Context,h(spatial,P,_X,_Y)) ==>> 
  {P==takeable},!) */
%~ satisfy_each1(_Context,h(spatial,P,_X,_Y),A9,C9) :-
%~   P==takeable ,
%~   B9=A9 ,
%~   ! ,
%~   C9=B9.
/* ( satisfy_each1(Context,List) ==>> 
  ( { is_list(List) }  ,
    ! , 
    satisfy_each_cond(Context,List,Out) , 
    ! , 
    { Out\=failed(Failed) })) */
%~ satisfy_each1(Context,List,A9,F9) :-
%~   is_list(List) ,
%~   E9=A9 ,
%~   ! ,
%~   D9=E9 ,
%~   satisfy_each_cond(Context,List,Out,D9,C9) ,
%~   ! ,
%~   B9=C9 ,
%~   Out\=failed(Failed) ,
%~   F9=B9.
/* ==>>(satisfy_each1(_Ctx,A\=B),({dif(A,B)},!)) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:281 
%~ satisfy_each1(_Ctx,A\=B,A9,C9) :-
%~   dif(A,B) ,
%~   B9=A9 ,
%~   ! ,
%~   C9=B9.
/* ==>>(satisfy_each1(_Ctxt,exists(Ex)),(!,{ground(Ex)})) */
%~ satisfy_each1(_Ctxt,exists(Ex),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   ground(Ex) ,
%~   B9=A9.
/* ( satisfy_each1(Context,believe(Beliver,Cond)) ==>> 
  ( pre_redeclare( memories(Beliver,Memory))  ,
    { satisfy_each_always(Context,Cond,Memory,NewMemory) } , 
    ! , 
    redeclare( memories(Beliver,NewMemory)))) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:286 
%~ satisfy_each1(Context,believe(Beliver,Cond),A9,E9) :-
%~   pre_redeclare(memories(Beliver,Memory),A9,D9) ,
%~   satisfy_each_always(Context,Cond,Memory,NewMemory) ,
%~   C9=D9 ,
%~   ! ,
%~   B9=C9 ,
%~   redeclare(memories(Beliver,NewMemory),B9,E9).
/* ( satisfy_each1(Context,believe(_Beliver,Cond)) ==>> 
  ( !  ,
    satisfy_each(Context,Cond) , 
    !)) */
%~ satisfy_each1(Context,believe(_Beliver,Cond),A9,C9) :-
%~   ! ,
%~   A9=A9 ,
%~   satisfy_each(Context,Cond,A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ==>>(satisfy_each1(postCond(_Action),~Cond),(!,undeclare_always(Cond))) */
%~ satisfy_each1(postCond(_Action),~Cond,A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   undeclare_always(Cond,A9,B9).
/* ( satisfy_each1(Ctx_Percept_local,percept_local(Where,Event)) ==>> 
  !,queue_local_event([Event],[Where])) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:305 
%~ satisfy_each1(Percept_local,percept_local(Where,Event),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   queue_local_event([Event],[Where],A9,B9).
/* ( satisfy_each1(Ctx_Percept,percept(Agent,Event)) ==>> 
  !,send_1percept(Agent,Event)) */
%~ satisfy_each1(Percept,percept(Agent,Event),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   send_1percept(Agent,Event,A9,B9).
/* ( satisfy_each1(Context,~Cond) ==>> 
  !,(\+satisfy_each1(Context,Cond);[failed(Cond)])) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:307 
%~ satisfy_each1(Context,~Cond,A9,C9) :-
%~   ! ,
%~   A9=A9 ,
%~   ( \+satisfy_each1(Context,Cond,A9,B9),C9=A9 ;
%~     A9 =
%~ 
%~       [ failed(Cond) |
%~         C9]).
/* ( satisfy_each1(Ctx_Call,call(Cond)) ==>> 
  declared(Cond)*->true;apply_aXioms(Cond)) */
%~ satisfy_each1(Call,call(Cond),A9,C9) :-
%~ 
%~   ( declared(Cond,A9,B9)*->true(B9,C9) ;
%~     apply_aXioms(Cond,A9,C9)).
/* ==>>(satisfy_each1(Ctx_Cond1,Cond),(declared(Cond),!)) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:309 
%~ satisfy_each1(Cond1,Cond,A9,C9) :-
%~   declared(Cond,A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( satisfy_each1(postCond(_Action),Cond) ==>> 
  ( { old_figment(Cond,_F,_A,Old) }  ,
    undeclare_always(Old) , 
    ! , 
    declare(Cond))) */
%~ satisfy_each1(postCond(_Action),Cond,A9,D9) :-
%~   must(
%~      {old_figment(Cond,_F,_A,Old)},undeclare_always(Old), A9,C9) ,
%~   ! ,
%~   B9=C9 ,
%~   declare(Cond,B9,D9).
/* ==>>(api_invoke(Action),apply_aXioms(Action)) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:341 
%~ api_invoke(Action,A9,B9) :-
%~ 
%~   apply_aXioms(Action,A9,B9).
/* ==>>(apply_aXioms(Action),(aXiom(Action),!)) */
%~ apply_aXioms(Action,A9,C9) :-
%~   aXiom(Action,A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( raise_aXiom_events(Action) ==>> 
  ( action_doer(Action,Agent) , 
    send_1percept(Agent,[failure(Action,unknown_to(Agent,Action))]))) */
%~ raise_aXiom_events(Action,A9,C9) :-
%~   action_doer(Action,Agent,A9,B9) ,
%~   send_1percept( Agent,
%~     [ failure(Action,unknown_to(Agent,Action))], B9,C9).
/* ==>>(unless_reason(_Agent,Then,_Msg),(Then,!)) */
%~ unless_reason(_Agent,Then,_Msg,A9,C9) :-
%~   phrase(Then,A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( unless_reason(Agent,_Then,Msg) ==>> 
  ( { event_failed(Agent,Msg) }  ,
    ! , 
    {fail})) */
%~ unless_reason(Agent,_Then,Msg,A9,D9) :-
%~   event_failed(Agent,Msg) ,
%~   C9=A9 ,
%~   ! ,
%~   B9=C9 ,
%~   fail ,
%~   D9=B9.
/* ( unless_reason(_Agent,Unless,_Msg,Then) ==>> 
  ( Unless  ,
    ! , 
    Then)) */
%~ unless_reason(_Agent,Unless,_Msg,Then,A9,D9) :-
%~   phrase(Unless,A9,C9) ,
%~   ! ,
%~   B9=C9 ,
%~   phrase(Then,B9,D9).
/* ( unless_reason(Agent,_Unless,Msg,_Then) ==>> 
  {event_failed(Agent,Msg)},!) */
%~ unless_reason(Agent,_Unless,Msg,_Then,A9,C9) :-
%~   event_failed(Agent,Msg) ,
%~   B9=A9 ,
%~   ! ,
%~   C9=B9.
/* ==>>(unless(_Agent,Required,Then),(Required,!,Then)) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:429 
%~ unless(_Agent,Required,Then,A9,D9) :-
%~   phrase(Required,A9,C9) ,
%~   ! ,
%~   B9=C9 ,
%~   phrase(Then,B9,D9).
/* ( unless(Agent,Required,_Then) ==>> 
  ( { simplify_reason(Required,CUZ), 
      event_failed(Agent,cant(cuz(\+CUZ))) } , 
    !)) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:430 
%~ unless(Agent,Required,_Then,A9,C9) :-
%~   simplify_reason(Required,CUZ) ,
%~   event_failed(Agent,cant(cuz(\+CUZ))) ,
%~   B9=A9 ,
%~   ! ,
%~   C9=B9.
/* ( add_intent_look(Agent) ==>> 
  ( h(spatial,inside,Agent,_Somewhere) , 
    add_agent_intent(Agent,attempts(Agent,act3(look,Agent,[]))))) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:474 
%~ add_intent_look(Agent,A9,C9) :-
%~   h(spatial,inside,Agent,_Somewhere,A9,B9) ,
%~   add_agent_intent(Agent,attempts(Agent,act3(look,Agent,[])),B9,C9).
/* ( disgorge( Doer, 
    Verb, Container,Prep,Here, 
    Vicinity,Msg) ==>> 
  ( verb_domain(Verb,Spatially)  ,
    findall(Inner,h(Spatially,child,Inner,Container),Contents) , 
    { dbug(general,'~p childs: ~p~n',[Container,Contents]) } , 
    moveto( Doer, 
      Verb, Contents,Prep,Here, 
      Vicinity,Msg))) */
%~ disgorge( Doer,
%~   Verb, Container,Prep,Here,
%~   Vicinity,Msg,A9,
%~   E9) :-
%~   verb_domain(Verb,Spatially,A9,D9) ,
%~   findall( Inner,
%~     h(Spatially,child,Inner,Container), Contents,D9,C9) ,
%~   dbug(general,'~p childs: ~p~n',[Container,Contents]) ,
%~   B9=C9 ,
%~   moveto( Doer,
%~     Verb, Contents,Prep,Here,
%~     Vicinity,Msg,B9,
%~     E9).
/* ( moveto(Doer,Verb,List,At,Dest,Vicinity,Msg) ==>> 
  ( { is_list(List) }  ,
    ! , 
    apply_mapl_rest_state( moveto(Doer,Verb), 
      List, 
      [At,Dest,Vicinity,Msg]))) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:560 
%~ moveto( Doer,
%~   Verb, List,At,Dest,
%~   Vicinity,Msg,A9,
%~   D9) :-
%~   is_list(List) ,
%~   C9=A9 ,
%~   ! ,
%~   B9=C9 ,
%~   apply_mapl_rest_state( moveto(Doer,Verb),
%~     List,
%~     [At,Dest,Vicinity,Msg], B9,D9).
/* ( moveto(Doer,Verb,Object,At,Dest,Vicinity,Msg) ==>> 
  ( undeclare( h(spatial,Prep_Spatial,Object,From))  ,
    declare( h(spatial,At,Object,Dest)) , 
    queue_local_event( 
       [ act3( move, 
           Doer, 
           [ Verb, Object,From,At, 
             Dest]), 
         Msg], 
       Vicinity))) */
%~ moveto( Doer,
%~   Verb, Object,At,Dest,
%~   Vicinity,Msg,A9,
%~   D9) :-
%~   undeclare(h(spatial,Prep_Spatial,Object,From),A9,C9) ,
%~   declare(h(spatial,At,Object,Dest),C9,B9) ,
%~   queue_local_event(
%~      [ act3( move,
%~          Doer,
%~          [ Verb, Object,From,At,
%~            Dest]),
%~        Msg], Vicinity,B9,D9).
/* ( setloc_silent(Prep,Object,Dest) ==>> 
  ( undeclare( h(spatial,Prep_Spatial,Object,Target_Object4)) , 
    declare( h(spatial,Prep,Object,Dest)))) */
%~ setloc_silent(Prep,Object,Dest,A9,C9) :-
%~   undeclare(h(spatial,Prep_Spatial,Object,Target_Object4),A9,B9) ,
%~   declare(h(spatial,Prep,Object,Dest),B9,C9).
ORDERING TEST:
 unordered was [before(start,completeFn(CompleteFn)),before(start,x),before(start,y),before(y,completeFn(CompleteFn)),before(x,z),before(z,completeFn(CompleteFn))]
 ordering is [before(z,completeFn(CompleteFn)),before(x,completeFn(CompleteFn)),before(x,z),before(start,z),before(y,completeFn(CompleteFn)),before(start,y),before(start,x),before(start,completeFn(CompleteFn))]
 picked [start,x,y,z,completeFn(CompleteFn3)]
 END ORDERING TEST
=============================================
RESET STATE
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/t/agi_tests/adv_story/adv_test_01.pl:34 
%~ create_1obj(se_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(ss_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(sw_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(ee_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(cc_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(ww_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(ne_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(nn_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(nw_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(x(red_pebble,5),i1)
%~ create_1obj(player,i1)
%~ create_1obj(x(red_pebble,4),i1)
%~ create_1obj(player,i1)
%~ create_1obj(x(red_pebble,3),i1)
%~ create_1obj(player,i1)
%~ create_1obj(x(red_pebble,2),i1)
%~ create_1obj(player,i1)
%~ create_1obj(x(red_pebble,1),i1)
%~ create_1obj(player,i1)
%~ create_1obj(x(blue_pebble,5),i1)
%~ create_1obj(floyd,i1)
%~ create_1obj(x(blue_pebble,4),i1)
%~ create_1obj(floyd,i1)
%~ create_1obj(x(blue_pebble,3),i1)
%~ create_1obj(floyd,i1)
%~ create_1obj(x(blue_pebble,2),i1)
%~ create_1obj(floyd,i1)
%~ create_1obj(x(blue_pebble,1),i1)
%~ create_1obj(floyd,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(brklamp,i1)
%~ create_1obj(garden,i1)
%~ create_1obj(screendoor,i1)
%~ create_1obj(garden,i1)
%~ create_1obj(apple,i1)
%~ create_1obj(crate,i1)
%~ create_1obj(crate,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(screendoor,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(fireplace,i1)
%~ create_1obj(living_room,i1)
%~ create_1obj(videocamera,i1)
%~ create_1obj(living_room,i1)
%~ create_1obj(shovel,i1)
%~ create_1obj(basement,i1)
%~ create_1obj(mushroom,i1)
%~ create_1obj(garden,i1)
%~ create_1obj(water,i1)
%~ create_1obj(fountain,i1)
%~ create_1obj(fountain,i1)
%~ create_1obj(garden,i1)
%~ create_1obj(x(rock,2),i1)
%~ create_1obj(garden,i1)
%~ create_1obj(rock,i1)
%~ create_1obj(garden,i1)
%~ create_1obj(locker,i1)
%~ create_1obj(pantry,i1)
%~ create_1obj(shelf,i1)
%~ create_1obj(pantry,i1)
%~ create_1obj(living_room,i1)
%~ create_1obj(dining_room,i1)
%~ create_1obj(dining_room,i1)
%~ create_1obj(living_room,i1)
%~ create_1obj(dining_room,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(dining_room,i1)
%~ create_1obj(garden,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(garden,i1)
%~ create_1obj(basement,i1)
%~ create_1obj(pantry,i1)
%~ create_1obj(pantry,i1)
%~ create_1obj(basement,i1)
%~ create_1obj(pantry,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(pantry,i1)
%~ create_1obj(wrench,i1)
%~ create_1obj(floyd,i1)
%~ create_1obj(coins,i1)
%~ create_1obj(bag,i1)
%~ create_1obj(bag,i1)
%~ create_1obj(player,i1)
%~ create_1obj(watch,i1)
%~ create_1obj(player,i1)
%~ create_1obj(player,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(floyd,i1)
%~ create_1obj(pantry,i1)
%~ create_1obj(cup,i1)
%~ create_1obj(cabinate,i1)
%~ create_1obj(cabinate,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(plate,i1)
%~ create_1obj(sink,i1)
%~ create_1obj(sink,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(lamp,i1)
%~ create_1obj(table,i1)
%~ create_1obj(table,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(flour,i1)
%~ create_1obj(bowl,i1)
%~ create_1obj(bowl,i1)
%~ create_1obj(box,i1)
%~ create_1obj(box,i1)
%~ create_1obj(table,i1)
%~ create_1obj(table,i1)
%~ create_1obj(table_leg,i1)
/* oldObjectList=[] */
/* newObjectList = [ x(table_leg,i1), x(table,i1),x(box,i1),x(bowl,i1), 
                  x(flour,i1),x(kitchen,i1),x(lamp,i1), 
                  x(sink,i1),x(plate,i1),x(cabinate,i1), 
                  x(cup,i1),x(pantry,i1),x(floyd,i1), 
                  x(player,i1),x(watch,i1),x(bag,i1), 
                  x(coins,i1),x(wrench,i1), 
                  x(basement,i1),x(garden,i1), 
                  x(dining_room,i1),x(living_room,i1), 
                  x(shelf,i1),x(locker,i1),x(rock,i1), 
                  x(fountain,i1),x(water,i1), 
                  x(mushroom,i1),x(shovel,i1), 
                  x(videocamera,i1),x(fireplace,i1), 
                  x(screendoor,i1),x(crate,i1), 
                  x(apple,i1),x(brklamp,i1), 
                  x(ttt_table,i1),x(nw_subregion,i1), 
                  x(nn_subregion,i1),x(ne_subregion,i1), 
                  x(ww_subregion,i1),x(cc_subregion,i1), 
                  x(ee_subregion,i1),x(sw_subregion,i1), 
                  x(ss_subregion,i1),x(se_subregion,i1)] */
/* mu_create_object( x(table_leg,i1), [
  [ shape=table_leg, traits([table_leg]),inherit(table_leg,t), 
    sp(nouns,[table_leg])])] */
/* mu_create_object( x(table,i1), [
  [ shape=(table), traits([table]),inherit(table,t), 
    sp(nouns,[table])])] */
/* mu_create_object( x(box,i1), [
  [ shape=box, traits([box]),inherit(box,t), 
    sp(nouns,[box])])] */
/* mu_create_object( x(bowl,i1), [
  [ shape=bowl, traits([bowl]),inherit(bowl,t), 
    sp(nouns,[bowl])])] */
/* mu_create_object( x(flour,i1), [
  [ shape=flour, traits([flour]),inherit(flour,t), 
    sp(nouns,[flour])])] */
/* mu_create_object( x(kitchen,i1), [
  [ shape=kitchen, traits([kitchen]),inherit(kitchen,t), 
    sp(nouns,[kitchen])])] */
/* mu_create_object( x(lamp,i1), [
  [ shape=lamp, traits([lamp]),inherit(lamp,t), 
    sp(nouns,[lamp])])] */
/* mu_create_object( x(sink,i1), [
  [ shape=sink, traits([sink]),inherit(sink,t), 
    sp(nouns,[sink])])] */
/* mu_create_object( x(plate,i1), [
  [ shape=plate, traits([plate]),inherit(plate,t), 
    sp(nouns,[plate])])] */
/* mu_create_object( x(cabinate,i1), [
  [ shape=cabinate, traits([cabinate]),inherit(cabinate,t), 
    sp(nouns,[cabinate])])] */
/* mu_create_object( x(cup,i1), [
  [ shape=cup, traits([cup]),inherit(cup,t), 
    sp(nouns,[cup])])] */
/* mu_create_object( x(pantry,i1), [
  [ shape=pantry, traits([pantry]),inherit(pantry,t), 
    sp(nouns,[pantry])])] */
/* mu_create_object( x(floyd,i1), [
  [ shape=floyd, traits([floyd]),inherit(floyd,t), 
    sp(nouns,[floyd])])] */
/* mu_create_object( x(player,i1), [
  [ shape=player, traits([player]),inherit(player,t), 
    sp(nouns,[player])])] */
/* mu_create_object( x(watch,i1), [
  [ shape=watch, traits([watch]),inherit(watch,t), 
    sp(nouns,[watch])])] */
/* mu_create_object( x(bag,i1), [
  [ shape=bag, traits([bag]),inherit(bag,t), 
    sp(nouns,[bag])])] */
/* mu_create_object( x(coins,i1), [
  [ shape=coins, traits([coins]),inherit(coins,t), 
    sp(nouns,[coins])])] */
/* mu_create_object( x(wrench,i1), [
  [ shape=wrench, traits([wrench]),inherit(wrench,t), 
    sp(nouns,[wrench])])] */
/* mu_create_object( x(basement,i1), [
  [ shape=basement, traits([basement]),inherit(basement,t), 
    sp(nouns,[basement])])] */
/* mu_create_object( x(garden,i1), [
  [ shape=garden, traits([garden]),inherit(garden,t), 
    sp(nouns,[garden])])] */
/* mu_create_object( x(dining_room,i1), [
  [ shape=dining_room, traits([dining_room]),inherit(dining_room,t), 
    sp(nouns,[dining_room])])] */
/* mu_create_object( x(living_room,i1), [
  [ shape=living_room, traits([living_room]),inherit(living_room,t), 
    sp(nouns,[living_room])])] */
/* mu_create_object( x(shelf,i1), [
  [ shape=shelf, traits([shelf]),inherit(shelf,t), 
    sp(nouns,[shelf])])] */
/* mu_create_object( x(locker,i1), [
  [ shape=locker, traits([locker]),inherit(locker,t), 
    sp(nouns,[locker])])] */
/* mu_create_object( x(rock,i1), [
  [ shape=rock, traits([rock]),inherit(rock,t), 
    sp(nouns,[rock])])] */
/* mu_create_object( x(fountain,i1), [
  [ shape=fountain, traits([fountain]),inherit(fountain,t), 
    sp(nouns,[fountain])])] */
/* mu_create_object( x(water,i1), [
  [ shape=water, traits([water]),inherit(water,t), 
    sp(nouns,[water])])] */
/* mu_create_object( x(mushroom,i1), [
  [ shape=mushroom, traits([mushroom]),inherit(mushroom,t), 
    sp(nouns,[mushroom])])] */
/* mu_create_object( x(shovel,i1), [
  [ shape=shovel, traits([shovel]),inherit(shovel,t), 
    sp(nouns,[shovel])])] */
/* mu_create_object( x(videocamera,i1), [
  [ shape=videocamera, traits([videocamera]),inherit(videocamera,t), 
    sp(nouns,[videocamera])])] */
/* mu_create_object( x(fireplace,i1), [
  [ shape=fireplace, traits([fireplace]),inherit(fireplace,t), 
    sp(nouns,[fireplace])])] */
/* mu_create_object( x(screendoor,i1), [
  [ shape=screendoor, traits([screendoor]),inherit(screendoor,t), 
    sp(nouns,[screendoor])])] */
/* mu_create_object( x(crate,i1), [
  [ shape=crate, traits([crate]),inherit(crate,t), 
    sp(nouns,[crate])])] */
/* mu_create_object( x(apple,i1), [
  [ shape=apple, traits([apple]),inherit(apple,t), 
    sp(nouns,[apple])])] */
/* mu_create_object( x(brklamp,i1), [
  [ shape=brklamp, traits([brklamp]),inherit(brklamp,t), 
    sp(nouns,[brklamp])])] */
/* mu_create_object( x(ttt_table,i1), [
  [ shape=ttt_table, traits([ttt_table]),inherit(ttt_table,t), 
    sp(nouns,[ttt_table])])] */
/* mu_create_object( x(nw_subregion,i1), [
  [ shape=nw_subregion, traits([nw_subregion]),inherit(nw_subregion,t), 
    sp(nouns,[nw_subregion])])] */
/* mu_create_object( x(nn_subregion,i1), [
  [ shape=nn_subregion, traits([nn_subregion]),inherit(nn_subregion,t), 
    sp(nouns,[nn_subregion])])] */
/* mu_create_object( x(ne_subregion,i1), [
  [ shape=ne_subregion, traits([ne_subregion]),inherit(ne_subregion,t), 
    sp(nouns,[ne_subregion])])] */
/* mu_create_object( x(ww_subregion,i1), [
  [ shape=ww_subregion, traits([ww_subregion]),inherit(ww_subregion,t), 
    sp(nouns,[ww_subregion])])] */
/* mu_create_object( x(cc_subregion,i1), [
  [ shape=cc_subregion, traits([cc_subregion]),inherit(cc_subregion,t), 
    sp(nouns,[cc_subregion])])] */
/* mu_create_object( x(ee_subregion,i1), [
  [ shape=ee_subregion, traits([ee_subregion]),inherit(ee_subregion,t), 
    sp(nouns,[ee_subregion])])] */
/* mu_create_object( x(sw_subregion,i1), [
  [ shape=sw_subregion, traits([sw_subregion]),inherit(sw_subregion,t), 
    sp(nouns,[sw_subregion])])] */
/* mu_create_object( x(ss_subregion,i1), [
  [ shape=ss_subregion, traits([ss_subregion]),inherit(ss_subregion,t), 
    sp(nouns,[ss_subregion])])] */
/* mu_create_object( x(se_subregion,i1), [
  [ shape=se_subregion, traits([se_subregion]),inherit(se_subregion,t), 
    sp(nouns,[se_subregion])])] */
=============================================
=============================================
INIT STATE
=============================================
totalTime=10.000

FAILED: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k adv_test_02.pl (returned 137) Add_LABELS='Errors,Overtime' Rem_LABELS='Skipped,Skipped,Warnings,Skipped'

ISSUE_INFO=704	OPEN	logicmoo.agi.agi_test.adv_story.ADV_TEST_02 JUnit	Test_9999, unit_test, Failing, Errors, Overtime, logicmoo.agi.agi_test.adv_story, ADV_TEST_02	2021-09-26 22:45:36 +0000 UTC
ISSUE_ID=704
ISSUE_OC=OPEN
Editing Issue For FAILED 704	OPEN	logicmoo.agi.agi_test.adv_story.ADV_TEST_02 JUnit	Test_9999, unit_test, Failing, Errors, Overtime, logicmoo.agi.agi_test.adv_story, ADV_TEST_02	2021-09-26 22:45:36 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/704
FileTestCase=logicmoo.agi.agi_test.adv_story.ADV_TEST_01 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['adv_test_01.pl']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/t/agi_tests/adv_story ; timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['adv_test_01.pl']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_agi/t/agi_tests/adv_story/adv_test_01.pl 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.agi.agi_test.adv_story/ADV_TEST_01/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AADV_TEST_01 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/703 


%~ init_phase(after_load)
%~ init_phase(restore_state)
%
%~ init_why(after_boot,program)
%~ READONLY PACKAGES
%~ READONLY PACKAGES
%~ READONLY PACKAGES
%~ after_boot.
%~ Dont forget to ?- logicmoo_i_cyc_xform.
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:44 
%~ message_hook_type(warning)
%~ message_hook(
%~    redefined_procedure(static,mu:aXiom/1),
%~    warning,
%~    [ 'Redefined ~w procedure ~p' - [ static,
%~                                      mu : aXiom/1]])
%~ source_location('/var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl',44)
Redefined static procedure mu:(aXiom/1)
Warning: /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:44:
Warning:    Redefined static procedure mu:(aXiom/1)
/* ==>>(will_need_touch(Agent,Thing),h(spatial,touchable,Agent,Thing)) */
%~ will_need_touch(Agent,Thing,A9,B9) :-
%~ 
%~   h(spatial,touchable,Agent,Thing,A9,B9).
%~ will_need_touch(Touchable_Will_need_touch5,Will_need_touch4,Will_need_touch,Touch) :-
%~ 
%~   h(spatial,touchable,Touchable_Will_need_touch5,Will_need_touch4,Will_need_touch,Touch).
/* ( will_need_touch(Agent,Thing) ==>> 
  ( can_sense(Agent,Sense_Agent2,Thing) , 
    h(spatial,touchable,Agent,Thing))) */
%~ will_need_touch(Agent,Thing,A9,C9) :-
%~   can_sense(Agent,Sense_Agent2,Thing,A9,B9) ,
%~   h(spatial,touchable,Agent,Thing,B9,C9).
:- multifile will_need_touch/4.

/* ( will_need_touch(Source_Agent_Touchable_Will_need_touch,Target_Thing_Touch) ==>> 
  ( can_sense(Source_Agent_Touchable_Will_need_touch,Can_senseWill_need_touch,Target_Thing_Touch) , 
    h(spatial,touchable,Source_Agent_Touchable_Will_need_touch,Target_Thing_Touch))) */
%~ will_need_touch(Agent_Touchable_Will_need_touch,Thing,A9,C9) :-
%~   can_sense( Agent_Touchable_Will_need_touch,
%~     Can_senseWill_need_touch, Thing,A9,B9) ,
%~   h(spatial,touchable,Agent_Touchable_Will_need_touch,Thing,B9,C9).
will_need_touch(Agent, Thing, A, B) :-
    can_sense(Agent, _, Thing, A, C),
    h(spatial, touchable, Agent, Thing, C, B).

/* ( eVent(Agent,Event) ==>> 
  send_1percept(Agent,Event),apply_aXioms(Event)) */
%~ eVent(Agent,Event,A9,C9) :-
%~   send_1percept(Agent,Event,A9,B9) ,
%~   must_mw1(apply_aXioms(Event),B9,C9).
/* ( aXiom(Action,_S0,_S9) ::= 
  xnotrace((\+trival_act(Action),dbug1(aXiom(Action)))),xnotrace(fail)) */
%~ aXiom(Action,_S0,_S9) :-
%~   xnotrace( \+trival_act(Action),dbug1(aXiom(Action))) ,
%~   xnotrace(fail).
/* ==>>(aXiom(Action),aXiom_p1(Action)) */
%~ aXiom(Action,A9,B9) :-
%~ 
%~   aXiom_p1(Action,A9,B9).
/* ==>>(aXiom(Action),aXiom_p2(Action)) */
%~ aXiom(Action,A9,B9) :-
%~ 
%~   aXiom_p2(Action,A9,B9).
/* ==>>(aXiom_p1((P1,P11)),(!,aXiom_p1(P1),aXiom_p1(P11))) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:71 
%~ aXiom_p1((_57744,_57746),A9,C9) :-
%~   ! ,
%~   A9=A9 ,
%~   aXiom_p1(_57744,A9,B9) ,
%~   aXiom_p1(_57746,B9,C9).
/* ==>>(aXiom_p1((P1;P11)),(!,(aXiom_p1(P1);aXiom_p1(P11)))) */
%~ aXiom_p1((_45140;_45142),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   aXiom_p1(_45140,A9,B9);aXiom_p1(_45142,A9,B9).
/* ==>>(aXiom_p1((P1->P11)),(!,(aXiom_p1(P1)->aXiom_p1(P11)))) */
%~ aXiom_p1((_29328->_29330),A9,C9) ->
%~   ! ,
%~   A9=A9 ,
%~   aXiom_p1(_29328,A9,B9) ->
%~ 
%~     aXiom_p1(_29330,B9,C9).
/* ==>>(aXiom_p1(true),!) */
%~ aXiom_p1(true,A9,B9) :-
%~   ! ,
%~   B9=A9.
/* ( aXiom_p1( P1_Xx_c62*->P1;P1_Xx_c621) ==>> 
  !,(aXiom_p1(P1_Xx_c62)*->aXiom_p1(P1);aXiom_p1(P1_Xx_c621))) */
%~ aXiom_p1((Xx_c62*->Xx_c622;Xx_c621),A9,C9) :-
%~   ! ,
%~   A9=A9 ,
%~   ( aXiom_p1(Xx_c62,A9,B9)*->aXiom_p1(Xx_c622,B9,C9) ;
%~     aXiom_p1(Xx_c621,A9,C9)).
/* ( aXiom_p1( P1_Xx_c623*->P1) ==>> 
  !,(aXiom_p1(P1_Xx_c623)*->aXiom_p1(P1))) */
%~ aXiom_p1((Xx_c623*->Xx_c6234),A9,C9) :-
%~   ! ,
%~   A9=A9 ,
%~   aXiom_p1(Xx_c623,A9,B9)*->aXiom_p1(Xx_c6234,B9,C9).
/* ( aXiom_p2(Action) ==>> 
  ( { implications(DoesEvent,Action,Preconds,Postconds), 
      action_doer(Action,Agent) }  ,
    satisfy_each(preCond(_1),Preconds) , 
    ( sg(member(failed(Why))),send_1percept(Agent,failed(Action,Why)) ; 
      satisfy_each(postCond(_2),Postconds),send_1percept(Agent,Action)) , 
    { episodic_mem(Agent,implications(DoesEvent,Action,Preconds,Postconds)) } , 
    { dbug1( used_implications(DoesEvent,Action,Preconds,Postconds)) } , 
    !)) */
%~ aXiom_p2(Action,A9,I9) :-
%~   implications(DoesEvent,Action,Preconds,Postconds) ,
%~   action_doer(Action,Agent) ,
%~   H9=A9 ,
%~   satisfy_each(preCond(_1),Preconds,H9,G9) ,
%~   ( ( sg(member(failed(Why)),G9,F9) ,
%~       send_1percept(Agent,failed(Action,Why),F9,E9)) ;
%~     ( satisfy_each(postCond(_2),Postconds,G9,D9) ,
%~       send_1percept(Agent,Action,D9,E9))) ,
%~   episodic_mem( Agent,
%~     implications(DoesEvent,Action,Preconds,Postconds)) ,
%~   C9=E9 ,
%~   dbug1( used_implications(DoesEvent,Action,Preconds,Postconds)) ,
%~   B9=C9 ,
%~   ! ,
%~   I9=B9.
/* ( aXiom_p1(Action) ==>> 
  ( { oper_splitk(Agent,Action,Preconds,Postconds) }  ,
    { dbug1( using_oper_splitk(Agent,Action,Preconds,Postconds)) } , 
    satisfy_each(preCond(_1),Preconds) , 
    ( sg(member(failed(Why))),send_1percept(Agent,failed(Action,Why)) ; 
      ( satisfy_each(postCond(_2),Postconds) , 
        send_1percept(Agent,success(Action)))) , 
    { dbug1( used_oper_splitk(Agent,Action,Preconds,Postconds)) } , 
    !)) */
%~ aXiom_p1(Action,A9,I9) :-
%~   oper_splitk(Agent,Action,Preconds,Postconds) ,
%~   H9=A9 ,
%~   dbug1( using_oper_splitk(Agent,Action,Preconds,Postconds)) ,
%~   G9=H9 ,
%~   satisfy_each(preCond(_1),Preconds,G9,F9) ,
%~   ( ( sg(member(failed(Why)),F9,E9) ,
%~       send_1percept(Agent,failed(Action,Why),E9,D9)) ;
%~     ( satisfy_each(postCond(_2),Postconds,F9,C9) ,
%~       send_1percept(Agent,success(Action),C9,D9))) ,
%~   dbug1( used_oper_splitk(Agent,Action,Preconds,Postconds)) ,
%~   B9=D9 ,
%~   ! ,
%~   I9=B9.
/* ( aXiom_p2(Action,S,E) ::= 
  ( append_termlist(Action,[S,E],ActionSE)  ,
    current_predicate(_15778,mu:ActionSE) , 
    adv_safe_to_call(ActionSE) , 
    ! , 
    call(Action,S,E))) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:107 
%~ aXiom_p2(Action,S,E) :-
%~   append_termlist(Action,[S,E],ActionSE) ,
%~   current_predicate(Kw,mu:ActionSE) ,
%~   adv_safe_to_call(ActionSE) ,
%~   ! ,
%~   call(Action,S,E).
/* ( aXiom_p2(Action,S,E) ::= 
  ( current_predicate(Kw,mu:Action)  ,
    ! , 
    adv_safe_to_call(Action) , 
    call(Action) , 
    S=E)) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:114 
%~ aXiom_p2(Action,S,E) :-
%~   current_predicate(Kw,mu:Action) ,
%~   ! ,
%~   adv_safe_to_call(Action) ,
%~   call(Action) ,
%~   S=E.
/* ( aXiom_p1(Action) ==>> 
  ( action_doer(Action,Agent)  ,
    invoke_introspect(Agent,Action,Answer) , 
    send_1percept(Agent,[answer(Answer),Answer]) , 
    !)) */
%~ aXiom_p1(Action,A9,E9) :-
%~   action_doer(Action,Agent,A9,D9) ,
%~   invoke_introspect(Agent,Action,Answer,D9,C9) ,
%~   send_1percept(Agent,[answer(Answer),Answer],C9,B9) ,
%~   ! ,
%~   E9=B9.
/* ( aXiom_p1( print_(Agent,Msg)) ==>> 
  ( h(spatial,descended,Agent,Here) , 
    queue_local_event(msg_from(Agent,Msg),[Here]))) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:130 
%~ aXiom_p1(print_(Agent,Msg),A9,C9) :-
%~   h(spatial,descended,Agent,Here,A9,B9) ,
%~   queue_local_event(msg_from(Agent,Msg),[Here],B9,C9).
/* ( aXiom_p1( attempts(Agent,act3(wait,Agent,[]))) ==>> 
  from_loc(Agent,Here),queue_local_event(time_passes(Agent),Here)) */
%~ aXiom_p1(attempts(Agent,act3(wait,Agent,[])),A9,C9) :-
%~   from_loc(Agent,Here,A9,B9) ,
%~   queue_local_event(time_passes(Agent),Here,B9,C9).
/* ( aXiom_p1( attempts(Agent,act3(english,Agent,[English]))) ==>> 
  eng2cmd(Agent,English,Action),add_intent(Agent,Action)) */
%~ aXiom_p1(attempts(Agent,act3(english,Agent,[English])),A9,C9) :-
%~   eng2cmd(Agent,English,Action,A9,B9) ,
%~   add_intent(Agent,Action,B9,C9).
/* ( aXiom_p1( intent_english(Agent,English)) ==>> 
  !,{assertz(mu_global:console_tokens(Agent,English))}) */
%~ aXiom_p1(intent_english(Agent,English),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   assertz( mu_global : console_tokens(Agent,English)) ,
%~   B9=A9.
/* ( aXiom_p1( attempts(Agent,act3(talk,Agent,[Object,Message]))) ==>> 
  ( can_sense(Agent,audio,Object)  ,
    from_loc(Agent,Here) , 
    queue_local_event( 
       [ did( Agent, 
           act3(talk,Agent,[Here,Object,Message]))], 
       [Here]))) */
%~ aXiom_p1(
%~    attempts(Agent,act3(talk,Agent,[Object,Message])), A9,D9) :-
%~   can_sense(Agent,audio,Object,A9,C9) ,
%~   from_loc(Agent,Here,C9,B9) ,
%~   queue_local_event(
%~      [ did( Agent,
%~          act3(talk,Agent,[Here,Object,Message]))], [Here],B9,D9).
/* ( aXiom_p1( say(Agent,Message)) ==>> 
  ( from_loc(Agent,Here) , 
    queue_local_event( 
       [ did(Agent,act3(talk,Agent,[Here,*,Message]))], 
       [Here]))) */
%~ aXiom_p1(say(Agent,Message),A9,C9) :-
%~   from_loc(Agent,Here,A9,B9) ,
%~   queue_local_event(
%~      [ did(Agent,act3(talk,Agent,[Here,*,Message]))], [Here],B9,C9).
/* ( aXiom_p1( attempts( Agent, 
              act3(emote,Agent,[EmoteType,Object,Message]))) ==>> 
  ( !  ,
    from_loc(Agent,Here) , 
    queue_local_event( 
       [ act3(emote,Agent,[EmoteType,Object,Message])], 
       [Here]))) */
%~ aXiom_p1(
%~    attempts( Agent,
%~      act3(emote,Agent,[EmoteType,Object,Message])), A9,C9) :-
%~   ! ,
%~   A9=A9 ,
%~   from_loc(Agent,Here,A9,B9) ,
%~   queue_local_event(
%~      [ act3(emote,Agent,[EmoteType,Object,Message])], [Here],B9,C9).
/* ( aXiom_p1( terminates( h(Spatially,Prep,Object,Here))) ==>> 
  !,undeclare(h(Spatially,Prep,Object,Here))) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:163 
%~ aXiom_p1(terminates(h(Spatially,Prep,Object,Here)),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   undeclare(h(Spatially,Prep,Object,Here),A9,B9).
/* ( aXiom_p1( attempts( Agent, 
              act3(go__prep_obj,Agent,[Walk,At,Object]))) ==>> 
  ( will_need_touch(Agent,Object)  ,
    has_rel(At,Object) , 
    \+( is_closed(At,Object)) , 
    eVent( Agent, 
      event3( arrive, 
        [At,Agent,Object], 
        [Walk,At])))) */
%~ aXiom_p1(
%~    attempts( Agent,
%~      act3(go__prep_obj,Agent,[Walk,At,Object])), A9,F9) :-
%~   will_need_touch(Agent,Object,A9,E9) ,
%~   has_rel(At,Object,E9,D9) ,
%~   \+( is_closed(At,Object,D9,C9)) ,
%~   B9=D9 ,
%~   eVent( Agent,
%~     event3( arrive,
%~       [At,Agent,Object],
%~       [Walk,At]), B9,F9).
/* ( aXiom_p1( initiates( h(Spatially,Prep,Object,Dest))) ==>> 
  !,declare(h(Spatially,Prep,Object,Dest))) */
%~ aXiom_p1(initiates(h(Spatially,Prep,Object,Dest)),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   declare(h(Spatially,Prep,Object,Dest),A9,B9).
/* ==>>(aXiom_p1(status_msg(_Begin,_End)),[]) */
%~ aXiom_p1(status_msg(_Begin,_End),P1_Status_msg,P1_Status_msg) :-
%~ 
%~   true.
/* ( axiom_Recalc_e( 
     attempts(Agent,act3(go__obj,Agent,[Walk,Object])), 
     RECALC) ==>> 
  ( has_rel(At,Object) , 
    RECALC =  
         
      attempts( Agent, 
        act3(go__prep_obj,Agent,[Walk,At,Object])))) */
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(go__obj,Agent,[Walk,Object])), RECALC,A9,C9) :-
%~   has_rel(At,Object,A9,B9) ,
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(go__prep_obj,Agent,[Walk,At,Object])), B9,C9).
/* ( aXiom_p1( attempts(Agent,act3(go__loc,Agent,[_Walk,There]))) ==>> 
  ( has_rel(fn(exit,Fn_Exit),There) , 
    eVent(Agent,make_true(Agent,h(spatial,in,Agent,There))))) */
%~ aXiom_p1(
%~    attempts(Agent,act3(go__loc,Agent,[_Walk,There])), A9,C9) :-
%~   has_rel(fn(exit,Fn_Exit),There,A9,B9) ,
%~   eVent( Agent,
%~     make_true(Agent,h(spatial,in,Agent,There)), B9,C9).
/* ( aXiom_p1( make_true(Doer,h(spatial,in,Agent,There))) ==>> 
  ( { Doer==Agent }  ,
    has_rel(fn(exit,Fn_Exit),There) , 
    from_loc(Agent,Here) , 
    agent_thought_model(Agent,ModelData) , 
    { find_path(Doer,Here,There,Route,ModelData) } , 
    ! , 
    eVent( Agent, 
      follow_plan( Agent, 
        did(Agent,act3(go__loc,Agent,[walk,There])), 
        Route)))) */
%~ aXiom_p1(make_true(Doer,h(spatial,in,Agent,There)),A9,H9) :-
%~   Doer==Agent ,
%~   G9=A9 ,
%~   has_rel(fn(exit,Fn_Exit),There,G9,F9) ,
%~   from_loc(Agent,Here,F9,E9) ,
%~   agent_thought_model(Agent,ModelData,E9,D9) ,
%~   find_path(Doer,Here,There,Route,ModelData) ,
%~   C9=D9 ,
%~   ! ,
%~   B9=C9 ,
%~   eVent( Agent,
%~     follow_plan( Agent,
%~       did(Agent,act3(go__loc,Agent,[walk,There])),
%~       Route), B9,H9).
/* ==>>(aXiom_p1(make_true(Agent,FACT)),add_agent_goal(Agent,FACT)) */
%~ aXiom_p1(make_true(Agent,FACT),A9,B9) :-
%~ 
%~   add_agent_goal(Agent,FACT,A9,B9).
/* ==>>(aXiom_p1(add_intent(Agent,TODO)),add_agent_intent(Agent,TODO)) */
%~ aXiom_p1(add_intent(Agent,TODO),A9,B9) :-
%~ 
%~   add_agent_intent(Agent,TODO,A9,B9).
/* ( aXiom_p1( follow_plan(Agent,Name,[])) ==>> 
  !,send_1percept(Agent,[success(followed_plan(Agent,Name))])) */
%~ aXiom_p1(follow_plan(Agent,Name,[]),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   send_1percept( Agent,
%~     [ success( followed_plan(Agent,Name))], A9,B9).
/* ( aXiom_p1( follow_plan(Agent,Name,[Step])) ==>> 
  ( eVent(Agent,follow_step(Agent,Name,Step)) , 
    eVent(Agent,follow_plan(Agent,Name,CO_Route)))) */
%~ aXiom_p1(follow_plan(Agent,Name,[Step|Route]),A9,C9) :-
%~   eVent(Agent,follow_step(Agent,Name,Step),A9,B9) ,
%~   eVent(Agent,follow_plan(Agent,Name,Route),B9,C9).
/* ( aXiom_p1( follow_step(Agent,Name,Step)) ==>> 
  {dbug1(follow_step(Agent,Name,Step))},raise_aXiom_events(Step)) */
%~ aXiom_p1(follow_step(Agent,Name,Step),A9,C9) :-
%~   dbug1( follow_step(Agent,Name,Step)) ,
%~   B9=A9 ,
%~   raise_aXiom_events(Step,B9,C9).
/* ( axiom_Recalc_e(attempts(Agent,act3(take,Agent,[Thing])),RECALC) ==>> 
  ( ! , 
    RECALC =  
         
      attempts( Agent, 
        act3(put__via,Agent,[take,Thing,held_by,Agent])))) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:243 
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(take,Agent,[Thing])), RECALC,A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(put__via,Agent,[take,Thing,held_by,Agent])), A9,B9).
/* ( axiom_Recalc_e(attempts(Agent,act3(drop,Agent,[Thing])),RECALC) ==>> 
  ( !  ,
    dshow_failure( h(spatial,At,Agent,Here)) , 
    RECALC =  
         
      attempts( Agent, 
        act3(put__via,Agent,[drop,Thing,At,Here])))) */
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(drop,Agent,[Thing])), RECALC,A9,C9) :-
%~   ! ,
%~   A9=A9 ,
%~   dshow_failure(h(spatial,At,Agent,Here),A9,B9) ,
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(put__via,Agent,[drop,Thing,At,Here])), B9,C9).
/* ( axiom_Recalc_e( 
     attempts( Agent, 
       act3(put,Agent,[Thing1,PrepAt,Thing2])), 
     RECALC) ==>> 
  RECALC =  
       
    attempts( Agent, 
      act3(put__via,Agent,[put,Thing1,PrepAt,Thing2]))) */
%~ axiom_Recalc_e(
%~    attempts( Agent,
%~      act3(put,Agent,[Thing1,PrepAt,Thing2])), RECALC,A9,B9) :-
%~ 
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(put__via,Agent,[put,Thing1,PrepAt,Thing2])), A9,B9).
/* ( axiom_Recalc_e( 
     attempts(Agent,act3(give,Agent,[Thing,Recipient])), 
     RECALC) ==>> 
  RECALC =  
       
    attempts( Agent, 
      act3(put__via,Agent,[give,Thing,held_by,Recipient]))) */
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(give,Agent,[Thing,Recipient])), RECALC,A9,B9) :-
%~ 
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(put__via,Agent,[give,Thing,held_by,Recipient])), A9,B9).
/* ( aXiom_p1( attempts( Agent, 
              act3( put__via, 
                Agent, 
                [How,Thing1,Prep,Thing2]))) ==>> 
  ( {fail}  ,
    ! , 
    dshow_failure( prep_to_rel(Thing2,Prep,At)) , 
    from_loc(Agent,Here) , 
    dshow_failure( has_rel(At,Thing2)) , 
    dshow_failure( will_need_touch(Agent,Thing2)) , 
    moveto( Agent, 
      How, Thing1,At,Thing2, 
      [Here], 
      [ cap( subj(Agent)), 
        person(How,es(How)), Thing1,At,Thing2, 
        '.']))) */
%~ aXiom_p1(
%~    attempts( Agent,
%~      act3( put__via,
%~        Agent,
%~        [How,Thing1,Prep,Thing2])), A9,H9) :-
%~   fail ,
%~   G9=A9 ,
%~   ! ,
%~   F9=G9 ,
%~   dshow_failure(prep_to_rel(Thing2,Prep,At),F9,E9) ,
%~   from_loc(Agent,Here,E9,D9) ,
%~   dshow_failure(has_rel(At,Thing2),D9,C9) ,
%~   dshow_failure(will_need_touch(Agent,Thing2),C9,B9) ,
%~   moveto( Agent,
%~     How, Thing1,At,Thing2,
%~     [Here],
%~     [ cap( subj(Agent)), person(How,es(How)),Thing1,
%~       At,Thing2,'.'], B9,H9).
/* ( axiom_Recalc_e( 
     attempts(Agent,act3(throw_dir,Agent,[Thing,ExitName])), 
     RECALC) ==>> 
  ( from_loc(Agent,Here) , 
    RECALC =  
         
      attempts( Agent, 
        act3(throw_prep_obj,Agent,[Thing,ExitName,Here])))) */
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(throw_dir,Agent,[Thing,ExitName])), RECALC,A9,C9) :-
%~   from_loc(Agent,Here,A9,B9) ,
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(throw_prep_obj,Agent,[Thing,ExitName,Here])), B9,C9).
/* ( axiom_Recalc_e( 
     attempts(Agent,act3(throw_at,Agent,[Thing,Target])), 
     RECALC) ==>> 
  RECALC =  
       
    attempts( Agent, 
      act3(throw_prep_obj,Agent,[Thing,at,Target]))) */
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(throw_at,Agent,[Thing,Target])), RECALC,A9,B9) :-
%~ 
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(throw_prep_obj,Agent,[Thing,at,Target])), A9,B9).
/* ( axiom_Recalc_e( 
     attempts( Agent, 
       act3(throw_prep_obj,Agent,[Thing,Prep,Target])), 
     RECALC) ==>> 
  ( prep_to_rel(Target,Prep,Rel) , 
    RECALC =  
         
      attempts( Agent, 
        act3(put,Agent,[throw,Thing,Rel,Target])))) */
%~ axiom_Recalc_e(
%~    attempts( Agent,
%~      act3(throw_prep_obj,Agent,[Thing,Prep,Target])), RECALC,A9,C9) :-
%~   prep_to_rel(Target,Prep,Rel,A9,B9) ,
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(put,Agent,[throw,Thing,Rel,Target])), B9,C9).
/* ( axiom_Recalc_e( 
     attempts( Agent, 
       act3(throw,Agent,[Thing,Prep,Target])), 
     RECALC) ==>> 
  ( prep_to_rel(Target,Prep,Rel);Prep=Rel , 
    RECALC =  
         
      attempts( Agent, 
        act3(put,Agent,[throw,Thing,Rel,Target])))) */
%~ axiom_Recalc_e(
%~    attempts( Agent,
%~      act3(throw,Agent,[Thing,Prep,Target])), RECALC,A9,C9) :-
%~   ( prep_to_rel(Target,Prep,Rel,A9,B9) ;
%~     =(Prep,Rel,A9,B9)) ,
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(put,Agent,[throw,Thing,Rel,Target])), B9,C9).
/* ( aXiom_p1( attempts( Agent, 
              act3(throw,Agent,[Thing,At,Target]))) ==>> 
  ( will_need_touch(Agent,Thing)  ,
    can_sense(Agent,see,Target) , 
    eVent( Agent, 
      act3(throw,Agent,[Thing,At,Target])))) */
%~ aXiom_p1(
%~    attempts( Agent,
%~      act3(throw,Agent,[Thing,At,Target])), A9,D9) :-
%~   will_need_touch(Agent,Thing,A9,C9) ,
%~   can_sense(Agent,see,Target,C9,B9) ,
%~   eVent( Agent,
%~     act3(throw,Agent,[Thing,At,Target]), B9,D9).
/* ( aXiom_p1( act3(throw,Agent,[Thing,AtTarget,Target])) ==>> 
  ( ignore( ( getprop(Thing,breaks_into(Broken))  ,
              dbug(general,'object ~p is breaks_into~n',[Thing]) , 
              eVent(Agent,thing_transforms(Thing,Broken)))) , 
    eVent( Agent, 
      disgorge( Agent, 
        do_throw, Target,AtTarget,Target, 
        [Target],'Something falls out.')))) */
%~ aXiom_p1(
%~    act3(throw,Agent,[Thing,AtTarget,Target]), A9,C9) :-
%~   ignore(
%~      ( getprop(Thing,breaks_into(Broken))  ,
%~        dbug(general,'object ~p is breaks_into~n',[Thing]) ,
%~        eVent(Agent,thing_transforms(Thing,Broken))), A9,B9) ,
%~   eVent( Agent,
%~     disgorge( Agent,
%~       do_throw, Target,AtTarget,Target,
%~       [Target],'Something falls out.'), B9,C9).
/* ( aXiom_p1( thing_transforms(Thing,Broken)) ==>> 
  ( undeclare( h(Spatial,At,Thing,Here))  ,
    declare( h(Spatial,At,Broken,Here)) , 
    queue_local_event([transformed(Thing,Broken)],Here))) */
%~ aXiom_p1(thing_transforms(Thing,Broken),A9,D9) :-
%~   undeclare(h(Spatial,At,Thing,Here),A9,C9) ,
%~   declare(h(Spatial,At,Broken,Here),C9,B9) ,
%~   queue_local_event([transformed(Thing,Broken)],Here,B9,D9).
/* ( aXiom_p1( attempts(Agent,act3(hit_with,Agent,[Thing,With]))) ==>> 
  ( from_loc(Agent,Here)  ,
    invoke_hit(Agent,Thing,With,[Here]) , 
    send_1percept(Agent,[true,'OK.']))) */
%~ aXiom_p1(
%~    attempts(Agent,act3(hit_with,Agent,[Thing,With])), A9,D9) :-
%~   from_loc(Agent,Here,A9,C9) ,
%~   invoke_hit(Agent,Thing,With,[Here],C9,B9) ,
%~   send_1percept(Agent,[true,'OK.'],B9,D9).
/* ( aXiom_p1( attempts(Agent,act3(hit,Agent,[Thing]))) ==>> 
  ( from_loc(Agent,Here)  ,
    invoke_hit(Agent,Thing,Agent,[Here]) , 
    send_1percept(Agent,[true,'OK.']))) */
%~ aXiom_p1(attempts(Agent,act3(hit,Agent,[Thing])),A9,D9) :-
%~   from_loc(Agent,Here,A9,C9) ,
%~   invoke_hit(Agent,Thing,Agent,[Here],C9,B9) ,
%~   send_1percept(Agent,[true,'OK.'],B9,D9).
/* ( invoke_hit(Doer,Target,_With,Vicinity) ==>> 
  ignore( ( getprop(Target,breaks_into(Broken))  ,
            dbug(general,'target ~p is breaks_into~n',[Target]) , 
            undeclare( h(Spatial,Prep,Target,Here)) , 
            queue_local_event([transformed(Target,Broken)],Vicinity) , 
            declare( h(Spatial,Prep,Broken,Here)) , 
            disgorge(Doer,hit,Target,Prep,Here,Vicinity,'Something falls out.')))) */
%~ invoke_hit(Doer,Target,_With,Vicinity,A9,B9) :-
%~ 
%~   ignore(
%~      ( getprop(Target,breaks_into(Broken))  ,
%~        dbug(general,'target ~p is breaks_into~n',[Target]) ,
%~        undeclare( h(Spatial,Prep,Target,Here)) ,
%~        queue_local_event([transformed(Target,Broken)],Vicinity) ,
%~        declare( h(Spatial,Prep,Broken,Here)) ,
%~        disgorge(Doer,hit,Target,Prep,Here,Vicinity,'Something falls out.')), A9,B9).
/* ( aXiom_p1( attempts( Agent, 
              act3(dig,Agent,[Hole,Where,Tool]))) ==>> 
  ( { memberchk(Hole,[hole,trench,pit,ditch]), 
      memberchk(Where,[garden]), 
      memberchk(Tool,[shovel,spade]) }  ,
    open_traverse(Tool,Agent) , 
    from_loc(Agent,Where) , 
    \+( h(spatial,_At,Hole,Where)) , 
    declare( h(spatial,in,Hole,Where)) , 
    setprop(Hole,default_rel=in) , 
    setprop(Hole,can_be(move,f)) , 
    setprop(Hole,can_be(take,f)) , 
    declare( h(spatial,in,dirt,Where)) , 
    queue_event( [ created(Hole,Where), 
                   [ cap( subj(Agent)), person(dig,digs),a,Hole,'in the', 
                     Where,'.']]))) */
%~ aXiom_p1(
%~    attempts( Agent,
%~      act3(dig,Agent,[Hole,Where,Tool])), A9,L9) :-
%~   memberchk(Hole,[hole,trench,pit,ditch]) ,
%~   memberchk(Where,[garden]) ,
%~   memberchk(Tool,[shovel,spade]) ,
%~   K9=A9 ,
%~   open_traverse(Tool,Agent,K9,J9) ,
%~   from_loc(Agent,Where,J9,I9) ,
%~   \+( h(spatial,_At,Hole,Where,I9,H9)) ,
%~   G9=I9 ,
%~   declare(h(spatial,in,Hole,Where),G9,F9) ,
%~   setprop(Hole,default_rel=in,F9,E9) ,
%~   setprop(Hole,can_be(move,f),E9,D9) ,
%~   setprop(Hole,can_be(take,f),D9,C9) ,
%~   declare(h(spatial,in,dirt,Where),C9,B9) ,
%~   queue_event(
%~      [ created(Hole,Where),
%~        [ cap( subj(Agent)), person(dig,digs),a,Hole,'in the',
%~          Where,'.']], B9,L9).
/* ( aXiom_p1( attempts(Agent,act3(eat,Agent,[Thing]))) ==>> 
  ( getprop(Thing,can_be(eat,t)) ->  
         
      ( undeclare( h(spatial,_1,Thing,_2)) , 
        send_1percept(Agent,[destroyed(Thing),'Mmmm, good!'])) ; 
    send_1percept( Agent, [
      [ failure( attempts(Agent,act3(eat,Agent,[Thing]))), 
        'It\'s inedible!'])])) */
%~ aXiom_p1(attempts(Agent,act3(eat,Agent,[Thing])),A9,D9) ->
%~ 
%~   ( getprop(Thing,can_be(eat,t),A9,C9) ->
%~       undeclare(h(spatial,_1,Thing,_2),C9,B9) ,
%~       send_1percept(Agent,[destroyed(Thing),'Mmmm, good!'],B9,D9) ;
%~     send_1percept( Agent,
%~       [ failure( attempts(Agent,act3(eat,Agent,[Thing]))),
%~         'It\'s inedible!'], A9,D9)).
/* ( aXiom_p1( attempts(Agent,act3(switch,Agent,[OnOff,Thing]))) ==>> 
  ( will_need_touch(Agent,Thing)  ,
    getprop(Thing,can_be(switch(OnOff),t)) , 
    getprop(Thing,effect(switch(OnOff),Term0)) , 
    { adv_subst(equivalent,$self,Thing,Term0,Term) } , 
    call(Term) , 
    send_1percept(Agent,[success(true,'OK')]))) */
%~ aXiom_p1(
%~    attempts(Agent,act3(switch,Agent,[OnOff,Thing])), A9,G9) :-
%~   will_need_touch(Agent,Thing,A9,F9) ,
%~   getprop(Thing,can_be(switch(OnOff),t),F9,E9) ,
%~   getprop(Thing,effect(switch(OnOff),Term0),E9,D9) ,
%~   adv_subst(equivalent,$self,Thing,Term0,Term) ,
%~   C9=D9 ,
%~   call(Term,C9,B9) ,
%~   send_1percept(Agent,[success(true,'OK')],B9,G9).
/* ( axiom_Recalc_e(attempts(Agent,act3(inventory,Who,[])),RECALC) ==>> 
  RECALC =  
       
    attempts(Agent,act3(examine,Agent,[Who]))) */
%~ axiom_Recalc_e(attempts(Agent,act3(inventory,Who,[])),RECALC,A9,B9) :-
%~ 
%~   =( RECALC,
%~     attempts(Agent,act3(examine,Agent,[Who])), A9,B9).
/* ( axiom_Recalc_e(attempts(Agent,act3(look,Agent,[])),RECALC) ==>> 
  ( h(spatial,At,Agent,Here) , 
    RECALC =  
         
      attempts( Agent, 
        act3(examine__D3,Agent,[see,At,Here])))) */
%~ axiom_Recalc_e(attempts(Agent,act3(look,Agent,[])),RECALC,A9,C9) :-
%~   h(spatial,At,Agent,Here,A9,B9) ,
%~   =( RECALC,
%~     attempts(Agent,act3(examine__D3,Agent,[see,At,Here])), B9,C9).
/* ( axiom_Recalc_e(attempts(Agent,act3(examine,Agent,[Sense])),RECALC) ==>> 
  ( { is_sense(Sense) }  ,
    ! , 
    from_loc(Agent,Place) , 
    RECALC =  
         
      attempts(Agent,act3(examine__D3,Agent,[see,in,Place])))) */
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(examine,Agent,[Sense])), RECALC,A9,E9) :-
%~   is_sense(Sense) ,
%~   D9=A9 ,
%~   ! ,
%~   C9=D9 ,
%~   from_loc(Agent,Place,C9,B9) ,
%~   =( RECALC,
%~     attempts(Agent,act3(examine__D3,Agent,[see,in,Place])), B9,E9).
/* ( axiom_Recalc_e(attempts(Agent,act3(examine,Agent,[Object])),RECALC) ==>> 
  RECALC =  
       
    attempts(Agent,act3(examine__D3,Agent,[see,at,Object]))) */
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(examine,Agent,[Object])), RECALC,A9,B9) :-
%~ 
%~   =( RECALC,
%~     attempts(Agent,act3(examine__D3,Agent,[see,at,Object])), A9,B9).
/* ( axiom_Recalc_e( 
     attempts(Agent,act3(examine,Agent,[Sense,Object])), 
     RECALC) ==>> 
  ( RECALC =  
         
      attempts( Agent, 
        act3(examine__D3,Agent,[Sense,at,Object])) , 
    !)) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:374 
%~ axiom_Recalc_e(
%~    attempts(Agent,act3(examine,Agent,[Sense,Object])), RECALC,A9,C9) :-
%~   =( RECALC,
%~     attempts(Agent,act3(examine__D3,Agent,[Sense,at,Object])), A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( axiom_Recalc_e( 
     attempts( Agent, 
       act3(examine,Agent,[Sense,Prep,Object])), 
     RECALC) ==>> 
  ( RECALC =  
         
      attempts( Agent, 
        act3(examine__D3,Agent,[Sense,Prep,Object])) , 
    !)) */
%~ axiom_Recalc_e(
%~    attempts( Agent,
%~      act3(examine,Agent,[Sense,Prep,Object])), RECALC,A9,C9) :-
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(examine__D3,Agent,[Sense,Prep,Object])), A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( axiom_Recalc_e( 
     attempts( Agent, 
       act3( examine, 
         Agent, 
         [Sense,Prep,Object,Depth])), 
     RECALC) ==>> 
  ( RECALC =  
         
      attempts( Agent, 
        act3( examine__D3, 
          Agent, 
          [Sense,Prep,Object,Depth])) , 
    !)) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_axiom.pl:377 
%~ axiom_Recalc_e(
%~    attempts( Agent,
%~      act3( examine,
%~        Agent,
%~        [Sense,Prep,Object,Depth])), RECALC,A9,C9) :-
%~   =( RECALC,
%~     attempts( Agent,
%~       act3( examine__D3,
%~         Agent,
%~         [Sense,Prep,Object,Depth])), A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( axiom_Recalc_e( 
     attempts( Agent, 
       act3(examine__D3,Agent,[Sense,Prep,Object])), 
     RECALC) ==>> 
  ( RECALC =  
         
      attempts( Agent, 
        act3(examine__D5,Agent,[Sense,Prep,Object,3])) , 
    !)) */
%~ axiom_Recalc_e(
%~    attempts( Agent,
%~      act3(examine__D3,Agent,[Sense,Prep,Object])), RECALC,A9,C9) :-
%~   =( RECALC,
%~     attempts( Agent,
%~       act3(examine__D5,Agent,[Sense,Prep,Object,3])), A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( axiom_Recalc_e( 
     attempts( Agent, 
       act3( examine__D3, 
         Agent, 
         [Sense,Prep,Object,Depth])), 
     RECALC) ==>> 
  ( RECALC =  
         
      attempts( Agent, 
        act3( examine__D5, 
          Agent, 
          [Sense,Prep,Object,Depth])) , 
    !)) */
%~ axiom_Recalc_e(
%~    attempts( Agent,
%~      act3( examine__D3,
%~        Agent,
%~        [Sense,Prep,Object,Depth])), RECALC,A9,C9) :-
%~   =( RECALC,
%~     attempts( Agent,
%~       act3( examine__D5,
%~         Agent,
%~         [Sense,Prep,Object,Depth])), A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( aXiom_p1( attempts( Agent, 
              act3( examine__D5, 
                Agent, 
                [Sense,Prep,Object,Depth]))) ==>> 
  ( \+( sg( can_sense_here(Agent,Sense)))  ,
    ! , 
    raise_aXiom_events( failed( 
                           did( Agent, 
                             act3( examine, 
                               Agent, 
                               [Sense,Prep,Object,Depth])), 
                           \+( can_sense_here(Agent,Sense)))))) */
%~ aXiom_p1(
%~    attempts( Agent,
%~      act3( examine__D5,
%~        Agent,
%~        [Sense,Prep,Object,Depth])), A9,E9) :-
%~   \+( sg(can_sense_here(Agent,Sense),A9,D9)) ,
%~   C9=A9 ,
%~   ! ,
%~   B9=C9 ,
%~   raise_aXiom_events(
%~      failed(
%~         did( Agent,
%~           act3( examine,
%~             Agent,
%~             [Sense,Prep,Object,Depth])),
%~         \+( can_sense_here(Agent,Sense))), B9,E9).
/* ( aXiom_p1( attempts( Agent, 
              act3( examine__D5, 
                Agent, 
                [Sense,Prep,Object,Depth]))) ==>> 
  ( \+( sg( can_sense(Agent,Sense,Object)))  ,
    ! , 
    raise_aXiom_events( failed( 
                           did( Agent, 
                             act3( examine, 
                               Agent, 
                               [Sense,Prep,Object,Depth])), 
                           \+( can_sense(Agent,Sense,Object)))))) */
%~ aXiom_p1(
%~    attempts( Agent,
%~      act3( examine__D5,
%~        Agent,
%~        [Sense,Prep,Object,Depth])), A9,E9) :-
%~   \+( sg(can_sense(Agent,Sense,Object),A9,D9)) ,
%~   C9=A9 ,
%~   ! ,
%~   B9=C9 ,
%~   raise_aXiom_events(
%~      failed(
%~         did( Agent,
%~           act3( examine,
%~             Agent,
%~             [Sense,Prep,Object,Depth])),
%~         \+( can_sense(Agent,Sense,Object))), B9,E9).
/* ( aXiom_p1( attempts( Agent, 
              act3( examine__D5, 
                Agent, 
                [Sense,Prep,Object,Depth]))) ==>> 
  act_examine(Agent,Sense,Prep,Object,Depth),!) */
%~ aXiom_p1(
%~    attempts( Agent,
%~      act3( examine__D5,
%~        Agent,
%~        [Sense,Prep,Object,Depth])), A9,C9) :-
%~   must_mw1(
%~      act_examine(Agent,Sense,Prep,Object,Depth), A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( aXiom_p1( attempts(Agent,act3(touch,Agent,[Thing]))) ==>> 
  ( ! , 
    unless_reason( Agent, 
      will_need_touch(Agent,Thing), 
      cant( reach(Agent,Thing)), 
      send_1percept(Agent,[success(act3(touch,Agent,[Thing]),'Ok.')])))) */
%~ aXiom_p1(attempts(Agent,act3(touch,Agent,[Thing])),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   unless_reason( Agent,
%~     will_need_touch(Agent,Thing),
%~     cant( reach(Agent,Thing)),
%~     send_1percept(Agent,[success(act3(touch,Agent,[Thing]),'Ok.')]), A9,B9).
/* ( aXiom_p1( change_state(Agent,Action,Thing,Prop)) ==>> 
  !,change_state(Agent,Action,Thing,Prop)) */
%~ aXiom_p1(change_state(Agent,Action,Thing,Prop),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   change_state(Agent,Action,Thing,Prop,A9,B9).
/* ( aXiom_p1(Action,S0,S9) ::= 
  ( action_verb_agent_thing(Action,Verb,Agent,Thing)  ,
    nonvar(Verb) , 
    nonvar(Thing) , 
    nonvar(Agent) , 
    act_change_state_or_fallback(Verb,State,TF) , 
    ! , 
    eVent( Agent, 
      change_state(Agent,Action,Thing,State=TF), S0,S9) , 
    !)) */
%~ aXiom_p1(Action,S0,S9) :-
%~   action_verb_agent_thing(Action,Verb,Agent,Thing) ,
%~   nonvar(Verb) ,
%~   nonvar(Thing) ,
%~   nonvar(Agent) ,
%~   act_change_state_or_fallback(Verb,State,TF) ,
%~   ! ,
%~   eVent( Agent,
%~     change_state(Agent,Action,Thing,State=TF), S0,S9) ,
%~   !.
/* ( invoke_command(Requester,attempts(Agent,Action)) ==>> 
  ( { Requester==Agent }  ,
    invoke_command(Agent,Action) , 
    !)) */
%~ invoke_command(Requester,attempts(Agent,Action),A9,D9) :-
%~   Requester==Agent ,
%~   C9=A9 ,
%~   invoke_command(Agent,Action,C9,B9) ,
%~   ! ,
%~   D9=B9.
/* ( invoke_command(Agent,Action) ==>> 
  ( invoke_metacmd(Agent,Action)  ,
    { overwrote_prompt(Agent) } , 
    !)) */
%~ invoke_command(Agent,Action,A9,D9) :-
%~   invoke_metacmd(Agent,Action,A9,C9) ,
%~   overwrote_prompt(Agent) ,
%~   B9=C9 ,
%~   ! ,
%~   D9=B9.
/* ( invoke_command(Agent,Action) ==>> 
  ( { set_last_action(Agent,Action) }  ,
    agent_try_action(Agent,Action) , 
    !)) */
%~ invoke_command(Agent,Action,A9,D9) :-
%~   set_last_action(Agent,Action) ,
%~   C9=A9 ,
%~   agent_try_action(Agent,Action,C9,B9) ,
%~   ! ,
%~   D9=B9.
/* ( invoke_intents(Agent) ==>> 
  ( sg( declared( memories(Agent,Mem0)))  ,
    { member(intent(Agent,[]),Mem0) } , 
    !)) */
%~ invoke_intents(Agent,A9,D9) :-
%~   sg(declared(memories(Agent,Mem0)),A9,C9) ,
%~   member(intent(Agent,[]),Mem0) ,
%~   B9=C9 ,
%~   ! ,
%~   D9=B9.
/* ==>>(satisfy_each_cond(Ctxt,[],success(Ctxt)),!) */
%~ satisfy_each_cond(Ctxt,[],success(Ctxt),A9,B9) :-
%~   ! ,
%~   B9=A9.
/* ( satisfy_each_cond(Context,[Cond],Out) ==>> 
  ( satisfy_each(Context,Cond)  ,
    ! , 
    ( sg( member( failed(Why))) ->  
           
        Out =  
             
          failed(Why) ; 
      satisfy_each_cond(Context,CondList,Out)) , 
    !)) */
%~ satisfy_each_cond(Context,[Cond|CondList],Out,A9,F9) ->
%~   dmust_tracing(satisfy_each(Context,Cond),A9,E9) ,
%~   ! ,
%~   D9=E9 ,
%~   ( sg(member(failed(Why)),D9,C9) ->
%~ 
%~       =(Out,failed(Why),C9,B9) ;
%~     satisfy_each_cond(Context,CondList,Out,D9,B9)) ,
%~   ! ,
%~   F9=B9.
/* ==>>(satisfy_each2(Ctx,Cond),satisfy_each1(Ctx,Cond)) */
%~ satisfy_each2(Ctx,Cond,A9,B9) :-
%~ 
%~   satisfy_each1(Ctx,Cond,A9,B9).
/* ==>>(satisfy_each2(Cond3,Cond),[failed(Cond)]) */
%~ satisfy_each2( Cond2,
%~   Cond,
%~   [ failed(Cond) |
%~     Each2_Failed],
%~   Each2_Failed) :-
%~ 
%~   true.
/* ( satisfy_each1(_Context,h(spatial,P,_X,_Y)) ==>> 
  {P==takeable},!) */
%~ satisfy_each1(_Context,h(spatial,P,_X,_Y),A9,C9) :-
%~   P==takeable ,
%~   B9=A9 ,
%~   ! ,
%~   C9=B9.
/* ( satisfy_each1(Context,List) ==>> 
  ( { is_list(List) }  ,
    ! , 
    satisfy_each_cond(Context,List,Out) , 
    ! , 
    { Out\=failed(Failed) })) */
%~ satisfy_each1(Context,List,A9,F9) :-
%~   is_list(List) ,
%~   E9=A9 ,
%~   ! ,
%~   D9=E9 ,
%~   satisfy_each_cond(Context,List,Out,D9,C9) ,
%~   ! ,
%~   B9=C9 ,
%~   Out\=failed(Failed) ,
%~   F9=B9.
/* ==>>(satisfy_each1(_Ctx,A\=B),({dif(A,B)},!)) */
%~ satisfy_each1(_Ctx,A\=B,A9,C9) :-
%~   dif(A,B) ,
%~   B9=A9 ,
%~   ! ,
%~   C9=B9.
/* ==>>(satisfy_each1(_Ctxt,exists(Ex)),(!,{ground(Ex)})) */
%~ satisfy_each1(_Ctxt,exists(Ex),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   ground(Ex) ,
%~   B9=A9.
/* ( satisfy_each1(Context,believe(Beliver,Cond)) ==>> 
  ( pre_redeclare( memories(Beliver,Memory))  ,
    { satisfy_each_always(Context,Cond,Memory,NewMemory) } , 
    ! , 
    redeclare( memories(Beliver,NewMemory)))) */
%~ satisfy_each1(Context,believe(Beliver,Cond),A9,E9) :-
%~   pre_redeclare(memories(Beliver,Memory),A9,D9) ,
%~   satisfy_each_always(Context,Cond,Memory,NewMemory) ,
%~   C9=D9 ,
%~   ! ,
%~   B9=C9 ,
%~   redeclare(memories(Beliver,NewMemory),B9,E9).
/* ( satisfy_each1(Context,believe(_Beliver,Cond)) ==>> 
  ( !  ,
    satisfy_each(Context,Cond) , 
    !)) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:291 
%~ satisfy_each1(Context,believe(_Beliver,Cond),A9,C9) :-
%~   ! ,
%~   A9=A9 ,
%~   satisfy_each(Context,Cond,A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ==>>(satisfy_each1(postCond(_Action),~Cond),(!,undeclare_always(Cond))) */
%~ satisfy_each1(postCond(_Action),~Cond,A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   undeclare_always(Cond,A9,B9).
/* ( satisfy_each1(Ctx_Percept_local,percept_local(Where,Event)) ==>> 
  !,queue_local_event([Event],[Where])) */
%~ satisfy_each1(Percept_local,percept_local(Where,Event),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   queue_local_event([Event],[Where],A9,B9).
/* ( satisfy_each1(Ctx_Percept,percept(Agent,Event)) ==>> 
  !,send_1percept(Agent,Event)) */
%~ satisfy_each1(Percept,percept(Agent,Event),A9,B9) :-
%~   ! ,
%~   A9=A9 ,
%~   send_1percept(Agent,Event,A9,B9).
/* ( satisfy_each1(Context,~Cond) ==>> 
  !,(\+satisfy_each1(Context,Cond);[failed(Cond)])) */
%~ satisfy_each1(Context,~Cond,A9,C9) :-
%~   ! ,
%~   A9=A9 ,
%~   ( \+satisfy_each1(Context,Cond,A9,B9),C9=A9 ;
%~     A9 =
%~ 
%~       [ failed(Cond) |
%~         C9]).
/* ( satisfy_each1(Ctx_Call,call(Cond)) ==>> 
  declared(Cond)*->true;apply_aXioms(Cond)) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:308 
%~ satisfy_each1(Call,call(Cond),A9,C9) :-
%~ 
%~   ( declared(Cond,A9,B9)*->true(B9,C9) ;
%~     apply_aXioms(Cond,A9,C9)).
/* ==>>(satisfy_each1(Ctx_Cond1,Cond),(declared(Cond),!)) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:309 
%~ satisfy_each1(Cond1,Cond,A9,C9) :-
%~   declared(Cond,A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( satisfy_each1(postCond(_Action),Cond) ==>> 
  ( { old_figment(Cond,_F,_A,Old) }  ,
    undeclare_always(Old) , 
    ! , 
    declare(Cond))) */
%~ satisfy_each1(postCond(_Action),Cond,A9,D9) :-
%~   must(
%~      {old_figment(Cond,_F,_A,Old)},undeclare_always(Old), A9,C9) ,
%~   ! ,
%~   B9=C9 ,
%~   declare(Cond,B9,D9).
/* ==>>(api_invoke(Action),apply_aXioms(Action)) */
%~ api_invoke(Action,A9,B9) :-
%~ 
%~   apply_aXioms(Action,A9,B9).
/* ==>>(apply_aXioms(Action),(aXiom(Action),!)) */
%~ apply_aXioms(Action,A9,C9) :-
%~   aXiom(Action,A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( raise_aXiom_events(Action) ==>> 
  ( action_doer(Action,Agent) , 
    send_1percept(Agent,[failure(Action,unknown_to(Agent,Action))]))) */
%~ raise_aXiom_events(Action,A9,C9) :-
%~   action_doer(Action,Agent,A9,B9) ,
%~   send_1percept( Agent,
%~     [ failure(Action,unknown_to(Agent,Action))], B9,C9).
/* ==>>(unless_reason(_Agent,Then,_Msg),(Then,!)) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:421 
%~ unless_reason(_Agent,Then,_Msg,A9,C9) :-
%~   phrase(Then,A9,B9) ,
%~   ! ,
%~   C9=B9.
/* ( unless_reason(Agent,_Then,Msg) ==>> 
  ( { event_failed(Agent,Msg) }  ,
    ! , 
    {fail})) */
%~ unless_reason(Agent,_Then,Msg,A9,D9) :-
%~   event_failed(Agent,Msg) ,
%~   C9=A9 ,
%~   ! ,
%~   B9=C9 ,
%~   fail ,
%~   D9=B9.
/* ( unless_reason(_Agent,Unless,_Msg,Then) ==>> 
  ( Unless  ,
    ! , 
    Then)) */
%~ unless_reason(_Agent,Unless,_Msg,Then,A9,D9) :-
%~   phrase(Unless,A9,C9) ,
%~   ! ,
%~   B9=C9 ,
%~   phrase(Then,B9,D9).
/* ( unless_reason(Agent,_Unless,Msg,_Then) ==>> 
  {event_failed(Agent,Msg)},!) */
%~ unless_reason(Agent,_Unless,Msg,_Then,A9,C9) :-
%~   event_failed(Agent,Msg) ,
%~   B9=A9 ,
%~   ! ,
%~   C9=B9.
/* ==>>(unless(_Agent,Required,Then),(Required,!,Then)) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:429 
%~ unless(_Agent,Required,Then,A9,D9) :-
%~   phrase(Required,A9,C9) ,
%~   ! ,
%~   B9=C9 ,
%~   phrase(Then,B9,D9).
/* ( unless(Agent,Required,_Then) ==>> 
  ( { simplify_reason(Required,CUZ), 
      event_failed(Agent,cant(cuz(\+CUZ))) } , 
    !)) */
%~ unless(Agent,Required,_Then,A9,C9) :-
%~   simplify_reason(Required,CUZ) ,
%~   event_failed(Agent,cant(cuz(\+CUZ))) ,
%~   B9=A9 ,
%~   ! ,
%~   C9=B9.
/* ( add_intent_look(Agent) ==>> 
  ( h(spatial,inside,Agent,_Somewhere) , 
    add_agent_intent(Agent,attempts(Agent,act3(look,Agent,[]))))) */
%~ add_intent_look(Agent,A9,C9) :-
%~   h(spatial,inside,Agent,_Somewhere,A9,B9) ,
%~   add_agent_intent(Agent,attempts(Agent,act3(look,Agent,[])),B9,C9).
/* ( disgorge( Doer, 
    Verb, Container,Prep,Here, 
    Vicinity,Msg) ==>> 
  ( verb_domain(Verb,Spatially)  ,
    findall(Inner,h(Spatially,child,Inner,Container),Contents) , 
    { dbug(general,'~p childs: ~p~n',[Container,Contents]) } , 
    moveto( Doer, 
      Verb, Contents,Prep,Here, 
      Vicinity,Msg))) */
%~ disgorge( Doer,
%~   Verb, Container,Prep,Here,
%~   Vicinity,Msg,A9,
%~   E9) :-
%~   verb_domain(Verb,Spatially,A9,D9) ,
%~   findall( Inner,
%~     h(Spatially,child,Inner,Container), Contents,D9,C9) ,
%~   dbug(general,'~p childs: ~p~n',[Container,Contents]) ,
%~   B9=C9 ,
%~   moveto( Doer,
%~     Verb, Contents,Prep,Here,
%~     Vicinity,Msg,B9,
%~     E9).
/* ( moveto(Doer,Verb,List,At,Dest,Vicinity,Msg) ==>> 
  ( { is_list(List) }  ,
    ! , 
    apply_mapl_rest_state( moveto(Doer,Verb), 
      List, 
      [At,Dest,Vicinity,Msg]))) */
%~ moveto( Doer,
%~   Verb, List,At,Dest,
%~   Vicinity,Msg,A9,
%~   D9) :-
%~   is_list(List) ,
%~   C9=A9 ,
%~   ! ,
%~   B9=C9 ,
%~   apply_mapl_rest_state( moveto(Doer,Verb),
%~     List,
%~     [At,Dest,Vicinity,Msg], B9,D9).
/* ( moveto(Doer,Verb,Object,At,Dest,Vicinity,Msg) ==>> 
  ( undeclare( h(spatial,Prep_Spatial,Object,From))  ,
    declare( h(spatial,At,Object,Dest)) , 
    queue_local_event( 
       [ act3( move, 
           Doer, 
           [ Verb, Object,From,At, 
             Dest]), 
         Msg], 
       Vicinity))) */
%~ moveto( Doer,
%~   Verb, Object,At,Dest,
%~   Vicinity,Msg,A9,
%~   D9) :-
%~   undeclare(h(spatial,Prep_Spatial,Object,From),A9,C9) ,
%~   declare(h(spatial,At,Object,Dest),C9,B9) ,
%~   queue_local_event(
%~      [ act3( move,
%~          Doer,
%~          [ Verb, Object,From,At,
%~            Dest]),
%~        Msg], Vicinity,B9,D9).
/* ( setloc_silent(Prep,Object,Dest) ==>> 
  ( undeclare( h(spatial,Prep_Spatial,Object,Target_Object4)) , 
    declare( h(spatial,Prep,Object,Dest)))) */
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/prolog/episodic_memory/adv_action.pl:579 
%~ setloc_silent(Prep,Object,Dest,A9,C9) :-
%~   undeclare(h(spatial,Prep_Spatial,Object,Target_Object4),A9,B9) ,
%~   declare(h(spatial,Prep,Object,Dest),B9,C9).
ORDERING TEST:
 unordered was [before(start,completeFn(CompleteFn)),before(start,x),before(start,y),before(y,completeFn(CompleteFn)),before(x,z),before(z,completeFn(CompleteFn))]
 ordering is [before(z,completeFn(CompleteFn)),before(x,completeFn(CompleteFn)),before(x,z),before(start,z),before(y,completeFn(CompleteFn)),before(start,y),before(start,x),before(start,completeFn(CompleteFn))]
 picked [start,x,y,z,completeFn(CompleteFn3)]
 END ORDERING TEST
=============================================
RESET STATE
%~ create_1obj(se_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(ss_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(sw_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(ee_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(cc_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(ww_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(ne_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(nn_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(nw_subregion,i1)
%~ create_1obj(ttt_table,i1)
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/t/agi_tests/adv_story/adv_test_01.pl:34 
%~ create_1obj(x(red_pebble,5),i1)
%~ create_1obj(player,i1)
%~ create_1obj(x(red_pebble,4),i1)
%~ create_1obj(player,i1)
%~ create_1obj(x(red_pebble,3),i1)
%~ create_1obj(player,i1)
%~ create_1obj(x(red_pebble,2),i1)
%~ create_1obj(player,i1)
%~ create_1obj(x(red_pebble,1),i1)
%~ create_1obj(player,i1)
%~ create_1obj(x(blue_pebble,5),i1)
%~ create_1obj(floyd,i1)
%~ create_1obj(x(blue_pebble,4),i1)
%~ create_1obj(floyd,i1)
%~ create_1obj(x(blue_pebble,3),i1)
%~ create_1obj(floyd,i1)
%~ create_1obj(x(blue_pebble,2),i1)
%~ create_1obj(floyd,i1)
%~ create_1obj(x(blue_pebble,1),i1)
%~ create_1obj(floyd,i1)
%~ create_1obj(ttt_table,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(brklamp,i1)
%~ create_1obj(garden,i1)
%~ create_1obj(screendoor,i1)
%~ create_1obj(garden,i1)
%~ create_1obj(apple,i1)
%~ create_1obj(crate,i1)
%~ create_1obj(crate,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(screendoor,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(fireplace,i1)
%~ create_1obj(living_room,i1)
%~ create_1obj(videocamera,i1)
%~ create_1obj(living_room,i1)
%~ create_1obj(shovel,i1)
%~ create_1obj(basement,i1)
%~ create_1obj(mushroom,i1)
%~ create_1obj(garden,i1)
%~ create_1obj(water,i1)
%~ create_1obj(fountain,i1)
%~ create_1obj(fountain,i1)
%~ create_1obj(garden,i1)
%~ create_1obj(x(rock,2),i1)
%~ create_1obj(garden,i1)
%~ create_1obj(rock,i1)
%~ create_1obj(garden,i1)
%~ create_1obj(locker,i1)
%~ create_1obj(pantry,i1)
%~ create_1obj(shelf,i1)
%~ create_1obj(pantry,i1)
%~ create_1obj(living_room,i1)
%~ create_1obj(dining_room,i1)
%~ create_1obj(dining_room,i1)
%~ create_1obj(living_room,i1)
%~ create_1obj(dining_room,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(dining_room,i1)
%~ create_1obj(garden,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(garden,i1)
%~ create_1obj(basement,i1)
%~ create_1obj(pantry,i1)
%~ create_1obj(pantry,i1)
%~ create_1obj(basement,i1)
%~ create_1obj(pantry,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(pantry,i1)
%~ create_1obj(wrench,i1)
%~ create_1obj(floyd,i1)
%~ create_1obj(coins,i1)
%~ create_1obj(bag,i1)
%~ create_1obj(bag,i1)
%~ create_1obj(player,i1)
%~ create_1obj(watch,i1)
%~ create_1obj(player,i1)
%~ create_1obj(player,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(floyd,i1)
%~ create_1obj(pantry,i1)
%~ create_1obj(cup,i1)
%~ create_1obj(cabinate,i1)
%~ create_1obj(cabinate,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(plate,i1)
%~ create_1obj(sink,i1)
%~ create_1obj(sink,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(lamp,i1)
%~ create_1obj(table,i1)
%~ create_1obj(table,i1)
%~ create_1obj(kitchen,i1)
%~ create_1obj(flour,i1)
%~ create_1obj(bowl,i1)
%~ create_1obj(bowl,i1)
%~ create_1obj(box,i1)
%~ create_1obj(box,i1)
%~ create_1obj(table,i1)
%~ create_1obj(table,i1)
%~ create_1obj(table_leg,i1)
/* oldObjectList=[] */
/* newObjectList = [ x(table_leg,i1), x(table,i1),x(box,i1),x(bowl,i1), 
                  x(flour,i1),x(kitchen,i1),x(lamp,i1), 
                  x(sink,i1),x(plate,i1),x(cabinate,i1), 
                  x(cup,i1),x(pantry,i1),x(floyd,i1), 
                  x(player,i1),x(watch,i1),x(bag,i1), 
                  x(coins,i1),x(wrench,i1), 
                  x(basement,i1),x(garden,i1), 
                  x(dining_room,i1),x(living_room,i1), 
                  x(shelf,i1),x(locker,i1),x(rock,i1), 
                  x(fountain,i1),x(water,i1), 
                  x(mushroom,i1),x(shovel,i1), 
                  x(videocamera,i1),x(fireplace,i1), 
                  x(screendoor,i1),x(crate,i1), 
                  x(apple,i1),x(brklamp,i1), 
                  x(ttt_table,i1),x(nw_subregion,i1), 
                  x(nn_subregion,i1),x(ne_subregion,i1), 
                  x(ww_subregion,i1),x(cc_subregion,i1), 
                  x(ee_subregion,i1),x(sw_subregion,i1), 
                  x(ss_subregion,i1),x(se_subregion,i1)] */
/* mu_create_object( x(table_leg,i1), [
  [ shape=table_leg, traits([table_leg]),inherit(table_leg,t), 
    sp(nouns,[table_leg])])] */
/* mu_create_object( x(table,i1), [
  [ shape=(table), traits([table]),inherit(table,t), 
    sp(nouns,[table])])] */
/* mu_create_object( x(box,i1), [
  [ shape=box, traits([box]),inherit(box,t), 
    sp(nouns,[box])])] */
/* mu_create_object( x(bowl,i1), [
  [ shape=bowl, traits([bowl]),inherit(bowl,t), 
    sp(nouns,[bowl])])] */
/* mu_create_object( x(flour,i1), [
  [ shape=flour, traits([flour]),inherit(flour,t), 
    sp(nouns,[flour])])] */
/* mu_create_object( x(kitchen,i1), [
  [ shape=kitchen, traits([kitchen]),inherit(kitchen,t), 
    sp(nouns,[kitchen])])] */
/* mu_create_object( x(lamp,i1), [
  [ shape=lamp, traits([lamp]),inherit(lamp,t), 
    sp(nouns,[lamp])])] */
/* mu_create_object( x(sink,i1), [
  [ shape=sink, traits([sink]),inherit(sink,t), 
    sp(nouns,[sink])])] */
/* mu_create_object( x(plate,i1), [
  [ shape=plate, traits([plate]),inherit(plate,t), 
    sp(nouns,[plate])])] */
/* mu_create_object( x(cabinate,i1), [
  [ shape=cabinate, traits([cabinate]),inherit(cabinate,t), 
    sp(nouns,[cabinate])])] */
/* mu_create_object( x(cup,i1), [
  [ shape=cup, traits([cup]),inherit(cup,t), 
    sp(nouns,[cup])])] */
/* mu_create_object( x(pantry,i1), [
  [ shape=pantry, traits([pantry]),inherit(pantry,t), 
    sp(nouns,[pantry])])] */
/* mu_create_object( x(floyd,i1), [
  [ shape=floyd, traits([floyd]),inherit(floyd,t), 
    sp(nouns,[floyd])])] */
/* mu_create_object( x(player,i1), [
  [ shape=player, traits([player]),inherit(player,t), 
    sp(nouns,[player])])] */
/* mu_create_object( x(watch,i1), [
  [ shape=watch, traits([watch]),inherit(watch,t), 
    sp(nouns,[watch])])] */
/* mu_create_object( x(bag,i1), [
  [ shape=bag, traits([bag]),inherit(bag,t), 
    sp(nouns,[bag])])] */
/* mu_create_object( x(coins,i1), [
  [ shape=coins, traits([coins]),inherit(coins,t), 
    sp(nouns,[coins])])] */
/* mu_create_object( x(wrench,i1), [
  [ shape=wrench, traits([wrench]),inherit(wrench,t), 
    sp(nouns,[wrench])])] */
/* mu_create_object( x(basement,i1), [
  [ shape=basement, traits([basement]),inherit(basement,t), 
    sp(nouns,[basement])])] */
/* mu_create_object( x(garden,i1), [
  [ shape=garden, traits([garden]),inherit(garden,t), 
    sp(nouns,[garden])])] */
/* mu_create_object( x(dining_room,i1), [
  [ shape=dining_room, traits([dining_room]),inherit(dining_room,t), 
    sp(nouns,[dining_room])])] */
/* mu_create_object( x(living_room,i1), [
  [ shape=living_room, traits([living_room]),inherit(living_room,t), 
    sp(nouns,[living_room])])] */
/* mu_create_object( x(shelf,i1), [
  [ shape=shelf, traits([shelf]),inherit(shelf,t), 
    sp(nouns,[shelf])])] */
/* mu_create_object( x(locker,i1), [
  [ shape=locker, traits([locker]),inherit(locker,t), 
    sp(nouns,[locker])])] */
/* mu_create_object( x(rock,i1), [
  [ shape=rock, traits([rock]),inherit(rock,t), 
    sp(nouns,[rock])])] */
/* mu_create_object( x(fountain,i1), [
  [ shape=fountain, traits([fountain]),inherit(fountain,t), 
    sp(nouns,[fountain])])] */
/* mu_create_object( x(water,i1), [
  [ shape=water, traits([water]),inherit(water,t), 
    sp(nouns,[water])])] */
/* mu_create_object( x(mushroom,i1), [
  [ shape=mushroom, traits([mushroom]),inherit(mushroom,t), 
    sp(nouns,[mushroom])])] */
/* mu_create_object( x(shovel,i1), [
  [ shape=shovel, traits([shovel]),inherit(shovel,t), 
    sp(nouns,[shovel])])] */
/* mu_create_object( x(videocamera,i1), [
  [ shape=videocamera, traits([videocamera]),inherit(videocamera,t), 
    sp(nouns,[videocamera])])] */
/* mu_create_object( x(fireplace,i1), [
  [ shape=fireplace, traits([fireplace]),inherit(fireplace,t), 
    sp(nouns,[fireplace])])] */
/* mu_create_object( x(screendoor,i1), [
  [ shape=screendoor, traits([screendoor]),inherit(screendoor,t), 
    sp(nouns,[screendoor])])] */
/* mu_create_object( x(crate,i1), [
  [ shape=crate, traits([crate]),inherit(crate,t), 
    sp(nouns,[crate])])] */
/* mu_create_object( x(apple,i1), [
  [ shape=apple, traits([apple]),inherit(apple,t), 
    sp(nouns,[apple])])] */
/* mu_create_object( x(brklamp,i1), [
  [ shape=brklamp, traits([brklamp]),inherit(brklamp,t), 
    sp(nouns,[brklamp])])] */
/* mu_create_object( x(ttt_table,i1), [
  [ shape=ttt_table, traits([ttt_table]),inherit(ttt_table,t), 
    sp(nouns,[ttt_table])])] */
/* mu_create_object( x(nw_subregion,i1), [
  [ shape=nw_subregion, traits([nw_subregion]),inherit(nw_subregion,t), 
    sp(nouns,[nw_subregion])])] */
/* mu_create_object( x(nn_subregion,i1), [
  [ shape=nn_subregion, traits([nn_subregion]),inherit(nn_subregion,t), 
    sp(nouns,[nn_subregion])])] */
/* mu_create_object( x(ne_subregion,i1), [
  [ shape=ne_subregion, traits([ne_subregion]),inherit(ne_subregion,t), 
    sp(nouns,[ne_subregion])])] */
/* mu_create_object( x(ww_subregion,i1), [
  [ shape=ww_subregion, traits([ww_subregion]),inherit(ww_subregion,t), 
    sp(nouns,[ww_subregion])])] */
/* mu_create_object( x(cc_subregion,i1), [
  [ shape=cc_subregion, traits([cc_subregion]),inherit(cc_subregion,t), 
    sp(nouns,[cc_subregion])])] */
/* mu_create_object( x(ee_subregion,i1), [
  [ shape=ee_subregion, traits([ee_subregion]),inherit(ee_subregion,t), 
    sp(nouns,[ee_subregion])])] */
/* mu_create_object( x(sw_subregion,i1), [
  [ shape=sw_subregion, traits([sw_subregion]),inherit(sw_subregion,t), 
    sp(nouns,[sw_subregion])])] */
/* mu_create_object( x(ss_subregion,i1), [
  [ shape=ss_subregion, traits([ss_subregion]),inherit(ss_subregion,t), 
    sp(nouns,[ss_subregion])])] */
/* mu_create_object( x(se_subregion,i1), [
  [ shape=se_subregion, traits([se_subregion]),inherit(se_subregion,t), 
    sp(nouns,[se_subregion])])] */
=============================================
=============================================
INIT STATE
=============================================
totalTime=10.000

FAILED: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k adv_test_01.pl (returned 137) Add_LABELS='Errors,Overtime' Rem_LABELS='Skipped,Skipped,Warnings,Skipped'

ISSUE_INFO=703	OPEN	logicmoo.agi.agi_test.adv_story.ADV_TEST_01 JUnit	Test_9999, unit_test, Failing, Errors, Overtime, logicmoo.agi.agi_test.adv_story, ADV_TEST_01	2021-09-26 22:45:53 +0000 UTC
ISSUE_ID=703
ISSUE_OC=OPEN
Editing Issue For FAILED 703	OPEN	logicmoo.agi.agi_test.adv_story.ADV_TEST_01 JUnit	Test_9999, unit_test, Failing, Errors, Overtime, logicmoo.agi.agi_test.adv_story, ADV_TEST_01	2021-09-26 22:45:53 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/703
sed: can't read /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-adv_story-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units?*-junit.xml: No such file or directory
<!-- 
junit-viewer is /usr/bin/junit-viewer
junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-adv_story-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-adv_story-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer-rollup.html &> /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-adv_story-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer.debug.html
junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-adv_story-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-adv_story-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer-rollup.html
Requirement already satisfied: junit2html in /usr/local/lib/python3.9/dist-packages (30.0.6)
Requirement already satisfied: jinja2>=2.11.2 in /usr/local/lib/python3.9/dist-packages (from junit2html) (3.0.1)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.9/dist-packages (from jinja2>=2.11.2->junit2html) (2.0.1)
junit2html is /usr/local/bin/junit2html
junit2html /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-adv_story-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-adv_story-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.html
TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-adv_story-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units
-->
stty: 'standard input': Inappropriate ioctl for device
+ stty echo
stty: 'standard input': Inappropriate ioctl for device
+ CMD_TIMEOUT=1m
+ '[' -n 4 ']'
+ '[' 4 -lt 10 ']'
+ CMD_TIMEOUT=10s
+ echo 'Warn: (MAX_JUNIT_TESTS < 10) we want our tests to be short:  CMD_TIMEOUT=10s'
Warn: (MAX_JUNIT_TESTS < 10) we want our tests to be short:  CMD_TIMEOUT=10s
+ export 'GLOB=*0*.* 2>&1 | grep -2 -i '\''WARN\|ERROR\|_file\|00\|fail\|pass'\'''
+ GLOB='*0*.* 2>&1 | grep -2 -i '\''WARN\|ERROR\|_file\|00\|fail\|pass'\'''
+ '[' -z '*0*.* 2>&1 | grep -2 -i '\''WARN\|ERROR\|_file\|00\|fail\|pass'\''' ']'
./test_on_release.sh: line 16: syntax error near unexpected token `)'
./test_on_release.sh: line 16: `)'
Warn: (MAX_JUNIT_TESTS < 10) we want our tests to be short:  CMD_TIMEOUT=40s
<!-- PACK_DIR=logicmoo_agi -->
<!-- JUNIT_PACKAGE=logicmoo.agi.agi_test.comprehension -->
<!-- GLOBSTEM=logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl -->
<!-- TEST_STEM=Report-logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl-Units -->
<!-- TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl-Units -->
<!-- Running release (all) tests
 ( cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/t/agi_tests/comprehension ; /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit *_01*.pl) -->
<!-- PACK_DIR=logicmoo_agi -->
<!-- JUNIT_PACKAGE=logicmoo.agi.agi_test.comprehension -->
<!-- GLOBSTEM=logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl -->
<!-- TEST_STEM=Report-logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl-Units -->
<!-- TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl-Units -->
<!-- LOGICMOO_WS=/var/lib/jenkins/workspace/logicmoo_workspace -->
<!-- test_completed=true -->
<!-- ROLLUP_STEM=Report-logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl-Units-Rollup -->
<!-- ROLLUP_TMP=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl-Units-Rollup.tmp -->
Running Matching Tests: (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/t/agi_tests/comprehension ; /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k *_01*.pl)

gh: Validation Failed (HTTP 422)
SORTED_FILES=comprehension_01.pl
FileTestCase=logicmoo.agi.agi_test.comprehension.COMPREHENSION_01 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['comprehension_01.pl']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_agi/t/agi_tests/comprehension ; timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['comprehension_01.pl']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_agi/t/agi_tests/comprehension/comprehension_01.pl 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.agi.agi_test.comprehension/COMPREHENSION_01/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3ACOMPREHENSION_01 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/645 


%~ 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/packs_sys/logicmoo_agi/t/agi_tests/comprehension/comprehension_01.pl'),
%~ this_test_might_need( :-( expects_dialect(pfc)))
%~ this_test_might_need( :-( use_module( library(logicmoo_plarkc))))


test_here(X):- notrace(mpred_test(e2c(X))).

/*~
No source location!?
~*/


test_convo_file(File):- atom_contains(File,'0'),!.
/*~
No source location!?
~*/

test_convo_file(File):-
  open(File,read,IS),
  repeat,
  catch(read_term(IS,Term,[syntax_errors(error)]),_,fail),
   (Term == end_of_file -> close(IS) ;  
    (ignore(test_convo_term(Term)),fail)).

/*~
No source location!?
~*/


test_convo_term(X):- 
 forall((sub_term(E,X),atomic(E),atom_contains(E,' '), 
   %dont parse end comment (Yet)
   \+ atom_contains(E,'CasAm')),
  test_here(E)).

/*~
No source location!?
~*/


:- prolog_load_context(directory,X), cd(X), 
   expand_file_name('Meta*Peacock.plt',Files),
   maplist(test_convo_file,Files).


% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_agi/t/agi_tests/comprehension/comprehension_01.pl 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.agi.agi_test.comprehension/COMPREHENSION_01/logicmoo_agi_agi_test_comprehension_COMPREHENSION_01/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3ACOMPREHENSION_01 

% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/645
/*~
%~ ?-( mpred_test("Test_0001_Line_0015__What_is_a_peacock_c63",baseKB:e2c('What is a peacock?'))).
?-e2c('What is a peacock?')
asserted( exists( Exists, 
            ( info( 'XVAR_NP_What_1_1', [
                [ loc(1), pos('NP'),equals('XVAR_NP_What_1_1'),seg(1,1), 
                  phrase('NP'),size(1),lnks(2), 
                  #(r('NP',seg(1,1))),txt(["What"]),childs(0), 
                  link(1,'SBAR',r('SBAR',seg(1,5))), 
                  link(2,'CORENLP',r('CORENLP',seg(1,5)))])]  &
              info( 'XVAR_NP_Peacock_3_4', [
                [ loc(3), pos('NP'),equals('XVAR_NP_Peacock_3_4'),seg(3,4), 
                  phrase('NP'),size(2),lnks(3), 
                  #(r('NP',seg(3,4))),txt(["a","peacock"]), 
                  childs(0),link(1,'S',r('S',seg(2,4))), 
                  link(2,'SBAR',r('SBAR',seg(1,5))), 
                  link(3,'CORENLP',r('CORENLP',seg(1,5)))])] & 
              warn( unparsed( Exists, [
                      [ w( 'XVAR_NP_What_1_1', [
                          [ loc(1), pos('NP'),equals('XVAR_NP_What_1_1'),seg(1,1), 
                            phrase('NP'),size(1),lnks(2), 
                            #(r('NP',seg(1,1))),txt(["What"]),childs(0), 
                            link(1,'SBAR',r('SBAR',seg(1,5))), 
                            link(2,'CORENLP',r('CORENLP',seg(1,5)))])], 
                        w( is, [
                          [ pos(vbz), root(be),loc(2),lnks(3),txt("is"), 
                            truecase('LOWER'),link(1,'S',r('S',seg(2,4))), 
                            link(2,'SBAR',r('SBAR',seg(1,5))), link(3,'CORENLP',r('CORENLP',seg(1,5))),lex_winfo, 
                            flexicon(bv,[person=3,agr=sg,verb_form=tensed],is), 
                            talk_db(intransitive,be,is,was,being,been), 
                            talk_db(intransitive,am,is,was,being,been), 
                            talk_db(intransitive,are,is,was,being,been)])], 
                        w( 'XVAR_NP_Peacock_3_4', [
                          [ loc(3), pos('NP'),equals('XVAR_NP_Peacock_3_4'),seg(3,4), 
                            phrase('NP'),size(2),lnks(3), 
                            #(r('NP',seg(3,4))),txt(["a","peacock"]), 
                            childs(0),link(1,'S',r('S',seg(2,4))), 
                            link(2,'SBAR',r('SBAR',seg(1,5))), 
                            link(3,'CORENLP',r('CORENLP',seg(1,5)))])], 
                        w( ?, [
                          [ pos('.'), root(?),loc(5),lnks(2),txt("?"), 
                            link(1,'SBAR',r('SBAR',seg(1,5))), link(2,'CORENLP',r('CORENLP',seg(1,5))),lex_winfo, 
                            terminator_lex(?,?),char_type_sentence(?,ask)])], 
                        span( [ seg(2,4), phrase('S'),size(3),lnks(2),#(r('S',seg(2,4))), 
                                txt(["is","a","peacock"]),childs(1), 
                                child(1,'NP',r('NP',seg(3,4))), 
                                link(1,'SBAR',r('SBAR',seg(1,5))), 
                                link(2,'CORENLP',r('CORENLP',seg(1,5)))]), 
                        span( [ seg(1,5), phrase('CORENLP'),size(5),lnks(0), 
                                #( r('CORENLP',seg(1,5))), 
                                txt( [ "What", "is","a","peacock","?"]), childs(1),child(1,'SBAR',r('SBAR',seg(1,5)))]), 
                        span( [ seg(1,5), phrase('SBAR'),size(5),lnks(1), 
                                #( r('SBAR',seg(1,5))), 
                                txt( [ "What", "is","a","peacock","?"]), childs(2),child(1,'NP',r('NP',seg(1,1))), 
                                child(2,'S',r('S',seg(2,4))), 
                                link(1,'CORENLP',r('CORENLP',seg(1,5)))])])]))))
passed=info(why_was_true(baseKB:e2c('What is a peacock?')))
no_proof_for(e2c('What is a peacock?')).

?-e2c('What is a peacock?')
asserted( exists( Exists, 
            ( info( 'XVAR_NP_What_1_1', [
                [ loc(1), pos('NP'),equals('XVAR_NP_What_1_1'),seg(1,1), 
                  phrase('NP'),size(1),lnks(2), 
                  #(r('NP',seg(1,1))),txt(["What"]),childs(0), 
                  link(1,'SBAR',r('SBAR',seg(1,5))), 
                  link(2,'CORENLP',r('CORENLP',seg(1,5)))])]  &
              info( 'XVAR_NP_Peacock_3_4', [
                [ loc(3), pos('NP'),equals('XVAR_NP_Peacock_3_4'),seg(3,4), 
                  phrase('NP'),size(2),lnks(3), 
                  #(r('NP',seg(3,4))),txt(["a","peacock"]), 
                  childs(0),link(1,'S',r('S',seg(2,4))), 
                  link(2,'SBAR',r('SBAR',seg(1,5))), 
                  link(3,'CORENLP',r('CORENLP',seg(1,5)))])] & 
              warn( unparsed( Exists, [
                      [ w( 'XVAR_NP_What_1_1', [
                          [ loc(1), pos('NP'),equals('XVAR_NP_What_1_1'),seg(1,1), 
                            phrase('NP'),size(1),lnks(2), 
                            #(r('NP',seg(1,1))),txt(["What"]),childs(0), 
                            link(1,'SBAR',r('SBAR',seg(1,5))), 
                            link(2,'CORENLP',r('CORENLP',seg(1,5)))])], 
                        w( is, [
                          [ pos(vbz), root(be),loc(2),lnks(3),txt("is"), 
                            truecase('LOWER'),link(1,'S',r('S',seg(2,4))), 
                            link(2,'SBAR',r('SBAR',seg(1,5))), link(3,'CORENLP',r('CORENLP',seg(1,5))),lex_winfo, 
                            flexicon(bv,[person=3,agr=sg,verb_form=tensed],is), 
                            talk_db(intransitive,be,is,was,being,been), 
                            talk_db(intransitive,am,is,was,being,been), 
                            talk_db(intransitive,are,is,was,being,been)])], 
                        w( 'XVAR_NP_Peacock_3_4', [
                          [ loc(3), pos('NP'),equals('XVAR_NP_Peacock_3_4'),seg(3,4), 
                            phrase('NP'),size(2),lnks(3), 
                            #(r('NP',seg(3,4))),txt(["a","peacock"]), 
                            childs(0),link(1,'S',r('S',seg(2,4))), 
                            link(2,'SBAR',r('SBAR',seg(1,5))), 
                            link(3,'CORENLP',r('CORENLP',seg(1,5)))])], 
                        w( ?, [
                          [ pos('.'), root(?),loc(5),lnks(2),txt("?"), 
                            link(1,'SBAR',r('SBAR',seg(1,5))), link(2,'CORENLP',r('CORENLP',seg(1,5))),lex_winfo, 
                            terminator_lex(?,?),char_type_sentence(?,ask)])], 
                        span( [ seg(2,4), phrase('S'),size(3),lnks(2),#(r('S',seg(2,4))), 
                                txt(["is","a","peacock"]),childs(1), 
                                child(1,'NP',r('NP',seg(3,4))), 
                                link(1,'SBAR',r('SBAR',seg(1,5))), 
                                link(2,'CORENLP',r('CORENLP',seg(1,5)))]), 
                        span( [ seg(1,5), phrase('CORENLP'),size(5),lnks(0), 
                                #( r('CORENLP',seg(1,5))), 
                                txt( [ "What", "is","a","peacock","?"]), childs(1),child(1,'SBAR',r('SBAR',seg(1,5)))]), 
                        span( [ seg(1,5), phrase('SBAR'),size(5),lnks(1), 
                                #( r('SBAR',seg(1,5))), 
                                txt( [ "What", "is","a","peacock","?"]), childs(2),child(1,'NP',r('NP',seg(1,1))), 
                                child(2,'S',r('S',seg(2,4))), 
                                link(1,'CORENLP',r('CORENLP',seg(1,5)))])])]))))
no_proof_for(e2c('What is a peacock?')).

no_proof_for(e2c('What is a peacock?')).

	name	=	'logicmoo.agi.agi_test.comprehension.COMPREHENSION_01-Test_0001_Line_0015__What_is_a_peacock_c63'. 
	JUNIT_CLASSNAME	=	'logicmoo.agi.agi_test.comprehension.COMPREHENSION_01'. 
	JUNIT_CMD	=	'timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "[\'comprehension_01.pl\']"'. 
% saving_junit: /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl-Units-Logicmoo_agi_agi_test_comprehension_COMPREHENSION_01_Test_0001_Line_0015_What_is_a_peacock_c63-junit.xml
%~ ?-( mpred_test("Test_0002_Line_0015__What_is_a_peacock_c63",baseKB:e2c('What is a peacock?'))).
?-e2c('What is a peacock?')
asserted( exists( Exists, 
            ( info( 'XVAR_NP_What_1_1', [
                [ loc(1), pos('NP'),equals('XVAR_NP_What_1_1'),seg(1,1), 
                  phrase('NP'),size(1),lnks(2), 
                  #(r('NP',seg(1,1))),txt(["What"]),childs(0), 
                  link(1,'SBAR',r('SBAR',seg(1,5))), 
                  link(2,'CORENLP',r('CORENLP',seg(1,5)))])]  &
              info( 'XVAR_NP_Peacock_3_4', [
                [ loc(3), pos('NP'),equals('XVAR_NP_Peacock_3_4'),seg(3,4), 
                  phrase('NP'),size(2),lnks(3), 
                  #(r('NP',seg(3,4))),txt(["a","peacock"]), 
                  childs(0),link(1,'S',r('S',seg(2,4))), 
                  link(2,'SBAR',r('SBAR',seg(1,5))), 
                  link(3,'CORENLP',r('CORENLP',seg(1,5)))])] & 
              warn( unparsed( Exists, [
                      [ w( 'XVAR_NP_What_1_1', [
                          [ loc(1), pos('NP'),equals('XVAR_NP_What_1_1'),seg(1,1), 
                            phrase('NP'),size(1),lnks(2), 
                            #(r('NP',seg(1,1))),txt(["What"]),childs(0), 
                            link(1,'SBAR',r('SBAR',seg(1,5))), 
                            link(2,'CORENLP',r('CORENLP',seg(1,5)))])], 
                        w( is, [
                          [ pos(vbz), root(be),loc(2),lnks(3),txt("is"), 
                            truecase('LOWER'),link(1,'S',r('S',seg(2,4))), 
                            link(2,'SBAR',r('SBAR',seg(1,5))), link(3,'CORENLP',r('CORENLP',seg(1,5))),lex_winfo, 
                            flexicon(bv,[person=3,agr=sg,verb_form=tensed],is), 
                            talk_db(intransitive,be,is,was,being,been), 
                            talk_db(intransitive,am,is,was,being,been), 
                            talk_db(intransitive,are,is,was,being,been)])], 
                        w( 'XVAR_NP_Peacock_3_4', [
                          [ loc(3), pos('NP'),equals('XVAR_NP_Peacock_3_4'),seg(3,4), 
                            phrase('NP'),size(2),lnks(3), 
                            #(r('NP',seg(3,4))),txt(["a","peacock"]), 
                            childs(0),link(1,'S',r('S',seg(2,4))), 
                            link(2,'SBAR',r('SBAR',seg(1,5))), 
                            link(3,'CORENLP',r('CORENLP',seg(1,5)))])], 
                        w( ?, [
                          [ pos('.'), root(?),loc(5),lnks(2),txt("?"), 
                            link(1,'SBAR',r('SBAR',seg(1,5))), link(2,'CORENLP',r('CORENLP',seg(1,5))),lex_winfo, 
                            terminator_lex(?,?),char_type_sentence(?,ask)])], 
                        span( [ seg(2,4), phrase('S'),size(3),lnks(2),#(r('S',seg(2,4))), 
                                txt(["is","a","peacock"]),childs(1), 
                                child(1,'NP',r('NP',seg(3,4))), 
                                link(1,'SBAR',r('SBAR',seg(1,5))), 
                                link(2,'CORENLP',r('CORENLP',seg(1,5)))]), 
                        span( [ seg(1,5), phrase('CORENLP'),size(5),lnks(0), 
                                #( r('CORENLP',seg(1,5))), 
                                txt( [ "What", "is","a","peacock","?"]), childs(1),child(1,'SBAR',r('SBAR',seg(1,5)))]), 
                        span( [ seg(1,5), phrase('SBAR'),size(5),lnks(1), 
                                #( r('SBAR',seg(1,5))), 
                                txt( [ "What", "is","a","peacock","?"]), childs(2),child(1,'NP',r('NP',seg(1,1))), 
                                child(2,'S',r('S',seg(2,4))), 
                                link(1,'CORENLP',r('CORENLP',seg(1,5)))])])]))))
passed=info(why_was_true(baseKB:e2c('What is a peacock?')))
no_proof_for(e2c('What is a peacock?')).

?-e2c('What is a peacock?')
asserted( exists( Exists, 
            ( info( 'XVAR_NP_What_1_1', [
                [ loc(1), pos('NP'),equals('XVAR_NP_What_1_1'),seg(1,1), 
                  phrase('NP'),size(1),lnks(2), 
                  #(r('NP',seg(1,1))),txt(["What"]),childs(0), 
                  link(1,'SBAR',r('SBAR',seg(1,5))), 
                  link(2,'CORENLP',r('CORENLP',seg(1,5)))])]  &
              info( 'XVAR_NP_Peacock_3_4', [
                [ loc(3), pos('NP'),equals('XVAR_NP_Peacock_3_4'),seg(3,4), 
                  phrase('NP'),size(2),lnks(3), 
                  #(r('NP',seg(3,4))),txt(["a","peacock"]), 
                  childs(0),link(1,'S',r('S',seg(2,4))), 
                  link(2,'SBAR',r('SBAR',seg(1,5))), 
                  link(3,'CORENLP',r('CORENLP',seg(1,5)))])] & 
              warn( unparsed( Exists, [
                      [ w( 'XVAR_NP_What_1_1', [
                          [ loc(1), pos('NP'),equals('XVAR_NP_What_1_1'),seg(1,1), 
                            phrase('NP'),size(1),lnks(2), 
                            #(r('NP',seg(1,1))),txt(["What"]),childs(0), 
                            link(1,'SBAR',r('SBAR',seg(1,5))), 
                            link(2,'CORENLP',r('CORENLP',seg(1,5)))])], 
                        w( is, [
                          [ pos(vbz), root(be),loc(2),lnks(3),txt("is"), 
                            truecase('LOWER'),link(1,'S',r('S',seg(2,4))), 
                            link(2,'SBAR',r('SBAR',seg(1,5))), link(3,'CORENLP',r('CORENLP',seg(1,5))),lex_winfo, 
                            flexicon(bv,[person=3,agr=sg,verb_form=tensed],is), 
                            talk_db(intransitive,be,is,was,being,been), 
                            talk_db(intransitive,am,is,was,being,been), 
                            talk_db(intransitive,are,is,was,being,been)])], 
                        w( 'XVAR_NP_Peacock_3_4', [
                          [ loc(3), pos('NP'),equals('XVAR_NP_Peacock_3_4'),seg(3,4), 
                            phrase('NP'),size(2),lnks(3), 
                            #(r('NP',seg(3,4))),txt(["a","peacock"]), 
                            childs(0),link(1,'S',r('S',seg(2,4))), 
                            link(2,'SBAR',r('SBAR',seg(1,5))), 
                            link(3,'CORENLP',r('CORENLP',seg(1,5)))])], 
                        w( ?, [
                          [ pos('.'), root(?),loc(5),lnks(2),txt("?"), 
                            link(1,'SBAR',r('SBAR',seg(1,5))), link(2,'CORENLP',r('CORENLP',seg(1,5))),lex_winfo, 
                            terminator_lex(?,?),char_type_sentence(?,ask)])], 
                        span( [ seg(2,4), phrase('S'),size(3),lnks(2),#(r('S',seg(2,4))), 
                                txt(["is","a","peacock"]),childs(1), 
                                child(1,'NP',r('NP',seg(3,4))), 
                                link(1,'SBAR',r('SBAR',seg(1,5))), 
                                link(2,'CORENLP',r('CORENLP',seg(1,5)))]), 
                        span( [ seg(1,5), phrase('CORENLP'),size(5),lnks(0), 
                                #( r('CORENLP',seg(1,5))), 
                                txt( [ "What", "is","a","peacock","?"]), childs(1),child(1,'SBAR',r('SBAR',seg(1,5)))]), 
                        span( [ seg(1,5), phrase('SBAR'),size(5),lnks(1), 
                                #( r('SBAR',seg(1,5))), 
                                txt( [ "What", "is","a","peacock","?"]), childs(2),child(1,'NP',r('NP',seg(1,1))), 
                                child(2,'S',r('S',seg(2,4))), 
                                link(1,'CORENLP',r('CORENLP',seg(1,5)))])])]))))
no_proof_for(e2c('What is a peacock?')).

no_proof_for(e2c('What is a peacock?')).

	name	=	'logicmoo.agi.agi_test.comprehension.COMPREHENSION_01-Test_0002_Line_0015__What_is_a_peacock_c63'. 
	JUNIT_CLASSNAME	=	'logicmoo.agi.agi_test.comprehension.COMPREHENSION_01'. 
	JUNIT_CMD	=	'timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "[\'comprehension_01.pl\']"'. 
% saving_junit: /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl-Units-Logicmoo_agi_agi_test_comprehension_COMPREHENSION_01_Test_0002_Line_0015_What_is_a_peacock_c63-junit.xml
%~ ?-( mpred_test("Test_0003_Line_0015__What_is_a_peacock_c63",baseKB:e2c('What is a peacock?'))).
?-e2c('What is a peacock?')
totalTime=10.000

FAILED: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k comprehension_01.pl (returned 137) Add_LABELS='Errors,Overtime' Rem_LABELS='Skipped,Skipped,Warnings,Skipped'

ISSUE_INFO=645	OPEN	logicmoo.agi.agi_test.comprehension.COMPREHENSION_01 JUnit	Test_9999, unit_test, Failing, Errors, Overtime, logicmoo.agi.agi_test.comprehension, COMPREHENSION_01	2021-09-26 22:46:14 +0000 UTC
ISSUE_ID=645
ISSUE_OC=OPEN
Editing Issue For FAILED 645	OPEN	logicmoo.agi.agi_test.comprehension.COMPREHENSION_01 JUnit	Test_9999, unit_test, Failing, Errors, Overtime, logicmoo.agi.agi_test.comprehension, COMPREHENSION_01	2021-09-26 22:46:14 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/645
<!-- 
junit-viewer is /usr/bin/junit-viewer
junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl-Units-junitCombined-rollup.tmp --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl-Units-junit-viewer-rollup.html &> /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl-Units-junit-viewer.debug.html
junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl-Units-junitCombined-rollup.tmp --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl-Units-junit-viewer-rollup.html
Requirement already satisfied: junit2html in /usr/local/lib/python3.9/dist-packages (30.0.6)
Requirement already satisfied: jinja2>=2.11.2 in /usr/local/lib/python3.9/dist-packages (from junit2html) (3.0.1)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.9/dist-packages (from jinja2>=2.11.2->junit2html) (2.0.1)
junit2html is /usr/local/bin/junit2html
junit2html /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl-Units-junitCombined-rollup.tmp /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl-Units-junitCombined-rollup.html
TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-agi-agi_test-comprehension-vSTARv_01vSTARvvDOTvpl-Units
-->
stty: 'standard input': Inappropriate ioctl for device
+++ dirname ./test_on_release.sh
++ cd .
++ pwd
+ DIR0=/var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_nlu/test/logicmoo_nlu
+ cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_nlu/test/logicmoo_nlu
+ '[' '!' -f /.dockerenv ']'
++ basename ./test_on_release.sh
+ lmoo /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_nlu/test/logicmoo_nlu/test_on_release.sh how_are_you_f_01.plt ping_stanford_01.pl test_charniak_01.pl test_chat80_01.pl test_e2c_01.pl test_e2c_02.pl test_pos_01.pl '2>&1' '|' grep -2 -i ''\''WARN\|ERROR\|_file\|00\|fail\|pass'\'''
the input device is not a TTY
+ return 0
+ exit 0
+ export 'GLOB=*0*.* 2>&1 | grep -2 -i '\''WARN\|ERROR\|_file\|00\|fail\|pass'\'''
+ GLOB='*0*.* 2>&1 | grep -2 -i '\''WARN\|ERROR\|_file\|00\|fail\|pass'\'''
+ lmoo-junit '*0*.* 2>&1 | grep -2 -i '\''WARN\|ERROR\|_file\|00\|fail\|pass'\'''
<!-- PACK_DIR=pfc -->
<!-- JUNIT_PACKAGE=logicmoo.pfc.test.sanity_base -->
<!-- GLOBSTEM=logicmoo-pfc-test-sanity_base-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass- -->
<!-- TEST_STEM=Report-logicmoo-pfc-test-sanity_base-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-test-sanity_base-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- Running release (all) tests
 ( cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base ; /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit *0*.* 2>&1 | grep -2 -i 'WARN\|ERROR\|_file\|00\|fail\|pass') -->
<!-- PACK_DIR=pfc -->
<!-- JUNIT_PACKAGE=logicmoo.pfc.test.sanity_base -->
<!-- GLOBSTEM=logicmoo-pfc-test-sanity_base-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass- -->
<!-- TEST_STEM=Report-logicmoo-pfc-test-sanity_base-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-test-sanity_base-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- LOGICMOO_WS=/var/lib/jenkins/workspace/logicmoo_workspace -->
<!-- test_completed=true -->
<!-- ROLLUP_STEM=Report-logicmoo-pfc-test-sanity_base-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Rollup -->
<!-- ROLLUP_TMP=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-test-sanity_base-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Rollup.tmp -->
Running Matching Tests: (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base ; /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k *0*.* 2>&1 | grep -2 -i 'WARN\|ERROR\|_file\|00\|fail\|pass')

gh: Validation Failed (HTTP 422)
SORTED_FILES=dl_01.pfc df_05.pfc nldm320_fwd.pl nldm1000.pfc nldm1000_fwd.subl nldm1000.P nldm1280.P nldm640.P nldm800.P nldm320.P tml_01d.pfc nldm400.P nldm80.P fc_01u.pfc dupe_chain_01.pfc.pl dia_pfc_mod_01c.pl dia_pfc_mod_01b.pl fc_01r.pfc echo_test_fc_03.pfc echo_test_fc_02.pfc echo_test_fc_01.pfc dia_pfc_mod_01a.pl dia_pfc_mod_01.pl attvar_03.pfc retry_inheritance_01a.pfc min_fail_01.pl holds_01b.pfc tms_01.pfc verbatums_05.pfc verbatums_04.pfc verbatums_03.pfc verbatums_02.pfc verbatums_01.pfc update_number_01.pfc update_list_01.pfc undo_01.pfc sv_or_01.pfc sv_in_arg_01.pfc sv_fwd_01.pfc sv_default_01.pfc shift_02.pl shift_01.pl retry_undefined_09.pfc retry_undefined_08.pfc retry_undefined_07.pfc retry_undefined_06.pfc retry_undefined_05.pfc retry_undefined_04.pfc retry_undefined_03.pfc retry_undefined_02.pfc retry_undefined_01.pfc retry_inheritance_09.pfc retry_inheritance_08.pfc retry_inheritance_07.pfc retry_inheritance_06.pfc retry_inheritance_05.pfc retry_inheritance_04.pfc retry_inheritance_03.pfc retry_inheritance_02.pfc retract_01.pfc reset_db_02.pfc.pl reset_db_01.pfc.pl predmt_01.pfc ppdb_01.pl pl_01.pfc neg_01.pfc nd_cut_01.pfc nd_08.pfc nd_07.pfc nd_06.pfc nd_05.pfc nd_04.pfc nd_03.pfc nd_02.pfc nd_01.pl mt_09.pl mt_07.pl mt_06.pl mt_05.pl mt_04.pl mt_03.pl mt_02.pl mt_01.pl mpred_pfc_test_04.pl mpred_pfc_test_03.pl mpred_pfc_test_02.pl mpred_pfc_test_01.plt mpred_pfc_test_01.pl mdefault_01.pfc load_time_01.pfc list_03.pfc list_02.pfc list_01.pfc if_missing_05.pfc if_missing_04.pfc if_missing_03.pfc if_missing_02.pfc if_missing_01.pfc hybrid_05.pfc hybrid_04.pfc hybrid_03.pfc hybrid_02.pfc hybrid_01.pfc hard_mt_f01.pfc file_03.pfc file_02.pfc file_01.pfc fc_09.pfc fc_08.pfc fc_07.pfc fc_06.pfc fc_05.pfc fc_04.pfc fc_03.pfc fc_02.pfc fc_01.pfc dmost_02.pfc dmost_01.pfc df_07.pfc df_06.pfc df_04.pfc df_03.pfc df_02.pfc df_01.pfc conan_01.pfc.pl clause_fwd_02.pfc.pl bwd_01.pfc bc_02.pfc bc_01.pfc attvar_09.pfc attvar_08.pfc attvar_07.pfc attvar_06.pfc attvar_05.pfc attvar_04.pl attvar_02.pfc attvar_01.pl abc_01.pfc why_bug_01e.pfc undo_02a.pfc undo_01b.pfc undo_01a.pfc tml_01e.pfc tml_01c.pfc tml_01b.pfc tml_01a.pfc sv_in_arg_01e.pfc sv_in_arg_01d.pfc sv_in_arg_01a.pfc sv_fwd_01c.pfc sv_fwd_01b.pfc sv_fwd_01a.pfc sv_fwd_01a_b.pfc sv_default_01a.pfc retract_01e.pfc retract_01d.pfc retract_01c.pfc retract_01b.pfc retract_01a.pfc reset_db_02_user.pfc.pl reset_db_01_user.pfc.pl predmt_01b.pl predmt_01a.pl nldm40.pfc nldm40.P nldm20.pfc nldm10.pfc never_retract_01b.pfc neg_01v_r.pfc neg_01v.pfc neg_01e.pfc neg_01c_r.pfc neg_01c.pfc neg_01b_r.pfc neg_01b.pfc neg_01a.pfc nd_09_rule.pfc nd_02a.pfc mt_07a.pl mt_06_a.pfc mt_03c.pl mt_03b.pl mt_03a.pl mt_02a_0c.pfc mt_01e.pl mt_01d.pl mt_01c_0b.pl mt_01c.pl mt_01c_0a.pl mt_01b.pl mt_01a.pl mdefault_01e.pfc mdefault_01d.pfc mdefault_01c.pfc mdefault_01b.pfc mdefault_01a_two.pfc mdefault_01a.pfc list_03a.pfc list_02a.pfc list_01a.pfc if_missing_01c.pfc if_missing_01b.pfc if_missing_01a.pfc hybrid_05a.pfc hybrid_04a.pfc hybrid_03a.pfc hybrid_02a.pfc hybrid_01a.pfc holds_01c.pfc hard_mt_04a.pfc gshape_01d.pfc gshape_01c_r.pfc gshape_01c.pfc gshape_01b.pfc gshape_01a.pfc file_01a.pfc fc_10.pfc fc_05a.pfc fc_04_user.pfc fc_03a.pfc fc_01v.pfc fc_01s.pfc clause_fwd_01c.pfc.pl clause_fwd_01b.pfc.pl clause_fwd_01a.pfc.pl circle_01d.pfc circle_01c.pfc circle_01b.pfc circle_01a.pfc bwd_01a.pfc birds_01d.pfc birds_01c.pfc birds_01b.pfc birds_01a.pfc bc_01d.pfc bc_01c.pfc bc_01b.pfc bc_01a.pfc bc_01a_1.pfc attvar_10.pfc attvar_08c.pfc attvar_08b.pfc attvar_08a.pfc attvar_02_in_user.pfc sv_fwd_01a_a.pfc.hide
FileTestCase=logicmoo.pfc.test.sanity_base.DL_01 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['dl_01.pfc']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base ; timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['dl_01.pfc']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/pfc/t/sanity_base/dl_01.pfc 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.pfc.test.sanity_base/DL_01/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3ADL_01 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/92 


%~ 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/packs_sys/pfc/t/sanity_base/dl_01.pfc'),
%~ this_test_might_need( :-( use_module( library(logicmoo_plarkc))))


:- dynamic(meta_argtypes/1).

/*~
~*/


:- expects_dialect(pfc).

/*~
~*/


:- include('df_include.pi').

/*~
running(-),
%~ /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/logicmoo_test_header.pl:44 
%~ reload_of_test_header.
%~ this_test_might_need( :-( use_module( library(logicmoo_plarkc))))
~*/


:-dynamic((a/1,b/1,c/1)).

/*~
~*/


a(X) ==> c(X).
/*~
~*/

a(1).

/*~
~*/


most(c(X) ==> b(X)) .

/*~
~*/


:- listing([a/1,b/1,c/1,(==>)/2,most/1,pt,nt,bct]).


% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/92 
% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/pfc/t/sanity_base/dl_01.pfc 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.pfc.test.sanity_base/DL_01/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3ADL_01 

/*~
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/dl_01.pfc:28 
%~ skipped( listing( [ a/1, b/1,c/1,(==>)/2,most/1,pt,
%~                     nt,bct]))
~*/
%~ unused(no_junit_results)

%~ test_completed_exit(0)
totalTime=1.000

FAILED: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k dl_01.pfc (returned 0) Add_LABELS='' Rem_LABELS='Skipped,Skipped,Errors,Warnings,Overtime,Skipped,Skipped'

ISSUE_INFO=92	OPEN	logicmoo.pfc.test.sanity_base.DL_01 JUnit	Test_9999, logicmoo.pfc.test.sanity_base, unit_test, DL_01, Failing	2021-09-26 22:47:21 +0000 UTC
ISSUE_ID=92
ISSUE_OC=OPEN
Editing Issue For FAILED 92	OPEN	logicmoo.pfc.test.sanity_base.DL_01 JUnit	Test_9999, logicmoo.pfc.test.sanity_base, unit_test, DL_01, Failing	2021-09-26 22:47:21 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/92
FileTestCase=logicmoo.pfc.test.sanity_base.DF_05 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['df_05.pfc']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base ; timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['df_05.pfc']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/pfc/t/sanity_base/df_05.pfc 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.pfc.test.sanity_base/DF_05/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3ADF_05 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/306 


%~ 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/packs_sys/pfc/t/sanity_base/df_05.pfc'),
%~ /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/logicmoo_test_header.pl:93 
%~ this_test_might_need( :-( use_module( library(logicmoo_plarkc))))


:- expects_dialect(pfc).

/*~
~*/


:- dynamic(test1_2_3/3).
/*~
~*/

:- dynamic(meta_argtypes/1).

%
%  PFC is a language extension for prolog.. there is so much that can be done in this language extension to Prolog
%
% Dec 13, 2035
% Douglas Miles
%  cls ; kill -9 %1 ; fg ; swipl -g "ensure_loaded(pack(logicmoo_base/t/examples/base/'sanity_abc.pfc'))."
 
/*~
~*/


%
%  PFC is a language extension for prolog.. there is so much that can be done in this language extension to Prolog
%
% Dec 13, 2035
% Douglas Miles
%  cls ; kill -9 %1 ; fg ; swipl -g "ensure_loaded(pack(logicmoo_base/t/examples/base/'sanity_abc.pfc'))."
 
:- dynamic(most/1).

/*~
~*/


:- expects_dialect(pfc).

/*~
~*/


meta_argtypes(most(ftAssertable)).

% BWD chaining
/*~
~*/


% BWD chaining
most((Q <gt;- P))/mpred_literal(Q) ==> (Q <gt;-(P, \+ ~(Q))).

% FWD chaining
/*~
~*/


% FWD chaining
most(P==>Q)/nonvar(Q) ==> (((P ==> most(Q)))).

% NEG chaining
/*~
~*/


% NEG chaining
most(~Q)/mpred_positive_literal(Q)  ==>  (( \+ Q ) ==> ~ Q ).

% POS chaining 1
/*~
~*/


% POS chaining 1
most(Q)/(mpred_positive_literal(Q),if_missing_mask(Q,R,Test)) ==> (  ( ( \+R /Test , (\+ ~ Q)) ==> Q )).

% POS chaining 2
/*~
~*/


% POS chaining 2
most(Q)/(mpred_positive_literal(Q),if_missing_mask(Q,R,Test)) ==> ( ((R/( \+(R=Q), Test)) ==> (\+ Q))).

% POS chaining 1+2
% most(Q)/(mpred_positive_literal(Q),if_missing_mask(Q,R,Test)) ==> (  ( ( \+R /Test ) ==> Q ) ,((R/( \+(R=Q), Test)) ==> (\+ Q))).

% most(Q) ==> if_missing(Q,Q).

%(most(P=>Q)/(mpred_literal_nv(Q),if_missing_mask(Q,R,Test)))  ==> ((P, \+ R/Test) => Q).
%(most(P=>Q)/nonvar(Q)) ==> (P => most(Q)).

 
/*~
~*/


% POS chaining 1+2
% most(Q)/(mpred_positive_literal(Q),if_missing_mask(Q,R,Test)) ==> (  ( ( \+R /Test ) ==> Q ) ,((R/( \+(R=Q), Test)) ==> (\+ Q))).

% most(Q) ==> if_missing(Q,Q).

%(most(P=>Q)/(mpred_literal_nv(Q),if_missing_mask(Q,R,Test)))  ==> ((P, \+ R/Test) => Q).
%(most(P=>Q)/nonvar(Q)) ==> (P => most(Q)).

 
:-ain(most(t(test1_2_3,1,2,3))).

/*~
~*/


most(t(test1_2_3,1,2,3)).


/*~
~*/



?- listing(test1_2_3).

/*~
:- dynamic test1_2_3/3.
:- multifile test1_2_3/3.
:- public test1_2_3/3.
:- module_transparent test1_2_3/3.


~*/


:- mpred_test(test1_2_3(1,2,3)).



% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/306 
% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/pfc/t/sanity_base/df_05.pfc 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.pfc.test.sanity_base/DF_05/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3ADF_05 

/*~
%~ ?-( mpred_test("Test_0001_Line_0000__test1_2_3_1",baseKB:test1_2_3(1,2,3))).
failure=info((why_was_true(baseKB:(\+test1_2_3(1,2,3))),nop(ftrace(baseKB:test1_2_3(1,2,3)))))
no_proof_for(\+test1_2_3(1,2,3)).

no_proof_for(\+test1_2_3(1,2,3)).

no_proof_for(\+test1_2_3(1,2,3)).

	name	=	'logicmoo.pfc.test.sanity_base.DF_05-Test_0001_Line_0000__test1_2_3_1'. 
	JUNIT_CLASSNAME	=	'logicmoo.pfc.test.sanity_base.DF_05'. 
	JUNIT_CMD	=	'timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "[\'df_05.pfc\']"'. 
% saving_junit: /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-test-sanity_base-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Logicmoo_pfc_test_sanity_base_DF_05_Test_0001_Line_0000_test1_2_3_1-junit.xml
~*/
%~ unused(no_junit_results)
Test_0001_Line_0000__test1_2_3_1	result	=	failure. 

%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/df_05.pfc:71 
%~ test_completed_exit(8)
totalTime=1.000

FAILED: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k df_05.pfc (returned 8) Add_LABELS='' Rem_LABELS='Skipped,Skipped,Errors,Warnings,Overtime,Skipped'

ISSUE_INFO=306	OPEN	logicmoo.pfc.test.sanity_base.DF_05 JUnit	Test_9999, logicmoo.pfc.test.sanity_base, unit_test, DF_05, Failing	2021-09-26 22:47:08 +0000 UTC
ISSUE_ID=306
ISSUE_OC=OPEN
Editing Issue For FAILED 306	OPEN	logicmoo.pfc.test.sanity_base.DF_05 JUnit	Test_9999, logicmoo.pfc.test.sanity_base, unit_test, DF_05, Failing	2021-09-26 22:47:08 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/306
FileTestCase=logicmoo.pfc.test.sanity_base.NLDM320_FWD JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['nldm320_fwd.pl']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base ; timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['nldm320_fwd.pl']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/pfc/t/sanity_base/nldm320_fwd.pl 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.pfc.test.sanity_base/NLDM320_FWD/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3ANLDM320_FWD 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/360 


%~ init_phase(after_load)
%~ init_phase(restore_state)
%
%~ init_why(after_boot,program)
%~ after_boot.
%~ Dont forget to ?- logicmoo_i_cyc_xform.
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/nldm320_fwd.pl:37 
%~ skipped(messy_on_output,cls)


adj=10

%~ message_hook_type(warning)
%~ message_hook(
%~    goal_failed( directive,
%~      user : ( predicate_property(tc(Tc,Tc3),number_of_clauses(CC)) ,
%~               write_ln( tc=CC))),
%~    warning,
%~    [ 'Goal (~w) failed: ~p' - [ directive,
%~                                 user : ( predicate_property(tc(Tc,Tc3),number_of_clauses(CC)) ,
%~                                          write_ln( tc=CC))]])
%~ source_location('/var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/nldm320_fwd.pl',48)
Goal (directive) failed: user:(predicate_property(tc(_490,_494),number_of_clauses(_498)),write_ln(tc=_498))
Warning: /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/nldm320_fwd.pl:48:
Warning:    Goal (directive) failed: user:(predicate_property(tc(_490,_494),number_of_clauses(_498)),write_ln(tc=_498))
% 85 inferences, 0.000 CPU in 0.000 seconds (99% CPU, 2470930 Lips)
%~ message_hook_type(error)
%~ message_hook(
%~    error(existence_error(procedure,tc/2),context('$bags':findall_loop/4,Context_Kw)),
%~    error,
%~    [ '~q/~w: '-[findall_loop,4],
%~      'Unknown procedure: ~q' - [ tc/2]])
%~ source_location('/var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/nldm320_fwd.pl',52)
findall_loop/4: Unknown procedure: tc/2
ERROR: /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/nldm320_fwd.pl:52:
ERROR:    findall_loop/4: Unknown procedure: tc/2
%~ message_hook_type(warning)
%~ message_hook(
%~    goal_failed( directive,
%~      user : ( time( findall(Tc,tc(_X,_Y),L))  ,
%~               ! ,
%~               length(L,N) ,
%~               write_ln( length_was(N)))),
%~    warning,
%~    [ 'Goal (~w) failed: ~p' - [ directive,
%~                                 user : ( time( findall(Tc,tc(_X,_Y),L))  ,
%~                                          ! ,
%~                                          length(L,N) ,
%~                                          write_ln( length_was(N)))]])
%~ source_location('/var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/nldm320_fwd.pl',52)
Goal (directive) failed: user:(time(findall(_524,tc(_526,_528),_530)),!,length(_530,_544),write_ln(length_was(_544)))
Warning: /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/nldm320_fwd.pl:52:
Warning:    Goal (directive) failed: user:(time(findall(_524,tc(_526,_528),_530)),!,length(_530,_544),write_ln(length_was(_544)))


time_was(0.02637983899999985)

% halt
totalTime=1.000

FAILED: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k nldm320_fwd.pl (returned 0) Add_LABELS='' Rem_LABELS='Skipped,Skipped,Errors,Warnings,Overtime,Skipped,Skipped'

ISSUE_INFO=360	OPEN	logicmoo.pfc.test.sanity_base.NLDM320_FWD JUnit	Test_9999, logicmoo.pfc.test.sanity_base, unit_test, NLDM320_FWD, Failing	2021-09-26 22:46:55 +0000 UTC
ISSUE_ID=360
ISSUE_OC=OPEN
Editing Issue For FAILED 360	OPEN	logicmoo.pfc.test.sanity_base.NLDM320_FWD JUnit	Test_9999, logicmoo.pfc.test.sanity_base, unit_test, NLDM320_FWD, Failing	2021-09-26 22:46:55 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/360
FileTestCase=logicmoo.pfc.test.sanity_base.NLDM1000 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['nldm1000.pfc']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base ; timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['nldm1000.pfc']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/pfc/t/sanity_base/nldm1000.pfc 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.pfc.test.sanity_base/NLDM1000/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3ANLDM1000 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/412 


%~ init_phase(after_load)
%~ init_phase(restore_state)
%
%~ init_why(after_boot,program)
%~ after_boot.
%~ Dont forget to ?- logicmoo_i_cyc_xform.
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/nldm1000.pfc:3 
%~ skipped(messy_on_output,cls)
totalTime=10.000

FAILED: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k nldm1000.pfc (returned 137) Add_LABELS='Errors,Overtime' Rem_LABELS='Skipped,Skipped,Warnings,Skipped'

ISSUE_INFO=412	OPEN	logicmoo.pfc.test.sanity_base.NLDM1000 JUnit	Test_9999, logicmoo.pfc.test.sanity_base, unit_test, NLDM1000, Failing, Errors, Overtime	2021-09-26 22:46:43 +0000 UTC
ISSUE_ID=412
ISSUE_OC=OPEN
Editing Issue For FAILED 412	OPEN	logicmoo.pfc.test.sanity_base.NLDM1000 JUnit	Test_9999, logicmoo.pfc.test.sanity_base, unit_test, NLDM1000, Failing, Errors, Overtime	2021-09-26 22:46:43 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/412
Warn: reached MAX_JUNIT_TESTS .. skipping .. nldm1000_fwd.subl
Warn: reached MAX_JUNIT_TESTS .. skipping .. nldm1000.P
Warn: reached MAX_JUNIT_TESTS .. skipping .. nldm1280.P
Warn: reached MAX_JUNIT_TESTS .. skipping .. nldm640.P
Warn: reached MAX_JUNIT_TESTS .. skipping .. nldm800.P
Warn: reached MAX_JUNIT_TESTS .. skipping .. nldm320.P
Warn: reached MAX_JUNIT_TESTS .. skipping .. tml_01d.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. nldm400.P
Warn: reached MAX_JUNIT_TESTS .. skipping .. nldm80.P
Warn: reached MAX_JUNIT_TESTS .. skipping .. fc_01u.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. dupe_chain_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. dia_pfc_mod_01c.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. dia_pfc_mod_01b.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. fc_01r.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. echo_test_fc_03.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. echo_test_fc_02.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. echo_test_fc_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. dia_pfc_mod_01a.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. dia_pfc_mod_01.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. attvar_03.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_inheritance_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. min_fail_01.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. holds_01b.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. tms_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. verbatums_05.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. verbatums_04.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. verbatums_03.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. verbatums_02.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. verbatums_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. update_number_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. update_list_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. undo_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. sv_or_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. sv_in_arg_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. sv_fwd_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. sv_default_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. shift_02.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. shift_01.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_undefined_09.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_undefined_08.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_undefined_07.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_undefined_06.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_undefined_05.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_undefined_04.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_undefined_03.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_undefined_02.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_undefined_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_inheritance_09.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_inheritance_08.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_inheritance_07.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_inheritance_06.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_inheritance_05.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_inheritance_04.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_inheritance_03.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retry_inheritance_02.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retract_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. reset_db_02.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. reset_db_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. predmt_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. ppdb_01.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. pl_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. neg_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. nd_cut_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. nd_08.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. nd_07.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. nd_06.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. nd_05.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. nd_04.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. nd_03.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. nd_02.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. nd_01.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_09.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_07.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_06.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_05.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_04.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_03.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_02.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_01.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mpred_pfc_test_04.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mpred_pfc_test_03.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mpred_pfc_test_02.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mpred_pfc_test_01.plt
Warn: reached MAX_JUNIT_TESTS .. skipping .. mpred_pfc_test_01.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mdefault_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. load_time_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. list_03.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. list_02.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. list_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. if_missing_05.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. if_missing_04.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. if_missing_03.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. if_missing_02.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. if_missing_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. hybrid_05.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. hybrid_04.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. hybrid_03.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. hybrid_02.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. hybrid_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. hard_mt_f01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. file_03.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. file_02.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. file_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. fc_09.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. fc_08.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. fc_07.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. fc_06.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. fc_05.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. fc_04.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. fc_03.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. fc_02.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. fc_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. dmost_02.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. dmost_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. df_07.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. df_06.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. df_04.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. df_03.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. df_02.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. df_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. conan_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. clause_fwd_02.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. bwd_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. bc_02.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. bc_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. attvar_09.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. attvar_08.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. attvar_07.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. attvar_06.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. attvar_05.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. attvar_04.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. attvar_02.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. attvar_01.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. abc_01.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. why_bug_01e.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. undo_02a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. undo_01b.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. undo_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. tml_01e.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. tml_01c.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. tml_01b.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. tml_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. sv_in_arg_01e.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. sv_in_arg_01d.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. sv_in_arg_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. sv_fwd_01c.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. sv_fwd_01b.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. sv_fwd_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. sv_fwd_01a_b.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. sv_default_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retract_01e.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retract_01d.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retract_01c.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retract_01b.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. retract_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. reset_db_02_user.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. reset_db_01_user.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. predmt_01b.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. predmt_01a.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. nldm40.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. nldm40.P
Warn: reached MAX_JUNIT_TESTS .. skipping .. nldm20.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. nldm10.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. never_retract_01b.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. neg_01v_r.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. neg_01v.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. neg_01e.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. neg_01c_r.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. neg_01c.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. neg_01b_r.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. neg_01b.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. neg_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. nd_09_rule.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. nd_02a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_07a.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_06_a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_03c.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_03b.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_03a.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_02a_0c.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_01e.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_01d.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_01c_0b.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_01c.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_01c_0a.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_01b.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mt_01a.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mdefault_01e.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. mdefault_01d.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. mdefault_01c.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. mdefault_01b.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. mdefault_01a_two.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. mdefault_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. list_03a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. list_02a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. list_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. if_missing_01c.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. if_missing_01b.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. if_missing_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. hybrid_05a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. hybrid_04a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. hybrid_03a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. hybrid_02a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. hybrid_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. holds_01c.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. hard_mt_04a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. gshape_01d.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. gshape_01c_r.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. gshape_01c.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. gshape_01b.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. gshape_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. file_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. fc_10.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. fc_05a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. fc_04_user.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. fc_03a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. fc_01v.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. fc_01s.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. clause_fwd_01c.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. clause_fwd_01b.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. clause_fwd_01a.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. circle_01d.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. circle_01c.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. circle_01b.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. circle_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. bwd_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. birds_01d.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. birds_01c.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. birds_01b.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. birds_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. bc_01d.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. bc_01c.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. bc_01b.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. bc_01a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. bc_01a_1.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. attvar_10.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. attvar_08c.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. attvar_08b.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. attvar_08a.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. attvar_02_in_user.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. sv_fwd_01a_a.pfc.hide
<!-- 
junit-viewer is /usr/bin/junit-viewer
junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-test-sanity_base-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-test-sanity_base-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer-rollup.html &> /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-test-sanity_base-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer.debug.html
junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-test-sanity_base-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-test-sanity_base-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer-rollup.html
Requirement already satisfied: junit2html in /usr/local/lib/python3.9/dist-packages (30.0.6)
Requirement already satisfied: jinja2>=2.11.2 in /usr/local/lib/python3.9/dist-packages (from junit2html) (3.0.1)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.9/dist-packages (from jinja2>=2.11.2->junit2html) (2.0.1)
junit2html is /usr/local/bin/junit2html
junit2html /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-test-sanity_base-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-test-sanity_base-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.html
TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-test-sanity_base-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units
-->
+ export 'GLOB=*0*.* 2>&1 | grep -2 -i '\''WARN\|ERROR\|_file\|00\|fail\|pass'\'''
+ GLOB='*0*.* 2>&1 | grep -2 -i '\''WARN\|ERROR\|_file\|00\|fail\|pass'\'''
+ '[' -z '*0*.* 2>&1 | grep -2 -i '\''WARN\|ERROR\|_file\|00\|fail\|pass'\''' ']'
+ lmoo-junit '*0*.* 2>&1 | grep -2 -i '\''WARN\|ERROR\|_file\|00\|fail\|pass'\'''
<!-- PACK_DIR=pfc -->
<!-- JUNIT_PACKAGE=logicmoo.pfc.sanity_base.quick_test -->
<!-- GLOBSTEM=logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass- -->
<!-- TEST_STEM=Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- Running release (all) tests
 ( cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/quick_test ; /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit *0*.* 2>&1 | grep -2 -i 'WARN\|ERROR\|_file\|00\|fail\|pass') -->
<!-- PACK_DIR=pfc -->
<!-- JUNIT_PACKAGE=logicmoo.pfc.sanity_base.quick_test -->
<!-- GLOBSTEM=logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass- -->
<!-- TEST_STEM=Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- LOGICMOO_WS=/var/lib/jenkins/workspace/logicmoo_workspace -->
<!-- test_completed=true -->
<!-- ROLLUP_STEM=Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Rollup -->
<!-- ROLLUP_TMP=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Rollup.tmp -->
Running Matching Tests: (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/quick_test ; /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k *0*.* 2>&1 | grep -2 -i 'WARN\|ERROR\|_file\|00\|fail\|pass')

gh: Validation Failed (HTTP 422)
SORTED_FILES=attvar_03.pfc fc_01.pfc bc_01.pfc
FileTestCase=logicmoo.pfc.sanity_base.quick_test.ATTVAR_03 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['attvar_03.pfc']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/quick_test ; timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['attvar_03.pfc']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/pfc/t/sanity_base/quick_test/attvar_03.pfc 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.pfc.sanity_base.quick_test/ATTVAR_03/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AATTVAR_03 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/633 


%~ 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/packs_sys/pfc/t/sanity_base/quick_test/attvar_03.pfc'),
%~ this_test_might_need( :-( use_module( library(logicmoo_plarkc))))

:- if(\+ current_module(attvar_reader)).
:- use_module(library(logicmoo/attvar_reader)).
/*~
~*/

:- endif.
% :- '$set_source_module'(ABox),'$set_typein_module'(ABox).

:- ABox = user, '$set_source_module'(ABox),'$set_typein_module'(ABox).
% Tests Non-module Forward chaining of assertable attributed variables


/*~
~*/

% Tests Non-module Forward chaining of assertable attributed variables


:- debug_logicmoo(_).
/*~
~*/

:- nodebug_logicmoo(http(_)).
/*~
~*/

:- debug_logicmoo(logicmoo(_)).

/*~
~*/


:- mpred_trace_exec.
% :- expects_dialect(pfc).

/*~
~*/

% :- expects_dialect(pfc).

:- dynamic(sk_out/1).
/*~
~*/

:- dynamic(sk_in/1).

% :- process_this_script.


/*~
~*/


% :- process_this_script.


sk_in(Ex)==>sk_out(Ex).

/*~
~*/


sk_in(foo).

/*~
~*/


:- read_attvars(true).
/*~
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/quick_test/attvar_03.pfc:40 
%~ install_attvar_expander(user)
~*/

:- set_prolog_flag(access_level,system).

/*~
~*/


sk_in(avar([vn='Ex',sk='SKF-666'])).

/*~
~*/


:- listing(sk_out/1).
/*~
%~ skipped( listing( sk_out/1))
~*/

:- listing(sk_in/1).


/*~
%~ skipped( listing( sk_in/1))
~*/



:- must((sk_in(VAR),get_attr(VAR,sk,What),What='SKF-666')).



% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/pfc/t/sanity_base/attvar_03.pfc 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.pfc.test.sanity_base/ATTVAR_03/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AATTVAR_03 

% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/633
/*~
%~ ?-( mpred_test( "Test_0001_Line_0000__sk_in_1_in_user",
%~       user : ( sk_in(VAR)  ,
%~                get_attr(VAR,sk,What) ,
%~                What='SKF-666'))).
failure=info((why_was_true(user:(\+ (sk_in(_28160),get_attr(_28160,sk,_28182),_28182='SKF-666'))),nop(ftrace(user:(sk_in(_28160),get_attr(_28160,sk,_28182),_28182='SKF-666')))))
no_proof_for(\+ (sk_in(In_Sk),get_attr(In_Sk,sk,Attr_SKF_666),Attr_SKF_666='SKF-666')).

no_proof_for(\+ (sk_in(In_Sk),get_attr(In_Sk,sk,Attr_SKF_666),Attr_SKF_666='SKF-666')).

no_proof_for(\+ (sk_in(In_Sk),get_attr(In_Sk,sk,Attr_SKF_666),Attr_SKF_666='SKF-666')).

	name	=	'logicmoo.pfc.sanity_base.quick_test.ATTVAR_03-Test_0001_Line_0000__sk_in_1_in_user'. 
	JUNIT_CLASSNAME	=	'logicmoo.pfc.sanity_base.quick_test.ATTVAR_03'. 
	JUNIT_CMD	=	'timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "[\'attvar_03.pfc\']"'. 
% saving_junit: /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Logicmoo_pfc_sanity_base_quick_test_ATTVAR_03_Test_0001_Line_0000_sk_in_1_in_user-junit.xml
~*/
%~ unused(no_junit_results)
Test_0001_Line_0000__sk_in_1_in_user	result	=	failure. 

%~ test_completed_exit(8)
totalTime=1.000

FAILED: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k attvar_03.pfc (returned 8) Add_LABELS='' Rem_LABELS='Skipped,Skipped,Errors,Warnings,Overtime,Skipped'

ISSUE_INFO=633	OPEN	logicmoo.pfc.sanity_base.quick_test.ATTVAR_03 JUnit	Test_9999, logicmoo.pfc.sanity_base.quick_test, unit_test, ATTVAR_03, Failing	2021-09-26 22:47:30 +0000 UTC
ISSUE_ID=633
ISSUE_OC=OPEN
Editing Issue For FAILED 633	OPEN	logicmoo.pfc.sanity_base.quick_test.ATTVAR_03 JUnit	Test_9999, logicmoo.pfc.sanity_base.quick_test, unit_test, ATTVAR_03, Failing	2021-09-26 22:47:30 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/633
FileTestCase=logicmoo.pfc.sanity_base.quick_test.FC_01 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['fc_01.pfc']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/quick_test ; timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['fc_01.pfc']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/pfc/t/sanity_base/quick_test/fc_01.pfc 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.pfc.sanity_base.quick_test/FC_01/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AFC_01 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/631 


%~ 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/packs_sys/pfc/t/sanity_base/quick_test/fc_01.pfc'),
%~ /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/logicmoo_test_header.pl:93 
%~ this_test_might_need( :-( use_module( library(logicmoo_plarkc))))


:- expects_dialect(pfc).

/*~
~*/


a11 ==> b11.
/*~
~*/

a11.

/*~
~*/


:- mpred_test(b11).

/*~
%~ ?-( mpred_test("Test_0001_Line_0000__B11",baseKB:b11)).
%~ FIlE: * https://logicmoo.org:2082/gitlab/logicmoo/logicmoo_workspace/-/edit/master/packs_sys/pfc/t/sanity_base/quick_test/fc_01.pfc#L14  
passed=info(why_was_true(baseKB:b11))

Justifications for b11:
    1.1 a11  % [* https://logicmoo.org:2082/gitlab/logicmoo/logicmoo_workspace/-/edit/master/packs_sys/pfc/t/sanity_base/quick_test/fc_01.pfc#L12 ] 
    1.2 a11==>b11  % [* https://logicmoo.org:2082/gitlab/logicmoo/logicmoo_workspace/-/edit/master/packs_sys/pfc/t/sanity_base/quick_test/fc_01.pfc#L11 ] 
    1.3 mfl4(_,baseKB,'* https://logicmoo.org:2082/gitlab/logicmoo/logicmoo_workspace/-/edit/master/packs_sys/pfc/t/sanity_base/quick_test/fc_01.pfc#L12 ',12) 
    1.4 mfl4(_,baseKB,'* https://logicmoo.org:2082/gitlab/logicmoo/logicmoo_workspace/-/edit/master/packs_sys/pfc/t/sanity_base/quick_test/fc_01.pfc#L11 ',11) 
	name	=	'logicmoo.pfc.sanity_base.quick_test.FC_01-Test_0001_Line_0000__B11'. 
	JUNIT_CLASSNAME	=	'logicmoo.pfc.sanity_base.quick_test.FC_01'. 
	JUNIT_CMD	=	'timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "[\'fc_01.pfc\']"'. 
% saving_junit: /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Logicmoo_pfc_sanity_base_quick_test_FC_01_Test_0001_Line_0000_B11-junit.xml
~*/


:- listing(j_u:junit_prop/3).

/*~
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/quick_test/fc_01.pfc:16 
%~ skipped( listing( j_u : junit_prop/3))
~*/


:- test_completed. 




/*~
%~ unused(no_junit_results)
Test_0001_Line_0000__B11	result	=	passed. 

%~ test_completed_exit(64)
totalTime=1.000

SUCCESS: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k fc_01.pfc (returned 64) Add_LABELS='' Rem_LABELS='Skipped,Errors,Warnings,Overtime,Skipped,Skipped'

ISSUE_INFO=631	OPEN	logicmoo.pfc.sanity_base.quick_test.FC_01 JUnit	Test_9999, FC_01, logicmoo.pfc.sanity_base.quick_test, unit_test, Passing	2021-09-26 22:47:37 +0000 UTC
ISSUE_ID=631
ISSUE_OC=OPEN
Updating Issue 631	OPEN	logicmoo.pfc.sanity_base.quick_test.FC_01 JUnit	Test_9999, FC_01, logicmoo.pfc.sanity_base.quick_test, unit_test, Passing	2021-09-26 22:47:37 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/631
FileTestCase=logicmoo.pfc.sanity_base.quick_test.BC_01 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['bc_01.pfc']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/quick_test ; timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['bc_01.pfc']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/pfc/t/sanity_base/quick_test/bc_01.pfc 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.pfc.sanity_base.quick_test/BC_01/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3ABC_01 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/635 


%~ 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/packs_sys/pfc/t/sanity_base/quick_test/bc_01.pfc'),
%~ this_test_might_need( :-( use_module( library(logicmoo_plarkc))))



:- dynamic(bc_q/1).
/*~
~*/

:- dynamic(bc_p/1).

/*~
~*/


:- (ain((bc_q(N) <gt;- bc_p(N)))).
/*~
~*/

:- listing(bc_q/1).

/*~
%~ skipped( listing( bc_q/1))
~*/


bc_p(a).
/*~
~*/

bc_p(b).
/*~
~*/

:- listing(bc_p/1).

/*~
%~ skipped( listing( bc_p/1))
~*/


:- mpred_trace_exec.

/*~
~*/


:- mpred_test(call_u(bc_p(b))).

%= nothing cached ?
/*~
%~ ?-( mpred_test("Test_0001_Line_0000__B",baseKB:call_u(bc_p(b)))).
passed=info(why_was_true(baseKB:call_u(bc_p(b))))
no_proof_for(call_u(bc_p(b))).

no_proof_for(call_u(bc_p(b))).

no_proof_for(call_u(bc_p(b))).

	name	=	'logicmoo.pfc.sanity_base.quick_test.BC_01-Test_0001_Line_0000__B'. 
	JUNIT_CLASSNAME	=	'logicmoo.pfc.sanity_base.quick_test.BC_01'. 
	JUNIT_CMD	=	'timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "[\'bc_01.pfc\']"'. 
% saving_junit: /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Logicmoo_pfc_sanity_base_quick_test_BC_01_Test_0001_Line_0000_B-junit.xml
~*/


%= nothing cached ?
:- listing(bc_q/1).

/*~
%~ skipped( listing( bc_q/1))
~*/


:- mpred_test(\+ clause_u(bc_q(_),true)).

/*~
%~ ?-( mpred_test("Test_0002_Line_0000__naf_bc_q_1",baseKB:(\+clause_u(bc_q(Q),true)))).
passed=info(why_was_true(baseKB:(\+clause_u(bc_q(_2540),true))))
no_proof_for(\+clause_u(bc_q(Q1),true)).

no_proof_for(\+clause_u(bc_q(Q1),true)).

no_proof_for(\+clause_u(bc_q(Q1),true)).

	name	=	'logicmoo.pfc.sanity_base.quick_test.BC_01-Test_0002_Line_0000__naf_bc_q_1'. 
	JUNIT_CLASSNAME	=	'logicmoo.pfc.sanity_base.quick_test.BC_01'. 
	JUNIT_CMD	=	'timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "[\'bc_01.pfc\']"'. 
% saving_junit: /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Logicmoo_pfc_sanity_base_quick_test_BC_01_Test_0002_Line_0000_naf_bc_q_1-junit.xml
~*/


:- mpred_test((call_u(bc_q(b)))).

%= something cached
/*~
%~ ?-( mpred_test("Test_0003_Line_0000__B",baseKB:call_u(bc_q(b)))).
%~ %~ 	Adding positive
%~ %~ 		trigger: bc_p(b)
%~ %~ 		body: rhs([ bc_q(b)])
%~ %~ 	 Support: (bc_q(P_Q)<gt;-bc_p(P_Q)),mfl4(['N'=N],baseKB,'* https://logicmoo.org:2082/gitlab/logicmoo/logicmoo_workspace/-/edit/master/packs_sys/pfc/t/sanity_base/quick_test/bc_01.pfc#L19 ',19)
%~ call_mpred_post4 :-
%~   level=147 ,
%~   que=0 ,
%~   assertion_status=unique ,
%~   support_status=none ,
%~   post1 = mpred_prop(baseKB,bc_p,1,pfcPosTrigger) ,
%~   fix_mp=baseKB ,
%~   mz=baseKB ,
%~   p0 = mpred_prop(baseKB,bc_p,1,pfcPosTrigger) ,
%~   support_fact = ( bc_q(_2028)<gt;-bc_p(_2028) ,
%~                    mfl4(
%~                       [ 'N'=N],
%~                        baseKB, '/var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/quick_test/bc_01.pfc', 19)) ,
%~   support_trig=ax.
%~ baseKB : mpred_fwc1( mpred_prop(baseKB,bc_p,1,pfcPosTrigger)).
%~ %~ 	Found positive trigger: mpred_prop(baseKB,bc_p,1,pfcPosTrigger)
%~ %~ 		body: \+ground((bc_p/1))*->rhs([ { trace_or_throw( mpred_prop(baseKB,bc_p,1,pfcPosTrigger)) }])
%~ %~ 	Found positive trigger: mpred_prop(baseKB,bc_p,1,pfcPosTrigger)
%~ %~ 		body: rhs([ mpred_prop(baseKB,bc_p,1,pfcWatches)])
%~ %~ 	RHS-Post1: mpred_prop(baseKB,bc_p,1,pfcWatches)
%~ %~ 	Support: mpred_prop(baseKB,bc_p,1,pfcPosTrigger),$pt(baseKB,mpred_prop(baseKB,bc_p,1,pfcPosTrigger),rhs([ mpred_prop(baseKB,bc_p,1,pfcWatches)]))
%~ call_mpred_post4 :-
%~   level=185 ,
%~   que=0 ,
%~   assertion_status=unique ,
%~   support_status=none ,
%~   post1 = mpred_prop(baseKB,bc_p,1,pfcWatches) ,
%~   fix_mp=baseKB ,
%~   mz=baseKB ,
%~   p0 = mpred_prop(baseKB,bc_p,1,pfcWatches) ,
%~   support_fact = mpred_prop(baseKB,bc_p,1,pfcPosTrigger) ,
%~   support_trig = '$pt'( baseKB,
%~                    mpred_prop(baseKB,bc_p,1,pfcPosTrigger),
%~                    rhs([mpred_prop(baseKB,bc_p,1,pfcWatches)])).
%~ baseKB : mpred_fwc1( mpred_prop(baseKB,bc_p,1,pfcWatches)).
%~ %~ 	Found positive trigger: mpred_prop(baseKB,bc_p,1,pfcWatches)
%~ %~ 		body: \+ground((bc_p/1))*->rhs([ { trace_or_throw( mpred_prop(baseKB,bc_p,1,pfcWatches)) }])
%~ %~ 	Found positive trigger: mpred_prop(baseKB,bc_p,1,pfcWatches)
%~ %~ 		body: rhs([ { kb_shared( baseKB : bc_p/1) }])
%~ call_mpred_post4 :-
%~   level=302 ,
%~   que=0 ,
%~   assertion_status=unique ,
%~   support_status=none ,
%~   post1 = mpred_prop(baseKB,bc_p,1,kb_shared) ,
%~   fix_mp=baseKB ,
%~   mz=baseKB ,
%~   p0 = mpred_prop(baseKB,bc_p,1,kb_shared) ,
%~   support_fact = mfl4(_28554,baseKB,'/var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/quick_test/bc_01.pfc',35) ,
%~   support_trig=ax.
%~ baseKB : mpred_fwc1( mpred_prop(baseKB,bc_p,1,kb_shared)).
%~ %~ 	Found positive trigger: mpred_prop(baseKB,bc_p,1,kb_shared)
%~ %~ 		body: $pt(baseKB,genlMt(Call_BaseKB,baseKB),(Call_BaseKB\=baseKB*->rhs([ { nop( dmsg_pretty( Call_BaseKB :
%~ %~
%~ %~                                                                                          call(kb_shared,Call_BaseKB:bc_p/1))),
%~ %~                                                                      show_failure( on_x_fail( Call_BaseKB :
%~ %~
%~ %~                                                                                                 call(kb_shared,Call_BaseKB:bc_p/1))) }])))
%~ %~ 	Adding positive
%~ %~ 		trigger: genlMt(BaseKB,baseKB)
%~ %~ 		body: Call_BaseKB\=baseKB*->rhs([ { nop( dmsg_pretty( Call_BaseKB :
%~ %~
%~ %~                                                   call(kb_shared,Call_BaseKB:bc_p/1))),
%~ %~                               show_failure( on_x_fail( Call_BaseKB :
%~ %~
%~ %~                                                          call(kb_shared,Call_BaseKB:bc_p/1))) }])
%~ %~ 	 Support: mpred_prop(baseKB,bc_p,1,kb_shared),$pt(baseKB,mpred_prop(baseKB,bc_p,1,kb_shared),$pt(baseKB,genlMt(Call_BaseKB,baseKB),(Call_BaseKB\=baseKB*->rhs(
%~ %~                             [ { nop( dmsg_pretty( Call_BaseKB :
%~ %~
%~ %~                                                     call(kb_shared,Call_BaseKB:bc_p/1))),
%~ %~                                 show_failure( on_x_fail( Call_BaseKB :
%~ %~
%~ %~                                                            call(kb_shared,Call_BaseKB:bc_p/1))) }]))))
%~ %~ 	Found positive trigger: mpred_prop(baseKB,bc_p,1,kb_shared)
%~ %~ 		body: \+ground((bc_p/1))*->rhs([ { trace_or_throw( mpred_prop(baseKB,bc_p,1,kb_shared)) }])
%~ %~ 	Found positive trigger: mpred_prop(baseKB,bc_p,1,kb_shared)
%~ %~ 		body: genlPreds(kb_shared,Prop_GenlPreds_Kb_shared)*->rhs([ mpred_prop(baseKB,bc_p,1,Prop_GenlPreds_Kb_shared)])
%~ %~ 	Found positive trigger: mpred_prop(baseKB,bc_p,1,pfcWatches)
%~ %~ 		body: genlPreds(pfcWatches,Prop_GenlPreds_PfcWatches)*->rhs([ mpred_prop(baseKB,bc_p,1,Prop_GenlPreds_PfcWatches)])
%~ %~ 	Found positive trigger: mpred_prop(baseKB,bc_p,1,pfcPosTrigger)
%~ %~ 		body: genlPreds(pfcPosTrigger,Prop_GenlPreds_PfcPosTrigger)*->rhs([ mpred_prop(baseKB,bc_p,1,Prop_GenlPreds_PfcPosTrigger)])
%~ %~ 	RHS-Post1: bc_q(b)
%~ %~ 	Support: bc_p(b),$pt(baseKB,bc_p(b),rhs([ bc_q(b)]))
%~ call_mpred_post4 :-
%~   level=139 ,
%~   que=0 ,
%~   assertion_status=unique ,
%~   support_status=none ,
%~   post1 = bc_q(b) ,
%~   fix_mp=baseKB ,
%~   mz=baseKB ,
%~   p0 = bc_q(b) ,
%~   support_fact = bc_p(b) ,
%~   support_trig = '$pt'(baseKB,bc_p(b),rhs([bc_q(b)])).
%~ baseKB : mpred_fwc1( bc_q(b)).
passed=info(why_was_true(baseKB:call_u(bc_q(b))))
no_proof_for(call_u(bc_q(b))).

%~ %~ 	Adding positive
%~ %~ 		trigger: bc_p(b)
%~ %~ 		body: rhs([ bc_q(b)])
%~ %~ 	 Support: (bc_q(P_Q)<gt;-bc_p(P_Q)),mfl4(['N'=N],baseKB,'* https://logicmoo.org:2082/gitlab/logicmoo/logicmoo_workspace/-/edit/master/packs_sys/pfc/t/sanity_base/quick_test/bc_01.pfc#L19 ',19)
%~ %~ 	RHS-Post1: bc_q(b)
%~ %~ 	Support: bc_p(b),$pt(baseKB,bc_p(b),rhs([ bc_q(b)]))
%~ call_mpred_post4 :-
%~   level=191 ,
%~   que=0 ,
%~   assertion_status=identical ,
%~   support_status=exact ,
%~   post1 = bc_q(b) ,
%~   fix_mp=baseKB ,
%~   mz=baseKB ,
%~   p0 = bc_q(b) ,
%~   support_fact = bc_p(b) ,
%~   support_trig = '$pt'(baseKB,bc_p(b),rhs([bc_q(b)])).
no_proof_for(call_u(bc_q(b))).

no_proof_for(call_u(bc_q(b))).

	name	=	'logicmoo.pfc.sanity_base.quick_test.BC_01-Test_0003_Line_0000__B'. 
	JUNIT_CLASSNAME	=	'logicmoo.pfc.sanity_base.quick_test.BC_01'. 
	JUNIT_CMD	=	'timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "[\'bc_01.pfc\']"'. 
% saving_junit: /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Logicmoo_pfc_sanity_base_quick_test_BC_01_Test_0003_Line_0000_B-junit.xml
~*/


%= something cached
:- listing(bc_q/1).
/*~
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/pfc/t/sanity_base/quick_test/bc_01.pfc:38 
%~ skipped( listing( bc_q/1))
~*/

:- mpred_test( clause_u(bc_q(_),true)).


/*~
%~ ?-( mpred_test("Test_0004_Line_0000__bc_q_1",baseKB:clause_u(bc_q(Q),true))).
passed=info(why_was_true(baseKB:clause_u(bc_q(b),true)))
no_proof_for(clause_u(bc_q(b),true)).

no_proof_for(clause_u(bc_q(b),true)).

no_proof_for(clause_u(bc_q(b),true)).

	name	=	'logicmoo.pfc.sanity_base.quick_test.BC_01-Test_0004_Line_0000__bc_q_1'. 
	JUNIT_CLASSNAME	=	'logicmoo.pfc.sanity_base.quick_test.BC_01'. 
	JUNIT_CMD	=	'timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "[\'bc_01.pfc\']"'. 
% saving_junit: /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Logicmoo_pfc_sanity_base_quick_test_BC_01_Test_0004_Line_0000_bc_q_1-junit.xml
~*/
%~ unused(no_junit_results)
Test_0001_Line_0000__B	result	=	passed. 
Test_0002_Line_0000__naf_bc_q_1	result	=	passed. 
Test_0003_Line_0000__B	result	=	passed. 
Test_0004_Line_0000__bc_q_1	result	=	passed. 

%~ test_completed_exit(64)
totalTime=1.000

SUCCESS: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k bc_01.pfc (returned 64) Add_LABELS='' Rem_LABELS='Skipped,Errors,Warnings,Overtime,Skipped,Skipped'

ISSUE_INFO=635	OPEN	logicmoo.pfc.sanity_base.quick_test.BC_01 JUnit	Test_9999, logicmoo.pfc.sanity_base.quick_test, unit_test, BC_01, Passing	2021-09-26 22:47:43 +0000 UTC
ISSUE_ID=635
ISSUE_OC=OPEN
Updating Issue 635	OPEN	logicmoo.pfc.sanity_base.quick_test.BC_01 JUnit	Test_9999, logicmoo.pfc.sanity_base.quick_test, unit_test, BC_01, Passing	2021-09-26 22:47:43 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/635
<!-- 
junit-viewer is /usr/bin/junit-viewer
junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer-rollup.html &> /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer.debug.html
junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer-rollup.html
Requirement already satisfied: junit2html in /usr/local/lib/python3.9/dist-packages (30.0.6)
Requirement already satisfied: jinja2>=2.11.2 in /usr/local/lib/python3.9/dist-packages (from junit2html) (3.0.1)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.9/dist-packages (from jinja2>=2.11.2->junit2html) (2.0.1)
junit2html is /usr/local/bin/junit2html
junit2html /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.html
TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-pfc-sanity_base-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units
-->
+ lmoo-junit '*0*.* 2>&1 | grep -2 -i '\''WARN\|ERROR\|_file\|00\|fail\|pass'\'''
<!-- PACK_DIR=logicmoo_base -->
<!-- JUNIT_PACKAGE=logicmoo.base.fol.quick_test -->
<!-- GLOBSTEM=logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass- -->
<!-- TEST_STEM=Report-logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- Running release (all) tests
 ( cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/quick_test ; /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit *0*.* 2>&1 | grep -2 -i 'WARN\|ERROR\|_file\|00\|fail\|pass') -->
<!-- PACK_DIR=logicmoo_base -->
<!-- JUNIT_PACKAGE=logicmoo.base.fol.quick_test -->
<!-- GLOBSTEM=logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass- -->
<!-- TEST_STEM=Report-logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- LOGICMOO_WS=/var/lib/jenkins/workspace/logicmoo_workspace -->
<!-- test_completed=true -->
<!-- ROLLUP_STEM=Report-logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Rollup -->
<!-- ROLLUP_TMP=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Rollup.tmp -->
Running Matching Tests: (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/quick_test ; /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k *0*.* 2>&1 | grep -2 -i 'WARN\|ERROR\|_file\|00\|fail\|pass')

gh: Validation Failed (HTTP 422)
SORTED_FILES=five_leftof_type_01.pl
FileTestCase=logicmoo.base.fol.quick_test.FIVE_LEFTOF_TYPE_01 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['five_leftof_type_01.pl']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/quick_test ; timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['five_leftof_type_01.pl']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_base/t/examples/fol/quick_test/five_leftof_type_01.pl 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.base.fol.quick_test/FIVE_LEFTOF_TYPE_01/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AFIVE_LEFTOF_TYPE_01 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/623 


%~ 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/packs_sys/logicmoo_base/t/examples/fol/quick_test/five_leftof_type_01.pl'),
%~ /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/logicmoo_test_header.pl:91 
%~ this_test_might_need( :-( expects_dialect(pfc)))
%~ this_test_might_need( :-( use_module( library(logicmoo_plarkc))))

% =============================================
% File 'mpred_builtin.pfc'
% Purpose: Agent Reactivity for SWI-Prolog
% Maintainer: Douglas Miles
% Contact: $Author: dmiles $@users.sourceforge.net %
% Version: 'interface' 1.0.0
% Revision: $Revision: 1.9 $
% Revised At: $Date: 2002/06/27 14:13:20 $
% =============================================
%

:- mpred_test(true).

% There are five houses in a row.
/*~
%~ ?-( mpred_test("Test_0001_Line_0000__True",baseKB:true)).
passed=info(why_was_true(baseKB:true))
no_proof_for(true).

no_proof_for(true).

no_proof_for(true).

	name	=	'logicmoo.base.fol.quick_test.FIVE_LEFTOF_TYPE_01-Test_0001_Line_0000__True'. 
	JUNIT_CLASSNAME	=	'logicmoo.base.fol.quick_test.FIVE_LEFTOF_TYPE_01'. 
	JUNIT_CMD	=	'timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "[\'five_leftof_type_01.pl\']"'. 
% saving_junit: /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Logicmoo_base_fol_quick_test_FIVE_LEFTOF_TYPE_01_Test_0001_Line_0000_True-junit.xml
~*/


% There are five houses in a row.
:- nop(module( baseKB)).

% makes the KB monotonic
/*~
~*/


% makes the KB monotonic
:- set_kif_option(qualify_modality,simple_nesc).

/*~
~*/


leftof(h1, h2).
/*~
%~ debugm(baseKB,show_success(baseKB,baseKB:ain(clif(leftof(h1,h2)))))
%   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: 1616 words .. **



** Grammar from file /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_nlu/ext/chat80/original/lex.xg: 372 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.25 sec, 3 clauses
% /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/debuggery/dmsg compiled into dmsg 0.12 sec, -16 clauses




=======================================================
leftof(h1,h2)
============================================


?- kif_to_boxlog( leftof(h1,h2) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  h1 leftof h2
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(leftof(h1,h2))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(leftof(h1,h2)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that h1 leftof h2
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( leftof(h1,h2)).

============================================
~*/

leftof(h2, h3).
/*~
%~ debugm(baseKB,show_success(baseKB,baseKB:ain(clif(leftof(h2,h3)))))




=======================================================
leftof(h2,h3)
============================================


?- kif_to_boxlog( leftof(h2,h3) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  h2 leftof h3
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(leftof(h2,h3))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(leftof(h2,h3)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that h2 leftof h3
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( leftof(h2,h3)).

============================================
~*/

leftof(h3, h4).
/*~
%~ debugm(baseKB,show_success(baseKB,baseKB:ain(clif(leftof(h3,h4)))))




=======================================================
leftof(h3,h4)
============================================


?- kif_to_boxlog( leftof(h3,h4) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  h3 leftof h4
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(leftof(h3,h4))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(leftof(h3,h4)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that h3 leftof h4
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( leftof(h3,h4)).

============================================
~*/

leftof(h4, h5).

% this should cause h1-h5 to become houses
/*~
%~ debugm(baseKB,show_success(baseKB,baseKB:ain(clif(leftof(h4,h5)))))




=======================================================
leftof(h4,h5)
============================================


?- kif_to_boxlog( leftof(h4,h5) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  h4 leftof h5
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(leftof(h4,h5))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(leftof(h4,h5)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that h4 leftof h5
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( leftof(h4,h5)).

============================================
~*/


% this should cause h1-h5 to become houses
leftof(H1, H2) => house(H1) & house(H2).

/*~
%~ debugm( baseKB,
%~   show_success( baseKB,
%~     baseKB : ain( clif( leftof(H1,H2)=>(house(H1)&house(H2))))))




=======================================================
=>(leftof('$VAR'('House_Leftof'),'$VAR'('House_Leftof3')),&(house('$VAR'('House_Leftof')),house('$VAR'('House_Leftof3'))))
============================================


?- kif_to_boxlog( leftof(House_Leftof,House_Leftof3)=>(house(House_Leftof)&house(House_Leftof3)) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  If:
%~    ?House_Leftof leftof ?House_Leftof3 then it is
%~  Implied that:
%~    " ?House_Leftof isa house "  and
%~    " ?House_Leftof3 isa house "
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = =>(leftof('$VAR'('House_Leftof'),'$VAR'('House_Leftof3')),and(house('$VAR'('House_Leftof')),house('$VAR'('House_Leftof3'))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 6 entailment(s): 
nesc(leftof(House_Leftof,House_Leftof3))&nesc(~house(House_Leftof))==>nesc(~house(House_Leftof3)).
nesc(leftof(House_Leftof,House_Leftof3))&nesc(~house(House_Leftof3))==>nesc(~house(House_Leftof)).
nesc(leftof(House_Leftof,House_Leftof3))&poss(house(House_Leftof))==>nesc(house(House_Leftof3)).
nesc(leftof(House_Leftof,House_Leftof3))&poss(house(House_Leftof3))==>nesc(house(House_Leftof)).
poss(house(House_Leftof))&nesc(~house(House_Leftof3))==>nesc(~leftof(House_Leftof,House_Leftof3)).
poss(house(House_Leftof3))&nesc(~house(House_Leftof))==>nesc(~leftof(House_Leftof,House_Leftof3)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?House_Leftof leftof ?House_Leftof3 " is necessarily true  and
%~    " ?House_Leftof isa house " is necessarily false
%~  It's Proof that:
%~    " ?House_Leftof3 isa house " is necessarily false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( nesc(leftof(House_Leftof,House_Leftof3))&nesc(~house(House_Leftof)) ==> 
  nesc( ~( house(House_Leftof3)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?House_Leftof leftof ?House_Leftof3 " is necessarily true  and
%~    " ?House_Leftof3 isa house " is necessarily false
%~  It's Proof that:
%~    " ?House_Leftof isa house " is necessarily false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( nesc(leftof(House_Leftof,House_Leftof3))&nesc(~house(House_Leftof3)) ==> 
  nesc( ~( house(House_Leftof)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?House_Leftof leftof ?House_Leftof3 " is necessarily true  and
%~    " ?House_Leftof isa house " is possible
%~  It's Proof that:
%~    " ?House_Leftof3 isa house " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( nesc(leftof(House_Leftof,House_Leftof3))&poss(house(House_Leftof)) ==> 
  nesc( house(House_Leftof3))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?House_Leftof leftof ?House_Leftof3 " is necessarily true  and
%~    " ?House_Leftof3 isa house " is possible
%~  It's Proof that:
%~    " ?House_Leftof isa house " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( nesc(leftof(House_Leftof,House_Leftof3))&poss(house(House_Leftof3)) ==> 
  nesc( house(House_Leftof))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?House_Leftof isa house " is possible  and
%~    " ?House_Leftof3 isa house " is necessarily false
%~  It's Proof that:
%~    " ?House_Leftof leftof ?House_Leftof3 " is necessarily false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( poss(house(House_Leftof))&nesc(~house(House_Leftof3)) ==> 
  nesc( ~( leftof(House_Leftof,House_Leftof3)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?House_Leftof3 isa house " is possible  and
%~    " ?House_Leftof isa house " is necessarily false
%~  It's Proof that:
%~    " ?House_Leftof leftof ?House_Leftof3 " is necessarily false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( poss(house(House_Leftof3))&nesc(~house(House_Leftof)) ==> 
  nesc( ~( leftof(House_Leftof,House_Leftof3)))).

============================================
%~ kif_to_boxlog_attvars2 = =>(leftof('$VAR'('H1'),'$VAR'('H2')),and(house('$VAR'('H1')),house('$VAR'('H2'))))
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?H2 isa house " is possible  and
%~    " ?H1 isa house " is necessarily false
%~  It's Proof that:
%~    " ?H1 leftof ?H2 " is necessarily false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

poss(house(H2))&nesc(~house(H1))==>nesc(~leftof(H1,H2)).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?H1 leftof ?H2 " is necessarily true  and
%~    " ?H1 isa house " is necessarily false
%~  It's Proof that:
%~    " ?H2 isa house " is necessarily false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc(leftof(H1,H2))&nesc(~house(H1))==>nesc(~house(H2)).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?H1 leftof ?H2 " is necessarily true  and
%~    " ?H2 isa house " is possible
%~  It's Proof that:
%~    " ?H1 isa house " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc(leftof(H1,H2))&poss(house(H2))==>nesc(house(H1)).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?H1 isa house " is possible  and
%~    " ?H2 isa house " is necessarily false
%~  It's Proof that:
%~    " ?H1 leftof ?H2 " is necessarily false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

poss(house(H1))&nesc(~house(H2))==>nesc(~leftof(H1,H2)).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?H1 leftof ?H2 " is necessarily true  and
%~    " ?H2 isa house " is necessarily false
%~  It's Proof that:
%~    " ?H1 isa house " is necessarily false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc(leftof(H1,H2))&nesc(~house(H2))==>nesc(~house(H1)).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?H1 leftof ?H2 " is necessarily true  and
%~    " ?H1 isa house " is possible
%~  It's Proof that:
%~    " ?H2 isa house " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc(leftof(H1,H2))&poss(house(H1))==>nesc(house(H2)).

~*/


:- mpred_test(kif_compile).

% intractive_test/1 means only run if interactive
/*~
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/quick_test/five_leftof_type_01.pl:29 
%~ ?-( mpred_test("Test_0002_Line_0000__Kif_compile",baseKB:kif_compile)).
%~ kif_to_boxlog_attvars2 = necessary(leftof(h1,h2))
%~ kif_to_boxlog_attvars2 = necessary(leftof(h2,h3))
%~ kif_to_boxlog_attvars2 = necessary(leftof(h3,h4))
%~ kif_to_boxlog_attvars2 = necessary(leftof(h4,h5))
%~ kif_to_boxlog_attvars2 = =>(leftof('$VAR'('House_Leftof'),'$VAR'('House_Leftof1')),and(house('$VAR'('House_Leftof')),house('$VAR'('House_Leftof1'))))
passed=info(why_was_true(baseKB:kif_compile))
no_proof_for(kif_compile).

no_proof_for(kif_compile).

no_proof_for(kif_compile).

	name	=	'logicmoo.base.fol.quick_test.FIVE_LEFTOF_TYPE_01-Test_0002_Line_0000__Kif_compile'. 
	JUNIT_CLASSNAME	=	'logicmoo.base.fol.quick_test.FIVE_LEFTOF_TYPE_01'. 
	JUNIT_CMD	=	'timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "[\'five_leftof_type_01.pl\']"'. 
% saving_junit: /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Logicmoo_base_fol_quick_test_FIVE_LEFTOF_TYPE_01_Test_0002_Line_0000_Kif_compile-junit.xml
~*/


% intractive_test/1 means only run if interactive
:- interactive_test(listing(pfclog)).

% mpred_test/1 each become a Junit test that must succeed
/*~
?-listing(pfclog)
:- dynamic pfclog/1.
:- multifile pfclog/1.
:- public pfclog/1.
:- module_transparent pfclog/1.

pfclog(nesc(leftof(h1, h2))).
pfclog(nesc(leftof(h2, h3))).
pfclog(nesc(leftof(h3, h4))).
pfclog(nesc(leftof(h4, h5))).
pfclog((poss(house(A)), nesc(~house(B))==>nesc(~leftof(B, A)))).
pfclog((nesc(leftof(A, B)), nesc(~house(A))==>nesc(~house(B)))).
pfclog((nesc(leftof(A, B)), poss(house(B))==>nesc(house(A)))).
pfclog((poss(house(A)), nesc(~house(B))==>nesc(~leftof(A, B)))).
pfclog((nesc(leftof(A, B)), nesc(~house(B))==>nesc(~house(A)))).
pfclog((nesc(leftof(A, B)), poss(house(A))==>nesc(house(B)))).

~*/


% mpred_test/1 each become a Junit test that must succeed
:- mpred_test(pfclog_compile).


% :- mpred_test(nesc(leftof(h4, h5))).



% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_base/t/examples/fol/quick_test/five_leftof_type_01.pl 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.base.fol.quick_test/FIVE_LEFTOF_TYPE_01/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AFIVE_LEFTOF_TYPE_01 

% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/623
/*~
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/quick_test/five_leftof_type_01.pl:35 
%~ ?-( mpred_test("Test_0003_Line_0000__Pfclog_compile",baseKB:pfclog_compile)).
passed=info(why_was_true(baseKB:pfclog_compile))
no_proof_for(pfclog_compile).

no_proof_for(pfclog_compile).

no_proof_for(pfclog_compile).

	name	=	'logicmoo.base.fol.quick_test.FIVE_LEFTOF_TYPE_01-Test_0003_Line_0000__Pfclog_compile'. 
	JUNIT_CLASSNAME	=	'logicmoo.base.fol.quick_test.FIVE_LEFTOF_TYPE_01'. 
	JUNIT_CMD	=	'timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "[\'five_leftof_type_01.pl\']"'. 
% saving_junit: /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Logicmoo_base_fol_quick_test_FIVE_LEFTOF_TYPE_01_Test_0003_Line_0000_Pfclog_compile-junit.xml
~*/
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/quick_test/five_leftof_type_01.pl:47 
%~ unused(no_junit_results)
Test_0001_Line_0000__True	result	=	passed. 
Test_0002_Line_0000__Kif_compile	result	=	passed. 
Test_0003_Line_0000__Pfclog_compile	result	=	passed. 

%~ test_completed_exit(64)
totalTime=4.000

SUCCESS: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k five_leftof_type_01.pl (returned 64) Add_LABELS='' Rem_LABELS='Skipped,Errors,Warnings,Overtime,Skipped,Skipped'

ISSUE_INFO=623	OPEN	logicmoo.base.fol.quick_test.FIVE_LEFTOF_TYPE_01 JUnit	FIVE_LEFTOF_TYPE_01, Test_9999, unit_test, Passing, logicmoo.base.fol.quick_test	2021-09-26 22:47:55 +0000 UTC
ISSUE_ID=623
ISSUE_OC=OPEN
Updating Issue 623	OPEN	logicmoo.base.fol.quick_test.FIVE_LEFTOF_TYPE_01 JUnit	FIVE_LEFTOF_TYPE_01, Test_9999, unit_test, Passing, logicmoo.base.fol.quick_test	2021-09-26 22:47:55 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/623
<!-- 
junit-viewer is /usr/bin/junit-viewer
junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer-rollup.html &> /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer.debug.html
junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer-rollup.html
Requirement already satisfied: junit2html in /usr/local/lib/python3.9/dist-packages (30.0.6)
Requirement already satisfied: jinja2>=2.11.2 in /usr/local/lib/python3.9/dist-packages (from junit2html) (3.0.1)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.9/dist-packages (from jinja2>=2.11.2->junit2html) (2.0.1)
junit2html is /usr/local/bin/junit2html
junit2html /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.html
TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-quick_test-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units
-->
+ lmoo-junit '*0*.* 2>&1 | grep -2 -i '\''WARN\|ERROR\|_file\|00\|fail\|pass'\'''
<!-- PACK_DIR=logicmoo_base -->
<!-- JUNIT_PACKAGE=logicmoo.base.fol.fiveof -->
<!-- GLOBSTEM=logicmoo-base-fol-fiveof-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass- -->
<!-- TEST_STEM=Report-logicmoo-base-fol-fiveof-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-fiveof-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- Running release (all) tests
 ( cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/fiveof ; /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit *0*.* 2>&1 | grep -2 -i 'WARN\|ERROR\|_file\|00\|fail\|pass') -->
<!-- PACK_DIR=logicmoo_base -->
<!-- JUNIT_PACKAGE=logicmoo.base.fol.fiveof -->
<!-- GLOBSTEM=logicmoo-base-fol-fiveof-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass- -->
<!-- TEST_STEM=Report-logicmoo-base-fol-fiveof-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-fiveof-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- LOGICMOO_WS=/var/lib/jenkins/workspace/logicmoo_workspace -->
<!-- test_completed=true -->
<!-- ROLLUP_STEM=Report-logicmoo-base-fol-fiveof-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Rollup -->
<!-- ROLLUP_TMP=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-fiveof-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Rollup.tmp -->
Running Matching Tests: (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/fiveof ; /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k *0*.* 2>&1 | grep -2 -i 'WARN\|ERROR\|_file\|00\|fail\|pass')

gh: Validation Failed (HTTP 422)
SORTED_FILES=five_leftof_exactly_02.pl five_leftof_insts_02.pl five_leftof_skollem_02.pl five_leftof_up_down_02.pl five_leftof_all_02.pl nonmonotonic_type_01.pl monotonic_type_01.pl five_leftof_type_02.pl five_leftof_type_01.pl five_leftof_03.pl five_leftof_02.pl
FileTestCase=logicmoo.base.fol.fiveof.FIVE_LEFTOF_EXACTLY_02 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['five_leftof_exactly_02.pl']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/fiveof ; timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['five_leftof_exactly_02.pl']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_base/t/examples/fol/fiveof/five_leftof_exactly_02.pl 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.base.fol.fiveof/FIVE_LEFTOF_EXACTLY_02/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AFIVE_LEFTOF_EXACTLY_02 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/622 


%~ 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/packs_sys/logicmoo_base/t/examples/fol/fiveof/five_leftof_exactly_02.pl'),
%~ this_test_might_need( :-( expects_dialect(pfc)))
%~ this_test_might_need( :-( use_module( library(logicmoo_plarkc))))

% =============================================
% File 'mpred_builtin.pfc'
% Purpose: Agent Reactivity for SWI-Prolog
% Maintainer: Douglas Miles
% Contact: $Author: dmiles $@users.sourceforge.net %
% Version: 'interface' 1.0.0
% Revision: $Revision: 1.9 $
% Revised At: $Date: 2002/06/27 14:13:20 $
% =============================================
%
:- expects_dialect(clif).
/*~
~*/

:- set_prolog_flag(gc,false).
  
% There are five houses in a row.


/*~
~*/

  
% There are five houses in a row.


exists(H1,exists(H2,exists(H3,exists(H4,exists(H5,
 (leftof(H1, H2) & leftof(H2, H3) & leftof(H3, H4) & leftof(H4, H5))))))).




% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_base/t/examples/fol/fiveof/five_leftof_exactly_02.pl 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.base.fol.fiveof/FIVE_LEFTOF_EXACTLY_02/logicmoo_base_fol_fiveof_FIVE_LEFTOF_EXACTLY_02_JUnit/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AFIVE_LEFTOF_EXACTLY_02 

% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/622
/*~
%~ debugm( baseKB,
%~   show_success( baseKB,
%~     baseKB : ain( clif( exists( H1,
%~                           exists( H2,
%~                             exists( H3,
%~                               exists( H4,
%~                                 exists( H5,
%~                                   ( leftof(H1,H2)  &
%~                                     leftof(H2,H3) &
%~                                     leftof(H3,H4) &
%~                                     leftof(H4,H5)))))))))))
%   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: 1610 words .. **



** Grammar from file /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_nlu/ext/chat80/original/lex.xg: 362 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.28 sec, 3 clauses
% /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/debuggery/dmsg compiled into dmsg 0.12 sec, -16 clauses




=======================================================
exists('$VAR'('Exists_Leftof'),exists('$VAR'('Exists_Leftof6'),exists('$VAR'('Exists_Leftof7'),exists('$VAR'('Exists_Leftof8'),exists('$VAR'('Leftof13'),&(&(&(leftof('$VAR'('Exists_Leftof'),'$VAR'('Exists_Leftof6')),leftof('$VAR'('Exists_Leftof6'),'$VAR'('Exists_Leftof7'))),leftof('$VAR'('Exists_Leftof7'),'$VAR'('Exists_Leftof8'))),leftof('$VAR'('Exists_Leftof8'),'$VAR'('Leftof13'))))))))
============================================


?- kif_to_boxlog( exists(Exists_Leftof,exists(Exists_Leftof6,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((leftof(Exists_Leftof,Exists_Leftof6)&leftof(Exists_Leftof6,Exists_Leftof7))&leftof(Exists_Leftof7,Exists_Leftof8))&leftof(Exists_Leftof8,Leftof13)))))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ 
%~  There exists ?Exists_Leftof
%~    (
%~  There exists ?Exists_Leftof6
%~    (
%~  There exists ?Exists_Leftof7
%~    (
%~  There exists ?Exists_Leftof8
%~    (
%~  There exists ?Leftof13
%~    (((" ?Exists_Leftof leftof ?Exists_Leftof6 "  and
%~    " ?Exists_Leftof6 leftof ?Exists_Leftof7 " ) and
%~    " ?Exists_Leftof7 leftof ?Exists_Leftof8 " ) and
%~    " ?Exists_Leftof8 leftof ?Leftof13 " )))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = exists('$VAR'('Exists_Leftof'),exists('$VAR'('Exists_Leftof6'),exists('$VAR'('Exists_Leftof7'),exists('$VAR'('Exists_Leftof8'),exists('$VAR'('Leftof13'),necessary(and(and(and(leftof('$VAR'('Exists_Leftof'),'$VAR'('Exists_Leftof6')),leftof('$VAR'('Exists_Leftof6'),'$VAR'('Exists_Leftof7'))),leftof('$VAR'('Exists_Leftof7'),'$VAR'('Exists_Leftof8'))),leftof('$VAR'('Exists_Leftof8'),'$VAR'('Leftof13')))))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 6 entailment(s): 
(((nesc(leftof(Exists_Leftof,Exists_Leftof6))&'$existential'(Exists_Leftof6,1,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))))&'$existential'(Exists_Leftof7,1,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))&'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>nesc(leftof(Exists_Leftof6,Exists_Leftof7)).
(((poss(~leftof(Exists_Leftof,Exists_Leftof6))&'$existential'(Exists_Leftof6,1,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))))&'$existential'(Exists_Leftof7,1,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))&'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>poss(~leftof(Exists_Leftof6,Exists_Leftof7)).
((((nesc(leftof(Exists_Leftof6,Exists_Leftof7))&'$existential'(Exists_Leftof,1,exists(Exists_Leftof6,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))))&'$existential'(Exists_Leftof6,1,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))))&'$existential'(Exists_Leftof7,1,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))&'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>nesc(leftof(Exists_Leftof,Exists_Leftof6)).
((((poss(~leftof(Exists_Leftof6,Exists_Leftof7))&'$existential'(Exists_Leftof,1,exists(Exists_Leftof6,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))))&'$existential'(Exists_Leftof6,1,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))))&'$existential'(Exists_Leftof7,1,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))&'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>poss(~leftof(Exists_Leftof,Exists_Leftof6)).
('$existential'(Exists_Leftof7,1,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>nesc(leftof(Exists_Leftof7,Exists_Leftof8)).
'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>nesc(leftof(Exists_Leftof8,Leftof13)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?Exists_Leftof leftof ?Exists_Leftof6 " is necessarily true  and
%~     by default ?Exists_Leftof6 exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))) ) and
%~     by default ?Exists_Leftof7 exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))) ) and
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))) ) and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof6 leftof ?Exists_Leftof7 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
    '$existential'( Exists_Leftof6, 
      1, 
      exists( Exists_Leftof7, 
        exists( Exists_Leftof8, 
          exists( Leftof13, 
            ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
              nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
              nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
              nesc( leftof(Exists_Leftof8,Leftof13))))))) & 
    '$existential'( Exists_Leftof7, 
      1, 
      exists( Exists_Leftof8, 
        exists( Leftof13, 
          ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
            nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
            nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
            nesc( leftof(Exists_Leftof8,Leftof13)))))) & 
    '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  nesc( leftof(Exists_Leftof6,Exists_Leftof7))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?Exists_Leftof leftof ?Exists_Leftof6 " is possibly false  and
%~     by default ?Exists_Leftof6 exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))) ) and
%~     by default ?Exists_Leftof7 exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))) ) and
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))) ) and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof6 leftof ?Exists_Leftof7 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( leftof(Exists_Leftof,Exists_Leftof6)))  &
    '$existential'( Exists_Leftof6, 
      1, 
      exists( Exists_Leftof7, 
        exists( Exists_Leftof8, 
          exists( Leftof13, 
            ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
              nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
              nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
              nesc( leftof(Exists_Leftof8,Leftof13))))))) & 
    '$existential'( Exists_Leftof7, 
      1, 
      exists( Exists_Leftof8, 
        exists( Leftof13, 
          ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
            nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
            nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
            nesc( leftof(Exists_Leftof8,Leftof13)))))) & 
    '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  poss( ~( leftof(Exists_Leftof6,Exists_Leftof7)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((((" ?Exists_Leftof6 leftof ?Exists_Leftof7 " is necessarily true  and
%~     by default ?Exists_Leftof exists(Exists_Leftof6,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))) ) and
%~     by default ?Exists_Leftof6 exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))) ) and
%~     by default ?Exists_Leftof7 exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))) ) and
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))) ) and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof leftof ?Exists_Leftof6 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( nesc( leftof(Exists_Leftof6,Exists_Leftof7))  &
    '$existential'( Exists_Leftof, 
      1, 
      exists( Exists_Leftof6, 
        exists( Exists_Leftof7, 
          exists( Exists_Leftof8, 
            exists( Leftof13, 
              ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
                nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
                nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
                nesc( leftof(Exists_Leftof8,Leftof13)))))))) & 
    '$existential'( Exists_Leftof6, 
      1, 
      exists( Exists_Leftof7, 
        exists( Exists_Leftof8, 
          exists( Leftof13, 
            ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
              nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
              nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
              nesc( leftof(Exists_Leftof8,Leftof13))))))) & 
    '$existential'( Exists_Leftof7, 
      1, 
      exists( Exists_Leftof8, 
        exists( Leftof13, 
          ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
            nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
            nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
            nesc( leftof(Exists_Leftof8,Leftof13)))))) & 
    '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  nesc( leftof(Exists_Leftof,Exists_Leftof6))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((((" ?Exists_Leftof6 leftof ?Exists_Leftof7 " is possibly false  and
%~     by default ?Exists_Leftof exists(Exists_Leftof6,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))) ) and
%~     by default ?Exists_Leftof6 exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))) ) and
%~     by default ?Exists_Leftof7 exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))) ) and
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))) ) and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof leftof ?Exists_Leftof6 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( leftof(Exists_Leftof6,Exists_Leftof7)))  &
    '$existential'( Exists_Leftof, 
      1, 
      exists( Exists_Leftof6, 
        exists( Exists_Leftof7, 
          exists( Exists_Leftof8, 
            exists( Leftof13, 
              ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
                nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
                nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
                nesc( leftof(Exists_Leftof8,Leftof13)))))))) & 
    '$existential'( Exists_Leftof6, 
      1, 
      exists( Exists_Leftof7, 
        exists( Exists_Leftof8, 
          exists( Leftof13, 
            ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
              nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
              nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
              nesc( leftof(Exists_Leftof8,Leftof13))))))) & 
    '$existential'( Exists_Leftof7, 
      1, 
      exists( Exists_Leftof8, 
        exists( Leftof13, 
          ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
            nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
            nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
            nesc( leftof(Exists_Leftof8,Leftof13)))))) & 
    '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  poss( ~( leftof(Exists_Leftof,Exists_Leftof6)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ( by default ?Exists_Leftof7 exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))  and
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))) ) and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof7 leftof ?Exists_Leftof8 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( '$existential'( Exists_Leftof7, 
      1, 
      exists( Exists_Leftof8, 
        exists( Leftof13, 
          ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
            nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
            nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
            nesc( leftof(Exists_Leftof8,Leftof13))))))  &
    '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  nesc( leftof(Exists_Leftof7,Exists_Leftof8))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))  and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof8 leftof ?Leftof13 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  nesc( leftof(Exists_Leftof8,Leftof13))).

============================================
%~ kif_to_boxlog_attvars2 = exists('$VAR'('H1'),exists('$VAR'('H2'),exists('$VAR'('H3'),exists('$VAR'('H4'),exists('$VAR'('H5'),necessary(and(and(and(leftof('$VAR'('H1'),'$VAR'('H2')),leftof('$VAR'('H2'),'$VAR'('H3'))),leftof('$VAR'('H3'),'$VAR'('H4'))),leftof('$VAR'('H4'),'$VAR'('H5')))))))))
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))  and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H4 leftof ?H5 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  nesc( leftof(H4,H5))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ( by default ?H3 exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))))  and
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))) ) and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H3 leftof ?H4 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( '$existential'( H3, 
      1, 
      exists( H4, 
        exists( H5, 
          ( nesc( leftof(H1,H2))  &
            nesc( leftof(H2,H3)) & 
            nesc( leftof(H3,H4)) & 
            nesc( leftof(H4,H5))))))  &
    '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  nesc( leftof(H3,H4))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?H1 leftof ?H2 " is possibly false  and
%~     by default ?H2 exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))))) ) and
%~     by default ?H3 exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))) ) and
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))) ) and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H2 leftof ?H3 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( leftof(H1,H2)))  &
    '$existential'( H2, 
      1, 
      exists( H3, 
        exists( H4, 
          exists( H5, 
            ( nesc( leftof(H1,H2))  &
              nesc( leftof(H2,H3)) & 
              nesc( leftof(H3,H4)) & 
              nesc( leftof(H4,H5))))))) & 
    '$existential'( H3, 
      1, 
      exists( H4, 
        exists( H5, 
          ( nesc( leftof(H1,H2))  &
            nesc( leftof(H2,H3)) & 
            nesc( leftof(H3,H4)) & 
            nesc( leftof(H4,H5)))))) & 
    '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  poss( ~( leftof(H2,H3)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((((" ?H2 leftof ?H3 " is necessarily true  and
%~     by default ?H1 exists(H2,exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))))) ) and
%~     by default ?H2 exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))))) ) and
%~     by default ?H3 exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))) ) and
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))) ) and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H1 leftof ?H2 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( nesc( leftof(H2,H3))  &
    '$existential'( H1, 
      1, 
      exists( H2, 
        exists( H3, 
          exists( H4, 
            exists( H5, 
              ( nesc( leftof(H1,H2))  &
                nesc( leftof(H2,H3)) & 
                nesc( leftof(H3,H4)) & 
                nesc( leftof(H4,H5)))))))) & 
    '$existential'( H2, 
      1, 
      exists( H3, 
        exists( H4, 
          exists( H5, 
            ( nesc( leftof(H1,H2))  &
              nesc( leftof(H2,H3)) & 
              nesc( leftof(H3,H4)) & 
              nesc( leftof(H4,H5))))))) & 
    '$existential'( H3, 
      1, 
      exists( H4, 
        exists( H5, 
          ( nesc( leftof(H1,H2))  &
            nesc( leftof(H2,H3)) & 
            nesc( leftof(H3,H4)) & 
            nesc( leftof(H4,H5)))))) & 
    '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  nesc( leftof(H1,H2))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((((" ?H2 leftof ?H3 " is possibly false  and
%~     by default ?H1 exists(H2,exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))))) ) and
%~     by default ?H2 exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))))) ) and
%~     by default ?H3 exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))) ) and
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))) ) and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H1 leftof ?H2 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( leftof(H2,H3)))  &
    '$existential'( H1, 
      1, 
      exists( H2, 
        exists( H3, 
          exists( H4, 
            exists( H5, 
              ( nesc( leftof(H1,H2))  &
                nesc( leftof(H2,H3)) & 
                nesc( leftof(H3,H4)) & 
                nesc( leftof(H4,H5)))))))) & 
    '$existential'( H2, 
      1, 
      exists( H3, 
        exists( H4, 
          exists( H5, 
            ( nesc( leftof(H1,H2))  &
              nesc( leftof(H2,H3)) & 
              nesc( leftof(H3,H4)) & 
              nesc( leftof(H4,H5))))))) & 
    '$existential'( H3, 
      1, 
      exists( H4, 
        exists( H5, 
          ( nesc( leftof(H1,H2))  &
            nesc( leftof(H2,H3)) & 
            nesc( leftof(H3,H4)) & 
            nesc( leftof(H4,H5)))))) & 
    '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  poss( ~( leftof(H1,H2)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?H1 leftof ?H2 " is necessarily true  and
%~     by default ?H2 exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))))) ) and
%~     by default ?H3 exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))) ) and
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))) ) and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H2 leftof ?H3 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( nesc( leftof(H1,H2))  &
    '$existential'( H2, 
      1, 
      exists( H3, 
        exists( H4, 
          exists( H5, 
            ( nesc( leftof(H1,H2))  &
              nesc( leftof(H2,H3)) & 
              nesc( leftof(H3,H4)) & 
              nesc( leftof(H4,H5))))))) & 
    '$existential'( H3, 
      1, 
      exists( H4, 
        exists( H5, 
          ( nesc( leftof(H1,H2))  &
            nesc( leftof(H2,H3)) & 
            nesc( leftof(H3,H4)) & 
            nesc( leftof(H4,H5)))))) & 
    '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  nesc( leftof(H2,H3))).

~*/
%~ unused(no_junit_results)

%~ test_completed_exit(0)
totalTime=5.000

FAILED: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k five_leftof_exactly_02.pl (returned 0) Add_LABELS='' Rem_LABELS='Skipped,Skipped,Errors,Warnings,Overtime,Skipped,Skipped'

ISSUE_INFO=622	OPEN	logicmoo.base.fol.fiveof.FIVE_LEFTOF_EXACTLY_02 JUnit	logicmoo.base.fol.fiveof, Test_9999, unit_test, FIVE_LEFTOF_EXACTLY_02, Failing	2021-09-26 22:48:49 +0000 UTC
ISSUE_ID=622
ISSUE_OC=OPEN
Editing Issue For FAILED 622	OPEN	logicmoo.base.fol.fiveof.FIVE_LEFTOF_EXACTLY_02 JUnit	logicmoo.base.fol.fiveof, Test_9999, unit_test, FIVE_LEFTOF_EXACTLY_02, Failing	2021-09-26 22:48:49 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/622
FileTestCase=logicmoo.base.fol.fiveof.FIVE_LEFTOF_INSTS_02 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['five_leftof_insts_02.pl']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/fiveof ; timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['five_leftof_insts_02.pl']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_base/t/examples/fol/fiveof/five_leftof_insts_02.pl 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.base.fol.fiveof/FIVE_LEFTOF_INSTS_02/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AFIVE_LEFTOF_INSTS_02 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/621 


%~ 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/packs_sys/logicmoo_base/t/examples/fol/fiveof/five_leftof_insts_02.pl'),
%~ this_test_might_need( :-( expects_dialect(pfc)))
%~ /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/logicmoo_test_header.pl:93 
%~ this_test_might_need( :-( use_module( library(logicmoo_plarkc))))

% =============================================
% File 'mpred_builtin.pfc'
% Purpose: Agent Reactivity for SWI-Prolog
% Maintainer: Douglas Miles
% Contact: $Author: dmiles $@users.sourceforge.net %
% Version: 'interface' 1.0.0
% Revision: $Revision: 1.9 $
% Revised At: $Date: 2002/06/27 14:13:20 $
% =============================================
%
:- expects_dialect(clif).
/*~
~*/

:- set_prolog_flag(gc,false).
  
% There are five houses in a row.



/*~
~*/

  
% There are five houses in a row.



(leftof(h1, h2) & leftof(h2, h3) & leftof(h3, h4) & leftof(h4, h5)).

% leftof(h3,h4)
% leftof(h4,h5)
% poss(leftof(h1,h2))==>leftof(h2,h3).
% poss(leftof(h2,h3))==>leftof(h1,h2).
% ~leftof(h1,h2)==>nesc(~leftof(h2,h3)).
% ~leftof(h2,h3)==>nesc(~leftof(h1,h2)).



% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_base/t/examples/fol/fiveof/five_leftof_insts_02.pl 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.base.fol.fiveof/FIVE_LEFTOF_INSTS_02/logicmoo_base_fol_fiveof_FIVE_LEFTOF_INSTS_02_JUnit/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AFIVE_LEFTOF_INSTS_02 

% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/621
/*~
%~ debugm( baseKB,
%~   show_success(baseKB,baseKB:ain(clif(((leftof(h1,h2)&leftof(h2,h3))&leftof(h3,h4))&leftof(h4,h5)))))
%   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: 1617 words .. **



** Grammar from file /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_nlu/ext/chat80/original/lex.xg: 336 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.24 sec, 3 clauses
% /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/debuggery/dmsg compiled into dmsg 0.12 sec, -16 clauses




=======================================================
&(&(&(leftof(h1,h2),leftof(h2,h3)),leftof(h3,h4)),leftof(h4,h5))
============================================


?- kif_to_boxlog( ((leftof(h1,h2)&leftof(h2,h3))&leftof(h3,h4))&leftof(h4,h5) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  ((" h1 leftof h2 "  and
%~    " h2 leftof h3 " ) and
%~    " h3 leftof h4 " ) and
%~    " h4 leftof h5 "
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(and(and(and(leftof(h1,h2),leftof(h2,h3)),leftof(h3,h4)),leftof(h4,h5)))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 6 entailment(s): 
nesc(leftof(h3,h4)).
nesc(leftof(h4,h5)).
nesc(leftof(h1,h2))==>nesc(leftof(h2,h3)).
nesc(leftof(h2,h3))==>nesc(leftof(h1,h2)).
poss(~leftof(h1,h2))==>poss(~leftof(h2,h3)).
poss(~leftof(h2,h3))==>poss(~leftof(h1,h2)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that h3 leftof h4
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( leftof(h3,h4)).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that h4 leftof h5
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( leftof(h4,h5)).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " h1 leftof h2 " is necessarily true
%~  It's Proof that:
%~    " h2 leftof h3 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc(leftof(h1,h2))==>nesc(leftof(h2,h3)).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " h2 leftof h3 " is necessarily true
%~  It's Proof that:
%~    " h1 leftof h2 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc(leftof(h2,h3))==>nesc(leftof(h1,h2)).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " h1 leftof h2 " is possibly false
%~  It's Proof that:
%~    " h2 leftof h3 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

poss(~leftof(h1,h2))==>poss(~leftof(h2,h3)).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " h2 leftof h3 " is possibly false
%~  It's Proof that:
%~    " h1 leftof h2 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

poss(~leftof(h2,h3))==>poss(~leftof(h1,h2)).

============================================
%~ kif_to_boxlog_attvars2 = necessary(and(and(and(leftof(h1,h2),leftof(h2,h3)),leftof(h3,h4)),leftof(h4,h5)))
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that h4 leftof h5
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( leftof(h4,h5)).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that h3 leftof h4
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( leftof(h3,h4)).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " h1 leftof h2 " is possibly false
%~  It's Proof that:
%~    " h2 leftof h3 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

poss(~leftof(h1,h2))==>poss(~leftof(h2,h3)).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " h2 leftof h3 " is necessarily true
%~  It's Proof that:
%~    " h1 leftof h2 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc(leftof(h2,h3))==>nesc(leftof(h1,h2)).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " h2 leftof h3 " is possibly false
%~  It's Proof that:
%~    " h1 leftof h2 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

poss(~leftof(h2,h3))==>poss(~leftof(h1,h2)).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " h1 leftof h2 " is necessarily true
%~  It's Proof that:
%~    " h2 leftof h3 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc(leftof(h1,h2))==>nesc(leftof(h2,h3)).

~*/
%~ unused(no_junit_results)

%~ test_completed_exit(0)
totalTime=3.000

FAILED: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k five_leftof_insts_02.pl (returned 0) Add_LABELS='' Rem_LABELS='Skipped,Skipped,Errors,Warnings,Overtime,Skipped,Skipped'

ISSUE_INFO=621	OPEN	logicmoo.base.fol.fiveof.FIVE_LEFTOF_INSTS_02 JUnit	logicmoo.base.fol.fiveof, Test_9999, unit_test, FIVE_LEFTOF_INSTS_02, Failing	2021-09-26 22:48:35 +0000 UTC
ISSUE_ID=621
ISSUE_OC=OPEN
Editing Issue For FAILED 621	OPEN	logicmoo.base.fol.fiveof.FIVE_LEFTOF_INSTS_02 JUnit	logicmoo.base.fol.fiveof, Test_9999, unit_test, FIVE_LEFTOF_INSTS_02, Failing	2021-09-26 22:48:35 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/621
FileTestCase=logicmoo.base.fol.fiveof.FIVE_LEFTOF_SKOLLEM_02 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['five_leftof_skollem_02.pl']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/fiveof ; timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['five_leftof_skollem_02.pl']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_base/t/examples/fol/fiveof/five_leftof_skollem_02.pl 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.base.fol.fiveof/FIVE_LEFTOF_SKOLLEM_02/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AFIVE_LEFTOF_SKOLLEM_02 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/620 


%~ 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/packs_sys/logicmoo_base/t/examples/fol/fiveof/five_leftof_skollem_02.pl'),
%~ this_test_might_need( :-( expects_dialect(pfc)))
%~ this_test_might_need( :-( use_module( library(logicmoo_plarkc))))

% =============================================
% File 'mpred_builtin.pfc'
% Purpose: Agent Reactivity for SWI-Prolog
% Maintainer: Douglas Miles
% Contact: $Author: dmiles $@users.sourceforge.net %
% Version: 'interface' 1.0.0
% Revision: $Revision: 1.9 $
% Revised At: $Date: 2002/06/27 14:13:20 $
% =============================================
%
:- expects_dialect(clif).
/*~
~*/

:- set_prolog_flag(gc,false).
  
% There are five houses in a row.

/*~
~*/

  
% There are five houses in a row.

exists(H1,exists(H2,exists(H3,exists(H4,exists(H5,
 (leftof(H1, H2) & leftof(H2, H3) & leftof(H3, H4) & leftof(H4, H5))))))).




% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_base/t/examples/fol/fiveof/five_leftof_skollem_02.pl 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.base.fol.fiveof/FIVE_LEFTOF_SKOLLEM_02/logicmoo_base_fol_fiveof_FIVE_LEFTOF_SKOLLEM_02_JUnit/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AFIVE_LEFTOF_SKOLLEM_02 

% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/620
/*~
%~ debugm( baseKB,
%~   show_success( baseKB,
%~     baseKB : ain( clif( exists( H1,
%~                           exists( H2,
%~                             exists( H3,
%~                               exists( H4,
%~                                 exists( H5,
%~                                   ( leftof(H1,H2)  &
%~                                     leftof(H2,H3) &
%~                                     leftof(H3,H4) &
%~                                     leftof(H4,H5)))))))))))
%   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: 1597 words .. **



** Grammar from file /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_nlu/ext/chat80/original/lex.xg: 357 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.27 sec, 3 clauses
% /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/debuggery/dmsg compiled into dmsg 0.12 sec, -16 clauses




=======================================================
exists('$VAR'('Exists_Leftof'),exists('$VAR'('Exists_Leftof6'),exists('$VAR'('Exists_Leftof7'),exists('$VAR'('Exists_Leftof8'),exists('$VAR'('Leftof13'),&(&(&(leftof('$VAR'('Exists_Leftof'),'$VAR'('Exists_Leftof6')),leftof('$VAR'('Exists_Leftof6'),'$VAR'('Exists_Leftof7'))),leftof('$VAR'('Exists_Leftof7'),'$VAR'('Exists_Leftof8'))),leftof('$VAR'('Exists_Leftof8'),'$VAR'('Leftof13'))))))))
============================================


?- kif_to_boxlog( exists(Exists_Leftof,exists(Exists_Leftof6,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((leftof(Exists_Leftof,Exists_Leftof6)&leftof(Exists_Leftof6,Exists_Leftof7))&leftof(Exists_Leftof7,Exists_Leftof8))&leftof(Exists_Leftof8,Leftof13)))))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ 
%~  There exists ?Exists_Leftof
%~    (
%~  There exists ?Exists_Leftof6
%~    (
%~  There exists ?Exists_Leftof7
%~    (
%~  There exists ?Exists_Leftof8
%~    (
%~  There exists ?Leftof13
%~    (((" ?Exists_Leftof leftof ?Exists_Leftof6 "  and
%~    " ?Exists_Leftof6 leftof ?Exists_Leftof7 " ) and
%~    " ?Exists_Leftof7 leftof ?Exists_Leftof8 " ) and
%~    " ?Exists_Leftof8 leftof ?Leftof13 " )))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = exists('$VAR'('Exists_Leftof'),exists('$VAR'('Exists_Leftof6'),exists('$VAR'('Exists_Leftof7'),exists('$VAR'('Exists_Leftof8'),exists('$VAR'('Leftof13'),necessary(and(and(and(leftof('$VAR'('Exists_Leftof'),'$VAR'('Exists_Leftof6')),leftof('$VAR'('Exists_Leftof6'),'$VAR'('Exists_Leftof7'))),leftof('$VAR'('Exists_Leftof7'),'$VAR'('Exists_Leftof8'))),leftof('$VAR'('Exists_Leftof8'),'$VAR'('Leftof13')))))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 6 entailment(s): 
(((nesc(leftof(Exists_Leftof,Exists_Leftof6))&'$existential'(Exists_Leftof6,1,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))))&'$existential'(Exists_Leftof7,1,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))&'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>nesc(leftof(Exists_Leftof6,Exists_Leftof7)).
(((poss(~leftof(Exists_Leftof,Exists_Leftof6))&'$existential'(Exists_Leftof6,1,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))))&'$existential'(Exists_Leftof7,1,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))&'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>poss(~leftof(Exists_Leftof6,Exists_Leftof7)).
((((nesc(leftof(Exists_Leftof6,Exists_Leftof7))&'$existential'(Exists_Leftof,1,exists(Exists_Leftof6,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))))&'$existential'(Exists_Leftof6,1,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))))&'$existential'(Exists_Leftof7,1,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))&'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>nesc(leftof(Exists_Leftof,Exists_Leftof6)).
((((poss(~leftof(Exists_Leftof6,Exists_Leftof7))&'$existential'(Exists_Leftof,1,exists(Exists_Leftof6,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))))&'$existential'(Exists_Leftof6,1,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))))&'$existential'(Exists_Leftof7,1,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))&'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>poss(~leftof(Exists_Leftof,Exists_Leftof6)).
('$existential'(Exists_Leftof7,1,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>nesc(leftof(Exists_Leftof7,Exists_Leftof8)).
'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>nesc(leftof(Exists_Leftof8,Leftof13)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?Exists_Leftof leftof ?Exists_Leftof6 " is necessarily true  and
%~     by default ?Exists_Leftof6 exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))) ) and
%~     by default ?Exists_Leftof7 exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))) ) and
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))) ) and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof6 leftof ?Exists_Leftof7 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
    '$existential'( Exists_Leftof6, 
      1, 
      exists( Exists_Leftof7, 
        exists( Exists_Leftof8, 
          exists( Leftof13, 
            ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
              nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
              nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
              nesc( leftof(Exists_Leftof8,Leftof13))))))) & 
    '$existential'( Exists_Leftof7, 
      1, 
      exists( Exists_Leftof8, 
        exists( Leftof13, 
          ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
            nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
            nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
            nesc( leftof(Exists_Leftof8,Leftof13)))))) & 
    '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  nesc( leftof(Exists_Leftof6,Exists_Leftof7))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?Exists_Leftof leftof ?Exists_Leftof6 " is possibly false  and
%~     by default ?Exists_Leftof6 exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))) ) and
%~     by default ?Exists_Leftof7 exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))) ) and
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))) ) and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof6 leftof ?Exists_Leftof7 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( leftof(Exists_Leftof,Exists_Leftof6)))  &
    '$existential'( Exists_Leftof6, 
      1, 
      exists( Exists_Leftof7, 
        exists( Exists_Leftof8, 
          exists( Leftof13, 
            ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
              nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
              nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
              nesc( leftof(Exists_Leftof8,Leftof13))))))) & 
    '$existential'( Exists_Leftof7, 
      1, 
      exists( Exists_Leftof8, 
        exists( Leftof13, 
          ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
            nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
            nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
            nesc( leftof(Exists_Leftof8,Leftof13)))))) & 
    '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  poss( ~( leftof(Exists_Leftof6,Exists_Leftof7)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((((" ?Exists_Leftof6 leftof ?Exists_Leftof7 " is necessarily true  and
%~     by default ?Exists_Leftof exists(Exists_Leftof6,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))) ) and
%~     by default ?Exists_Leftof6 exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))) ) and
%~     by default ?Exists_Leftof7 exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))) ) and
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))) ) and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof leftof ?Exists_Leftof6 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( nesc( leftof(Exists_Leftof6,Exists_Leftof7))  &
    '$existential'( Exists_Leftof, 
      1, 
      exists( Exists_Leftof6, 
        exists( Exists_Leftof7, 
          exists( Exists_Leftof8, 
            exists( Leftof13, 
              ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
                nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
                nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
                nesc( leftof(Exists_Leftof8,Leftof13)))))))) & 
    '$existential'( Exists_Leftof6, 
      1, 
      exists( Exists_Leftof7, 
        exists( Exists_Leftof8, 
          exists( Leftof13, 
            ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
              nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
              nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
              nesc( leftof(Exists_Leftof8,Leftof13))))))) & 
    '$existential'( Exists_Leftof7, 
      1, 
      exists( Exists_Leftof8, 
        exists( Leftof13, 
          ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
            nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
            nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
            nesc( leftof(Exists_Leftof8,Leftof13)))))) & 
    '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  nesc( leftof(Exists_Leftof,Exists_Leftof6))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((((" ?Exists_Leftof6 leftof ?Exists_Leftof7 " is possibly false  and
%~     by default ?Exists_Leftof exists(Exists_Leftof6,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))) ) and
%~     by default ?Exists_Leftof6 exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))) ) and
%~     by default ?Exists_Leftof7 exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))) ) and
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))) ) and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof leftof ?Exists_Leftof6 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( leftof(Exists_Leftof6,Exists_Leftof7)))  &
    '$existential'( Exists_Leftof, 
      1, 
      exists( Exists_Leftof6, 
        exists( Exists_Leftof7, 
          exists( Exists_Leftof8, 
            exists( Leftof13, 
              ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
                nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
                nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
                nesc( leftof(Exists_Leftof8,Leftof13)))))))) & 
    '$existential'( Exists_Leftof6, 
      1, 
      exists( Exists_Leftof7, 
        exists( Exists_Leftof8, 
          exists( Leftof13, 
            ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
              nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
              nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
              nesc( leftof(Exists_Leftof8,Leftof13))))))) & 
    '$existential'( Exists_Leftof7, 
      1, 
      exists( Exists_Leftof8, 
        exists( Leftof13, 
          ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
            nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
            nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
            nesc( leftof(Exists_Leftof8,Leftof13)))))) & 
    '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  poss( ~( leftof(Exists_Leftof,Exists_Leftof6)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ( by default ?Exists_Leftof7 exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))  and
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))) ) and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof7 leftof ?Exists_Leftof8 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( '$existential'( Exists_Leftof7, 
      1, 
      exists( Exists_Leftof8, 
        exists( Leftof13, 
          ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
            nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
            nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
            nesc( leftof(Exists_Leftof8,Leftof13))))))  &
    '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  nesc( leftof(Exists_Leftof7,Exists_Leftof8))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))  and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof8 leftof ?Leftof13 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  nesc( leftof(Exists_Leftof8,Leftof13))).

============================================
%~ kif_to_boxlog_attvars2 = exists('$VAR'('H1'),exists('$VAR'('H2'),exists('$VAR'('H3'),exists('$VAR'('H4'),exists('$VAR'('H5'),necessary(and(and(and(leftof('$VAR'('H1'),'$VAR'('H2')),leftof('$VAR'('H2'),'$VAR'('H3'))),leftof('$VAR'('H3'),'$VAR'('H4'))),leftof('$VAR'('H4'),'$VAR'('H5')))))))))
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))  and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H4 leftof ?H5 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  nesc( leftof(H4,H5))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ( by default ?H3 exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))))  and
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))) ) and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H3 leftof ?H4 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( '$existential'( H3, 
      1, 
      exists( H4, 
        exists( H5, 
          ( nesc( leftof(H1,H2))  &
            nesc( leftof(H2,H3)) & 
            nesc( leftof(H3,H4)) & 
            nesc( leftof(H4,H5))))))  &
    '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  nesc( leftof(H3,H4))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?H1 leftof ?H2 " is possibly false  and
%~     by default ?H2 exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))))) ) and
%~     by default ?H3 exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))) ) and
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))) ) and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H2 leftof ?H3 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( leftof(H1,H2)))  &
    '$existential'( H2, 
      1, 
      exists( H3, 
        exists( H4, 
          exists( H5, 
            ( nesc( leftof(H1,H2))  &
              nesc( leftof(H2,H3)) & 
              nesc( leftof(H3,H4)) & 
              nesc( leftof(H4,H5))))))) & 
    '$existential'( H3, 
      1, 
      exists( H4, 
        exists( H5, 
          ( nesc( leftof(H1,H2))  &
            nesc( leftof(H2,H3)) & 
            nesc( leftof(H3,H4)) & 
            nesc( leftof(H4,H5)))))) & 
    '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  poss( ~( leftof(H2,H3)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((((" ?H2 leftof ?H3 " is necessarily true  and
%~     by default ?H1 exists(H2,exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))))) ) and
%~     by default ?H2 exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))))) ) and
%~     by default ?H3 exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))) ) and
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))) ) and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H1 leftof ?H2 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( nesc( leftof(H2,H3))  &
    '$existential'( H1, 
      1, 
      exists( H2, 
        exists( H3, 
          exists( H4, 
            exists( H5, 
              ( nesc( leftof(H1,H2))  &
                nesc( leftof(H2,H3)) & 
                nesc( leftof(H3,H4)) & 
                nesc( leftof(H4,H5)))))))) & 
    '$existential'( H2, 
      1, 
      exists( H3, 
        exists( H4, 
          exists( H5, 
            ( nesc( leftof(H1,H2))  &
              nesc( leftof(H2,H3)) & 
              nesc( leftof(H3,H4)) & 
              nesc( leftof(H4,H5))))))) & 
    '$existential'( H3, 
      1, 
      exists( H4, 
        exists( H5, 
          ( nesc( leftof(H1,H2))  &
            nesc( leftof(H2,H3)) & 
            nesc( leftof(H3,H4)) & 
            nesc( leftof(H4,H5)))))) & 
    '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  nesc( leftof(H1,H2))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((((" ?H2 leftof ?H3 " is possibly false  and
%~     by default ?H1 exists(H2,exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))))) ) and
%~     by default ?H2 exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))))) ) and
%~     by default ?H3 exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))) ) and
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))) ) and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H1 leftof ?H2 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( leftof(H2,H3)))  &
    '$existential'( H1, 
      1, 
      exists( H2, 
        exists( H3, 
          exists( H4, 
            exists( H5, 
              ( nesc( leftof(H1,H2))  &
                nesc( leftof(H2,H3)) & 
                nesc( leftof(H3,H4)) & 
                nesc( leftof(H4,H5)))))))) & 
    '$existential'( H2, 
      1, 
      exists( H3, 
        exists( H4, 
          exists( H5, 
            ( nesc( leftof(H1,H2))  &
              nesc( leftof(H2,H3)) & 
              nesc( leftof(H3,H4)) & 
              nesc( leftof(H4,H5))))))) & 
    '$existential'( H3, 
      1, 
      exists( H4, 
        exists( H5, 
          ( nesc( leftof(H1,H2))  &
            nesc( leftof(H2,H3)) & 
            nesc( leftof(H3,H4)) & 
            nesc( leftof(H4,H5)))))) & 
    '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  poss( ~( leftof(H1,H2)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?H1 leftof ?H2 " is necessarily true  and
%~     by default ?H2 exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))))) ) and
%~     by default ?H3 exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))) ) and
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))) ) and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H2 leftof ?H3 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( nesc( leftof(H1,H2))  &
    '$existential'( H2, 
      1, 
      exists( H3, 
        exists( H4, 
          exists( H5, 
            ( nesc( leftof(H1,H2))  &
              nesc( leftof(H2,H3)) & 
              nesc( leftof(H3,H4)) & 
              nesc( leftof(H4,H5))))))) & 
    '$existential'( H3, 
      1, 
      exists( H4, 
        exists( H5, 
          ( nesc( leftof(H1,H2))  &
            nesc( leftof(H2,H3)) & 
            nesc( leftof(H3,H4)) & 
            nesc( leftof(H4,H5)))))) & 
    '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  nesc( leftof(H2,H3))).

~*/
%~ unused(no_junit_results)

%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/fiveof/five_leftof_skollem_02.pl:28 
%~ test_completed_exit(0)
totalTime=5.000

FAILED: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k five_leftof_skollem_02.pl (returned 0) Add_LABELS='' Rem_LABELS='Skipped,Skipped,Errors,Warnings,Overtime,Skipped,Skipped'

ISSUE_INFO=620	OPEN	logicmoo.base.fol.fiveof.FIVE_LEFTOF_SKOLLEM_02 JUnit	logicmoo.base.fol.fiveof, Test_9999, unit_test, FIVE_LEFTOF_SKOLLEM_02, Failing	2021-09-26 22:48:24 +0000 UTC
ISSUE_ID=620
ISSUE_OC=OPEN
Editing Issue For FAILED 620	OPEN	logicmoo.base.fol.fiveof.FIVE_LEFTOF_SKOLLEM_02 JUnit	logicmoo.base.fol.fiveof, Test_9999, unit_test, FIVE_LEFTOF_SKOLLEM_02, Failing	2021-09-26 22:48:24 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/620
FileTestCase=logicmoo.base.fol.fiveof.FIVE_LEFTOF_UP_DOWN_02 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['five_leftof_up_down_02.pl']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/fiveof ; timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['five_leftof_up_down_02.pl']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_base/t/examples/fol/fiveof/five_leftof_up_down_02.pl 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.base.fol.fiveof/FIVE_LEFTOF_UP_DOWN_02/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AFIVE_LEFTOF_UP_DOWN_02 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/618 


%~ 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/packs_sys/logicmoo_base/t/examples/fol/fiveof/five_leftof_up_down_02.pl'),
%~ this_test_might_need( :-( expects_dialect(pfc)))
%~ /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/logicmoo_test_header.pl:93 
%~ this_test_might_need( :-( use_module( library(logicmoo_plarkc))))

% =============================================
% File 'mpred_builtin.pfc'
% Purpose: Agent Reactivity for SWI-Prolog
% Maintainer: Douglas Miles
% Contact: $Author: dmiles $@users.sourceforge.net %
% Version: 'interface' 1.0.0
% Revision: $Revision: 1.9 $
% Revised At: $Date: 2002/06/27 14:13:20 $
% =============================================
%
:- expects_dialect(clif).
/*~
~*/

:- set_prolog_flag(gc,false).
  
% There are five houses in a row.

/*~
~*/

  
% There are five houses in a row.

exists(H1,exists(H2,exists(H3,exists(H4,exists(H5,
 (leftof(H1, H2) & leftof(H2, H3) & leftof(H3, H4) & leftof(H4, H5))))))).




% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_base/t/examples/fol/fiveof/five_leftof_up_down_02.pl 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.base.fol.fiveof/FIVE_LEFTOF_UP_DOWN_02/logicmoo_base_fol_fiveof_FIVE_LEFTOF_UP_DOWN_02_JUnit/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AFIVE_LEFTOF_UP_DOWN_02 

% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/618
/*~
%~ debugm( baseKB,
%~   show_success( baseKB,
%~     baseKB : ain( clif( exists( H1,
%~                           exists( H2,
%~                             exists( H3,
%~                               exists( H4,
%~                                 exists( H5,
%~                                   ( leftof(H1,H2)  &
%~                                     leftof(H2,H3) &
%~                                     leftof(H3,H4) &
%~                                     leftof(H4,H5)))))))))))
%   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: 1609 words .. **



** Grammar from file /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_nlu/ext/chat80/original/lex.xg: 360 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.23 sec, 3 clauses
% /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/debuggery/dmsg compiled into dmsg 0.13 sec, -16 clauses




=======================================================
exists('$VAR'('Exists_Leftof'),exists('$VAR'('Exists_Leftof6'),exists('$VAR'('Exists_Leftof7'),exists('$VAR'('Exists_Leftof8'),exists('$VAR'('Leftof13'),&(&(&(leftof('$VAR'('Exists_Leftof'),'$VAR'('Exists_Leftof6')),leftof('$VAR'('Exists_Leftof6'),'$VAR'('Exists_Leftof7'))),leftof('$VAR'('Exists_Leftof7'),'$VAR'('Exists_Leftof8'))),leftof('$VAR'('Exists_Leftof8'),'$VAR'('Leftof13'))))))))
============================================


?- kif_to_boxlog( exists(Exists_Leftof,exists(Exists_Leftof6,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((leftof(Exists_Leftof,Exists_Leftof6)&leftof(Exists_Leftof6,Exists_Leftof7))&leftof(Exists_Leftof7,Exists_Leftof8))&leftof(Exists_Leftof8,Leftof13)))))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ 
%~  There exists ?Exists_Leftof
%~    (
%~  There exists ?Exists_Leftof6
%~    (
%~  There exists ?Exists_Leftof7
%~    (
%~  There exists ?Exists_Leftof8
%~    (
%~  There exists ?Leftof13
%~    (((" ?Exists_Leftof leftof ?Exists_Leftof6 "  and
%~    " ?Exists_Leftof6 leftof ?Exists_Leftof7 " ) and
%~    " ?Exists_Leftof7 leftof ?Exists_Leftof8 " ) and
%~    " ?Exists_Leftof8 leftof ?Leftof13 " )))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = exists('$VAR'('Exists_Leftof'),exists('$VAR'('Exists_Leftof6'),exists('$VAR'('Exists_Leftof7'),exists('$VAR'('Exists_Leftof8'),exists('$VAR'('Leftof13'),necessary(and(and(and(leftof('$VAR'('Exists_Leftof'),'$VAR'('Exists_Leftof6')),leftof('$VAR'('Exists_Leftof6'),'$VAR'('Exists_Leftof7'))),leftof('$VAR'('Exists_Leftof7'),'$VAR'('Exists_Leftof8'))),leftof('$VAR'('Exists_Leftof8'),'$VAR'('Leftof13')))))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 6 entailment(s): 
(((nesc(leftof(Exists_Leftof,Exists_Leftof6))&'$existential'(Exists_Leftof6,1,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))))&'$existential'(Exists_Leftof7,1,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))&'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>nesc(leftof(Exists_Leftof6,Exists_Leftof7)).
(((poss(~leftof(Exists_Leftof,Exists_Leftof6))&'$existential'(Exists_Leftof6,1,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))))&'$existential'(Exists_Leftof7,1,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))&'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>poss(~leftof(Exists_Leftof6,Exists_Leftof7)).
((((nesc(leftof(Exists_Leftof6,Exists_Leftof7))&'$existential'(Exists_Leftof,1,exists(Exists_Leftof6,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))))&'$existential'(Exists_Leftof6,1,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))))&'$existential'(Exists_Leftof7,1,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))&'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>nesc(leftof(Exists_Leftof,Exists_Leftof6)).
((((poss(~leftof(Exists_Leftof6,Exists_Leftof7))&'$existential'(Exists_Leftof,1,exists(Exists_Leftof6,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))))&'$existential'(Exists_Leftof6,1,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))))&'$existential'(Exists_Leftof7,1,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))))&'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>poss(~leftof(Exists_Leftof,Exists_Leftof6)).
('$existential'(Exists_Leftof7,1,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>nesc(leftof(Exists_Leftof7,Exists_Leftof8)).
'$existential'(Exists_Leftof8,1,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))&'$existential'(Leftof13,1,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))==>nesc(leftof(Exists_Leftof8,Leftof13)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?Exists_Leftof leftof ?Exists_Leftof6 " is necessarily true  and
%~     by default ?Exists_Leftof6 exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))) ) and
%~     by default ?Exists_Leftof7 exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))) ) and
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))) ) and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof6 leftof ?Exists_Leftof7 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
    '$existential'( Exists_Leftof6, 
      1, 
      exists( Exists_Leftof7, 
        exists( Exists_Leftof8, 
          exists( Leftof13, 
            ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
              nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
              nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
              nesc( leftof(Exists_Leftof8,Leftof13))))))) & 
    '$existential'( Exists_Leftof7, 
      1, 
      exists( Exists_Leftof8, 
        exists( Leftof13, 
          ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
            nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
            nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
            nesc( leftof(Exists_Leftof8,Leftof13)))))) & 
    '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  nesc( leftof(Exists_Leftof6,Exists_Leftof7))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?Exists_Leftof leftof ?Exists_Leftof6 " is possibly false  and
%~     by default ?Exists_Leftof6 exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))) ) and
%~     by default ?Exists_Leftof7 exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))) ) and
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))) ) and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof6 leftof ?Exists_Leftof7 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( leftof(Exists_Leftof,Exists_Leftof6)))  &
    '$existential'( Exists_Leftof6, 
      1, 
      exists( Exists_Leftof7, 
        exists( Exists_Leftof8, 
          exists( Leftof13, 
            ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
              nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
              nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
              nesc( leftof(Exists_Leftof8,Leftof13))))))) & 
    '$existential'( Exists_Leftof7, 
      1, 
      exists( Exists_Leftof8, 
        exists( Leftof13, 
          ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
            nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
            nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
            nesc( leftof(Exists_Leftof8,Leftof13)))))) & 
    '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  poss( ~( leftof(Exists_Leftof6,Exists_Leftof7)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((((" ?Exists_Leftof6 leftof ?Exists_Leftof7 " is necessarily true  and
%~     by default ?Exists_Leftof exists(Exists_Leftof6,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))) ) and
%~     by default ?Exists_Leftof6 exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))) ) and
%~     by default ?Exists_Leftof7 exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))) ) and
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))) ) and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof leftof ?Exists_Leftof6 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( nesc( leftof(Exists_Leftof6,Exists_Leftof7))  &
    '$existential'( Exists_Leftof, 
      1, 
      exists( Exists_Leftof6, 
        exists( Exists_Leftof7, 
          exists( Exists_Leftof8, 
            exists( Leftof13, 
              ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
                nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
                nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
                nesc( leftof(Exists_Leftof8,Leftof13)))))))) & 
    '$existential'( Exists_Leftof6, 
      1, 
      exists( Exists_Leftof7, 
        exists( Exists_Leftof8, 
          exists( Leftof13, 
            ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
              nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
              nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
              nesc( leftof(Exists_Leftof8,Leftof13))))))) & 
    '$existential'( Exists_Leftof7, 
      1, 
      exists( Exists_Leftof8, 
        exists( Leftof13, 
          ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
            nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
            nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
            nesc( leftof(Exists_Leftof8,Leftof13)))))) & 
    '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  nesc( leftof(Exists_Leftof,Exists_Leftof6))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((((" ?Exists_Leftof6 leftof ?Exists_Leftof7 " is possibly false  and
%~     by default ?Exists_Leftof exists(Exists_Leftof6,exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))))) ) and
%~     by default ?Exists_Leftof6 exists(Exists_Leftof7,exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))) ) and
%~     by default ?Exists_Leftof7 exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))) ) and
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))) ) and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof leftof ?Exists_Leftof6 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( leftof(Exists_Leftof6,Exists_Leftof7)))  &
    '$existential'( Exists_Leftof, 
      1, 
      exists( Exists_Leftof6, 
        exists( Exists_Leftof7, 
          exists( Exists_Leftof8, 
            exists( Leftof13, 
              ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
                nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
                nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
                nesc( leftof(Exists_Leftof8,Leftof13)))))))) & 
    '$existential'( Exists_Leftof6, 
      1, 
      exists( Exists_Leftof7, 
        exists( Exists_Leftof8, 
          exists( Leftof13, 
            ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
              nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
              nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
              nesc( leftof(Exists_Leftof8,Leftof13))))))) & 
    '$existential'( Exists_Leftof7, 
      1, 
      exists( Exists_Leftof8, 
        exists( Leftof13, 
          ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
            nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
            nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
            nesc( leftof(Exists_Leftof8,Leftof13)))))) & 
    '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  poss( ~( leftof(Exists_Leftof,Exists_Leftof6)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ( by default ?Exists_Leftof7 exists(Exists_Leftof8,exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))))  and
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))) ) and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof7 leftof ?Exists_Leftof8 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( '$existential'( Exists_Leftof7, 
      1, 
      exists( Exists_Leftof8, 
        exists( Leftof13, 
          ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
            nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
            nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
            nesc( leftof(Exists_Leftof8,Leftof13))))))  &
    '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  nesc( leftof(Exists_Leftof7,Exists_Leftof8))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~     by default ?Exists_Leftof8 exists(Leftof13,((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13)))  and
%~     by default ?Leftof13 ((nesc(leftof(Exists_Leftof,Exists_Leftof6))&nesc(leftof(Exists_Leftof6,Exists_Leftof7)))&nesc(leftof(Exists_Leftof7,Exists_Leftof8)))&nesc(leftof(Exists_Leftof8,Leftof13))
%~  It's Proof that:
%~    " ?Exists_Leftof8 leftof ?Leftof13 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( '$existential'( Exists_Leftof8, 
      1, 
      exists( Leftof13, 
        ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
          nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
          nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
          nesc( leftof(Exists_Leftof8,Leftof13))))) & 
    '$existential'( Leftof13, 
      1, 
      ( nesc( leftof(Exists_Leftof,Exists_Leftof6))  &
        nesc( leftof(Exists_Leftof6,Exists_Leftof7)) & 
        nesc( leftof(Exists_Leftof7,Exists_Leftof8)) & 
        nesc( leftof(Exists_Leftof8,Leftof13))))) ==> 
  nesc( leftof(Exists_Leftof8,Leftof13))).

============================================
%~ kif_to_boxlog_attvars2 = exists('$VAR'('H1'),exists('$VAR'('H2'),exists('$VAR'('H3'),exists('$VAR'('H4'),exists('$VAR'('H5'),necessary(and(and(and(leftof('$VAR'('H1'),'$VAR'('H2')),leftof('$VAR'('H2'),'$VAR'('H3'))),leftof('$VAR'('H3'),'$VAR'('H4'))),leftof('$VAR'('H4'),'$VAR'('H5')))))))))
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))  and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H4 leftof ?H5 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  nesc( leftof(H4,H5))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ( by default ?H3 exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))))  and
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))) ) and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H3 leftof ?H4 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( '$existential'( H3, 
      1, 
      exists( H4, 
        exists( H5, 
          ( nesc( leftof(H1,H2))  &
            nesc( leftof(H2,H3)) & 
            nesc( leftof(H3,H4)) & 
            nesc( leftof(H4,H5))))))  &
    '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  nesc( leftof(H3,H4))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?H1 leftof ?H2 " is possibly false  and
%~     by default ?H2 exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))))) ) and
%~     by default ?H3 exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))) ) and
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))) ) and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H2 leftof ?H3 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( leftof(H1,H2)))  &
    '$existential'( H2, 
      1, 
      exists( H3, 
        exists( H4, 
          exists( H5, 
            ( nesc( leftof(H1,H2))  &
              nesc( leftof(H2,H3)) & 
              nesc( leftof(H3,H4)) & 
              nesc( leftof(H4,H5))))))) & 
    '$existential'( H3, 
      1, 
      exists( H4, 
        exists( H5, 
          ( nesc( leftof(H1,H2))  &
            nesc( leftof(H2,H3)) & 
            nesc( leftof(H3,H4)) & 
            nesc( leftof(H4,H5)))))) & 
    '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  poss( ~( leftof(H2,H3)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((((" ?H2 leftof ?H3 " is necessarily true  and
%~     by default ?H1 exists(H2,exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))))) ) and
%~     by default ?H2 exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))))) ) and
%~     by default ?H3 exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))) ) and
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))) ) and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H1 leftof ?H2 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( nesc( leftof(H2,H3))  &
    '$existential'( H1, 
      1, 
      exists( H2, 
        exists( H3, 
          exists( H4, 
            exists( H5, 
              ( nesc( leftof(H1,H2))  &
                nesc( leftof(H2,H3)) & 
                nesc( leftof(H3,H4)) & 
                nesc( leftof(H4,H5)))))))) & 
    '$existential'( H2, 
      1, 
      exists( H3, 
        exists( H4, 
          exists( H5, 
            ( nesc( leftof(H1,H2))  &
              nesc( leftof(H2,H3)) & 
              nesc( leftof(H3,H4)) & 
              nesc( leftof(H4,H5))))))) & 
    '$existential'( H3, 
      1, 
      exists( H4, 
        exists( H5, 
          ( nesc( leftof(H1,H2))  &
            nesc( leftof(H2,H3)) & 
            nesc( leftof(H3,H4)) & 
            nesc( leftof(H4,H5)))))) & 
    '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  nesc( leftof(H1,H2))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((((" ?H2 leftof ?H3 " is possibly false  and
%~     by default ?H1 exists(H2,exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))))) ) and
%~     by default ?H2 exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))))) ) and
%~     by default ?H3 exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))) ) and
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))) ) and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H1 leftof ?H2 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( leftof(H2,H3)))  &
    '$existential'( H1, 
      1, 
      exists( H2, 
        exists( H3, 
          exists( H4, 
            exists( H5, 
              ( nesc( leftof(H1,H2))  &
                nesc( leftof(H2,H3)) & 
                nesc( leftof(H3,H4)) & 
                nesc( leftof(H4,H5)))))))) & 
    '$existential'( H2, 
      1, 
      exists( H3, 
        exists( H4, 
          exists( H5, 
            ( nesc( leftof(H1,H2))  &
              nesc( leftof(H2,H3)) & 
              nesc( leftof(H3,H4)) & 
              nesc( leftof(H4,H5))))))) & 
    '$existential'( H3, 
      1, 
      exists( H4, 
        exists( H5, 
          ( nesc( leftof(H1,H2))  &
            nesc( leftof(H2,H3)) & 
            nesc( leftof(H3,H4)) & 
            nesc( leftof(H4,H5)))))) & 
    '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  poss( ~( leftof(H1,H2)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?H1 leftof ?H2 " is necessarily true  and
%~     by default ?H2 exists(H3,exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))))) ) and
%~     by default ?H3 exists(H4,exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5)))) ) and
%~     by default ?H4 exists(H5,((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))) ) and
%~     by default ?H5 ((nesc(leftof(H1,H2))&nesc(leftof(H2,H3)))&nesc(leftof(H3,H4)))&nesc(leftof(H4,H5))
%~  It's Proof that:
%~    " ?H2 leftof ?H3 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( nesc( leftof(H1,H2))  &
    '$existential'( H2, 
      1, 
      exists( H3, 
        exists( H4, 
          exists( H5, 
            ( nesc( leftof(H1,H2))  &
              nesc( leftof(H2,H3)) & 
              nesc( leftof(H3,H4)) & 
              nesc( leftof(H4,H5))))))) & 
    '$existential'( H3, 
      1, 
      exists( H4, 
        exists( H5, 
          ( nesc( leftof(H1,H2))  &
            nesc( leftof(H2,H3)) & 
            nesc( leftof(H3,H4)) & 
            nesc( leftof(H4,H5)))))) & 
    '$existential'( H4, 
      1, 
      exists( H5, 
        ( nesc( leftof(H1,H2))  &
          nesc( leftof(H2,H3)) & 
          nesc( leftof(H3,H4)) & 
          nesc( leftof(H4,H5))))) & 
    '$existential'( H5, 
      1, 
      ( nesc( leftof(H1,H2))  &
        nesc( leftof(H2,H3)) & 
        nesc( leftof(H3,H4)) & 
        nesc( leftof(H4,H5))))) ==> 
  nesc( leftof(H2,H3))).

~*/
%~ unused(no_junit_results)

%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/fiveof/five_leftof_up_down_02.pl:28 
%~ test_completed_exit(0)
totalTime=5.000

FAILED: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k five_leftof_up_down_02.pl (returned 0) Add_LABELS='' Rem_LABELS='Skipped,Skipped,Errors,Warnings,Overtime,Skipped,Skipped'

ISSUE_INFO=618	OPEN	logicmoo.base.fol.fiveof.FIVE_LEFTOF_UP_DOWN_02 JUnit	logicmoo.base.fol.fiveof, Test_9999, unit_test, FIVE_LEFTOF_UP_DOWN_02, Failing	2021-09-26 22:48:09 +0000 UTC
ISSUE_ID=618
ISSUE_OC=OPEN
Editing Issue For FAILED 618	OPEN	logicmoo.base.fol.fiveof.FIVE_LEFTOF_UP_DOWN_02 JUnit	logicmoo.base.fol.fiveof, Test_9999, unit_test, FIVE_LEFTOF_UP_DOWN_02, Failing	2021-09-26 22:48:09 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/618
Warn: reached MAX_JUNIT_TESTS .. skipping .. five_leftof_all_02.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. nonmonotonic_type_01.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. monotonic_type_01.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. five_leftof_type_02.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. five_leftof_type_01.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. five_leftof_03.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. five_leftof_02.pl
sed: can't read /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-fiveof-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units?*-junit.xml: No such file or directory
<!-- 
junit-viewer is /usr/bin/junit-viewer
junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-fiveof-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-fiveof-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer-rollup.html &> /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-fiveof-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer.debug.html
junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-fiveof-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-fiveof-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer-rollup.html
Requirement already satisfied: junit2html in /usr/local/lib/python3.9/dist-packages (30.0.6)
Requirement already satisfied: jinja2>=2.11.2 in /usr/local/lib/python3.9/dist-packages (from junit2html) (3.0.1)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.9/dist-packages (from jinja2>=2.11.2->junit2html) (2.0.1)
junit2html is /usr/local/bin/junit2html
junit2html /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-fiveof-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-fiveof-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.html
TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-fol-fiveof-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units
-->
+ CMD_TIMEOUT=1m
+ '[' -n 4 ']'
+ '[' 4 -lt 10 ']'
+ CMD_TIMEOUT=10s
+ echo 'Warn: (MAX_JUNIT_TESTS < 10) we want our tests to be short:  CMD_TIMEOUT=10s'
Warn: (MAX_JUNIT_TESTS < 10) we want our tests to be short:  CMD_TIMEOUT=10s
+ lmoo-junit '*0*.* 2>&1 | grep -2 -i '\''WARN\|ERROR\|_file\|00\|fail\|pass'\'''
<!-- PACK_DIR=logicmoo_base -->
<!-- JUNIT_PACKAGE=logicmoo.base.examples.fol -->
<!-- GLOBSTEM=logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass- -->
<!-- TEST_STEM=Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- Running release (all) tests
 ( cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol ; /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit *0*.* 2>&1 | grep -2 -i 'WARN\|ERROR\|_file\|00\|fail\|pass') -->
<!-- PACK_DIR=logicmoo_base -->
<!-- JUNIT_PACKAGE=logicmoo.base.examples.fol -->
<!-- GLOBSTEM=logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass- -->
<!-- TEST_STEM=Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units -->
<!-- LOGICMOO_WS=/var/lib/jenkins/workspace/logicmoo_workspace -->
<!-- test_completed=true -->
<!-- ROLLUP_STEM=Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Rollup -->
<!-- ROLLUP_TMP=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-Rollup.tmp -->
Running Matching Tests: (cd /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol ; /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k *0*.* 2>&1 | grep -2 -i 'WARN\|ERROR\|_file\|00\|fail\|pass')

gh: Validation Failed (HTTP 422)
SORTED_FILES=zebra_03.clif zebra_04.clif zebra_05.clif zebra_06.clif zebra_02.clif zebra_01.clif zebra_01a.clif good_same_01.clif exactly_one_value_01.clif exactly_one_instance_01.clif exactly_one_has_the_value_01.clif exactly_01.clif clif_01.clif answerable_t_01.pfc.pl exactly_poss_cute_06.pfc.pl birds_04.pfc.pl unit_projection_lem_01.pfc.pl tc_example_01.pfc.pl sigma_04.pl scope_exists_01.pfc.pl sanity_sk_two_01.pfc.pl sanity_sk_human_01.pfc.pl sanity_poss_03.pfc.pl sanity_poss_02.pfc.pl sanity_poss_01.pfc.pl sanity_fi_sk_01.pfc.pl sanity_fi_human_01.pfc.pl sanity_exists_03.pfc.pl sanity_exists_02.pfc.pl sanity_exists_01.pfc.pl sanity_exactly_01.pfc.pl sanity_atmost_01.pfc.pl sanity_atleast_01.pfc.pl sanity_at_least_most_exactly_02.pfc.pl sanity_at_least_most_exactly_01.pfc.pl room_numbers_01.pfc.pl poss_forall_exists_05.pfc.pl poss_forall_exists_04.pfc.pl poss_forall_exists_03.pfc.pl poss_forall_exists_02.pfc.pl poss_forall_exists_01.pfc.pl mpred_reset_db_01.pfc.pl missing_count_06.pfc.pl missing_count_05.pfc.pl missing_count_04.pfc.pl missing_count_03.pfc.pl missing_count_02.pfc.pl missing_count_01.pfc.pl make_wff_02.pfc.pl make_wff_01.pfc.pl make_types_wff_01.pfc.pl lefty_01.pfc.pl kif_sanity_01.pfc.pl kif_io_test_01.pl forall_quant_01.pfc.pl fol_cardinaity_axiomitized_02.pfc.pl fol_cardinaity_axiomitized_01.pfc.pl fol_calc_01.pfc.pl fol_birdt_01.pfc.pl family_regress_01.pfc.pl family_inheritance_01.pfc.pl exists_04.pfc.pl exactly_puppy_02.pfc.pl einstein_simpler_05.pfc.pl einstein_simpler_03.pfc.pl einstein_simpler_02.pfc.pl dislikes_03.pfc.pl boxlog_sanity_04.pfc.pl boxlog_sanity_03.pfc.pl boxlog_sanity_02.pfc.pl boxlog_sanity_01.pfc.pl zenls_01z.pfc.pl nat_sane_01a.pfc.pl make_wff_01a.pfc.pl kif_io_test_01a.pl holds_011.pfc exactly_01p.pfc.clif birds_01c.pfc.pl
FileTestCase=logicmoo.base.examples.fol.ZEBRA_03 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['zebra_03.clif']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/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 "['zebra_03.clif']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_base/t/examples/fol/zebra_03.clif 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.base.examples.fol/ZEBRA_03/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AZEBRA_03 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/637 


%~ init_phase(after_load)
%~ init_phase(restore_state)
%
%~ init_why(after_boot,program)
%~ after_boot.
%~ Dont forget to ?- logicmoo_i_cyc_xform.
%~ comment(";")
%~ /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/logicmoo_test_header.pl:30 
%~ comment("; deduct-einstein.scm")
%~ comment(";")
%~ comment("; Full set of Einstein Puzzle facts.")
%~ comment("; There are 15 explicitly stated facts, and four additional implicit")
%~ comment("; facts about ordinal counting (ordering of houses in a row).")
%~ comment(";")
%~ comment("; The facts are stated in a fashion that is as close as possible to")
%~ comment("; the natural-language source. The point being that we want the")
%~ comment("; expression of facts to be closely tied to human patterns of speech.")
%~ comment("; Being \"efficient\" or \"clever\" is NOT the point.")
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define(stv(mean,conf),'cog-new-stv'(mean,conf))))))


** Grammar from file /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_nlu/ext/chat80/original/clone.xg: 182 words .. **



** Grammar from file /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_nlu/ext/chat80/original/lex.xg: 29 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 3.06 sec, 1 clauses
% /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/debuggery/dmsg compiled into dmsg 0.13 sec, -16 clauses




=======================================================
define(stv(mean,conf),'cog-new-stv'(mean,conf))
============================================


?- kif_to_boxlog( define(stv(mean,conf),'cog-new-stv'(mean,conf)) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  mean stv conf define mean 'cog-new-stv' conf
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/zebra_03.clif:747 
%~ azzert_rename('cog-new-stv',cogNewStv)
%~ kif_to_boxlog_attvars2 = necessary(define(stv(mean,conf),cogNewStv(mean,conf)))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(stv(mean,conf),cogNewStv(mean,conf))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that mean stv conf define mean cogNewStv conf
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(stv(mean,conf),cogNewStv(mean,conf))).

============================================
%~ comment("; A little handly-dandy utility to avoid over-reporting of \"obvious\"")
%~ comment("; results. We declare that person1 is the same as person1, etc.")
%~ comment("; A kind-of pauli-exclusion-principle at work.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( same(person),
%~                                        'EvaluationLink'( stv(1,1),
%~                                          PredicateNode( '$STRING'("IsSamePerson")),
%~                                          'ListLink'('FeatureNode'(person),'FeatureNode'(person))))))))




=======================================================
define(same(person),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person))))
============================================


?- kif_to_boxlog( define(same(person),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  person isa same define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(same(person),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(same(person),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that person isa same define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( same(person), 
        'EvaluationLink'( stv(1,1), 
          PredicateNode( '$STRING'("IsSamePerson")), 
          'ListLink'('FeatureNode'(person),'FeatureNode'(person))))).

============================================
%~ comment(" AvatarNode")
%~ comment(" AvatarNode")
%~ comment("; A declaration of fact: it is true that pred has value for person.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( fact(person,pred,value),
%~                                        same(person),
%~                                        'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))))))




=======================================================
define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))
============================================


?- kif_to_boxlog( define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( fact(person,pred,value), 
        same(person), 
        'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))).

============================================
%~ comment("; A neighbor-predicate: two people live next to each other.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( neighbor(person1,person2),
%~                                        same(person1),
%~                                        same(person2),
%~                                        'EvaluationLink'( stv(1,1),
%~                                          PredicateNode( '$STRING'("Neighbor")),
%~                                          'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))))))




=======================================================
define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))
============================================


?- kif_to_boxlog( define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( neighbor(person1,person2), 
        same(person1), 
        same(person2), 
        'EvaluationLink'( stv(1,1), 
          PredicateNode( '$STRING'("Neighbor")), 
          'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))).

============================================
%~ comment("; A left-of predicate: one house is left of another")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'left-of'(house1,house2),
%~                                        'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))))))




=======================================================
define('left-of'(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))
============================================


?- kif_to_boxlog( define('left-of'(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  house1 'left-of' house2 define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('left-of',leftOf)
%~ kif_to_boxlog_attvars2 = necessary(define(leftOf(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(leftOf(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that house1 leftOf house2 define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( leftOf(house1,house2), 
        'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))).

============================================
%~ comment("; 1. The Englishman lives in the red house.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))))))




=======================================================
fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))
============================================


?- kif_to_boxlog( fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'("red house"))))))




=======================================================
fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'("red house"))
============================================


?- kif_to_boxlog( fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'("red house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'("red house"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'(s('[|]'(red,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'(s([red,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'(s([red,house])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'(s([red,house])))).

============================================
%~ comment("; 2. The Swede keeps dogs.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))))))




=======================================================
fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))
============================================


?- kif_to_boxlog( fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))))))




=======================================================
fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))
============================================


?- kif_to_boxlog( fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))).

============================================
%~ comment("; 3. The Dane drinks tea.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))))))




=======================================================
fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))
============================================


?- kif_to_boxlog( fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))))))




=======================================================
fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))
============================================


?- kif_to_boxlog( fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))).

============================================
%~ comment("; 4. The green house is just to the left of the white_house one.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'left-of'('$STRING'("green house"),'$STRING'("white house"))))))




=======================================================
'left-of'('$STRING'("green house"),'$STRING'("white house"))
============================================


?- kif_to_boxlog( 'left-of'('$STRING'("green house"),'$STRING'("white house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "green house" isa '$STRING' 'left-of' "white house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(leftOf('$STRING'(s('[|]'(green,'[|]'(house,[])))),'$STRING'(s('[|]'(white,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(leftOf('$STRING'(s([green,house])),'$STRING'(s([white,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that green house isa s isa '$STRING' leftOf white house isa s isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( leftOf('$STRING'(s([green,house])),'$STRING'(s([white,house])))).

============================================
%~ comment("; 5. The owner of the green house drinks coffee.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'("green house"))))))




=======================================================
fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'("green house"))
============================================


?- kif_to_boxlog( fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'("green house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'("green house"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'(s('[|]'(green,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'(s([green,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'(s([green,house])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'(s([green,house])))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))))))




=======================================================
fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))
============================================


?- kif_to_boxlog( fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))).

============================================
%~ comment("; 6. The Pall Mall smoker keeps birds.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))))))




=======================================================
fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))
============================================


?- kif_to_boxlog( fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))))))




=======================================================
fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))
============================================


?- kif_to_boxlog( fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))).

============================================
%~ comment("; 7. The owner of the yellow house smokes Dunhills.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))))))




=======================================================
fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
============================================


?- kif_to_boxlog( fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'("yellow house"))))))




=======================================================
fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'("yellow house"))
============================================


?- kif_to_boxlog( fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'("yellow house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'("yellow house"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'(s('[|]'(yellow,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'(s([yellow,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'(s([yellow,house])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'(s([yellow,house])))).

============================================
%~ comment("; 8. The man in the center house drinks milk.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))))))




=======================================================
fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))
============================================


?- kif_to_boxlog( fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'("103 Main Street"))))))




=======================================================
fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'("103 Main Street"))
============================================


?- kif_to_boxlog( fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'("103 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'("103 Main Street"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'(s('[|]'('103','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'(s(['103',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'(s(['103',iMain,tSumoStreet])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'(s(['103',iMain,tSumoStreet])))).

============================================
%~ comment("; 9. The Norwegian lives in the first house.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))))))




=======================================================
fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
============================================


?- kif_to_boxlog( fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'("101 Main Street"))))))




=======================================================
fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'("101 Main Street"))
============================================


?- kif_to_boxlog( fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'("101 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'("101 Main Street"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'(s('[|]'('101','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'(s(['101',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'(s(['101',iMain,tSumoStreet])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'(s(['101',iMain,tSumoStreet])))).

============================================
%~ comment("; 10. The Blend smoker has a neighbor who keeps cats.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))))))




=======================================================
fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))
============================================


?- kif_to_boxlog( fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( neighbor('$STRING'("person10"),'$STRING'("catperson"))))))




=======================================================
neighbor('$STRING'("person10"),'$STRING'("catperson"))
============================================


?- kif_to_boxlog( neighbor('$STRING'("person10"),'$STRING'("catperson")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "person10" isa '$STRING' neighbor "catperson" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(neighbor('$STRING'("person10"),'$STRING'("catperson")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(neighbor('$STRING'("person10"),'$STRING'("catperson"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "person10" isa '$STRING' neighbor "catperson" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( neighbor('$STRING'("person10"),'$STRING'("catperson"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))))))




=======================================================
fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))
============================================


?- kif_to_boxlog( fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))).

============================================
%~ comment("; 11. The man who smokes Blue Masters drinks bier.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'("Blue Master"))))))




=======================================================
fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'("Blue Master"))
============================================


?- kif_to_boxlog( fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'("Blue Master")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'("Blue Master"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'(s('[|]'(tSumoBlue,'[|]'('Master',[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'(s([tSumoBlue,'Master'])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'(s([tSumoBlue,'Master'])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'(s([tSumoBlue,'Master'])))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))))))




=======================================================
fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))
============================================


?- kif_to_boxlog( fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))).

============================================
%~ comment("; 12. The man who keeps horses lives next to the Dunhill smoker.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))))))




=======================================================
fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))
============================================


?- kif_to_boxlog( fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person"))))))




=======================================================
neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person"))
============================================


?- kif_to_boxlog( neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "person12" isa '$STRING' neighbor "dun_smoke_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "person12" isa '$STRING' neighbor "dun_smoke_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))))))




=======================================================
fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
============================================


?- kif_to_boxlog( fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))).

============================================
%~ comment("; 13. The German smokes Prince.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))))))




=======================================================
fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))
============================================


?- kif_to_boxlog( fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))))))




=======================================================
fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))
============================================


?- kif_to_boxlog( fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))).

============================================
%~ comment("; 14. The Norwegian lives next to the blue house.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))))))




=======================================================
fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
============================================


?- kif_to_boxlog( fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( neighbor('$STRING'("person14"),'$STRING'("blue_person"))))))




=======================================================
neighbor('$STRING'("person14"),'$STRING'("blue_person"))
============================================


?- kif_to_boxlog( neighbor('$STRING'("person14"),'$STRING'("blue_person")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "person14" isa '$STRING' neighbor "blue_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(neighbor('$STRING'("person14"),'$STRING'("blue_person")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(neighbor('$STRING'("person14"),'$STRING'("blue_person"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "person14" isa '$STRING' neighbor "blue_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( neighbor('$STRING'("person14"),'$STRING'("blue_person"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'("blue house"))))))




=======================================================
fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'("blue house"))
============================================


?- kif_to_boxlog( fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'("blue house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'("blue house"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'(s('[|]'(blue,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'(s([blue,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'(s([blue,house])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'(s([blue,house])))).

============================================
%~ comment("; 15. The Blend smoker has a neighbor who drinks water.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))))))




=======================================================
fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))
============================================


?- kif_to_boxlog( fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( neighbor('$STRING'("person15"),'$STRING'("water_person"))))))




=======================================================
neighbor('$STRING'("person15"),'$STRING'("water_person"))
============================================


?- kif_to_boxlog( neighbor('$STRING'("person15"),'$STRING'("water_person")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "person15" isa '$STRING' neighbor "water_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(neighbor('$STRING'("person15"),'$STRING'("water_person")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(neighbor('$STRING'("person15"),'$STRING'("water_person"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "person15" isa '$STRING' neighbor "water_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( neighbor('$STRING'("person15"),'$STRING'("water_person"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))))))




=======================================================
fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))
============================================


?- kif_to_boxlog( fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))).

============================================
%~ comment("; ---------------------------------------------------------------")
%~ comment("; Assorted supplemental facts.  These are somehow implicit in the")
%~ comment("; problem statement. We'd mostly like to derive these, from more")
%~ comment("; basic assumptions, but, for now, we'l just state them.")
%~ comment(";")
%~ comment("; A supplemental fact for fact 4: someone lives in the white house.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'("white house"))))))




=======================================================
fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'("white house"))
============================================


?- kif_to_boxlog( fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'("white house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'("white house"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'(s('[|]'(white,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'(s([white,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'(s([white,house])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'(s([white,house])))).

============================================
%~ comment("; Supplemental fact: someone keeps fish.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))))))




=======================================================
fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))
============================================


?- kif_to_boxlog( fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))).

============================================
%~ comment("; State some implicitly assumed facts about neighboring houses")
%~ comment("; This is the 'successor' function for ordinal numbers.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( successor(house1,house2),
%~                                        'EvaluationLink'( stv(1,1),
%~                                          PredicateNode( '$STRING'("Successor")),
%~                                          'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))))))




=======================================================
define(successor(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))
============================================


?- kif_to_boxlog( define(successor(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  house1 successor house2 define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(successor(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(successor(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that house1 successor house2 define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( successor(house1,house2), 
        'EvaluationLink'( stv(1,1), 
          PredicateNode( '$STRING'("Successor")), 
          'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( successor('$STRING'("101 Main Street"),'$STRING'("102 Main Street"))))))




=======================================================
successor('$STRING'("101 Main Street"),'$STRING'("102 Main Street"))
============================================


?- kif_to_boxlog( successor('$STRING'("101 Main Street"),'$STRING'("102 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "101 Main Street" isa '$STRING' successor "102 Main Street" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(successor('$STRING'(s('[|]'('101','[|]'(iMain,'[|]'(tSumoStreet,[]))))),'$STRING'(s('[|]'('102','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(successor('$STRING'(s(['101',iMain,tSumoStreet])),'$STRING'(s(['102',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that '101' iMain tSumoStreet isa s isa '$STRING' successor '102' iMain tSumoStreet isa s isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( successor( 
         $STRING( s( ['101',iMain,tSumoStreet])), 
         $STRING( s( ['102',iMain,tSumoStreet])))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( successor('$STRING'("102 Main Street"),'$STRING'("103 Main Street"))))))




=======================================================
successor('$STRING'("102 Main Street"),'$STRING'("103 Main Street"))
============================================


?- kif_to_boxlog( successor('$STRING'("102 Main Street"),'$STRING'("103 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "102 Main Street" isa '$STRING' successor "103 Main Street" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(successor('$STRING'(s('[|]'('102','[|]'(iMain,'[|]'(tSumoStreet,[]))))),'$STRING'(s('[|]'('103','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(successor('$STRING'(s(['102',iMain,tSumoStreet])),'$STRING'(s(['103',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that '102' iMain tSumoStreet isa s isa '$STRING' successor '103' iMain tSumoStreet isa s isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( successor( 
         $STRING( s( ['102',iMain,tSumoStreet])), 
         $STRING( s( ['103',iMain,tSumoStreet])))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( successor('$STRING'("103 Main Street"),'$STRING'("104 Main Street"))))))




=======================================================
successor('$STRING'("103 Main Street"),'$STRING'("104 Main Street"))
============================================


?- kif_to_boxlog( successor('$STRING'("103 Main Street"),'$STRING'("104 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "103 Main Street" isa '$STRING' successor "104 Main Street" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(successor('$STRING'(s('[|]'('103','[|]'(iMain,'[|]'(tSumoStreet,[]))))),'$STRING'(s('[|]'('104','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(successor('$STRING'(s(['103',iMain,tSumoStreet])),'$STRING'(s(['104',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that '103' iMain tSumoStreet isa s isa '$STRING' successor '104' iMain tSumoStreet isa s isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( successor( 
         $STRING( s( ['103',iMain,tSumoStreet])), 
         $STRING( s( ['104',iMain,tSumoStreet])))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( successor('$STRING'("104 Main Street"),'$STRING'("105 Main Street"))))))




=======================================================
successor('$STRING'("104 Main Street"),'$STRING'("105 Main Street"))
============================================


?- kif_to_boxlog( successor('$STRING'("104 Main Street"),'$STRING'("105 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "104 Main Street" isa '$STRING' successor "105 Main Street" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(successor('$STRING'(s('[|]'('104','[|]'(iMain,'[|]'(tSumoStreet,[]))))),'$STRING'(s('[|]'('105','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(successor('$STRING'(s(['104',iMain,tSumoStreet])),'$STRING'(s(['105',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that '104' iMain tSumoStreet isa s isa '$STRING' successor '105' iMain tSumoStreet isa s isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( successor( 
         $STRING( s( ['104',iMain,tSumoStreet])), 
         $STRING( s( ['105',iMain,tSumoStreet])))).

============================================
%~ comment("; ---------------------------------------------------------------")
%~ comment("; By-process-of-elimination facts")
%~ comment("; If person doesn't live in one of the four houses, they must live in")
%~ comment("; the fifth. Likewsie, if person doesn't smoke/drink/keep one of the four,")
%~ comment("; they must have the fifth.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define('is-a'(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y)))))))




=======================================================
define('is-a'(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y)))
============================================


?- kif_to_boxlog( define('is-a'(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  x 'is-a' y define x isa 'ConceptNode' 'InheritanceLink' y isa 'ConceptNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('is-a',isA)
%~ kif_to_boxlog_attvars2 = necessary(define(isA(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(isA(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y)))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that x isA y define x isa 'ConceptNode' 'InheritanceLink' y isa 'ConceptNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(isA(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y)))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("red house"),'$STRING'("house"))))))




=======================================================
'is-a'('$STRING'("red house"),'$STRING'("house"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("red house"),'$STRING'("house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "red house" isa '$STRING' 'is-a' "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(red,'[|]'(house,[])))),'$STRING'("house")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([red,house])),'$STRING'("house"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that red house isa s isa '$STRING' isA "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([red,house])),'$STRING'("house"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("white house"),'$STRING'("house"))))))




=======================================================
'is-a'('$STRING'("white house"),'$STRING'("house"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("white house"),'$STRING'("house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "white house" isa '$STRING' 'is-a' "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(white,'[|]'(house,[])))),'$STRING'("house")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([white,house])),'$STRING'("house"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that white house isa s isa '$STRING' isA "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([white,house])),'$STRING'("house"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("green house"),'$STRING'("house"))))))




=======================================================
'is-a'('$STRING'("green house"),'$STRING'("house"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("green house"),'$STRING'("house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "green house" isa '$STRING' 'is-a' "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(green,'[|]'(house,[])))),'$STRING'("house")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([green,house])),'$STRING'("house"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that green house isa s isa '$STRING' isA "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([green,house])),'$STRING'("house"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("yellow house"),'$STRING'("house"))))))




=======================================================
'is-a'('$STRING'("yellow house"),'$STRING'("house"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("yellow house"),'$STRING'("house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "yellow house" isa '$STRING' 'is-a' "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(yellow,'[|]'(house,[])))),'$STRING'("house")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([yellow,house])),'$STRING'("house"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that yellow house isa s isa '$STRING' isA "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([yellow,house])),'$STRING'("house"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("blue house"),'$STRING'("house"))))))




=======================================================
'is-a'('$STRING'("blue house"),'$STRING'("house"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("blue house"),'$STRING'("house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "blue house" isa '$STRING' 'is-a' "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(blue,'[|]'(house,[])))),'$STRING'("house")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([blue,house])),'$STRING'("house"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that blue house isa s isa '$STRING' isA "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([blue,house])),'$STRING'("house"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("water"),'$STRING'("drink"))))))




=======================================================
'is-a'('$STRING'("water"),'$STRING'("drink"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("water"),'$STRING'("drink")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "water" isa '$STRING' 'is-a' "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("water"),'$STRING'("drink")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("water"),'$STRING'("drink"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "water" isa '$STRING' isA "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("water"),'$STRING'("drink"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("milk"),'$STRING'("drink"))))))




=======================================================
'is-a'('$STRING'("milk"),'$STRING'("drink"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("milk"),'$STRING'("drink")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "milk" isa '$STRING' 'is-a' "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("milk"),'$STRING'("drink")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("milk"),'$STRING'("drink"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "milk" isa '$STRING' isA "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("milk"),'$STRING'("drink"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("bier"),'$STRING'("drink"))))))




=======================================================
'is-a'('$STRING'("bier"),'$STRING'("drink"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("bier"),'$STRING'("drink")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "bier" isa '$STRING' 'is-a' "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("bier"),'$STRING'("drink")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("bier"),'$STRING'("drink"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "bier" isa '$STRING' isA "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("bier"),'$STRING'("drink"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("coffee"),'$STRING'("drink"))))))




=======================================================
'is-a'('$STRING'("coffee"),'$STRING'("drink"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("coffee"),'$STRING'("drink")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "coffee" isa '$STRING' 'is-a' "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("coffee"),'$STRING'("drink")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("coffee"),'$STRING'("drink"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "coffee" isa '$STRING' isA "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("coffee"),'$STRING'("drink"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("tea"),'$STRING'("drink"))))))




=======================================================
'is-a'('$STRING'("tea"),'$STRING'("drink"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("tea"),'$STRING'("drink")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "tea" isa '$STRING' 'is-a' "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("tea"),'$STRING'("drink")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("tea"),'$STRING'("drink"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "tea" isa '$STRING' isA "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("tea"),'$STRING'("drink"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Prince"),'$STRING'("tobacco"))))))




=======================================================
'is-a'('$STRING'("Prince"),'$STRING'("tobacco"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Prince"),'$STRING'("tobacco")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Prince" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Prince"),'$STRING'("tobacco")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Prince"),'$STRING'("tobacco"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Prince" isa '$STRING' isA "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Prince"),'$STRING'("tobacco"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("PallMall"),'$STRING'("tobacco"))))))




=======================================================
'is-a'('$STRING'("PallMall"),'$STRING'("tobacco"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("PallMall"),'$STRING'("tobacco")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "PallMall" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("PallMall"),'$STRING'("tobacco")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("PallMall"),'$STRING'("tobacco"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "PallMall" isa '$STRING' isA "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("PallMall"),'$STRING'("tobacco"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Dunhill"),'$STRING'("tobacco"))))))




=======================================================
'is-a'('$STRING'("Dunhill"),'$STRING'("tobacco"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Dunhill"),'$STRING'("tobacco")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Dunhill" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Dunhill"),'$STRING'("tobacco")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Dunhill"),'$STRING'("tobacco"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Dunhill" isa '$STRING' isA "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Dunhill"),'$STRING'("tobacco"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Blend"),'$STRING'("tobacco"))))))




=======================================================
'is-a'('$STRING'("Blend"),'$STRING'("tobacco"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Blend"),'$STRING'("tobacco")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Blend" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Blend"),'$STRING'("tobacco")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Blend"),'$STRING'("tobacco"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Blend" isa '$STRING' isA "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Blend"),'$STRING'("tobacco"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("Blue Master"),'$STRING'("tobacco"))))))




=======================================================
'is-a'('$STRING'("Blue Master"),'$STRING'("tobacco"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Blue Master"),'$STRING'("tobacco")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Blue Master" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(tSumoBlue,'[|]'('Master',[])))),'$STRING'("tobacco")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([tSumoBlue,'Master'])),'$STRING'("tobacco"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that tSumoBlue 'Master' isa s isa '$STRING' isA "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([tSumoBlue,'Master'])),'$STRING'("tobacco"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("fish"),'$STRING'("keeps_as_pet"))))))




=======================================================
'is-a'('$STRING'("fish"),'$STRING'("keeps_as_pet"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("fish"),'$STRING'("keeps_as_pet")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "fish" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("fish"),'$STRING'("keeps_as_pet")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("fish"),'$STRING'("keeps_as_pet"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "fish" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("fish"),'$STRING'("keeps_as_pet"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("dogs"),'$STRING'("keeps_as_pet"))))))




=======================================================
'is-a'('$STRING'("dogs"),'$STRING'("keeps_as_pet"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("dogs"),'$STRING'("keeps_as_pet")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "dogs" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("dogs"),'$STRING'("keeps_as_pet")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("dogs"),'$STRING'("keeps_as_pet"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "dogs" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("dogs"),'$STRING'("keeps_as_pet"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("birds"),'$STRING'("keeps_as_pet"))))))




=======================================================
'is-a'('$STRING'("birds"),'$STRING'("keeps_as_pet"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("birds"),'$STRING'("keeps_as_pet")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "birds" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("birds"),'$STRING'("keeps_as_pet")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("birds"),'$STRING'("keeps_as_pet"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "birds" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("birds"),'$STRING'("keeps_as_pet"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("cats"),'$STRING'("keeps_as_pet"))))))




=======================================================
'is-a'('$STRING'("cats"),'$STRING'("keeps_as_pet"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("cats"),'$STRING'("keeps_as_pet")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "cats" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("cats"),'$STRING'("keeps_as_pet")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("cats"),'$STRING'("keeps_as_pet"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "cats" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("cats"),'$STRING'("keeps_as_pet"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("horses"),'$STRING'("keeps_as_pet"))))))




=======================================================
'is-a'('$STRING'("horses"),'$STRING'("keeps_as_pet"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("horses"),'$STRING'("keeps_as_pet")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "horses" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("horses"),'$STRING'("keeps_as_pet")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("horses"),'$STRING'("keeps_as_pet"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "horses" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("horses"),'$STRING'("keeps_as_pet"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("Englishman"),'$STRING'("citizenship"))))))




=======================================================
'is-a'('$STRING'("Englishman"),'$STRING'("citizenship"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Englishman"),'$STRING'("citizenship")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Englishman" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Englishman"),'$STRING'("citizenship")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Englishman"),'$STRING'("citizenship"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Englishman" isa '$STRING' isA "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Englishman"),'$STRING'("citizenship"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Swede"),'$STRING'("citizenship"))))))




=======================================================
'is-a'('$STRING'("Swede"),'$STRING'("citizenship"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Swede"),'$STRING'("citizenship")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Swede" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Swede"),'$STRING'("citizenship")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Swede"),'$STRING'("citizenship"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Swede" isa '$STRING' isA "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Swede"),'$STRING'("citizenship"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Dane"),'$STRING'("citizenship"))))))




=======================================================
'is-a'('$STRING'("Dane"),'$STRING'("citizenship"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Dane"),'$STRING'("citizenship")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Dane" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Dane"),'$STRING'("citizenship")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Dane"),'$STRING'("citizenship"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Dane" isa '$STRING' isA "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Dane"),'$STRING'("citizenship"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("Norwegian"),'$STRING'("citizenship"))))))




=======================================================
'is-a'('$STRING'("Norwegian"),'$STRING'("citizenship"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Norwegian"),'$STRING'("citizenship")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Norwegian" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Norwegian"),'$STRING'("citizenship")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Norwegian"),'$STRING'("citizenship"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Norwegian" isa '$STRING' isA "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Norwegian"),'$STRING'("citizenship"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("German"),'$STRING'("citizenship"))))))




=======================================================
'is-a'('$STRING'("German"),'$STRING'("citizenship"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("German"),'$STRING'("citizenship")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "German" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("German"),'$STRING'("citizenship")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("German"),'$STRING'("citizenship"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "German" isa '$STRING' isA "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("German"),'$STRING'("citizenship"))).

============================================
%~ comment(";")
%~ comment("; deduct-keep.scm")
%~ comment(";")
%~ comment("; Print out who keeps what")
%~ comment(";")
%~ comment("; Part of the \"Einstein puzzle\" demo.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'print-ownership',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),
%~                                              VariableNode( '$STRING'("$nationality")),
%~                                              VariableNode( '$STRING'("$house")),
%~                                              VariableNode( '$STRING'("$pet"))),
%~                                           'AndLink'(
%~                                              'EvaluationLink'(
%~                                                 PredicateNode( '$STRING'("Nationality")),
%~                                                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),
%~                                              'EvaluationLink'(
%~                                                 PredicateNode( '$STRING'("LivesIn")),
%~                                                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),
%~                                              'EvaluationLink'(
%~                                                 PredicateNode( '$STRING'("KeepsPet")),
%~                                                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),
%~                                           'OrderedLink'(
%~                                              VariableNode( '$STRING'("$person")),
%~                                              VariableNode( '$STRING'("$nationality")),
%~                                              VariableNode( '$STRING'("$house")),
%~                                              VariableNode( '$STRING'("$pet")))))))))




=======================================================
define('print-ownership','BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet")))))
============================================


?- kif_to_boxlog( define('print-ownership','BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'print-ownership' define 'BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('print-ownership',printOwnership)
%~ azzert_rename('VariableList',ftVariableList)
%~ kif_to_boxlog_attvars2 = necessary(define(printOwnership,'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(printOwnership,'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet")))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that printOwnership define 'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( printOwnership, 
        'BindLink'( 
           ftVariableList( 
              'TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))), 
              VariableNode( '$STRING'("$nationality")), 
              VariableNode( '$STRING'("$house")), 
              VariableNode( '$STRING'("$pet"))), 
           'AndLink'( 
              'EvaluationLink'( 
                 PredicateNode( '$STRING'("Nationality")), 
                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))), 
              'EvaluationLink'( 
                 PredicateNode( '$STRING'("LivesIn")), 
                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))), 
              'EvaluationLink'( 
                 PredicateNode( '$STRING'("KeepsPet")), 
                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))), 
           'OrderedLink'( 
              VariableNode( '$STRING'("$person")), 
              VariableNode( '$STRING'("$nationality")), 
              VariableNode( '$STRING'("$house")), 
              VariableNode( '$STRING'("$pet")))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'print-results',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),
%~                                              VariableNode( '$STRING'("$pred")),
%~                                              'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),
%~                                           AndLink( 'EvaluationLink'(
%~                                                       VariableNode( '$STRING'("$pred")),
%~                                                       'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),
%~                                           'OrderedLink'(
%~                                              VariableNode( '$STRING'("$person")),
%~                                              VariableNode( '$STRING'("$pred")),
%~                                              VariableNode( '$STRING'("$attr")))))))))




=======================================================
define('print-results','BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr")))))
============================================


?- kif_to_boxlog( define('print-results','BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr"))))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'print-results' define 'BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr"))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('print-results',printResults)
%~ kif_to_boxlog_attvars2 = necessary(define(printResults,'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr"))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(printResults,'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr")))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that printResults define 'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr"))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( printResults, 
        'BindLink'( 
           ftVariableList( 
              'TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))), 
              VariableNode( '$STRING'("$pred")), 
              'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))), 
           AndLink( 'EvaluationLink'( 
                       VariableNode( '$STRING'("$pred")), 
                       'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))), 
           'OrderedLink'( 
              VariableNode( '$STRING'("$person")), 
              VariableNode( '$STRING'("$pred")), 
              VariableNode( '$STRING'("$attr")))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ comment(";")
%~ comment("; deduct-rules.scm")
%~ comment(";")
%~ comment("; Deduction rules for Einstein puzzle.")
%~ comment(";")
%~ comment("; The rules here are written in a fashion as close as possible to")
%~ comment("; 'ordinary' common-sense deductive rules.  In particular, they are")
%~ comment("; not written to predispose the problem into a 5x5 solution grid")
%~ comment("; (although this is what they eventually must lead to). In other")
%~ comment("; words, there is no effort made to make this the most \"efficient\"")
%~ comment("; possible set of rules; instead, they're the most \"natural\" or")
%~ comment("; \"common-sense-like\" for this task.")
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('use-modules'(srfi('srfi-1'))))))




=======================================================
'use-modules'(srfi('srfi-1'))
============================================


?- kif_to_boxlog( 'use-modules'(srfi('srfi-1')) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'srfi-1' isa srfi isa 'use-modules'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('use-modules',useModules)
%~ azzert_rename('srfi-1',srfi_1)
%~ kif_to_boxlog_attvars2 = necessary(useModules(srfi(srfi_1)))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(useModules(srfi(srfi_1))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that srfi_1 isa srfi isa useModules
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( useModules( srfi(srfi_1))).

============================================
%~ comment("; Define simple truth value")
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define(stv(mean,conf),'cog-new-stv'(mean,conf))))))




=======================================================
define(stv(mean,conf),'cog-new-stv'(mean,conf))
============================================


?- kif_to_boxlog( define(stv(mean,conf),'cog-new-stv'(mean,conf)) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  mean stv conf define mean 'cog-new-stv' conf
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(stv(mean,conf),cogNewStv(mean,conf)))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(stv(mean,conf),cogNewStv(mean,conf))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that mean stv conf define mean cogNewStv conf
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(stv(mean,conf),cogNewStv(mean,conf))).

============================================
%~ comment("; Shorthand for the node types")
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define('VN','VariableNode')))))




=======================================================
define('VN','VariableNode')
============================================


?- kif_to_boxlog( define('VN','VariableNode') ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'VN' define 'VariableNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define('VN','VariableNode'))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define('VN','VariableNode')).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that 'VN' define 'VariableNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define('VN','VariableNode')).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define('PN','PredicateNode')))))




=======================================================
define('PN','PredicateNode')
============================================


?- kif_to_boxlog( define('PN','PredicateNode') ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'PN' define 'PredicateNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define('PN','PredicateNode'))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define('PN','PredicateNode')).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that 'PN' define 'PredicateNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define('PN','PredicateNode')).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define('CN','ConceptNode')))))




=======================================================
define('CN','ConceptNode')
============================================


?- kif_to_boxlog( define('CN','ConceptNode') ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'CN' define 'ConceptNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define('CN','ConceptNode'))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define('CN','ConceptNode')).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that 'CN' define 'ConceptNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define('CN','ConceptNode')).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define('AN','FeatureNode')))))




=======================================================
define('AN','FeatureNode')
============================================


?- kif_to_boxlog( define('AN','FeatureNode') ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'AN' define 'FeatureNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define('AN','FeatureNode'))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define('AN','FeatureNode')).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that 'AN' define 'FeatureNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define('AN','FeatureNode')).

============================================
%~ comment(" AvatarNode")
%~ comment("; Predicate clause specifies a predicate that associates attribute to person")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3))))))))




=======================================================
define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3))))
============================================


?- kif_to_boxlog( define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  clause(t1,v1,t2,v2,t3,v3) define v1 isa t1 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that clause(t1,v1,t2,v2,t3,v3) define v1 isa t1 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3))))).

============================================
%~ comment("; Predicate clause negating the third attribute.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define('not-clause'(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3)))))))))




=======================================================
define('not-clause'(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3)))))
============================================


?- kif_to_boxlog( define('not-clause'(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3))))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'not-clause'(t1,v1,t2,v2,t3,v3) define v1 isa t1 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3 isa 'NotLink'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('not-clause',notClause)
%~ kif_to_boxlog_attvars2 = necessary(define(notClause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(notClause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3)))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that notClause(t1,v1,t2,v2,t3,v3) define v1 isa t1 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3 isa 'NotLink'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(notClause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3)))))).

============================================
%~ comment("; Predicate clause, asserting that v2 and v3 are different atoms.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( differ(t2,v2,t3,v3),
%~                                        'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3))))))))




=======================================================
define(differ(t2,v2,t3,v3),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3))))
============================================


?- kif_to_boxlog( define(differ(t2,v2,t3,v3),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  differ(t2,v2,t3,v3) define "c++:exclusive" isa '$STRING' isa 'GroundedPredicateNode' 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(differ(t2,v2,t3,v3),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(differ(t2,v2,t3,v3),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that differ(t2,v2,t3,v3) define "c++:exclusive" isa '$STRING' isa 'GroundedPredicateNode' 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( differ(t2,v2,t3,v3), 
        'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3))))).

============================================
%~ comment("; Declare a variable var to be of type type")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define('decl-var'(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type)))))))




=======================================================
define('decl-var'(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type)))
============================================


?- kif_to_boxlog( define('decl-var'(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  type 'decl-var' var define var isa 'VariableNode' 'TypedVariableLink' type isa 'TypeNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('decl-var',declVar)
%~ kif_to_boxlog_attvars2 = necessary(define(declVar(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(declVar(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type)))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that type declVar var define var isa 'VariableNode' 'TypedVariableLink' type isa 'TypeNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(declVar(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type)))).

============================================
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; \"Is the same person\" deduction rule.")
%~ comment("; If person A and person B both share the same predicate and property,")
%~ comment("; then they must be the same person.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'is-same-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),
%~                                           'AndLink'(
%~                                              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),
%~                                              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),
%~                                              AbsentLink( clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),
%~                                           clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))))))




=======================================================
define('is-same-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))
============================================


?- kif_to_boxlog( define('is-same-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'is-same-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('is-same-rule',isSameRule)
%~ kif_to_boxlog_attvars2 = necessary(define(isSameRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(isSameRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that isSameRule define 'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( isSameRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))), 
           'AndLink'( 
              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")), 
              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")), 
              AbsentLink( clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))), 
           clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... ")
%~ comment("; Avoid reporting things we already know.")
%~ comment("; Basically, if we already know that person A and B")
%~ comment("; are the same person, then lets not deduce it again.")
%~ comment("; This not link is identical to the conclusion below")
%~ comment("; implicand -- then the following is true too")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; Transitive deduction rule.")
%~ comment(";")
%~ comment("; If attribute X holds for person A, and person A is same as person B")
%~ comment("; then attribute X also holds for person B.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'transitive-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),
%~                                           'AndLink'(
%~                                              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),
%~                                              clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),
%~                                              AbsentLink( clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),
%~                                           clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))))))




=======================================================
define('transitive-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))
============================================


?- kif_to_boxlog( define('transitive-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'transitive-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('transitive-rule',transitiveRule)
%~ kif_to_boxlog_attvars2 = necessary(define(transitiveRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(transitiveRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that transitiveRule define 'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( transitiveRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))), 
           'AndLink'( 
              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")), 
              clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")), 
              AbsentLink( clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))), 
           clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ comment("; Don't deduce thigs we already know...")
%~ comment("; i.e. this not link is identical to conclusion, below.")
%~ comment("; implicand -- then the following is true too")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; Transitive-not deduction rule.")
%~ comment(";")
%~ comment("; If attribute X doesn't hold for person A, and person A is same as person B")
%~ comment("; then attribute X also doesn't hold for person B.")
%~ comment(";")
%~ comment("; Very similar to above")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'transitive-not-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),
%~                                           'AndLink'(
%~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),
%~                                              clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),
%~                                              AbsentLink( 'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),
%~                                           'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))))))




=======================================================
define('transitive-not-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))
============================================


?- kif_to_boxlog( define('transitive-not-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'transitive-not-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('transitive-not-rule',transitiveNotRule)
%~ kif_to_boxlog_attvars2 = necessary(define(transitiveNotRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(transitiveNotRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that transitiveNotRule define 'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( transitiveNotRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))), 
           'AndLink'( 
              notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")), 
              clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")), 
              AbsentLink( notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))), 
           notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ comment("; Don't deduce thigs we already know...")
%~ comment("; i.e. this not link is identical to conclusion, below.")
%~ comment("; implicand -- then the following is true too")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; elimination")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'by-elimination-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person")),
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_a")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_b")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_c")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_d")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_e")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),
%~                                           'AndLink'(
%~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),
%~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),
%~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),
%~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),
%~                                              'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),
%~                                              'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),
%~                                              'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),
%~                                              'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),
%~                                              'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),
%~                                              'EvaluationLink'(
%~                                                 GroundedPredicateNode( '$STRING'("c++:exclusive")),
%~                                                 'ListLink'(
%~                                                    VN( '$STRING'("$attr_a")),
%~                                                    VN( '$STRING'("$attr_b")),
%~                                                    VN( '$STRING'("$attr_c")),
%~                                                    VN( '$STRING'("$attr_d")),
%~                                                    VN( '$STRING'("$attr_e"))))),
%~                                           clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e"))))))))




=======================================================
define('by-elimination-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_c")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_d")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_e")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e"))))
============================================


?- kif_to_boxlog( define('by-elimination-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_c")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_d")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_e")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'by-elimination-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_c")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_d")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_e")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('by-elimination-rule',byEliminationRule)
%~ kif_to_boxlog_attvars2 = necessary(define(byEliminationRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_c")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_d")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_e")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(byEliminationRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_c")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_d")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_e")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that byEliminationRule define 'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_c")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_d")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_e")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( totalTime=10.000

FAILED: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k zebra_03.clif (returned 137) Add_LABELS='Errors,Overtime' Rem_LABELS='Skipped,Skipped,Warnings,Skipped'

ISSUE_INFO=637	OPEN	logicmoo.base.examples.fol.ZEBRA_03 JUnit	Test_9999, logicmoo.base.examples.fol, unit_test, ZEBRA_03, Failing, Errors, Overtime	2021-09-26 22:50:19 +0000 UTC
ISSUE_ID=637
ISSUE_OC=OPEN
Editing Issue For FAILED 637	OPEN	logicmoo.base.examples.fol.ZEBRA_03 JUnit	Test_9999, logicmoo.base.examples.fol, unit_test, ZEBRA_03, Failing, Errors, Overtime	2021-09-26 22:50:19 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/637
FileTestCase=logicmoo.base.examples.fol.ZEBRA_04 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['zebra_04.clif']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/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 "['zebra_04.clif']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_base/t/examples/fol/zebra_04.clif 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.base.examples.fol/ZEBRA_04/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AZEBRA_04 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/638 


%~ init_phase(after_load)
%~ init_phase(restore_state)
%
%~ init_why(after_boot,program)
%~ after_boot.
%~ Dont forget to ?- logicmoo_i_cyc_xform.
%~ comment(";")
%~ comment("; deduct-einstein.scm")
%~ comment(";")
%~ comment("; Full set of Einstein Puzzle facts.")
%~ /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/logicmoo_test_header.pl:30 
%~ comment("; There are 15 explicitly stated facts, and four additional implicit")
%~ comment("; facts about ordinal counting (ordering of houses in a row).")
%~ comment(";")
%~ comment("; The facts are stated in a fashion that is as close as possible to")
%~ comment("; the natural-language source. The point being that we want the")
%~ comment("; expression of facts to be closely tied to human patterns of speech.")
%~ comment("; Being \"efficient\" or \"clever\" is NOT the point.")
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define(stv(mean,conf),'cog-new-stv'(mean,conf))))))


** Grammar from file /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_nlu/ext/chat80/original/clone.xg: 182 words .. **



** Grammar from file /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_nlu/ext/chat80/original/lex.xg: 25 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.65 sec, 1 clauses
% /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/debuggery/dmsg compiled into dmsg 0.12 sec, -16 clauses




=======================================================
define(stv(mean,conf),'cog-new-stv'(mean,conf))
============================================


?- kif_to_boxlog( define(stv(mean,conf),'cog-new-stv'(mean,conf)) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  mean stv conf define mean 'cog-new-stv' conf
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('cog-new-stv',cogNewStv)
%~ kif_to_boxlog_attvars2 = necessary(define(stv(mean,conf),cogNewStv(mean,conf)))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(stv(mean,conf),cogNewStv(mean,conf))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that mean stv conf define mean cogNewStv conf
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(stv(mean,conf),cogNewStv(mean,conf))).

============================================
%~ comment("; A little handly-dandy utility to avoid over-reporting of \"obvious\"")
%~ comment("; results. We declare that person1 is the same as person1, etc.")
%~ comment("; A kind-of pauli-exclusion-principle at work.")
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/zebra_04.clif:747 
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( same(person),
%~                                        'EvaluationLink'( stv(1,1),
%~                                          PredicateNode( '$STRING'("IsSamePerson")),
%~                                          'ListLink'('FeatureNode'(person),'FeatureNode'(person))))))))




=======================================================
define(same(person),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person))))
============================================


?- kif_to_boxlog( define(same(person),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  person isa same define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(same(person),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(same(person),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that person isa same define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( same(person), 
        'EvaluationLink'( stv(1,1), 
          PredicateNode( '$STRING'("IsSamePerson")), 
          'ListLink'('FeatureNode'(person),'FeatureNode'(person))))).

============================================
%~ comment(" AvatarNode")
%~ comment(" AvatarNode")
%~ comment("; A declaration of fact: it is true that pred has value for person.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( fact(person,pred,value),
%~                                        same(person),
%~                                        'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))))))




=======================================================
define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))
============================================


?- kif_to_boxlog( define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( fact(person,pred,value), 
        same(person), 
        'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))).

============================================
%~ comment("; A neighbor-predicate: two people live next to each other.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( neighbor(person1,person2),
%~                                        same(person1),
%~                                        same(person2),
%~                                        'EvaluationLink'( stv(1,1),
%~                                          PredicateNode( '$STRING'("Neighbor")),
%~                                          'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))))))




=======================================================
define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))
============================================


?- kif_to_boxlog( define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( neighbor(person1,person2), 
        same(person1), 
        same(person2), 
        'EvaluationLink'( stv(1,1), 
          PredicateNode( '$STRING'("Neighbor")), 
          'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))).

============================================
%~ comment("; A left-of predicate: one house is left of another")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'left-of'(house1,house2),
%~                                        'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))))))




=======================================================
define('left-of'(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))
============================================


?- kif_to_boxlog( define('left-of'(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  house1 'left-of' house2 define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('left-of',leftOf)
%~ kif_to_boxlog_attvars2 = necessary(define(leftOf(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(leftOf(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that house1 leftOf house2 define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( leftOf(house1,house2), 
        'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))).

============================================
%~ comment("; 1. The Englishman lives in the red house.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))))))




=======================================================
fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))
============================================


?- kif_to_boxlog( fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'("red house"))))))




=======================================================
fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'("red house"))
============================================


?- kif_to_boxlog( fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'("red house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'("red house"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'(s('[|]'(red,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'(s([red,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'(s([red,house])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'(s([red,house])))).

============================================
%~ comment("; 2. The Swede keeps dogs.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))))))




=======================================================
fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))
============================================


?- kif_to_boxlog( fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))))))




=======================================================
fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))
============================================


?- kif_to_boxlog( fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))).

============================================
%~ comment("; 3. The Dane drinks tea.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))))))




=======================================================
fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))
============================================


?- kif_to_boxlog( fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))))))




=======================================================
fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))
============================================


?- kif_to_boxlog( fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))).

============================================
%~ comment("; 4. The green house is just to the left of the white_house one.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'left-of'('$STRING'("green house"),'$STRING'("white house"))))))




=======================================================
'left-of'('$STRING'("green house"),'$STRING'("white house"))
============================================


?- kif_to_boxlog( 'left-of'('$STRING'("green house"),'$STRING'("white house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "green house" isa '$STRING' 'left-of' "white house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(leftOf('$STRING'(s('[|]'(green,'[|]'(house,[])))),'$STRING'(s('[|]'(white,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(leftOf('$STRING'(s([green,house])),'$STRING'(s([white,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that green house isa s isa '$STRING' leftOf white house isa s isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( leftOf('$STRING'(s([green,house])),'$STRING'(s([white,house])))).

============================================
%~ comment("; 5. The owner of the green house drinks coffee.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'("green house"))))))




=======================================================
fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'("green house"))
============================================


?- kif_to_boxlog( fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'("green house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'("green house"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'(s('[|]'(green,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'(s([green,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'(s([green,house])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'(s([green,house])))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))))))




=======================================================
fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))
============================================


?- kif_to_boxlog( fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))).

============================================
%~ comment("; 6. The Pall Mall smoker keeps birds.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))))))




=======================================================
fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))
============================================


?- kif_to_boxlog( fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))))))




=======================================================
fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))
============================================


?- kif_to_boxlog( fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))).

============================================
%~ comment("; 7. The owner of the yellow house smokes Dunhills.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))))))




=======================================================
fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
============================================


?- kif_to_boxlog( fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'("yellow house"))))))




=======================================================
fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'("yellow house"))
============================================


?- kif_to_boxlog( fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'("yellow house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'("yellow house"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'(s('[|]'(yellow,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'(s([yellow,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'(s([yellow,house])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'(s([yellow,house])))).

============================================
%~ comment("; 8. The man in the center house drinks milk.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))))))




=======================================================
fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))
============================================


?- kif_to_boxlog( fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'("103 Main Street"))))))




=======================================================
fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'("103 Main Street"))
============================================


?- kif_to_boxlog( fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'("103 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'("103 Main Street"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'(s('[|]'('103','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'(s(['103',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'(s(['103',iMain,tSumoStreet])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'(s(['103',iMain,tSumoStreet])))).

============================================
%~ comment("; 9. The Norwegian lives in the first house.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))))))




=======================================================
fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
============================================


?- kif_to_boxlog( fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'("101 Main Street"))))))




=======================================================
fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'("101 Main Street"))
============================================


?- kif_to_boxlog( fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'("101 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'("101 Main Street"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'(s('[|]'('101','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'(s(['101',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'(s(['101',iMain,tSumoStreet])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'(s(['101',iMain,tSumoStreet])))).

============================================
%~ comment("; 10. The Blend smoker has a neighbor who keeps cats.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))))))




=======================================================
fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))
============================================


?- kif_to_boxlog( fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( neighbor('$STRING'("person10"),'$STRING'("catperson"))))))




=======================================================
neighbor('$STRING'("person10"),'$STRING'("catperson"))
============================================


?- kif_to_boxlog( neighbor('$STRING'("person10"),'$STRING'("catperson")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "person10" isa '$STRING' neighbor "catperson" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(neighbor('$STRING'("person10"),'$STRING'("catperson")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(neighbor('$STRING'("person10"),'$STRING'("catperson"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "person10" isa '$STRING' neighbor "catperson" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( neighbor('$STRING'("person10"),'$STRING'("catperson"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))))))




=======================================================
fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))
============================================


?- kif_to_boxlog( fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))).

============================================
%~ comment("; 11. The man who smokes Blue Masters drinks bier.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'("Blue Master"))))))




=======================================================
fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'("Blue Master"))
============================================


?- kif_to_boxlog( fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'("Blue Master")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'("Blue Master"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'(s('[|]'(tSumoBlue,'[|]'('Master',[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'(s([tSumoBlue,'Master'])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'(s([tSumoBlue,'Master'])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'(s([tSumoBlue,'Master'])))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))))))




=======================================================
fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))
============================================


?- kif_to_boxlog( fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))).

============================================
%~ comment("; 12. The man who keeps horses lives next to the Dunhill smoker.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))))))




=======================================================
fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))
============================================


?- kif_to_boxlog( fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person"))))))




=======================================================
neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person"))
============================================


?- kif_to_boxlog( neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "person12" isa '$STRING' neighbor "dun_smoke_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "person12" isa '$STRING' neighbor "dun_smoke_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))))))




=======================================================
fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
============================================


?- kif_to_boxlog( fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))).

============================================
%~ comment("; 13. The German smokes Prince.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))))))




=======================================================
fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))
============================================


?- kif_to_boxlog( fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))))))




=======================================================
fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))
============================================


?- kif_to_boxlog( fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))).

============================================
%~ comment("; 14. The Norwegian lives next to the blue house.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))))))




=======================================================
fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
============================================


?- kif_to_boxlog( fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( neighbor('$STRING'("person14"),'$STRING'("blue_person"))))))




=======================================================
neighbor('$STRING'("person14"),'$STRING'("blue_person"))
============================================


?- kif_to_boxlog( neighbor('$STRING'("person14"),'$STRING'("blue_person")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "person14" isa '$STRING' neighbor "blue_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(neighbor('$STRING'("person14"),'$STRING'("blue_person")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(neighbor('$STRING'("person14"),'$STRING'("blue_person"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "person14" isa '$STRING' neighbor "blue_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( neighbor('$STRING'("person14"),'$STRING'("blue_person"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'("blue house"))))))




=======================================================
fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'("blue house"))
============================================


?- kif_to_boxlog( fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'("blue house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'("blue house"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'(s('[|]'(blue,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'(s([blue,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'(s([blue,house])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'(s([blue,house])))).

============================================
%~ comment("; 15. The Blend smoker has a neighbor who drinks water.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))))))




=======================================================
fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))
============================================


?- kif_to_boxlog( fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( neighbor('$STRING'("person15"),'$STRING'("water_person"))))))




=======================================================
neighbor('$STRING'("person15"),'$STRING'("water_person"))
============================================


?- kif_to_boxlog( neighbor('$STRING'("person15"),'$STRING'("water_person")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "person15" isa '$STRING' neighbor "water_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(neighbor('$STRING'("person15"),'$STRING'("water_person")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(neighbor('$STRING'("person15"),'$STRING'("water_person"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "person15" isa '$STRING' neighbor "water_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( neighbor('$STRING'("person15"),'$STRING'("water_person"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))))))




=======================================================
fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))
============================================


?- kif_to_boxlog( fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))).

============================================
%~ comment("; ---------------------------------------------------------------")
%~ comment("; Assorted supplemental facts.  These are somehow implicit in the")
%~ comment("; problem statement. We'd mostly like to derive these, from more")
%~ comment("; basic assumptions, but, for now, we'l just state them.")
%~ comment(";")
%~ comment("; A supplemental fact for fact 4: someone lives in the white house.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'("white house"))))))




=======================================================
fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'("white house"))
============================================


?- kif_to_boxlog( fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'("white house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'("white house"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'(s('[|]'(white,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'(s([white,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'(s([white,house])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'(s([white,house])))).

============================================
%~ comment("; Supplemental fact: someone keeps fish.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))))))




=======================================================
fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))
============================================


?- kif_to_boxlog( fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))).

============================================
%~ comment("; State some implicitly assumed facts about neighboring houses")
%~ comment("; This is the 'successor' function for ordinal numbers.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( successor(house1,house2),
%~                                        'EvaluationLink'( stv(1,1),
%~                                          PredicateNode( '$STRING'("Successor")),
%~                                          'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))))))




=======================================================
define(successor(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))
============================================


?- kif_to_boxlog( define(successor(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  house1 successor house2 define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(successor(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(successor(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that house1 successor house2 define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( successor(house1,house2), 
        'EvaluationLink'( stv(1,1), 
          PredicateNode( '$STRING'("Successor")), 
          'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( successor('$STRING'("101 Main Street"),'$STRING'("102 Main Street"))))))




=======================================================
successor('$STRING'("101 Main Street"),'$STRING'("102 Main Street"))
============================================


?- kif_to_boxlog( successor('$STRING'("101 Main Street"),'$STRING'("102 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "101 Main Street" isa '$STRING' successor "102 Main Street" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(successor('$STRING'(s('[|]'('101','[|]'(iMain,'[|]'(tSumoStreet,[]))))),'$STRING'(s('[|]'('102','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(successor('$STRING'(s(['101',iMain,tSumoStreet])),'$STRING'(s(['102',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that '101' iMain tSumoStreet isa s isa '$STRING' successor '102' iMain tSumoStreet isa s isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( successor( 
         $STRING( s( ['101',iMain,tSumoStreet])), 
         $STRING( s( ['102',iMain,tSumoStreet])))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( successor('$STRING'("102 Main Street"),'$STRING'("103 Main Street"))))))




=======================================================
successor('$STRING'("102 Main Street"),'$STRING'("103 Main Street"))
============================================


?- kif_to_boxlog( successor('$STRING'("102 Main Street"),'$STRING'("103 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "102 Main Street" isa '$STRING' successor "103 Main Street" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(successor('$STRING'(s('[|]'('102','[|]'(iMain,'[|]'(tSumoStreet,[]))))),'$STRING'(s('[|]'('103','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(successor('$STRING'(s(['102',iMain,tSumoStreet])),'$STRING'(s(['103',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that '102' iMain tSumoStreet isa s isa '$STRING' successor '103' iMain tSumoStreet isa s isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( successor( 
         $STRING( s( ['102',iMain,tSumoStreet])), 
         $STRING( s( ['103',iMain,tSumoStreet])))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( successor('$STRING'("103 Main Street"),'$STRING'("104 Main Street"))))))




=======================================================
successor('$STRING'("103 Main Street"),'$STRING'("104 Main Street"))
============================================


?- kif_to_boxlog( successor('$STRING'("103 Main Street"),'$STRING'("104 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "103 Main Street" isa '$STRING' successor "104 Main Street" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(successor('$STRING'(s('[|]'('103','[|]'(iMain,'[|]'(tSumoStreet,[]))))),'$STRING'(s('[|]'('104','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(successor('$STRING'(s(['103',iMain,tSumoStreet])),'$STRING'(s(['104',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that '103' iMain tSumoStreet isa s isa '$STRING' successor '104' iMain tSumoStreet isa s isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( successor( 
         $STRING( s( ['103',iMain,tSumoStreet])), 
         $STRING( s( ['104',iMain,tSumoStreet])))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( successor('$STRING'("104 Main Street"),'$STRING'("105 Main Street"))))))




=======================================================
successor('$STRING'("104 Main Street"),'$STRING'("105 Main Street"))
============================================


?- kif_to_boxlog( successor('$STRING'("104 Main Street"),'$STRING'("105 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "104 Main Street" isa '$STRING' successor "105 Main Street" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(successor('$STRING'(s('[|]'('104','[|]'(iMain,'[|]'(tSumoStreet,[]))))),'$STRING'(s('[|]'('105','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(successor('$STRING'(s(['104',iMain,tSumoStreet])),'$STRING'(s(['105',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that '104' iMain tSumoStreet isa s isa '$STRING' successor '105' iMain tSumoStreet isa s isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( successor( 
         $STRING( s( ['104',iMain,tSumoStreet])), 
         $STRING( s( ['105',iMain,tSumoStreet])))).

============================================
%~ comment("; ---------------------------------------------------------------")
%~ comment("; By-process-of-elimination facts")
%~ comment("; If person doesn't live in one of the four houses, they must live in")
%~ comment("; the fifth. Likewsie, if person doesn't smoke/drink/keep one of the four,")
%~ comment("; they must have the fifth.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define('is-a'(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y)))))))




=======================================================
define('is-a'(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y)))
============================================


?- kif_to_boxlog( define('is-a'(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  x 'is-a' y define x isa 'ConceptNode' 'InheritanceLink' y isa 'ConceptNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('is-a',isA)
%~ kif_to_boxlog_attvars2 = necessary(define(isA(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(isA(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y)))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that x isA y define x isa 'ConceptNode' 'InheritanceLink' y isa 'ConceptNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(isA(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y)))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("red house"),'$STRING'("house"))))))




=======================================================
'is-a'('$STRING'("red house"),'$STRING'("house"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("red house"),'$STRING'("house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "red house" isa '$STRING' 'is-a' "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(red,'[|]'(house,[])))),'$STRING'("house")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([red,house])),'$STRING'("house"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that red house isa s isa '$STRING' isA "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([red,house])),'$STRING'("house"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("white house"),'$STRING'("house"))))))




=======================================================
'is-a'('$STRING'("white house"),'$STRING'("house"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("white house"),'$STRING'("house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "white house" isa '$STRING' 'is-a' "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(white,'[|]'(house,[])))),'$STRING'("house")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([white,house])),'$STRING'("house"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that white house isa s isa '$STRING' isA "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([white,house])),'$STRING'("house"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("green house"),'$STRING'("house"))))))




=======================================================
'is-a'('$STRING'("green house"),'$STRING'("house"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("green house"),'$STRING'("house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "green house" isa '$STRING' 'is-a' "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(green,'[|]'(house,[])))),'$STRING'("house")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([green,house])),'$STRING'("house"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that green house isa s isa '$STRING' isA "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([green,house])),'$STRING'("house"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("yellow house"),'$STRING'("house"))))))




=======================================================
'is-a'('$STRING'("yellow house"),'$STRING'("house"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("yellow house"),'$STRING'("house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "yellow house" isa '$STRING' 'is-a' "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(yellow,'[|]'(house,[])))),'$STRING'("house")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([yellow,house])),'$STRING'("house"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that yellow house isa s isa '$STRING' isA "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([yellow,house])),'$STRING'("house"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("blue house"),'$STRING'("house"))))))




=======================================================
'is-a'('$STRING'("blue house"),'$STRING'("house"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("blue house"),'$STRING'("house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "blue house" isa '$STRING' 'is-a' "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(blue,'[|]'(house,[])))),'$STRING'("house")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([blue,house])),'$STRING'("house"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that blue house isa s isa '$STRING' isA "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([blue,house])),'$STRING'("house"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("water"),'$STRING'("drink"))))))




=======================================================
'is-a'('$STRING'("water"),'$STRING'("drink"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("water"),'$STRING'("drink")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "water" isa '$STRING' 'is-a' "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("water"),'$STRING'("drink")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("water"),'$STRING'("drink"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "water" isa '$STRING' isA "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("water"),'$STRING'("drink"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("milk"),'$STRING'("drink"))))))




=======================================================
'is-a'('$STRING'("milk"),'$STRING'("drink"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("milk"),'$STRING'("drink")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "milk" isa '$STRING' 'is-a' "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("milk"),'$STRING'("drink")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("milk"),'$STRING'("drink"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "milk" isa '$STRING' isA "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("milk"),'$STRING'("drink"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("bier"),'$STRING'("drink"))))))




=======================================================
'is-a'('$STRING'("bier"),'$STRING'("drink"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("bier"),'$STRING'("drink")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "bier" isa '$STRING' 'is-a' "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("bier"),'$STRING'("drink")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("bier"),'$STRING'("drink"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "bier" isa '$STRING' isA "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("bier"),'$STRING'("drink"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("coffee"),'$STRING'("drink"))))))




=======================================================
'is-a'('$STRING'("coffee"),'$STRING'("drink"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("coffee"),'$STRING'("drink")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "coffee" isa '$STRING' 'is-a' "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("coffee"),'$STRING'("drink")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("coffee"),'$STRING'("drink"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "coffee" isa '$STRING' isA "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("coffee"),'$STRING'("drink"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("tea"),'$STRING'("drink"))))))




=======================================================
'is-a'('$STRING'("tea"),'$STRING'("drink"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("tea"),'$STRING'("drink")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "tea" isa '$STRING' 'is-a' "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("tea"),'$STRING'("drink")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("tea"),'$STRING'("drink"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "tea" isa '$STRING' isA "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("tea"),'$STRING'("drink"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Prince"),'$STRING'("tobacco"))))))




=======================================================
'is-a'('$STRING'("Prince"),'$STRING'("tobacco"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Prince"),'$STRING'("tobacco")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Prince" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Prince"),'$STRING'("tobacco")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Prince"),'$STRING'("tobacco"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Prince" isa '$STRING' isA "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Prince"),'$STRING'("tobacco"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("PallMall"),'$STRING'("tobacco"))))))




=======================================================
'is-a'('$STRING'("PallMall"),'$STRING'("tobacco"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("PallMall"),'$STRING'("tobacco")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "PallMall" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("PallMall"),'$STRING'("tobacco")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("PallMall"),'$STRING'("tobacco"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "PallMall" isa '$STRING' isA "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("PallMall"),'$STRING'("tobacco"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Dunhill"),'$STRING'("tobacco"))))))




=======================================================
'is-a'('$STRING'("Dunhill"),'$STRING'("tobacco"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Dunhill"),'$STRING'("tobacco")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Dunhill" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Dunhill"),'$STRING'("tobacco")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Dunhill"),'$STRING'("tobacco"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Dunhill" isa '$STRING' isA "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Dunhill"),'$STRING'("tobacco"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Blend"),'$STRING'("tobacco"))))))




=======================================================
'is-a'('$STRING'("Blend"),'$STRING'("tobacco"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Blend"),'$STRING'("tobacco")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Blend" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Blend"),'$STRING'("tobacco")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Blend"),'$STRING'("tobacco"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Blend" isa '$STRING' isA "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Blend"),'$STRING'("tobacco"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("Blue Master"),'$STRING'("tobacco"))))))




=======================================================
'is-a'('$STRING'("Blue Master"),'$STRING'("tobacco"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Blue Master"),'$STRING'("tobacco")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Blue Master" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(tSumoBlue,'[|]'('Master',[])))),'$STRING'("tobacco")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([tSumoBlue,'Master'])),'$STRING'("tobacco"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that tSumoBlue 'Master' isa s isa '$STRING' isA "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([tSumoBlue,'Master'])),'$STRING'("tobacco"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("fish"),'$STRING'("keeps_as_pet"))))))




=======================================================
'is-a'('$STRING'("fish"),'$STRING'("keeps_as_pet"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("fish"),'$STRING'("keeps_as_pet")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "fish" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("fish"),'$STRING'("keeps_as_pet")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("fish"),'$STRING'("keeps_as_pet"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "fish" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("fish"),'$STRING'("keeps_as_pet"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("dogs"),'$STRING'("keeps_as_pet"))))))




=======================================================
'is-a'('$STRING'("dogs"),'$STRING'("keeps_as_pet"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("dogs"),'$STRING'("keeps_as_pet")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "dogs" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("dogs"),'$STRING'("keeps_as_pet")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("dogs"),'$STRING'("keeps_as_pet"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "dogs" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("dogs"),'$STRING'("keeps_as_pet"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("birds"),'$STRING'("keeps_as_pet"))))))




=======================================================
'is-a'('$STRING'("birds"),'$STRING'("keeps_as_pet"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("birds"),'$STRING'("keeps_as_pet")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "birds" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("birds"),'$STRING'("keeps_as_pet")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("birds"),'$STRING'("keeps_as_pet"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "birds" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("birds"),'$STRING'("keeps_as_pet"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("cats"),'$STRING'("keeps_as_pet"))))))




=======================================================
'is-a'('$STRING'("cats"),'$STRING'("keeps_as_pet"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("cats"),'$STRING'("keeps_as_pet")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "cats" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("cats"),'$STRING'("keeps_as_pet")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("cats"),'$STRING'("keeps_as_pet"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "cats" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("cats"),'$STRING'("keeps_as_pet"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("horses"),'$STRING'("keeps_as_pet"))))))




=======================================================
'is-a'('$STRING'("horses"),'$STRING'("keeps_as_pet"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("horses"),'$STRING'("keeps_as_pet")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "horses" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("horses"),'$STRING'("keeps_as_pet")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("horses"),'$STRING'("keeps_as_pet"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "horses" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("horses"),'$STRING'("keeps_as_pet"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("Englishman"),'$STRING'("citizenship"))))))




=======================================================
'is-a'('$STRING'("Englishman"),'$STRING'("citizenship"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Englishman"),'$STRING'("citizenship")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Englishman" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Englishman"),'$STRING'("citizenship")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Englishman"),'$STRING'("citizenship"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Englishman" isa '$STRING' isA "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Englishman"),'$STRING'("citizenship"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Swede"),'$STRING'("citizenship"))))))




=======================================================
'is-a'('$STRING'("Swede"),'$STRING'("citizenship"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Swede"),'$STRING'("citizenship")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Swede" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Swede"),'$STRING'("citizenship")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Swede"),'$STRING'("citizenship"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Swede" isa '$STRING' isA "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Swede"),'$STRING'("citizenship"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Dane"),'$STRING'("citizenship"))))))




=======================================================
'is-a'('$STRING'("Dane"),'$STRING'("citizenship"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Dane"),'$STRING'("citizenship")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Dane" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Dane"),'$STRING'("citizenship")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Dane"),'$STRING'("citizenship"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Dane" isa '$STRING' isA "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Dane"),'$STRING'("citizenship"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("Norwegian"),'$STRING'("citizenship"))))))




=======================================================
'is-a'('$STRING'("Norwegian"),'$STRING'("citizenship"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Norwegian"),'$STRING'("citizenship")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Norwegian" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Norwegian"),'$STRING'("citizenship")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Norwegian"),'$STRING'("citizenship"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Norwegian" isa '$STRING' isA "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Norwegian"),'$STRING'("citizenship"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("German"),'$STRING'("citizenship"))))))




=======================================================
'is-a'('$STRING'("German"),'$STRING'("citizenship"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("German"),'$STRING'("citizenship")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "German" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("German"),'$STRING'("citizenship")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("German"),'$STRING'("citizenship"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "German" isa '$STRING' isA "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("German"),'$STRING'("citizenship"))).

============================================
%~ comment(";")
%~ comment("; deduct-keep.scm")
%~ comment(";")
%~ comment("; Print out who keeps what")
%~ comment(";")
%~ comment("; Part of the \"Einstein puzzle\" demo.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'print-ownership',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),
%~                                              VariableNode( '$STRING'("$nationality")),
%~                                              VariableNode( '$STRING'("$house")),
%~                                              VariableNode( '$STRING'("$pet"))),
%~                                           'AndLink'(
%~                                              'EvaluationLink'(
%~                                                 PredicateNode( '$STRING'("Nationality")),
%~                                                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),
%~                                              'EvaluationLink'(
%~                                                 PredicateNode( '$STRING'("LivesIn")),
%~                                                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),
%~                                              'EvaluationLink'(
%~                                                 PredicateNode( '$STRING'("KeepsPet")),
%~                                                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),
%~                                           'OrderedLink'(
%~                                              VariableNode( '$STRING'("$person")),
%~                                              VariableNode( '$STRING'("$nationality")),
%~                                              VariableNode( '$STRING'("$house")),
%~                                              VariableNode( '$STRING'("$pet")))))))))




=======================================================
define('print-ownership','BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet")))))
============================================


?- kif_to_boxlog( define('print-ownership','BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'print-ownership' define 'BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('print-ownership',printOwnership)
%~ azzert_rename('VariableList',ftVariableList)
%~ kif_to_boxlog_attvars2 = necessary(define(printOwnership,'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(printOwnership,'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet")))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that printOwnership define 'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( printOwnership, 
        'BindLink'( 
           ftVariableList( 
              'TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))), 
              VariableNode( '$STRING'("$nationality")), 
              VariableNode( '$STRING'("$house")), 
              VariableNode( '$STRING'("$pet"))), 
           'AndLink'( 
              'EvaluationLink'( 
                 PredicateNode( '$STRING'("Nationality")), 
                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))), 
              'EvaluationLink'( 
                 PredicateNode( '$STRING'("LivesIn")), 
                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))), 
              'EvaluationLink'( 
                 PredicateNode( '$STRING'("KeepsPet")), 
                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))), 
           'OrderedLink'( 
              VariableNode( '$STRING'("$person")), 
              VariableNode( '$STRING'("$nationality")), 
              VariableNode( '$STRING'("$house")), 
              VariableNode( '$STRING'("$pet")))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'print-results',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),
%~                                              VariableNode( '$STRING'("$pred")),
%~                                              'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),
%~                                           AndLink( 'EvaluationLink'(
%~                                                       VariableNode( '$STRING'("$pred")),
%~                                                       'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),
%~                                           'OrderedLink'(
%~                                              VariableNode( '$STRING'("$person")),
%~                                              VariableNode( '$STRING'("$pred")),
%~                                              VariableNode( '$STRING'("$attr")))))))))




=======================================================
define('print-results','BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr")))))
============================================


?- kif_to_boxlog( define('print-results','BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr"))))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'print-results' define 'BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr"))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('print-results',printResults)
%~ kif_to_boxlog_attvars2 = necessary(define(printResults,'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr"))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(printResults,'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr")))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that printResults define 'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr"))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( printResults, 
        'BindLink'( 
           ftVariableList( 
              'TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))), 
              VariableNode( '$STRING'("$pred")), 
              'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))), 
           AndLink( 'EvaluationLink'( 
                       VariableNode( '$STRING'("$pred")), 
                       'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))), 
           'OrderedLink'( 
              VariableNode( '$STRING'("$person")), 
              VariableNode( '$STRING'("$pred")), 
              VariableNode( '$STRING'("$attr")))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ comment(";")
%~ comment("; deduct-rules.scm")
%~ comment(";")
%~ comment("; Deduction rules for Einstein puzzle.")
%~ comment(";")
%~ comment("; The rules here are written in a fashion as close as possible to")
%~ comment("; 'ordinary' common-sense deductive rules.  In particular, they are")
%~ comment("; not written to predispose the problem into a 5x5 solution grid")
%~ comment("; (although this is what they eventually must lead to). In other")
%~ comment("; words, there is no effort made to make this the most \"efficient\"")
%~ comment("; possible set of rules; instead, they're the most \"natural\" or")
%~ comment("; \"common-sense-like\" for this task.")
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('use-modules'(srfi('srfi-1'))))))




=======================================================
'use-modules'(srfi('srfi-1'))
============================================


?- kif_to_boxlog( 'use-modules'(srfi('srfi-1')) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'srfi-1' isa srfi isa 'use-modules'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('use-modules',useModules)
%~ azzert_rename('srfi-1',srfi_1)
%~ kif_to_boxlog_attvars2 = necessary(useModules(srfi(srfi_1)))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(useModules(srfi(srfi_1))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that srfi_1 isa srfi isa useModules
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( useModules( srfi(srfi_1))).

============================================
%~ comment("; Define simple truth value")
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define(stv(mean,conf),'cog-new-stv'(mean,conf))))))




=======================================================
define(stv(mean,conf),'cog-new-stv'(mean,conf))
============================================


?- kif_to_boxlog( define(stv(mean,conf),'cog-new-stv'(mean,conf)) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  mean stv conf define mean 'cog-new-stv' conf
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(stv(mean,conf),cogNewStv(mean,conf)))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(stv(mean,conf),cogNewStv(mean,conf))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that mean stv conf define mean cogNewStv conf
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(stv(mean,conf),cogNewStv(mean,conf))).

============================================
%~ comment("; Shorthand for the node types")
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define('VN','VariableNode')))))




=======================================================
define('VN','VariableNode')
============================================


?- kif_to_boxlog( define('VN','VariableNode') ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'VN' define 'VariableNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define('VN','VariableNode'))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define('VN','VariableNode')).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that 'VN' define 'VariableNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define('VN','VariableNode')).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define('PN','PredicateNode')))))




=======================================================
define('PN','PredicateNode')
============================================


?- kif_to_boxlog( define('PN','PredicateNode') ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'PN' define 'PredicateNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define('PN','PredicateNode'))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define('PN','PredicateNode')).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that 'PN' define 'PredicateNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define('PN','PredicateNode')).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define('CN','ConceptNode')))))




=======================================================
define('CN','ConceptNode')
============================================


?- kif_to_boxlog( define('CN','ConceptNode') ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'CN' define 'ConceptNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define('CN','ConceptNode'))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define('CN','ConceptNode')).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that 'CN' define 'ConceptNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define('CN','ConceptNode')).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define('AN','FeatureNode')))))




=======================================================
define('AN','FeatureNode')
============================================


?- kif_to_boxlog( define('AN','FeatureNode') ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'AN' define 'FeatureNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define('AN','FeatureNode'))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define('AN','FeatureNode')).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that 'AN' define 'FeatureNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define('AN','FeatureNode')).

============================================
%~ comment(" AvatarNode")
%~ comment("; Predicate clause specifies a predicate that associates attribute to person")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3))))))))




=======================================================
define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3))))
============================================


?- kif_to_boxlog( define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  clause(t1,v1,t2,v2,t3,v3) define v1 isa t1 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that clause(t1,v1,t2,v2,t3,v3) define v1 isa t1 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3))))).

============================================
%~ comment("; Predicate clause negating the third attribute.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define('not-clause'(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3)))))))))




=======================================================
define('not-clause'(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3)))))
============================================


?- kif_to_boxlog( define('not-clause'(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3))))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'not-clause'(t1,v1,t2,v2,t3,v3) define v1 isa t1 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3 isa 'NotLink'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('not-clause',notClause)
%~ kif_to_boxlog_attvars2 = necessary(define(notClause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(notClause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3)))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that notClause(t1,v1,t2,v2,t3,v3) define v1 isa t1 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3 isa 'NotLink'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(notClause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3)))))).

============================================
%~ comment("; Predicate clause, asserting that v2 and v3 are different atoms.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( differ(t2,v2,t3,v3),
%~                                        'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3))))))))




=======================================================
define(differ(t2,v2,t3,v3),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3))))
============================================


?- kif_to_boxlog( define(differ(t2,v2,t3,v3),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  differ(t2,v2,t3,v3) define "c++:exclusive" isa '$STRING' isa 'GroundedPredicateNode' 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(differ(t2,v2,t3,v3),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(differ(t2,v2,t3,v3),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that differ(t2,v2,t3,v3) define "c++:exclusive" isa '$STRING' isa 'GroundedPredicateNode' 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( differ(t2,v2,t3,v3), 
        'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3))))).

============================================
%~ comment("; Declare a variable var to be of type type")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define('decl-var'(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type)))))))




=======================================================
define('decl-var'(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type)))
============================================


?- kif_to_boxlog( define('decl-var'(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  type 'decl-var' var define var isa 'VariableNode' 'TypedVariableLink' type isa 'TypeNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('decl-var',declVar)
%~ kif_to_boxlog_attvars2 = necessary(define(declVar(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(declVar(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type)))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that type declVar var define var isa 'VariableNode' 'TypedVariableLink' type isa 'TypeNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(declVar(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type)))).

============================================
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; \"Is the same person\" deduction rule.")
%~ comment("; If person A and person B both share the same predicate and property,")
%~ comment("; then they must be the same person.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'is-same-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),
%~                                           'AndLink'(
%~                                              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),
%~                                              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),
%~                                              AbsentLink( clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),
%~                                           clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))))))




=======================================================
define('is-same-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))
============================================


?- kif_to_boxlog( define('is-same-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'is-same-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('is-same-rule',isSameRule)
%~ kif_to_boxlog_attvars2 = necessary(define(isSameRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(isSameRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that isSameRule define 'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( isSameRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))), 
           'AndLink'( 
              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")), 
              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")), 
              AbsentLink( clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))), 
           clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... ")
%~ comment("; Avoid reporting things we already know.")
%~ comment("; Basically, if we already know that person A and B")
%~ comment("; are the same person, then lets not deduce it again.")
%~ comment("; This not link is identical to the conclusion below")
%~ comment("; implicand -- then the following is true too")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; Transitive deduction rule.")
%~ comment(";")
%~ comment("; If attribute X holds for person A, and person A is same as person B")
%~ comment("; then attribute X also holds for person B.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'transitive-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),
%~                                           'AndLink'(
%~                                              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),
%~                                              clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),
%~                                              AbsentLink( clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),
%~                                           clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))))))




=======================================================
define('transitive-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))
============================================


?- kif_to_boxlog( define('transitive-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'transitive-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('transitive-rule',transitiveRule)
%~ kif_to_boxlog_attvars2 = necessary(define(transitiveRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(transitiveRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that transitiveRule define 'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( transitiveRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))), 
           'AndLink'( 
              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")), 
              clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")), 
              AbsentLink( clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))), 
           clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ comment("; Don't deduce thigs we already know...")
%~ comment("; i.e. this not link is identical to conclusion, below.")
%~ comment("; implicand -- then the following is true too")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; Transitive-not deduction rule.")
%~ comment(";")
%~ comment("; If attribute X doesn't hold for person A, and person A is same as person B")
%~ comment("; then attribute X also doesn't hold for person B.")
%~ comment(";")
%~ comment("; Very similar to above")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'transitive-not-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),
%~                                           'AndLink'(
%~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),
%~                                              clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),
%~                                              AbsentLink( 'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),
%~                                           'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))))))




=======================================================
define('transitive-not-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))
============================================


?- kif_to_boxlog( define('transitive-not-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'transitive-not-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('transitive-not-rule',transitiveNotRule)
%~ kif_to_boxlog_attvars2 = necessary(define(transitiveNotRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(transitiveNotRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that transitiveNotRule define 'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( transitiveNotRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))), 
           'AndLink'( 
              notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")), 
              clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")), 
              AbsentLink( notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))), 
           notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ comment("; Don't deduce thigs we already know...")
%~ comment("; i.e. this not link is identical to conclusion, below.")
%~ comment("; implicand -- then the following is true too")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; elimination")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'by-elimination-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person")),
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_a")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_b")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_c")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_d")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_e")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),
%~                                           'AndLink'(
%~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),
%~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),
%~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),
%~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),
%~                                              'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),
%~                                              'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),
%~                                              'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),
%~                                              'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),
%~                                              'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),
%~                                              'EvaluationLink'(
%~                                                 GroundedPredicateNode( '$STRING'("c++:exclusive")),
%~                                                 'ListLink'(
%~                                                    VN( '$STRING'("$attr_a")),
%~                                                    VN( '$STRING'("$attr_b")),
%~                                                    VN( '$STRING'("$attr_c")),
%~                                                    VN( '$STRING'("$attr_d")),
%~                                                    VN( '$STRING'("$attr_e"))))),
%~                                           clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e"))))))))




=======================================================
define('by-elimination-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_c")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_d")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_e")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e"))))
============================================


?- kif_to_boxlog( define('by-elimination-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_c")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_d")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_e")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'by-elimination-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_c")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_d")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_e")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('by-elimination-rule',byEliminationRule)
%~ kif_to_boxlog_attvars2 = necessary(define(byEliminationRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_c")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_d")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_e")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(byEliminationRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_c")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_d")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_e")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that byEliminationRule define 'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_c")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_d")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_e")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( byEliminationRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person")), 
              declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attr_a")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attr_b")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attr_c")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attr_d")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attr_e")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attr_type"))), 
           'AndLink'( 
              notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")), 
              notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")), 
              notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")), 
              notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")), 
              'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))), 
              'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))), 
              'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))), 
              'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))), 
              'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))), 
              'EvaluationLink'( 
                 GroundedPredicateNode( '$STRING'("c++:exclusive")), 
                 'ListLink'( 
                    VN( '$STRING'("$attr_a")), 
                    VN( '$STRING'("$attr_b")), 
                    VN( '$STRING'("$attr_c")), 
                    VN( '$STRING'("$attr_d")), 
                    VN( '$STRING'("$attr_e"))))), 
           clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ comment("; If person does NOT have atttribute a,b,c or d ...")
%~ comment("; and the attributes a,b,c,d,e are all of the same kind")
%~ comment("; and attributes a,b,c,d,e are all different from one-another")
%~ comment("; Don't deduce thigs we already know...")
%~ comment("; i.e. this not link is identical to conclusion, below.")
%~ comment("(AbsentLink")
%~ comment("\t(clause VN \"$predicate\" VN \"$person\" VN \"$attr_e\")")
%~ comment(")")
%~ comment("; implicand -- then the following is true too")
%~ comment("; Then by elimination, person must have attribute e.")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; distinct-attr rule.")
%~ comment("; If, for a given attribute, person a and person b take on different")
%~ comment("; values, then they cannot be the same person.  Therefore, any other")
%~ comment("; attributes they have must also be exclusive.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'distinct-attr-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),
%~                                           'AndLink'(
%~                                              clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),
%~                                              clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),
%~                                              differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),
%~                                              clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),
%~                                           'not-clause'('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl"))))))))




=======================================================
define('distinct-attr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),'not-clause'('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl"))))
============================================


?- kif_to_boxlog( define('distinct-attr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),'not-clause'('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'distinct-attr-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),'not-clause'('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('distinct-attr-rule',distinctAttrRule)
%~ kif_to_boxlog_attvars2 = necessary(define(distinctAttrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),notClause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(distinctAttrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),notClause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that distinctAttrRule define 'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),notClause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( distinctAttrRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
              declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_common")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")), 
              declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))), 
           'AndLink'( 
              clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")), 
              clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")), 
              differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")), 
              clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))), 
           notClause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ comment("; Don't deduce thigs we already know...")
%~ comment("; i.e. this not link is identical to conclusion, below.")
%~ comment("(AbsentLink")
%~ comment("\t(not-clause VN \"$predicate_exclusive\" VN \"$person_b\" VN \"$attribute_excl\")")
%~ comment(")")
%~ comment("; implicand -- then the following is true too")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; neighbor-not-attr rule.")
%~ comment("; If some attribute holds true for a person, it cannot hold for the")
%~ comment("; person's neighbor.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'neighbor-not-attr-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),
%~                                           'AndLink'(
%~                                              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),
%~                                              clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),
%~                                              AbsentLink( 'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),
%~                                           'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))))))




=======================================================
define('neighbor-not-attr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))
============================================


?- kif_to_boxlog( define('neighbor-not-attr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'neighbor-not-attr-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('neighbor-not-attr-rule',neighborNotAttrRule)
%~ kif_to_boxlog_attvars2 = necessary(define(neighborNotAttrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(neighborNotAttrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that neighborNotAttrRule define 'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( neighborNotAttrRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
              declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))), 
           'AndLink'( 
              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")), 
              clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")), 
              AbsentLink( notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))), 
           notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ comment("; Don't deduce thigs we already know...")
%~ comment("; i.e. this not link is identical to conclusion, below.")
%~ comment("; implicand -- then the following is true too")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; Houses at the end of the street can only have one neighbor, ever.")
%~ comment("; This is a rather narrow rule, as it can only ever apply to the first")
%~ comment("; address (first ordinal -- a boundary condition).")
%~ comment("; This is used to combine rules 9 and 14.")
%~ comment("; There should be a symmetric rule for the last address too ...")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'first-addr-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),
%~                                           'AndLink'(
%~                                              clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'("101 Main Street")),
%~                                              clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),
%~                                              clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),
%~                                              clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),
%~                                              AbsentLink( clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),
%~                                           clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b"))))))))




=======================================================
define('first-addr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'("101 Main Street")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b"))))
============================================


?- kif_to_boxlog( define('first-addr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'("101 Main Street")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'first-addr-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'("101 Main Street")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('first-addr-rule',firstAddrRule)
%~ kif_to_boxlog_attvars2 = necessary(define(firstAddrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'(s('[|]'('101','[|]'(iMain,'[|]'(tSumoStreet,[])))))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(firstAddrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'(s(['101',iMain,tSumoStreet]))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that firstAddrRule define 'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'(s(['101',iMain,tSumoStreet]))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( firstAddrRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))), 
           'AndLink'( 
              clause( 'PN', 
                '$STRING'("Address"), 'VN','$STRING'("$person_a"),'CN', 
                $STRING( s( ['101',iMain,tSumoStreet]))), 
              clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")), 
              clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")), 
              clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")), 
              AbsentLink( clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))), 
           clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... ")
%~ comment("; if adress of personA is 1st house")
%~ comment("; and A is neighbor of B")
%~ comment("; and the next house is one over")
%~ comment("; and we don't already know the conclusion")
%~ comment("; implicand -- then the B lives one house over.")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; Neighbor deduction rule.")
%~ comment(";")
%~ comment("; If Address X is left of address Y, then person who lives in X is")
%~ comment("; a neighbor of person who lives in Y")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'neighbor-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),
%~                                           'AndLink'(
%~                                              clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),
%~                                              clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),
%~                                              clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),
%~                                              AbsentLink( clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),
%~                                           clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))))))




=======================================================
define('neighbor-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))
============================================


?- kif_to_boxlog( define('neighbor-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'neighbor-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('neighbor-rule',neighborRule)
totalTime=10.000

FAILED: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k zebra_04.clif (returned 137) Add_LABELS='Errors,Overtime' Rem_LABELS='Skipped,Skipped,Warnings,Skipped'

ISSUE_INFO=638	OPEN	logicmoo.base.examples.fol.ZEBRA_04 JUnit	Test_9999, logicmoo.base.examples.fol, unit_test, ZEBRA_04, Failing, Errors, Overtime	2021-09-26 22:49:57 +0000 UTC
ISSUE_ID=638
ISSUE_OC=OPEN
Editing Issue For FAILED 638	OPEN	logicmoo.base.examples.fol.ZEBRA_04 JUnit	Test_9999, logicmoo.base.examples.fol, unit_test, ZEBRA_04, Failing, Errors, Overtime	2021-09-26 22:49:57 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/638
FileTestCase=logicmoo.base.examples.fol.ZEBRA_05 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['zebra_05.clif']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/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 "['zebra_05.clif']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_base/t/examples/fol/zebra_05.clif 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.base.examples.fol/ZEBRA_05/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AZEBRA_05 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/459 


%~ init_phase(after_load)
%~ init_phase(restore_state)
%
%~ init_why(after_boot,program)
%~ after_boot.
%~ Dont forget to ?- logicmoo_i_cyc_xform.
%~ comment("; Module zebra5 - Test Zerbra Puzzle in CLIF for SWI-Prolog")
%~ comment("; Maintainer: Douglas Miles")
%~ comment("; Load with  ?- load_clif(pack('logicmoo_base/t/examples/fol/zebra5.clif'))")
%~ comment("; causes deduction of argument types")
%~ debugm(common_logic_loader,show_success(common_logic_loader,common_logic_loader:maplist(zebra5:export,[])))
%~ error( missing_kif_process(call,zebra5:ensure_loaded(library(logicmoo_clif))))
%~ 'set-kif-option'('assume-wff')
t_l:kif_action_mode(tell)
%~ /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/logicmoo_test_header.pl:30 
%~ comment("; PROGRAM A")
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(domain(livesIn,1,tHuman)))))


** Grammar from file /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_nlu/ext/chat80/original/clone.xg: -60 words .. **



** Grammar from file /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_nlu/ext/chat80/original/lex.xg: 143 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.49 sec, 1 clauses
% /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/debuggery/dmsg compiled into dmsg 0.12 sec, -16 clauses




=======================================================
domain(livesIn,1,tHuman)
============================================


?- kif_to_boxlog( domain(livesIn,1,tHuman) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  domain(livesIn,1,tHuman)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argIsa(livesIn,1,tHuman))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argIsa(livesIn,1,tHuman)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argIsa(livesIn,1,tHuman)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argIsa(livesIn,1,tHuman)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(domain(livesIn,2,tHouse)))))




=======================================================
domain(livesIn,2,tHouse)
============================================


?- kif_to_boxlog( domain(livesIn,2,tHouse) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  domain(livesIn,2,tHouse)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argIsa(livesIn,2,tHouse))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argIsa(livesIn,2,tHouse)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argIsa(livesIn,2,tHouse)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argIsa(livesIn,2,tHouse)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(domain(natOrigin,1,tHuman)))))




=======================================================
domain(natOrigin,1,tHuman)
============================================


?- kif_to_boxlog( domain(natOrigin,1,tHuman) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  domain(natOrigin,1,tHuman)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argIsa(natOrigin,1,tHuman))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argIsa(natOrigin,1,tHuman)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argIsa(natOrigin,1,tHuman)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argIsa(natOrigin,1,tHuman)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(domain(natOrigin,2,tCountry)))))




=======================================================
domain(natOrigin,2,tCountry)
============================================


?- kif_to_boxlog( domain(natOrigin,2,tCountry) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  domain(natOrigin,2,tCountry)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argIsa(natOrigin,2,tCountry))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argIsa(natOrigin,2,tCountry)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argIsa(natOrigin,2,tCountry)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argIsa(natOrigin,2,tCountry)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(domain(colorOf,1,tPhysical)))))




=======================================================
domain(colorOf,1,tPhysical)
============================================


?- kif_to_boxlog( domain(colorOf,1,tPhysical) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  domain(colorOf,1,tPhysical)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argIsa(colorOf,1,tPhysical))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argIsa(colorOf,1,tPhysical)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argIsa(colorOf,1,tPhysical)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argIsa(colorOf,1,tPhysical)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(domain(colorOf,2,vtColor)))))




=======================================================
domain(colorOf,2,vtColor)
============================================


?- kif_to_boxlog( domain(colorOf,2,vtColor) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  domain(colorOf,2,vtColor)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argIsa(colorOf,2,vtColor))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argIsa(colorOf,2,vtColor)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argIsa(colorOf,2,vtColor)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argIsa(colorOf,2,vtColor)).

============================================
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/zebra_05.clif:333 
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(domain(address,1,tHouse)))))




=======================================================
domain(address,1,tHouse)
============================================


?- kif_to_boxlog( domain(address,1,tHouse) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  domain(address,1,tHouse)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argIsa(address,1,tHouse))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argIsa(address,1,tHouse)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argIsa(address,1,tHouse)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argIsa(address,1,tHouse)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(domain(address,2,tAddress)))))




=======================================================
domain(address,2,tAddress)
============================================


?- kif_to_boxlog( domain(address,2,tAddress) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  domain(address,2,tAddress)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argIsa(address,2,tAddress))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argIsa(address,2,tAddress)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argIsa(address,2,tAddress)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argIsa(address,2,tAddress)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(argQuotedIsa(address,2,ftInt)))))




=======================================================
argQuotedIsa(address,2,ftInt)
============================================


?- kif_to_boxlog( argQuotedIsa(address,2,ftInt) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  argQuotedIsa(address,2,ftInt)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argQuotedIsa(address,2,ftInt))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argQuotedIsa(address,2,ftInt)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argQuotedIsa(address,2,ftInt)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argQuotedIsa(address,2,ftInt)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(domain(caresFor,1,tHuman)))))




=======================================================
domain(caresFor,1,tHuman)
============================================


?- kif_to_boxlog( domain(caresFor,1,tHuman) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  domain(caresFor,1,tHuman)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argIsa(caresFor,1,tHuman))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argIsa(caresFor,1,tHuman)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argIsa(caresFor,1,tHuman)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argIsa(caresFor,1,tHuman)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(domain(caresFor,2,tAnimal)))))




=======================================================
domain(caresFor,2,tAnimal)
============================================


?- kif_to_boxlog( domain(caresFor,2,tAnimal) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  domain(caresFor,2,tAnimal)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argIsa(caresFor,2,tAnimal))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argIsa(caresFor,2,tAnimal)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argIsa(caresFor,2,tAnimal)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argIsa(caresFor,2,tAnimal)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(subclass(tNonHumanAnimal,tAnimal)))))




=======================================================
subclass(tNonHumanAnimal,tAnimal)
============================================


?- kif_to_boxlog( subclass(tNonHumanAnimal,tAnimal) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  tNonHumanAnimal subclass tAnimal
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(genls(tNonHumanAnimal,tAnimal))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(genls(tNonHumanAnimal,tAnimal)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that tNonHumanAnimal genls tAnimal
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( genls(tNonHumanAnimal,tAnimal)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(subclass(tHuman,tAnimal)))))




=======================================================
subclass(tHuman,tAnimal)
============================================


?- kif_to_boxlog( subclass(tHuman,tAnimal) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  tHuman subclass tAnimal
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(genls(tHuman,tAnimal))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(genls(tHuman,tAnimal)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that tHuman genls tAnimal
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( genls(tHuman,tAnimal)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(disjointWith(tHuman,tNonHumanAnimal)))))




=======================================================
disjointWith(tHuman,tNonHumanAnimal)
============================================


?- kif_to_boxlog( disjointWith(tHuman,tNonHumanAnimal) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  tHuman disjointWith tNonHumanAnimal
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(disjointWith(tHuman,tNonHumanAnimal))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(disjointWith(tHuman,tNonHumanAnimal)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that tHuman disjointWith tNonHumanAnimal
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( disjointWith(tHuman,tNonHumanAnimal)).

============================================
%~ debugm(common_logic_loader,show_success(common_logic_loader,common_logic_loader:ain(clif(domain(drinks,1,tHuman)))))




=======================================================
domain(drinks,1,tHuman)
============================================


?- kif_to_boxlog( domain(drinks,1,tHuman) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  domain(drinks,1,tHuman)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argIsa(drinks,1,tHuman))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argIsa(drinks,1,tHuman)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argIsa(drinks,1,tHuman)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argIsa(drinks,1,tHuman)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(domain(drinks,2,tBeverage)))))




=======================================================
domain(drinks,2,tBeverage)
============================================


?- kif_to_boxlog( domain(drinks,2,tBeverage) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  domain(drinks,2,tBeverage)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argIsa(drinks,2,tBeverage))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argIsa(drinks,2,tBeverage)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argIsa(drinks,2,tBeverage)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argIsa(drinks,2,tBeverage)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(typeGenls(ttBeverageType,tBeverage)))))




=======================================================
typeGenls(ttBeverageType,tBeverage)
============================================


?- kif_to_boxlog( typeGenls(ttBeverageType,tBeverage) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  ttBeverageType typeGenls tBeverage
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(typeGenls(ttBeverageType,tBeverage))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(typeGenls(ttBeverageType,tBeverage)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that ttBeverageType typeGenls tBeverage
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( typeGenls(ttBeverageType,tBeverage)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(instance(tCoffee,ttBeverageType)))))




=======================================================
instance(tCoffee,ttBeverageType)
============================================


?- kif_to_boxlog( instance(tCoffee,ttBeverageType) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  tCoffee instance ttBeverageType
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(ttBeverageType(tCoffee))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(ttBeverageType(tCoffee)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that tCoffee isa ttBeverageType
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( ttBeverageType(tCoffee)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(domain(smokesBrand,1,tHuman)))))




=======================================================
domain(smokesBrand,1,tHuman)
============================================


?- kif_to_boxlog( domain(smokesBrand,1,tHuman) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  domain(smokesBrand,1,tHuman)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argIsa(smokesBrand,1,tHuman))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argIsa(smokesBrand,1,tHuman)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argIsa(smokesBrand,1,tHuman)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argIsa(smokesBrand,1,tHuman)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(domain(smokesBrand,2,tBrandName)))))




=======================================================
domain(smokesBrand,2,tBrandName)
============================================


?- kif_to_boxlog( domain(smokesBrand,2,tBrandName) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  domain(smokesBrand,2,tBrandName)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argIsa(smokesBrand,2,tBrandName))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argIsa(smokesBrand,2,tBrandName)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argIsa(smokesBrand,2,tBrandName)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argIsa(smokesBrand,2,tBrandName)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(argQuotedIsa(smokesBrand,2,ftString)))))




=======================================================
argQuotedIsa(smokesBrand,2,ftString)
============================================


?- kif_to_boxlog( argQuotedIsa(smokesBrand,2,ftString) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  argQuotedIsa(smokesBrand,2,ftString)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argQuotedIsa(smokesBrand,2,ftString))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argQuotedIsa(smokesBrand,2,ftString)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argQuotedIsa(smokesBrand,2,ftString)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argQuotedIsa(smokesBrand,2,ftString)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(domain(caresForType,1,tHuman)))))




=======================================================
domain(caresForType,1,tHuman)
============================================


?- kif_to_boxlog( domain(caresForType,1,tHuman) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  domain(caresForType,1,tHuman)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argIsa(caresForType,1,tHuman))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argIsa(caresForType,1,tHuman)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argIsa(caresForType,1,tHuman)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argIsa(caresForType,1,tHuman)).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(domainSubclass(caresForType,2,tAnimal)))))




=======================================================
domainSubclass(caresForType,2,tAnimal)
============================================


?- kif_to_boxlog( domainSubclass(caresForType,2,tAnimal) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  domainSubclass(caresForType,2,tAnimal)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(argGenl(caresForType,2,tAnimal))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(argGenl(caresForType,2,tAnimal)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that argGenl(caresForType,2,tAnimal)
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( argGenl(caresForType,2,tAnimal)).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( iff(
%~                                         and(caresForType(M1,T1),instance(P1,T1)),
%~                                         caresFor(M1,P1))))))




=======================================================
iff(and(caresForType('$VAR'('M1'),'$VAR'('T1')),instance('$VAR'('P1'),'$VAR'('T1'))),caresFor('$VAR'('M1'),'$VAR'('P1')))
============================================


?- kif_to_boxlog( iff(and(caresForType(M1,T1),instance(P1,T1)),caresFor(M1,P1)) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  ?M1 caresForType ?T1 and ?P1 instance ?T1 iff ?M1 caresFor ?P1
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(<gt;=>(and(caresForType('$VAR'('M1'),'$VAR'('T1')),isa('$VAR'('P1'),'$VAR'('T1'))),caresFor('$VAR'('M1'),'$VAR'('P1'))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 25 entailment(s): 
poss(~caresFor(M1,P1))&nesc(caresForType(M1,T1))&nesc(isa(P1,T1))==>nesc(caresFor(M1,P1)).
poss(~caresFor(M1,P1))&poss(~caresFor(M1,P1))&nesc(caresForType(M1,T1))==>poss(~isa(P1,T1)).
poss(~caresFor(M1,P1))&poss(~caresFor(M1,P1))&nesc(isa(P1,T1))==>poss(~caresForType(M1,T1)).
poss(~caresFor(M1,P1))&v(poss(poss(~caresForType(M1,T1))&nesc(isa(P1,T1))),poss(nesc(caresForType(M1,T1))&poss(~isa(P1,T1))))==>poss(~caresFor(M1,P1)).
poss(~caresForType(M1,T1))&poss(~caresFor(M1,P1))&v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1)))&v(nesc(caresFor(M1,P1)),poss(nesc(caresForType(M1,T1))&poss(~isa(P1,T1))))==>poss(~isa(P1,T1)).
poss(~caresForType(M1,T1))&((v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))&v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))))&v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1)))&v(nesc(isa(P1,T1)),poss(~isa(P1,T1))))&v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1)))&v(nesc(caresFor(M1,P1)),poss(nesc(caresForType(M1,T1))&poss(~isa(P1,T1))))==>poss(~isa(P1,T1)).
poss(caresForType(M1,T1))&poss(~caresFor(M1,P1))&v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1)))&v(poss(poss(~caresForType(M1,T1))&nesc(isa(P1,T1))),nesc(caresFor(M1,P1)))==>nesc(isa(P1,T1)).
poss(caresForType(M1,T1))&((v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))&v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))))&v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1)))&v(nesc(isa(P1,T1)),poss(~isa(P1,T1))))&v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1)))&v(poss(poss(~caresForType(M1,T1))&nesc(isa(P1,T1))),nesc(caresFor(M1,P1)))==>nesc(isa(P1,T1)).
(poss(~caresFor(M1,P1))&nesc(caresForType(M1,T1))&nesc(isa(P1,T1)))&v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1)))&v(poss(~isa(P1,T1)),nesc(isa(P1,T1)))==>nesc(caresForType(M1,T1)).
(poss(~caresFor(M1,P1))&nesc(caresForType(M1,T1))&nesc(isa(P1,T1)))&v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1)))&v(nesc(isa(P1,T1)),poss(~isa(P1,T1)))==>poss(~caresForType(M1,T1)).
(poss(~caresFor(M1,P1))&v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1)))&v(nesc(caresFor(M1,P1)),poss(nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))))&poss(isa(P1,T1))==>nesc(caresForType(M1,T1)).
(poss(~caresFor(M1,P1))&v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1)))&v(poss(poss(~caresForType(M1,T1))&nesc(isa(P1,T1))),nesc(caresFor(M1,P1))))&poss(~isa(P1,T1))==>poss(~caresForType(M1,T1)).
(((v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))&v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))))&v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1)))&v(nesc(isa(P1,T1)),poss(~isa(P1,T1))))&v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1)))&v(nesc(caresFor(M1,P1)),poss(nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))))&poss(isa(P1,T1))==>nesc(caresForType(M1,T1)).
(((v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))&v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))))&v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1)))&v(nesc(isa(P1,T1)),poss(~isa(P1,T1))))&v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1)))&v(poss(poss(~caresForType(M1,T1))&nesc(isa(P1,T1))),nesc(caresFor(M1,P1))))&poss(~isa(P1,T1))==>poss(~caresForType(M1,T1)).
((v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1)))&v(nesc(caresFor(M1,P1)),poss(nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))))&v(poss(poss(~caresForType(M1,T1))&nesc(isa(P1,T1))),nesc(caresFor(M1,P1)))&v(poss(poss(~caresForType(M1,T1))&nesc(isa(P1,T1))),poss(nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))))&v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1)))&v(poss(~isa(P1,T1)),nesc(isa(P1,T1)))==>nesc(caresForType(M1,T1)).
((v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1)))&v(nesc(caresFor(M1,P1)),poss(nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))))&v(poss(poss(~caresForType(M1,T1))&nesc(isa(P1,T1))),nesc(caresFor(M1,P1)))&v(poss(poss(~caresForType(M1,T1))&nesc(isa(P1,T1))),poss(nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))))&v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1)))&v(nesc(isa(P1,T1)),poss(~isa(P1,T1)))==>poss(~caresForType(M1,T1)).
((v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))&v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))))&v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1)))&v(nesc(isa(P1,T1)),poss(~isa(P1,T1))))&nesc(caresForType(M1,T1))&nesc(isa(P1,T1))==>nesc(caresFor(M1,P1)).
((v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))&v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))))&v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1)))&v(nesc(isa(P1,T1)),poss(~isa(P1,T1))))&poss(~caresFor(M1,P1))&nesc(caresForType(M1,T1))==>poss(~isa(P1,T1)).
((v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))&v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))))&v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1)))&v(nesc(isa(P1,T1)),poss(~isa(P1,T1))))&poss(~caresFor(M1,P1))&nesc(isa(P1,T1))==>poss(~caresForType(M1,T1)).
((v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))&v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))))&v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1)))&v(nesc(isa(P1,T1)),poss(~isa(P1,T1))))&v(poss(poss(~caresForType(M1,T1))&nesc(isa(P1,T1))),poss(nesc(caresForType(M1,T1))&poss(~isa(P1,T1))))==>poss(~caresFor(M1,P1)).
(v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1)))&v(nesc(caresFor(M1,P1)),poss(nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))))&v(poss(poss(~caresForType(M1,T1))&nesc(isa(P1,T1))),nesc(caresFor(M1,P1)))&v(poss(poss(~caresForType(M1,T1))&nesc(isa(P1,T1))),poss(nesc(caresForType(M1,T1))&poss(~isa(P1,T1))))==>nesc(caresFor(M1,P1)).
(v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))&v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1))))&poss(~caresFor(M1,P1))&nesc(caresForType(M1,T1))&nesc(isa(P1,T1))==>nesc(isa(P1,T1)).
(v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))&v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1))))&(v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1)))&v(nesc(caresFor(M1,P1)),poss(nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))))&v(poss(poss(~caresForType(M1,T1))&nesc(isa(P1,T1))),nesc(caresFor(M1,P1)))&v(poss(poss(~caresForType(M1,T1))&nesc(isa(P1,T1))),poss(nesc(caresForType(M1,T1))&poss(~isa(P1,T1))))==>nesc(isa(P1,T1)).
(v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))&v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))))&poss(~caresFor(M1,P1))&nesc(caresForType(M1,T1))&nesc(isa(P1,T1))==>poss(~isa(P1,T1)).
(v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))&v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))))&(v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1)))&v(nesc(caresFor(M1,P1)),poss(nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))))&v(poss(poss(~caresForType(M1,T1))&nesc(isa(P1,T1))),nesc(caresFor(M1,P1)))&v(poss(poss(~caresForType(M1,T1))&nesc(isa(P1,T1))),poss(nesc(caresForType(M1,T1))&poss(~isa(P1,T1))))==>poss(~isa(P1,T1)).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?M1 caresFor ?P1 " is possibly false  and
%~    (" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is necessarily true )
%~  It's Proof that:
%~    " ?M1 caresFor ?P1 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( caresFor(M1,P1)))  &
    nesc( caresForType(M1,T1)) & 
    nesc( isa(P1,T1))) ==> 
  nesc( caresFor(M1,P1))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?M1 caresFor ?P1 " is possibly false  and
%~    (" ?M1 caresFor ?P1 " is possibly false  and
%~    " ?M1 caresForType ?T1 " is necessarily true )
%~  It's Proof that:
%~    " ?P1 isa ?T1 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( caresFor(M1,P1)))  &
    poss( ~( caresFor(M1,P1))) & 
    nesc( caresForType(M1,T1))) ==> 
  poss( ~( isa(P1,T1)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?M1 caresFor ?P1 " is possibly false  and
%~    (" ?M1 caresFor ?P1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )
%~  It's Proof that:
%~    " ?M1 caresForType ?T1 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( caresFor(M1,P1)))  &
    poss( ~( caresFor(M1,P1))) & 
    nesc( isa(P1,T1))) ==> 
  poss( ~( caresForType(M1,T1)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?M1 caresFor ?P1 " is possibly false  and
%~    (((" ?M1 caresForType ?T1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )is possible ) or ((" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is possibly false )is possible ))
%~  It's Proof that:
%~    " ?M1 caresFor ?P1 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( caresFor(M1,P1))) & 
    v( poss( poss(~caresForType(M1,T1))&nesc(isa(P1,T1))), 
       poss( nesc(caresForType(M1,T1))&poss(~isa(P1,T1))))) ==> 
  poss( ~( caresFor(M1,P1)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?M1 caresForType ?T1 " is possibly false  and
%~    (" ?M1 caresFor ?P1 " is possibly false  and
%~    ((" ?M1 caresFor ?P1 " is necessarily true  or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (" ?M1 caresFor ?P1 " is necessarily true  or ((" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is possibly false )is possible ))))
%~  It's Proof that:
%~    " ?P1 isa ?T1 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( caresForType(M1,T1)))  &
    poss( ~( caresFor(M1,P1))) & 
    v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1))) & 
    v( nesc( caresFor(M1,P1)), 
       poss( nesc(caresForType(M1,T1))&poss(~isa(P1,T1))))) ==> 
  poss( ~( isa(P1,T1)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?M1 caresForType ?T1 " is possibly false  and
%~    ((((" ?M1 caresForType ?T1 " is possibly false  or " ?M1 caresForType ?T1 " is necessarily true ) and
%~    (" ?M1 caresForType ?T1 " is possibly false  or " ?P1 isa ?T1 " is possibly false )) and
%~    ((" ?M1 caresForType ?T1 " is necessarily true  or " ?P1 isa ?T1 " is necessarily true ) and
%~    (" ?P1 isa ?T1 " is necessarily true  or " ?P1 isa ?T1 " is possibly false ))) and
%~    ((" ?M1 caresFor ?P1 " is necessarily true  or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (" ?M1 caresFor ?P1 " is necessarily true  or ((" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is possibly false )is possible ))))
%~  It's Proof that:
%~    " ?P1 isa ?T1 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( caresForType(M1,T1)))  &
    v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1))) & 
    v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))) & 
    v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1))) & 
    v(nesc(isa(P1,T1)),poss(~isa(P1,T1))) & 
    v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1))) & 
    v( nesc( caresFor(M1,P1)), 
       poss( nesc(caresForType(M1,T1))&poss(~isa(P1,T1))))) ==> 
  poss( ~( isa(P1,T1)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?M1 caresForType ?T1 " is possible  and
%~    (" ?M1 caresFor ?P1 " is possibly false  and
%~    ((" ?M1 caresFor ?P1 " is necessarily true  or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (((" ?M1 caresForType ?T1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )is possible ) or " ?M1 caresFor ?P1 " is necessarily true )))
%~  It's Proof that:
%~    " ?P1 isa ?T1 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( caresForType(M1,T1))  &
    poss( ~( caresFor(M1,P1))) & 
    v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1))) & 
    v( poss( poss(~caresForType(M1,T1))&nesc(isa(P1,T1))), 
       nesc( caresFor(M1,P1)))) ==> 
  nesc( isa(P1,T1))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    " ?M1 caresForType ?T1 " is possible  and
%~    ((((" ?M1 caresForType ?T1 " is possibly false  or " ?M1 caresForType ?T1 " is necessarily true ) and
%~    (" ?M1 caresForType ?T1 " is possibly false  or " ?P1 isa ?T1 " is possibly false )) and
%~    ((" ?M1 caresForType ?T1 " is necessarily true  or " ?P1 isa ?T1 " is necessarily true ) and
%~    (" ?P1 isa ?T1 " is necessarily true  or " ?P1 isa ?T1 " is possibly false ))) and
%~    ((" ?M1 caresFor ?P1 " is necessarily true  or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (((" ?M1 caresForType ?T1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )is possible ) or " ?M1 caresFor ?P1 " is necessarily true )))
%~  It's Proof that:
%~    " ?P1 isa ?T1 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( caresForType(M1,T1))  &
    v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1))) & 
    v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))) & 
    v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1))) & 
    v(nesc(isa(P1,T1)),poss(~isa(P1,T1))) & 
    v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1))) & 
    v( poss( poss(~caresForType(M1,T1))&nesc(isa(P1,T1))), 
       nesc( caresFor(M1,P1)))) ==> 
  nesc( isa(P1,T1))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (" ?M1 caresFor ?P1 " is possibly false  and
%~    (" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is necessarily true )) and
%~    ((" ?M1 caresForType ?T1 " is necessarily true  or " ?P1 isa ?T1 " is necessarily true ) and
%~    (" ?P1 isa ?T1 " is possibly false  or " ?P1 isa ?T1 " is necessarily true ))
%~  It's Proof that:
%~    " ?M1 caresForType ?T1 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( caresFor(M1,P1)))  &
    nesc( caresForType(M1,T1)) & 
    nesc( isa(P1,T1)) & 
    v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1))) & 
    v(poss(~isa(P1,T1)),nesc(isa(P1,T1)))) ==> 
  nesc( caresForType(M1,T1))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (" ?M1 caresFor ?P1 " is possibly false  and
%~    (" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is necessarily true )) and
%~    ((" ?M1 caresForType ?T1 " is possibly false  or " ?P1 isa ?T1 " is possibly false ) and
%~    (" ?P1 isa ?T1 " is necessarily true  or " ?P1 isa ?T1 " is possibly false ))
%~  It's Proof that:
%~    " ?M1 caresForType ?T1 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( caresFor(M1,P1)))  &
    nesc( caresForType(M1,T1)) & 
    nesc( isa(P1,T1)) & 
    v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))) & 
    v(nesc(isa(P1,T1)),poss(~isa(P1,T1)))) ==> 
  poss( ~( caresForType(M1,T1)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (" ?M1 caresFor ?P1 " is possibly false  and
%~    ((" ?M1 caresFor ?P1 " is necessarily true  or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (" ?M1 caresFor ?P1 " is necessarily true  or ((" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is possibly false )is possible )))) and
%~    " ?P1 isa ?T1 " is possible
%~  It's Proof that:
%~    " ?M1 caresForType ?T1 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( caresFor(M1,P1)))  &
    v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1))) & 
    v( nesc( caresFor(M1,P1)), 
       poss( nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))) & 
    poss( isa(P1,T1))) ==> 
  nesc( caresForType(M1,T1))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (" ?M1 caresFor ?P1 " is possibly false  and
%~    ((" ?M1 caresFor ?P1 " is necessarily true  or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (((" ?M1 caresForType ?T1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )is possible ) or " ?M1 caresFor ?P1 " is necessarily true ))) and
%~    " ?P1 isa ?T1 " is possibly false
%~  It's Proof that:
%~    " ?M1 caresForType ?T1 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( poss( ~( caresFor(M1,P1)))  &
    v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1))) & 
    v( poss( poss(~caresForType(M1,T1))&nesc(isa(P1,T1))), 
       nesc( caresFor(M1,P1))) & 
    poss( ~( isa(P1,T1)))) ==> 
  poss( ~( caresForType(M1,T1)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((((" ?M1 caresForType ?T1 " is possibly false  or " ?M1 caresForType ?T1 " is necessarily true ) and
%~    (" ?M1 caresForType ?T1 " is possibly false  or " ?P1 isa ?T1 " is possibly false )) and
%~    ((" ?M1 caresForType ?T1 " is necessarily true  or " ?P1 isa ?T1 " is necessarily true ) and
%~    (" ?P1 isa ?T1 " is necessarily true  or " ?P1 isa ?T1 " is possibly false ))) and
%~    ((" ?M1 caresFor ?P1 " is necessarily true  or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (" ?M1 caresFor ?P1 " is necessarily true  or ((" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is possibly false )is possible )))) and
%~    " ?P1 isa ?T1 " is possible
%~  It's Proof that:
%~    " ?M1 caresForType ?T1 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))  &
    v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))) & 
    v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1))) & 
    v(nesc(isa(P1,T1)),poss(~isa(P1,T1))) & 
    v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1))) & 
    v( nesc( caresFor(M1,P1)), 
       poss( nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))) & 
    poss( isa(P1,T1))) ==> 
  nesc( caresForType(M1,T1))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((((" ?M1 caresForType ?T1 " is possibly false  or " ?M1 caresForType ?T1 " is necessarily true ) and
%~    (" ?M1 caresForType ?T1 " is possibly false  or " ?P1 isa ?T1 " is possibly false )) and
%~    ((" ?M1 caresForType ?T1 " is necessarily true  or " ?P1 isa ?T1 " is necessarily true ) and
%~    (" ?P1 isa ?T1 " is necessarily true  or " ?P1 isa ?T1 " is possibly false ))) and
%~    ((" ?M1 caresFor ?P1 " is necessarily true  or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (((" ?M1 caresForType ?T1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )is possible ) or " ?M1 caresFor ?P1 " is necessarily true ))) and
%~    " ?P1 isa ?T1 " is possibly false
%~  It's Proof that:
%~    " ?M1 caresForType ?T1 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))  &
    v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))) & 
    v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1))) & 
    v(nesc(isa(P1,T1)),poss(~isa(P1,T1))) & 
    v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1))) & 
    v( poss( poss(~caresForType(M1,T1))&nesc(isa(P1,T1))), 
       nesc( caresFor(M1,P1))) & 
    poss( ~( isa(P1,T1)))) ==> 
  poss( ~( caresForType(M1,T1)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?M1 caresFor ?P1 " is necessarily true  or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (" ?M1 caresFor ?P1 " is necessarily true  or ((" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is possibly false )is possible ))) and
%~    ((((" ?M1 caresForType ?T1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )is possible ) or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (((" ?M1 caresForType ?T1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )is possible ) or ((" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is possibly false )is possible )))) and
%~    ((" ?M1 caresForType ?T1 " is necessarily true  or " ?P1 isa ?T1 " is necessarily true ) and
%~    (" ?P1 isa ?T1 " is possibly false  or " ?P1 isa ?T1 " is necessarily true ))
%~  It's Proof that:
%~    " ?M1 caresForType ?T1 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1)))  &
    v( nesc( caresFor(M1,P1)), 
       poss( nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))) & 
    v( poss( poss(~caresForType(M1,T1))&nesc(isa(P1,T1))), 
       nesc( caresFor(M1,P1))) & 
    v( poss( poss(~caresForType(M1,T1))&nesc(isa(P1,T1))), 
       poss( nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))) & 
    v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1))) & 
    v(poss(~isa(P1,T1)),nesc(isa(P1,T1)))) ==> 
  nesc( caresForType(M1,T1))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?M1 caresFor ?P1 " is necessarily true  or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (" ?M1 caresFor ?P1 " is necessarily true  or ((" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is possibly false )is possible ))) and
%~    ((((" ?M1 caresForType ?T1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )is possible ) or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (((" ?M1 caresForType ?T1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )is possible ) or ((" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is possibly false )is possible )))) and
%~    ((" ?M1 caresForType ?T1 " is possibly false  or " ?P1 isa ?T1 " is possibly false ) and
%~    (" ?P1 isa ?T1 " is necessarily true  or " ?P1 isa ?T1 " is possibly false ))
%~  It's Proof that:
%~    " ?M1 caresForType ?T1 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1)))  &
    v( nesc( caresFor(M1,P1)), 
       poss( nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))) & 
    v( poss( poss(~caresForType(M1,T1))&nesc(isa(P1,T1))), 
       nesc( caresFor(M1,P1))) & 
    v( poss( poss(~caresForType(M1,T1))&nesc(isa(P1,T1))), 
       poss( nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))) & 
    v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))) & 
    v(nesc(isa(P1,T1)),poss(~isa(P1,T1)))) ==> 
  poss( ~( caresForType(M1,T1)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?M1 caresForType ?T1 " is possibly false  or " ?M1 caresForType ?T1 " is necessarily true ) and
%~    (" ?M1 caresForType ?T1 " is possibly false  or " ?P1 isa ?T1 " is possibly false )) and
%~    ((" ?M1 caresForType ?T1 " is necessarily true  or " ?P1 isa ?T1 " is necessarily true ) and
%~    (" ?P1 isa ?T1 " is necessarily true  or " ?P1 isa ?T1 " is possibly false ))) and
%~    (" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is necessarily true )
%~  It's Proof that:
%~    " ?M1 caresFor ?P1 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))  &
    v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))) & 
    v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1))) & 
    v(nesc(isa(P1,T1)),poss(~isa(P1,T1))) & 
    nesc( caresForType(M1,T1)) & 
    nesc( isa(P1,T1))) ==> 
  nesc( caresFor(M1,P1))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?M1 caresForType ?T1 " is possibly false  or " ?M1 caresForType ?T1 " is necessarily true ) and
%~    (" ?M1 caresForType ?T1 " is possibly false  or " ?P1 isa ?T1 " is possibly false )) and
%~    ((" ?M1 caresForType ?T1 " is necessarily true  or " ?P1 isa ?T1 " is necessarily true ) and
%~    (" ?P1 isa ?T1 " is necessarily true  or " ?P1 isa ?T1 " is possibly false ))) and
%~    (" ?M1 caresFor ?P1 " is possibly false  and
%~    " ?M1 caresForType ?T1 " is necessarily true )
%~  It's Proof that:
%~    " ?P1 isa ?T1 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))  &
    v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))) & 
    v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1))) & 
    v(nesc(isa(P1,T1)),poss(~isa(P1,T1))) & 
    poss( ~( caresFor(M1,P1))) & 
    nesc( caresForType(M1,T1))) ==> 
  poss( ~( isa(P1,T1)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?M1 caresForType ?T1 " is possibly false  or " ?M1 caresForType ?T1 " is necessarily true ) and
%~    (" ?M1 caresForType ?T1 " is possibly false  or " ?P1 isa ?T1 " is possibly false )) and
%~    ((" ?M1 caresForType ?T1 " is necessarily true  or " ?P1 isa ?T1 " is necessarily true ) and
%~    (" ?P1 isa ?T1 " is necessarily true  or " ?P1 isa ?T1 " is possibly false ))) and
%~    (" ?M1 caresFor ?P1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )
%~  It's Proof that:
%~    " ?M1 caresForType ?T1 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))  &
    v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))) & 
    v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1))) & 
    v(nesc(isa(P1,T1)),poss(~isa(P1,T1))) & 
    poss( ~( caresFor(M1,P1))) & 
    nesc( isa(P1,T1))) ==> 
  poss( ~( caresForType(M1,T1)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    (((" ?M1 caresForType ?T1 " is possibly false  or " ?M1 caresForType ?T1 " is necessarily true ) and
%~    (" ?M1 caresForType ?T1 " is possibly false  or " ?P1 isa ?T1 " is possibly false )) and
%~    ((" ?M1 caresForType ?T1 " is necessarily true  or " ?P1 isa ?T1 " is necessarily true ) and
%~    (" ?P1 isa ?T1 " is necessarily true  or " ?P1 isa ?T1 " is possibly false ))) and
%~    (((" ?M1 caresForType ?T1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )is possible ) or ((" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is possibly false )is possible ))
%~  It's Proof that:
%~    " ?M1 caresFor ?P1 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))  &
    v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))) & 
    v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1))) & 
    v(nesc(isa(P1,T1)),poss(~isa(P1,T1))) & 
    v( poss( poss(~caresForType(M1,T1))&nesc(isa(P1,T1))), 
       poss( nesc(caresForType(M1,T1))&poss(~isa(P1,T1))))) ==> 
  poss( ~( caresFor(M1,P1)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((" ?M1 caresFor ?P1 " is necessarily true  or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (" ?M1 caresFor ?P1 " is necessarily true  or ((" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is possibly false )is possible ))) and
%~    ((((" ?M1 caresForType ?T1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )is possible ) or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (((" ?M1 caresForType ?T1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )is possible ) or ((" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is possibly false )is possible )))
%~  It's Proof that:
%~    " ?M1 caresFor ?P1 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1)))  &
    v( nesc( caresFor(M1,P1)), 
       poss( nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))) & 
    v( poss( poss(~caresForType(M1,T1))&nesc(isa(P1,T1))), 
       nesc( caresFor(M1,P1))) & 
    v( poss( poss(~caresForType(M1,T1))&nesc(isa(P1,T1))), 
       poss( nesc(caresForType(M1,T1))&poss(~isa(P1,T1))))) ==> 
  nesc( caresFor(M1,P1))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((" ?M1 caresForType ?T1 " is possibly false  or " ?M1 caresForType ?T1 " is necessarily true ) and
%~    (" ?M1 caresForType ?T1 " is necessarily true  or " ?P1 isa ?T1 " is necessarily true )) and
%~    (" ?M1 caresFor ?P1 " is possibly false  and
%~    (" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is necessarily true ))
%~  It's Proof that:
%~    " ?P1 isa ?T1 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))  &
    v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1))) & 
    poss( ~( caresFor(M1,P1))) & 
    nesc( caresForType(M1,T1)) & 
    nesc( isa(P1,T1))) ==> 
  nesc( isa(P1,T1))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((" ?M1 caresForType ?T1 " is possibly false  or " ?M1 caresForType ?T1 " is necessarily true ) and
%~    (" ?M1 caresForType ?T1 " is necessarily true  or " ?P1 isa ?T1 " is necessarily true )) and
%~    (((" ?M1 caresFor ?P1 " is necessarily true  or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (" ?M1 caresFor ?P1 " is necessarily true  or ((" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is possibly false )is possible ))) and
%~    ((((" ?M1 caresForType ?T1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )is possible ) or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (((" ?M1 caresForType ?T1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )is possible ) or ((" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is possibly false )is possible ))))
%~  It's Proof that:
%~    " ?P1 isa ?T1 " is necessarily true
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))  &
    v(nesc(caresForType(M1,T1)),nesc(isa(P1,T1))) & 
    v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1))) & 
    v( nesc( caresFor(M1,P1)), 
       poss( nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))) & 
    v( poss( poss(~caresForType(M1,T1))&nesc(isa(P1,T1))), 
       nesc( caresFor(M1,P1))) & 
    v( poss( poss(~caresForType(M1,T1))&nesc(isa(P1,T1))), 
       poss( nesc(caresForType(M1,T1))&poss(~isa(P1,T1))))) ==> 
  nesc( isa(P1,T1))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((" ?M1 caresForType ?T1 " is possibly false  or " ?M1 caresForType ?T1 " is necessarily true ) and
%~    (" ?M1 caresForType ?T1 " is possibly false  or " ?P1 isa ?T1 " is possibly false )) and
%~    (" ?M1 caresFor ?P1 " is possibly false  and
%~    (" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is necessarily true ))
%~  It's Proof that:
%~    " ?P1 isa ?T1 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))  &
    v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))) & 
    poss( ~( caresFor(M1,P1))) & 
    nesc( caresForType(M1,T1)) & 
    nesc( isa(P1,T1))) ==> 
  poss( ~( isa(P1,T1)))).

%  AND
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  Whenever:
%~    ((" ?M1 caresForType ?T1 " is possibly false  or " ?M1 caresForType ?T1 " is necessarily true ) and
%~    (" ?M1 caresForType ?T1 " is possibly false  or " ?P1 isa ?T1 " is possibly false )) and
%~    (((" ?M1 caresFor ?P1 " is necessarily true  or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (" ?M1 caresFor ?P1 " is necessarily true  or ((" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is possibly false )is possible ))) and
%~    ((((" ?M1 caresForType ?T1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )is possible ) or " ?M1 caresFor ?P1 " is necessarily true ) and
%~    (((" ?M1 caresForType ?T1 " is possibly false  and
%~    " ?P1 isa ?T1 " is necessarily true )is possible ) or ((" ?M1 caresForType ?T1 " is necessarily true  and
%~    " ?P1 isa ?T1 " is possibly false )is possible ))))
%~  It's Proof that:
%~    " ?P1 isa ?T1 " is possibly false
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

( ( v(poss(~caresForType(M1,T1)),nesc(caresForType(M1,T1)))  &
    v(poss(~caresForType(M1,T1)),poss(~isa(P1,T1))) & 
    v(nesc(caresFor(M1,P1)),nesc(caresFor(M1,P1))) & 
    v( nesc( caresFor(M1,P1)), 
       poss( nesc(caresForType(M1,T1))&poss(~isa(P1,T1)))) & 
    v( poss( poss(~caresForType(M1,T1))&nesc(isa(P1,T1))), 
       nesc( caresFor(M1,P1))) & 
    v( poss( poss(~caresForType(M1,T1))&nesc(isa(P1,T1))), 
       poss( nesc(caresForType(M1,T1))&poss(~isa(P1,T1))))) ==> 
  poss( ~( isa(P1,T1)))).

============================================
%~ kif_to_boxlog_attvars2 = necessary(<gt;=>(and(caresForType('$VAR'('M1'),'$VAR'('T1')),isa('$VAR'('P1'),'$VAR'('T1'))),caresFor('$VAR'('M1'),'$VAR'('P1'))))
totalTime=10.000

FAILED: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k zebra_05.clif (returned 137) Add_LABELS='Errors,Overtime' Rem_LABELS='Skipped,Skipped,Warnings,Skipped'

ISSUE_INFO=459	OPEN	logicmoo.base.examples.fol.ZEBRA_05 JUnit	Test_9999, logicmoo.base.examples.fol, unit_test, ZEBRA_05, Failing, Errors, Overtime	2021-09-26 22:49:36 +0000 UTC
ISSUE_ID=459
ISSUE_OC=OPEN
Editing Issue For FAILED 459	OPEN	logicmoo.base.examples.fol.ZEBRA_05 JUnit	Test_9999, logicmoo.base.examples.fol, unit_test, ZEBRA_05, Failing, Errors, Overtime	2021-09-26 22:49:36 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/459
FileTestCase=logicmoo.base.examples.fol.ZEBRA_06 JUnit

CMD=timeout --foreground --preserve-status -s SIGKILL -k 10s 10s swipl -x /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-clif -t "['zebra_06.clif']"

 (cd /var/lib/jenkins/workspace/logicmoo_workspace/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 "['zebra_06.clif']")

% EDIT: https://github.com/logicmoo/logicmoo_workspace/edit/master/packs_sys/logicmoo_base/t/examples/fol/zebra_06.clif 
% JENKINS: https://jenkins.logicmoo.org/job/logicmoo_workspace/lastBuild/testReport/logicmoo.base.examples.fol/ZEBRA_06/ 
% ISSUE_SEARCH: https://github.com/logicmoo/logicmoo_workspace/issues?q=is%3Aissue+label%3AZEBRA_06 
% ISSUE: https://github.com/logicmoo/logicmoo_workspace/issues/639 


%~ init_phase(after_load)
%~ init_phase(restore_state)
%
%~ init_why(after_boot,program)
%~ after_boot.
%~ Dont forget to ?- logicmoo_i_cyc_xform.
%~ /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/logicmoo_test_header.pl:30 
%~ comment(";")
%~ comment("; deduct-einstein.scm")
%~ comment(";")
%~ comment("; Full set of Einstein Puzzle facts.")
%~ comment("; There are 15 explicitly stated facts, and four additional implicit")
%~ comment("; facts about ordinal counting (ordering of houses in a row).")
%~ comment(";")
%~ comment("; The facts are stated in a fashion that is as close as possible to")
%~ comment("; the natural-language source. The point being that we want the")
%~ comment("; expression of facts to be closely tied to human patterns of speech.")
%~ comment("; Being \"efficient\" or \"clever\" is NOT the point.")
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define(stv(mean,conf),'cog-new-stv'(mean,conf))))))


** Grammar from file /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_nlu/ext/chat80/original/clone.xg: 182 words .. **



** Grammar from file /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_nlu/ext/chat80/original/lex.xg: 23 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.64 sec, 1 clauses
% /var/lib/jenkins/.local/share/swi-prolog/pack/logicmoo_utils/prolog/debuggery/dmsg compiled into dmsg 0.12 sec, -16 clauses




=======================================================
define(stv(mean,conf),'cog-new-stv'(mean,conf))
============================================


?- kif_to_boxlog( define(stv(mean,conf),'cog-new-stv'(mean,conf)) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  mean stv conf define mean 'cog-new-stv' conf
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('cog-new-stv',cogNewStv)
%~ kif_to_boxlog_attvars2 = necessary(define(stv(mean,conf),cogNewStv(mean,conf)))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(stv(mean,conf),cogNewStv(mean,conf))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that mean stv conf define mean cogNewStv conf
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(stv(mean,conf),cogNewStv(mean,conf))).

============================================
%~ comment("; A little handly-dandy utility to avoid over-reporting of \"obvious\"")
%~ comment("; results. We declare that person1 is the same as person1, etc.")
%~ comment("; A kind-of pauli-exclusion-principle at work.")
%~ /var/lib/jenkins/workspace/logicmoo_workspace/packs_sys/logicmoo_base/t/examples/fol/zebra_06.clif:747 
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( same(person),
%~                                        'EvaluationLink'( stv(1,1),
%~                                          PredicateNode( '$STRING'("IsSamePerson")),
%~                                          'ListLink'('FeatureNode'(person),'FeatureNode'(person))))))))




=======================================================
define(same(person),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person))))
============================================


?- kif_to_boxlog( define(same(person),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  person isa same define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(same(person),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(same(person),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that person isa same define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("IsSamePerson")),'ListLink'('FeatureNode'(person),'FeatureNode'(person)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( same(person), 
        'EvaluationLink'( stv(1,1), 
          PredicateNode( '$STRING'("IsSamePerson")), 
          'ListLink'('FeatureNode'(person),'FeatureNode'(person))))).

============================================
%~ comment(" AvatarNode")
%~ comment(" AvatarNode")
%~ comment("; A declaration of fact: it is true that pred has value for person.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( fact(person,pred,value),
%~                                        same(person),
%~                                        'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))))))




=======================================================
define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))
============================================


?- kif_to_boxlog( define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that define(fact(person,pred,value),same(person),'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( fact(person,pred,value), 
        same(person), 
        'EvaluationLink'(stv(1,1),'PredicateNode'(pred),'ListLink'('FeatureNode'(person),'ConceptNode'(value))))).

============================================
%~ comment("; A neighbor-predicate: two people live next to each other.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( neighbor(person1,person2),
%~                                        same(person1),
%~                                        same(person2),
%~                                        'EvaluationLink'( stv(1,1),
%~                                          PredicateNode( '$STRING'("Neighbor")),
%~                                          'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))))))




=======================================================
define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))
============================================


?- kif_to_boxlog( define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that define(neighbor(person1,person2),same(person1),same(person2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Neighbor")),'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( neighbor(person1,person2), 
        same(person1), 
        same(person2), 
        'EvaluationLink'( stv(1,1), 
          PredicateNode( '$STRING'("Neighbor")), 
          'ListLink'('FeatureNode'(person1),'FeatureNode'(person2))))).

============================================
%~ comment("; A left-of predicate: one house is left of another")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'left-of'(house1,house2),
%~                                        'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))))))




=======================================================
define('left-of'(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))
============================================


?- kif_to_boxlog( define('left-of'(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  house1 'left-of' house2 define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('left-of',leftOf)
%~ kif_to_boxlog_attvars2 = necessary(define(leftOf(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(leftOf(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that house1 leftOf house2 define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( leftOf(house1,house2), 
        'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("LeftOf")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))).

============================================
%~ comment("; 1. The Englishman lives in the red house.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))))))




=======================================================
fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))
============================================


?- kif_to_boxlog( fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person1"),'$STRING'("Nationality"),'$STRING'("Englishman"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'("red house"))))))




=======================================================
fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'("red house"))
============================================


?- kif_to_boxlog( fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'("red house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'("red house"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'(s('[|]'(red,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'(s([red,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'(s([red,house])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person1"),'$STRING'("LivesIn"),'$STRING'(s([red,house])))).

============================================
%~ comment("; 2. The Swede keeps dogs.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))))))




=======================================================
fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))
============================================


?- kif_to_boxlog( fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person2"),'$STRING'("Nationality"),'$STRING'("Swede"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))))))




=======================================================
fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))
============================================


?- kif_to_boxlog( fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person2"),'$STRING'("Keeps"),'$STRING'("dogs"))).

============================================
%~ comment("; 3. The Dane drinks tea.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))))))




=======================================================
fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))
============================================


?- kif_to_boxlog( fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person3"),'$STRING'("Nationality"),'$STRING'("Dane"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))))))




=======================================================
fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))
============================================


?- kif_to_boxlog( fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person3"),'$STRING'("Drinks"),'$STRING'("tea"))).

============================================
%~ comment("; 4. The green house is just to the left of the white_house one.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'left-of'('$STRING'("green house"),'$STRING'("white house"))))))




=======================================================
'left-of'('$STRING'("green house"),'$STRING'("white house"))
============================================


?- kif_to_boxlog( 'left-of'('$STRING'("green house"),'$STRING'("white house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "green house" isa '$STRING' 'left-of' "white house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(leftOf('$STRING'(s('[|]'(green,'[|]'(house,[])))),'$STRING'(s('[|]'(white,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(leftOf('$STRING'(s([green,house])),'$STRING'(s([white,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that green house isa s isa '$STRING' leftOf white house isa s isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( leftOf('$STRING'(s([green,house])),'$STRING'(s([white,house])))).

============================================
%~ comment("; 5. The owner of the green house drinks coffee.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'("green house"))))))




=======================================================
fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'("green house"))
============================================


?- kif_to_boxlog( fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'("green house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'("green house"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'(s('[|]'(green,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'(s([green,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'(s([green,house])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person5"),'$STRING'("LivesIn"),'$STRING'(s([green,house])))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))))))




=======================================================
fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))
============================================


?- kif_to_boxlog( fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person5"),'$STRING'("Drinks"),'$STRING'("coffee"))).

============================================
%~ comment("; 6. The Pall Mall smoker keeps birds.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))))))




=======================================================
fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))
============================================


?- kif_to_boxlog( fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person6"),'$STRING'("Smokes"),'$STRING'("PallMall"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))))))




=======================================================
fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))
============================================


?- kif_to_boxlog( fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person6"),'$STRING'("Keeps"),'$STRING'("birds"))).

============================================
%~ comment("; 7. The owner of the yellow house smokes Dunhills.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))))))




=======================================================
fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
============================================


?- kif_to_boxlog( fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person7"),'$STRING'("Smokes"),'$STRING'("Dunhill"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'("yellow house"))))))




=======================================================
fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'("yellow house"))
============================================


?- kif_to_boxlog( fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'("yellow house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'("yellow house"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'(s('[|]'(yellow,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'(s([yellow,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'(s([yellow,house])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person7"),'$STRING'("LivesIn"),'$STRING'(s([yellow,house])))).

============================================
%~ comment("; 8. The man in the center house drinks milk.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))))))




=======================================================
fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))
============================================


?- kif_to_boxlog( fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person8"),'$STRING'("Drinks"),'$STRING'("milk"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'("103 Main Street"))))))




=======================================================
fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'("103 Main Street"))
============================================


?- kif_to_boxlog( fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'("103 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'("103 Main Street"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'(s('[|]'('103','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'(s(['103',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'(s(['103',iMain,tSumoStreet])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person8"),'$STRING'("Address"),'$STRING'(s(['103',iMain,tSumoStreet])))).

============================================
%~ comment("; 9. The Norwegian lives in the first house.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))))))




=======================================================
fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
============================================


?- kif_to_boxlog( fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person9"),'$STRING'("Nationality"),'$STRING'("Norwegian"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'("101 Main Street"))))))




=======================================================
fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'("101 Main Street"))
============================================


?- kif_to_boxlog( fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'("101 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'("101 Main Street"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'(s('[|]'('101','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'(s(['101',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'(s(['101',iMain,tSumoStreet])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person9"),'$STRING'("Address"),'$STRING'(s(['101',iMain,tSumoStreet])))).

============================================
%~ comment("; 10. The Blend smoker has a neighbor who keeps cats.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))))))




=======================================================
fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))
============================================


?- kif_to_boxlog( fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person10"),'$STRING'("Smokes"),'$STRING'("Blend"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( neighbor('$STRING'("person10"),'$STRING'("catperson"))))))




=======================================================
neighbor('$STRING'("person10"),'$STRING'("catperson"))
============================================


?- kif_to_boxlog( neighbor('$STRING'("person10"),'$STRING'("catperson")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "person10" isa '$STRING' neighbor "catperson" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(neighbor('$STRING'("person10"),'$STRING'("catperson")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(neighbor('$STRING'("person10"),'$STRING'("catperson"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "person10" isa '$STRING' neighbor "catperson" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( neighbor('$STRING'("person10"),'$STRING'("catperson"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))))))




=======================================================
fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))
============================================


?- kif_to_boxlog( fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("catperson"),'$STRING'("Keeps"),'$STRING'("cats"))).

============================================
%~ comment("; 11. The man who smokes Blue Masters drinks bier.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'("Blue Master"))))))




=======================================================
fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'("Blue Master"))
============================================


?- kif_to_boxlog( fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'("Blue Master")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'("Blue Master"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'(s('[|]'(tSumoBlue,'[|]'('Master',[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'(s([tSumoBlue,'Master'])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'(s([tSumoBlue,'Master'])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person11"),'$STRING'("Smokes"),'$STRING'(s([tSumoBlue,'Master'])))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))))))




=======================================================
fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))
============================================


?- kif_to_boxlog( fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person11"),'$STRING'("Drinks"),'$STRING'("bier"))).

============================================
%~ comment("; 12. The man who keeps horses lives next to the Dunhill smoker.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))))))




=======================================================
fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))
============================================


?- kif_to_boxlog( fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person12"),'$STRING'("Keeps"),'$STRING'("horses"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person"))))))




=======================================================
neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person"))
============================================


?- kif_to_boxlog( neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "person12" isa '$STRING' neighbor "dun_smoke_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "person12" isa '$STRING' neighbor "dun_smoke_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( neighbor('$STRING'("person12"),'$STRING'("dun_smoke_person"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))))))




=======================================================
fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
============================================


?- kif_to_boxlog( fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("dun_smoke_person"),'$STRING'("Smokes"),'$STRING'("Dunhill"))).

============================================
%~ comment("; 13. The German smokes Prince.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))))))




=======================================================
fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))
============================================


?- kif_to_boxlog( fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person13"),'$STRING'("Nationality"),'$STRING'("German"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))))))




=======================================================
fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))
============================================


?- kif_to_boxlog( fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person13"),'$STRING'("Smokes"),'$STRING'("Prince"))).

============================================
%~ comment("; 14. The Norwegian lives next to the blue house.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))))))




=======================================================
fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
============================================


?- kif_to_boxlog( fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person14"),'$STRING'("Nationality"),'$STRING'("Norwegian"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( neighbor('$STRING'("person14"),'$STRING'("blue_person"))))))




=======================================================
neighbor('$STRING'("person14"),'$STRING'("blue_person"))
============================================


?- kif_to_boxlog( neighbor('$STRING'("person14"),'$STRING'("blue_person")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "person14" isa '$STRING' neighbor "blue_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(neighbor('$STRING'("person14"),'$STRING'("blue_person")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(neighbor('$STRING'("person14"),'$STRING'("blue_person"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "person14" isa '$STRING' neighbor "blue_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( neighbor('$STRING'("person14"),'$STRING'("blue_person"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'("blue house"))))))




=======================================================
fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'("blue house"))
============================================


?- kif_to_boxlog( fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'("blue house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'("blue house"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'(s('[|]'(blue,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'(s([blue,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'(s([blue,house])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("blue_person"),'$STRING'("LivesIn"),'$STRING'(s([blue,house])))).

============================================
%~ comment("; 15. The Blend smoker has a neighbor who drinks water.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))))))




=======================================================
fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))
============================================


?- kif_to_boxlog( fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person15"),'$STRING'("Smokes"),'$STRING'("Blend"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( neighbor('$STRING'("person15"),'$STRING'("water_person"))))))




=======================================================
neighbor('$STRING'("person15"),'$STRING'("water_person"))
============================================


?- kif_to_boxlog( neighbor('$STRING'("person15"),'$STRING'("water_person")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "person15" isa '$STRING' neighbor "water_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(neighbor('$STRING'("person15"),'$STRING'("water_person")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(neighbor('$STRING'("person15"),'$STRING'("water_person"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "person15" isa '$STRING' neighbor "water_person" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( neighbor('$STRING'("person15"),'$STRING'("water_person"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))))))




=======================================================
fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))
============================================


?- kif_to_boxlog( fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("water_person"),'$STRING'("Drinks"),'$STRING'("water"))).

============================================
%~ comment("; ---------------------------------------------------------------")
%~ comment("; Assorted supplemental facts.  These are somehow implicit in the")
%~ comment("; problem statement. We'd mostly like to derive these, from more")
%~ comment("; basic assumptions, but, for now, we'l just state them.")
%~ comment(";")
%~ comment("; A supplemental fact for fact 4: someone lives in the white house.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'("white house"))))))




=======================================================
fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'("white house"))
============================================


?- kif_to_boxlog( fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'("white house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'("white house"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'(s('[|]'(white,'[|]'(house,[]))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'(s([white,house])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'(s([white,house])))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("person4"),'$STRING'("LivesIn"),'$STRING'(s([white,house])))).

============================================
%~ comment("; Supplemental fact: someone keeps fish.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))))))




=======================================================
fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))
============================================


?- kif_to_boxlog( fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( fact('$STRING'("fish_person"),'$STRING'("Keeps"),'$STRING'("fish"))).

============================================
%~ comment("; State some implicitly assumed facts about neighboring houses")
%~ comment("; This is the 'successor' function for ordinal numbers.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( successor(house1,house2),
%~                                        'EvaluationLink'( stv(1,1),
%~                                          PredicateNode( '$STRING'("Successor")),
%~                                          'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))))))




=======================================================
define(successor(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))
============================================


?- kif_to_boxlog( define(successor(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  house1 successor house2 define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(successor(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(successor(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that house1 successor house2 define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( successor(house1,house2), 
        'EvaluationLink'( stv(1,1), 
          PredicateNode( '$STRING'("Successor")), 
          'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( successor('$STRING'("101 Main Street"),'$STRING'("102 Main Street"))))))




=======================================================
successor('$STRING'("101 Main Street"),'$STRING'("102 Main Street"))
============================================


?- kif_to_boxlog( successor('$STRING'("101 Main Street"),'$STRING'("102 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "101 Main Street" isa '$STRING' successor "102 Main Street" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(successor('$STRING'(s('[|]'('101','[|]'(iMain,'[|]'(tSumoStreet,[]))))),'$STRING'(s('[|]'('102','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(successor('$STRING'(s(['101',iMain,tSumoStreet])),'$STRING'(s(['102',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that '101' iMain tSumoStreet isa s isa '$STRING' successor '102' iMain tSumoStreet isa s isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( successor( 
         $STRING( s( ['101',iMain,tSumoStreet])), 
         $STRING( s( ['102',iMain,tSumoStreet])))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( successor('$STRING'("102 Main Street"),'$STRING'("103 Main Street"))))))




=======================================================
successor('$STRING'("102 Main Street"),'$STRING'("103 Main Street"))
============================================


?- kif_to_boxlog( successor('$STRING'("102 Main Street"),'$STRING'("103 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "102 Main Street" isa '$STRING' successor "103 Main Street" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(successor('$STRING'(s('[|]'('102','[|]'(iMain,'[|]'(tSumoStreet,[]))))),'$STRING'(s('[|]'('103','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(successor('$STRING'(s(['102',iMain,tSumoStreet])),'$STRING'(s(['103',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that '102' iMain tSumoStreet isa s isa '$STRING' successor '103' iMain tSumoStreet isa s isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( successor( 
         $STRING( s( ['102',iMain,tSumoStreet])), 
         $STRING( s( ['103',iMain,tSumoStreet])))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( successor('$STRING'("103 Main Street"),'$STRING'("104 Main Street"))))))




=======================================================
successor('$STRING'("103 Main Street"),'$STRING'("104 Main Street"))
============================================


?- kif_to_boxlog( successor('$STRING'("103 Main Street"),'$STRING'("104 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "103 Main Street" isa '$STRING' successor "104 Main Street" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(successor('$STRING'(s('[|]'('103','[|]'(iMain,'[|]'(tSumoStreet,[]))))),'$STRING'(s('[|]'('104','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(successor('$STRING'(s(['103',iMain,tSumoStreet])),'$STRING'(s(['104',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that '103' iMain tSumoStreet isa s isa '$STRING' successor '104' iMain tSumoStreet isa s isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( successor( 
         $STRING( s( ['103',iMain,tSumoStreet])), 
         $STRING( s( ['104',iMain,tSumoStreet])))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( successor('$STRING'("104 Main Street"),'$STRING'("105 Main Street"))))))




=======================================================
successor('$STRING'("104 Main Street"),'$STRING'("105 Main Street"))
============================================


?- kif_to_boxlog( successor('$STRING'("104 Main Street"),'$STRING'("105 Main Street")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "104 Main Street" isa '$STRING' successor "105 Main Street" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(successor('$STRING'(s('[|]'('104','[|]'(iMain,'[|]'(tSumoStreet,[]))))),'$STRING'(s('[|]'('105','[|]'(iMain,'[|]'(tSumoStreet,[])))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(successor('$STRING'(s(['104',iMain,tSumoStreet])),'$STRING'(s(['105',iMain,tSumoStreet])))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that '104' iMain tSumoStreet isa s isa '$STRING' successor '105' iMain tSumoStreet isa s isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( successor( 
         $STRING( s( ['104',iMain,tSumoStreet])), 
         $STRING( s( ['105',iMain,tSumoStreet])))).

============================================
%~ comment("; ---------------------------------------------------------------")
%~ comment("; By-process-of-elimination facts")
%~ comment("; If person doesn''t live in one of the four houses, they must live in")
%~ comment("; the fifth. Likewsie, if person doesn''t smoke/drink/keep one of the four,")
%~ comment("; they must have the fifth.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define('is-a'(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y)))))))




=======================================================
define('is-a'(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y)))
============================================


?- kif_to_boxlog( define('is-a'(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  x 'is-a' y define x isa 'ConceptNode' 'InheritanceLink' y isa 'ConceptNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('is-a',isA)
%~ kif_to_boxlog_attvars2 = necessary(define(isA(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(isA(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y)))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that x isA y define x isa 'ConceptNode' 'InheritanceLink' y isa 'ConceptNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(isA(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y)))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("red house"),'$STRING'("house"))))))




=======================================================
'is-a'('$STRING'("red house"),'$STRING'("house"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("red house"),'$STRING'("house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "red house" isa '$STRING' 'is-a' "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(red,'[|]'(house,[])))),'$STRING'("house")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([red,house])),'$STRING'("house"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that red house isa s isa '$STRING' isA "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([red,house])),'$STRING'("house"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("white house"),'$STRING'("house"))))))




=======================================================
'is-a'('$STRING'("white house"),'$STRING'("house"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("white house"),'$STRING'("house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "white house" isa '$STRING' 'is-a' "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(white,'[|]'(house,[])))),'$STRING'("house")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([white,house])),'$STRING'("house"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that white house isa s isa '$STRING' isA "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([white,house])),'$STRING'("house"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("green house"),'$STRING'("house"))))))




=======================================================
'is-a'('$STRING'("green house"),'$STRING'("house"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("green house"),'$STRING'("house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "green house" isa '$STRING' 'is-a' "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(green,'[|]'(house,[])))),'$STRING'("house")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([green,house])),'$STRING'("house"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that green house isa s isa '$STRING' isA "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([green,house])),'$STRING'("house"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("yellow house"),'$STRING'("house"))))))




=======================================================
'is-a'('$STRING'("yellow house"),'$STRING'("house"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("yellow house"),'$STRING'("house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "yellow house" isa '$STRING' 'is-a' "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(yellow,'[|]'(house,[])))),'$STRING'("house")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([yellow,house])),'$STRING'("house"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that yellow house isa s isa '$STRING' isA "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([yellow,house])),'$STRING'("house"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("blue house"),'$STRING'("house"))))))




=======================================================
'is-a'('$STRING'("blue house"),'$STRING'("house"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("blue house"),'$STRING'("house")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "blue house" isa '$STRING' 'is-a' "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(blue,'[|]'(house,[])))),'$STRING'("house")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([blue,house])),'$STRING'("house"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that blue house isa s isa '$STRING' isA "house" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([blue,house])),'$STRING'("house"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("water"),'$STRING'("drink"))))))




=======================================================
'is-a'('$STRING'("water"),'$STRING'("drink"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("water"),'$STRING'("drink")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "water" isa '$STRING' 'is-a' "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("water"),'$STRING'("drink")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("water"),'$STRING'("drink"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "water" isa '$STRING' isA "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("water"),'$STRING'("drink"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("milk"),'$STRING'("drink"))))))




=======================================================
'is-a'('$STRING'("milk"),'$STRING'("drink"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("milk"),'$STRING'("drink")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "milk" isa '$STRING' 'is-a' "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("milk"),'$STRING'("drink")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("milk"),'$STRING'("drink"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "milk" isa '$STRING' isA "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("milk"),'$STRING'("drink"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("bier"),'$STRING'("drink"))))))




=======================================================
'is-a'('$STRING'("bier"),'$STRING'("drink"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("bier"),'$STRING'("drink")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "bier" isa '$STRING' 'is-a' "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("bier"),'$STRING'("drink")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("bier"),'$STRING'("drink"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "bier" isa '$STRING' isA "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("bier"),'$STRING'("drink"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("coffee"),'$STRING'("drink"))))))




=======================================================
'is-a'('$STRING'("coffee"),'$STRING'("drink"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("coffee"),'$STRING'("drink")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "coffee" isa '$STRING' 'is-a' "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("coffee"),'$STRING'("drink")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("coffee"),'$STRING'("drink"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "coffee" isa '$STRING' isA "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("coffee"),'$STRING'("drink"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("tea"),'$STRING'("drink"))))))




=======================================================
'is-a'('$STRING'("tea"),'$STRING'("drink"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("tea"),'$STRING'("drink")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "tea" isa '$STRING' 'is-a' "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("tea"),'$STRING'("drink")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("tea"),'$STRING'("drink"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "tea" isa '$STRING' isA "drink" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("tea"),'$STRING'("drink"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Prince"),'$STRING'("tobacco"))))))




=======================================================
'is-a'('$STRING'("Prince"),'$STRING'("tobacco"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Prince"),'$STRING'("tobacco")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Prince" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Prince"),'$STRING'("tobacco")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Prince"),'$STRING'("tobacco"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Prince" isa '$STRING' isA "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Prince"),'$STRING'("tobacco"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("PallMall"),'$STRING'("tobacco"))))))




=======================================================
'is-a'('$STRING'("PallMall"),'$STRING'("tobacco"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("PallMall"),'$STRING'("tobacco")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "PallMall" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("PallMall"),'$STRING'("tobacco")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("PallMall"),'$STRING'("tobacco"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "PallMall" isa '$STRING' isA "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("PallMall"),'$STRING'("tobacco"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Dunhill"),'$STRING'("tobacco"))))))




=======================================================
'is-a'('$STRING'("Dunhill"),'$STRING'("tobacco"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Dunhill"),'$STRING'("tobacco")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Dunhill" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Dunhill"),'$STRING'("tobacco")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Dunhill"),'$STRING'("tobacco"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Dunhill" isa '$STRING' isA "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Dunhill"),'$STRING'("tobacco"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Blend"),'$STRING'("tobacco"))))))




=======================================================
'is-a'('$STRING'("Blend"),'$STRING'("tobacco"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Blend"),'$STRING'("tobacco")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Blend" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Blend"),'$STRING'("tobacco")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Blend"),'$STRING'("tobacco"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Blend" isa '$STRING' isA "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Blend"),'$STRING'("tobacco"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("Blue Master"),'$STRING'("tobacco"))))))




=======================================================
'is-a'('$STRING'("Blue Master"),'$STRING'("tobacco"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Blue Master"),'$STRING'("tobacco")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Blue Master" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(tSumoBlue,'[|]'('Master',[])))),'$STRING'("tobacco")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'(s([tSumoBlue,'Master'])),'$STRING'("tobacco"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that tSumoBlue 'Master' isa s isa '$STRING' isA "tobacco" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'(s([tSumoBlue,'Master'])),'$STRING'("tobacco"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("fish"),'$STRING'("keeps_as_pet"))))))




=======================================================
'is-a'('$STRING'("fish"),'$STRING'("keeps_as_pet"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("fish"),'$STRING'("keeps_as_pet")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "fish" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("fish"),'$STRING'("keeps_as_pet")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("fish"),'$STRING'("keeps_as_pet"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "fish" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("fish"),'$STRING'("keeps_as_pet"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("dogs"),'$STRING'("keeps_as_pet"))))))




=======================================================
'is-a'('$STRING'("dogs"),'$STRING'("keeps_as_pet"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("dogs"),'$STRING'("keeps_as_pet")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "dogs" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("dogs"),'$STRING'("keeps_as_pet")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("dogs"),'$STRING'("keeps_as_pet"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "dogs" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("dogs"),'$STRING'("keeps_as_pet"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("birds"),'$STRING'("keeps_as_pet"))))))




=======================================================
'is-a'('$STRING'("birds"),'$STRING'("keeps_as_pet"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("birds"),'$STRING'("keeps_as_pet")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "birds" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("birds"),'$STRING'("keeps_as_pet")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("birds"),'$STRING'("keeps_as_pet"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "birds" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("birds"),'$STRING'("keeps_as_pet"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("cats"),'$STRING'("keeps_as_pet"))))))




=======================================================
'is-a'('$STRING'("cats"),'$STRING'("keeps_as_pet"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("cats"),'$STRING'("keeps_as_pet")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "cats" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("cats"),'$STRING'("keeps_as_pet")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("cats"),'$STRING'("keeps_as_pet"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "cats" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("cats"),'$STRING'("keeps_as_pet"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("horses"),'$STRING'("keeps_as_pet"))))))




=======================================================
'is-a'('$STRING'("horses"),'$STRING'("keeps_as_pet"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("horses"),'$STRING'("keeps_as_pet")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "horses" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("horses"),'$STRING'("keeps_as_pet")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("horses"),'$STRING'("keeps_as_pet"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "horses" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("horses"),'$STRING'("keeps_as_pet"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("Englishman"),'$STRING'("citizenship"))))))




=======================================================
'is-a'('$STRING'("Englishman"),'$STRING'("citizenship"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Englishman"),'$STRING'("citizenship")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Englishman" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Englishman"),'$STRING'("citizenship")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Englishman"),'$STRING'("citizenship"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Englishman" isa '$STRING' isA "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Englishman"),'$STRING'("citizenship"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Swede"),'$STRING'("citizenship"))))))




=======================================================
'is-a'('$STRING'("Swede"),'$STRING'("citizenship"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Swede"),'$STRING'("citizenship")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Swede" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Swede"),'$STRING'("citizenship")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Swede"),'$STRING'("citizenship"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Swede" isa '$STRING' isA "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Swede"),'$STRING'("citizenship"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Dane"),'$STRING'("citizenship"))))))




=======================================================
'is-a'('$STRING'("Dane"),'$STRING'("citizenship"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Dane"),'$STRING'("citizenship")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Dane" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Dane"),'$STRING'("citizenship")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Dane"),'$STRING'("citizenship"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Dane" isa '$STRING' isA "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Dane"),'$STRING'("citizenship"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("Norwegian"),'$STRING'("citizenship"))))))




=======================================================
'is-a'('$STRING'("Norwegian"),'$STRING'("citizenship"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("Norwegian"),'$STRING'("citizenship")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "Norwegian" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Norwegian"),'$STRING'("citizenship")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("Norwegian"),'$STRING'("citizenship"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "Norwegian" isa '$STRING' isA "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("Norwegian"),'$STRING'("citizenship"))).

============================================
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( 'is-a'('$STRING'("German"),'$STRING'("citizenship"))))))




=======================================================
'is-a'('$STRING'("German"),'$STRING'("citizenship"))
============================================


?- kif_to_boxlog( 'is-a'('$STRING'("German"),'$STRING'("citizenship")) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  "German" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("German"),'$STRING'("citizenship")))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(isA('$STRING'("German"),'$STRING'("citizenship"))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that "German" isa '$STRING' isA "citizenship" isa '$STRING'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( isA('$STRING'("German"),'$STRING'("citizenship"))).

============================================
%~ comment(";")
%~ comment("; deduct-keep.scm")
%~ comment(";")
%~ comment("; Print out who keeps what")
%~ comment(";")
%~ comment("; Part of the \"Einstein puzzle\" demo.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'print-ownership',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),
%~                                              VariableNode( '$STRING'("$nationality")),
%~                                              VariableNode( '$STRING'("$house")),
%~                                              VariableNode( '$STRING'("$pet"))),
%~                                           'AndLink'(
%~                                              'EvaluationLink'(
%~                                                 PredicateNode( '$STRING'("Nationality")),
%~                                                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),
%~                                              'EvaluationLink'(
%~                                                 PredicateNode( '$STRING'("LivesIn")),
%~                                                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),
%~                                              'EvaluationLink'(
%~                                                 PredicateNode( '$STRING'("KeepsPet")),
%~                                                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),
%~                                           'OrderedLink'(
%~                                              VariableNode( '$STRING'("$person")),
%~                                              VariableNode( '$STRING'("$nationality")),
%~                                              VariableNode( '$STRING'("$house")),
%~                                              VariableNode( '$STRING'("$pet")))))))))




=======================================================
define('print-ownership','BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet")))))
============================================


?- kif_to_boxlog( define('print-ownership','BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'print-ownership' define 'BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('print-ownership',printOwnership)
%~ azzert_rename('VariableList',ftVariableList)
%~ kif_to_boxlog_attvars2 = necessary(define(printOwnership,'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(printOwnership,'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet")))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that printOwnership define 'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( printOwnership, 
        'BindLink'( 
           ftVariableList( 
              'TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))), 
              VariableNode( '$STRING'("$nationality")), 
              VariableNode( '$STRING'("$house")), 
              VariableNode( '$STRING'("$pet"))), 
           'AndLink'( 
              'EvaluationLink'( 
                 PredicateNode( '$STRING'("Nationality")), 
                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))), 
              'EvaluationLink'( 
                 PredicateNode( '$STRING'("LivesIn")), 
                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))), 
              'EvaluationLink'( 
                 PredicateNode( '$STRING'("KeepsPet")), 
                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))), 
           'OrderedLink'( 
              VariableNode( '$STRING'("$person")), 
              VariableNode( '$STRING'("$nationality")), 
              VariableNode( '$STRING'("$house")), 
              VariableNode( '$STRING'("$pet")))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'print-results',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),
%~                                              VariableNode( '$STRING'("$pred")),
%~                                              'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),
%~                                           AndLink( 'EvaluationLink'(
%~                                                       VariableNode( '$STRING'("$pred")),
%~                                                       'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),
%~                                           'OrderedLink'(
%~                                              VariableNode( '$STRING'("$person")),
%~                                              VariableNode( '$STRING'("$pred")),
%~                                              VariableNode( '$STRING'("$attr")))))))))




=======================================================
define('print-results','BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr")))))
============================================


?- kif_to_boxlog( define('print-results','BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr"))))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'print-results' define 'BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr"))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('print-results',printResults)
%~ kif_to_boxlog_attvars2 = necessary(define(printResults,'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr"))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(printResults,'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr")))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that printResults define 'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr"))))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( printResults, 
        'BindLink'( 
           ftVariableList( 
              'TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))), 
              VariableNode( '$STRING'("$pred")), 
              'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))), 
           AndLink( 'EvaluationLink'( 
                       VariableNode( '$STRING'("$pred")), 
                       'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))), 
           'OrderedLink'( 
              VariableNode( '$STRING'("$person")), 
              VariableNode( '$STRING'("$pred")), 
              VariableNode( '$STRING'("$attr")))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ comment(";")
%~ comment("; deduct-rules.scm")
%~ comment(";")
%~ comment("; Deduction rules for Einstein puzzle.")
%~ comment(";")
%~ comment("; The rules here are written in a fashion as close as possible to")
%~ comment("; 'ordinary' common-sense deductive rules.  In particular, they are")
%~ comment("; not written to predispose the problem into a 5x5 solution grid")
%~ comment("; (although this is what they eventually must lead to). In other")
%~ comment("; words, there is no effort made to make this the most \"efficient\"")
%~ comment("; possible set of rules; instead, they''re the most \"natural\" or")
%~ comment("; \"common-sense-like\" for this task.")
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif('use-modules'(srfi('srfi-1'))))))




=======================================================
'use-modules'(srfi('srfi-1'))
============================================


?- kif_to_boxlog( 'use-modules'(srfi('srfi-1')) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'srfi-1' isa srfi isa 'use-modules'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('use-modules',useModules)
%~ azzert_rename('srfi-1',srfi_1)
%~ kif_to_boxlog_attvars2 = necessary(useModules(srfi(srfi_1)))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(useModules(srfi(srfi_1))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that srfi_1 isa srfi isa useModules
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( useModules( srfi(srfi_1))).

============================================
%~ comment("; Define simple truth value")
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define(stv(mean,conf),'cog-new-stv'(mean,conf))))))




=======================================================
define(stv(mean,conf),'cog-new-stv'(mean,conf))
============================================


?- kif_to_boxlog( define(stv(mean,conf),'cog-new-stv'(mean,conf)) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  mean stv conf define mean 'cog-new-stv' conf
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(stv(mean,conf),cogNewStv(mean,conf)))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(stv(mean,conf),cogNewStv(mean,conf))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that mean stv conf define mean cogNewStv conf
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(stv(mean,conf),cogNewStv(mean,conf))).

============================================
%~ comment("; Shorthand for the node types")
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define('VN','VariableNode')))))




=======================================================
define('VN','VariableNode')
============================================


?- kif_to_boxlog( define('VN','VariableNode') ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'VN' define 'VariableNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define('VN','VariableNode'))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define('VN','VariableNode')).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that 'VN' define 'VariableNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define('VN','VariableNode')).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define('PN','PredicateNode')))))




=======================================================
define('PN','PredicateNode')
============================================


?- kif_to_boxlog( define('PN','PredicateNode') ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'PN' define 'PredicateNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define('PN','PredicateNode'))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define('PN','PredicateNode')).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that 'PN' define 'PredicateNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define('PN','PredicateNode')).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define('CN','ConceptNode')))))




=======================================================
define('CN','ConceptNode')
============================================


?- kif_to_boxlog( define('CN','ConceptNode') ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'CN' define 'ConceptNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define('CN','ConceptNode'))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define('CN','ConceptNode')).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that 'CN' define 'ConceptNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define('CN','ConceptNode')).

============================================
%~ debugm( common_logic_loader,
%~   show_success(common_logic_loader,common_logic_loader:ain(clif(define('AN','FeatureNode')))))




=======================================================
define('AN','FeatureNode')
============================================


?- kif_to_boxlog( define('AN','FeatureNode') ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'AN' define 'FeatureNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define('AN','FeatureNode'))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define('AN','FeatureNode')).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that 'AN' define 'FeatureNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define('AN','FeatureNode')).

============================================
%~ comment(" AvatarNode")
%~ comment("; Predicate clause specifies a predicate that associates attribute to person")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3))))))))




=======================================================
define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3))))
============================================


?- kif_to_boxlog( define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  clause(t1,v1,t2,v2,t3,v3) define v1 isa t1 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that clause(t1,v1,t2,v2,t3,v3) define v1 isa t1 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3))))).

============================================
%~ comment("; Predicate clause negating the third attribute.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define('not-clause'(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3)))))))))




=======================================================
define('not-clause'(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3)))))
============================================


?- kif_to_boxlog( define('not-clause'(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3))))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'not-clause'(t1,v1,t2,v2,t3,v3) define v1 isa t1 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3 isa 'NotLink'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('not-clause',notClause)
%~ kif_to_boxlog_attvars2 = necessary(define(notClause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3))))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(notClause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3)))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that notClause(t1,v1,t2,v2,t3,v3) define v1 isa t1 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3 isa 'NotLink'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(notClause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3)))))).

============================================
%~ comment("; Predicate clause, asserting that v2 and v3 are different atoms.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( differ(t2,v2,t3,v3),
%~                                        'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3))))))))




=======================================================
define(differ(t2,v2,t3,v3),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3))))
============================================


?- kif_to_boxlog( define(differ(t2,v2,t3,v3),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3)))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  differ(t2,v2,t3,v3) define "c++:exclusive" isa '$STRING' isa 'GroundedPredicateNode' 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ kif_to_boxlog_attvars2 = necessary(define(differ(t2,v2,t3,v3),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3)))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(differ(t2,v2,t3,v3),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that differ(t2,v2,t3,v3) define "c++:exclusive" isa '$STRING' isa 'GroundedPredicateNode' 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( differ(t2,v2,t3,v3), 
        'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3))))).

============================================
%~ comment("; Declare a variable var to be of type type")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define('decl-var'(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type)))))))




=======================================================
define('decl-var'(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type)))
============================================


?- kif_to_boxlog( define('decl-var'(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  type 'decl-var' var define var isa 'VariableNode' 'TypedVariableLink' type isa 'TypeNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('decl-var',declVar)
%~ kif_to_boxlog_attvars2 = necessary(define(declVar(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(declVar(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type)))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that type declVar var define var isa 'VariableNode' 'TypedVariableLink' type isa 'TypeNode'
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define(declVar(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type)))).

============================================
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; \"Is the same person\" deduction rule.")
%~ comment("; If person A and person B both share the same predicate and property,")
%~ comment("; then they must be the same person.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'is-same-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),
%~                                           'AndLink'(
%~                                              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),
%~                                              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),
%~                                              AbsentLink( clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),
%~                                           clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))))))




=======================================================
define('is-same-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))
============================================


?- kif_to_boxlog( define('is-same-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'is-same-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('is-same-rule',isSameRule)
%~ kif_to_boxlog_attvars2 = necessary(define(isSameRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(isSameRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that isSameRule define 'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( isSameRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))), 
           'AndLink'( 
              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")), 
              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")), 
              AbsentLink( clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))), 
           clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... ")
%~ comment("; Avoid reporting things we already know.")
%~ comment("; Basically, if we already know that person A and B")
%~ comment("; are the same person, then lets not deduce it again.")
%~ comment("; This not link is identical to the conclusion below")
%~ comment("; implicand -- then the following is true too")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; Transitive deduction rule.")
%~ comment(";")
%~ comment("; If attribute X holds for person A, and person A is same as person B")
%~ comment("; then attribute X also holds for person B.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'transitive-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),
%~                                           'AndLink'(
%~                                              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),
%~                                              clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),
%~                                              AbsentLink( clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),
%~                                           clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))))))




=======================================================
define('transitive-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))
============================================


?- kif_to_boxlog( define('transitive-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'transitive-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('transitive-rule',transitiveRule)
%~ kif_to_boxlog_attvars2 = necessary(define(transitiveRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(transitiveRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that transitiveRule define 'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( transitiveRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))), 
           'AndLink'( 
              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")), 
              clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")), 
              AbsentLink( clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))), 
           clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ comment("; Don''t deduce thigs we already know...")
%~ comment("; i.e. this not link is identical to conclusion, below.")
%~ comment("; implicand -- then the following is true too")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; Transitive-not deduction rule.")
%~ comment(";")
%~ comment("; If attribute X doesn''t hold for person A, and person A is same as person B")
%~ comment("; then attribute X also doesn''t hold for person B.")
%~ comment(";")
%~ comment("; Very similar to above")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'transitive-not-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),
%~                                           'AndLink'(
%~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),
%~                                              clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),
%~                                              AbsentLink( 'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),
%~                                           'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))))))




=======================================================
define('transitive-not-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))
============================================


?- kif_to_boxlog( define('transitive-not-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'transitive-not-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('transitive-not-rule',transitiveNotRule)
%~ kif_to_boxlog_attvars2 = necessary(define(transitiveNotRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(transitiveNotRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that transitiveNotRule define 'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( transitiveNotRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))), 
           'AndLink'( 
              notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")), 
              clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")), 
              AbsentLink( notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))), 
           notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ comment("; Don''t deduce thigs we already know...")
%~ comment("; i.e. this not link is identical to conclusion, below.")
%~ comment("; implicand -- then the following is true too")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; elimination")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'by-elimination-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person")),
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_a")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_b")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_c")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_d")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_e")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),
%~                                           'AndLink'(
%~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),
%~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),
%~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),
%~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),
%~                                              'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),
%~                                              'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),
%~                                              'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),
%~                                              'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),
%~                                              'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),
%~                                              'EvaluationLink'(
%~                                                 GroundedPredicateNode( '$STRING'("c++:exclusive")),
%~                                                 'ListLink'(
%~                                                    VN( '$STRING'("$attr_a")),
%~                                                    VN( '$STRING'("$attr_b")),
%~                                                    VN( '$STRING'("$attr_c")),
%~                                                    VN( '$STRING'("$attr_d")),
%~                                                    VN( '$STRING'("$attr_e"))))),
%~                                           clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e"))))))))




=======================================================
define('by-elimination-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_c")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_d")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_e")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e"))))
============================================


?- kif_to_boxlog( define('by-elimination-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_c")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_d")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_e")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'by-elimination-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_c")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_d")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_e")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('by-elimination-rule',byEliminationRule)
%~ kif_to_boxlog_attvars2 = necessary(define(byEliminationRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_c")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_d")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_e")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(byEliminationRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_c")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_d")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_e")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that byEliminationRule define 'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_c")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_d")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_e")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( byEliminationRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person")), 
              declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attr_a")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attr_b")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attr_c")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attr_d")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attr_e")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attr_type"))), 
           'AndLink'( 
              notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")), 
              notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")), 
              notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")), 
              notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")), 
              'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))), 
              'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))), 
              'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))), 
              'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))), 
              'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))), 
              'EvaluationLink'( 
                 GroundedPredicateNode( '$STRING'("c++:exclusive")), 
                 'ListLink'( 
                    VN( '$STRING'("$attr_a")), 
                    VN( '$STRING'("$attr_b")), 
                    VN( '$STRING'("$attr_c")), 
                    VN( '$STRING'("$attr_d")), 
                    VN( '$STRING'("$attr_e"))))), 
           clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ comment("; If person does NOT have atttribute a,b,c or d ...")
%~ comment("; and the attributes a,b,c,d,e are all of the same kind")
%~ comment("; and attributes a,b,c,d,e are all different from one-another")
%~ comment("; Don''t deduce thigs we already know...")
%~ comment("; i.e. this not link is identical to conclusion, below.")
%~ comment("(AbsentLink")
%~ comment("\t(clause VN \"$predicate\" VN \"$person\" VN \"$attr_e\")")
%~ comment(")")
%~ comment("; implicand -- then the following is true too")
%~ comment("; Then by elimination, person must have attribute e.")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; distinct-attr rule.")
%~ comment("; If, for a given attribute, person a and person b take on different")
%~ comment("; values, then they cannot be the same person.  Therefore, any other")
%~ comment("; attributes they have must also be exclusive.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'distinct-attr-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),
%~                                           'AndLink'(
%~                                              clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),
%~                                              clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),
%~                                              differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),
%~                                              clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),
%~                                           'not-clause'('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl"))))))))




=======================================================
define('distinct-attr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),'not-clause'('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl"))))
============================================


?- kif_to_boxlog( define('distinct-attr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),'not-clause'('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'distinct-attr-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),'not-clause'('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('distinct-attr-rule',distinctAttrRule)
%~ kif_to_boxlog_attvars2 = necessary(define(distinctAttrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),notClause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(distinctAttrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),notClause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that distinctAttrRule define 'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),notClause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( distinctAttrRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
              declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_common")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")), 
              declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))), 
           'AndLink'( 
              clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")), 
              clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")), 
              differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")), 
              clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))), 
           notClause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ comment("; Don''t deduce thigs we already know...")
%~ comment("; i.e. this not link is identical to conclusion, below.")
%~ comment("(AbsentLink")
%~ comment("\t(not-clause VN \"$predicate_exclusive\" VN \"$person_b\" VN \"$attribute_excl\")")
%~ comment(")")
%~ comment("; implicand -- then the following is true too")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; neighbor-not-attr rule.")
%~ comment("; If some attribute holds true for a person, it cannot hold for the")
%~ comment("; person''s neighbor.")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'neighbor-not-attr-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
%~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),
%~                                           'AndLink'(
%~                                              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),
%~                                              clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),
%~                                              AbsentLink( 'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),
%~                                           'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))))))




=======================================================
define('neighbor-not-attr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))
============================================


?- kif_to_boxlog( define('neighbor-not-attr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'neighbor-not-attr-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('neighbor-not-attr-rule',neighborNotAttrRule)
%~ kif_to_boxlog_attvars2 = necessary(define(neighborNotAttrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(neighborNotAttrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that neighborNotAttrRule define 'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( neighborNotAttrRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
              declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))), 
           'AndLink'( 
              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")), 
              clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")), 
              AbsentLink( notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))), 
           notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ comment("; Don''t deduce thigs we already know...")
%~ comment("; i.e. this not link is identical to conclusion, below.")
%~ comment("; implicand -- then the following is true too")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; Houses at the end of the street can only have one neighbor, ever.")
%~ comment("; This is a rather narrow rule, as it can only ever apply to the first")
%~ comment("; address (first ordinal -- a boundary condition).")
%~ comment("; This is used to combine rules 9 and 14.")
%~ comment("; There should be a symmetric rule for the last address too ...")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'first-addr-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),
%~                                           'AndLink'(
%~                                              clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'("101 Main Street")),
%~                                              clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),
%~                                              clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),
%~                                              clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),
%~                                              AbsentLink( clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),
%~                                           clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b"))))))))




=======================================================
define('first-addr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'("101 Main Street")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b"))))
============================================


?- kif_to_boxlog( define('first-addr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'("101 Main Street")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'first-addr-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'("101 Main Street")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('first-addr-rule',firstAddrRule)
%~ kif_to_boxlog_attvars2 = necessary(define(firstAddrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'(s('[|]'('101','[|]'(iMain,'[|]'(tSumoStreet,[])))))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(firstAddrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'(s(['101',iMain,tSumoStreet]))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that firstAddrRule define 'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'(s(['101',iMain,tSumoStreet]))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( firstAddrRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))), 
           'AndLink'( 
              clause( 'PN', 
                '$STRING'("Address"), 'VN','$STRING'("$person_a"),'CN', 
                $STRING( s( ['101',iMain,tSumoStreet]))), 
              clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")), 
              clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")), 
              clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")), 
              AbsentLink( clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))), 
           clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... ")
%~ comment("; if adress of personA is 1st house")
%~ comment("; and A is neighbor of B")
%~ comment("; and the next house is one over")
%~ comment("; and we don''t already know the conclusion")
%~ comment("; implicand -- then the B lives one house over.")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; Neighbor deduction rule.")
%~ comment(";")
%~ comment("; If Address X is left of address Y, then person who lives in X is")
%~ comment("; a neighbor of person who lives in Y")
%~ debugm( common_logic_loader,
%~   show_success( common_logic_loader,
%~     common_logic_loader : ain( clif( define( 'neighbor-rule',
%~                                        'BindLink'(
%~                                           'VariableList'(
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
%~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),
%~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),
%~                                           'AndLink'(
%~                                              clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),
%~                                              clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),
%~                                              clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),
%~                                              AbsentLink( clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),
%~                                           clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))))))




=======================================================
define('neighbor-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))
============================================


?- kif_to_boxlog( define('neighbor-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))) ).



% In English: 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  'neighbor-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ azzert_rename('neighbor-rule',neighborRule)
%~ kif_to_boxlog_attvars2 = necessary(define(neighborRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Results in the following 1 entailment(s): 
nesc(define(neighborRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%~  it is necessarily true that neighborRule define 'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))
%~ 
%~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

nesc( define( neighborRule, 
        'BindLink'( 
           ftVariableList( 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
              declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")), 
              declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))), 
           'AndLink'( 
              clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")), 
              clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")), 
              clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")), 
              AbsentLink( clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))), 
           clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))).

============================================
%~ comment("; variable declarations")
%~ comment("; body -- if all parts of AndLink hold true ... then")
%~ comment(" Not interested in what we already know.")
%~ comment("; implicand -- then the following is true too")
%~ comment("; ---------------------------------------------------------------------")
%~ comment("; Neighbor relation is symmetric")
%~ comment(";")
%~ comment("; If A is a neighbor of B then B is a neighbor of A")
totalTime=10.000

FAILED: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k zebra_06.clif (returned 137) Add_LABELS='Errors,Overtime' Rem_LABELS='Skipped,Skipped,Warnings,Skipped'

ISSUE_INFO=639	OPEN	logicmoo.base.examples.fol.ZEBRA_06 JUnit	Test_9999, logicmoo.base.examples.fol, unit_test, ZEBRA_06, Failing, Errors, Overtime	2021-09-26 22:49:16 +0000 UTC
ISSUE_ID=639
ISSUE_OC=OPEN
Editing Issue For FAILED 639	OPEN	logicmoo.base.examples.fol.ZEBRA_06 JUnit	Test_9999, logicmoo.base.examples.fol, unit_test, ZEBRA_06, Failing, Errors, Overtime	2021-09-26 22:49:16 +0000 UTC
https://github.com/logicmoo/logicmoo_workspace/issues/639
Warn: reached MAX_JUNIT_TESTS .. skipping .. zebra_02.clif
Warn: reached MAX_JUNIT_TESTS .. skipping .. zebra_01.clif
Warn: reached MAX_JUNIT_TESTS .. skipping .. zebra_01a.clif
Warn: reached MAX_JUNIT_TESTS .. skipping .. good_same_01.clif
Warn: reached MAX_JUNIT_TESTS .. skipping .. exactly_one_value_01.clif
Warn: reached MAX_JUNIT_TESTS .. skipping .. exactly_one_instance_01.clif
Warn: reached MAX_JUNIT_TESTS .. skipping .. exactly_one_has_the_value_01.clif
Warn: reached MAX_JUNIT_TESTS .. skipping .. exactly_01.clif
Warn: reached MAX_JUNIT_TESTS .. skipping .. clif_01.clif
Warn: reached MAX_JUNIT_TESTS .. skipping .. answerable_t_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. exactly_poss_cute_06.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. birds_04.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. unit_projection_lem_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. tc_example_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. sigma_04.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. scope_exists_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_sk_two_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_sk_human_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_poss_03.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_poss_02.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_poss_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_fi_sk_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_fi_human_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_exists_03.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_exists_02.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_exists_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_exactly_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_atmost_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_atleast_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_at_least_most_exactly_02.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_at_least_most_exactly_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. room_numbers_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. poss_forall_exists_05.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. poss_forall_exists_04.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. poss_forall_exists_03.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. poss_forall_exists_02.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. poss_forall_exists_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. mpred_reset_db_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. missing_count_06.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. missing_count_05.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. missing_count_04.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. missing_count_03.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. missing_count_02.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. missing_count_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. make_wff_02.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. make_wff_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. make_types_wff_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. lefty_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. kif_sanity_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. kif_io_test_01.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. forall_quant_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. fol_cardinaity_axiomitized_02.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. fol_cardinaity_axiomitized_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. fol_calc_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. fol_birdt_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. family_regress_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. family_inheritance_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. exists_04.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. exactly_puppy_02.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. einstein_simpler_05.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. einstein_simpler_03.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. einstein_simpler_02.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. dislikes_03.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. boxlog_sanity_04.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. boxlog_sanity_03.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. boxlog_sanity_02.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. boxlog_sanity_01.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. zenls_01z.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. nat_sane_01a.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. make_wff_01a.pfc.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. kif_io_test_01a.pl
Warn: reached MAX_JUNIT_TESTS .. skipping .. holds_011.pfc
Warn: reached MAX_JUNIT_TESTS .. skipping .. exactly_01p.pfc.clif
Warn: reached MAX_JUNIT_TESTS .. skipping .. birds_01c.pfc.pl
sed: can't read /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units?*-junit.xml: No such file or directory
<!-- 
junit-viewer is /usr/bin/junit-viewer
junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer-rollup.html &> /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer.debug.html
junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer-rollup.html
Requirement already satisfied: junit2html in /usr/local/lib/python3.9/dist-packages (30.0.6)
Requirement already satisfied: jinja2>=2.11.2 in /usr/local/lib/python3.9/dist-packages (from junit2html) (3.0.1)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.9/dist-packages (from jinja2>=2.11.2->junit2html) (2.0.1)
junit2html is /usr/local/bin/junit2html
junit2html /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.html
TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units
-->
junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/junit-all.xml --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/junit-all.html
Recording plot data
Saving plot series data from: /var/lib/jenkins/workspace/logicmoo_workspace/.dockerignore
Not creating point with null values: y=null label= url=
Publishing Coverage report....
No reports were found
[htmlpublisher] Archiving HTML reports...
[htmlpublisher] Archiving at BUILD level /var/lib/jenkins/workspace/logicmoo_workspace/test_results to /var/lib/jenkins/jobs/logicmoo_workspace/builds/1/htmlreports/HTML_20Report
Publishing build last changes...
Last changes from revision 7ca50dc (current) to 7db044c (previous) published successfully!
Creating parser with percentiles:'0,50,90,100,' filterRegex:
Performance: Recording JUnit reports 'test_results/**/junit-all.xml'
Performance: JUnit copying reports to master, files '[/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/junit-all.xml]'
Performance: JUnit parsing local reports '[/var/lib/jenkins/jobs/logicmoo_workspace/builds/1/performance-reports/JUnit/junit-all.xml]'
Performance: Parsing report file '/var/lib/jenkins/jobs/logicmoo_workspace/builds/1/performance-reports/JUnit/junit-all.xml' with filterRegex ''.
----------------------------------------------------------- 
There are no relative constraints to evaluate! 
-------------- 
There are no absolute constraints to evaluate! 
-------------- 
There were no failing Constraints! The build will be marked as SUCCESS
INFO: Processing JUnit
INFO: [JUnit] - 19 test report file(s) were found with the pattern 'test_results/**/*-junit.xml' relative to '/var/lib/jenkins/workspace/logicmoo_workspace' for the testing framework 'JUnit'.
INFO: Setting the build status to SUCCESS
[logicmoo] Searching for all files in '/var/lib/jenkins/workspace/logicmoo_workspace' that match the pattern 'test_results/**/junit-all.xml'
[logicmoo] -> found 1 file
[logicmoo] Successfully parsed file /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/junit-all.xml
[logicmoo] -> found 18 issues (skipped 0 duplicates)
[logicmoo] Post processing issues on 'Master' with source code encoding 'UTF-8'
[logicmoo] Skipping SCM blames as requested
[logicmoo] Resolving file names for all issues in source directory '/var/lib/jenkins/workspace/logicmoo_workspace'
[logicmoo] -> none of the issues requires resolving of paths
[logicmoo] Resolving module names from module definitions (build.xml, pom.xml, or Manifest.mf files)
[logicmoo] -> resolved module names for 18 issues
[logicmoo] Resolving package names (or namespaces) by parsing the affected files
[logicmoo] -> resolved package names of 1 affected files
[logicmoo] No filter has been set, publishing all 18 issues
[logicmoo] Creating fingerprints for all affected code blocks to track issues over different builds
[logicmoo] -> created fingerprints for 0 issues (skipped 18 issues)
[logicmoo] Copying affected files to Jenkins' build folder '/var/lib/jenkins/jobs/logicmoo_workspace/builds/1/files-with-issues'
[logicmoo] -> 0 copied, 0 not in workspace, 18 not-found, 0 with I/O error
[logicmoo] Repository miner is not configured, skipping repository mining
[logicmoo] Reference build recorder is not configured
[logicmoo] Obtaining reference build from same job (logicmoo_workspace)
[logicmoo] No valid reference build found that meets the criteria (NO_JOB_FAILURE - SUCCESSFUL_QUALITY_GATE)
[logicmoo] All reported issues will be considered outstanding
[logicmoo] Evaluating quality gates
[logicmoo] -> FAILED - Total (any severity): 18 - Quality QualityGate: 1
[logicmoo] -> Some quality gates have been missed: overall result is FAILED
[logicmoo] Health report is disabled - skipping
[logicmoo] Created analysis result for 18 issues (found 0 new issues, fixed 0 issues)
[logicmoo] Attaching ResultAction with ID 'junit' to build 'logicmoo_workspace #1'.
[Checks API] No suitable checks publisher found.
Build step 'Record compiler warnings and static analysis results' changed build result to FAILURE
[Autograding] [-ERROR-] Autograding Jenkins build results
[Autograding] [-ERROR-] Invalid JSON configuration: {
  "analysis": {
    "maxScore": 100,
    "errorImpact": -10,
    "highImpact": -5,
    "normalImpact": -2,
    "lowImpact": -1
  },
  "tests": {
    "maxScore": 100,
    "failureImpact": -2,
    "skippedImpact": -1
  },
  "coverage": {
    "maxScore": 100,
    "missedImpact": -1
  },
  "pit": {
    "maxScore": 100,
    "undetectedImpact": -1,
  }
}
[Autograding] Test Configuration: {"enabled":false,"maxScore":0,"failureImpact":0,"passedImpact":0,"skippedImpact":0,"disabled":true}
[Autograding] Skipping test results
[Autograding] Code Coverage Configuration: {"enabled":false,"maxScore":0,"coveredPercentageImpact":0,"missedPercentageImpact":0,"disabled":true}
[Autograding] Skipping code coverage results
[Autograding] PIT Mutation Coverage Configuration: {"enabled":false,"maxScore":0,"undetectedImpact":0,"detectedImpact":0,"undetectedPercentageImpact":0,"detectedPercentageImpact":0,"disabled":true}
[Autograding] Skipping mutation coverage results
[Autograding] Static Analysis Configuration: {"enabled":false,"maxScore":0,"errorImpact":0,"highImpact":0,"normalImpact":0,"lowImpact":0,"disabled":true}
[Autograding] Skipping static analysis results
[Checks API] No suitable checks publisher found.
Started calculate disk usage of build
Finished Calculation of disk usage of build in 0 seconds
Started calculate disk usage of workspace
Finished Calculation of disk usage of workspace in  1 second
Finished: FAILURE