View source with raw comments or as raw
    1/*  Generated by CHR bootstrap compiler
    2    From: /usr/local/src/swipl-devel/packages/chr/guard_entailment.chr
    3    Date: Sun Feb 11 16:51:26 2024
    4
    5    DO NOT EDIT.  EDIT THE CHR FILE INSTEAD
    6*/
    7
    8:- module(guard_entailment,
    9          [ entails_guard/2,
   10            simplify_guards/5
   11          ]).   12:- use_module(chr(chr_runtime)).   13:- style_check(- (discontiguous)).   14:- style_check(-singleton).   15:- style_check(-no_effect).   16:- include(chr(chr_op)).   17:- use_module(library(dialect/hprolog)).   18:- use_module(library(lists)).   19:- use_module(chr(builtins)).   20:- use_module(chr(chr_compiler_errors)).   21entails_guard(A, B) :-
   22    copy_term_nat((A, B), (C, D)),
   23    term_variables(C, E),
   24    variables(E),
   25    sort(C, F),
   26    entails_guard2(F),
   27    !,
   28    test(D),
   29    !,
   30    cleanup.
   31entails_guard2([]).
   32entails_guard2([A|B]) :-
   33    known(A),
   34    entails_guard2(B).
   35simplify_guards(A, B, C, D, E) :-
   36    copy_term_nat((A, C), (F, G)),
   37    term_variables(F, H),
   38    variables(H),
   39    sort(F, I),
   40    entails_guard2(I),
   41    !,
   42    simplify(G, J),
   43    simplified(C, J, D, B, E),
   44    !,
   45    cleanup.
   46simplified([], [], [], A, A).
   47simplified([A|B], [keep|C], [A|D], E, F) :-
   48    simplified(B, C, D, E, F).
   49simplified([_|_], [fail|_], fail, A, A).
   50simplified([A|B], [true|C], [D|E], F, G) :-
   51    builtins:binds_b(A, H),
   52    term_variables(B, I),
   53    intersect_eq(H, I, J),
   54    !,
   55    (   J=[]
   56    ->  term_variables(F, K),
   57        intersect_eq(H, K, L),
   58        !,
   59        (   L=[]
   60        ->  D=true,
   61            G=M
   62        ;   D=true,
   63            G=(A, M)
   64        )
   65    ;   D=A,
   66        G=M
   67    ),
   68    simplified(B, C, E, F, M).
   69simplify([], []).
   70simplify([A|B], [C|D]) :-
   71    (   \+ try(true, A)
   72    ->  C=true
   73    ;   builtins:negate_b(A, E),
   74        (   \+ try(true, E)
   75        ->  C=fail
   76        ;   C=keep
   77        )
   78    ),
   79    known(A),
   80    simplify(B, D).
   81try(A, B) :-
   82    (   known(A)
   83    ->  true
   84    ;   chr_error(internal, 'Entailment Checker: try/2.\n', [])
   85    ),
   86    (   test(B)
   87    ->  fail
   88    ;   true
   89    ).
   90add_args_unif([], [], true).
   91add_args_unif([A|B], [C|D], (A=C, E)) :-
   92    add_args_unif(B, D, E).
   93add_args_nunif([], [], fail).
   94add_args_nunif([A|B], [C|D], (A\=C;E)) :-
   95    add_args_nunif(B, D, E).
   96add_args_nmatch([], [], fail).
   97add_args_nmatch([A|B], [C|D], (A\==C;E)) :-
   98    add_args_nmatch(B, D, E).
   99all_unique_vars(A, B) :-
  100    all_unique_vars(A, B, []).
  101all_unique_vars([], _, _).
  102all_unique_vars([A|B], C, D) :-
  103    var(A),
  104    \+ memberchk_eq(A, C),
  105    \+ memberchk_eq(A, D),
  106    all_unique_vars(B, [A|D]).
  107:- use_module(chr(chr_runtime)).  108attach_variables___1([], _).
  109attach_variables___1([A|B], C) :-
  110    (   get_attr(A, guard_entailment, D)
  111    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  112        (   E/\1=:=1
  113        ->  A1=v(E, [C|F], G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
  114        ;   B1 is E\/1,
  115            A1=v(B1, [C], G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
  116        ),
  117        put_attr(A, guard_entailment, A1)
  118    ;   put_attr(A,
  119                 guard_entailment,
  120                 v(1,
  121                   [C],
  122                   [],
  123                   [],
  124                   [],
  125                   [],
  126                   [],
  127                   [],
  128                   [],
  129                   [],
  130                   [],
  131                   [],
  132                   [],
  133                   [],
  134                   [],
  135                   [],
  136                   [],
  137                   [],
  138                   [],
  139                   [],
  140                   [],
  141                   []))
  142    ),
  143    attach_variables___1(B, C).
  144detach_variables___1([], _).
  145detach_variables___1([A|B], C) :-
  146    (   get_attr(A, guard_entailment, D)
  147    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  148        (   E/\1=:=1
  149        ->  'chr sbag_del_element'(F, C, A1),
  150            (   A1==[]
  151            ->  B1 is E/\ -2,
  152                (   B1==0
  153                ->  del_attr(A, guard_entailment)
  154                ;   put_attr(A,
  155                             guard_entailment,
  156                             v(B1,
  157                               [],
  158                               G,
  159                               H,
  160                               I,
  161                               J,
  162                               K,
  163                               L,
  164                               M,
  165                               N,
  166                               O,
  167                               P,
  168                               Q,
  169                               R,
  170                               S,
  171                               T,
  172                               U,
  173                               V,
  174                               W,
  175                               X,
  176                               Y,
  177                               Z))
  178                )
  179            ;   put_attr(A,
  180                         guard_entailment,
  181                         v(E,
  182                           A1,
  183                           G,
  184                           H,
  185                           I,
  186                           J,
  187                           K,
  188                           L,
  189                           M,
  190                           N,
  191                           O,
  192                           P,
  193                           Q,
  194                           R,
  195                           S,
  196                           T,
  197                           U,
  198                           V,
  199                           W,
  200                           X,
  201                           Y,
  202                           Z))
  203            )
  204        ;   true
  205        )
  206    ;   true
  207    ),
  208    detach_variables___1(B, C).
  209'attach_known/1_1_$default___1'([], _).
  210'attach_known/1_1_$default___1'([A|B], C) :-
  211    (   get_attr(A, guard_entailment, D)
  212    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  213        (   E/\2=:=2
  214        ->  A1=v(E, F, [C|G], H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
  215        ;   B1 is E\/2,
  216            A1=v(B1, F, [C], H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
  217        ),
  218        put_attr(A, guard_entailment, A1)
  219    ;   put_attr(A,
  220                 guard_entailment,
  221                 v(2,
  222                   [],
  223                   [C],
  224                   [],
  225                   [],
  226                   [],
  227                   [],
  228                   [],
  229                   [],
  230                   [],
  231                   [],
  232                   [],
  233                   [],
  234                   [],
  235                   [],
  236                   [],
  237                   [],
  238                   [],
  239                   [],
  240                   [],
  241                   [],
  242                   []))
  243    ),
  244    'attach_known/1_1_$default___1'(B, C).
  245'detach_known/1_1_$default___1'([], _).
  246'detach_known/1_1_$default___1'([A|B], C) :-
  247    (   get_attr(A, guard_entailment, D)
  248    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  249        (   E/\2=:=2
  250        ->  'chr sbag_del_element'(G, C, A1),
  251            (   A1==[]
  252            ->  B1 is E/\ -3,
  253                (   B1==0
  254                ->  del_attr(A, guard_entailment)
  255                ;   put_attr(A,
  256                             guard_entailment,
  257                             v(B1,
  258                               F,
  259                               [],
  260                               H,
  261                               I,
  262                               J,
  263                               K,
  264                               L,
  265                               M,
  266                               N,
  267                               O,
  268                               P,
  269                               Q,
  270                               R,
  271                               S,
  272                               T,
  273                               U,
  274                               V,
  275                               W,
  276                               X,
  277                               Y,
  278                               Z))
  279                )
  280            ;   put_attr(A,
  281                         guard_entailment,
  282                         v(E,
  283                           F,
  284                           A1,
  285                           H,
  286                           I,
  287                           J,
  288                           K,
  289                           L,
  290                           M,
  291                           N,
  292                           O,
  293                           P,
  294                           Q,
  295                           R,
  296                           S,
  297                           T,
  298                           U,
  299                           V,
  300                           W,
  301                           X,
  302                           Y,
  303                           Z))
  304            )
  305        ;   true
  306        )
  307    ;   true
  308    ),
  309    'detach_known/1_1_$default___1'(B, C).
  310'attach_known/1_1_$special_;/2___2'([], _).
  311'attach_known/1_1_$special_;/2___2'([A|B], C) :-
  312    (   get_attr(A, guard_entailment, D)
  313    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  314        (   E/\4=:=4
  315        ->  A1=v(E, F, G, [C|H], I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
  316        ;   B1 is E\/4,
  317            A1=v(B1, F, G, [C], I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
  318        ),
  319        put_attr(A, guard_entailment, A1)
  320    ;   put_attr(A,
  321                 guard_entailment,
  322                 v(4,
  323                   [],
  324                   [],
  325                   [C],
  326                   [],
  327                   [],
  328                   [],
  329                   [],
  330                   [],
  331                   [],
  332                   [],
  333                   [],
  334                   [],
  335                   [],
  336                   [],
  337                   [],
  338                   [],
  339                   [],
  340                   [],
  341                   [],
  342                   [],
  343                   []))
  344    ),
  345    'attach_known/1_1_$special_;/2___2'(B, C).
  346'detach_known/1_1_$special_;/2___2'([], _).
  347'detach_known/1_1_$special_;/2___2'([A|B], C) :-
  348    (   get_attr(A, guard_entailment, D)
  349    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  350        (   E/\4=:=4
  351        ->  'chr sbag_del_element'(H, C, A1),
  352            (   A1==[]
  353            ->  B1 is E/\ -5,
  354                (   B1==0
  355                ->  del_attr(A, guard_entailment)
  356                ;   put_attr(A,
  357                             guard_entailment,
  358                             v(B1,
  359                               F,
  360                               G,
  361                               [],
  362                               I,
  363                               J,
  364                               K,
  365                               L,
  366                               M,
  367                               N,
  368                               O,
  369                               P,
  370                               Q,
  371                               R,
  372                               S,
  373                               T,
  374                               U,
  375                               V,
  376                               W,
  377                               X,
  378                               Y,
  379                               Z))
  380                )
  381            ;   put_attr(A,
  382                         guard_entailment,
  383                         v(E,
  384                           F,
  385                           G,
  386                           A1,
  387                           I,
  388                           J,
  389                           K,
  390                           L,
  391                           M,
  392                           N,
  393                           O,
  394                           P,
  395                           Q,
  396                           R,
  397                           S,
  398                           T,
  399                           U,
  400                           V,
  401                           W,
  402                           X,
  403                           Y,
  404                           Z))
  405            )
  406        ;   true
  407        )
  408    ;   true
  409    ),
  410    'detach_known/1_1_$special_;/2___2'(B, C).
  411'attach_known/1_1_$special_nonvar/1___1'([], _).
  412'attach_known/1_1_$special_nonvar/1___1'([A|B], C) :-
  413    (   get_attr(A, guard_entailment, D)
  414    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  415        (   E/\8=:=8
  416        ->  A1=v(E, F, G, H, [C|I], J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
  417        ;   B1 is E\/8,
  418            A1=v(B1, F, G, H, [C], J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
  419        ),
  420        put_attr(A, guard_entailment, A1)
  421    ;   put_attr(A,
  422                 guard_entailment,
  423                 v(8,
  424                   [],
  425                   [],
  426                   [],
  427                   [C],
  428                   [],
  429                   [],
  430                   [],
  431                   [],
  432                   [],
  433                   [],
  434                   [],
  435                   [],
  436                   [],
  437                   [],
  438                   [],
  439                   [],
  440                   [],
  441                   [],
  442                   [],
  443                   [],
  444                   []))
  445    ),
  446    'attach_known/1_1_$special_nonvar/1___1'(B, C).
  447'detach_known/1_1_$special_nonvar/1___1'([], _).
  448'detach_known/1_1_$special_nonvar/1___1'([A|B], C) :-
  449    (   get_attr(A, guard_entailment, D)
  450    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  451        (   E/\8=:=8
  452        ->  'chr sbag_del_element'(I, C, A1),
  453            (   A1==[]
  454            ->  B1 is E/\ -9,
  455                (   B1==0
  456                ->  del_attr(A, guard_entailment)
  457                ;   put_attr(A,
  458                             guard_entailment,
  459                             v(B1,
  460                               F,
  461                               G,
  462                               H,
  463                               [],
  464                               J,
  465                               K,
  466                               L,
  467                               M,
  468                               N,
  469                               O,
  470                               P,
  471                               Q,
  472                               R,
  473                               S,
  474                               T,
  475                               U,
  476                               V,
  477                               W,
  478                               X,
  479                               Y,
  480                               Z))
  481                )
  482            ;   put_attr(A,
  483                         guard_entailment,
  484                         v(E,
  485                           F,
  486                           G,
  487                           H,
  488                           A1,
  489                           J,
  490                           K,
  491                           L,
  492                           M,
  493                           N,
  494                           O,
  495                           P,
  496                           Q,
  497                           R,
  498                           S,
  499                           T,
  500                           U,
  501                           V,
  502                           W,
  503                           X,
  504                           Y,
  505                           Z))
  506            )
  507        ;   true
  508        )
  509    ;   true
  510    ),
  511    'detach_known/1_1_$special_nonvar/1___1'(B, C).
  512'attach_known/1_1_$special_var/1___1'([], _).
  513'attach_known/1_1_$special_var/1___1'([A|B], C) :-
  514    (   get_attr(A, guard_entailment, D)
  515    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  516        (   E/\16=:=16
  517        ->  A1=v(E, F, G, H, I, [C|J], K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
  518        ;   B1 is E\/16,
  519            A1=v(B1, F, G, H, I, [C], K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
  520        ),
  521        put_attr(A, guard_entailment, A1)
  522    ;   put_attr(A,
  523                 guard_entailment,
  524                 v(16,
  525                   [],
  526                   [],
  527                   [],
  528                   [],
  529                   [C],
  530                   [],
  531                   [],
  532                   [],
  533                   [],
  534                   [],
  535                   [],
  536                   [],
  537                   [],
  538                   [],
  539                   [],
  540                   [],
  541                   [],
  542                   [],
  543                   [],
  544                   [],
  545                   []))
  546    ),
  547    'attach_known/1_1_$special_var/1___1'(B, C).
  548'detach_known/1_1_$special_var/1___1'([], _).
  549'detach_known/1_1_$special_var/1___1'([A|B], C) :-
  550    (   get_attr(A, guard_entailment, D)
  551    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  552        (   E/\16=:=16
  553        ->  'chr sbag_del_element'(J, C, A1),
  554            (   A1==[]
  555            ->  B1 is E/\ -17,
  556                (   B1==0
  557                ->  del_attr(A, guard_entailment)
  558                ;   put_attr(A,
  559                             guard_entailment,
  560                             v(B1,
  561                               F,
  562                               G,
  563                               H,
  564                               I,
  565                               [],
  566                               K,
  567                               L,
  568                               M,
  569                               N,
  570                               O,
  571                               P,
  572                               Q,
  573                               R,
  574                               S,
  575                               T,
  576                               U,
  577                               V,
  578                               W,
  579                               X,
  580                               Y,
  581                               Z))
  582                )
  583            ;   put_attr(A,
  584                         guard_entailment,
  585                         v(E,
  586                           F,
  587                           G,
  588                           H,
  589                           I,
  590                           A1,
  591                           K,
  592                           L,
  593                           M,
  594                           N,
  595                           O,
  596                           P,
  597                           Q,
  598                           R,
  599                           S,
  600                           T,
  601                           U,
  602                           V,
  603                           W,
  604                           X,
  605                           Y,
  606                           Z))
  607            )
  608        ;   true
  609        )
  610    ;   true
  611    ),
  612    'detach_known/1_1_$special_var/1___1'(B, C).
  613'attach_known/1_1_$special_atom/1___1'([], _).
  614'attach_known/1_1_$special_atom/1___1'([A|B], C) :-
  615    (   get_attr(A, guard_entailment, D)
  616    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  617        (   E/\32=:=32
  618        ->  A1=v(E, F, G, H, I, J, [C|K], L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
  619        ;   B1 is E\/32,
  620            A1=v(B1, F, G, H, I, J, [C], L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
  621        ),
  622        put_attr(A, guard_entailment, A1)
  623    ;   put_attr(A,
  624                 guard_entailment,
  625                 v(32,
  626                   [],
  627                   [],
  628                   [],
  629                   [],
  630                   [],
  631                   [C],
  632                   [],
  633                   [],
  634                   [],
  635                   [],
  636                   [],
  637                   [],
  638                   [],
  639                   [],
  640                   [],
  641                   [],
  642                   [],
  643                   [],
  644                   [],
  645                   [],
  646                   []))
  647    ),
  648    'attach_known/1_1_$special_atom/1___1'(B, C).
  649'detach_known/1_1_$special_atom/1___1'([], _).
  650'detach_known/1_1_$special_atom/1___1'([A|B], C) :-
  651    (   get_attr(A, guard_entailment, D)
  652    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  653        (   E/\32=:=32
  654        ->  'chr sbag_del_element'(K, C, A1),
  655            (   A1==[]
  656            ->  B1 is E/\ -33,
  657                (   B1==0
  658                ->  del_attr(A, guard_entailment)
  659                ;   put_attr(A,
  660                             guard_entailment,
  661                             v(B1,
  662                               F,
  663                               G,
  664                               H,
  665                               I,
  666                               J,
  667                               [],
  668                               L,
  669                               M,
  670                               N,
  671                               O,
  672                               P,
  673                               Q,
  674                               R,
  675                               S,
  676                               T,
  677                               U,
  678                               V,
  679                               W,
  680                               X,
  681                               Y,
  682                               Z))
  683                )
  684            ;   put_attr(A,
  685                         guard_entailment,
  686                         v(E,
  687                           F,
  688                           G,
  689                           H,
  690                           I,
  691                           J,
  692                           A1,
  693                           L,
  694                           M,
  695                           N,
  696                           O,
  697                           P,
  698                           Q,
  699                           R,
  700                           S,
  701                           T,
  702                           U,
  703                           V,
  704                           W,
  705                           X,
  706                           Y,
  707                           Z))
  708            )
  709        ;   true
  710        )
  711    ;   true
  712    ),
  713    'detach_known/1_1_$special_atom/1___1'(B, C).
  714'attach_known/1_1_$special_atomic/1___1'([], _).
  715'attach_known/1_1_$special_atomic/1___1'([A|B], C) :-
  716    (   get_attr(A, guard_entailment, D)
  717    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  718        (   E/\64=:=64
  719        ->  A1=v(E, F, G, H, I, J, K, [C|L], M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
  720        ;   B1 is E\/64,
  721            A1=v(B1, F, G, H, I, J, K, [C], M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
  722        ),
  723        put_attr(A, guard_entailment, A1)
  724    ;   put_attr(A,
  725                 guard_entailment,
  726                 v(64,
  727                   [],
  728                   [],
  729                   [],
  730                   [],
  731                   [],
  732                   [],
  733                   [C],
  734                   [],
  735                   [],
  736                   [],
  737                   [],
  738                   [],
  739                   [],
  740                   [],
  741                   [],
  742                   [],
  743                   [],
  744                   [],
  745                   [],
  746                   [],
  747                   []))
  748    ),
  749    'attach_known/1_1_$special_atomic/1___1'(B, C).
  750'detach_known/1_1_$special_atomic/1___1'([], _).
  751'detach_known/1_1_$special_atomic/1___1'([A|B], C) :-
  752    (   get_attr(A, guard_entailment, D)
  753    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  754        (   E/\64=:=64
  755        ->  'chr sbag_del_element'(L, C, A1),
  756            (   A1==[]
  757            ->  B1 is E/\ -65,
  758                (   B1==0
  759                ->  del_attr(A, guard_entailment)
  760                ;   put_attr(A,
  761                             guard_entailment,
  762                             v(B1,
  763                               F,
  764                               G,
  765                               H,
  766                               I,
  767                               J,
  768                               K,
  769                               [],
  770                               M,
  771                               N,
  772                               O,
  773                               P,
  774                               Q,
  775                               R,
  776                               S,
  777                               T,
  778                               U,
  779                               V,
  780                               W,
  781                               X,
  782                               Y,
  783                               Z))
  784                )
  785            ;   put_attr(A,
  786                         guard_entailment,
  787                         v(E,
  788                           F,
  789                           G,
  790                           H,
  791                           I,
  792                           J,
  793                           K,
  794                           A1,
  795                           M,
  796                           N,
  797                           O,
  798                           P,
  799                           Q,
  800                           R,
  801                           S,
  802                           T,
  803                           U,
  804                           V,
  805                           W,
  806                           X,
  807                           Y,
  808                           Z))
  809            )
  810        ;   true
  811        )
  812    ;   true
  813    ),
  814    'detach_known/1_1_$special_atomic/1___1'(B, C).
  815'attach_known/1_1_$special_compound/1___1'([], _).
  816'attach_known/1_1_$special_compound/1___1'([A|B], C) :-
  817    (   get_attr(A, guard_entailment, D)
  818    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  819        (   E/\128=:=128
  820        ->  A1=v(E, F, G, H, I, J, K, L, [C|M], N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
  821        ;   B1 is E\/128,
  822            A1=v(B1, F, G, H, I, J, K, L, [C], N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
  823        ),
  824        put_attr(A, guard_entailment, A1)
  825    ;   put_attr(A,
  826                 guard_entailment,
  827                 v(128,
  828                   [],
  829                   [],
  830                   [],
  831                   [],
  832                   [],
  833                   [],
  834                   [],
  835                   [C],
  836                   [],
  837                   [],
  838                   [],
  839                   [],
  840                   [],
  841                   [],
  842                   [],
  843                   [],
  844                   [],
  845                   [],
  846                   [],
  847                   [],
  848                   []))
  849    ),
  850    'attach_known/1_1_$special_compound/1___1'(B, C).
  851'detach_known/1_1_$special_compound/1___1'([], _).
  852'detach_known/1_1_$special_compound/1___1'([A|B], C) :-
  853    (   get_attr(A, guard_entailment, D)
  854    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  855        (   E/\128=:=128
  856        ->  'chr sbag_del_element'(M, C, A1),
  857            (   A1==[]
  858            ->  B1 is E/\ -129,
  859                (   B1==0
  860                ->  del_attr(A, guard_entailment)
  861                ;   put_attr(A,
  862                             guard_entailment,
  863                             v(B1,
  864                               F,
  865                               G,
  866                               H,
  867                               I,
  868                               J,
  869                               K,
  870                               L,
  871                               [],
  872                               N,
  873                               O,
  874                               P,
  875                               Q,
  876                               R,
  877                               S,
  878                               T,
  879                               U,
  880                               V,
  881                               W,
  882                               X,
  883                               Y,
  884                               Z))
  885                )
  886            ;   put_attr(A,
  887                         guard_entailment,
  888                         v(E,
  889                           F,
  890                           G,
  891                           H,
  892                           I,
  893                           J,
  894                           K,
  895                           L,
  896                           A1,
  897                           N,
  898                           O,
  899                           P,
  900                           Q,
  901                           R,
  902                           S,
  903                           T,
  904                           U,
  905                           V,
  906                           W,
  907                           X,
  908                           Y,
  909                           Z))
  910            )
  911        ;   true
  912        )
  913    ;   true
  914    ),
  915    'detach_known/1_1_$special_compound/1___1'(B, C).
  916'attach_known/1_1_$special_ground/1___1'([], _).
  917'attach_known/1_1_$special_ground/1___1'([A|B], C) :-
  918    (   get_attr(A, guard_entailment, D)
  919    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  920        (   E/\256=:=256
  921        ->  A1=v(E, F, G, H, I, J, K, L, M, [C|N], O, P, Q, R, S, T, U, V, W, X, Y, Z)
  922        ;   B1 is E\/256,
  923            A1=v(B1, F, G, H, I, J, K, L, M, [C], O, P, Q, R, S, T, U, V, W, X, Y, Z)
  924        ),
  925        put_attr(A, guard_entailment, A1)
  926    ;   put_attr(A,
  927                 guard_entailment,
  928                 v(256,
  929                   [],
  930                   [],
  931                   [],
  932                   [],
  933                   [],
  934                   [],
  935                   [],
  936                   [],
  937                   [C],
  938                   [],
  939                   [],
  940                   [],
  941                   [],
  942                   [],
  943                   [],
  944                   [],
  945                   [],
  946                   [],
  947                   [],
  948                   [],
  949                   []))
  950    ),
  951    'attach_known/1_1_$special_ground/1___1'(B, C).
  952'detach_known/1_1_$special_ground/1___1'([], _).
  953'detach_known/1_1_$special_ground/1___1'([A|B], C) :-
  954    (   get_attr(A, guard_entailment, D)
  955    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
  956        (   E/\256=:=256
  957        ->  'chr sbag_del_element'(N, C, A1),
  958            (   A1==[]
  959            ->  B1 is E/\ -257,
  960                (   B1==0
  961                ->  del_attr(A, guard_entailment)
  962                ;   put_attr(A,
  963                             guard_entailment,
  964                             v(B1,
  965                               F,
  966                               G,
  967                               H,
  968                               I,
  969                               J,
  970                               K,
  971                               L,
  972                               M,
  973                               [],
  974                               O,
  975                               P,
  976                               Q,
  977                               R,
  978                               S,
  979                               T,
  980                               U,
  981                               V,
  982                               W,
  983                               X,
  984                               Y,
  985                               Z))
  986                )
  987            ;   put_attr(A,
  988                         guard_entailment,
  989                         v(E,
  990                           F,
  991                           G,
  992                           H,
  993                           I,
  994                           J,
  995                           K,
  996                           L,
  997                           M,
  998                           A1,
  999                           O,
 1000                           P,
 1001                           Q,
 1002                           R,
 1003                           S,
 1004                           T,
 1005                           U,
 1006                           V,
 1007                           W,
 1008                           X,
 1009                           Y,
 1010                           Z))
 1011            )
 1012        ;   true
 1013        )
 1014    ;   true
 1015    ),
 1016    'detach_known/1_1_$special_ground/1___1'(B, C).
 1017'attach_known/1_1_$special_integer/1___1'([], _).
 1018'attach_known/1_1_$special_integer/1___1'([A|B], C) :-
 1019    (   get_attr(A, guard_entailment, D)
 1020    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1021        (   E/\512=:=512
 1022        ->  A1=v(E, F, G, H, I, J, K, L, M, N, [C|O], P, Q, R, S, T, U, V, W, X, Y, Z)
 1023        ;   B1 is E\/512,
 1024            A1=v(B1, F, G, H, I, J, K, L, M, N, [C], P, Q, R, S, T, U, V, W, X, Y, Z)
 1025        ),
 1026        put_attr(A, guard_entailment, A1)
 1027    ;   put_attr(A,
 1028                 guard_entailment,
 1029                 v(512,
 1030                   [],
 1031                   [],
 1032                   [],
 1033                   [],
 1034                   [],
 1035                   [],
 1036                   [],
 1037                   [],
 1038                   [],
 1039                   [C],
 1040                   [],
 1041                   [],
 1042                   [],
 1043                   [],
 1044                   [],
 1045                   [],
 1046                   [],
 1047                   [],
 1048                   [],
 1049                   [],
 1050                   []))
 1051    ),
 1052    'attach_known/1_1_$special_integer/1___1'(B, C).
 1053'detach_known/1_1_$special_integer/1___1'([], _).
 1054'detach_known/1_1_$special_integer/1___1'([A|B], C) :-
 1055    (   get_attr(A, guard_entailment, D)
 1056    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1057        (   E/\512=:=512
 1058        ->  'chr sbag_del_element'(O, C, A1),
 1059            (   A1==[]
 1060            ->  B1 is E/\ -513,
 1061                (   B1==0
 1062                ->  del_attr(A, guard_entailment)
 1063                ;   put_attr(A,
 1064                             guard_entailment,
 1065                             v(B1,
 1066                               F,
 1067                               G,
 1068                               H,
 1069                               I,
 1070                               J,
 1071                               K,
 1072                               L,
 1073                               M,
 1074                               N,
 1075                               [],
 1076                               P,
 1077                               Q,
 1078                               R,
 1079                               S,
 1080                               T,
 1081                               U,
 1082                               V,
 1083                               W,
 1084                               X,
 1085                               Y,
 1086                               Z))
 1087                )
 1088            ;   put_attr(A,
 1089                         guard_entailment,
 1090                         v(E,
 1091                           F,
 1092                           G,
 1093                           H,
 1094                           I,
 1095                           J,
 1096                           K,
 1097                           L,
 1098                           M,
 1099                           N,
 1100                           A1,
 1101                           P,
 1102                           Q,
 1103                           R,
 1104                           S,
 1105                           T,
 1106                           U,
 1107                           V,
 1108                           W,
 1109                           X,
 1110                           Y,
 1111                           Z))
 1112            )
 1113        ;   true
 1114        )
 1115    ;   true
 1116    ),
 1117    'detach_known/1_1_$special_integer/1___1'(B, C).
 1118'attach_known/1_1_$special_float/1___1'([], _).
 1119'attach_known/1_1_$special_float/1___1'([A|B], C) :-
 1120    (   get_attr(A, guard_entailment, D)
 1121    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1122        (   E/\1024=:=1024
 1123        ->  A1=v(E, F, G, H, I, J, K, L, M, N, O, [C|P], Q, R, S, T, U, V, W, X, Y, Z)
 1124        ;   B1 is E\/1024,
 1125            A1=v(B1, F, G, H, I, J, K, L, M, N, O, [C], Q, R, S, T, U, V, W, X, Y, Z)
 1126        ),
 1127        put_attr(A, guard_entailment, A1)
 1128    ;   put_attr(A,
 1129                 guard_entailment,
 1130                 v(1024,
 1131                   [],
 1132                   [],
 1133                   [],
 1134                   [],
 1135                   [],
 1136                   [],
 1137                   [],
 1138                   [],
 1139                   [],
 1140                   [],
 1141                   [C],
 1142                   [],
 1143                   [],
 1144                   [],
 1145                   [],
 1146                   [],
 1147                   [],
 1148                   [],
 1149                   [],
 1150                   [],
 1151                   []))
 1152    ),
 1153    'attach_known/1_1_$special_float/1___1'(B, C).
 1154'detach_known/1_1_$special_float/1___1'([], _).
 1155'detach_known/1_1_$special_float/1___1'([A|B], C) :-
 1156    (   get_attr(A, guard_entailment, D)
 1157    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1158        (   E/\1024=:=1024
 1159        ->  'chr sbag_del_element'(P, C, A1),
 1160            (   A1==[]
 1161            ->  B1 is E/\ -1025,
 1162                (   B1==0
 1163                ->  del_attr(A, guard_entailment)
 1164                ;   put_attr(A,
 1165                             guard_entailment,
 1166                             v(B1,
 1167                               F,
 1168                               G,
 1169                               H,
 1170                               I,
 1171                               J,
 1172                               K,
 1173                               L,
 1174                               M,
 1175                               N,
 1176                               O,
 1177                               [],
 1178                               Q,
 1179                               R,
 1180                               S,
 1181                               T,
 1182                               U,
 1183                               V,
 1184                               W,
 1185                               X,
 1186                               Y,
 1187                               Z))
 1188                )
 1189            ;   put_attr(A,
 1190                         guard_entailment,
 1191                         v(E,
 1192                           F,
 1193                           G,
 1194                           H,
 1195                           I,
 1196                           J,
 1197                           K,
 1198                           L,
 1199                           M,
 1200                           N,
 1201                           O,
 1202                           A1,
 1203                           Q,
 1204                           R,
 1205                           S,
 1206                           T,
 1207                           U,
 1208                           V,
 1209                           W,
 1210                           X,
 1211                           Y,
 1212                           Z))
 1213            )
 1214        ;   true
 1215        )
 1216    ;   true
 1217    ),
 1218    'detach_known/1_1_$special_float/1___1'(B, C).
 1219'attach_known/1_1_$special_number/1___1'([], _).
 1220'attach_known/1_1_$special_number/1___1'([A|B], C) :-
 1221    (   get_attr(A, guard_entailment, D)
 1222    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1223        (   E/\2048=:=2048
 1224        ->  A1=v(E, F, G, H, I, J, K, L, M, N, O, P, [C|Q], R, S, T, U, V, W, X, Y, Z)
 1225        ;   B1 is E\/2048,
 1226            A1=v(B1, F, G, H, I, J, K, L, M, N, O, P, [C], R, S, T, U, V, W, X, Y, Z)
 1227        ),
 1228        put_attr(A, guard_entailment, A1)
 1229    ;   put_attr(A,
 1230                 guard_entailment,
 1231                 v(2048,
 1232                   [],
 1233                   [],
 1234                   [],
 1235                   [],
 1236                   [],
 1237                   [],
 1238                   [],
 1239                   [],
 1240                   [],
 1241                   [],
 1242                   [],
 1243                   [C],
 1244                   [],
 1245                   [],
 1246                   [],
 1247                   [],
 1248                   [],
 1249                   [],
 1250                   [],
 1251                   [],
 1252                   []))
 1253    ),
 1254    'attach_known/1_1_$special_number/1___1'(B, C).
 1255'detach_known/1_1_$special_number/1___1'([], _).
 1256'detach_known/1_1_$special_number/1___1'([A|B], C) :-
 1257    (   get_attr(A, guard_entailment, D)
 1258    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1259        (   E/\2048=:=2048
 1260        ->  'chr sbag_del_element'(Q, C, A1),
 1261            (   A1==[]
 1262            ->  B1 is E/\ -2049,
 1263                (   B1==0
 1264                ->  del_attr(A, guard_entailment)
 1265                ;   put_attr(A,
 1266                             guard_entailment,
 1267                             v(B1,
 1268                               F,
 1269                               G,
 1270                               H,
 1271                               I,
 1272                               J,
 1273                               K,
 1274                               L,
 1275                               M,
 1276                               N,
 1277                               O,
 1278                               P,
 1279                               [],
 1280                               R,
 1281                               S,
 1282                               T,
 1283                               U,
 1284                               V,
 1285                               W,
 1286                               X,
 1287                               Y,
 1288                               Z))
 1289                )
 1290            ;   put_attr(A,
 1291                         guard_entailment,
 1292                         v(E,
 1293                           F,
 1294                           G,
 1295                           H,
 1296                           I,
 1297                           J,
 1298                           K,
 1299                           L,
 1300                           M,
 1301                           N,
 1302                           O,
 1303                           P,
 1304                           A1,
 1305                           R,
 1306                           S,
 1307                           T,
 1308                           U,
 1309                           V,
 1310                           W,
 1311                           X,
 1312                           Y,
 1313                           Z))
 1314            )
 1315        ;   true
 1316        )
 1317    ;   true
 1318    ),
 1319    'detach_known/1_1_$special_number/1___1'(B, C).
 1320'attach_known/1_1_$special_=\\=/2___2'([], _).
 1321'attach_known/1_1_$special_=\\=/2___2'([A|B], C) :-
 1322    (   get_attr(A, guard_entailment, D)
 1323    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1324        (   E/\4096=:=4096
 1325        ->  A1=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, [C|R], S, T, U, V, W, X, Y, Z)
 1326        ;   B1 is E\/4096,
 1327            A1=v(B1, F, G, H, I, J, K, L, M, N, O, P, Q, [C], S, T, U, V, W, X, Y, Z)
 1328        ),
 1329        put_attr(A, guard_entailment, A1)
 1330    ;   put_attr(A,
 1331                 guard_entailment,
 1332                 v(4096,
 1333                   [],
 1334                   [],
 1335                   [],
 1336                   [],
 1337                   [],
 1338                   [],
 1339                   [],
 1340                   [],
 1341                   [],
 1342                   [],
 1343                   [],
 1344                   [],
 1345                   [C],
 1346                   [],
 1347                   [],
 1348                   [],
 1349                   [],
 1350                   [],
 1351                   [],
 1352                   [],
 1353                   []))
 1354    ),
 1355    'attach_known/1_1_$special_=\\=/2___2'(B, C).
 1356'detach_known/1_1_$special_=\\=/2___2'([], _).
 1357'detach_known/1_1_$special_=\\=/2___2'([A|B], C) :-
 1358    (   get_attr(A, guard_entailment, D)
 1359    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1360        (   E/\4096=:=4096
 1361        ->  'chr sbag_del_element'(R, C, A1),
 1362            (   A1==[]
 1363            ->  B1 is E/\ -4097,
 1364                (   B1==0
 1365                ->  del_attr(A, guard_entailment)
 1366                ;   put_attr(A,
 1367                             guard_entailment,
 1368                             v(B1,
 1369                               F,
 1370                               G,
 1371                               H,
 1372                               I,
 1373                               J,
 1374                               K,
 1375                               L,
 1376                               M,
 1377                               N,
 1378                               O,
 1379                               P,
 1380                               Q,
 1381                               [],
 1382                               S,
 1383                               T,
 1384                               U,
 1385                               V,
 1386                               W,
 1387                               X,
 1388                               Y,
 1389                               Z))
 1390                )
 1391            ;   put_attr(A,
 1392                         guard_entailment,
 1393                         v(E,
 1394                           F,
 1395                           G,
 1396                           H,
 1397                           I,
 1398                           J,
 1399                           K,
 1400                           L,
 1401                           M,
 1402                           N,
 1403                           O,
 1404                           P,
 1405                           Q,
 1406                           A1,
 1407                           S,
 1408                           T,
 1409                           U,
 1410                           V,
 1411                           W,
 1412                           X,
 1413                           Y,
 1414                           Z))
 1415            )
 1416        ;   true
 1417        )
 1418    ;   true
 1419    ),
 1420    'detach_known/1_1_$special_=\\=/2___2'(B, C).
 1421'attach_known/1_1_$special_\\+/1___1'([], _).
 1422'attach_known/1_1_$special_\\+/1___1'([A|B], C) :-
 1423    (   get_attr(A, guard_entailment, D)
 1424    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1425        (   E/\8192=:=8192
 1426        ->  A1=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, [C|S], T, U, V, W, X, Y, Z)
 1427        ;   B1 is E\/8192,
 1428            A1=v(B1, F, G, H, I, J, K, L, M, N, O, P, Q, R, [C], T, U, V, W, X, Y, Z)
 1429        ),
 1430        put_attr(A, guard_entailment, A1)
 1431    ;   put_attr(A,
 1432                 guard_entailment,
 1433                 v(8192,
 1434                   [],
 1435                   [],
 1436                   [],
 1437                   [],
 1438                   [],
 1439                   [],
 1440                   [],
 1441                   [],
 1442                   [],
 1443                   [],
 1444                   [],
 1445                   [],
 1446                   [],
 1447                   [C],
 1448                   [],
 1449                   [],
 1450                   [],
 1451                   [],
 1452                   [],
 1453                   [],
 1454                   []))
 1455    ),
 1456    'attach_known/1_1_$special_\\+/1___1'(B, C).
 1457'detach_known/1_1_$special_\\+/1___1'([], _).
 1458'detach_known/1_1_$special_\\+/1___1'([A|B], C) :-
 1459    (   get_attr(A, guard_entailment, D)
 1460    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1461        (   E/\8192=:=8192
 1462        ->  'chr sbag_del_element'(S, C, A1),
 1463            (   A1==[]
 1464            ->  B1 is E/\ -8193,
 1465                (   B1==0
 1466                ->  del_attr(A, guard_entailment)
 1467                ;   put_attr(A,
 1468                             guard_entailment,
 1469                             v(B1,
 1470                               F,
 1471                               G,
 1472                               H,
 1473                               I,
 1474                               J,
 1475                               K,
 1476                               L,
 1477                               M,
 1478                               N,
 1479                               O,
 1480                               P,
 1481                               Q,
 1482                               R,
 1483                               [],
 1484                               T,
 1485                               U,
 1486                               V,
 1487                               W,
 1488                               X,
 1489                               Y,
 1490                               Z))
 1491                )
 1492            ;   put_attr(A,
 1493                         guard_entailment,
 1494                         v(E,
 1495                           F,
 1496                           G,
 1497                           H,
 1498                           I,
 1499                           J,
 1500                           K,
 1501                           L,
 1502                           M,
 1503                           N,
 1504                           O,
 1505                           P,
 1506                           Q,
 1507                           R,
 1508                           A1,
 1509                           T,
 1510                           U,
 1511                           V,
 1512                           W,
 1513                           X,
 1514                           Y,
 1515                           Z))
 1516            )
 1517        ;   true
 1518        )
 1519    ;   true
 1520    ),
 1521    'detach_known/1_1_$special_\\+/1___1'(B, C).
 1522'attach_known/1_1_$special_functor/3___3'([], _).
 1523'attach_known/1_1_$special_functor/3___3'([A|B], C) :-
 1524    (   get_attr(A, guard_entailment, D)
 1525    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1526        (   E/\16384=:=16384
 1527        ->  A1=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, [C|T], U, V, W, X, Y, Z)
 1528        ;   B1 is E\/16384,
 1529            A1=v(B1, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, [C], U, V, W, X, Y, Z)
 1530        ),
 1531        put_attr(A, guard_entailment, A1)
 1532    ;   put_attr(A,
 1533                 guard_entailment,
 1534                 v(16384,
 1535                   [],
 1536                   [],
 1537                   [],
 1538                   [],
 1539                   [],
 1540                   [],
 1541                   [],
 1542                   [],
 1543                   [],
 1544                   [],
 1545                   [],
 1546                   [],
 1547                   [],
 1548                   [],
 1549                   [C],
 1550                   [],
 1551                   [],
 1552                   [],
 1553                   [],
 1554                   [],
 1555                   []))
 1556    ),
 1557    'attach_known/1_1_$special_functor/3___3'(B, C).
 1558'detach_known/1_1_$special_functor/3___3'([], _).
 1559'detach_known/1_1_$special_functor/3___3'([A|B], C) :-
 1560    (   get_attr(A, guard_entailment, D)
 1561    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1562        (   E/\16384=:=16384
 1563        ->  'chr sbag_del_element'(T, C, A1),
 1564            (   A1==[]
 1565            ->  B1 is E/\ -16385,
 1566                (   B1==0
 1567                ->  del_attr(A, guard_entailment)
 1568                ;   put_attr(A,
 1569                             guard_entailment,
 1570                             v(B1,
 1571                               F,
 1572                               G,
 1573                               H,
 1574                               I,
 1575                               J,
 1576                               K,
 1577                               L,
 1578                               M,
 1579                               N,
 1580                               O,
 1581                               P,
 1582                               Q,
 1583                               R,
 1584                               S,
 1585                               [],
 1586                               U,
 1587                               V,
 1588                               W,
 1589                               X,
 1590                               Y,
 1591                               Z))
 1592                )
 1593            ;   put_attr(A,
 1594                         guard_entailment,
 1595                         v(E,
 1596                           F,
 1597                           G,
 1598                           H,
 1599                           I,
 1600                           J,
 1601                           K,
 1602                           L,
 1603                           M,
 1604                           N,
 1605                           O,
 1606                           P,
 1607                           Q,
 1608                           R,
 1609                           S,
 1610                           A1,
 1611                           U,
 1612                           V,
 1613                           W,
 1614                           X,
 1615                           Y,
 1616                           Z))
 1617            )
 1618        ;   true
 1619        )
 1620    ;   true
 1621    ),
 1622    'detach_known/1_1_$special_functor/3___3'(B, C).
 1623'attach_known/1_1_$special_\\=/2___2'([], _).
 1624'attach_known/1_1_$special_\\=/2___2'([A|B], C) :-
 1625    (   get_attr(A, guard_entailment, D)
 1626    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1627        (   E/\32768=:=32768
 1628        ->  A1=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, [C|U], V, W, X, Y, Z)
 1629        ;   B1 is E\/32768,
 1630            A1=v(B1, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, [C], V, W, X, Y, Z)
 1631        ),
 1632        put_attr(A, guard_entailment, A1)
 1633    ;   put_attr(A,
 1634                 guard_entailment,
 1635                 v(32768,
 1636                   [],
 1637                   [],
 1638                   [],
 1639                   [],
 1640                   [],
 1641                   [],
 1642                   [],
 1643                   [],
 1644                   [],
 1645                   [],
 1646                   [],
 1647                   [],
 1648                   [],
 1649                   [],
 1650                   [],
 1651                   [C],
 1652                   [],
 1653                   [],
 1654                   [],
 1655                   [],
 1656                   []))
 1657    ),
 1658    'attach_known/1_1_$special_\\=/2___2'(B, C).
 1659'detach_known/1_1_$special_\\=/2___2'([], _).
 1660'detach_known/1_1_$special_\\=/2___2'([A|B], C) :-
 1661    (   get_attr(A, guard_entailment, D)
 1662    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1663        (   E/\32768=:=32768
 1664        ->  'chr sbag_del_element'(U, C, A1),
 1665            (   A1==[]
 1666            ->  B1 is E/\ -32769,
 1667                (   B1==0
 1668                ->  del_attr(A, guard_entailment)
 1669                ;   put_attr(A,
 1670                             guard_entailment,
 1671                             v(B1,
 1672                               F,
 1673                               G,
 1674                               H,
 1675                               I,
 1676                               J,
 1677                               K,
 1678                               L,
 1679                               M,
 1680                               N,
 1681                               O,
 1682                               P,
 1683                               Q,
 1684                               R,
 1685                               S,
 1686                               T,
 1687                               [],
 1688                               V,
 1689                               W,
 1690                               X,
 1691                               Y,
 1692                               Z))
 1693                )
 1694            ;   put_attr(A,
 1695                         guard_entailment,
 1696                         v(E,
 1697                           F,
 1698                           G,
 1699                           H,
 1700                           I,
 1701                           J,
 1702                           K,
 1703                           L,
 1704                           M,
 1705                           N,
 1706                           O,
 1707                           P,
 1708                           Q,
 1709                           R,
 1710                           S,
 1711                           T,
 1712                           A1,
 1713                           V,
 1714                           W,
 1715                           X,
 1716                           Y,
 1717                           Z))
 1718            )
 1719        ;   true
 1720        )
 1721    ;   true
 1722    ),
 1723    'detach_known/1_1_$special_\\=/2___2'(B, C).
 1724'attach_known/1_1_$special_=/2___2'([], _).
 1725'attach_known/1_1_$special_=/2___2'([A|B], C) :-
 1726    (   get_attr(A, guard_entailment, D)
 1727    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1728        (   E/\65536=:=65536
 1729        ->  A1=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, [C|V], W, X, Y, Z)
 1730        ;   B1 is E\/65536,
 1731            A1=v(B1, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, [C], W, X, Y, Z)
 1732        ),
 1733        put_attr(A, guard_entailment, A1)
 1734    ;   put_attr(A,
 1735                 guard_entailment,
 1736                 v(65536,
 1737                   [],
 1738                   [],
 1739                   [],
 1740                   [],
 1741                   [],
 1742                   [],
 1743                   [],
 1744                   [],
 1745                   [],
 1746                   [],
 1747                   [],
 1748                   [],
 1749                   [],
 1750                   [],
 1751                   [],
 1752                   [],
 1753                   [C],
 1754                   [],
 1755                   [],
 1756                   [],
 1757                   []))
 1758    ),
 1759    'attach_known/1_1_$special_=/2___2'(B, C).
 1760'detach_known/1_1_$special_=/2___2'([], _).
 1761'detach_known/1_1_$special_=/2___2'([A|B], C) :-
 1762    (   get_attr(A, guard_entailment, D)
 1763    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1764        (   E/\65536=:=65536
 1765        ->  'chr sbag_del_element'(V, C, A1),
 1766            (   A1==[]
 1767            ->  B1 is E/\ -65537,
 1768                (   B1==0
 1769                ->  del_attr(A, guard_entailment)
 1770                ;   put_attr(A,
 1771                             guard_entailment,
 1772                             v(B1,
 1773                               F,
 1774                               G,
 1775                               H,
 1776                               I,
 1777                               J,
 1778                               K,
 1779                               L,
 1780                               M,
 1781                               N,
 1782                               O,
 1783                               P,
 1784                               Q,
 1785                               R,
 1786                               S,
 1787                               T,
 1788                               U,
 1789                               [],
 1790                               W,
 1791                               X,
 1792                               Y,
 1793                               Z))
 1794                )
 1795            ;   put_attr(A,
 1796                         guard_entailment,
 1797                         v(E,
 1798                           F,
 1799                           G,
 1800                           H,
 1801                           I,
 1802                           J,
 1803                           K,
 1804                           L,
 1805                           M,
 1806                           N,
 1807                           O,
 1808                           P,
 1809                           Q,
 1810                           R,
 1811                           S,
 1812                           T,
 1813                           U,
 1814                           A1,
 1815                           W,
 1816                           X,
 1817                           Y,
 1818                           Z))
 1819            )
 1820        ;   true
 1821        )
 1822    ;   true
 1823    ),
 1824    'detach_known/1_1_$special_=/2___2'(B, C).
 1825'attach_known/1_1_$special_\\==/2___2'([], _).
 1826'attach_known/1_1_$special_\\==/2___2'([A|B], C) :-
 1827    (   get_attr(A, guard_entailment, D)
 1828    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1829        (   E/\131072=:=131072
 1830        ->  A1=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, [C|W], X, Y, Z)
 1831        ;   B1 is E\/131072,
 1832            A1=v(B1, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, [C], X, Y, Z)
 1833        ),
 1834        put_attr(A, guard_entailment, A1)
 1835    ;   put_attr(A,
 1836                 guard_entailment,
 1837                 v(131072,
 1838                   [],
 1839                   [],
 1840                   [],
 1841                   [],
 1842                   [],
 1843                   [],
 1844                   [],
 1845                   [],
 1846                   [],
 1847                   [],
 1848                   [],
 1849                   [],
 1850                   [],
 1851                   [],
 1852                   [],
 1853                   [],
 1854                   [],
 1855                   [C],
 1856                   [],
 1857                   [],
 1858                   []))
 1859    ),
 1860    'attach_known/1_1_$special_\\==/2___2'(B, C).
 1861'detach_known/1_1_$special_\\==/2___2'([], _).
 1862'detach_known/1_1_$special_\\==/2___2'([A|B], C) :-
 1863    (   get_attr(A, guard_entailment, D)
 1864    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1865        (   E/\131072=:=131072
 1866        ->  'chr sbag_del_element'(W, C, A1),
 1867            (   A1==[]
 1868            ->  B1 is E/\ -131073,
 1869                (   B1==0
 1870                ->  del_attr(A, guard_entailment)
 1871                ;   put_attr(A,
 1872                             guard_entailment,
 1873                             v(B1,
 1874                               F,
 1875                               G,
 1876                               H,
 1877                               I,
 1878                               J,
 1879                               K,
 1880                               L,
 1881                               M,
 1882                               N,
 1883                               O,
 1884                               P,
 1885                               Q,
 1886                               R,
 1887                               S,
 1888                               T,
 1889                               U,
 1890                               V,
 1891                               [],
 1892                               X,
 1893                               Y,
 1894                               Z))
 1895                )
 1896            ;   put_attr(A,
 1897                         guard_entailment,
 1898                         v(E,
 1899                           F,
 1900                           G,
 1901                           H,
 1902                           I,
 1903                           J,
 1904                           K,
 1905                           L,
 1906                           M,
 1907                           N,
 1908                           O,
 1909                           P,
 1910                           Q,
 1911                           R,
 1912                           S,
 1913                           T,
 1914                           U,
 1915                           V,
 1916                           A1,
 1917                           X,
 1918                           Y,
 1919                           Z))
 1920            )
 1921        ;   true
 1922        )
 1923    ;   true
 1924    ),
 1925    'detach_known/1_1_$special_\\==/2___2'(B, C).
 1926'attach_known/1_1_$special_==/2___2'([], _).
 1927'attach_known/1_1_$special_==/2___2'([A|B], C) :-
 1928    (   get_attr(A, guard_entailment, D)
 1929    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1930        (   E/\262144=:=262144
 1931        ->  A1=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, [C|X], Y, Z)
 1932        ;   B1 is E\/262144,
 1933            A1=v(B1, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, [C], Y, Z)
 1934        ),
 1935        put_attr(A, guard_entailment, A1)
 1936    ;   put_attr(A,
 1937                 guard_entailment,
 1938                 v(262144,
 1939                   [],
 1940                   [],
 1941                   [],
 1942                   [],
 1943                   [],
 1944                   [],
 1945                   [],
 1946                   [],
 1947                   [],
 1948                   [],
 1949                   [],
 1950                   [],
 1951                   [],
 1952                   [],
 1953                   [],
 1954                   [],
 1955                   [],
 1956                   [],
 1957                   [C],
 1958                   [],
 1959                   []))
 1960    ),
 1961    'attach_known/1_1_$special_==/2___2'(B, C).
 1962'detach_known/1_1_$special_==/2___2'([], _).
 1963'detach_known/1_1_$special_==/2___2'([A|B], C) :-
 1964    (   get_attr(A, guard_entailment, D)
 1965    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 1966        (   E/\262144=:=262144
 1967        ->  'chr sbag_del_element'(X, C, A1),
 1968            (   A1==[]
 1969            ->  B1 is E/\ -262145,
 1970                (   B1==0
 1971                ->  del_attr(A, guard_entailment)
 1972                ;   put_attr(A,
 1973                             guard_entailment,
 1974                             v(B1,
 1975                               F,
 1976                               G,
 1977                               H,
 1978                               I,
 1979                               J,
 1980                               K,
 1981                               L,
 1982                               M,
 1983                               N,
 1984                               O,
 1985                               P,
 1986                               Q,
 1987                               R,
 1988                               S,
 1989                               T,
 1990                               U,
 1991                               V,
 1992                               W,
 1993                               [],
 1994                               Y,
 1995                               Z))
 1996                )
 1997            ;   put_attr(A,
 1998                         guard_entailment,
 1999                         v(E,
 2000                           F,
 2001                           G,
 2002                           H,
 2003                           I,
 2004                           J,
 2005                           K,
 2006                           L,
 2007                           M,
 2008                           N,
 2009                           O,
 2010                           P,
 2011                           Q,
 2012                           R,
 2013                           S,
 2014                           T,
 2015                           U,
 2016                           V,
 2017                           W,
 2018                           A1,
 2019                           Y,
 2020                           Z))
 2021            )
 2022        ;   true
 2023        )
 2024    ;   true
 2025    ),
 2026    'detach_known/1_1_$special_==/2___2'(B, C).
 2027'attach_known/1_1_$special_=</2___2'([], _).
 2028'attach_known/1_1_$special_=</2___2'([A|B], C) :-
 2029    (   get_attr(A, guard_entailment, D)
 2030    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 2031        (   E/\524288=:=524288
 2032        ->  A1=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, [C|Y], Z)
 2033        ;   B1 is E\/524288,
 2034            A1=v(B1, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, [C], Z)
 2035        ),
 2036        put_attr(A, guard_entailment, A1)
 2037    ;   put_attr(A,
 2038                 guard_entailment,
 2039                 v(524288,
 2040                   [],
 2041                   [],
 2042                   [],
 2043                   [],
 2044                   [],
 2045                   [],
 2046                   [],
 2047                   [],
 2048                   [],
 2049                   [],
 2050                   [],
 2051                   [],
 2052                   [],
 2053                   [],
 2054                   [],
 2055                   [],
 2056                   [],
 2057                   [],
 2058                   [],
 2059                   [C],
 2060                   []))
 2061    ),
 2062    'attach_known/1_1_$special_=</2___2'(B, C).
 2063'detach_known/1_1_$special_=</2___2'([], _).
 2064'detach_known/1_1_$special_=</2___2'([A|B], C) :-
 2065    (   get_attr(A, guard_entailment, D)
 2066    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 2067        (   E/\524288=:=524288
 2068        ->  'chr sbag_del_element'(Y, C, A1),
 2069            (   A1==[]
 2070            ->  B1 is E/\ -524289,
 2071                (   B1==0
 2072                ->  del_attr(A, guard_entailment)
 2073                ;   put_attr(A,
 2074                             guard_entailment,
 2075                             v(B1,
 2076                               F,
 2077                               G,
 2078                               H,
 2079                               I,
 2080                               J,
 2081                               K,
 2082                               L,
 2083                               M,
 2084                               N,
 2085                               O,
 2086                               P,
 2087                               Q,
 2088                               R,
 2089                               S,
 2090                               T,
 2091                               U,
 2092                               V,
 2093                               W,
 2094                               X,
 2095                               [],
 2096                               Z))
 2097                )
 2098            ;   put_attr(A,
 2099                         guard_entailment,
 2100                         v(E,
 2101                           F,
 2102                           G,
 2103                           H,
 2104                           I,
 2105                           J,
 2106                           K,
 2107                           L,
 2108                           M,
 2109                           N,
 2110                           O,
 2111                           P,
 2112                           Q,
 2113                           R,
 2114                           S,
 2115                           T,
 2116                           U,
 2117                           V,
 2118                           W,
 2119                           X,
 2120                           A1,
 2121                           Z))
 2122            )
 2123        ;   true
 2124        )
 2125    ;   true
 2126    ),
 2127    'detach_known/1_1_$special_=</2___2'(B, C).
 2128'attach_known/1_1_$special_=:=/2___2'([], _).
 2129'attach_known/1_1_$special_=:=/2___2'([A|B], C) :-
 2130    (   get_attr(A, guard_entailment, D)
 2131    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 2132        (   E/\1048576=:=1048576
 2133        ->  A1=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, [C|Z])
 2134        ;   B1 is E\/1048576,
 2135            A1=v(B1, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, [C])
 2136        ),
 2137        put_attr(A, guard_entailment, A1)
 2138    ;   put_attr(A,
 2139                 guard_entailment,
 2140                 v(1048576,
 2141                   [],
 2142                   [],
 2143                   [],
 2144                   [],
 2145                   [],
 2146                   [],
 2147                   [],
 2148                   [],
 2149                   [],
 2150                   [],
 2151                   [],
 2152                   [],
 2153                   [],
 2154                   [],
 2155                   [],
 2156                   [],
 2157                   [],
 2158                   [],
 2159                   [],
 2160                   [],
 2161                   [C]))
 2162    ),
 2163    'attach_known/1_1_$special_=:=/2___2'(B, C).
 2164'detach_known/1_1_$special_=:=/2___2'([], _).
 2165'detach_known/1_1_$special_=:=/2___2'([A|B], C) :-
 2166    (   get_attr(A, guard_entailment, D)
 2167    ->  D=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 2168        (   E/\1048576=:=1048576
 2169        ->  'chr sbag_del_element'(Z, C, A1),
 2170            (   A1==[]
 2171            ->  B1 is E/\ -1048577,
 2172                (   B1==0
 2173                ->  del_attr(A, guard_entailment)
 2174                ;   put_attr(A,
 2175                             guard_entailment,
 2176                             v(B1,
 2177                               F,
 2178                               G,
 2179                               H,
 2180                               I,
 2181                               J,
 2182                               K,
 2183                               L,
 2184                               M,
 2185                               N,
 2186                               O,
 2187                               P,
 2188                               Q,
 2189                               R,
 2190                               S,
 2191                               T,
 2192                               U,
 2193                               V,
 2194                               W,
 2195                               X,
 2196                               Y,
 2197                               []))
 2198                )
 2199            ;   put_attr(A,
 2200                         guard_entailment,
 2201                         v(E,
 2202                           F,
 2203                           G,
 2204                           H,
 2205                           I,
 2206                           J,
 2207                           K,
 2208                           L,
 2209                           M,
 2210                           N,
 2211                           O,
 2212                           P,
 2213                           Q,
 2214                           R,
 2215                           S,
 2216                           T,
 2217                           U,
 2218                           V,
 2219                           W,
 2220                           X,
 2221                           Y,
 2222                           A1))
 2223            )
 2224        ;   true
 2225        )
 2226    ;   true
 2227    ),
 2228    'detach_known/1_1_$special_=:=/2___2'(B, C).
 2229attach_increment([], _).
 2230attach_increment([A|B], C) :-
 2231    'chr not_locked'(A),
 2232    (   get_attr(A, guard_entailment, D)
 2233    ->  C=v(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z),
 2234        D=v(A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, L1, M1, N1, O1, P1, Q1, R1, S1, T1, U1, V1),
 2235        ( sort(B1, W1),
 2236          'chr merge_attributes'(F, W1, X1),
 2237          sort(C1, Y1),
 2238          'chr merge_attributes'(G, Y1, Z1),
 2239          sort(D1, A2),
 2240          'chr merge_attributes'(H, A2, B2),
 2241          sort(E1, C2),
 2242          'chr merge_attributes'(I, C2, D2),
 2243          sort(F1, E2),
 2244          'chr merge_attributes'(J, E2, F2),
 2245          sort(G1, G2),
 2246          'chr merge_attributes'(K, G2, H2),
 2247          sort(H1, I2),
 2248          'chr merge_attributes'(L, I2, J2),
 2249          sort(I1, K2),
 2250          'chr merge_attributes'(M, K2, L2),
 2251          sort(J1, M2),
 2252          'chr merge_attributes'(N, M2, N2),
 2253          sort(K1, O2),
 2254          'chr merge_attributes'(O, O2, P2),
 2255          sort(L1, Q2),
 2256          'chr merge_attributes'(P, Q2, R2),
 2257          sort(M1, S2),
 2258          'chr merge_attributes'(Q, S2, T2),
 2259          sort(N1, U2),
 2260          'chr merge_attributes'(R, U2, V2),
 2261          sort(O1, W2),
 2262          'chr merge_attributes'(S, W2, X2),
 2263          sort(P1, Y2),
 2264          'chr merge_attributes'(T, Y2, Z2),
 2265          sort(Q1, A3),
 2266          'chr merge_attributes'(U, A3, B3),
 2267          sort(R1, C3),
 2268          'chr merge_attributes'(V, C3, D3),
 2269          sort(S1, E3),
 2270          'chr merge_attributes'(W, E3, F3),
 2271          sort(T1, G3),
 2272          'chr merge_attributes'(X, G3, H3),
 2273          sort(U1, I3),
 2274          'chr merge_attributes'(Y, I3, J3),
 2275          sort(V1, K3),
 2276          'chr merge_attributes'(Z, K3, L3)
 2277        ),
 2278        M3 is E\/A1,
 2279        put_attr(A,
 2280                 guard_entailment,
 2281                 v(M3,
 2282                   X1,
 2283                   Z1,
 2284                   B2,
 2285                   D2,
 2286                   F2,
 2287                   H2,
 2288                   J2,
 2289                   L2,
 2290                   N2,
 2291                   P2,
 2292                   R2,
 2293                   T2,
 2294                   V2,
 2295                   X2,
 2296                   Z2,
 2297                   B3,
 2298                   D3,
 2299                   F3,
 2300                   H3,
 2301                   J3,
 2302                   L3))
 2303    ;   put_attr(A, guard_entailment, C)
 2304    ),
 2305    attach_increment(B, C).
 2306attribute_goals(_, A, A).
 2307attr_unify_hook(v(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V), W) :-
 2308    sort(B, X),
 2309    sort(C, Y),
 2310    sort(D, Z),
 2311    sort(E, A1),
 2312    sort(F, B1),
 2313    sort(G, C1),
 2314    sort(H, D1),
 2315    sort(I, E1),
 2316    sort(J, F1),
 2317    sort(K, G1),
 2318    sort(L, H1),
 2319    sort(M, I1),
 2320    sort(N, J1),
 2321    sort(O, K1),
 2322    sort(P, L1),
 2323    sort(Q, M1),
 2324    sort(R, N1),
 2325    sort(S, O1),
 2326    sort(T, P1),
 2327    sort(U, Q1),
 2328    sort(V, R1),
 2329    (   var(W)
 2330    ->  (   get_attr(W, guard_entailment, S1)
 2331        ->  S1=v(T1, U1, V1, W1, X1, Y1, Z1, A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, L2, M2, N2, O2),
 2332            ( sort(U1, P2),
 2333              'chr merge_attributes'(X, P2, Q2),
 2334              sort(V1, R2),
 2335              'chr merge_attributes'(Y, R2, S2),
 2336              sort(W1, T2),
 2337              'chr merge_attributes'(Z, T2, U2),
 2338              sort(X1, V2),
 2339              'chr merge_attributes'(A1, V2, W2),
 2340              sort(Y1, X2),
 2341              'chr merge_attributes'(B1, X2, Y2),
 2342              sort(Z1, Z2),
 2343              'chr merge_attributes'(C1, Z2, A3),
 2344              sort(A2, B3),
 2345              'chr merge_attributes'(D1, B3, C3),
 2346              sort(B2, D3),
 2347              'chr merge_attributes'(E1, D3, E3),
 2348              sort(C2, F3),
 2349              'chr merge_attributes'(F1, F3, G3),
 2350              sort(D2, H3),
 2351              'chr merge_attributes'(G1, H3, I3),
 2352              sort(E2, J3),
 2353              'chr merge_attributes'(H1, J3, K3),
 2354              sort(F2, L3),
 2355              'chr merge_attributes'(I1, L3, M3),
 2356              sort(G2, N3),
 2357              'chr merge_attributes'(J1, N3, O3),
 2358              sort(H2, P3),
 2359              'chr merge_attributes'(K1, P3, Q3),
 2360              sort(I2, R3),
 2361              'chr merge_attributes'(L1, R3, S3),
 2362              sort(J2, T3),
 2363              'chr merge_attributes'(M1, T3, U3),
 2364              sort(K2, V3),
 2365              'chr merge_attributes'(N1, V3, W3),
 2366              sort(L2, X3),
 2367              'chr merge_attributes'(O1, X3, Y3),
 2368              sort(M2, Z3),
 2369              'chr merge_attributes'(P1, Z3, A4),
 2370              sort(N2, B4),
 2371              'chr merge_attributes'(Q1, B4, C4),
 2372              sort(O2, D4),
 2373              'chr merge_attributes'(R1, D4, E4)
 2374            ),
 2375            F4 is A\/T1,
 2376            put_attr(W,
 2377                     guard_entailment,
 2378                     v(F4,
 2379                       Q2,
 2380                       S2,
 2381                       U2,
 2382                       W2,
 2383                       Y2,
 2384                       A3,
 2385                       C3,
 2386                       E3,
 2387                       G3,
 2388                       I3,
 2389                       K3,
 2390                       M3,
 2391                       O3,
 2392                       Q3,
 2393                       S3,
 2394                       U3,
 2395                       W3,
 2396                       Y3,
 2397                       A4,
 2398                       C4,
 2399                       E4)),
 2400            '$run_suspensions_variables___1'(X),
 2401            '$run_suspensions_known/1_1_$default___1'(Y),
 2402            '$run_suspensions_known/1_1_$special_;/2___2'(U2),
 2403            '$run_suspensions_known/1_1_$special_nonvar/1___1'(A1),
 2404            '$run_suspensions_known/1_1_$special_var/1___1'(B1),
 2405            '$run_suspensions_known/1_1_$special_atom/1___1'(C1),
 2406            '$run_suspensions_known/1_1_$special_atomic/1___1'(D1),
 2407            '$run_suspensions_known/1_1_$special_compound/1___1'(E1),
 2408            '$run_suspensions_known/1_1_$special_ground/1___1'(F1),
 2409            '$run_suspensions_known/1_1_$special_integer/1___1'(I3),
 2410            '$run_suspensions_known/1_1_$special_float/1___1'(K3),
 2411            '$run_suspensions_known/1_1_$special_number/1___1'(M3),
 2412            '$run_suspensions_known/1_1_$special_=\\=/2___2'(O3),
 2413            '$run_suspensions_known/1_1_$special_\\+/1___1'(Q3),
 2414            '$run_suspensions_known/1_1_$special_functor/3___3'(S3),
 2415            '$run_suspensions_known/1_1_$special_\\=/2___2'(U3),
 2416            '$run_suspensions_known/1_1_$special_=/2___2'(W3),
 2417            '$run_suspensions_known/1_1_$special_\\==/2___2'(Y3),
 2418            '$run_suspensions_known/1_1_$special_==/2___2'(A4),
 2419            '$run_suspensions_known/1_1_$special_=</2___2'(C4),
 2420            '$run_suspensions_known/1_1_$special_=:=/2___2'(E4)
 2421        ;   put_attr(W,
 2422                     guard_entailment,
 2423                     v(A,
 2424                       X,
 2425                       Y,
 2426                       Z,
 2427                       A1,
 2428                       B1,
 2429                       C1,
 2430                       D1,
 2431                       E1,
 2432                       F1,
 2433                       G1,
 2434                       H1,
 2435                       I1,
 2436                       J1,
 2437                       K1,
 2438                       L1,
 2439                       M1,
 2440                       N1,
 2441                       O1,
 2442                       P1,
 2443                       Q1,
 2444                       R1)),
 2445            '$run_suspensions_variables___1'(X),
 2446            '$run_suspensions_known/1_1_$default___1'(Y),
 2447            '$run_suspensions_known/1_1_$special_;/2___2'(Z),
 2448            '$run_suspensions_known/1_1_$special_nonvar/1___1'(A1),
 2449            '$run_suspensions_known/1_1_$special_var/1___1'(B1),
 2450            '$run_suspensions_known/1_1_$special_atom/1___1'(C1),
 2451            '$run_suspensions_known/1_1_$special_atomic/1___1'(D1),
 2452            '$run_suspensions_known/1_1_$special_compound/1___1'(E1),
 2453            '$run_suspensions_known/1_1_$special_ground/1___1'(F1),
 2454            '$run_suspensions_known/1_1_$special_integer/1___1'(G1),
 2455            '$run_suspensions_known/1_1_$special_float/1___1'(H1),
 2456            '$run_suspensions_known/1_1_$special_number/1___1'(I1),
 2457            '$run_suspensions_known/1_1_$special_=\\=/2___2'(J1),
 2458            '$run_suspensions_known/1_1_$special_\\+/1___1'(K1),
 2459            '$run_suspensions_known/1_1_$special_functor/3___3'(L1),
 2460            '$run_suspensions_known/1_1_$special_\\=/2___2'(M1),
 2461            '$run_suspensions_known/1_1_$special_=/2___2'(N1),
 2462            '$run_suspensions_known/1_1_$special_\\==/2___2'(O1),
 2463            '$run_suspensions_known/1_1_$special_==/2___2'(P1),
 2464            '$run_suspensions_known/1_1_$special_=</2___2'(Q1),
 2465            '$run_suspensions_known/1_1_$special_=:=/2___2'(R1)
 2466        )
 2467    ;   (   compound(W)
 2468        ->  term_variables(W, G4),
 2469            attach_increment(G4,
 2470                             v(A,
 2471                               X,
 2472                               Y,
 2473                               Z,
 2474                               A1,
 2475                               B1,
 2476                               C1,
 2477                               D1,
 2478                               E1,
 2479                               F1,
 2480                               G1,
 2481                               H1,
 2482                               I1,
 2483                               J1,
 2484                               K1,
 2485                               L1,
 2486                               M1,
 2487                               N1,
 2488                               O1,
 2489                               P1,
 2490                               Q1,
 2491                               R1))
 2492        ;   true
 2493        ),
 2494        '$run_suspensions_variables___1'(X),
 2495        '$run_suspensions_known/1_1_$default___1'(Y),
 2496        '$run_suspensions_known/1_1_$special_;/2___2'(Z),
 2497        '$run_suspensions_known/1_1_$special_nonvar/1___1'(A1),
 2498        '$run_suspensions_known/1_1_$special_var/1___1'(B1),
 2499        '$run_suspensions_known/1_1_$special_atom/1___1'(C1),
 2500        '$run_suspensions_known/1_1_$special_atomic/1___1'(D1),
 2501        '$run_suspensions_known/1_1_$special_compound/1___1'(E1),
 2502        '$run_suspensions_known/1_1_$special_ground/1___1'(F1),
 2503        '$run_suspensions_known/1_1_$special_integer/1___1'(G1),
 2504        '$run_suspensions_known/1_1_$special_float/1___1'(H1),
 2505        '$run_suspensions_known/1_1_$special_number/1___1'(I1),
 2506        '$run_suspensions_known/1_1_$special_=\\=/2___2'(J1),
 2507        '$run_suspensions_known/1_1_$special_\\+/1___1'(K1),
 2508        '$run_suspensions_known/1_1_$special_functor/3___3'(L1),
 2509        '$run_suspensions_known/1_1_$special_\\=/2___2'(M1),
 2510        '$run_suspensions_known/1_1_$special_=/2___2'(N1),
 2511        '$run_suspensions_known/1_1_$special_\\==/2___2'(O1),
 2512        '$run_suspensions_known/1_1_$special_==/2___2'(P1),
 2513        '$run_suspensions_known/1_1_$special_=</2___2'(Q1),
 2514        '$run_suspensions_known/1_1_$special_=:=/2___2'(R1)
 2515    ).
 2516'$novel_production'(A, B) :-
 2517    arg(3, A, C),
 2518    (   hprolog:get_ds(B, C, _)
 2519    ->  fail
 2520    ;   true
 2521    ).
 2522'$extend_history'(A, B) :-
 2523    arg(3, A, C),
 2524    hprolog:put_ds(B, C, x, D),
 2525    setarg(3, A, D).
 2526'$run_suspensions_variables___1'([]).
 2527'$run_suspensions_variables___1'([A|B]) :-
 2528    A=suspension(_, C, _, D),
 2529    (   C==active
 2530    ->  setarg(2, A, triggered),
 2531        variables___1__0(D, A),
 2532        (   C==triggered
 2533        ->  setarg(2, A, active)
 2534        ;   true
 2535        )
 2536    ;   true
 2537    ),
 2538    '$run_suspensions_variables___1'(B).
 2539'$run_suspensions_known/1_1_$default___1'([]).
 2540'$run_suspensions_known/1_1_$default___1'([A|B]) :-
 2541    A=suspension(_, C, D, _, E),
 2542    (   C==active
 2543    ->  setarg(2, A, triggered),
 2544        F is D+1,
 2545        setarg(3, A, F),
 2546        'known/1_1_$default___1__0'(E, A),
 2547        (   C==triggered
 2548        ->  setarg(2, A, active)
 2549        ;   true
 2550        )
 2551    ;   true
 2552    ),
 2553    '$run_suspensions_known/1_1_$default___1'(B).
 2554'$run_suspensions_known/1_1_$special_;/2___2'([]).
 2555'$run_suspensions_known/1_1_$special_;/2___2'([A|B]) :-
 2556    A=suspension(_, C, D, _, E, F),
 2557    (   C==active
 2558    ->  setarg(2, A, triggered),
 2559        G is D+1,
 2560        setarg(3, A, G),
 2561        'known/1_1_$special_;/2___2__0'(E, F, A),
 2562        (   C==triggered
 2563        ->  setarg(2, A, active)
 2564        ;   true
 2565        )
 2566    ;   true
 2567    ),
 2568    '$run_suspensions_known/1_1_$special_;/2___2'(B).
 2569'$run_suspensions_known/1_1_$special_nonvar/1___1'([]).
 2570'$run_suspensions_known/1_1_$special_nonvar/1___1'([A|B]) :-
 2571    A=suspension(_, C, D, _, E),
 2572    (   C==active
 2573    ->  setarg(2, A, triggered),
 2574        F is D+1,
 2575        setarg(3, A, F),
 2576        'known/1_1_$special_nonvar/1___1__0'(E, A),
 2577        (   C==triggered
 2578        ->  setarg(2, A, active)
 2579        ;   true
 2580        )
 2581    ;   true
 2582    ),
 2583    '$run_suspensions_known/1_1_$special_nonvar/1___1'(B).
 2584'$run_suspensions_known/1_1_$special_var/1___1'([]).
 2585'$run_suspensions_known/1_1_$special_var/1___1'([A|B]) :-
 2586    A=suspension(_, C, D, _, E),
 2587    (   C==active
 2588    ->  setarg(2, A, triggered),
 2589        F is D+1,
 2590        setarg(3, A, F),
 2591        'known/1_1_$special_var/1___1__0'(E, A),
 2592        (   C==triggered
 2593        ->  setarg(2, A, active)
 2594        ;   true
 2595        )
 2596    ;   true
 2597    ),
 2598    '$run_suspensions_known/1_1_$special_var/1___1'(B).
 2599'$run_suspensions_known/1_1_$special_atom/1___1'([]).
 2600'$run_suspensions_known/1_1_$special_atom/1___1'([A|B]) :-
 2601    A=suspension(_, C, _, D, _, E),
 2602    (   C==active
 2603    ->  setarg(2, A, triggered),
 2604        F is D+1,
 2605        setarg(4, A, F),
 2606        'known/1_1_$special_atom/1___1__0'(E, A),
 2607        (   C==triggered
 2608        ->  setarg(2, A, active)
 2609        ;   true
 2610        )
 2611    ;   true
 2612    ),
 2613    '$run_suspensions_known/1_1_$special_atom/1___1'(B).
 2614'$run_suspensions_known/1_1_$special_atomic/1___1'([]).
 2615'$run_suspensions_known/1_1_$special_atomic/1___1'([A|B]) :-
 2616    A=suspension(_, C, _, D, _, E),
 2617    (   C==active
 2618    ->  setarg(2, A, triggered),
 2619        F is D+1,
 2620        setarg(4, A, F),
 2621        'known/1_1_$special_atomic/1___1__0'(E, A),
 2622        (   C==triggered
 2623        ->  setarg(2, A, active)
 2624        ;   true
 2625        )
 2626    ;   true
 2627    ),
 2628    '$run_suspensions_known/1_1_$special_atomic/1___1'(B).
 2629'$run_suspensions_known/1_1_$special_compound/1___1'([]).
 2630'$run_suspensions_known/1_1_$special_compound/1___1'([A|B]) :-
 2631    A=suspension(_, C, _, D, _, E),
 2632    (   C==active
 2633    ->  setarg(2, A, triggered),
 2634        F is D+1,
 2635        setarg(4, A, F),
 2636        'known/1_1_$special_compound/1___1__0'(E, A),
 2637        (   C==triggered
 2638        ->  setarg(2, A, active)
 2639        ;   true
 2640        )
 2641    ;   true
 2642    ),
 2643    '$run_suspensions_known/1_1_$special_compound/1___1'(B).
 2644'$run_suspensions_known/1_1_$special_ground/1___1'([]).
 2645'$run_suspensions_known/1_1_$special_ground/1___1'([A|B]) :-
 2646    A=suspension(_, C, _, D, _, E),
 2647    (   C==active
 2648    ->  setarg(2, A, triggered),
 2649        F is D+1,
 2650        setarg(4, A, F),
 2651        'known/1_1_$special_ground/1___1__0'(E, A),
 2652        (   C==triggered
 2653        ->  setarg(2, A, active)
 2654        ;   true
 2655        )
 2656    ;   true
 2657    ),
 2658    '$run_suspensions_known/1_1_$special_ground/1___1'(B).
 2659'$run_suspensions_known/1_1_$special_integer/1___1'([]).
 2660'$run_suspensions_known/1_1_$special_integer/1___1'([A|B]) :-
 2661    A=suspension(_, C, _, D, _, E),
 2662    (   C==active
 2663    ->  setarg(2, A, triggered),
 2664        F is D+1,
 2665        setarg(4, A, F),
 2666        'known/1_1_$special_integer/1___1__0'(E, A),
 2667        (   C==triggered
 2668        ->  setarg(2, A, active)
 2669        ;   true
 2670        )
 2671    ;   true
 2672    ),
 2673    '$run_suspensions_known/1_1_$special_integer/1___1'(B).
 2674'$run_suspensions_known/1_1_$special_float/1___1'([]).
 2675'$run_suspensions_known/1_1_$special_float/1___1'([A|B]) :-
 2676    A=suspension(_, C, _, D, _, E),
 2677    (   C==active
 2678    ->  setarg(2, A, triggered),
 2679        F is D+1,
 2680        setarg(4, A, F),
 2681        'known/1_1_$special_float/1___1__0'(E, A),
 2682        (   C==triggered
 2683        ->  setarg(2, A, active)
 2684        ;   true
 2685        )
 2686    ;   true
 2687    ),
 2688    '$run_suspensions_known/1_1_$special_float/1___1'(B).
 2689'$run_suspensions_known/1_1_$special_number/1___1'([]).
 2690'$run_suspensions_known/1_1_$special_number/1___1'([A|B]) :-
 2691    A=suspension(_, C, _, D, _, E),
 2692    (   C==active
 2693    ->  setarg(2, A, triggered),
 2694        F is D+1,
 2695        setarg(4, A, F),
 2696        'known/1_1_$special_number/1___1__0'(E, A),
 2697        (   C==triggered
 2698        ->  setarg(2, A, active)
 2699        ;   true
 2700        )
 2701    ;   true
 2702    ),
 2703    '$run_suspensions_known/1_1_$special_number/1___1'(B).
 2704'$run_suspensions_known/1_1_$special_=\\=/2___2'([]).
 2705'$run_suspensions_known/1_1_$special_=\\=/2___2'([A|B]) :-
 2706    A=suspension(_, C, _, D, _, E, F),
 2707    (   C==active
 2708    ->  setarg(2, A, triggered),
 2709        G is D+1,
 2710        setarg(4, A, G),
 2711        'known/1_1_$special_=\\=/2___2__0'(E, F, A),
 2712        (   C==triggered
 2713        ->  setarg(2, A, active)
 2714        ;   true
 2715        )
 2716    ;   true
 2717    ),
 2718    '$run_suspensions_known/1_1_$special_=\\=/2___2'(B).
 2719'$run_suspensions_known/1_1_$special_\\+/1___1'([]).
 2720'$run_suspensions_known/1_1_$special_\\+/1___1'([A|B]) :-
 2721    A=suspension(_, C, D, _, E),
 2722    (   C==active
 2723    ->  setarg(2, A, triggered),
 2724        F is D+1,
 2725        setarg(3, A, F),
 2726        'known/1_1_$special_\\+/1___1__0'(E, A),
 2727        (   C==triggered
 2728        ->  setarg(2, A, active)
 2729        ;   true
 2730        )
 2731    ;   true
 2732    ),
 2733    '$run_suspensions_known/1_1_$special_\\+/1___1'(B).
 2734'$run_suspensions_known/1_1_$special_functor/3___3'([]).
 2735'$run_suspensions_known/1_1_$special_functor/3___3'([A|B]) :-
 2736    A=suspension(_, C, D, _, E, F, G),
 2737    (   C==active
 2738    ->  setarg(2, A, triggered),
 2739        H is D+1,
 2740        setarg(3, A, H),
 2741        'known/1_1_$special_functor/3___3__0'(E, F, G, A),
 2742        (   C==triggered
 2743        ->  setarg(2, A, active)
 2744        ;   true
 2745        )
 2746    ;   true
 2747    ),
 2748    '$run_suspensions_known/1_1_$special_functor/3___3'(B).
 2749'$run_suspensions_known/1_1_$special_\\=/2___2'([]).
 2750'$run_suspensions_known/1_1_$special_\\=/2___2'([A|B]) :-
 2751    A=suspension(_, C, _, D, _, E, F),
 2752    (   C==active
 2753    ->  setarg(2, A, triggered),
 2754        G is D+1,
 2755        setarg(4, A, G),
 2756        'known/1_1_$special_\\=/2___2__0'(E, F, A),
 2757        (   C==triggered
 2758        ->  setarg(2, A, active)
 2759        ;   true
 2760        )
 2761    ;   true
 2762    ),
 2763    '$run_suspensions_known/1_1_$special_\\=/2___2'(B).
 2764'$run_suspensions_known/1_1_$special_=/2___2'([]).
 2765'$run_suspensions_known/1_1_$special_=/2___2'([A|B]) :-
 2766    A=suspension(_, C, D, _, E, F),
 2767    (   C==active
 2768    ->  setarg(2, A, triggered),
 2769        G is D+1,
 2770        setarg(3, A, G),
 2771        'known/1_1_$special_=/2___2__0'(E, F, A),
 2772        (   C==triggered
 2773        ->  setarg(2, A, active)
 2774        ;   true
 2775        )
 2776    ;   true
 2777    ),
 2778    '$run_suspensions_known/1_1_$special_=/2___2'(B).
 2779'$run_suspensions_known/1_1_$special_\\==/2___2'([]).
 2780'$run_suspensions_known/1_1_$special_\\==/2___2'([A|B]) :-
 2781    A=suspension(_, C, _, D, _, E, F),
 2782    (   C==active
 2783    ->  setarg(2, A, triggered),
 2784        G is D+1,
 2785        setarg(4, A, G),
 2786        'known/1_1_$special_\\==/2___2__0'(E, F, A),
 2787        (   C==triggered
 2788        ->  setarg(2, A, active)
 2789        ;   true
 2790        )
 2791    ;   true
 2792    ),
 2793    '$run_suspensions_known/1_1_$special_\\==/2___2'(B).
 2794'$run_suspensions_known/1_1_$special_==/2___2'([]).
 2795'$run_suspensions_known/1_1_$special_==/2___2'([A|B]) :-
 2796    A=suspension(_, C, _, D, _, E, F),
 2797    (   C==active
 2798    ->  setarg(2, A, triggered),
 2799        G is D+1,
 2800        setarg(4, A, G),
 2801        'known/1_1_$special_==/2___2__0'(E, F, A),
 2802        (   C==triggered
 2803        ->  setarg(2, A, active)
 2804        ;   true
 2805        )
 2806    ;   true
 2807    ),
 2808    '$run_suspensions_known/1_1_$special_==/2___2'(B).
 2809'$run_suspensions_known/1_1_$special_=</2___2'([]).
 2810'$run_suspensions_known/1_1_$special_=</2___2'([A|B]) :-
 2811    A=suspension(_, C, _, D, _, E, F),
 2812    (   C==active
 2813    ->  setarg(2, A, triggered),
 2814        G is D+1,
 2815        setarg(4, A, G),
 2816        'known/1_1_$special_=</2___2__0'(E, F, A),
 2817        (   C==triggered
 2818        ->  setarg(2, A, active)
 2819        ;   true
 2820        )
 2821    ;   true
 2822    ),
 2823    '$run_suspensions_known/1_1_$special_=</2___2'(B).
 2824'$run_suspensions_known/1_1_$special_=:=/2___2'([]).
 2825'$run_suspensions_known/1_1_$special_=:=/2___2'([A|B]) :-
 2826    A=suspension(_, C, _, D, _, E, F),
 2827    (   C==active
 2828    ->  setarg(2, A, triggered),
 2829        G is D+1,
 2830        setarg(4, A, G),
 2831        'known/1_1_$special_=:=/2___2__0'(E, F, A),
 2832        (   C==triggered
 2833        ->  setarg(2, A, active)
 2834        ;   true
 2835        )
 2836    ;   true
 2837    ),
 2838    '$run_suspensions_known/1_1_$special_=:=/2___2'(B).
 2839'$enumerate_constraints'(A) :-
 2840    (   nonvar(A)
 2841    ->  functor(A, B, _),
 2842        '$enumerate_constraints'(B, A)
 2843    ;   '$enumerate_constraints'(_, A)
 2844    ).
 2845'$enumerate_constraints'(variables, A) :-
 2846    nb_current('$chr_store_global_list_guard_entailment____variables___1',
 2847               B),
 2848    member(C, B),
 2849    C=suspension(_, _, _, D),
 2850    A=variables(D).
 2851'$enumerate_constraints'('known/1_1_$default', A) :-
 2852    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 2853               B),
 2854    member(C, B),
 2855    C=suspension(_, _, _, _, D),
 2856    A='known/1_1_$default'(D).
 2857'$enumerate_constraints'('known/1_1_$special_;/2', A) :-
 2858    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 2859               B),
 2860    member(C, B),
 2861    C=suspension(_, _, _, _, D, E),
 2862    A='known/1_1_$special_;/2'(D, E).
 2863'$enumerate_constraints'('known/1_1_$special_nonvar/1', A) :-
 2864    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 2865               B),
 2866    member(C, B),
 2867    C=suspension(_, _, _, _, D),
 2868    A='known/1_1_$special_nonvar/1'(D).
 2869'$enumerate_constraints'('known/1_1_$special_var/1', A) :-
 2870    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 2871               B),
 2872    member(C, B),
 2873    C=suspension(_, _, _, _, D),
 2874    A='known/1_1_$special_var/1'(D).
 2875'$enumerate_constraints'('known/1_1_$special_atom/1', A) :-
 2876    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 2877               B),
 2878    member(C, B),
 2879    C=suspension(_, _, _, _, _, D),
 2880    A='known/1_1_$special_atom/1'(D).
 2881'$enumerate_constraints'('known/1_1_$special_atomic/1', A) :-
 2882    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 2883               B),
 2884    member(C, B),
 2885    C=suspension(_, _, _, _, _, D),
 2886    A='known/1_1_$special_atomic/1'(D).
 2887'$enumerate_constraints'('known/1_1_$special_compound/1', A) :-
 2888    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 2889               B),
 2890    member(C, B),
 2891    C=suspension(_, _, _, _, _, D),
 2892    A='known/1_1_$special_compound/1'(D).
 2893'$enumerate_constraints'('known/1_1_$special_ground/1', A) :-
 2894    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 2895               B),
 2896    member(C, B),
 2897    C=suspension(_, _, _, _, _, D),
 2898    A='known/1_1_$special_ground/1'(D).
 2899'$enumerate_constraints'('known/1_1_$special_integer/1', A) :-
 2900    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 2901               B),
 2902    member(C, B),
 2903    C=suspension(_, _, _, _, _, D),
 2904    A='known/1_1_$special_integer/1'(D).
 2905'$enumerate_constraints'('known/1_1_$special_float/1', A) :-
 2906    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 2907               B),
 2908    member(C, B),
 2909    C=suspension(_, _, _, _, _, D),
 2910    A='known/1_1_$special_float/1'(D).
 2911'$enumerate_constraints'('known/1_1_$special_number/1', A) :-
 2912    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 2913               B),
 2914    member(C, B),
 2915    C=suspension(_, _, _, _, _, D),
 2916    A='known/1_1_$special_number/1'(D).
 2917'$enumerate_constraints'('known/1_1_$special_=\\=/2', A) :-
 2918    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 2919               B),
 2920    member(C, B),
 2921    C=suspension(_, _, _, _, _, D, E),
 2922    A='known/1_1_$special_=\\=/2'(D, E).
 2923'$enumerate_constraints'('known/1_1_$special_\\+/1', A) :-
 2924    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 2925               B),
 2926    member(C, B),
 2927    C=suspension(_, _, _, _, D),
 2928    A='known/1_1_$special_\\+/1'(D).
 2929'$enumerate_constraints'('known/1_1_$special_functor/3', A) :-
 2930    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 2931               B),
 2932    member(C, B),
 2933    C=suspension(_, _, _, _, D, E, F),
 2934    A='known/1_1_$special_functor/3'(D, E, F).
 2935'$enumerate_constraints'('known/1_1_$special_\\=/2', A) :-
 2936    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 2937               B),
 2938    member(C, B),
 2939    C=suspension(_, _, _, _, _, D, E),
 2940    A='known/1_1_$special_\\=/2'(D, E).
 2941'$enumerate_constraints'('known/1_1_$special_=/2', A) :-
 2942    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 2943               B),
 2944    member(C, B),
 2945    C=suspension(_, _, _, _, D, E),
 2946    A='known/1_1_$special_=/2'(D, E).
 2947'$enumerate_constraints'('known/1_1_$special_\\==/2', A) :-
 2948    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 2949               B),
 2950    member(C, B),
 2951    C=suspension(_, _, _, _, _, D, E),
 2952    A='known/1_1_$special_\\==/2'(D, E).
 2953'$enumerate_constraints'('known/1_1_$special_==/2', A) :-
 2954    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 2955               B),
 2956    member(C, B),
 2957    C=suspension(_, _, _, _, _, D, E),
 2958    A='known/1_1_$special_==/2'(D, E).
 2959'$enumerate_constraints'('known/1_1_$special_=</2', A) :-
 2960    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 2961               B),
 2962    member(C, B),
 2963    C=suspension(_, _, _, _, _, D, E),
 2964    A='known/1_1_$special_=</2'(D, E).
 2965'$enumerate_constraints'('known/1_1_$special_=:=/2', A) :-
 2966    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 2967               B),
 2968    member(C, B),
 2969    C=suspension(_, _, _, _, _, D, E),
 2970    A='known/1_1_$special_=:=/2'(D, E).
 2971'$enumerate_constraints'('known/1_1_$special_fail/0', A) :-
 2972    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 2973              B),
 2974    member(C, B),
 2975    C=suspension(_, _, _),
 2976    A='known/1_1_$special_fail/0'.
 2977'$chr_initialization' :-
 2978    nb_setval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 2979              []),
 2980    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 2981              []),
 2982    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 2983              []),
 2984    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 2985              []),
 2986    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 2987              []),
 2988    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 2989              []),
 2990    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 2991              []),
 2992    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 2993              []),
 2994    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 2995              []),
 2996    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 2997              []),
 2998    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 2999              []),
 3000    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 3001              []),
 3002    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 3003              []),
 3004    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 3005              []),
 3006    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 3007              []),
 3008    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 3009              []),
 3010    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 3011              []),
 3012    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 3013              []),
 3014    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 3015              []),
 3016    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 3017              []),
 3018    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 3019              []),
 3020    nb_setval('$chr_store_global_list_guard_entailment____variables___1', []).
 3021:- (initialization'$chr_initialization'). 3022:- (dynamic user:exception/3). 3023:- (multifile user:exception/3). 3024user:exception(undefined_global_variable, A, retry) :-
 3025    '$chr_prolog_global_variable'(A),
 3026    '$chr_initialization'.
 3027'$chr_prolog_global_variable'('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0').
 3028'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2').
 3029'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2').
 3030'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2').
 3031'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2').
 3032'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2').
 3033'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2').
 3034'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3').
 3035'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1').
 3036'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2').
 3037'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1').
 3038'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1').
 3039'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1').
 3040'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1').
 3041'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1').
 3042'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1').
 3043'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1').
 3044'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1').
 3045'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1').
 3046'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2').
 3047'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$default___1').
 3048'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____variables___1').
 3049known(A) :-
 3050    nonvar(A),
 3051    (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   A=(B;C),
 3052                                                                                                !,
 3053                                                                                                'known/1_1_$special_;/2'(B,
 3054                                                                                                                         C)
 3055                                                                                            ;   A=nonvar(D),
 3056                                                                                                !,
 3057                                                                                                'known/1_1_$special_nonvar/1'(D)
 3058                                                                                            )
 3059                                                                                        ;   A=var(E),
 3060                                                                                            !,
 3061                                                                                            'known/1_1_$special_var/1'(E)
 3062                                                                                        )
 3063                                                                                    ;   A=atom(F),
 3064                                                                                        !,
 3065                                                                                        'known/1_1_$special_atom/1'(F)
 3066                                                                                    )
 3067                                                                                ;   A=atomic(G),
 3068                                                                                    !,
 3069                                                                                    'known/1_1_$special_atomic/1'(G)
 3070                                                                                )
 3071                                                                            ;   A=compound(H),
 3072                                                                                !,
 3073                                                                                'known/1_1_$special_compound/1'(H)
 3074                                                                            )
 3075                                                                        ;   A=ground(I),
 3076                                                                            !,
 3077                                                                            'known/1_1_$special_ground/1'(I)
 3078                                                                        )
 3079                                                                    ;   A=integer(J),
 3080                                                                        !,
 3081                                                                        'known/1_1_$special_integer/1'(J)
 3082                                                                    )
 3083                                                                ;   A=float(K),
 3084                                                                    !,
 3085                                                                    'known/1_1_$special_float/1'(K)
 3086                                                                )
 3087                                                            ;   A=number(L),
 3088                                                                !,
 3089                                                                'known/1_1_$special_number/1'(L)
 3090                                                            )
 3091                                                        ;   A=(M=\=N),
 3092                                                            !,
 3093                                                            'known/1_1_$special_=\\=/2'(M,
 3094                                                                                        N)
 3095                                                        )
 3096                                                    ;   A=(\+O),
 3097                                                        !,
 3098                                                        'known/1_1_$special_\\+/1'(O)
 3099                                                    )
 3100                                                ;   A=functor(P, Q, R),
 3101                                                    !,
 3102                                                    'known/1_1_$special_functor/3'(P,
 3103                                                                                   Q,
 3104                                                                                   R)
 3105                                                )
 3106                                            ;   A=(S\=T),
 3107                                                !,
 3108                                                'known/1_1_$special_\\=/2'(S,
 3109                                                                           T)
 3110                                            )
 3111                                        ;   A=(U=V),
 3112                                            !,
 3113                                            'known/1_1_$special_=/2'(U,
 3114                                                                     V)
 3115                                        )
 3116                                    ;   A=(W, X),
 3117                                        !,
 3118                                        'known/1_1_$special_,/2'(W,
 3119                                                                 X)
 3120                                    )
 3121                                ;   A=(Y\==Z),
 3122                                    !,
 3123                                    'known/1_1_$special_\\==/2'(Y,
 3124                                                                Z)
 3125                                )
 3126                            ;   A=(A1==B1),
 3127                                !,
 3128                                'known/1_1_$special_==/2'(A1, B1)
 3129                            )
 3130                        ;   A=(C1 is D1),
 3131                            !,
 3132                            'known/1_1_$special_is/2'(C1, D1)
 3133                        )
 3134                    ;   A=(E1<F1),
 3135                        !,
 3136                        'known/1_1_$special_</2'(E1, F1)
 3137                    )
 3138                ;   A=(G1>=H1),
 3139                    !,
 3140                    'known/1_1_$special_>=/2'(G1, H1)
 3141                )
 3142            ;   A=(I1>J1),
 3143                !,
 3144                'known/1_1_$special_>/2'(I1, J1)
 3145            )
 3146        ;   A=(K1=<L1),
 3147            !,
 3148            'known/1_1_$special_=</2'(K1, L1)
 3149        )
 3150    ;   A=(M1=:=N1),
 3151        !,
 3152        'known/1_1_$special_=:=/2'(M1, N1)
 3153    ).
 3154known(A) :-
 3155    A==fail,
 3156    !,
 3157    'known/1_1_$special_fail/0'.
 3158known(A) :-
 3159    'known/1_1_$default'(A).
 3160test(A) :-
 3161    nonvar(A),
 3162    (   (   (   (   (   (   (   A=(B, C),
 3163                                !,
 3164                                'test/1_1_$special_,/2'(B, C)
 3165                            ;   A=(\+D),
 3166                                !,
 3167                                'test/1_1_$special_\\+/1'(D)
 3168                            )
 3169                        ;   A=integer(E),
 3170                            !,
 3171                            'test/1_1_$special_integer/1'(E)
 3172                        )
 3173                    ;   A=float(F),
 3174                        !,
 3175                        'test/1_1_$special_float/1'(F)
 3176                    )
 3177                ;   A=number(G),
 3178                    !,
 3179                    'test/1_1_$special_number/1'(G)
 3180                )
 3181            ;   A=ground(H),
 3182                !,
 3183                'test/1_1_$special_ground/1'(H)
 3184            )
 3185        ;   A=(I=:=J),
 3186            !,
 3187            'test/1_1_$special_=:=/2'(I, J)
 3188        )
 3189    ;   A=(K==L),
 3190        !,
 3191        'test/1_1_$special_==/2'(K, L)
 3192    ).
 3193test(A) :-
 3194    A==true,
 3195    !,
 3196    'test/1_1_$special_true/0'.
 3197test(A) :-
 3198    nonvar(A),
 3199    (   (   (   (   (   (   (   (   (   A=functor(B, C, D),
 3200                                        !,
 3201                                        'test/1_1_$special_functor/3'(B,
 3202                                                                      C,
 3203                                                                      D)
 3204                                    ;   A=(E=F),
 3205                                        !,
 3206                                        'test/1_1_$special_=/2'(E, F)
 3207                                    )
 3208                                ;   A=(G;H),
 3209                                    !,
 3210                                    'test/1_1_$special_;/2'(G, H)
 3211                                )
 3212                            ;   A=(I is J),
 3213                                !,
 3214                                'test/1_1_$special_is/2'(I, J)
 3215                            )
 3216                        ;   A=(K<L),
 3217                            !,
 3218                            'test/1_1_$special_</2'(K, L)
 3219                        )
 3220                    ;   A=(M>=N),
 3221                        !,
 3222                        'test/1_1_$special_>=/2'(M, N)
 3223                    )
 3224                ;   A=(O>P),
 3225                    !,
 3226                    'test/1_1_$special_>/2'(O, P)
 3227                )
 3228            ;   A=(Q=\=R),
 3229                !,
 3230                'test/1_1_$special_=\\=/2'(Q, R)
 3231            )
 3232        ;   A=(S=<T),
 3233            !,
 3234            'test/1_1_$special_=</2'(S, T)
 3235        )
 3236    ;   A=(U\==V),
 3237        !,
 3238        'test/1_1_$special_\\==/2'(U, V)
 3239    ).
 3240test(A) :-
 3241    'test/1_1_$default'(A).
 3242cleanup :-
 3243    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 3244              A),
 3245    !,
 3246    cleanup___0__0__0__1(A).
 3247cleanup___0__0__0__1([]) :-
 3248    cleanup___0__1.
 3249cleanup___0__0__0__1([A|B]) :-
 3250    (   A=suspension(_, active, _, _, _, _)
 3251    ->  A=suspension(_, _, _, _, C, D),
 3252        setarg(2, A, removed),
 3253        term_variables(term(C, D), E),
 3254        ( arg(4, A, F),
 3255          (   var(F)
 3256          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 3257                        G),
 3258              G=[_|H],
 3259              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 3260                       H),
 3261              (   H=[I|_]
 3262              ->  setarg(4, I, _)
 3263              ;   true
 3264              )
 3265          ;   F=[_, _|H],
 3266              setarg(2, F, H),
 3267              (   H=[I|_]
 3268              ->  setarg(4, I, F)
 3269              ;   true
 3270              )
 3271          )
 3272        ),
 3273        'detach_known/1_1_$special_;/2___2'(E, A),
 3274        cleanup___0__0__0__1(B)
 3275    ;   cleanup___0__0__0__1(B)
 3276    ).
 3277cleanup :-
 3278    cleanup___0__1.
 3279cleanup___0__1 :-
 3280    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 3281              A),
 3282    !,
 3283    cleanup___0__1__0__2(A).
 3284cleanup___0__1__0__2([]) :-
 3285    cleanup___0__2.
 3286cleanup___0__1__0__2([A|B]) :-
 3287    (   A=suspension(_, active, _, _, _)
 3288    ->  A=suspension(_, _, _, _, C),
 3289        setarg(2, A, removed),
 3290        term_variables(C, D),
 3291        ( arg(4, A, E),
 3292          (   var(E)
 3293          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 3294                        F),
 3295              F=[_|G],
 3296              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 3297                       G),
 3298              (   G=[H|_]
 3299              ->  setarg(4, H, _)
 3300              ;   true
 3301              )
 3302          ;   E=[_, _|G],
 3303              setarg(2, E, G),
 3304              (   G=[H|_]
 3305              ->  setarg(4, H, E)
 3306              ;   true
 3307              )
 3308          )
 3309        ),
 3310        'detach_known/1_1_$special_nonvar/1___1'(D, A),
 3311        cleanup___0__1__0__2(B)
 3312    ;   cleanup___0__1__0__2(B)
 3313    ).
 3314cleanup___0__1 :-
 3315    cleanup___0__2.
 3316cleanup___0__2 :-
 3317    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 3318              A),
 3319    !,
 3320    cleanup___0__2__0__3(A).
 3321cleanup___0__2__0__3([]) :-
 3322    cleanup___0__3.
 3323cleanup___0__2__0__3([A|B]) :-
 3324    (   A=suspension(_, active, _, _, _)
 3325    ->  A=suspension(_, _, _, _, C),
 3326        setarg(2, A, removed),
 3327        term_variables(C, D),
 3328        ( arg(4, A, E),
 3329          (   var(E)
 3330          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 3331                        F),
 3332              F=[_|G],
 3333              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 3334                       G),
 3335              (   G=[H|_]
 3336              ->  setarg(4, H, _)
 3337              ;   true
 3338              )
 3339          ;   E=[_, _|G],
 3340              setarg(2, E, G),
 3341              (   G=[H|_]
 3342              ->  setarg(4, H, E)
 3343              ;   true
 3344              )
 3345          )
 3346        ),
 3347        'detach_known/1_1_$special_var/1___1'(D, A),
 3348        cleanup___0__2__0__3(B)
 3349    ;   cleanup___0__2__0__3(B)
 3350    ).
 3351cleanup___0__2 :-
 3352    cleanup___0__3.
 3353cleanup___0__3 :-
 3354    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 3355              A),
 3356    !,
 3357    cleanup___0__3__0__4(A).
 3358cleanup___0__3__0__4([]) :-
 3359    cleanup___0__4.
 3360cleanup___0__3__0__4([A|B]) :-
 3361    (   A=suspension(_, active, _, _, _, _)
 3362    ->  A=suspension(_, _, _, _, _, C),
 3363        setarg(2, A, removed),
 3364        term_variables(C, D),
 3365        ( arg(5, A, E),
 3366          (   var(E)
 3367          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 3368                        F),
 3369              F=[_|G],
 3370              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 3371                       G),
 3372              (   G=[H|_]
 3373              ->  setarg(5, H, _)
 3374              ;   true
 3375              )
 3376          ;   E=[_, _|G],
 3377              setarg(2, E, G),
 3378              (   G=[H|_]
 3379              ->  setarg(5, H, E)
 3380              ;   true
 3381              )
 3382          )
 3383        ),
 3384        'detach_known/1_1_$special_atom/1___1'(D, A),
 3385        cleanup___0__3__0__4(B)
 3386    ;   cleanup___0__3__0__4(B)
 3387    ).
 3388cleanup___0__3 :-
 3389    cleanup___0__4.
 3390cleanup___0__4 :-
 3391    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 3392              A),
 3393    !,
 3394    cleanup___0__4__0__5(A).
 3395cleanup___0__4__0__5([]) :-
 3396    cleanup___0__5.
 3397cleanup___0__4__0__5([A|B]) :-
 3398    (   A=suspension(_, active, _, _, _, _)
 3399    ->  A=suspension(_, _, _, _, _, C),
 3400        setarg(2, A, removed),
 3401        term_variables(C, D),
 3402        ( arg(5, A, E),
 3403          (   var(E)
 3404          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 3405                        F),
 3406              F=[_|G],
 3407              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 3408                       G),
 3409              (   G=[H|_]
 3410              ->  setarg(5, H, _)
 3411              ;   true
 3412              )
 3413          ;   E=[_, _|G],
 3414              setarg(2, E, G),
 3415              (   G=[H|_]
 3416              ->  setarg(5, H, E)
 3417              ;   true
 3418              )
 3419          )
 3420        ),
 3421        'detach_known/1_1_$special_atomic/1___1'(D, A),
 3422        cleanup___0__4__0__5(B)
 3423    ;   cleanup___0__4__0__5(B)
 3424    ).
 3425cleanup___0__4 :-
 3426    cleanup___0__5.
 3427cleanup___0__5 :-
 3428    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 3429              A),
 3430    !,
 3431    cleanup___0__5__0__6(A).
 3432cleanup___0__5__0__6([]) :-
 3433    cleanup___0__6.
 3434cleanup___0__5__0__6([A|B]) :-
 3435    (   A=suspension(_, active, _, _, _, _)
 3436    ->  A=suspension(_, _, _, _, _, C),
 3437        setarg(2, A, removed),
 3438        term_variables(C, D),
 3439        ( arg(5, A, E),
 3440          (   var(E)
 3441          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 3442                        F),
 3443              F=[_|G],
 3444              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 3445                       G),
 3446              (   G=[H|_]
 3447              ->  setarg(5, H, _)
 3448              ;   true
 3449              )
 3450          ;   E=[_, _|G],
 3451              setarg(2, E, G),
 3452              (   G=[H|_]
 3453              ->  setarg(5, H, E)
 3454              ;   true
 3455              )
 3456          )
 3457        ),
 3458        'detach_known/1_1_$special_compound/1___1'(D, A),
 3459        cleanup___0__5__0__6(B)
 3460    ;   cleanup___0__5__0__6(B)
 3461    ).
 3462cleanup___0__5 :-
 3463    cleanup___0__6.
 3464cleanup___0__6 :-
 3465    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 3466              A),
 3467    !,
 3468    cleanup___0__6__0__7(A).
 3469cleanup___0__6__0__7([]) :-
 3470    cleanup___0__7.
 3471cleanup___0__6__0__7([A|B]) :-
 3472    (   A=suspension(_, active, _, _, _, _)
 3473    ->  A=suspension(_, _, _, _, _, C),
 3474        setarg(2, A, removed),
 3475        term_variables(C, D),
 3476        ( arg(5, A, E),
 3477          (   var(E)
 3478          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 3479                        F),
 3480              F=[_|G],
 3481              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 3482                       G),
 3483              (   G=[H|_]
 3484              ->  setarg(5, H, _)
 3485              ;   true
 3486              )
 3487          ;   E=[_, _|G],
 3488              setarg(2, E, G),
 3489              (   G=[H|_]
 3490              ->  setarg(5, H, E)
 3491              ;   true
 3492              )
 3493          )
 3494        ),
 3495        'detach_known/1_1_$special_ground/1___1'(D, A),
 3496        cleanup___0__6__0__7(B)
 3497    ;   cleanup___0__6__0__7(B)
 3498    ).
 3499cleanup___0__6 :-
 3500    cleanup___0__7.
 3501cleanup___0__7 :-
 3502    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 3503              A),
 3504    !,
 3505    cleanup___0__7__0__8(A).
 3506cleanup___0__7__0__8([]) :-
 3507    cleanup___0__8.
 3508cleanup___0__7__0__8([A|B]) :-
 3509    (   A=suspension(_, active, _, _, _, _)
 3510    ->  A=suspension(_, _, _, _, _, C),
 3511        setarg(2, A, removed),
 3512        term_variables(C, D),
 3513        ( arg(5, A, E),
 3514          (   var(E)
 3515          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 3516                        F),
 3517              F=[_|G],
 3518              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 3519                       G),
 3520              (   G=[H|_]
 3521              ->  setarg(5, H, _)
 3522              ;   true
 3523              )
 3524          ;   E=[_, _|G],
 3525              setarg(2, E, G),
 3526              (   G=[H|_]
 3527              ->  setarg(5, H, E)
 3528              ;   true
 3529              )
 3530          )
 3531        ),
 3532        'detach_known/1_1_$special_integer/1___1'(D, A),
 3533        cleanup___0__7__0__8(B)
 3534    ;   cleanup___0__7__0__8(B)
 3535    ).
 3536cleanup___0__7 :-
 3537    cleanup___0__8.
 3538cleanup___0__8 :-
 3539    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 3540              A),
 3541    !,
 3542    cleanup___0__8__0__9(A).
 3543cleanup___0__8__0__9([]) :-
 3544    cleanup___0__9.
 3545cleanup___0__8__0__9([A|B]) :-
 3546    (   A=suspension(_, active, _, _, _, _)
 3547    ->  A=suspension(_, _, _, _, _, C),
 3548        setarg(2, A, removed),
 3549        term_variables(C, D),
 3550        ( arg(5, A, E),
 3551          (   var(E)
 3552          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 3553                        F),
 3554              F=[_|G],
 3555              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 3556                       G),
 3557              (   G=[H|_]
 3558              ->  setarg(5, H, _)
 3559              ;   true
 3560              )
 3561          ;   E=[_, _|G],
 3562              setarg(2, E, G),
 3563              (   G=[H|_]
 3564              ->  setarg(5, H, E)
 3565              ;   true
 3566              )
 3567          )
 3568        ),
 3569        'detach_known/1_1_$special_float/1___1'(D, A),
 3570        cleanup___0__8__0__9(B)
 3571    ;   cleanup___0__8__0__9(B)
 3572    ).
 3573cleanup___0__8 :-
 3574    cleanup___0__9.
 3575cleanup___0__9 :-
 3576    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 3577              A),
 3578    !,
 3579    cleanup___0__9__0__10(A).
 3580cleanup___0__9__0__10([]) :-
 3581    cleanup___0__10.
 3582cleanup___0__9__0__10([A|B]) :-
 3583    (   A=suspension(_, active, _, _, _, _)
 3584    ->  A=suspension(_, _, _, _, _, C),
 3585        setarg(2, A, removed),
 3586        term_variables(C, D),
 3587        ( arg(5, A, E),
 3588          (   var(E)
 3589          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 3590                        F),
 3591              F=[_|G],
 3592              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 3593                       G),
 3594              (   G=[H|_]
 3595              ->  setarg(5, H, _)
 3596              ;   true
 3597              )
 3598          ;   E=[_, _|G],
 3599              setarg(2, E, G),
 3600              (   G=[H|_]
 3601              ->  setarg(5, H, E)
 3602              ;   true
 3603              )
 3604          )
 3605        ),
 3606        'detach_known/1_1_$special_number/1___1'(D, A),
 3607        cleanup___0__9__0__10(B)
 3608    ;   cleanup___0__9__0__10(B)
 3609    ).
 3610cleanup___0__9 :-
 3611    cleanup___0__10.
 3612cleanup___0__10 :-
 3613    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 3614              A),
 3615    !,
 3616    cleanup___0__10__0__11(A).
 3617cleanup___0__10__0__11([]) :-
 3618    cleanup___0__11.
 3619cleanup___0__10__0__11([A|B]) :-
 3620    (   A=suspension(_, active, _, _, _, _, _)
 3621    ->  A=suspension(_, _, _, _, _, C, D),
 3622        setarg(2, A, removed),
 3623        term_variables(term(C, D), E),
 3624        ( arg(5, A, F),
 3625          (   var(F)
 3626          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 3627                        G),
 3628              G=[_|H],
 3629              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 3630                       H),
 3631              (   H=[I|_]
 3632              ->  setarg(5, I, _)
 3633              ;   true
 3634              )
 3635          ;   F=[_, _|H],
 3636              setarg(2, F, H),
 3637              (   H=[I|_]
 3638              ->  setarg(5, I, F)
 3639              ;   true
 3640              )
 3641          )
 3642        ),
 3643        'detach_known/1_1_$special_=\\=/2___2'(E, A),
 3644        cleanup___0__10__0__11(B)
 3645    ;   cleanup___0__10__0__11(B)
 3646    ).
 3647cleanup___0__10 :-
 3648    cleanup___0__11.
 3649cleanup___0__11 :-
 3650    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 3651              A),
 3652    !,
 3653    cleanup___0__11__0__12(A).
 3654cleanup___0__11__0__12([]) :-
 3655    cleanup___0__12.
 3656cleanup___0__11__0__12([A|B]) :-
 3657    (   A=suspension(_, active, _, _, _)
 3658    ->  A=suspension(_, _, _, _, C),
 3659        setarg(2, A, removed),
 3660        term_variables(C, D),
 3661        ( arg(4, A, E),
 3662          (   var(E)
 3663          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 3664                        F),
 3665              F=[_|G],
 3666              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 3667                       G),
 3668              (   G=[H|_]
 3669              ->  setarg(4, H, _)
 3670              ;   true
 3671              )
 3672          ;   E=[_, _|G],
 3673              setarg(2, E, G),
 3674              (   G=[H|_]
 3675              ->  setarg(4, H, E)
 3676              ;   true
 3677              )
 3678          )
 3679        ),
 3680        'detach_known/1_1_$special_\\+/1___1'(D, A),
 3681        cleanup___0__11__0__12(B)
 3682    ;   cleanup___0__11__0__12(B)
 3683    ).
 3684cleanup___0__11 :-
 3685    cleanup___0__12.
 3686cleanup___0__12 :-
 3687    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 3688              A),
 3689    !,
 3690    cleanup___0__12__0__13(A).
 3691cleanup___0__12__0__13([]) :-
 3692    cleanup___0__13.
 3693cleanup___0__12__0__13([A|B]) :-
 3694    (   A=suspension(_, active, _, _, _, _, _)
 3695    ->  A=suspension(_, _, _, _, C, D, E),
 3696        setarg(2, A, removed),
 3697        term_variables(term(C, D, E), F),
 3698        ( arg(4, A, G),
 3699          (   var(G)
 3700          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 3701                        H),
 3702              H=[_|I],
 3703              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 3704                       I),
 3705              (   I=[J|_]
 3706              ->  setarg(4, J, _)
 3707              ;   true
 3708              )
 3709          ;   G=[_, _|I],
 3710              setarg(2, G, I),
 3711              (   I=[J|_]
 3712              ->  setarg(4, J, G)
 3713              ;   true
 3714              )
 3715          )
 3716        ),
 3717        'detach_known/1_1_$special_functor/3___3'(F, A),
 3718        cleanup___0__12__0__13(B)
 3719    ;   cleanup___0__12__0__13(B)
 3720    ).
 3721cleanup___0__12 :-
 3722    cleanup___0__13.
 3723cleanup___0__13 :-
 3724    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 3725              A),
 3726    !,
 3727    cleanup___0__13__0__14(A).
 3728cleanup___0__13__0__14([]) :-
 3729    cleanup___0__14.
 3730cleanup___0__13__0__14([A|B]) :-
 3731    (   A=suspension(_, active, _, _, _, _, _)
 3732    ->  A=suspension(_, _, _, _, _, C, D),
 3733        setarg(2, A, removed),
 3734        term_variables(term(C, D), E),
 3735        ( arg(5, A, F),
 3736          (   var(F)
 3737          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 3738                        G),
 3739              G=[_|H],
 3740              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 3741                       H),
 3742              (   H=[I|_]
 3743              ->  setarg(5, I, _)
 3744              ;   true
 3745              )
 3746          ;   F=[_, _|H],
 3747              setarg(2, F, H),
 3748              (   H=[I|_]
 3749              ->  setarg(5, I, F)
 3750              ;   true
 3751              )
 3752          )
 3753        ),
 3754        'detach_known/1_1_$special_\\=/2___2'(E, A),
 3755        cleanup___0__13__0__14(B)
 3756    ;   cleanup___0__13__0__14(B)
 3757    ).
 3758cleanup___0__13 :-
 3759    cleanup___0__14.
 3760cleanup___0__14 :-
 3761    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 3762              A),
 3763    !,
 3764    cleanup___0__14__0__15(A).
 3765cleanup___0__14__0__15([]) :-
 3766    cleanup___0__15.
 3767cleanup___0__14__0__15([A|B]) :-
 3768    (   A=suspension(_, active, _, _, _, _)
 3769    ->  A=suspension(_, _, _, _, C, D),
 3770        setarg(2, A, removed),
 3771        term_variables(term(C, D), E),
 3772        ( arg(4, A, F),
 3773          (   var(F)
 3774          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 3775                        G),
 3776              G=[_|H],
 3777              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 3778                       H),
 3779              (   H=[I|_]
 3780              ->  setarg(4, I, _)
 3781              ;   true
 3782              )
 3783          ;   F=[_, _|H],
 3784              setarg(2, F, H),
 3785              (   H=[I|_]
 3786              ->  setarg(4, I, F)
 3787              ;   true
 3788              )
 3789          )
 3790        ),
 3791        'detach_known/1_1_$special_=/2___2'(E, A),
 3792        cleanup___0__14__0__15(B)
 3793    ;   cleanup___0__14__0__15(B)
 3794    ).
 3795cleanup___0__14 :-
 3796    cleanup___0__15.
 3797cleanup___0__15 :-
 3798    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 3799              A),
 3800    !,
 3801    cleanup___0__15__0__17(A).
 3802cleanup___0__15__0__17([]) :-
 3803    cleanup___0__16.
 3804cleanup___0__15__0__17([A|B]) :-
 3805    (   A=suspension(_, active, _, _, _, _, _)
 3806    ->  A=suspension(_, _, _, _, _, C, D),
 3807        setarg(2, A, removed),
 3808        term_variables(term(C, D), E),
 3809        ( arg(5, A, F),
 3810          (   var(F)
 3811          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 3812                        G),
 3813              G=[_|H],
 3814              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 3815                       H),
 3816              (   H=[I|_]
 3817              ->  setarg(5, I, _)
 3818              ;   true
 3819              )
 3820          ;   F=[_, _|H],
 3821              setarg(2, F, H),
 3822              (   H=[I|_]
 3823              ->  setarg(5, I, F)
 3824              ;   true
 3825              )
 3826          )
 3827        ),
 3828        'detach_known/1_1_$special_\\==/2___2'(E, A),
 3829        cleanup___0__15__0__17(B)
 3830    ;   cleanup___0__15__0__17(B)
 3831    ).
 3832cleanup___0__15 :-
 3833    cleanup___0__16.
 3834cleanup___0__16 :-
 3835    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 3836              A),
 3837    !,
 3838    cleanup___0__16__0__18(A).
 3839cleanup___0__16__0__18([]) :-
 3840    cleanup___0__17.
 3841cleanup___0__16__0__18([A|B]) :-
 3842    (   A=suspension(_, active, _, _, _, _, _)
 3843    ->  A=suspension(_, _, _, _, _, C, D),
 3844        setarg(2, A, removed),
 3845        term_variables(term(C, D), E),
 3846        ( arg(5, A, F),
 3847          (   var(F)
 3848          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 3849                        G),
 3850              G=[_|H],
 3851              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 3852                       H),
 3853              (   H=[I|_]
 3854              ->  setarg(5, I, _)
 3855              ;   true
 3856              )
 3857          ;   F=[_, _|H],
 3858              setarg(2, F, H),
 3859              (   H=[I|_]
 3860              ->  setarg(5, I, F)
 3861              ;   true
 3862              )
 3863          )
 3864        ),
 3865        'detach_known/1_1_$special_==/2___2'(E, A),
 3866        cleanup___0__16__0__18(B)
 3867    ;   cleanup___0__16__0__18(B)
 3868    ).
 3869cleanup___0__16 :-
 3870    cleanup___0__17.
 3871cleanup___0__17 :-
 3872    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 3873              A),
 3874    !,
 3875    cleanup___0__17__0__23(A).
 3876cleanup___0__17__0__23([]) :-
 3877    cleanup___0__18.
 3878cleanup___0__17__0__23([A|B]) :-
 3879    (   A=suspension(_, active, _, _, _, _, _)
 3880    ->  A=suspension(_, _, _, _, _, C, D),
 3881        setarg(2, A, removed),
 3882        term_variables(term(C, D), E),
 3883        ( arg(5, A, F),
 3884          (   var(F)
 3885          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 3886                        G),
 3887              G=[_|H],
 3888              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 3889                       H),
 3890              (   H=[I|_]
 3891              ->  setarg(5, I, _)
 3892              ;   true
 3893              )
 3894          ;   F=[_, _|H],
 3895              setarg(2, F, H),
 3896              (   H=[I|_]
 3897              ->  setarg(5, I, F)
 3898              ;   true
 3899              )
 3900          )
 3901        ),
 3902        'detach_known/1_1_$special_=</2___2'(E, A),
 3903        cleanup___0__17__0__23(B)
 3904    ;   cleanup___0__17__0__23(B)
 3905    ).
 3906cleanup___0__17 :-
 3907    cleanup___0__18.
 3908cleanup___0__18 :-
 3909    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 3910              A),
 3911    !,
 3912    cleanup___0__18__0__24(A).
 3913cleanup___0__18__0__24([]) :-
 3914    cleanup___0__19.
 3915cleanup___0__18__0__24([A|B]) :-
 3916    (   A=suspension(_, active, _, _, _, _, _)
 3917    ->  A=suspension(_, _, _, _, _, C, D),
 3918        setarg(2, A, removed),
 3919        term_variables(term(C, D), E),
 3920        ( arg(5, A, F),
 3921          (   var(F)
 3922          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 3923                        G),
 3924              G=[_|H],
 3925              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 3926                       H),
 3927              (   H=[I|_]
 3928              ->  setarg(5, I, _)
 3929              ;   true
 3930              )
 3931          ;   F=[_, _|H],
 3932              setarg(2, F, H),
 3933              (   H=[I|_]
 3934              ->  setarg(5, I, F)
 3935              ;   true
 3936              )
 3937          )
 3938        ),
 3939        'detach_known/1_1_$special_=:=/2___2'(E, A),
 3940        cleanup___0__18__0__24(B)
 3941    ;   cleanup___0__18__0__24(B)
 3942    ).
 3943cleanup___0__18 :-
 3944    cleanup___0__19.
 3945cleanup___0__19 :-
 3946    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 3947              A),
 3948    !,
 3949    cleanup___0__19__0__25(A).
 3950cleanup___0__19__0__25([]) :-
 3951    cleanup___0__20.
 3952cleanup___0__19__0__25([A|B]) :-
 3953    (   A=suspension(_, active, _)
 3954    ->  setarg(2, A, removed),
 3955        arg(3, A, C),
 3956        (   var(C)
 3957        ->  nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 3958                      D),
 3959            D=[_|E],
 3960            b_setval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 3961                     E),
 3962            (   E=[F|_]
 3963            ->  setarg(3, F, _)
 3964            ;   true
 3965            )
 3966        ;   C=[_, _|E],
 3967            setarg(2, C, E),
 3968            (   E=[F|_]
 3969            ->  setarg(3, F, C)
 3970            ;   true
 3971            )
 3972        ),
 3973        cleanup___0__19__0__25(B)
 3974    ;   cleanup___0__19__0__25(B)
 3975    ).
 3976cleanup___0__19 :-
 3977    cleanup___0__20.
 3978cleanup___0__20 :-
 3979    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 3980              A),
 3981    !,
 3982    cleanup___0__20__0__26(A).
 3983cleanup___0__20__0__26([]) :-
 3984    cleanup___0__21.
 3985cleanup___0__20__0__26([A|B]) :-
 3986    (   A=suspension(_, active, _, _, _)
 3987    ->  A=suspension(_, _, _, _, C),
 3988        setarg(2, A, removed),
 3989        term_variables(C, D),
 3990        ( arg(4, A, E),
 3991          (   var(E)
 3992          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 3993                        F),
 3994              F=[_|G],
 3995              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 3996                       G),
 3997              (   G=[H|_]
 3998              ->  setarg(4, H, _)
 3999              ;   true
 4000              )
 4001          ;   E=[_, _|G],
 4002              setarg(2, E, G),
 4003              (   G=[H|_]
 4004              ->  setarg(4, H, E)
 4005              ;   true
 4006              )
 4007          )
 4008        ),
 4009        'detach_known/1_1_$default___1'(D, A),
 4010        cleanup___0__20__0__26(B)
 4011    ;   cleanup___0__20__0__26(B)
 4012    ).
 4013cleanup___0__20 :-
 4014    cleanup___0__21.
 4015cleanup___0__21 :-
 4016    nb_getval('$chr_store_global_list_guard_entailment____variables___1',
 4017              A),
 4018    !,
 4019    cleanup___0__21__0__27(A).
 4020cleanup___0__21__0__27([]) :-
 4021    cleanup___0__22.
 4022cleanup___0__21__0__27([A|B]) :-
 4023    (   A=suspension(_, active, _, _)
 4024    ->  A=suspension(_, _, _, C),
 4025        setarg(2, A, removed),
 4026        term_variables(C, D),
 4027        ( arg(3, A, E),
 4028          (   var(E)
 4029          ->  nb_getval('$chr_store_global_list_guard_entailment____variables___1',
 4030                        F),
 4031              F=[_|G],
 4032              b_setval('$chr_store_global_list_guard_entailment____variables___1',
 4033                       G),
 4034              (   G=[H|_]
 4035              ->  setarg(3, H, _)
 4036              ;   true
 4037              )
 4038          ;   E=[_, _|G],
 4039              setarg(2, E, G),
 4040              (   G=[H|_]
 4041              ->  setarg(3, H, E)
 4042              ;   true
 4043              )
 4044          )
 4045        ),
 4046        detach_variables___1(D, A),
 4047        cleanup___0__21__0__27(B)
 4048    ;   cleanup___0__21__0__27(B)
 4049    ).
 4050cleanup___0__21 :-
 4051    cleanup___0__22.
 4052cleanup___0__22.
 4053variables(A) :-
 4054    variables___1__0(A, _).
 4055variables___1__0(A, B) :-
 4056    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 4057              C),
 4058    member(D, C),
 4059    D=suspension(_, active, _, _, E, F, G),
 4060    ground(G),
 4061    ground(F),
 4062    var(E),
 4063    !,
 4064    D=suspension(_, _, _, _, H, I, J),
 4065    setarg(2, D, removed),
 4066    term_variables(term(H, I, J), K),
 4067    arg(4, D, L),
 4068    (   var(L)
 4069    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 4070                  M),
 4071        M=[_|N],
 4072        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 4073                 N),
 4074        (   N=[O|_]
 4075        ->  setarg(4, O, _)
 4076        ;   true
 4077        )
 4078    ;   L=[_, _|N],
 4079        setarg(2, L, N),
 4080        (   N=[O|_]
 4081        ->  setarg(4, O, L)
 4082        ;   true
 4083        )
 4084    ),
 4085    'detach_known/1_1_$special_functor/3___3'(K, D),
 4086    (   var(B)
 4087    ->  true
 4088    ;   B=suspension(_, _, _, P),
 4089        setarg(2, B, removed),
 4090        term_variables(P, Q),
 4091        arg(3, B, R),
 4092        (   var(R)
 4093        ->  nb_getval('$chr_store_global_list_guard_entailment____variables___1',
 4094                      S),
 4095            S=[_|T],
 4096            b_setval('$chr_store_global_list_guard_entailment____variables___1',
 4097                     T),
 4098            (   T=[U|_]
 4099            ->  setarg(3, U, _)
 4100            ;   true
 4101            )
 4102        ;   R=[_, _|T],
 4103            setarg(2, R, T),
 4104            (   T=[U|_]
 4105            ->  setarg(3, U, R)
 4106            ;   true
 4107            )
 4108        ),
 4109        detach_variables___1(Q, B)
 4110    ),
 4111    functor(E, F, G),
 4112    E=..[_|V],
 4113    append(V, A, W),
 4114    variables(W).
 4115variables___1__0(A, B) :-
 4116    (   var(B)
 4117    ->  B=suspension(C, active, _, A),
 4118        term_variables(A, D),
 4119        'chr none_locked'(D),
 4120        'chr gen_id'(C),
 4121        nb_getval('$chr_store_global_list_guard_entailment____variables___1',
 4122                  E),
 4123        F=[B|E],
 4124        b_setval('$chr_store_global_list_guard_entailment____variables___1',
 4125                 F),
 4126        (   E=[G|_]
 4127        ->  setarg(3, G, F)
 4128        ;   true
 4129        ),
 4130        attach_variables___1(D, B)
 4131    ;   setarg(2, B, active)
 4132    ).
 4133'test/1_1_$default'(_) :-
 4134    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4135              A),
 4136    member(B, A),
 4137    B=suspension(_, active, _),
 4138    !.
 4139'test/1_1_$default'(A) :-
 4140    nonvar(A),
 4141    (   (   (   (   (   A=nonvar(B),
 4142                        (   'chr newvia_1'(B, C)
 4143                        ->  get_attr(C, guard_entailment, D),
 4144                            D=v(_, _, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4145                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 4146                                      E)
 4147                        ),
 4148                        member(F, E),
 4149                        F=suspension(_, active, _, _, G),
 4150                        G==B,
 4151                        !
 4152                    ;   A=var(H),
 4153                        (   'chr newvia_1'(H, I)
 4154                        ->  get_attr(I, guard_entailment, J),
 4155                            J=v(_, _, _, _, _, K, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4156                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 4157                                      K)
 4158                        ),
 4159                        member(L, K),
 4160                        L=suspension(_, active, _, _, M),
 4161                        M==H,
 4162                        !
 4163                    )
 4164                ;   A=atom(N),
 4165                    (   'chr newvia_1'(N, O)
 4166                    ->  get_attr(O, guard_entailment, P),
 4167                        P=v(_, _, _, _, _, _, Q, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4168                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 4169                                  Q)
 4170                    ),
 4171                    member(R, Q),
 4172                    R=suspension(_, active, _, _, _, S),
 4173                    S==N,
 4174                    !
 4175                )
 4176            ;   A=atomic(T),
 4177                (   'chr newvia_1'(T, U)
 4178                ->  get_attr(U, guard_entailment, V),
 4179                    V=v(_, _, _, _, _, _, _, W, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4180                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 4181                              W)
 4182                ),
 4183                member(X, W),
 4184                X=suspension(_, active, _, _, _, Y),
 4185                Y==T,
 4186                !
 4187            )
 4188        ;   A=compound(Z),
 4189            (   'chr newvia_1'(Z, A1)
 4190            ->  get_attr(A1, guard_entailment, B1),
 4191                B1=v(_, _, _, _, _, _, _, _, C1, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4192            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 4193                          C1)
 4194            ),
 4195            member(D1, C1),
 4196            D1=suspension(_, active, _, _, _, E1),
 4197            E1==Z,
 4198            !
 4199        )
 4200    ;   A=(F1\=G1),
 4201        (   'chr newvia_2'(F1, G1, H1)
 4202        ->  get_attr(H1, guard_entailment, I1),
 4203            I1=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, J1, _, _, _, _, _)
 4204        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 4205                      J1)
 4206        ),
 4207        member(K1, J1),
 4208        K1=suspension(_, active, _, _, _, L1, M1),
 4209        L1==F1,
 4210        M1==G1,
 4211        !
 4212    ).
 4213'test/1_1_$default'(A) :-
 4214    (   'chr newvia_1'(A, B)
 4215    ->  get_attr(B, guard_entailment, C),
 4216        C=v(_, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4217    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 4218                  D)
 4219    ),
 4220    member(E, D),
 4221    E=suspension(_, active, _, _, F),
 4222    F==A,
 4223    !.
 4224'test/1_1_$default'(A) :-
 4225    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4226              B),
 4227    member(C, B),
 4228    C=suspension(_, active, _, _, D, E),
 4229    !,
 4230    C=suspension(_, _, _, _, F, G),
 4231    setarg(2, C, removed),
 4232    term_variables(term(F, G), H),
 4233    arg(4, C, I),
 4234    (   var(I)
 4235    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4236                  J),
 4237        J=[_|K],
 4238        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4239                 K),
 4240        (   K=[L|_]
 4241        ->  setarg(4, L, _)
 4242        ;   true
 4243        )
 4244    ;   I=[_, _|K],
 4245        setarg(2, I, K),
 4246        (   K=[L|_]
 4247        ->  setarg(4, L, I)
 4248        ;   true
 4249        )
 4250    ),
 4251    'detach_known/1_1_$special_;/2___2'(H, C),
 4252    \+ try(D, A),
 4253    !,
 4254    negate_b(D, M),
 4255    known(M),
 4256    \+ try(E, A).
 4257'test/1_1_$default'(_) :-
 4258    fail.
 4259'test/1_1_$special_,/2'(_, _) :-
 4260    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4261              A),
 4262    member(B, A),
 4263    B=suspension(_, active, _),
 4264    !.
 4265'test/1_1_$special_,/2'(A, B) :-
 4266    test(A),
 4267    known(A),
 4268    test(B).
 4269'test/1_1_$special_\\+/1'(_) :-
 4270    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4271              A),
 4272    member(B, A),
 4273    B=suspension(_, active, _),
 4274    !.
 4275'test/1_1_$special_\\+/1'(A) :-
 4276    (   'chr newvia_1'(A, B)
 4277    ->  get_attr(B, guard_entailment, C),
 4278        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
 4279    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 4280                  D)
 4281    ),
 4282    member(E, D),
 4283    E=suspension(_, active, _, _, F),
 4284    F==A,
 4285    !.
 4286'test/1_1_$special_\\+/1'(A) :-
 4287    nonvar(A),
 4288    (   (   (   (   (   (   (   A=functor(B, C, D),
 4289                                nonvar(B),
 4290                                (   'chr lock'(B),
 4291                                    'chr lock'(C),
 4292                                    'chr lock'(D),
 4293                                    functor(B, C, D),
 4294                                    'chr unlock'(B),
 4295                                    'chr unlock'(C),
 4296                                    'chr unlock'(D),
 4297                                    !,
 4298                                    fail
 4299                                ;   !
 4300                                )
 4301                            ;   A=ground(E),
 4302                                ground(E),
 4303                                !,
 4304                                fail
 4305                            )
 4306                        ;   A=number(F),
 4307                            number(F),
 4308                            !,
 4309                            fail
 4310                        )
 4311                    ;   A=float(G),
 4312                        float(G),
 4313                        !,
 4314                        fail
 4315                    )
 4316                ;   A=integer(H),
 4317                    integer(H),
 4318                    !,
 4319                    fail
 4320                )
 4321            ;   A=number(I),
 4322                nonvar(I),
 4323                !
 4324            )
 4325        ;   A=float(J),
 4326            nonvar(J),
 4327            !
 4328        )
 4329    ;   A=integer(K),
 4330        nonvar(K),
 4331        !
 4332    ).
 4333'test/1_1_$special_\\+/1'(A) :-
 4334    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4335              B),
 4336    member(C, B),
 4337    C=suspension(_, active, _, _, D, E),
 4338    !,
 4339    C=suspension(_, _, _, _, F, G),
 4340    setarg(2, C, removed),
 4341    term_variables(term(F, G), H),
 4342    arg(4, C, I),
 4343    (   var(I)
 4344    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4345                  J),
 4346        J=[_|K],
 4347        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4348                 K),
 4349        (   K=[L|_]
 4350        ->  setarg(4, L, _)
 4351        ;   true
 4352        )
 4353    ;   I=[_, _|K],
 4354        setarg(2, I, K),
 4355        (   K=[L|_]
 4356        ->  setarg(4, L, I)
 4357        ;   true
 4358        )
 4359    ),
 4360    'detach_known/1_1_$special_;/2___2'(H, C),
 4361    \+ try(D, \+A),
 4362    !,
 4363    negate_b(D, M),
 4364    known(M),
 4365    \+ try(E, \+A).
 4366'test/1_1_$special_\\+/1'(_) :-
 4367    fail.
 4368'test/1_1_$special_integer/1'(_) :-
 4369    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4370              A),
 4371    member(B, A),
 4372    B=suspension(_, active, _),
 4373    !.
 4374'test/1_1_$special_integer/1'(A) :-
 4375    (   'chr newvia_1'(A, B)
 4376    ->  get_attr(B, guard_entailment, C),
 4377        C=v(_, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _)
 4378    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 4379                  D)
 4380    ),
 4381    member(E, D),
 4382    E=suspension(_, active, _, _, _, F),
 4383    F==A,
 4384    !.
 4385'test/1_1_$special_integer/1'(A) :-
 4386    integer(A),
 4387    !.
 4388'test/1_1_$special_integer/1'(A) :-
 4389    nonvar(A),
 4390    !,
 4391    fail.
 4392'test/1_1_$special_integer/1'(A) :-
 4393    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4394              B),
 4395    member(C, B),
 4396    C=suspension(_, active, _, _, D, E),
 4397    !,
 4398    C=suspension(_, _, _, _, F, G),
 4399    setarg(2, C, removed),
 4400    term_variables(term(F, G), H),
 4401    arg(4, C, I),
 4402    (   var(I)
 4403    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4404                  J),
 4405        J=[_|K],
 4406        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4407                 K),
 4408        (   K=[L|_]
 4409        ->  setarg(4, L, _)
 4410        ;   true
 4411        )
 4412    ;   I=[_, _|K],
 4413        setarg(2, I, K),
 4414        (   K=[L|_]
 4415        ->  setarg(4, L, I)
 4416        ;   true
 4417        )
 4418    ),
 4419    'detach_known/1_1_$special_;/2___2'(H, C),
 4420    \+ try(D, integer(A)),
 4421    !,
 4422    negate_b(D, M),
 4423    known(M),
 4424    \+ try(E, integer(A)).
 4425'test/1_1_$special_integer/1'(_) :-
 4426    fail.
 4427'test/1_1_$special_float/1'(_) :-
 4428    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4429              A),
 4430    member(B, A),
 4431    B=suspension(_, active, _),
 4432    !.
 4433'test/1_1_$special_float/1'(A) :-
 4434    (   'chr newvia_1'(A, B)
 4435    ->  get_attr(B, guard_entailment, C),
 4436        C=v(_, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _)
 4437    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 4438                  D)
 4439    ),
 4440    member(E, D),
 4441    E=suspension(_, active, _, _, _, F),
 4442    F==A,
 4443    !.
 4444'test/1_1_$special_float/1'(A) :-
 4445    float(A),
 4446    !.
 4447'test/1_1_$special_float/1'(A) :-
 4448    nonvar(A),
 4449    !,
 4450    fail.
 4451'test/1_1_$special_float/1'(A) :-
 4452    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4453              B),
 4454    member(C, B),
 4455    C=suspension(_, active, _, _, D, E),
 4456    !,
 4457    C=suspension(_, _, _, _, F, G),
 4458    setarg(2, C, removed),
 4459    term_variables(term(F, G), H),
 4460    arg(4, C, I),
 4461    (   var(I)
 4462    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4463                  J),
 4464        J=[_|K],
 4465        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4466                 K),
 4467        (   K=[L|_]
 4468        ->  setarg(4, L, _)
 4469        ;   true
 4470        )
 4471    ;   I=[_, _|K],
 4472        setarg(2, I, K),
 4473        (   K=[L|_]
 4474        ->  setarg(4, L, I)
 4475        ;   true
 4476        )
 4477    ),
 4478    'detach_known/1_1_$special_;/2___2'(H, C),
 4479    \+ try(D, float(A)),
 4480    !,
 4481    negate_b(D, M),
 4482    known(M),
 4483    \+ try(E, float(A)).
 4484'test/1_1_$special_float/1'(_) :-
 4485    fail.
 4486'test/1_1_$special_number/1'(_) :-
 4487    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4488              A),
 4489    member(B, A),
 4490    B=suspension(_, active, _),
 4491    !.
 4492'test/1_1_$special_number/1'(A) :-
 4493    (   'chr newvia_1'(A, B)
 4494    ->  get_attr(B, guard_entailment, C),
 4495        C=v(_, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _)
 4496    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 4497                  D)
 4498    ),
 4499    member(E, D),
 4500    E=suspension(_, active, _, _, _, F),
 4501    F==A,
 4502    !.
 4503'test/1_1_$special_number/1'(A) :-
 4504    number(A),
 4505    !.
 4506'test/1_1_$special_number/1'(A) :-
 4507    nonvar(A),
 4508    !,
 4509    fail.
 4510'test/1_1_$special_number/1'(A) :-
 4511    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4512              B),
 4513    member(C, B),
 4514    C=suspension(_, active, _, _, D, E),
 4515    !,
 4516    C=suspension(_, _, _, _, F, G),
 4517    setarg(2, C, removed),
 4518    term_variables(term(F, G), H),
 4519    arg(4, C, I),
 4520    (   var(I)
 4521    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4522                  J),
 4523        J=[_|K],
 4524        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4525                 K),
 4526        (   K=[L|_]
 4527        ->  setarg(4, L, _)
 4528        ;   true
 4529        )
 4530    ;   I=[_, _|K],
 4531        setarg(2, I, K),
 4532        (   K=[L|_]
 4533        ->  setarg(4, L, I)
 4534        ;   true
 4535        )
 4536    ),
 4537    'detach_known/1_1_$special_;/2___2'(H, C),
 4538    \+ try(D, number(A)),
 4539    !,
 4540    negate_b(D, M),
 4541    known(M),
 4542    \+ try(E, number(A)).
 4543'test/1_1_$special_number/1'(_) :-
 4544    fail.
 4545'test/1_1_$special_ground/1'(_) :-
 4546    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4547              A),
 4548    member(B, A),
 4549    B=suspension(_, active, _),
 4550    !.
 4551'test/1_1_$special_ground/1'(A) :-
 4552    (   'chr newvia_1'(A, B)
 4553    ->  get_attr(B, guard_entailment, C),
 4554        C=v(_, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _)
 4555    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 4556                  D)
 4557    ),
 4558    member(E, D),
 4559    E=suspension(_, active, _, _, _, F),
 4560    F==A,
 4561    !.
 4562'test/1_1_$special_ground/1'(A) :-
 4563    ground(A),
 4564    !.
 4565'test/1_1_$special_ground/1'(A) :-
 4566    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4567              B),
 4568    member(C, B),
 4569    C=suspension(_, active, _, _, D, E),
 4570    !,
 4571    C=suspension(_, _, _, _, F, G),
 4572    setarg(2, C, removed),
 4573    term_variables(term(F, G), H),
 4574    arg(4, C, I),
 4575    (   var(I)
 4576    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4577                  J),
 4578        J=[_|K],
 4579        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4580                 K),
 4581        (   K=[L|_]
 4582        ->  setarg(4, L, _)
 4583        ;   true
 4584        )
 4585    ;   I=[_, _|K],
 4586        setarg(2, I, K),
 4587        (   K=[L|_]
 4588        ->  setarg(4, L, I)
 4589        ;   true
 4590        )
 4591    ),
 4592    'detach_known/1_1_$special_;/2___2'(H, C),
 4593    \+ try(D, ground(A)),
 4594    !,
 4595    negate_b(D, M),
 4596    known(M),
 4597    \+ try(E, ground(A)).
 4598'test/1_1_$special_ground/1'(_) :-
 4599    fail.
 4600'test/1_1_$special_=:=/2'(_, _) :-
 4601    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4602              A),
 4603    member(B, A),
 4604    B=suspension(_, active, _),
 4605    !.
 4606'test/1_1_$special_=:=/2'(A, B) :-
 4607    (   'chr newvia_2'(A, B, C)
 4608    ->  get_attr(C, guard_entailment, D),
 4609        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
 4610    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 4611                  E)
 4612    ),
 4613    member(F, E),
 4614    F=suspension(_, active, _, _, _, G, H),
 4615    G==A,
 4616    H==B,
 4617    !.
 4618'test/1_1_$special_=:=/2'(A, B) :-
 4619    A==B,
 4620    !.
 4621'test/1_1_$special_=:=/2'(A, B) :-
 4622    ground(B),
 4623    ground(A),
 4624    (   A=:=B,
 4625        !
 4626    ;   !,
 4627        fail
 4628    ).
 4629'test/1_1_$special_=:=/2'(A, B) :-
 4630    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4631              C),
 4632    member(D, C),
 4633    D=suspension(_, active, _, _, E, F),
 4634    !,
 4635    D=suspension(_, _, _, _, G, H),
 4636    setarg(2, D, removed),
 4637    term_variables(term(G, H), I),
 4638    arg(4, D, J),
 4639    (   var(J)
 4640    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4641                  K),
 4642        K=[_|L],
 4643        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4644                 L),
 4645        (   L=[M|_]
 4646        ->  setarg(4, M, _)
 4647        ;   true
 4648        )
 4649    ;   J=[_, _|L],
 4650        setarg(2, J, L),
 4651        (   L=[M|_]
 4652        ->  setarg(4, M, J)
 4653        ;   true
 4654        )
 4655    ),
 4656    'detach_known/1_1_$special_;/2___2'(I, D),
 4657    \+ try(E, A=:=B),
 4658    !,
 4659    negate_b(E, N),
 4660    known(N),
 4661    \+ try(F, A=:=B).
 4662'test/1_1_$special_=:=/2'(_, _) :-
 4663    fail.
 4664'test/1_1_$special_==/2'(_, _) :-
 4665    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4666              A),
 4667    member(B, A),
 4668    B=suspension(_, active, _),
 4669    !.
 4670'test/1_1_$special_==/2'(A, B) :-
 4671    (   'chr newvia_2'(A, B, C)
 4672    ->  get_attr(C, guard_entailment, D),
 4673        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _)
 4674    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 4675                  E)
 4676    ),
 4677    member(F, E),
 4678    F=suspension(_, active, _, _, _, G, H),
 4679    G==A,
 4680    H==B,
 4681    !.
 4682'test/1_1_$special_==/2'(A, B) :-
 4683    A==B,
 4684    !.
 4685'test/1_1_$special_==/2'(A, B) :-
 4686    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4687              C),
 4688    member(D, C),
 4689    D=suspension(_, active, _, _, E, F),
 4690    !,
 4691    D=suspension(_, _, _, _, G, H),
 4692    setarg(2, D, removed),
 4693    term_variables(term(G, H), I),
 4694    arg(4, D, J),
 4695    (   var(J)
 4696    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4697                  K),
 4698        K=[_|L],
 4699        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4700                 L),
 4701        (   L=[M|_]
 4702        ->  setarg(4, M, _)
 4703        ;   true
 4704        )
 4705    ;   J=[_, _|L],
 4706        setarg(2, J, L),
 4707        (   L=[M|_]
 4708        ->  setarg(4, M, J)
 4709        ;   true
 4710        )
 4711    ),
 4712    'detach_known/1_1_$special_;/2___2'(I, D),
 4713    \+ try(E, A==B),
 4714    !,
 4715    negate_b(E, N),
 4716    known(N),
 4717    \+ try(F, A==B).
 4718'test/1_1_$special_==/2'(_, _) :-
 4719    fail.
 4720'test/1_1_$special_true/0' :-
 4721    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4722              A),
 4723    member(B, A),
 4724    B=suspension(_, active, _),
 4725    !.
 4726'test/1_1_$special_true/0'.
 4727'test/1_1_$special_functor/3'(_, _, _) :-
 4728    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4729              A),
 4730    member(B, A),
 4731    B=suspension(_, active, _),
 4732    !.
 4733'test/1_1_$special_functor/3'(A, B, C) :-
 4734    (   'chr newvia'([A, B, C], D)
 4735    ->  get_attr(D, guard_entailment, E),
 4736        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _)
 4737    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 4738                  F)
 4739    ),
 4740    member(G, F),
 4741    G=suspension(_, active, _, _, H, I, J),
 4742    H==A,
 4743    I==B,
 4744    J==C,
 4745    !.
 4746'test/1_1_$special_functor/3'(A, B, C) :-
 4747    ground(C),
 4748    ground(B),
 4749    var(A),
 4750    nb_getval('$chr_store_global_list_guard_entailment____variables___1',
 4751              D),
 4752    member(E, D),
 4753    E=suspension(_, active, _, F),
 4754    'chr lock'(A),
 4755    'chr lock'(F),
 4756    \+ memberchk_eq(A, F),
 4757    'chr unlock'(A),
 4758    'chr unlock'(F),
 4759    !,
 4760    functor(A, B, C).
 4761'test/1_1_$special_functor/3'(A, B, C) :-
 4762    nonvar(A),
 4763    (   'chr lock'(A),
 4764        'chr lock'(B),
 4765        'chr lock'(C),
 4766        functor(A, B, C),
 4767        'chr unlock'(A),
 4768        'chr unlock'(B),
 4769        'chr unlock'(C),
 4770        !
 4771    ;   !,
 4772        fail
 4773    ).
 4774'test/1_1_$special_functor/3'(A, B, C) :-
 4775    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4776              D),
 4777    member(E, D),
 4778    E=suspension(_, active, _, _, F, G),
 4779    !,
 4780    E=suspension(_, _, _, _, H, I),
 4781    setarg(2, E, removed),
 4782    term_variables(term(H, I), J),
 4783    arg(4, E, K),
 4784    (   var(K)
 4785    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4786                  L),
 4787        L=[_|M],
 4788        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4789                 M),
 4790        (   M=[N|_]
 4791        ->  setarg(4, N, _)
 4792        ;   true
 4793        )
 4794    ;   K=[_, _|M],
 4795        setarg(2, K, M),
 4796        (   M=[N|_]
 4797        ->  setarg(4, N, K)
 4798        ;   true
 4799        )
 4800    ),
 4801    'detach_known/1_1_$special_;/2___2'(J, E),
 4802    \+ try(F, functor(A, B, C)),
 4803    !,
 4804    negate_b(F, O),
 4805    known(O),
 4806    \+ try(G, functor(A, B, C)).
 4807'test/1_1_$special_functor/3'(_, _, _) :-
 4808    fail.
 4809'test/1_1_$special_=/2'(_, _) :-
 4810    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4811              A),
 4812    member(B, A),
 4813    B=suspension(_, active, _),
 4814    !.
 4815'test/1_1_$special_=/2'(A, B) :-
 4816    (   'chr newvia_2'(A, B, C)
 4817    ->  get_attr(C, guard_entailment, D),
 4818        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _)
 4819    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 4820                  E)
 4821    ),
 4822    member(F, E),
 4823    F=suspension(_, active, _, _, G, H),
 4824    G==A,
 4825    H==B,
 4826    !.
 4827'test/1_1_$special_=/2'(A, B) :-
 4828    ground(B),
 4829    ground(A),
 4830    !,
 4831    A=B.
 4832'test/1_1_$special_=/2'(A, B) :-
 4833    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4834              C),
 4835    member(D, C),
 4836    D=suspension(_, active, _, _, E, F),
 4837    !,
 4838    D=suspension(_, _, _, _, G, H),
 4839    setarg(2, D, removed),
 4840    term_variables(term(G, H), I),
 4841    arg(4, D, J),
 4842    (   var(J)
 4843    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4844                  K),
 4845        K=[_|L],
 4846        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4847                 L),
 4848        (   L=[M|_]
 4849        ->  setarg(4, M, _)
 4850        ;   true
 4851        )
 4852    ;   J=[_, _|L],
 4853        setarg(2, J, L),
 4854        (   L=[M|_]
 4855        ->  setarg(4, M, J)
 4856        ;   true
 4857        )
 4858    ),
 4859    'detach_known/1_1_$special_;/2___2'(I, D),
 4860    \+ try(E, A=B),
 4861    !,
 4862    negate_b(E, N),
 4863    known(N),
 4864    \+ try(F, A=B).
 4865'test/1_1_$special_=/2'(_, _) :-
 4866    fail.
 4867'test/1_1_$special_;/2'(_, _) :-
 4868    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4869              A),
 4870    member(B, A),
 4871    B=suspension(_, active, _),
 4872    !.
 4873'test/1_1_$special_;/2'(A, B) :-
 4874    (   'chr newvia_2'(A, B, C)
 4875    ->  get_attr(C, guard_entailment, D),
 4876        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4877    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4878                  E)
 4879    ),
 4880    member(F, E),
 4881    F=suspension(_, active, _, _, G, H),
 4882    G==A,
 4883    H==B,
 4884    !.
 4885'test/1_1_$special_;/2'(A, B) :-
 4886    A==fail,
 4887    !,
 4888    test(B).
 4889'test/1_1_$special_;/2'(A, B) :-
 4890    B==fail,
 4891    !,
 4892    test(A).
 4893'test/1_1_$special_;/2'(A, B) :-
 4894    negate_b(A, C),
 4895    negate_b(B, D),
 4896    (   known(D),
 4897        test(A)
 4898    ;   known(C),
 4899        test(B)
 4900    ).
 4901'test/1_1_$special_is/2'(_, _) :-
 4902    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4903              A),
 4904    member(B, A),
 4905    B=suspension(_, active, _),
 4906    !.
 4907'test/1_1_$special_is/2'(A, B) :-
 4908    'test/1_1_$special_=:=/2'(A, B).
 4909'test/1_1_$special_</2'(_, _) :-
 4910    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4911              A),
 4912    member(B, A),
 4913    B=suspension(_, active, _),
 4914    !.
 4915'test/1_1_$special_</2'(A, B) :-
 4916    'test/1_1_$special_,/2'(A=<B, A=\=B).
 4917'test/1_1_$special_>=/2'(_, _) :-
 4918    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4919              A),
 4920    member(B, A),
 4921    B=suspension(_, active, _),
 4922    !.
 4923'test/1_1_$special_>=/2'(A, B) :-
 4924    'test/1_1_$special_=</2'(B, A).
 4925'test/1_1_$special_>/2'(_, _) :-
 4926    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4927              A),
 4928    member(B, A),
 4929    B=suspension(_, active, _),
 4930    !.
 4931'test/1_1_$special_>/2'(A, B) :-
 4932    'test/1_1_$special_</2'(B, A).
 4933'test/1_1_$special_=\\=/2'(_, _) :-
 4934    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4935              A),
 4936    member(B, A),
 4937    B=suspension(_, active, _),
 4938    !.
 4939'test/1_1_$special_=\\=/2'(A, B) :-
 4940    (   'chr newvia_2'(A, B, C)
 4941    ->  get_attr(C, guard_entailment, D),
 4942        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _, _)
 4943    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 4944                  E)
 4945    ),
 4946    member(F, E),
 4947    F=suspension(_, active, _, _, _, G, H),
 4948    G==A,
 4949    H==B,
 4950    !.
 4951'test/1_1_$special_=\\=/2'(A, B) :-
 4952    number(B),
 4953    (   'chr newvia_1'(A, C)
 4954    ->  get_attr(C, guard_entailment, D),
 4955        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
 4956    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 4957                  E)
 4958    ),
 4959    member(F, E),
 4960    F=suspension(_, active, _, _, _, G, H),
 4961    (   G==A,
 4962        number(H),
 4963        B>H,
 4964        !
 4965    ;   H==A,
 4966        number(G),
 4967        B<G,
 4968        !
 4969    ).
 4970'test/1_1_$special_=\\=/2'(A, B) :-
 4971    ground(B),
 4972    ground(A),
 4973    (   A=\=B,
 4974        !
 4975    ;   !,
 4976        fail
 4977    ).
 4978'test/1_1_$special_=\\=/2'(A, B) :-
 4979    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4980              C),
 4981    member(D, C),
 4982    D=suspension(_, active, _, _, E, F),
 4983    !,
 4984    D=suspension(_, _, _, _, G, H),
 4985    setarg(2, D, removed),
 4986    term_variables(term(G, H), I),
 4987    arg(4, D, J),
 4988    (   var(J)
 4989    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4990                  K),
 4991        K=[_|L],
 4992        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4993                 L),
 4994        (   L=[M|_]
 4995        ->  setarg(4, M, _)
 4996        ;   true
 4997        )
 4998    ;   J=[_, _|L],
 4999        setarg(2, J, L),
 5000        (   L=[M|_]
 5001        ->  setarg(4, M, J)
 5002        ;   true
 5003        )
 5004    ),
 5005    'detach_known/1_1_$special_;/2___2'(I, D),
 5006    \+ try(E, A=\=B),
 5007    !,
 5008    negate_b(E, N),
 5009    known(N),
 5010    \+ try(F, A=\=B).
 5011'test/1_1_$special_=\\=/2'(_, _) :-
 5012    fail.
 5013'test/1_1_$special_=</2'(_, _) :-
 5014    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 5015              A),
 5016    member(B, A),
 5017    B=suspension(_, active, _),
 5018    !.
 5019'test/1_1_$special_=</2'(A, B) :-
 5020    (   'chr newvia_2'(A, B, C)
 5021    ->  get_attr(C, guard_entailment, D),
 5022        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
 5023    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 5024                  E)
 5025    ),
 5026    member(F, E),
 5027    F=suspension(_, active, _, _, _, G, H),
 5028    G==A,
 5029    H==B,
 5030    !.
 5031'test/1_1_$special_=</2'(A, B) :-
 5032    (   'chr newvia_2'(A, B, C)
 5033    ->  get_attr(C, guard_entailment, D),
 5034        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
 5035    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 5036                  E)
 5037    ),
 5038    member(F, E),
 5039    F=suspension(_, active, _, _, _, G, H),
 5040    G==A,
 5041    H==B,
 5042    !.
 5043'test/1_1_$special_=</2'(A, B) :-
 5044    number(B),
 5045    (   'chr newvia_1'(A, C)
 5046    ->  get_attr(C, guard_entailment, D),
 5047        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
 5048    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 5049                  E)
 5050    ),
 5051    member(F, E),
 5052    F=suspension(_, active, _, _, _, G, H),
 5053    G==A,
 5054    number(H),
 5055    H=<B,
 5056    !.
 5057'test/1_1_$special_=</2'(A, B) :-
 5058    number(A),
 5059    (   'chr newvia_1'(B, C)
 5060    ->  get_attr(C, guard_entailment, D),
 5061        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
 5062    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 5063                  E)
 5064    ),
 5065    member(F, E),
 5066    F=suspension(_, active, _, _, _, G, H),
 5067    G==B,
 5068    number(H),
 5069    A=<H,
 5070    !.
 5071'test/1_1_$special_=</2'(A, B) :-
 5072    number(B),
 5073    (   'chr newvia_1'(A, C)
 5074    ->  get_attr(C, guard_entailment, D),
 5075        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
 5076    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 5077                  E)
 5078    ),
 5079    member(F, E),
 5080    F=suspension(_, active, _, _, _, G, H),
 5081    G==A,
 5082    number(H),
 5083    H=<B,
 5084    !.
 5085'test/1_1_$special_=</2'(A, B) :-
 5086    number(A),
 5087    (   'chr newvia_1'(B, C)
 5088    ->  get_attr(C, guard_entailment, D),
 5089        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
 5090    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 5091                  E)
 5092    ),
 5093    member(F, E),
 5094    F=suspension(_, active, _, _, _, G, H),
 5095    H==B,
 5096    number(G),
 5097    A=<G,
 5098    !.
 5099'test/1_1_$special_=</2'(A, B) :-
 5100    A==B,
 5101    !.
 5102'test/1_1_$special_=</2'(A, B) :-
 5103    ground(B),
 5104    ground(A),
 5105    (   A=<B,
 5106        !
 5107    ;   !,
 5108        fail
 5109    ).
 5110'test/1_1_$special_=</2'(A, B) :-
 5111    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5112              C),
 5113    member(D, C),
 5114    D=suspension(_, active, _, _, E, F),
 5115    !,
 5116    D=suspension(_, _, _, _, G, H),
 5117    setarg(2, D, removed),
 5118    term_variables(term(G, H), I),
 5119    arg(4, D, J),
 5120    (   var(J)
 5121    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5122                  K),
 5123        K=[_|L],
 5124        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5125                 L),
 5126        (   L=[M|_]
 5127        ->  setarg(4, M, _)
 5128        ;   true
 5129        )
 5130    ;   J=[_, _|L],
 5131        setarg(2, J, L),
 5132        (   L=[M|_]
 5133        ->  setarg(4, M, J)
 5134        ;   true
 5135        )
 5136    ),
 5137    'detach_known/1_1_$special_;/2___2'(I, D),
 5138    \+ try(E, A=<B),
 5139    !,
 5140    negate_b(E, N),
 5141    known(N),
 5142    \+ try(F, A=<B).
 5143'test/1_1_$special_=</2'(_, _) :-
 5144    fail.
 5145'test/1_1_$special_\\==/2'(_, _) :-
 5146    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 5147              A),
 5148    member(B, A),
 5149    B=suspension(_, active, _),
 5150    !.
 5151'test/1_1_$special_\\==/2'(A, B) :-
 5152    (   'chr newvia_2'(A, B, C)
 5153    ->  get_attr(C, guard_entailment, D),
 5154        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _)
 5155    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 5156                  E)
 5157    ),
 5158    member(F, E),
 5159    F=suspension(_, active, _, _, _, G, H),
 5160    G==A,
 5161    H==B,
 5162    !.
 5163'test/1_1_$special_\\==/2'(A, B) :-
 5164    nonvar(B),
 5165    'chr lock'(B),
 5166    functor(B, C, D),
 5167    'chr unlock'(B),
 5168    !,
 5169    B=..[_|E],
 5170    length(F, D),
 5171    G=..[C|F],
 5172    add_args_nmatch(F, E, H),
 5173    I=(\+functor(A, C, D);functor(A, C, D), A=G, H),
 5174    test(I).
 5175'test/1_1_$special_\\==/2'(A, B) :-
 5176    nonvar(A),
 5177    !,
 5178    'test/1_1_$special_\\==/2'(B, A).
 5179'test/1_1_$special_\\==/2'(A, B) :-
 5180    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5181              C),
 5182    member(D, C),
 5183    D=suspension(_, active, _, _, E, F),
 5184    !,
 5185    D=suspension(_, _, _, _, G, H),
 5186    setarg(2, D, removed),
 5187    term_variables(term(G, H), I),
 5188    arg(4, D, J),
 5189    (   var(J)
 5190    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5191                  K),
 5192        K=[_|L],
 5193        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5194                 L),
 5195        (   L=[M|_]
 5196        ->  setarg(4, M, _)
 5197        ;   true
 5198        )
 5199    ;   J=[_, _|L],
 5200        setarg(2, J, L),
 5201        (   L=[M|_]
 5202        ->  setarg(4, M, J)
 5203        ;   true
 5204        )
 5205    ),
 5206    'detach_known/1_1_$special_;/2___2'(I, D),
 5207    \+ try(E, A\==B),
 5208    !,
 5209    negate_b(E, N),
 5210    known(N),
 5211    \+ try(F, A\==B).
 5212'test/1_1_$special_\\==/2'(_, _) :-
 5213    fail.
 5214'known/1_1_$default'(A) :-
 5215    'known/1_1_$default___1__0'(A, _).
 5216'known/1_1_$default___1__0'(A, B) :-
 5217    (   'chr newvia_1'(A, C)
 5218    ->  get_attr(C, guard_entailment, D),
 5219        D=v(_, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5220    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5221                  E)
 5222    ),
 5223    member(F, E),
 5224    F=suspension(_, active, _, _, G),
 5225    G==A,
 5226    !,
 5227    (   var(B)
 5228    ->  true
 5229    ;   B=suspension(_, H, _, _, I),
 5230        setarg(2, B, removed),
 5231        (   H==not_stored_yet
 5232        ->  J=[]
 5233        ;   term_variables(I, J),
 5234            arg(4, B, K),
 5235            (   var(K)
 5236            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5237                          L),
 5238                L=[_|M],
 5239                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5240                         M),
 5241                (   M=[N|_]
 5242                ->  setarg(4, N, _)
 5243                ;   true
 5244                )
 5245            ;   K=[_, _|M],
 5246                setarg(2, K, M),
 5247                (   M=[N|_]
 5248                ->  setarg(4, N, K)
 5249                ;   true
 5250                )
 5251            ),
 5252            'detach_known/1_1_$default___1'(J, B)
 5253        )
 5254    ).
 5255'known/1_1_$default___1__0'(_, A) :-
 5256    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 5257              B),
 5258    member(C, B),
 5259    C=suspension(_, active, _),
 5260    !,
 5261    (   var(A)
 5262    ->  true
 5263    ;   A=suspension(_, D, _, _, E),
 5264        setarg(2, A, removed),
 5265        (   D==not_stored_yet
 5266        ->  F=[]
 5267        ;   term_variables(E, F),
 5268            arg(4, A, G),
 5269            (   var(G)
 5270            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5271                          H),
 5272                H=[_|I],
 5273                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5274                         I),
 5275                (   I=[J|_]
 5276                ->  setarg(4, J, _)
 5277                ;   true
 5278                )
 5279            ;   G=[_, _|I],
 5280                setarg(2, G, I),
 5281                (   I=[J|_]
 5282                ->  setarg(4, J, G)
 5283                ;   true
 5284                )
 5285            ),
 5286            'detach_known/1_1_$default___1'(F, A)
 5287        )
 5288    ).
 5289'known/1_1_$default___1__0'(A, B) :-
 5290    (   'chr newvia_1'(A, C)
 5291    ->  get_attr(C, guard_entailment, D),
 5292        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
 5293    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5294                  E)
 5295    ),
 5296    member(F, E),
 5297    F=suspension(_, active, _, _, G),
 5298    G==A,
 5299    !,
 5300    F=suspension(_, _, _, _, H),
 5301    setarg(2, F, removed),
 5302    term_variables(H, I),
 5303    arg(4, F, J),
 5304    (   var(J)
 5305    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5306                  K),
 5307        K=[_|L],
 5308        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5309                 L),
 5310        (   L=[M|_]
 5311        ->  setarg(4, M, _)
 5312        ;   true
 5313        )
 5314    ;   J=[_, _|L],
 5315        setarg(2, J, L),
 5316        (   L=[M|_]
 5317        ->  setarg(4, M, J)
 5318        ;   true
 5319        )
 5320    ),
 5321    'detach_known/1_1_$special_\\+/1___1'(I, F),
 5322    (   var(B)
 5323    ->  true
 5324    ;   B=suspension(_, N, _, _, O),
 5325        setarg(2, B, removed),
 5326        (   N==not_stored_yet
 5327        ->  P=[]
 5328        ;   term_variables(O, P),
 5329            arg(4, B, Q),
 5330            (   var(Q)
 5331            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5332                          R),
 5333                R=[_|S],
 5334                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5335                         S),
 5336                (   S=[T|_]
 5337                ->  setarg(4, T, _)
 5338                ;   true
 5339                )
 5340            ;   Q=[_, _|S],
 5341                setarg(2, Q, S),
 5342                (   S=[T|_]
 5343                ->  setarg(4, T, Q)
 5344                ;   true
 5345                )
 5346            ),
 5347            'detach_known/1_1_$default___1'(P, B)
 5348        )
 5349    ),
 5350    'known/1_1_$special_fail/0'.
 5351'known/1_1_$default___1__0'(A, B) :-
 5352    (   'chr newvia_1'(A, C)
 5353    ->  get_attr(C, guard_entailment, D),
 5354        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5355    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5356                  E)
 5357    ),
 5358    !,
 5359    (   var(B)
 5360    ->  B=suspension(F, not_stored_yet, 0, _, A),
 5361        'chr gen_id'(F)
 5362    ;   true
 5363    ),
 5364    'known/1_1_$default___1__0__0__6'(E, A, B).
 5365'known/1_1_$default___1__0__0__6'([], A, B) :-
 5366    'known/1_1_$default___1__1'(A, B).
 5367'known/1_1_$default___1__0__0__6'([A|B], C, D) :-
 5368    (   A=suspension(_, active, _, _, E, F),
 5369        nonvar(E),
 5370        E=(\+G),
 5371        G==C
 5372    ->  A=suspension(_, _, _, _, H, I),
 5373        setarg(2, A, removed),
 5374        term_variables(term(H, I), J),
 5375        ( arg(4, A, K),
 5376          (   var(K)
 5377          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5378                        L),
 5379              L=[_|M],
 5380              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5381                       M),
 5382              (   M=[N|_]
 5383              ->  setarg(4, N, _)
 5384              ;   true
 5385              )
 5386          ;   K=[_, _|M],
 5387              setarg(2, K, M),
 5388              (   M=[N|_]
 5389              ->  setarg(4, N, K)
 5390              ;   true
 5391              )
 5392          )
 5393        ),
 5394        'detach_known/1_1_$special_;/2___2'(J, A),
 5395        arg(2, D, O),
 5396        setarg(2, D, active),
 5397        ( arg(3, D, P),
 5398          Q is P+1,
 5399          setarg(3, D, Q)
 5400        ),
 5401        (   O==not_stored_yet
 5402        ->  D=suspension(_, _, _, _, R),
 5403            term_variables(R, S),
 5404            'chr none_locked'(S),
 5405            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5406                      T),
 5407            U=[D|T],
 5408            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5409                     U),
 5410            (   T=[V|_]
 5411            ->  setarg(4, V, U)
 5412            ;   true
 5413            ),
 5414            'attach_known/1_1_$default___1'(S, D)
 5415        ;   true
 5416        ),
 5417        known(F),
 5418        (   D=suspension(_, active, Q, _, _)
 5419        ->  setarg(2, D, inactive),
 5420            'known/1_1_$default___1__0__0__6'(B, C, D)
 5421        ;   true
 5422        )
 5423    ;   'known/1_1_$default___1__0__0__6'(B, C, D)
 5424    ).
 5425'known/1_1_$default___1__0'(A, B) :-
 5426    (   var(B)
 5427    ->  B=suspension(C, not_stored_yet, 0, _, A),
 5428        'chr gen_id'(C)
 5429    ;   true
 5430    ),
 5431    'known/1_1_$default___1__1'(A, B).
 5432'known/1_1_$default___1__1'(A, B) :-
 5433    (   'chr newvia_1'(A, C)
 5434    ->  get_attr(C, guard_entailment, D),
 5435        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5436    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5437                  E)
 5438    ),
 5439    !,
 5440    'known/1_1_$default___1__1__0__7'(E, A, B).
 5441'known/1_1_$default___1__1__0__7'([], A, B) :-
 5442    'known/1_1_$default___1__2'(A, B).
 5443'known/1_1_$default___1__1__0__7'([A|B], C, D) :-
 5444    (   A=suspension(_, active, _, _, E, F),
 5445        nonvar(E),
 5446        E=(G, _),
 5447        nonvar(G),
 5448        G=(\+H),
 5449        H==C
 5450    ->  A=suspension(_, _, _, _, I, J),
 5451        setarg(2, A, removed),
 5452        term_variables(term(I, J), K),
 5453        ( arg(4, A, L),
 5454          (   var(L)
 5455          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5456                        M),
 5457              M=[_|N],
 5458              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5459                       N),
 5460              (   N=[O|_]
 5461              ->  setarg(4, O, _)
 5462              ;   true
 5463              )
 5464          ;   L=[_, _|N],
 5465              setarg(2, L, N),
 5466              (   N=[O|_]
 5467              ->  setarg(4, O, L)
 5468              ;   true
 5469              )
 5470          )
 5471        ),
 5472        'detach_known/1_1_$special_;/2___2'(K, A),
 5473        arg(2, D, P),
 5474        setarg(2, D, active),
 5475        ( arg(3, D, Q),
 5476          R is Q+1,
 5477          setarg(3, D, R)
 5478        ),
 5479        (   P==not_stored_yet
 5480        ->  D=suspension(_, _, _, _, S),
 5481            term_variables(S, T),
 5482            'chr none_locked'(T),
 5483            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5484                      U),
 5485            V=[D|U],
 5486            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5487                     V),
 5488            (   U=[W|_]
 5489            ->  setarg(4, W, V)
 5490            ;   true
 5491            ),
 5492            'attach_known/1_1_$default___1'(T, D)
 5493        ;   true
 5494        ),
 5495        known(F),
 5496        (   D=suspension(_, active, R, _, _)
 5497        ->  setarg(2, D, inactive),
 5498            'known/1_1_$default___1__1__0__7'(B, C, D)
 5499        ;   true
 5500        )
 5501    ;   'known/1_1_$default___1__1__0__7'(B, C, D)
 5502    ).
 5503'known/1_1_$default___1__1'(A, B) :-
 5504    'known/1_1_$default___1__2'(A, B).
 5505'known/1_1_$default___1__2'(_, A) :-
 5506    arg(2, A, B),
 5507    setarg(2, A, active),
 5508    arg(3, A, C),
 5509    D is C+1,
 5510    setarg(3, A, D),
 5511    (   B==not_stored_yet
 5512    ->  A=suspension(_, _, _, _, E),
 5513        term_variables(E, F),
 5514        'chr none_locked'(F),
 5515        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5516                  G),
 5517        H=[A|G],
 5518        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5519                 H),
 5520        (   G=[I|_]
 5521        ->  setarg(4, I, H)
 5522        ;   true
 5523        ),
 5524        'attach_known/1_1_$default___1'(F, A)
 5525    ;   true
 5526    ).
 5527'known/1_1_$special_;/2'(A, B) :-
 5528    'known/1_1_$special_;/2___2__0'(A, B, _).
 5529'known/1_1_$special_;/2___2__0'(A, B, C) :-
 5530    (   'chr newvia_2'(A, B, D)
 5531    ->  get_attr(D, guard_entailment, E),
 5532        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5533    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5534                  F)
 5535    ),
 5536    member(G, F),
 5537    G=suspension(_, active, _, _, H, I),
 5538    H==A,
 5539    I==B,
 5540    !,
 5541    (   var(C)
 5542    ->  true
 5543    ;   C=suspension(_, J, _, _, K, L),
 5544        setarg(2, C, removed),
 5545        (   J==not_stored_yet
 5546        ->  M=[]
 5547        ;   term_variables(term(K, L), M),
 5548            arg(4, C, N),
 5549            (   var(N)
 5550            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5551                          O),
 5552                O=[_|P],
 5553                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5554                         P),
 5555                (   P=[Q|_]
 5556                ->  setarg(4, Q, _)
 5557                ;   true
 5558                )
 5559            ;   N=[_, _|P],
 5560                setarg(2, N, P),
 5561                (   P=[Q|_]
 5562                ->  setarg(4, Q, N)
 5563                ;   true
 5564                )
 5565            ),
 5566            'detach_known/1_1_$special_;/2___2'(M, C)
 5567        )
 5568    ).
 5569'known/1_1_$special_;/2___2__0'(_, _, A) :-
 5570    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 5571              B),
 5572    member(C, B),
 5573    C=suspension(_, active, _),
 5574    !,
 5575    (   var(A)
 5576    ->  true
 5577    ;   A=suspension(_, D, _, _, E, F),
 5578        setarg(2, A, removed),
 5579        (   D==not_stored_yet
 5580        ->  G=[]
 5581        ;   term_variables(term(E, F), G),
 5582            arg(4, A, H),
 5583            (   var(H)
 5584            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5585                          I),
 5586                I=[_|J],
 5587                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5588                         J),
 5589                (   J=[K|_]
 5590                ->  setarg(4, K, _)
 5591                ;   true
 5592                )
 5593            ;   H=[_, _|J],
 5594                setarg(2, H, J),
 5595                (   J=[K|_]
 5596                ->  setarg(4, K, H)
 5597                ;   true
 5598                )
 5599            ),
 5600            'detach_known/1_1_$special_;/2___2'(G, A)
 5601        )
 5602    ).
 5603'known/1_1_$special_;/2___2__0'(A, B, C) :-
 5604    (   'chr newvia_2'(A, B, D)
 5605    ->  get_attr(D, guard_entailment, E),
 5606        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _, _)
 5607    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5608                  F)
 5609    ),
 5610    member(G, F),
 5611    G=suspension(_, active, _, _, H),
 5612    nonvar(H),
 5613    H=(I;J),
 5614    I==A,
 5615    J==B,
 5616    !,
 5617    G=suspension(_, _, _, _, K),
 5618    setarg(2, G, removed),
 5619    term_variables(K, L),
 5620    arg(4, G, M),
 5621    (   var(M)
 5622    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5623                  N),
 5624        N=[_|O],
 5625        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5626                 O),
 5627        (   O=[P|_]
 5628        ->  setarg(4, P, _)
 5629        ;   true
 5630        )
 5631    ;   M=[_, _|O],
 5632        setarg(2, M, O),
 5633        (   O=[P|_]
 5634        ->  setarg(4, P, M)
 5635        ;   true
 5636        )
 5637    ),
 5638    'detach_known/1_1_$special_\\+/1___1'(L, G),
 5639    (   var(C)
 5640    ->  true
 5641    ;   C=suspension(_, Q, _, _, R, S),
 5642        setarg(2, C, removed),
 5643        (   Q==not_stored_yet
 5644        ->  T=[]
 5645        ;   term_variables(term(R, S), T),
 5646            arg(4, C, U),
 5647            (   var(U)
 5648            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5649                          V),
 5650                V=[_|W],
 5651                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5652                         W),
 5653                (   W=[X|_]
 5654                ->  setarg(4, X, _)
 5655                ;   true
 5656                )
 5657            ;   U=[_, _|W],
 5658                setarg(2, U, W),
 5659                (   W=[X|_]
 5660                ->  setarg(4, X, U)
 5661                ;   true
 5662                )
 5663            ),
 5664            'detach_known/1_1_$special_;/2___2'(T, C)
 5665        )
 5666    ),
 5667    'known/1_1_$special_fail/0'.
 5668'known/1_1_$special_;/2___2__0'(A, B, C) :-
 5669    nonvar(A),
 5670    A=(\+D),
 5671    nonvar(D),
 5672    D=(E;F),
 5673    (   'chr newvia_2'(E, F, G)
 5674    ->  get_attr(G, guard_entailment, H),
 5675        H=v(_, _, _, I, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5676    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5677                  I)
 5678    ),
 5679    member(J, I),
 5680    J=suspension(_, active, _, _, K, L),
 5681    K==E,
 5682    L==F,
 5683    !,
 5684    (   var(C)
 5685    ->  true
 5686    ;   C=suspension(_, M, _, _, N, O),
 5687        setarg(2, C, removed),
 5688        (   M==not_stored_yet
 5689        ->  P=[]
 5690        ;   term_variables(term(N, O), P),
 5691            arg(4, C, Q),
 5692            (   var(Q)
 5693            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5694                          R),
 5695                R=[_|S],
 5696                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5697                         S),
 5698                (   S=[T|_]
 5699                ->  setarg(4, T, _)
 5700                ;   true
 5701                )
 5702            ;   Q=[_, _|S],
 5703                setarg(2, Q, S),
 5704                (   S=[T|_]
 5705                ->  setarg(4, T, Q)
 5706                ;   true
 5707                )
 5708            ),
 5709            'detach_known/1_1_$special_;/2___2'(P, C)
 5710        )
 5711    ),
 5712    known(B).
 5713'known/1_1_$special_;/2___2__0'(A, B, C) :-
 5714    (   'chr newvia_2'(A, B, D)
 5715    ->  get_attr(D, guard_entailment, E),
 5716        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5717    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5718                  F)
 5719    ),
 5720    !,
 5721    (   var(C)
 5722    ->  C=suspension(G, not_stored_yet, 0, _, A, B),
 5723        'chr gen_id'(G)
 5724    ;   true
 5725    ),
 5726    'known/1_1_$special_;/2___2__0__0__7'(F, A, B, C).
 5727'known/1_1_$special_;/2___2__0__0__7'([], A, B, C) :-
 5728    'known/1_1_$special_;/2___2__1'(A, B, C).
 5729'known/1_1_$special_;/2___2__0__0__7'([A|B], C, D, E) :-
 5730    (   A=suspension(_, active, _, _, F, G),
 5731        nonvar(F),
 5732        F=(\+H),
 5733        nonvar(H),
 5734        H=(I;J),
 5735        I==C,
 5736        J==D
 5737    ->  A=suspension(_, _, _, _, K, L),
 5738        setarg(2, A, removed),
 5739        term_variables(term(K, L), M),
 5740        ( arg(4, A, N),
 5741          (   var(N)
 5742          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5743                        O),
 5744              O=[_|P],
 5745              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5746                       P),
 5747              (   P=[Q|_]
 5748              ->  setarg(4, Q, _)
 5749              ;   true
 5750              )
 5751          ;   N=[_, _|P],
 5752              setarg(2, N, P),
 5753              (   P=[Q|_]
 5754              ->  setarg(4, Q, N)
 5755              ;   true
 5756              )
 5757          )
 5758        ),
 5759        'detach_known/1_1_$special_;/2___2'(M, A),
 5760        arg(2, E, R),
 5761        setarg(2, E, active),
 5762        ( arg(3, E, S),
 5763          T is S+1,
 5764          setarg(3, E, T)
 5765        ),
 5766        (   R==not_stored_yet
 5767        ->  E=suspension(_, _, _, _, U, V),
 5768            term_variables(term(U, V), W),
 5769            'chr none_locked'(W),
 5770            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5771                      X),
 5772            Y=[E|X],
 5773            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5774                     Y),
 5775            (   X=[Z|_]
 5776            ->  setarg(4, Z, Y)
 5777            ;   true
 5778            ),
 5779            'attach_known/1_1_$special_;/2___2'(W, E)
 5780        ;   true
 5781        ),
 5782        known(G),
 5783        (   E=suspension(_, active, T, _, _, _)
 5784        ->  setarg(2, E, inactive),
 5785            'known/1_1_$special_;/2___2__0__0__7'(B,
 5786                                                  C,
 5787                                                  D,
 5788                                                  E)
 5789        ;   true
 5790        )
 5791    ;   'known/1_1_$special_;/2___2__0__0__7'(B, C, D, E)
 5792    ).
 5793'known/1_1_$special_;/2___2__0'(A, B, C) :-
 5794    (   var(C)
 5795    ->  C=suspension(D, not_stored_yet, 0, _, A, B),
 5796        'chr gen_id'(D)
 5797    ;   true
 5798    ),
 5799    'known/1_1_$special_;/2___2__1'(A, B, C).
 5800'known/1_1_$special_;/2___2__1'(A, B, C) :-
 5801    nonvar(A),
 5802    (   A=(\+D),
 5803        (   nonvar(D),
 5804            (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   D=nonvar(E),
 5805                                                                                (   'chr newvia_1'(E,
 5806                                                                                                   F)
 5807                                                                                ->  get_attr(F,
 5808                                                                                             guard_entailment,
 5809                                                                                             G),
 5810                                                                                    G=v(_, _, _, _, H, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5811                                                                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 5812                                                                                              H)
 5813                                                                                ),
 5814                                                                                member(I,
 5815                                                                                       H),
 5816                                                                                I=suspension(_, active, _, _, J),
 5817                                                                                J==E,
 5818                                                                                !,
 5819                                                                                (   var(C)
 5820                                                                                ->  true
 5821                                                                                ;   C=suspension(_, K, _, _, L, M),
 5822                                                                                    setarg(2,
 5823                                                                                           C,
 5824                                                                                           removed),
 5825                                                                                    (   K==not_stored_yet
 5826                                                                                    ->  N=[]
 5827                                                                                    ;   term_variables(term(L,
 5828                                                                                                            M),
 5829                                                                                                       N),
 5830                                                                                        arg(4,
 5831                                                                                            C,
 5832                                                                                            O),
 5833                                                                                        (   var(O)
 5834                                                                                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5835                                                                                                      P),
 5836                                                                                            P=[_|Q],
 5837                                                                                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5838                                                                                                     Q),
 5839                                                                                            (   Q=[R|_]
 5840                                                                                            ->  setarg(4,
 5841                                                                                                       R,
 5842                                                                                                       _)
 5843                                                                                            ;   true
 5844                                                                                            )
 5845                                                                                        ;   O=[_, _|Q],
 5846                                                                                            setarg(2,
 5847                                                                                                   O,
 5848                                                                                                   Q),
 5849                                                                                            (   Q=[R|_]
 5850                                                                                            ->  setarg(4,
 5851                                                                                                       R,
 5852                                                                                                       O)
 5853                                                                                            ;   true
 5854                                                                                            )
 5855                                                                                        ),
 5856                                                                                        'detach_known/1_1_$special_;/2___2'(N,
 5857                                                                                                                            C)
 5858                                                                                    )
 5859                                                                                ),
 5860                                                                                known(B)
 5861                                                                            ;   D=var(S),
 5862                                                                                (   'chr newvia_1'(S,
 5863                                                                                                   T)
 5864                                                                                ->  get_attr(T,
 5865                                                                                             guard_entailment,
 5866                                                                                             U),
 5867                                                                                    U=v(_, _, _, _, _, V, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5868                                                                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 5869                                                                                              V)
 5870                                                                                ),
 5871                                                                                member(W,
 5872                                                                                       V),
 5873                                                                                W=suspension(_, active, _, _, X),
 5874                                                                                X==S,
 5875                                                                                !,
 5876                                                                                (   var(C)
 5877                                                                                ->  true
 5878                                                                                ;   C=suspension(_, Y, _, _, Z, A1),
 5879                                                                                    setarg(2,
 5880                                                                                           C,
 5881                                                                                           removed),
 5882                                                                                    (   Y==not_stored_yet
 5883                                                                                    ->  B1=[]
 5884                                                                                    ;   term_variables(term(Z,
 5885                                                                                                            A1),
 5886                                                                                                       B1),
 5887                                                                                        arg(4,
 5888                                                                                            C,
 5889                                                                                            C1),
 5890                                                                                        (   var(C1)
 5891                                                                                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5892                                                                                                      D1),
 5893                                                                                            D1=[_|E1],
 5894                                                                                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5895                                                                                                     E1),
 5896                                                                                            (   E1=[F1|_]
 5897                                                                                            ->  setarg(4,
 5898                                                                                                       F1,
 5899                                                                                                       _)
 5900                                                                                            ;   true
 5901                                                                                            )
 5902                                                                                        ;   C1=[_, _|E1],
 5903                                                                                            setarg(2,
 5904                                                                                                   C1,
 5905                                                                                                   E1),
 5906                                                                                            (   E1=[F1|_]
 5907                                                                                            ->  setarg(4,
 5908                                                                                                       F1,
 5909                                                                                                       C1)
 5910                                                                                            ;   true
 5911                                                                                            )
 5912                                                                                        ),
 5913                                                                                        'detach_known/1_1_$special_;/2___2'(B1,
 5914                                                                                                                            C)
 5915                                                                                    )
 5916                                                                                ),
 5917                                                                                known(B)
 5918                                                                            )
 5919                                                                        ;   D=atom(G1),
 5920                                                                            (   'chr newvia_1'(G1,
 5921                                                                                               H1)
 5922                                                                            ->  get_attr(H1,
 5923                                                                                         guard_entailment,
 5924                                                                                         I1),
 5925                                                                                I1=v(_, _, _, _, _, _, J1, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5926                                                                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 5927                                                                                          J1)
 5928                                                                            ),
 5929                                                                            member(K1,
 5930                                                                                   J1),
 5931                                                                            K1=suspension(_, active, _, _, _, L1),
 5932                                                                            L1==G1,
 5933                                                                            !,
 5934                                                                            (   var(C)
 5935                                                                            ->  true
 5936                                                                            ;   C=suspension(_, M1, _, _, N1, O1),
 5937                                                                                setarg(2,
 5938                                                                                       C,
 5939                                                                                       removed),
 5940                                                                                (   M1==not_stored_yet
 5941                                                                                ->  P1=[]
 5942                                                                                ;   term_variables(term(N1,
 5943                                                                                                        O1),
 5944                                                                                                   P1),
 5945                                                                                    arg(4,
 5946                                                                                        C,
 5947                                                                                        Q1),
 5948                                                                                    (   var(Q1)
 5949                                                                                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5950                                                                                                  R1),
 5951                                                                                        R1=[_|S1],
 5952                                                                                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5953                                                                                                 S1),
 5954                                                                                        (   S1=[T1|_]
 5955                                                                                        ->  setarg(4,
 5956                                                                                                   T1,
 5957                                                                                                   _)
 5958                                                                                        ;   true
 5959                                                                                        )
 5960                                                                                    ;   Q1=[_, _|S1],
 5961                                                                                        setarg(2,
 5962                                                                                               Q1,
 5963                                                                                               S1),
 5964                                                                                        (   S1=[T1|_]
 5965                                                                                        ->  setarg(4,
 5966                                                                                                   T1,
 5967                                                                                                   Q1)
 5968                                                                                        ;   true
 5969                                                                                        )
 5970                                                                                    ),
 5971                                                                                    'detach_known/1_1_$special_;/2___2'(P1,
 5972                                                                                                                        C)
 5973                                                                                )
 5974                                                                            ),
 5975                                                                            known(B)
 5976                                                                        )
 5977                                                                    ;   D=atomic(U1),
 5978                                                                        (   'chr newvia_1'(U1,
 5979                                                                                           V1)
 5980                                                                        ->  get_attr(V1,
 5981                                                                                     guard_entailment,
 5982                                                                                     W1),
 5983                                                                            W1=v(_, _, _, _, _, _, _, X1, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5984                                                                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 5985                                                                                      X1)
 5986                                                                        ),
 5987                                                                        member(Y1,
 5988                                                                               X1),
 5989                                                                        Y1=suspension(_, active, _, _, _, Z1),
 5990                                                                        Z1==U1,
 5991                                                                        !,
 5992                                                                        (   var(C)
 5993                                                                        ->  true
 5994                                                                        ;   C=suspension(_, A2, _, _, B2, C2),
 5995                                                                            setarg(2,
 5996                                                                                   C,
 5997                                                                                   removed),
 5998                                                                            (   A2==not_stored_yet
 5999                                                                            ->  D2=[]
 6000                                                                            ;   term_variables(term(B2,
 6001                                                                                                    C2),
 6002                                                                                               D2),
 6003                                                                                arg(4,
 6004                                                                                    C,
 6005                                                                                    E2),
 6006                                                                                (   var(E2)
 6007                                                                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6008                                                                                              F2),
 6009                                                                                    F2=[_|G2],
 6010                                                                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6011                                                                                             G2),
 6012                                                                                    (   G2=[H2|_]
 6013                                                                                    ->  setarg(4,
 6014                                                                                               H2,
 6015                                                                                               _)
 6016                                                                                    ;   true
 6017                                                                                    )
 6018                                                                                ;   E2=[_, _|G2],
 6019                                                                                    setarg(2,
 6020                                                                                           E2,
 6021                                                                                           G2),
 6022                                                                                    (   G2=[H2|_]
 6023                                                                                    ->  setarg(4,
 6024                                                                                               H2,
 6025                                                                                               E2)
 6026                                                                                    ;   true
 6027                                                                                    )
 6028                                                                                ),
 6029                                                                                'detach_known/1_1_$special_;/2___2'(D2,
 6030                                                                                                                    C)
 6031                                                                            )
 6032                                                                        ),
 6033                                                                        known(B)
 6034                                                                    )
 6035                                                                ;   D=compound(I2),
 6036                                                                    (   'chr newvia_1'(I2,
 6037                                                                                       J2)
 6038                                                                    ->  get_attr(J2,
 6039                                                                                 guard_entailment,
 6040                                                                                 K2),
 6041                                                                        K2=v(_, _, _, _, _, _, _, _, L2, _, _, _, _, _, _, _, _, _, _, _, _, _)
 6042                                                                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 6043                                                                                  L2)
 6044                                                                    ),
 6045                                                                    member(M2,
 6046                                                                           L2),
 6047                                                                    M2=suspension(_, active, _, _, _, N2),
 6048                                                                    N2==I2,
 6049                                                                    !,
 6050                                                                    (   var(C)
 6051                                                                    ->  true
 6052                                                                    ;   C=suspension(_, O2, _, _, P2, Q2),
 6053                                                                        setarg(2,
 6054                                                                               C,
 6055                                                                               removed),
 6056                                                                        (   O2==not_stored_yet
 6057                                                                        ->  R2=[]
 6058                                                                        ;   term_variables(term(P2,
 6059                                                                                                Q2),
 6060                                                                                           R2),
 6061                                                                            arg(4,
 6062                                                                                C,
 6063                                                                                S2),
 6064                                                                            (   var(S2)
 6065                                                                            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6066                                                                                          T2),
 6067                                                                                T2=[_|U2],
 6068                                                                                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6069                                                                                         U2),
 6070                                                                                (   U2=[V2|_]
 6071                                                                                ->  setarg(4,
 6072                                                                                           V2,
 6073                                                                                           _)
 6074                                                                                ;   true
 6075                                                                                )
 6076                                                                            ;   S2=[_, _|U2],
 6077                                                                                setarg(2,
 6078                                                                                       S2,
 6079                                                                                       U2),
 6080                                                                                (   U2=[V2|_]
 6081                                                                                ->  setarg(4,
 6082                                                                                           V2,
 6083                                                                                           S2)
 6084                                                                                ;   true
 6085                                                                                )
 6086                                                                            ),
 6087                                                                            'detach_known/1_1_$special_;/2___2'(R2,
 6088                                                                                                                C)
 6089                                                                        )
 6090                                                                    ),
 6091                                                                    known(B)
 6092                                                                )
 6093                                                            ;   D=ground(W2),
 6094                                                                (   'chr newvia_1'(W2,
 6095                                                                                   X2)
 6096                                                                ->  get_attr(X2,
 6097                                                                             guard_entailment,
 6098                                                                             Y2),
 6099                                                                    Y2=v(_, _, _, _, _, _, _, _, _, Z2, _, _, _, _, _, _, _, _, _, _, _, _)
 6100                                                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 6101                                                                              Z2)
 6102                                                                ),
 6103                                                                member(A3,
 6104                                                                       Z2),
 6105                                                                A3=suspension(_, active, _, _, _, B3),
 6106                                                                B3==W2,
 6107                                                                !,
 6108                                                                (   var(C)
 6109                                                                ->  true
 6110                                                                ;   C=suspension(_, C3, _, _, D3, E3),
 6111                                                                    setarg(2,
 6112                                                                           C,
 6113                                                                           removed),
 6114                                                                    (   C3==not_stored_yet
 6115                                                                    ->  F3=[]
 6116                                                                    ;   term_variables(term(D3,
 6117                                                                                            E3),
 6118                                                                                       F3),
 6119                                                                        arg(4,
 6120                                                                            C,
 6121                                                                            G3),
 6122                                                                        (   var(G3)
 6123                                                                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6124                                                                                      H3),
 6125                                                                            H3=[_|I3],
 6126                                                                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6127                                                                                     I3),
 6128                                                                            (   I3=[J3|_]
 6129                                                                            ->  setarg(4,
 6130                                                                                       J3,
 6131                                                                                       _)
 6132                                                                            ;   true
 6133                                                                            )
 6134                                                                        ;   G3=[_, _|I3],
 6135                                                                            setarg(2,
 6136                                                                                   G3,
 6137                                                                                   I3),
 6138                                                                            (   I3=[J3|_]
 6139                                                                            ->  setarg(4,
 6140                                                                                       J3,
 6141                                                                                       G3)
 6142                                                                            ;   true
 6143                                                                            )
 6144                                                                        ),
 6145                                                                        'detach_known/1_1_$special_;/2___2'(F3,
 6146                                                                                                            C)
 6147                                                                    )
 6148                                                                ),
 6149                                                                known(B)
 6150                                                            )
 6151                                                        ;   D=integer(K3),
 6152                                                            (   'chr newvia_1'(K3,
 6153                                                                               L3)
 6154                                                            ->  get_attr(L3,
 6155                                                                         guard_entailment,
 6156                                                                         M3),
 6157                                                                M3=v(_, _, _, _, _, _, _, _, _, _, N3, _, _, _, _, _, _, _, _, _, _, _)
 6158                                                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 6159                                                                          N3)
 6160                                                            ),
 6161                                                            member(O3,
 6162                                                                   N3),
 6163                                                            O3=suspension(_, active, _, _, _, P3),
 6164                                                            P3==K3,
 6165                                                            !,
 6166                                                            (   var(C)
 6167                                                            ->  true
 6168                                                            ;   C=suspension(_, Q3, _, _, R3, S3),
 6169                                                                setarg(2,
 6170                                                                       C,
 6171                                                                       removed),
 6172                                                                (   Q3==not_stored_yet
 6173                                                                ->  T3=[]
 6174                                                                ;   term_variables(term(R3,
 6175                                                                                        S3),
 6176                                                                                   T3),
 6177                                                                    arg(4,
 6178                                                                        C,
 6179                                                                        U3),
 6180                                                                    (   var(U3)
 6181                                                                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6182                                                                                  V3),
 6183                                                                        V3=[_|W3],
 6184                                                                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6185                                                                                 W3),
 6186                                                                        (   W3=[X3|_]
 6187                                                                        ->  setarg(4,
 6188                                                                                   X3,
 6189                                                                                   _)
 6190                                                                        ;   true
 6191                                                                        )
 6192                                                                    ;   U3=[_, _|W3],
 6193                                                                        setarg(2,
 6194                                                                               U3,
 6195                                                                               W3),
 6196                                                                        (   W3=[X3|_]
 6197                                                                        ->  setarg(4,
 6198                                                                                   X3,
 6199                                                                                   U3)
 6200                                                                        ;   true
 6201                                                                        )
 6202                                                                    ),
 6203                                                                    'detach_known/1_1_$special_;/2___2'(T3,
 6204                                                                                                        C)
 6205                                                                )
 6206                                                            ),
 6207                                                            known(B)
 6208                                                        )
 6209                                                    ;   D=float(Y3),
 6210                                                        (   'chr newvia_1'(Y3,
 6211                                                                           Z3)
 6212                                                        ->  get_attr(Z3,
 6213                                                                     guard_entailment,
 6214                                                                     A4),
 6215                                                            A4=v(_, _, _, _, _, _, _, _, _, _, _, B4, _, _, _, _, _, _, _, _, _, _)
 6216                                                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 6217                                                                      B4)
 6218                                                        ),
 6219                                                        member(C4,
 6220                                                               B4),
 6221                                                        C4=suspension(_, active, _, _, _, D4),
 6222                                                        D4==Y3,
 6223                                                        !,
 6224                                                        (   var(C)
 6225                                                        ->  true
 6226                                                        ;   C=suspension(_, E4, _, _, F4, G4),
 6227                                                            setarg(2,
 6228                                                                   C,
 6229                                                                   removed),
 6230                                                            (   E4==not_stored_yet
 6231                                                            ->  H4=[]
 6232                                                            ;   term_variables(term(F4,
 6233                                                                                    G4),
 6234                                                                               H4),
 6235                                                                arg(4,
 6236                                                                    C,
 6237                                                                    I4),
 6238                                                                (   var(I4)
 6239                                                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6240                                                                              J4),
 6241                                                                    J4=[_|K4],
 6242                                                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6243                                                                             K4),
 6244                                                                    (   K4=[L4|_]
 6245                                                                    ->  setarg(4,
 6246                                                                               L4,
 6247                                                                               _)
 6248                                                                    ;   true
 6249                                                                    )
 6250                                                                ;   I4=[_, _|K4],
 6251                                                                    setarg(2,
 6252                                                                           I4,
 6253                                                                           K4),
 6254                                                                    (   K4=[L4|_]
 6255                                                                    ->  setarg(4,
 6256                                                                               L4,
 6257                                                                               I4)
 6258                                                                    ;   true
 6259                                                                    )
 6260                                                                ),
 6261                                                                'detach_known/1_1_$special_;/2___2'(H4,
 6262                                                                                                    C)
 6263                                                            )
 6264                                                        ),
 6265                                                        known(B)
 6266                                                    )
 6267                                                ;   D=number(M4),
 6268                                                    (   'chr newvia_1'(M4,
 6269                                                                       N4)
 6270                                                    ->  get_attr(N4,
 6271                                                                 guard_entailment,
 6272                                                                 O4),
 6273                                                        O4=v(_, _, _, _, _, _, _, _, _, _, _, _, P4, _, _, _, _, _, _, _, _, _)
 6274                                                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 6275                                                                  P4)
 6276                                                    ),
 6277                                                    member(Q4,
 6278                                                           P4),
 6279                                                    Q4=suspension(_, active, _, _, _, R4),
 6280                                                    R4==M4,
 6281                                                    !,
 6282                                                    (   var(C)
 6283                                                    ->  true
 6284                                                    ;   C=suspension(_, S4, _, _, T4, U4),
 6285                                                        setarg(2,
 6286                                                               C,
 6287                                                               removed),
 6288                                                        (   S4==not_stored_yet
 6289                                                        ->  V4=[]
 6290                                                        ;   term_variables(term(T4,
 6291                                                                                U4),
 6292                                                                           V4),
 6293                                                            arg(4,
 6294                                                                C,
 6295                                                                W4),
 6296                                                            (   var(W4)
 6297                                                            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6298                                                                          X4),
 6299                                                                X4=[_|Y4],
 6300                                                                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6301                                                                         Y4),
 6302                                                                (   Y4=[Z4|_]
 6303                                                                ->  setarg(4,
 6304                                                                           Z4,
 6305                                                                           _)
 6306                                                                ;   true
 6307                                                                )
 6308                                                            ;   W4=[_, _|Y4],
 6309                                                                setarg(2,
 6310                                                                       W4,
 6311                                                                       Y4),
 6312                                                                (   Y4=[Z4|_]
 6313                                                                ->  setarg(4,
 6314                                                                           Z4,
 6315                                                                           W4)
 6316                                                                ;   true
 6317                                                                )
 6318                                                            ),
 6319                                                            'detach_known/1_1_$special_;/2___2'(V4,
 6320                                                                                                C)
 6321                                                        )
 6322                                                    ),
 6323                                                    known(B)
 6324                                                )
 6325                                            ;   D=(A5=\=B5),
 6326                                                (   'chr newvia_2'(A5,
 6327                                                                   B5,
 6328                                                                   C5)
 6329                                                ->  get_attr(C5,
 6330                                                             guard_entailment,
 6331                                                             D5),
 6332                                                    D5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, E5, _, _, _, _, _, _, _, _)
 6333                                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 6334                                                              E5)
 6335                                                ),
 6336                                                member(F5, E5),
 6337                                                F5=suspension(_, active, _, _, _, G5, H5),
 6338                                                G5==A5,
 6339                                                H5==B5,
 6340                                                !,
 6341                                                (   var(C)
 6342                                                ->  true
 6343                                                ;   C=suspension(_, I5, _, _, J5, K5),
 6344                                                    setarg(2, C, removed),
 6345                                                    (   I5==not_stored_yet
 6346                                                    ->  L5=[]
 6347                                                    ;   term_variables(term(J5,
 6348                                                                            K5),
 6349                                                                       L5),
 6350                                                        arg(4,
 6351                                                            C,
 6352                                                            M5),
 6353                                                        (   var(M5)
 6354                                                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6355                                                                      N5),
 6356                                                            N5=[_|O5],
 6357                                                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6358                                                                     O5),
 6359                                                            (   O5=[P5|_]
 6360                                                            ->  setarg(4,
 6361                                                                       P5,
 6362                                                                       _)
 6363                                                            ;   true
 6364                                                            )
 6365                                                        ;   M5=[_, _|O5],
 6366                                                            setarg(2,
 6367                                                                   M5,
 6368                                                                   O5),
 6369                                                            (   O5=[P5|_]
 6370                                                            ->  setarg(4,
 6371                                                                       P5,
 6372                                                                       M5)
 6373                                                            ;   true
 6374                                                            )
 6375                                                        ),
 6376                                                        'detach_known/1_1_$special_;/2___2'(L5,
 6377                                                                                            C)
 6378                                                    )
 6379                                                ),
 6380                                                known(B)
 6381                                            )
 6382                                        ;   D=(\+Q5),
 6383                                            (   'chr newvia_1'(Q5,
 6384                                                               R5)
 6385                                            ->  get_attr(R5,
 6386                                                         guard_entailment,
 6387                                                         S5),
 6388                                                S5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, T5, _, _, _, _, _, _, _)
 6389                                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 6390                                                          T5)
 6391                                            ),
 6392                                            member(U5, T5),
 6393                                            U5=suspension(_, active, _, _, V5),
 6394                                            V5==Q5,
 6395                                            !,
 6396                                            (   var(C)
 6397                                            ->  true
 6398                                            ;   C=suspension(_, W5, _, _, X5, Y5),
 6399                                                setarg(2, C, removed),
 6400                                                (   W5==not_stored_yet
 6401                                                ->  Z5=[]
 6402                                                ;   term_variables(term(X5,
 6403                                                                        Y5),
 6404                                                                   Z5),
 6405                                                    arg(4, C, A6),
 6406                                                    (   var(A6)
 6407                                                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6408                                                                  B6),
 6409                                                        B6=[_|C6],
 6410                                                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6411                                                                 C6),
 6412                                                        (   C6=[D6|_]
 6413                                                        ->  setarg(4,
 6414                                                                   D6,
 6415                                                                   _)
 6416                                                        ;   true
 6417                                                        )
 6418                                                    ;   A6=[_, _|C6],
 6419                                                        setarg(2,
 6420                                                               A6,
 6421                                                               C6),
 6422                                                        (   C6=[D6|_]
 6423                                                        ->  setarg(4,
 6424                                                                   D6,
 6425                                                                   A6)
 6426                                                        ;   true
 6427                                                        )
 6428                                                    ),
 6429                                                    'detach_known/1_1_$special_;/2___2'(Z5,
 6430                                                                                        C)
 6431                                                )
 6432                                            ),
 6433                                            known(B)
 6434                                        )
 6435                                    ;   D=functor(E6, F6, G6),
 6436                                        (   'chr newvia'([ E6,
 6437                                                           F6,
 6438                                                           G6
 6439                                                         ],
 6440                                                         H6)
 6441                                        ->  get_attr(H6,
 6442                                                     guard_entailment,
 6443                                                     I6),
 6444                                            I6=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, J6, _, _, _, _, _, _)
 6445                                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 6446                                                      J6)
 6447                                        ),
 6448                                        member(K6, J6),
 6449                                        K6=suspension(_, active, _, _, L6, M6, N6),
 6450                                        L6==E6,
 6451                                        M6==F6,
 6452                                        N6==G6,
 6453                                        !,
 6454                                        (   var(C)
 6455                                        ->  true
 6456                                        ;   C=suspension(_, O6, _, _, P6, Q6),
 6457                                            setarg(2, C, removed),
 6458                                            (   O6==not_stored_yet
 6459                                            ->  R6=[]
 6460                                            ;   term_variables(term(P6,
 6461                                                                    Q6),
 6462                                                               R6),
 6463                                                arg(4, C, S6),
 6464                                                (   var(S6)
 6465                                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6466                                                              T6),
 6467                                                    T6=[_|U6],
 6468                                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6469                                                             U6),
 6470                                                    (   U6=[V6|_]
 6471                                                    ->  setarg(4,
 6472                                                               V6,
 6473                                                               _)
 6474                                                    ;   true
 6475                                                    )
 6476                                                ;   S6=[_, _|U6],
 6477                                                    setarg(2,
 6478                                                           S6,
 6479                                                           U6),
 6480                                                    (   U6=[V6|_]
 6481                                                    ->  setarg(4,
 6482                                                               V6,
 6483                                                               S6)
 6484                                                    ;   true
 6485                                                    )
 6486                                                ),
 6487                                                'detach_known/1_1_$special_;/2___2'(R6,
 6488                                                                                    C)
 6489                                            )
 6490                                        ),
 6491                                        known(B)
 6492                                    )
 6493                                ;   D=(W6\=X6),
 6494                                    (   'chr newvia_2'(W6,
 6495                                                       X6,
 6496                                                       Y6)
 6497                                    ->  get_attr(Y6,
 6498                                                 guard_entailment,
 6499                                                 Z6),
 6500                                        Z6=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, A7, _, _, _, _, _)
 6501                                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 6502                                                  A7)
 6503                                    ),
 6504                                    member(B7, A7),
 6505                                    B7=suspension(_, active, _, _, _, C7, D7),
 6506                                    C7==W6,
 6507                                    D7==X6,
 6508                                    !,
 6509                                    (   var(C)
 6510                                    ->  true
 6511                                    ;   C=suspension(_, E7, _, _, F7, G7),
 6512                                        setarg(2, C, removed),
 6513                                        (   E7==not_stored_yet
 6514                                        ->  H7=[]
 6515                                        ;   term_variables(term(F7,
 6516                                                                G7),
 6517                                                           H7),
 6518                                            arg(4, C, I7),
 6519                                            (   var(I7)
 6520                                            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6521                                                          J7),
 6522                                                J7=[_|K7],
 6523                                                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6524                                                         K7),
 6525                                                (   K7=[L7|_]
 6526                                                ->  setarg(4,
 6527                                                           L7,
 6528                                                           _)
 6529                                                ;   true
 6530                                                )
 6531                                            ;   I7=[_, _|K7],
 6532                                                setarg(2, I7, K7),
 6533                                                (   K7=[L7|_]
 6534                                                ->  setarg(4,
 6535                                                           L7,
 6536                                                           I7)
 6537                                                ;   true
 6538                                                )
 6539                                            ),
 6540                                            'detach_known/1_1_$special_;/2___2'(H7,
 6541                                                                                C)
 6542                                        )
 6543                                    ),
 6544                                    known(B)
 6545                                )
 6546                            ;   D=(M7=N7),
 6547                                (   'chr newvia_2'(M7,
 6548                                                   N7,
 6549                                                   O7)
 6550                                ->  get_attr(O7,
 6551                                             guard_entailment,
 6552                                             P7),
 6553                                    P7=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, Q7, _, _, _, _)
 6554                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 6555                                              Q7)
 6556                                ),
 6557                                member(R7, Q7),
 6558                                R7=suspension(_, active, _, _, S7, T7),
 6559                                S7==M7,
 6560                                T7==N7,
 6561                                !,
 6562                                (   var(C)
 6563                                ->  true
 6564                                ;   C=suspension(_, U7, _, _, V7, W7),
 6565                                    setarg(2, C, removed),
 6566                                    (   U7==not_stored_yet
 6567                                    ->  X7=[]
 6568                                    ;   term_variables(term(V7,
 6569                                                            W7),
 6570                                                       X7),
 6571                                        arg(4, C, Y7),
 6572                                        (   var(Y7)
 6573                                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6574                                                      Z7),
 6575                                            Z7=[_|A8],
 6576                                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6577                                                     A8),
 6578                                            (   A8=[B8|_]
 6579                                            ->  setarg(4, B8, _)
 6580                                            ;   true
 6581                                            )
 6582                                        ;   Y7=[_, _|A8],
 6583                                            setarg(2, Y7, A8),
 6584                                            (   A8=[B8|_]
 6585                                            ->  setarg(4, B8, Y7)
 6586                                            ;   true
 6587                                            )
 6588                                        ),
 6589                                        'detach_known/1_1_$special_;/2___2'(X7,
 6590                                                                            C)
 6591                                    )
 6592                                ),
 6593                                known(B)
 6594                            )
 6595                        ;   D=(C8\==D8),
 6596                            (   'chr newvia_2'(C8, D8, E8)
 6597                            ->  get_attr(E8, guard_entailment, F8),
 6598                                F8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, G8, _, _, _)
 6599                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 6600                                          G8)
 6601                            ),
 6602                            member(H8, G8),
 6603                            H8=suspension(_, active, _, _, _, I8, J8),
 6604                            I8==C8,
 6605                            J8==D8,
 6606                            !,
 6607                            (   var(C)
 6608                            ->  true
 6609                            ;   C=suspension(_, K8, _, _, L8, M8),
 6610                                setarg(2, C, removed),
 6611                                (   K8==not_stored_yet
 6612                                ->  N8=[]
 6613                                ;   term_variables(term(L8, M8),
 6614                                                   N8),
 6615                                    arg(4, C, O8),
 6616                                    (   var(O8)
 6617                                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6618                                                  P8),
 6619                                        P8=[_|Q8],
 6620                                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6621                                                 Q8),
 6622                                        (   Q8=[R8|_]
 6623                                        ->  setarg(4, R8, _)
 6624                                        ;   true
 6625                                        )
 6626                                    ;   O8=[_, _|Q8],
 6627                                        setarg(2, O8, Q8),
 6628                                        (   Q8=[R8|_]
 6629                                        ->  setarg(4, R8, O8)
 6630                                        ;   true
 6631                                        )
 6632                                    ),
 6633                                    'detach_known/1_1_$special_;/2___2'(N8,
 6634                                                                        C)
 6635                                )
 6636                            ),
 6637                            known(B)
 6638                        )
 6639                    ;   D=(S8==T8),
 6640                        (   'chr newvia_2'(S8, T8, U8)
 6641                        ->  get_attr(U8, guard_entailment, V8),
 6642                            V8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, W8, _, _)
 6643                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 6644                                      W8)
 6645                        ),
 6646                        member(X8, W8),
 6647                        X8=suspension(_, active, _, _, _, Y8, Z8),
 6648                        Y8==S8,
 6649                        Z8==T8,
 6650                        !,
 6651                        (   var(C)
 6652                        ->  true
 6653                        ;   C=suspension(_, A9, _, _, B9, C9),
 6654                            setarg(2, C, removed),
 6655                            (   A9==not_stored_yet
 6656                            ->  D9=[]
 6657                            ;   term_variables(term(B9, C9),
 6658                                               D9),
 6659                                arg(4, C, E9),
 6660                                (   var(E9)
 6661                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6662                                              F9),
 6663                                    F9=[_|G9],
 6664                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6665                                             G9),
 6666                                    (   G9=[H9|_]
 6667                                    ->  setarg(4, H9, _)
 6668                                    ;   true
 6669                                    )
 6670                                ;   E9=[_, _|G9],
 6671                                    setarg(2, E9, G9),
 6672                                    (   G9=[H9|_]
 6673                                    ->  setarg(4, H9, E9)
 6674                                    ;   true
 6675                                    )
 6676                                ),
 6677                                'detach_known/1_1_$special_;/2___2'(D9,
 6678                                                                    C)
 6679                            )
 6680                        ),
 6681                        known(B)
 6682                    )
 6683                ;   D=(I9=<J9),
 6684                    (   'chr newvia_2'(I9, J9, K9)
 6685                    ->  get_attr(K9, guard_entailment, L9),
 6686                        L9=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, M9, _)
 6687                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 6688                                  M9)
 6689                    ),
 6690                    member(N9, M9),
 6691                    N9=suspension(_, active, _, _, _, O9, P9),
 6692                    O9==I9,
 6693                    P9==J9,
 6694                    !,
 6695                    (   var(C)
 6696                    ->  true
 6697                    ;   C=suspension(_, Q9, _, _, R9, S9),
 6698                        setarg(2, C, removed),
 6699                        (   Q9==not_stored_yet
 6700                        ->  T9=[]
 6701                        ;   term_variables(term(R9, S9),
 6702                                           T9),
 6703                            arg(4, C, U9),
 6704                            (   var(U9)
 6705                            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6706                                          V9),
 6707                                V9=[_|W9],
 6708                                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6709                                         W9),
 6710                                (   W9=[X9|_]
 6711                                ->  setarg(4, X9, _)
 6712                                ;   true
 6713                                )
 6714                            ;   U9=[_, _|W9],
 6715                                setarg(2, U9, W9),
 6716                                (   W9=[X9|_]
 6717                                ->  setarg(4, X9, U9)
 6718                                ;   true
 6719                                )
 6720                            ),
 6721                            'detach_known/1_1_$special_;/2___2'(T9,
 6722                                                                C)
 6723                        )
 6724                    ),
 6725                    known(B)
 6726                )
 6727            ;   D=(Y9=:=Z9),
 6728                (   'chr newvia_2'(Y9, Z9, A10)
 6729                ->  get_attr(A10, guard_entailment, B10),
 6730                    B10=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C10)
 6731                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 6732                              C10)
 6733                ),
 6734                member(D10, C10),
 6735                D10=suspension(_, active, _, _, _, E10, F10),
 6736                E10==Y9,
 6737                F10==Z9,
 6738                !,
 6739                (   var(C)
 6740                ->  true
 6741                ;   C=suspension(_, G10, _, _, H10, I10),
 6742                    setarg(2, C, removed),
 6743                    (   G10==not_stored_yet
 6744                    ->  J10=[]
 6745                    ;   term_variables(term(H10, I10), J10),
 6746                        arg(4, C, K10),
 6747                        (   var(K10)
 6748                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6749                                      L10),
 6750                            L10=[_|M10],
 6751                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6752                                     M10),
 6753                            (   M10=[N10|_]
 6754                            ->  setarg(4, N10, _)
 6755                            ;   true
 6756                            )
 6757                        ;   K10=[_, _|M10],
 6758                            setarg(2, K10, M10),
 6759                            (   M10=[N10|_]
 6760                            ->  setarg(4, N10, K10)
 6761                            ;   true
 6762                            )
 6763                        ),
 6764                        'detach_known/1_1_$special_;/2___2'(J10, C)
 6765                    )
 6766                ),
 6767                known(B)
 6768            )
 6769        ;   (   'chr newvia_1'(D, O10)
 6770            ->  get_attr(O10, guard_entailment, P10),
 6771                P10=v(_, _, Q10, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 6772            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 6773                          Q10)
 6774            ),
 6775            member(R10, Q10),
 6776            R10=suspension(_, active, _, _, S10),
 6777            S10==D,
 6778            !,
 6779            (   var(C)
 6780            ->  true
 6781            ;   C=suspension(_, T10, _, _, U10, V10),
 6782                setarg(2, C, removed),
 6783                (   T10==not_stored_yet
 6784                ->  W10=[]
 6785                ;   term_variables(term(U10, V10), W10),
 6786                    arg(4, C, X10),
 6787                    (   var(X10)
 6788                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6789                                  Y10),
 6790                        Y10=[_|Z10],
 6791                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6792                                 Z10),
 6793                        (   Z10=[A11|_]
 6794                        ->  setarg(4, A11, _)
 6795                        ;   true
 6796                        )
 6797                    ;   X10=[_, _|Z10],
 6798                        setarg(2, X10, Z10),
 6799                        (   Z10=[A11|_]
 6800                        ->  setarg(4, A11, X10)
 6801                        ;   true
 6802                        )
 6803                    ),
 6804                    'detach_known/1_1_$special_;/2___2'(W10, C)
 6805                )
 6806            ),
 6807            known(B)
 6808        )
 6809    ;   A=(B11, _),
 6810        nonvar(B11),
 6811        B11=(\+C11),
 6812        nonvar(C11),
 6813        C11=(D11;E11),
 6814        (   'chr newvia_2'(D11, E11, F11)
 6815        ->  get_attr(F11, guard_entailment, G11),
 6816            G11=v(_, _, _, H11, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 6817        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6818                      H11)
 6819        ),
 6820        member(I11, H11),
 6821        I11=suspension(_, active, _, _, J11, K11),
 6822        J11==D11,
 6823        K11==E11,
 6824        !,
 6825        (   var(C)
 6826        ->  true
 6827        ;   C=suspension(_, L11, _, _, M11, N11),
 6828            setarg(2, C, removed),
 6829            (   L11==not_stored_yet
 6830            ->  O11=[]
 6831            ;   term_variables(term(M11, N11), O11),
 6832                arg(4, C, P11),
 6833                (   var(P11)
 6834                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6835                              Q11),
 6836                    Q11=[_|R11],
 6837                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6838                             R11),
 6839                    (   R11=[S11|_]
 6840                    ->  setarg(4, S11, _)
 6841                    ;   true
 6842                    )
 6843                ;   P11=[_, _|R11],
 6844                    setarg(2, P11, R11),
 6845                    (   R11=[S11|_]
 6846                    ->  setarg(4, S11, P11)
 6847                    ;   true
 6848                    )
 6849                ),
 6850                'detach_known/1_1_$special_;/2___2'(O11, C)
 6851            )
 6852        ),
 6853        known(B)
 6854    ).
 6855'known/1_1_$special_;/2___2__1'(A, B, C) :-
 6856    (   'chr newvia_2'(A, B, D)
 6857    ->  get_attr(D, guard_entailment, E),
 6858        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 6859    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6860                  F)
 6861    ),
 6862    !,
 6863    'known/1_1_$special_;/2___2__1__0__34'(F, A, B, C).
 6864'known/1_1_$special_;/2___2__1__0__34'([], A, B, C) :-
 6865    'known/1_1_$special_;/2___2__2'(A, B, C).
 6866'known/1_1_$special_;/2___2__1__0__34'([A|B], C, D, E) :-
 6867    (   A=suspension(_, active, _, _, F, G),
 6868        nonvar(F),
 6869        F=(H, _),
 6870        nonvar(H),
 6871        H=(\+I),
 6872        nonvar(I),
 6873        I=(J;K),
 6874        J==C,
 6875        K==D
 6876    ->  A=suspension(_, _, _, _, L, M),
 6877        setarg(2, A, removed),
 6878        term_variables(term(L, M), N),
 6879        ( arg(4, A, O),
 6880          (   var(O)
 6881          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6882                        P),
 6883              P=[_|Q],
 6884              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6885                       Q),
 6886              (   Q=[R|_]
 6887              ->  setarg(4, R, _)
 6888              ;   true
 6889              )
 6890          ;   O=[_, _|Q],
 6891              setarg(2, O, Q),
 6892              (   Q=[R|_]
 6893              ->  setarg(4, R, O)
 6894              ;   true
 6895              )
 6896          )
 6897        ),
 6898        'detach_known/1_1_$special_;/2___2'(N, A),
 6899        arg(2, E, S),
 6900        setarg(2, E, active),
 6901        ( arg(3, E, T),
 6902          U is T+1,
 6903          setarg(3, E, U)
 6904        ),
 6905        (   S==not_stored_yet
 6906        ->  E=suspension(_, _, _, _, V, W),
 6907            term_variables(term(V, W), X),
 6908            'chr none_locked'(X),
 6909            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6910                      Y),
 6911            Z=[E|Y],
 6912            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6913                     Z),
 6914            (   Y=[A1|_]
 6915            ->  setarg(4, A1, Z)
 6916            ;   true
 6917            ),
 6918            'attach_known/1_1_$special_;/2___2'(X, E)
 6919        ;   true
 6920        ),
 6921        known(G),
 6922        (   E=suspension(_, active, U, _, _, _)
 6923        ->  setarg(2, E, inactive),
 6924            'known/1_1_$special_;/2___2__1__0__34'(B,
 6925                                                   C,
 6926                                                   D,
 6927                                                   E)
 6928        ;   true
 6929        )
 6930    ;   'known/1_1_$special_;/2___2__1__0__34'(B, C, D, E)
 6931    ).
 6932'known/1_1_$special_;/2___2__1'(A, B, C) :-
 6933    'known/1_1_$special_;/2___2__2'(A, B, C).
 6934'known/1_1_$special_;/2___2__2'(A, B, C) :-
 6935    nonvar(A),
 6936    A=(D, _),
 6937    nonvar(D),
 6938    D=(\+E),
 6939    (   nonvar(E),
 6940        (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   E=nonvar(F),
 6941                                                                            (   'chr newvia_1'(F,
 6942                                                                                               G)
 6943                                                                            ->  get_attr(G,
 6944                                                                                         guard_entailment,
 6945                                                                                         H),
 6946                                                                                H=v(_, _, _, _, I, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 6947                                                                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 6948                                                                                          I)
 6949                                                                            ),
 6950                                                                            member(J,
 6951                                                                                   I),
 6952                                                                            J=suspension(_, active, _, _, K),
 6953                                                                            K==F,
 6954                                                                            !,
 6955                                                                            (   var(C)
 6956                                                                            ->  true
 6957                                                                            ;   C=suspension(_, L, _, _, M, N),
 6958                                                                                setarg(2,
 6959                                                                                       C,
 6960                                                                                       removed),
 6961                                                                                (   L==not_stored_yet
 6962                                                                                ->  O=[]
 6963                                                                                ;   term_variables(term(M,
 6964                                                                                                        N),
 6965                                                                                                   O),
 6966                                                                                    arg(4,
 6967                                                                                        C,
 6968                                                                                        P),
 6969                                                                                    (   var(P)
 6970                                                                                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6971                                                                                                  Q),
 6972                                                                                        Q=[_|R],
 6973                                                                                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6974                                                                                                 R),
 6975                                                                                        (   R=[S|_]
 6976                                                                                        ->  setarg(4,
 6977                                                                                                   S,
 6978                                                                                                   _)
 6979                                                                                        ;   true
 6980                                                                                        )
 6981                                                                                    ;   P=[_, _|R],
 6982                                                                                        setarg(2,
 6983                                                                                               P,
 6984                                                                                               R),
 6985                                                                                        (   R=[S|_]
 6986                                                                                        ->  setarg(4,
 6987                                                                                                   S,
 6988                                                                                                   P)
 6989                                                                                        ;   true
 6990                                                                                        )
 6991                                                                                    ),
 6992                                                                                    'detach_known/1_1_$special_;/2___2'(O,
 6993                                                                                                                        C)
 6994                                                                                )
 6995                                                                            ),
 6996                                                                            known(B)
 6997                                                                        ;   E=var(T),
 6998                                                                            (   'chr newvia_1'(T,
 6999                                                                                               U)
 7000                                                                            ->  get_attr(U,
 7001                                                                                         guard_entailment,
 7002                                                                                         V),
 7003                                                                                V=v(_, _, _, _, _, W, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 7004                                                                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 7005                                                                                          W)
 7006                                                                            ),
 7007                                                                            member(X,
 7008                                                                                   W),
 7009                                                                            X=suspension(_, active, _, _, Y),
 7010                                                                            Y==T,
 7011                                                                            !,
 7012                                                                            (   var(C)
 7013                                                                            ->  true
 7014                                                                            ;   C=suspension(_, Z, _, _, A1, B1),
 7015                                                                                setarg(2,
 7016                                                                                       C,
 7017                                                                                       removed),
 7018                                                                                (   Z==not_stored_yet
 7019                                                                                ->  C1=[]
 7020                                                                                ;   term_variables(term(A1,
 7021                                                                                                        B1),
 7022                                                                                                   C1),
 7023                                                                                    arg(4,
 7024                                                                                        C,
 7025                                                                                        D1),
 7026                                                                                    (   var(D1)
 7027                                                                                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7028                                                                                                  E1),
 7029                                                                                        E1=[_|F1],
 7030                                                                                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7031                                                                                                 F1),
 7032                                                                                        (   F1=[G1|_]
 7033                                                                                        ->  setarg(4,
 7034                                                                                                   G1,
 7035                                                                                                   _)
 7036                                                                                        ;   true
 7037                                                                                        )
 7038                                                                                    ;   D1=[_, _|F1],
 7039                                                                                        setarg(2,
 7040                                                                                               D1,
 7041                                                                                               F1),
 7042                                                                                        (   F1=[G1|_]
 7043                                                                                        ->  setarg(4,
 7044                                                                                                   G1,
 7045                                                                                                   D1)
 7046                                                                                        ;   true
 7047                                                                                        )
 7048                                                                                    ),
 7049                                                                                    'detach_known/1_1_$special_;/2___2'(C1,
 7050                                                                                                                        C)
 7051                                                                                )
 7052                                                                            ),
 7053                                                                            known(B)
 7054                                                                        )
 7055                                                                    ;   E=atom(H1),
 7056                                                                        (   'chr newvia_1'(H1,
 7057                                                                                           I1)
 7058                                                                        ->  get_attr(I1,
 7059                                                                                     guard_entailment,
 7060                                                                                     J1),
 7061                                                                            J1=v(_, _, _, _, _, _, K1, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 7062                                                                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 7063                                                                                      K1)
 7064                                                                        ),
 7065                                                                        member(L1,
 7066                                                                               K1),
 7067                                                                        L1=suspension(_, active, _, _, _, M1),
 7068                                                                        M1==H1,
 7069                                                                        !,
 7070                                                                        (   var(C)
 7071                                                                        ->  true
 7072                                                                        ;   C=suspension(_, N1, _, _, O1, P1),
 7073                                                                            setarg(2,
 7074                                                                                   C,
 7075                                                                                   removed),
 7076                                                                            (   N1==not_stored_yet
 7077                                                                            ->  Q1=[]
 7078                                                                            ;   term_variables(term(O1,
 7079                                                                                                    P1),
 7080                                                                                               Q1),
 7081                                                                                arg(4,
 7082                                                                                    C,
 7083                                                                                    R1),
 7084                                                                                (   var(R1)
 7085                                                                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7086                                                                                              S1),
 7087                                                                                    S1=[_|T1],
 7088                                                                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7089                                                                                             T1),
 7090                                                                                    (   T1=[U1|_]
 7091                                                                                    ->  setarg(4,
 7092                                                                                               U1,
 7093                                                                                               _)
 7094                                                                                    ;   true
 7095                                                                                    )
 7096                                                                                ;   R1=[_, _|T1],
 7097                                                                                    setarg(2,
 7098                                                                                           R1,
 7099                                                                                           T1),
 7100                                                                                    (   T1=[U1|_]
 7101                                                                                    ->  setarg(4,
 7102                                                                                               U1,
 7103                                                                                               R1)
 7104                                                                                    ;   true
 7105                                                                                    )
 7106                                                                                ),
 7107                                                                                'detach_known/1_1_$special_;/2___2'(Q1,
 7108                                                                                                                    C)
 7109                                                                            )
 7110                                                                        ),
 7111                                                                        known(B)
 7112                                                                    )
 7113                                                                ;   E=atomic(V1),
 7114                                                                    (   'chr newvia_1'(V1,
 7115                                                                                       W1)
 7116                                                                    ->  get_attr(W1,
 7117                                                                                 guard_entailment,
 7118                                                                                 X1),
 7119                                                                        X1=v(_, _, _, _, _, _, _, Y1, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 7120                                                                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 7121                                                                                  Y1)
 7122                                                                    ),
 7123                                                                    member(Z1,
 7124                                                                           Y1),
 7125                                                                    Z1=suspension(_, active, _, _, _, A2),
 7126                                                                    A2==V1,
 7127                                                                    !,
 7128                                                                    (   var(C)
 7129                                                                    ->  true
 7130                                                                    ;   C=suspension(_, B2, _, _, C2, D2),
 7131                                                                        setarg(2,
 7132                                                                               C,
 7133                                                                               removed),
 7134                                                                        (   B2==not_stored_yet
 7135                                                                        ->  E2=[]
 7136                                                                        ;   term_variables(term(C2,
 7137                                                                                                D2),
 7138                                                                                           E2),
 7139                                                                            arg(4,
 7140                                                                                C,
 7141                                                                                F2),
 7142                                                                            (   var(F2)
 7143                                                                            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7144                                                                                          G2),
 7145                                                                                G2=[_|H2],
 7146                                                                                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7147                                                                                         H2),
 7148                                                                                (   H2=[I2|_]
 7149                                                                                ->  setarg(4,
 7150                                                                                           I2,
 7151                                                                                           _)
 7152                                                                                ;   true
 7153                                                                                )
 7154                                                                            ;   F2=[_, _|H2],
 7155                                                                                setarg(2,
 7156                                                                                       F2,
 7157                                                                                       H2),
 7158                                                                                (   H2=[I2|_]
 7159                                                                                ->  setarg(4,
 7160                                                                                           I2,
 7161                                                                                           F2)
 7162                                                                                ;   true
 7163                                                                                )
 7164                                                                            ),
 7165                                                                            'detach_known/1_1_$special_;/2___2'(E2,
 7166                                                                                                                C)
 7167                                                                        )
 7168                                                                    ),
 7169                                                                    known(B)
 7170                                                                )
 7171                                                            ;   E=compound(J2),
 7172                                                                (   'chr newvia_1'(J2,
 7173                                                                                   K2)
 7174                                                                ->  get_attr(K2,
 7175                                                                             guard_entailment,
 7176                                                                             L2),
 7177                                                                    L2=v(_, _, _, _, _, _, _, _, M2, _, _, _, _, _, _, _, _, _, _, _, _, _)
 7178                                                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 7179                                                                              M2)
 7180                                                                ),
 7181                                                                member(N2,
 7182                                                                       M2),
 7183                                                                N2=suspension(_, active, _, _, _, O2),
 7184                                                                O2==J2,
 7185                                                                !,
 7186                                                                (   var(C)
 7187                                                                ->  true
 7188                                                                ;   C=suspension(_, P2, _, _, Q2, R2),
 7189                                                                    setarg(2,
 7190                                                                           C,
 7191                                                                           removed),
 7192                                                                    (   P2==not_stored_yet
 7193                                                                    ->  S2=[]
 7194                                                                    ;   term_variables(term(Q2,
 7195                                                                                            R2),
 7196                                                                                       S2),
 7197                                                                        arg(4,
 7198                                                                            C,
 7199                                                                            T2),
 7200                                                                        (   var(T2)
 7201                                                                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7202                                                                                      U2),
 7203                                                                            U2=[_|V2],
 7204                                                                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7205                                                                                     V2),
 7206                                                                            (   V2=[W2|_]
 7207                                                                            ->  setarg(4,
 7208                                                                                       W2,
 7209                                                                                       _)
 7210                                                                            ;   true
 7211                                                                            )
 7212                                                                        ;   T2=[_, _|V2],
 7213                                                                            setarg(2,
 7214                                                                                   T2,
 7215                                                                                   V2),
 7216                                                                            (   V2=[W2|_]
 7217                                                                            ->  setarg(4,
 7218                                                                                       W2,
 7219                                                                                       T2)
 7220                                                                            ;   true
 7221                                                                            )
 7222                                                                        ),
 7223                                                                        'detach_known/1_1_$special_;/2___2'(S2,
 7224                                                                                                            C)
 7225                                                                    )
 7226                                                                ),
 7227                                                                known(B)
 7228                                                            )
 7229                                                        ;   E=ground(X2),
 7230                                                            (   'chr newvia_1'(X2,
 7231                                                                               Y2)
 7232                                                            ->  get_attr(Y2,
 7233                                                                         guard_entailment,
 7234                                                                         Z2),
 7235                                                                Z2=v(_, _, _, _, _, _, _, _, _, A3, _, _, _, _, _, _, _, _, _, _, _, _)
 7236                                                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 7237                                                                          A3)
 7238                                                            ),
 7239                                                            member(B3,
 7240                                                                   A3),
 7241                                                            B3=suspension(_, active, _, _, _, C3),
 7242                                                            C3==X2,
 7243                                                            !,
 7244                                                            (   var(C)
 7245                                                            ->  true
 7246                                                            ;   C=suspension(_, D3, _, _, E3, F3),
 7247                                                                setarg(2,
 7248                                                                       C,
 7249                                                                       removed),
 7250                                                                (   D3==not_stored_yet
 7251                                                                ->  G3=[]
 7252                                                                ;   term_variables(term(E3,
 7253                                                                                        F3),
 7254                                                                                   G3),
 7255                                                                    arg(4,
 7256                                                                        C,
 7257                                                                        H3),
 7258                                                                    (   var(H3)
 7259                                                                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7260                                                                                  I3),
 7261                                                                        I3=[_|J3],
 7262                                                                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7263                                                                                 J3),
 7264                                                                        (   J3=[K3|_]
 7265                                                                        ->  setarg(4,
 7266                                                                                   K3,
 7267                                                                                   _)
 7268                                                                        ;   true
 7269                                                                        )
 7270                                                                    ;   H3=[_, _|J3],
 7271                                                                        setarg(2,
 7272                                                                               H3,
 7273                                                                               J3),
 7274                                                                        (   J3=[K3|_]
 7275                                                                        ->  setarg(4,
 7276                                                                                   K3,
 7277                                                                                   H3)
 7278                                                                        ;   true
 7279                                                                        )
 7280                                                                    ),
 7281                                                                    'detach_known/1_1_$special_;/2___2'(G3,
 7282                                                                                                        C)
 7283                                                                )
 7284                                                            ),
 7285                                                            known(B)
 7286                                                        )
 7287                                                    ;   E=integer(L3),
 7288                                                        (   'chr newvia_1'(L3,
 7289                                                                           M3)
 7290                                                        ->  get_attr(M3,
 7291                                                                     guard_entailment,
 7292                                                                     N3),
 7293                                                            N3=v(_, _, _, _, _, _, _, _, _, _, O3, _, _, _, _, _, _, _, _, _, _, _)
 7294                                                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 7295                                                                      O3)
 7296                                                        ),
 7297                                                        member(P3,
 7298                                                               O3),
 7299                                                        P3=suspension(_, active, _, _, _, Q3),
 7300                                                        Q3==L3,
 7301                                                        !,
 7302                                                        (   var(C)
 7303                                                        ->  true
 7304                                                        ;   C=suspension(_, R3, _, _, S3, T3),
 7305                                                            setarg(2,
 7306                                                                   C,
 7307                                                                   removed),
 7308                                                            (   R3==not_stored_yet
 7309                                                            ->  U3=[]
 7310                                                            ;   term_variables(term(S3,
 7311                                                                                    T3),
 7312                                                                               U3),
 7313                                                                arg(4,
 7314                                                                    C,
 7315                                                                    V3),
 7316                                                                (   var(V3)
 7317                                                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7318                                                                              W3),
 7319                                                                    W3=[_|X3],
 7320                                                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7321                                                                             X3),
 7322                                                                    (   X3=[Y3|_]
 7323                                                                    ->  setarg(4,
 7324                                                                               Y3,
 7325                                                                               _)
 7326                                                                    ;   true
 7327                                                                    )
 7328                                                                ;   V3=[_, _|X3],
 7329                                                                    setarg(2,
 7330                                                                           V3,
 7331                                                                           X3),
 7332                                                                    (   X3=[Y3|_]
 7333                                                                    ->  setarg(4,
 7334                                                                               Y3,
 7335                                                                               V3)
 7336                                                                    ;   true
 7337                                                                    )
 7338                                                                ),
 7339                                                                'detach_known/1_1_$special_;/2___2'(U3,
 7340                                                                                                    C)
 7341                                                            )
 7342                                                        ),
 7343                                                        known(B)
 7344                                                    )
 7345                                                ;   E=float(Z3),
 7346                                                    (   'chr newvia_1'(Z3,
 7347                                                                       A4)
 7348                                                    ->  get_attr(A4,
 7349                                                                 guard_entailment,
 7350                                                                 B4),
 7351                                                        B4=v(_, _, _, _, _, _, _, _, _, _, _, C4, _, _, _, _, _, _, _, _, _, _)
 7352                                                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 7353                                                                  C4)
 7354                                                    ),
 7355                                                    member(D4,
 7356                                                           C4),
 7357                                                    D4=suspension(_, active, _, _, _, E4),
 7358                                                    E4==Z3,
 7359                                                    !,
 7360                                                    (   var(C)
 7361                                                    ->  true
 7362                                                    ;   C=suspension(_, F4, _, _, G4, H4),
 7363                                                        setarg(2,
 7364                                                               C,
 7365                                                               removed),
 7366                                                        (   F4==not_stored_yet
 7367                                                        ->  I4=[]
 7368                                                        ;   term_variables(term(G4,
 7369                                                                                H4),
 7370                                                                           I4),
 7371                                                            arg(4,
 7372                                                                C,
 7373                                                                J4),
 7374                                                            (   var(J4)
 7375                                                            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7376                                                                          K4),
 7377                                                                K4=[_|L4],
 7378                                                                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7379                                                                         L4),
 7380                                                                (   L4=[M4|_]
 7381                                                                ->  setarg(4,
 7382                                                                           M4,
 7383                                                                           _)
 7384                                                                ;   true
 7385                                                                )
 7386                                                            ;   J4=[_, _|L4],
 7387                                                                setarg(2,
 7388                                                                       J4,
 7389                                                                       L4),
 7390                                                                (   L4=[M4|_]
 7391                                                                ->  setarg(4,
 7392                                                                           M4,
 7393                                                                           J4)
 7394                                                                ;   true
 7395                                                                )
 7396                                                            ),
 7397                                                            'detach_known/1_1_$special_;/2___2'(I4,
 7398                                                                                                C)
 7399                                                        )
 7400                                                    ),
 7401                                                    known(B)
 7402                                                )
 7403                                            ;   E=number(N4),
 7404                                                (   'chr newvia_1'(N4,
 7405                                                                   O4)
 7406                                                ->  get_attr(O4,
 7407                                                             guard_entailment,
 7408                                                             P4),
 7409                                                    P4=v(_, _, _, _, _, _, _, _, _, _, _, _, Q4, _, _, _, _, _, _, _, _, _)
 7410                                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 7411                                                              Q4)
 7412                                                ),
 7413                                                member(R4, Q4),
 7414                                                R4=suspension(_, active, _, _, _, S4),
 7415                                                S4==N4,
 7416                                                !,
 7417                                                (   var(C)
 7418                                                ->  true
 7419                                                ;   C=suspension(_, T4, _, _, U4, V4),
 7420                                                    setarg(2, C, removed),
 7421                                                    (   T4==not_stored_yet
 7422                                                    ->  W4=[]
 7423                                                    ;   term_variables(term(U4,
 7424                                                                            V4),
 7425                                                                       W4),
 7426                                                        arg(4,
 7427                                                            C,
 7428                                                            X4),
 7429                                                        (   var(X4)
 7430                                                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7431                                                                      Y4),
 7432                                                            Y4=[_|Z4],
 7433                                                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7434                                                                     Z4),
 7435                                                            (   Z4=[A5|_]
 7436                                                            ->  setarg(4,
 7437                                                                       A5,
 7438                                                                       _)
 7439                                                            ;   true
 7440                                                            )
 7441                                                        ;   X4=[_, _|Z4],
 7442                                                            setarg(2,
 7443                                                                   X4,
 7444                                                                   Z4),
 7445                                                            (   Z4=[A5|_]
 7446                                                            ->  setarg(4,
 7447                                                                       A5,
 7448                                                                       X4)
 7449                                                            ;   true
 7450                                                            )
 7451                                                        ),
 7452                                                        'detach_known/1_1_$special_;/2___2'(W4,
 7453                                                                                            C)
 7454                                                    )
 7455                                                ),
 7456                                                known(B)
 7457                                            )
 7458                                        ;   E=(B5=\=C5),
 7459                                            (   'chr newvia_2'(B5,
 7460                                                               C5,
 7461                                                               D5)
 7462                                            ->  get_attr(D5,
 7463                                                         guard_entailment,
 7464                                                         E5),
 7465                                                E5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, F5, _, _, _, _, _, _, _, _)
 7466                                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 7467                                                          F5)
 7468                                            ),
 7469                                            member(G5, F5),
 7470                                            G5=suspension(_, active, _, _, _, H5, I5),
 7471                                            H5==B5,
 7472                                            I5==C5,
 7473                                            !,
 7474                                            (   var(C)
 7475                                            ->  true
 7476                                            ;   C=suspension(_, J5, _, _, K5, L5),
 7477                                                setarg(2, C, removed),
 7478                                                (   J5==not_stored_yet
 7479                                                ->  M5=[]
 7480                                                ;   term_variables(term(K5,
 7481                                                                        L5),
 7482                                                                   M5),
 7483                                                    arg(4, C, N5),
 7484                                                    (   var(N5)
 7485                                                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7486                                                                  O5),
 7487                                                        O5=[_|P5],
 7488                                                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7489                                                                 P5),
 7490                                                        (   P5=[Q5|_]
 7491                                                        ->  setarg(4,
 7492                                                                   Q5,
 7493                                                                   _)
 7494                                                        ;   true
 7495                                                        )
 7496                                                    ;   N5=[_, _|P5],
 7497                                                        setarg(2,
 7498                                                               N5,
 7499                                                               P5),
 7500                                                        (   P5=[Q5|_]
 7501                                                        ->  setarg(4,
 7502                                                                   Q5,
 7503                                                                   N5)
 7504                                                        ;   true
 7505                                                        )
 7506                                                    ),
 7507                                                    'detach_known/1_1_$special_;/2___2'(M5,
 7508                                                                                        C)
 7509                                                )
 7510                                            ),
 7511                                            known(B)
 7512                                        )
 7513                                    ;   E=(\+R5),
 7514                                        (   'chr newvia_1'(R5, S5)
 7515                                        ->  get_attr(S5,
 7516                                                     guard_entailment,
 7517                                                     T5),
 7518                                            T5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, U5, _, _, _, _, _, _, _)
 7519                                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 7520                                                      U5)
 7521                                        ),
 7522                                        member(V5, U5),
 7523                                        V5=suspension(_, active, _, _, W5),
 7524                                        W5==R5,
 7525                                        !,
 7526                                        (   var(C)
 7527                                        ->  true
 7528                                        ;   C=suspension(_, X5, _, _, Y5, Z5),
 7529                                            setarg(2, C, removed),
 7530                                            (   X5==not_stored_yet
 7531                                            ->  A6=[]
 7532                                            ;   term_variables(term(Y5,
 7533                                                                    Z5),
 7534                                                               A6),
 7535                                                arg(4, C, B6),
 7536                                                (   var(B6)
 7537                                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7538                                                              C6),
 7539                                                    C6=[_|D6],
 7540                                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7541                                                             D6),
 7542                                                    (   D6=[E6|_]
 7543                                                    ->  setarg(4,
 7544                                                               E6,
 7545                                                               _)
 7546                                                    ;   true
 7547                                                    )
 7548                                                ;   B6=[_, _|D6],
 7549                                                    setarg(2,
 7550                                                           B6,
 7551                                                           D6),
 7552                                                    (   D6=[E6|_]
 7553                                                    ->  setarg(4,
 7554                                                               E6,
 7555                                                               B6)
 7556                                                    ;   true
 7557                                                    )
 7558                                                ),
 7559                                                'detach_known/1_1_$special_;/2___2'(A6,
 7560                                                                                    C)
 7561                                            )
 7562                                        ),
 7563                                        known(B)
 7564                                    )
 7565                                ;   E=functor(F6, G6, H6),
 7566                                    (   'chr newvia'([ F6,
 7567                                                       G6,
 7568                                                       H6
 7569                                                     ],
 7570                                                     I6)
 7571                                    ->  get_attr(I6,
 7572                                                 guard_entailment,
 7573                                                 J6),
 7574                                        J6=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, K6, _, _, _, _, _, _)
 7575                                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 7576                                                  K6)
 7577                                    ),
 7578                                    member(L6, K6),
 7579                                    L6=suspension(_, active, _, _, M6, N6, O6),
 7580                                    M6==F6,
 7581                                    N6==G6,
 7582                                    O6==H6,
 7583                                    !,
 7584                                    (   var(C)
 7585                                    ->  true
 7586                                    ;   C=suspension(_, P6, _, _, Q6, R6),
 7587                                        setarg(2, C, removed),
 7588                                        (   P6==not_stored_yet
 7589                                        ->  S6=[]
 7590                                        ;   term_variables(term(Q6,
 7591                                                                R6),
 7592                                                           S6),
 7593                                            arg(4, C, T6),
 7594                                            (   var(T6)
 7595                                            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7596                                                          U6),
 7597                                                U6=[_|V6],
 7598                                                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7599                                                         V6),
 7600                                                (   V6=[W6|_]
 7601                                                ->  setarg(4,
 7602                                                           W6,
 7603                                                           _)
 7604                                                ;   true
 7605                                                )
 7606                                            ;   T6=[_, _|V6],
 7607                                                setarg(2, T6, V6),
 7608                                                (   V6=[W6|_]
 7609                                                ->  setarg(4,
 7610                                                           W6,
 7611                                                           T6)
 7612                                                ;   true
 7613                                                )
 7614                                            ),
 7615                                            'detach_known/1_1_$special_;/2___2'(S6,
 7616                                                                                C)
 7617                                        )
 7618                                    ),
 7619                                    known(B)
 7620                                )
 7621                            ;   E=(X6\=Y6),
 7622                                (   'chr newvia_2'(X6,
 7623                                                   Y6,
 7624                                                   Z6)
 7625                                ->  get_attr(Z6,
 7626                                             guard_entailment,
 7627                                             A7),
 7628                                    A7=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, B7, _, _, _, _, _)
 7629                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 7630                                              B7)
 7631                                ),
 7632                                member(C7, B7),
 7633                                C7=suspension(_, active, _, _, _, D7, E7),
 7634                                D7==X6,
 7635                                E7==Y6,
 7636                                !,
 7637                                (   var(C)
 7638                                ->  true
 7639                                ;   C=suspension(_, F7, _, _, G7, H7),
 7640                                    setarg(2, C, removed),
 7641                                    (   F7==not_stored_yet
 7642                                    ->  I7=[]
 7643                                    ;   term_variables(term(G7,
 7644                                                            H7),
 7645                                                       I7),
 7646                                        arg(4, C, J7),
 7647                                        (   var(J7)
 7648                                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7649                                                      K7),
 7650                                            K7=[_|L7],
 7651                                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7652                                                     L7),
 7653                                            (   L7=[M7|_]
 7654                                            ->  setarg(4, M7, _)
 7655                                            ;   true
 7656                                            )
 7657                                        ;   J7=[_, _|L7],
 7658                                            setarg(2, J7, L7),
 7659                                            (   L7=[M7|_]
 7660                                            ->  setarg(4, M7, J7)
 7661                                            ;   true
 7662                                            )
 7663                                        ),
 7664                                        'detach_known/1_1_$special_;/2___2'(I7,
 7665                                                                            C)
 7666                                    )
 7667                                ),
 7668                                known(B)
 7669                            )
 7670                        ;   E=(N7=O7),
 7671                            (   'chr newvia_2'(N7, O7, P7)
 7672                            ->  get_attr(P7, guard_entailment, Q7),
 7673                                Q7=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, R7, _, _, _, _)
 7674                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 7675                                          R7)
 7676                            ),
 7677                            member(S7, R7),
 7678                            S7=suspension(_, active, _, _, T7, U7),
 7679                            T7==N7,
 7680                            U7==O7,
 7681                            !,
 7682                            (   var(C)
 7683                            ->  true
 7684                            ;   C=suspension(_, V7, _, _, W7, X7),
 7685                                setarg(2, C, removed),
 7686                                (   V7==not_stored_yet
 7687                                ->  Y7=[]
 7688                                ;   term_variables(term(W7, X7),
 7689                                                   Y7),
 7690                                    arg(4, C, Z7),
 7691                                    (   var(Z7)
 7692                                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7693                                                  A8),
 7694                                        A8=[_|B8],
 7695                                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7696                                                 B8),
 7697                                        (   B8=[C8|_]
 7698                                        ->  setarg(4, C8, _)
 7699                                        ;   true
 7700                                        )
 7701                                    ;   Z7=[_, _|B8],
 7702                                        setarg(2, Z7, B8),
 7703                                        (   B8=[C8|_]
 7704                                        ->  setarg(4, C8, Z7)
 7705                                        ;   true
 7706                                        )
 7707                                    ),
 7708                                    'detach_known/1_1_$special_;/2___2'(Y7,
 7709                                                                        C)
 7710                                )
 7711                            ),
 7712                            known(B)
 7713                        )
 7714                    ;   E=(D8\==E8),
 7715                        (   'chr newvia_2'(D8, E8, F8)
 7716                        ->  get_attr(F8, guard_entailment, G8),
 7717                            G8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, H8, _, _, _)
 7718                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 7719                                      H8)
 7720                        ),
 7721                        member(I8, H8),
 7722                        I8=suspension(_, active, _, _, _, J8, K8),
 7723                        J8==D8,
 7724                        K8==E8,
 7725                        !,
 7726                        (   var(C)
 7727                        ->  true
 7728                        ;   C=suspension(_, L8, _, _, M8, N8),
 7729                            setarg(2, C, removed),
 7730                            (   L8==not_stored_yet
 7731                            ->  O8=[]
 7732                            ;   term_variables(term(M8, N8),
 7733                                               O8),
 7734                                arg(4, C, P8),
 7735                                (   var(P8)
 7736                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7737                                              Q8),
 7738                                    Q8=[_|R8],
 7739                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7740                                             R8),
 7741                                    (   R8=[S8|_]
 7742                                    ->  setarg(4, S8, _)
 7743                                    ;   true
 7744                                    )
 7745                                ;   P8=[_, _|R8],
 7746                                    setarg(2, P8, R8),
 7747                                    (   R8=[S8|_]
 7748                                    ->  setarg(4, S8, P8)
 7749                                    ;   true
 7750                                    )
 7751                                ),
 7752                                'detach_known/1_1_$special_;/2___2'(O8,
 7753                                                                    C)
 7754                            )
 7755                        ),
 7756                        known(B)
 7757                    )
 7758                ;   E=(T8==U8),
 7759                    (   'chr newvia_2'(T8, U8, V8)
 7760                    ->  get_attr(V8, guard_entailment, W8),
 7761                        W8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X8, _, _)
 7762                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 7763                                  X8)
 7764                    ),
 7765                    member(Y8, X8),
 7766                    Y8=suspension(_, active, _, _, _, Z8, A9),
 7767                    Z8==T8,
 7768                    A9==U8,
 7769                    !,
 7770                    (   var(C)
 7771                    ->  true
 7772                    ;   C=suspension(_, B9, _, _, C9, D9),
 7773                        setarg(2, C, removed),
 7774                        (   B9==not_stored_yet
 7775                        ->  E9=[]
 7776                        ;   term_variables(term(C9, D9),
 7777                                           E9),
 7778                            arg(4, C, F9),
 7779                            (   var(F9)
 7780                            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7781                                          G9),
 7782                                G9=[_|H9],
 7783                                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7784                                         H9),
 7785                                (   H9=[I9|_]
 7786                                ->  setarg(4, I9, _)
 7787                                ;   true
 7788                                )
 7789                            ;   F9=[_, _|H9],
 7790                                setarg(2, F9, H9),
 7791                                (   H9=[I9|_]
 7792                                ->  setarg(4, I9, F9)
 7793                                ;   true
 7794                                )
 7795                            ),
 7796                            'detach_known/1_1_$special_;/2___2'(E9,
 7797                                                                C)
 7798                        )
 7799                    ),
 7800                    known(B)
 7801                )
 7802            ;   E=(J9=<K9),
 7803                (   'chr newvia_2'(J9, K9, L9)
 7804                ->  get_attr(L9, guard_entailment, M9),
 7805                    M9=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, N9, _)
 7806                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 7807                              N9)
 7808                ),
 7809                member(O9, N9),
 7810                O9=suspension(_, active, _, _, _, P9, Q9),
 7811                P9==J9,
 7812                Q9==K9,
 7813                !,
 7814                (   var(C)
 7815                ->  true
 7816                ;   C=suspension(_, R9, _, _, S9, T9),
 7817                    setarg(2, C, removed),
 7818                    (   R9==not_stored_yet
 7819                    ->  U9=[]
 7820                    ;   term_variables(term(S9, T9), U9),
 7821                        arg(4, C, V9),
 7822                        (   var(V9)
 7823                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7824                                      W9),
 7825                            W9=[_|X9],
 7826                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7827                                     X9),
 7828                            (   X9=[Y9|_]
 7829                            ->  setarg(4, Y9, _)
 7830                            ;   true
 7831                            )
 7832                        ;   V9=[_, _|X9],
 7833                            setarg(2, V9, X9),
 7834                            (   X9=[Y9|_]
 7835                            ->  setarg(4, Y9, V9)
 7836                            ;   true
 7837                            )
 7838                        ),
 7839                        'detach_known/1_1_$special_;/2___2'(U9, C)
 7840                    )
 7841                ),
 7842                known(B)
 7843            )
 7844        ;   E=(Z9=:=A10),
 7845            (   'chr newvia_2'(Z9, A10, B10)
 7846            ->  get_attr(B10, guard_entailment, C10),
 7847                C10=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D10)
 7848            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 7849                          D10)
 7850            ),
 7851            member(E10, D10),
 7852            E10=suspension(_, active, _, _, _, F10, G10),
 7853            F10==Z9,
 7854            G10==A10,
 7855            !,
 7856            (   var(C)
 7857            ->  true
 7858            ;   C=suspension(_, H10, _, _, I10, J10),
 7859                setarg(2, C, removed),
 7860                (   H10==not_stored_yet
 7861                ->  K10=[]
 7862                ;   term_variables(term(I10, J10), K10),
 7863                    arg(4, C, L10),
 7864                    (   var(L10)
 7865                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7866                                  M10),
 7867                        M10=[_|N10],
 7868                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7869                                 N10),
 7870                        (   N10=[O10|_]
 7871                        ->  setarg(4, O10, _)
 7872                        ;   true
 7873                        )
 7874                    ;   L10=[_, _|N10],
 7875                        setarg(2, L10, N10),
 7876                        (   N10=[O10|_]
 7877                        ->  setarg(4, O10, L10)
 7878                        ;   true
 7879                        )
 7880                    ),
 7881                    'detach_known/1_1_$special_;/2___2'(K10, C)
 7882                )
 7883            ),
 7884            known(B)
 7885        )
 7886    ;   (   'chr newvia_1'(E, P10)
 7887        ->  get_attr(P10, guard_entailment, Q10),
 7888            Q10=v(_, _, R10, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 7889        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 7890                      R10)
 7891        ),
 7892        member(S10, R10),
 7893        S10=suspension(_, active, _, _, T10),
 7894        T10==E,
 7895        !,
 7896        (   var(C)
 7897        ->  true
 7898        ;   C=suspension(_, U10, _, _, V10, W10),
 7899            setarg(2, C, removed),
 7900            (   U10==not_stored_yet
 7901            ->  X10=[]
 7902            ;   term_variables(term(V10, W10), X10),
 7903                arg(4, C, Y10),
 7904                (   var(Y10)
 7905                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7906                              Z10),
 7907                    Z10=[_|A11],
 7908                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7909                             A11),
 7910                    (   A11=[B11|_]
 7911                    ->  setarg(4, B11, _)
 7912                    ;   true
 7913                    )
 7914                ;   Y10=[_, _|A11],
 7915                    setarg(2, Y10, A11),
 7916                    (   A11=[B11|_]
 7917                    ->  setarg(4, B11, Y10)
 7918                    ;   true
 7919                    )
 7920                ),
 7921                'detach_known/1_1_$special_;/2___2'(X10, C)
 7922            )
 7923        ),
 7924        known(B)
 7925    ).
 7926'known/1_1_$special_;/2___2__2'(A, B, C) :-
 7927    (   'chr newvia_1'(A, D)
 7928    ->  get_attr(D, guard_entailment, E),
 7929        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _, _)
 7930    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 7931                  F)
 7932    ),
 7933    member(G, F),
 7934    G=suspension(_, active, _, _, H),
 7935    H==A,
 7936    !,
 7937    (   var(C)
 7938    ->  true
 7939    ;   C=suspension(_, I, _, _, J, K),
 7940        setarg(2, C, removed),
 7941        (   I==not_stored_yet
 7942        ->  L=[]
 7943        ;   term_variables(term(J, K), L),
 7944            arg(4, C, M),
 7945            (   var(M)
 7946            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7947                          N),
 7948                N=[_|O],
 7949                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7950                         O),
 7951                (   O=[P|_]
 7952                ->  setarg(4, P, _)
 7953                ;   true
 7954                )
 7955            ;   M=[_, _|O],
 7956                setarg(2, M, O),
 7957                (   O=[P|_]
 7958                ->  setarg(4, P, M)
 7959                ;   true
 7960                )
 7961            ),
 7962            'detach_known/1_1_$special_;/2___2'(L, C)
 7963        )
 7964    ),
 7965    known(B).
 7966'known/1_1_$special_;/2___2__2'(A, B, C) :-
 7967    nonvar(A),
 7968    A=(D, _),
 7969    (   'chr newvia_1'(D, E)
 7970    ->  get_attr(E, guard_entailment, F),
 7971        F=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, G, _, _, _, _, _, _, _)
 7972    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 7973                  G)
 7974    ),
 7975    member(H, G),
 7976    H=suspension(_, active, _, _, I),
 7977    I==D,
 7978    !,
 7979    (   var(C)
 7980    ->  true
 7981    ;   C=suspension(_, J, _, _, K, L),
 7982        setarg(2, C, removed),
 7983        (   J==not_stored_yet
 7984        ->  M=[]
 7985        ;   term_variables(term(K, L), M),
 7986            arg(4, C, N),
 7987            (   var(N)
 7988            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7989                          O),
 7990                O=[_|P],
 7991                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7992                         P),
 7993                (   P=[Q|_]
 7994                ->  setarg(4, Q, _)
 7995                ;   true
 7996                )
 7997            ;   N=[_, _|P],
 7998                setarg(2, N, P),
 7999                (   P=[Q|_]
 8000                ->  setarg(4, Q, N)
 8001                ;   true
 8002                )
 8003            ),
 8004            'detach_known/1_1_$special_;/2___2'(M, C)
 8005        )
 8006    ),
 8007    known(B).
 8008'known/1_1_$special_;/2___2__2'(A, B, C) :-
 8009    A==fail,
 8010    !,
 8011    (   var(C)
 8012    ->  true
 8013    ;   C=suspension(_, D, _, _, E, F),
 8014        setarg(2, C, removed),
 8015        (   D==not_stored_yet
 8016        ->  G=[]
 8017        ;   term_variables(term(E, F), G),
 8018            arg(4, C, H),
 8019            (   var(H)
 8020            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8021                          I),
 8022                I=[_|J],
 8023                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8024                         J),
 8025                (   J=[K|_]
 8026                ->  setarg(4, K, _)
 8027                ;   true
 8028                )
 8029            ;   H=[_, _|J],
 8030                setarg(2, H, J),
 8031                (   J=[K|_]
 8032                ->  setarg(4, K, H)
 8033                ;   true
 8034                )
 8035            ),
 8036            'detach_known/1_1_$special_;/2___2'(G, C)
 8037        )
 8038    ),
 8039    known(B).
 8040'known/1_1_$special_;/2___2__2'(A, B, C) :-
 8041    B==fail,
 8042    !,
 8043    (   var(C)
 8044    ->  true
 8045    ;   C=suspension(_, D, _, _, E, F),
 8046        setarg(2, C, removed),
 8047        (   D==not_stored_yet
 8048        ->  G=[]
 8049        ;   term_variables(term(E, F), G),
 8050            arg(4, C, H),
 8051            (   var(H)
 8052            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8053                          I),
 8054                I=[_|J],
 8055                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8056                         J),
 8057                (   J=[K|_]
 8058                ->  setarg(4, K, _)
 8059                ;   true
 8060                )
 8061            ;   H=[_, _|J],
 8062                setarg(2, H, J),
 8063                (   J=[K|_]
 8064                ->  setarg(4, K, H)
 8065                ;   true
 8066                )
 8067            ),
 8068            'detach_known/1_1_$special_;/2___2'(G, C)
 8069        )
 8070    ),
 8071    known(A).
 8072'known/1_1_$special_;/2___2__2'(A, _, B) :-
 8073    A==true,
 8074    !,
 8075    (   var(B)
 8076    ->  true
 8077    ;   B=suspension(_, C, _, _, D, E),
 8078        setarg(2, B, removed),
 8079        (   C==not_stored_yet
 8080        ->  F=[]
 8081        ;   term_variables(term(D, E), F),
 8082            arg(4, B, G),
 8083            (   var(G)
 8084            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8085                          H),
 8086                H=[_|I],
 8087                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8088                         I),
 8089                (   I=[J|_]
 8090                ->  setarg(4, J, _)
 8091                ;   true
 8092                )
 8093            ;   G=[_, _|I],
 8094                setarg(2, G, I),
 8095                (   I=[J|_]
 8096                ->  setarg(4, J, G)
 8097                ;   true
 8098                )
 8099            ),
 8100            'detach_known/1_1_$special_;/2___2'(F, B)
 8101        )
 8102    ).
 8103'known/1_1_$special_;/2___2__2'(_, A, B) :-
 8104    A==true,
 8105    !,
 8106    (   var(B)
 8107    ->  true
 8108    ;   B=suspension(_, C, _, _, D, E),
 8109        setarg(2, B, removed),
 8110        (   C==not_stored_yet
 8111        ->  F=[]
 8112        ;   term_variables(term(D, E), F),
 8113            arg(4, B, G),
 8114            (   var(G)
 8115            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8116                          H),
 8117                H=[_|I],
 8118                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8119                         I),
 8120                (   I=[J|_]
 8121                ->  setarg(4, J, _)
 8122                ;   true
 8123                )
 8124            ;   G=[_, _|I],
 8125                setarg(2, G, I),
 8126                (   I=[J|_]
 8127                ->  setarg(4, J, G)
 8128                ;   true
 8129                )
 8130            ),
 8131            'detach_known/1_1_$special_;/2___2'(F, B)
 8132        )
 8133    ).
 8134'known/1_1_$special_;/2___2__2'(A, B, C) :-
 8135    nonvar(A),
 8136    A=(\+D),
 8137    nonvar(D),
 8138    D=functor(E, F, G),
 8139    (   (   (   'chr newvia_1'(E, H)
 8140            ->  get_attr(H, guard_entailment, I),
 8141                I=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, J, _, _, _, _, _, _)
 8142            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 8143                          J)
 8144            ),
 8145            member(K, J),
 8146            K=suspension(_, active, _, _, L, _, _),
 8147            L==E,
 8148            !,
 8149            (   var(C)
 8150            ->  true
 8151            ;   C=suspension(_, M, _, _, N, O),
 8152                setarg(2, C, removed),
 8153                (   M==not_stored_yet
 8154                ->  P=[]
 8155                ;   term_variables(term(N, O), P),
 8156                    arg(4, C, Q),
 8157                    (   var(Q)
 8158                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8159                                  R),
 8160                        R=[_|S],
 8161                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8162                                 S),
 8163                        (   S=[T|_]
 8164                        ->  setarg(4, T, _)
 8165                        ;   true
 8166                        )
 8167                    ;   Q=[_, _|S],
 8168                        setarg(2, Q, S),
 8169                        (   S=[T|_]
 8170                        ->  setarg(4, T, Q)
 8171                        ;   true
 8172                        )
 8173                    ),
 8174                    'detach_known/1_1_$special_;/2___2'(P, C)
 8175                )
 8176            )
 8177        ;   nonvar(E),
 8178            'chr lock'(E),
 8179            'chr lock'(F),
 8180            'chr lock'(G),
 8181            functor(E, F, G),
 8182            'chr unlock'(E),
 8183            'chr unlock'(F),
 8184            'chr unlock'(G),
 8185            !,
 8186            (   var(C)
 8187            ->  true
 8188            ;   C=suspension(_, U, _, _, V, W),
 8189                setarg(2, C, removed),
 8190                (   U==not_stored_yet
 8191                ->  X=[]
 8192                ;   term_variables(term(V, W), X),
 8193                    arg(4, C, Y),
 8194                    (   var(Y)
 8195                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8196                                  Z),
 8197                        Z=[_|A1],
 8198                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8199                                 A1),
 8200                        (   A1=[B1|_]
 8201                        ->  setarg(4, B1, _)
 8202                        ;   true
 8203                        )
 8204                    ;   Y=[_, _|A1],
 8205                        setarg(2, Y, A1),
 8206                        (   A1=[B1|_]
 8207                        ->  setarg(4, B1, Y)
 8208                        ;   true
 8209                        )
 8210                    ),
 8211                    'detach_known/1_1_$special_;/2___2'(X, C)
 8212                )
 8213            ),
 8214            known(B)
 8215        )
 8216    ;   nonvar(E),
 8217        'chr lock'(E),
 8218        'chr lock'(F),
 8219        'chr lock'(G),
 8220        \+ functor(E, F, G),
 8221        'chr unlock'(E),
 8222        'chr unlock'(F),
 8223        'chr unlock'(G),
 8224        !,
 8225        (   var(C)
 8226        ->  true
 8227        ;   C=suspension(_, C1, _, _, D1, E1),
 8228            setarg(2, C, removed),
 8229            (   C1==not_stored_yet
 8230            ->  F1=[]
 8231            ;   term_variables(term(D1, E1), F1),
 8232                arg(4, C, G1),
 8233                (   var(G1)
 8234                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8235                              H1),
 8236                    H1=[_|I1],
 8237                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8238                             I1),
 8239                    (   I1=[J1|_]
 8240                    ->  setarg(4, J1, _)
 8241                    ;   true
 8242                    )
 8243                ;   G1=[_, _|I1],
 8244                    setarg(2, G1, I1),
 8245                    (   I1=[J1|_]
 8246                    ->  setarg(4, J1, G1)
 8247                    ;   true
 8248                    )
 8249                ),
 8250                'detach_known/1_1_$special_;/2___2'(F1, C)
 8251            )
 8252        )
 8253    ).
 8254'known/1_1_$special_;/2___2__2'(_, _, A) :-
 8255    arg(2, A, B),
 8256    setarg(2, A, active),
 8257    arg(3, A, C),
 8258    D is C+1,
 8259    setarg(3, A, D),
 8260    (   B==not_stored_yet
 8261    ->  A=suspension(_, _, _, _, E, F),
 8262        term_variables(term(E, F), G),
 8263        'chr none_locked'(G),
 8264        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8265                  H),
 8266        I=[A|H],
 8267        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8268                 I),
 8269        (   H=[J|_]
 8270        ->  setarg(4, J, I)
 8271        ;   true
 8272        ),
 8273        'attach_known/1_1_$special_;/2___2'(G, A)
 8274    ;   true
 8275    ).
 8276'known/1_1_$special_nonvar/1'(A) :-
 8277    'known/1_1_$special_nonvar/1___1__0'(A, _).
 8278'known/1_1_$special_nonvar/1___1__0'(A, B) :-
 8279    (   'chr newvia_1'(A, C)
 8280    ->  get_attr(C, guard_entailment, D),
 8281        D=v(_, _, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8282    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8283                  E)
 8284    ),
 8285    member(F, E),
 8286    F=suspension(_, active, _, _, G),
 8287    G==A,
 8288    !,
 8289    (   var(B)
 8290    ->  true
 8291    ;   B=suspension(_, H, _, _, I),
 8292        setarg(2, B, removed),
 8293        (   H==not_stored_yet
 8294        ->  J=[]
 8295        ;   term_variables(I, J),
 8296            arg(4, B, K),
 8297            (   var(K)
 8298            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8299                          L),
 8300                L=[_|M],
 8301                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8302                         M),
 8303                (   M=[N|_]
 8304                ->  setarg(4, N, _)
 8305                ;   true
 8306                )
 8307            ;   K=[_, _|M],
 8308                setarg(2, K, M),
 8309                (   M=[N|_]
 8310                ->  setarg(4, N, K)
 8311                ;   true
 8312                )
 8313            ),
 8314            'detach_known/1_1_$special_nonvar/1___1'(J, B)
 8315        )
 8316    ).
 8317'known/1_1_$special_nonvar/1___1__0'(_, A) :-
 8318    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 8319              B),
 8320    member(C, B),
 8321    C=suspension(_, active, _),
 8322    !,
 8323    (   var(A)
 8324    ->  true
 8325    ;   A=suspension(_, D, _, _, E),
 8326        setarg(2, A, removed),
 8327        (   D==not_stored_yet
 8328        ->  F=[]
 8329        ;   term_variables(E, F),
 8330            arg(4, A, G),
 8331            (   var(G)
 8332            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8333                          H),
 8334                H=[_|I],
 8335                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8336                         I),
 8337                (   I=[J|_]
 8338                ->  setarg(4, J, _)
 8339                ;   true
 8340                )
 8341            ;   G=[_, _|I],
 8342                setarg(2, G, I),
 8343                (   I=[J|_]
 8344                ->  setarg(4, J, G)
 8345                ;   true
 8346                )
 8347            ),
 8348            'detach_known/1_1_$special_nonvar/1___1'(F, A)
 8349        )
 8350    ).
 8351'known/1_1_$special_nonvar/1___1__0'(A, B) :-
 8352    (   'chr newvia_1'(A, C)
 8353    ->  get_attr(C, guard_entailment, D),
 8354        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
 8355    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8356                  E)
 8357    ),
 8358    member(F, E),
 8359    F=suspension(_, active, _, _, G),
 8360    nonvar(G),
 8361    G=nonvar(H),
 8362    H==A,
 8363    !,
 8364    F=suspension(_, _, _, _, I),
 8365    setarg(2, F, removed),
 8366    term_variables(I, J),
 8367    arg(4, F, K),
 8368    (   var(K)
 8369    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8370                  L),
 8371        L=[_|M],
 8372        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8373                 M),
 8374        (   M=[N|_]
 8375        ->  setarg(4, N, _)
 8376        ;   true
 8377        )
 8378    ;   K=[_, _|M],
 8379        setarg(2, K, M),
 8380        (   M=[N|_]
 8381        ->  setarg(4, N, K)
 8382        ;   true
 8383        )
 8384    ),
 8385    'detach_known/1_1_$special_\\+/1___1'(J, F),
 8386    (   var(B)
 8387    ->  true
 8388    ;   B=suspension(_, O, _, _, P),
 8389        setarg(2, B, removed),
 8390        (   O==not_stored_yet
 8391        ->  Q=[]
 8392        ;   term_variables(P, Q),
 8393            arg(4, B, R),
 8394            (   var(R)
 8395            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8396                          S),
 8397                S=[_|T],
 8398                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8399                         T),
 8400                (   T=[U|_]
 8401                ->  setarg(4, U, _)
 8402                ;   true
 8403                )
 8404            ;   R=[_, _|T],
 8405                setarg(2, R, T),
 8406                (   T=[U|_]
 8407                ->  setarg(4, U, R)
 8408                ;   true
 8409                )
 8410            ),
 8411            'detach_known/1_1_$special_nonvar/1___1'(Q, B)
 8412        )
 8413    ),
 8414    'known/1_1_$special_fail/0'.
 8415'known/1_1_$special_nonvar/1___1__0'(A, B) :-
 8416    (   'chr newvia_1'(A, C)
 8417    ->  get_attr(C, guard_entailment, D),
 8418        D=v(_, _, _, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8419    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8420                  E)
 8421    ),
 8422    member(F, E),
 8423    F=suspension(_, active, _, _, G),
 8424    G==A,
 8425    !,
 8426    F=suspension(_, _, _, _, H),
 8427    setarg(2, F, removed),
 8428    term_variables(H, I),
 8429    arg(4, F, J),
 8430    (   var(J)
 8431    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8432                  K),
 8433        K=[_|L],
 8434        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8435                 L),
 8436        (   L=[M|_]
 8437        ->  setarg(4, M, _)
 8438        ;   true
 8439        )
 8440    ;   J=[_, _|L],
 8441        setarg(2, J, L),
 8442        (   L=[M|_]
 8443        ->  setarg(4, M, J)
 8444        ;   true
 8445        )
 8446    ),
 8447    'detach_known/1_1_$special_var/1___1'(I, F),
 8448    (   var(B)
 8449    ->  true
 8450    ;   B=suspension(_, N, _, _, O),
 8451        setarg(2, B, removed),
 8452        (   N==not_stored_yet
 8453        ->  P=[]
 8454        ;   term_variables(O, P),
 8455            arg(4, B, Q),
 8456            (   var(Q)
 8457            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8458                          R),
 8459                R=[_|S],
 8460                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8461                         S),
 8462                (   S=[T|_]
 8463                ->  setarg(4, T, _)
 8464                ;   true
 8465                )
 8466            ;   Q=[_, _|S],
 8467                setarg(2, Q, S),
 8468                (   S=[T|_]
 8469                ->  setarg(4, T, Q)
 8470                ;   true
 8471                )
 8472            ),
 8473            'detach_known/1_1_$special_nonvar/1___1'(P, B)
 8474        )
 8475    ),
 8476    'known/1_1_$special_fail/0'.
 8477'known/1_1_$special_nonvar/1___1__0'(A, B) :-
 8478    (   'chr newvia_1'(A, C)
 8479    ->  get_attr(C, guard_entailment, D),
 8480        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8481    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8482                  E)
 8483    ),
 8484    !,
 8485    (   var(B)
 8486    ->  B=suspension(F, not_stored_yet, 0, _, A),
 8487        'chr gen_id'(F)
 8488    ;   true
 8489    ),
 8490    'known/1_1_$special_nonvar/1___1__0__0__7'(E, A, B).
 8491'known/1_1_$special_nonvar/1___1__0__0__7'([], A, B) :-
 8492    'known/1_1_$special_nonvar/1___1__1'(A, B).
 8493'known/1_1_$special_nonvar/1___1__0__0__7'([A|B], C, D) :-
 8494    (   A=suspension(_, active, _, _, E, F),
 8495        nonvar(E),
 8496        E=(\+G),
 8497        nonvar(G),
 8498        G=nonvar(H),
 8499        H==C
 8500    ->  A=suspension(_, _, _, _, I, J),
 8501        setarg(2, A, removed),
 8502        term_variables(term(I, J), K),
 8503        ( arg(4, A, L),
 8504          (   var(L)
 8505          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8506                        M),
 8507              M=[_|N],
 8508              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8509                       N),
 8510              (   N=[O|_]
 8511              ->  setarg(4, O, _)
 8512              ;   true
 8513              )
 8514          ;   L=[_, _|N],
 8515              setarg(2, L, N),
 8516              (   N=[O|_]
 8517              ->  setarg(4, O, L)
 8518              ;   true
 8519              )
 8520          )
 8521        ),
 8522        'detach_known/1_1_$special_;/2___2'(K, A),
 8523        arg(2, D, P),
 8524        setarg(2, D, active),
 8525        ( arg(3, D, Q),
 8526          R is Q+1,
 8527          setarg(3, D, R)
 8528        ),
 8529        (   P==not_stored_yet
 8530        ->  D=suspension(_, _, _, _, S),
 8531            term_variables(S, T),
 8532            'chr none_locked'(T),
 8533            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8534                      U),
 8535            V=[D|U],
 8536            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8537                     V),
 8538            (   U=[W|_]
 8539            ->  setarg(4, W, V)
 8540            ;   true
 8541            ),
 8542            'attach_known/1_1_$special_nonvar/1___1'(T, D)
 8543        ;   true
 8544        ),
 8545        known(F),
 8546        (   D=suspension(_, active, R, _, _)
 8547        ->  setarg(2, D, inactive),
 8548            'known/1_1_$special_nonvar/1___1__0__0__7'(B, C, D)
 8549        ;   true
 8550        )
 8551    ;   'known/1_1_$special_nonvar/1___1__0__0__7'(B, C, D)
 8552    ).
 8553'known/1_1_$special_nonvar/1___1__0'(A, B) :-
 8554    (   var(B)
 8555    ->  B=suspension(C, not_stored_yet, 0, _, A),
 8556        'chr gen_id'(C)
 8557    ;   true
 8558    ),
 8559    'known/1_1_$special_nonvar/1___1__1'(A, B).
 8560'known/1_1_$special_nonvar/1___1__1'(A, B) :-
 8561    (   'chr newvia_1'(A, C)
 8562    ->  get_attr(C, guard_entailment, D),
 8563        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8564    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8565                  E)
 8566    ),
 8567    !,
 8568    'known/1_1_$special_nonvar/1___1__1__0__8'(E, A, B).
 8569'known/1_1_$special_nonvar/1___1__1__0__8'([], A, B) :-
 8570    'known/1_1_$special_nonvar/1___1__2'(A, B).
 8571'known/1_1_$special_nonvar/1___1__1__0__8'([A|B], C, D) :-
 8572    (   A=suspension(_, active, _, _, E, F),
 8573        nonvar(E),
 8574        E=(G, _),
 8575        nonvar(G),
 8576        G=(\+H),
 8577        nonvar(H),
 8578        H=nonvar(I),
 8579        I==C
 8580    ->  A=suspension(_, _, _, _, J, K),
 8581        setarg(2, A, removed),
 8582        term_variables(term(J, K), L),
 8583        ( arg(4, A, M),
 8584          (   var(M)
 8585          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8586                        N),
 8587              N=[_|O],
 8588              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8589                       O),
 8590              (   O=[P|_]
 8591              ->  setarg(4, P, _)
 8592              ;   true
 8593              )
 8594          ;   M=[_, _|O],
 8595              setarg(2, M, O),
 8596              (   O=[P|_]
 8597              ->  setarg(4, P, M)
 8598              ;   true
 8599              )
 8600          )
 8601        ),
 8602        'detach_known/1_1_$special_;/2___2'(L, A),
 8603        arg(2, D, Q),
 8604        setarg(2, D, active),
 8605        ( arg(3, D, R),
 8606          S is R+1,
 8607          setarg(3, D, S)
 8608        ),
 8609        (   Q==not_stored_yet
 8610        ->  D=suspension(_, _, _, _, T),
 8611            term_variables(T, U),
 8612            'chr none_locked'(U),
 8613            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8614                      V),
 8615            W=[D|V],
 8616            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8617                     W),
 8618            (   V=[X|_]
 8619            ->  setarg(4, X, W)
 8620            ;   true
 8621            ),
 8622            'attach_known/1_1_$special_nonvar/1___1'(U, D)
 8623        ;   true
 8624        ),
 8625        known(F),
 8626        (   D=suspension(_, active, S, _, _)
 8627        ->  setarg(2, D, inactive),
 8628            'known/1_1_$special_nonvar/1___1__1__0__8'(B, C, D)
 8629        ;   true
 8630        )
 8631    ;   'known/1_1_$special_nonvar/1___1__1__0__8'(B, C, D)
 8632    ).
 8633'known/1_1_$special_nonvar/1___1__1'(A, B) :-
 8634    'known/1_1_$special_nonvar/1___1__2'(A, B).
 8635'known/1_1_$special_nonvar/1___1__2'(_, A) :-
 8636    arg(2, A, B),
 8637    setarg(2, A, active),
 8638    arg(3, A, C),
 8639    D is C+1,
 8640    setarg(3, A, D),
 8641    (   B==not_stored_yet
 8642    ->  A=suspension(_, _, _, _, E),
 8643        term_variables(E, F),
 8644        'chr none_locked'(F),
 8645        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8646                  G),
 8647        H=[A|G],
 8648        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8649                 H),
 8650        (   G=[I|_]
 8651        ->  setarg(4, I, H)
 8652        ;   true
 8653        ),
 8654        'attach_known/1_1_$special_nonvar/1___1'(F, A)
 8655    ;   true
 8656    ).
 8657'known/1_1_$special_var/1'(A) :-
 8658    'known/1_1_$special_var/1___1__0'(A, _).
 8659'known/1_1_$special_var/1___1__0'(A, B) :-
 8660    (   'chr newvia_1'(A, C)
 8661    ->  get_attr(C, guard_entailment, D),
 8662        D=v(_, _, _, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8663    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8664                  E)
 8665    ),
 8666    member(F, E),
 8667    F=suspension(_, active, _, _, G),
 8668    G==A,
 8669    !,
 8670    (   var(B)
 8671    ->  true
 8672    ;   B=suspension(_, H, _, _, I),
 8673        setarg(2, B, removed),
 8674        (   H==not_stored_yet
 8675        ->  J=[]
 8676        ;   term_variables(I, J),
 8677            arg(4, B, K),
 8678            (   var(K)
 8679            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8680                          L),
 8681                L=[_|M],
 8682                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8683                         M),
 8684                (   M=[N|_]
 8685                ->  setarg(4, N, _)
 8686                ;   true
 8687                )
 8688            ;   K=[_, _|M],
 8689                setarg(2, K, M),
 8690                (   M=[N|_]
 8691                ->  setarg(4, N, K)
 8692                ;   true
 8693                )
 8694            ),
 8695            'detach_known/1_1_$special_var/1___1'(J, B)
 8696        )
 8697    ).
 8698'known/1_1_$special_var/1___1__0'(_, A) :-
 8699    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 8700              B),
 8701    member(C, B),
 8702    C=suspension(_, active, _),
 8703    !,
 8704    (   var(A)
 8705    ->  true
 8706    ;   A=suspension(_, D, _, _, E),
 8707        setarg(2, A, removed),
 8708        (   D==not_stored_yet
 8709        ->  F=[]
 8710        ;   term_variables(E, F),
 8711            arg(4, A, G),
 8712            (   var(G)
 8713            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8714                          H),
 8715                H=[_|I],
 8716                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8717                         I),
 8718                (   I=[J|_]
 8719                ->  setarg(4, J, _)
 8720                ;   true
 8721                )
 8722            ;   G=[_, _|I],
 8723                setarg(2, G, I),
 8724                (   I=[J|_]
 8725                ->  setarg(4, J, G)
 8726                ;   true
 8727                )
 8728            ),
 8729            'detach_known/1_1_$special_var/1___1'(F, A)
 8730        )
 8731    ).
 8732'known/1_1_$special_var/1___1__0'(A, B) :-
 8733    (   'chr newvia_1'(A, C)
 8734    ->  get_attr(C, guard_entailment, D),
 8735        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
 8736    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8737                  E)
 8738    ),
 8739    member(F, E),
 8740    F=suspension(_, active, _, _, G),
 8741    nonvar(G),
 8742    G=var(H),
 8743    H==A,
 8744    !,
 8745    F=suspension(_, _, _, _, I),
 8746    setarg(2, F, removed),
 8747    term_variables(I, J),
 8748    arg(4, F, K),
 8749    (   var(K)
 8750    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8751                  L),
 8752        L=[_|M],
 8753        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8754                 M),
 8755        (   M=[N|_]
 8756        ->  setarg(4, N, _)
 8757        ;   true
 8758        )
 8759    ;   K=[_, _|M],
 8760        setarg(2, K, M),
 8761        (   M=[N|_]
 8762        ->  setarg(4, N, K)
 8763        ;   true
 8764        )
 8765    ),
 8766    'detach_known/1_1_$special_\\+/1___1'(J, F),
 8767    (   var(B)
 8768    ->  true
 8769    ;   B=suspension(_, O, _, _, P),
 8770        setarg(2, B, removed),
 8771        (   O==not_stored_yet
 8772        ->  Q=[]
 8773        ;   term_variables(P, Q),
 8774            arg(4, B, R),
 8775            (   var(R)
 8776            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8777                          S),
 8778                S=[_|T],
 8779                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8780                         T),
 8781                (   T=[U|_]
 8782                ->  setarg(4, U, _)
 8783                ;   true
 8784                )
 8785            ;   R=[_, _|T],
 8786                setarg(2, R, T),
 8787                (   T=[U|_]
 8788                ->  setarg(4, U, R)
 8789                ;   true
 8790                )
 8791            ),
 8792            'detach_known/1_1_$special_var/1___1'(Q, B)
 8793        )
 8794    ),
 8795    'known/1_1_$special_fail/0'.
 8796'known/1_1_$special_var/1___1__0'(A, B) :-
 8797    (   'chr newvia_1'(A, C)
 8798    ->  get_attr(C, guard_entailment, D),
 8799        D=v(_, _, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8800    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8801                  E)
 8802    ),
 8803    member(F, E),
 8804    F=suspension(_, active, _, _, G),
 8805    G==A,
 8806    !,
 8807    F=suspension(_, _, _, _, H),
 8808    setarg(2, F, removed),
 8809    term_variables(H, I),
 8810    arg(4, F, J),
 8811    (   var(J)
 8812    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8813                  K),
 8814        K=[_|L],
 8815        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8816                 L),
 8817        (   L=[M|_]
 8818        ->  setarg(4, M, _)
 8819        ;   true
 8820        )
 8821    ;   J=[_, _|L],
 8822        setarg(2, J, L),
 8823        (   L=[M|_]
 8824        ->  setarg(4, M, J)
 8825        ;   true
 8826        )
 8827    ),
 8828    'detach_known/1_1_$special_nonvar/1___1'(I, F),
 8829    (   var(B)
 8830    ->  true
 8831    ;   B=suspension(_, N, _, _, O),
 8832        setarg(2, B, removed),
 8833        (   N==not_stored_yet
 8834        ->  P=[]
 8835        ;   term_variables(O, P),
 8836            arg(4, B, Q),
 8837            (   var(Q)
 8838            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8839                          R),
 8840                R=[_|S],
 8841                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8842                         S),
 8843                (   S=[T|_]
 8844                ->  setarg(4, T, _)
 8845                ;   true
 8846                )
 8847            ;   Q=[_, _|S],
 8848                setarg(2, Q, S),
 8849                (   S=[T|_]
 8850                ->  setarg(4, T, Q)
 8851                ;   true
 8852                )
 8853            ),
 8854            'detach_known/1_1_$special_var/1___1'(P, B)
 8855        )
 8856    ),
 8857    'known/1_1_$special_fail/0'.
 8858'known/1_1_$special_var/1___1__0'(A, B) :-
 8859    (   'chr newvia_1'(A, C)
 8860    ->  get_attr(C, guard_entailment, D),
 8861        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8862    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8863                  E)
 8864    ),
 8865    !,
 8866    (   var(B)
 8867    ->  B=suspension(F, not_stored_yet, 0, _, A),
 8868        'chr gen_id'(F)
 8869    ;   true
 8870    ),
 8871    'known/1_1_$special_var/1___1__0__0__7'(E, A, B).
 8872'known/1_1_$special_var/1___1__0__0__7'([], A, B) :-
 8873    'known/1_1_$special_var/1___1__1'(A, B).
 8874'known/1_1_$special_var/1___1__0__0__7'([A|B], C, D) :-
 8875    (   A=suspension(_, active, _, _, E, F),
 8876        nonvar(E),
 8877        E=(\+G),
 8878        nonvar(G),
 8879        G=var(H),
 8880        H==C
 8881    ->  A=suspension(_, _, _, _, I, J),
 8882        setarg(2, A, removed),
 8883        term_variables(term(I, J), K),
 8884        ( arg(4, A, L),
 8885          (   var(L)
 8886          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8887                        M),
 8888              M=[_|N],
 8889              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8890                       N),
 8891              (   N=[O|_]
 8892              ->  setarg(4, O, _)
 8893              ;   true
 8894              )
 8895          ;   L=[_, _|N],
 8896              setarg(2, L, N),
 8897              (   N=[O|_]
 8898              ->  setarg(4, O, L)
 8899              ;   true
 8900              )
 8901          )
 8902        ),
 8903        'detach_known/1_1_$special_;/2___2'(K, A),
 8904        arg(2, D, P),
 8905        setarg(2, D, active),
 8906        ( arg(3, D, Q),
 8907          R is Q+1,
 8908          setarg(3, D, R)
 8909        ),
 8910        (   P==not_stored_yet
 8911        ->  D=suspension(_, _, _, _, S),
 8912            term_variables(S, T),
 8913            'chr none_locked'(T),
 8914            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8915                      U),
 8916            V=[D|U],
 8917            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8918                     V),
 8919            (   U=[W|_]
 8920            ->  setarg(4, W, V)
 8921            ;   true
 8922            ),
 8923            'attach_known/1_1_$special_var/1___1'(T, D)
 8924        ;   true
 8925        ),
 8926        known(F),
 8927        (   D=suspension(_, active, R, _, _)
 8928        ->  setarg(2, D, inactive),
 8929            'known/1_1_$special_var/1___1__0__0__7'(B, C, D)
 8930        ;   true
 8931        )
 8932    ;   'known/1_1_$special_var/1___1__0__0__7'(B, C, D)
 8933    ).
 8934'known/1_1_$special_var/1___1__0'(A, B) :-
 8935    (   var(B)
 8936    ->  B=suspension(C, not_stored_yet, 0, _, A),
 8937        'chr gen_id'(C)
 8938    ;   true
 8939    ),
 8940    'known/1_1_$special_var/1___1__1'(A, B).
 8941'known/1_1_$special_var/1___1__1'(A, B) :-
 8942    (   'chr newvia_1'(A, C)
 8943    ->  get_attr(C, guard_entailment, D),
 8944        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8945    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8946                  E)
 8947    ),
 8948    !,
 8949    'known/1_1_$special_var/1___1__1__0__8'(E, A, B).
 8950'known/1_1_$special_var/1___1__1__0__8'([], A, B) :-
 8951    'known/1_1_$special_var/1___1__2'(A, B).
 8952'known/1_1_$special_var/1___1__1__0__8'([A|B], C, D) :-
 8953    (   A=suspension(_, active, _, _, E, F),
 8954        nonvar(E),
 8955        E=(G, _),
 8956        nonvar(G),
 8957        G=(\+H),
 8958        nonvar(H),
 8959        H=var(I),
 8960        I==C
 8961    ->  A=suspension(_, _, _, _, J, K),
 8962        setarg(2, A, removed),
 8963        term_variables(term(J, K), L),
 8964        ( arg(4, A, M),
 8965          (   var(M)
 8966          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8967                        N),
 8968              N=[_|O],
 8969              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8970                       O),
 8971              (   O=[P|_]
 8972              ->  setarg(4, P, _)
 8973              ;   true
 8974              )
 8975          ;   M=[_, _|O],
 8976              setarg(2, M, O),
 8977              (   O=[P|_]
 8978              ->  setarg(4, P, M)
 8979              ;   true
 8980              )
 8981          )
 8982        ),
 8983        'detach_known/1_1_$special_;/2___2'(L, A),
 8984        arg(2, D, Q),
 8985        setarg(2, D, active),
 8986        ( arg(3, D, R),
 8987          S is R+1,
 8988          setarg(3, D, S)
 8989        ),
 8990        (   Q==not_stored_yet
 8991        ->  D=suspension(_, _, _, _, T),
 8992            term_variables(T, U),
 8993            'chr none_locked'(U),
 8994            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8995                      V),
 8996            W=[D|V],
 8997            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8998                     W),
 8999            (   V=[X|_]
 9000            ->  setarg(4, X, W)
 9001            ;   true
 9002            ),
 9003            'attach_known/1_1_$special_var/1___1'(U, D)
 9004        ;   true
 9005        ),
 9006        known(F),
 9007        (   D=suspension(_, active, S, _, _)
 9008        ->  setarg(2, D, inactive),
 9009            'known/1_1_$special_var/1___1__1__0__8'(B, C, D)
 9010        ;   true
 9011        )
 9012    ;   'known/1_1_$special_var/1___1__1__0__8'(B, C, D)
 9013    ).
 9014'known/1_1_$special_var/1___1__1'(A, B) :-
 9015    'known/1_1_$special_var/1___1__2'(A, B).
 9016'known/1_1_$special_var/1___1__2'(_, A) :-
 9017    arg(2, A, B),
 9018    setarg(2, A, active),
 9019    arg(3, A, C),
 9020    D is C+1,
 9021    setarg(3, A, D),
 9022    (   B==not_stored_yet
 9023    ->  A=suspension(_, _, _, _, E),
 9024        term_variables(E, F),
 9025        'chr none_locked'(F),
 9026        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 9027                  G),
 9028        H=[A|G],
 9029        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 9030                 H),
 9031        (   G=[I|_]
 9032        ->  setarg(4, I, H)
 9033        ;   true
 9034        ),
 9035        'attach_known/1_1_$special_var/1___1'(F, A)
 9036    ;   true
 9037    ).
 9038'known/1_1_$special_atom/1'(A) :-
 9039    'known/1_1_$special_atom/1___1__0'(A, _).
 9040'known/1_1_$special_atom/1___1__0'(A, B) :-
 9041    (   'chr newvia_1'(A, C)
 9042    ->  get_attr(C, guard_entailment, D),
 9043        D=v(_, _, _, _, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9044    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9045                  E)
 9046    ),
 9047    member(F, E),
 9048    F=suspension(_, active, _, _, _, G),
 9049    G==A,
 9050    !,
 9051    (   var(B)
 9052    ->  true
 9053    ;   B=suspension(_, H, _, _, _, I),
 9054        setarg(2, B, removed),
 9055        (   H==not_stored_yet
 9056        ->  J=[]
 9057        ;   term_variables(I, J),
 9058            arg(5, B, K),
 9059            (   var(K)
 9060            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9061                          L),
 9062                L=[_|M],
 9063                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9064                         M),
 9065                (   M=[N|_]
 9066                ->  setarg(5, N, _)
 9067                ;   true
 9068                )
 9069            ;   K=[_, _|M],
 9070                setarg(2, K, M),
 9071                (   M=[N|_]
 9072                ->  setarg(5, N, K)
 9073                ;   true
 9074                )
 9075            ),
 9076            'detach_known/1_1_$special_atom/1___1'(J, B)
 9077        )
 9078    ).
 9079'known/1_1_$special_atom/1___1__0'(_, A) :-
 9080    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 9081              B),
 9082    member(C, B),
 9083    C=suspension(_, active, _),
 9084    !,
 9085    (   var(A)
 9086    ->  true
 9087    ;   A=suspension(_, D, _, _, _, E),
 9088        setarg(2, A, removed),
 9089        (   D==not_stored_yet
 9090        ->  F=[]
 9091        ;   term_variables(E, F),
 9092            arg(5, A, G),
 9093            (   var(G)
 9094            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9095                          H),
 9096                H=[_|I],
 9097                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9098                         I),
 9099                (   I=[J|_]
 9100                ->  setarg(5, J, _)
 9101                ;   true
 9102                )
 9103            ;   G=[_, _|I],
 9104                setarg(2, G, I),
 9105                (   I=[J|_]
 9106                ->  setarg(5, J, G)
 9107                ;   true
 9108                )
 9109            ),
 9110            'detach_known/1_1_$special_atom/1___1'(F, A)
 9111        )
 9112    ).
 9113'known/1_1_$special_atom/1___1__0'(A, B) :-
 9114    (   'chr newvia_1'(A, C)
 9115    ->  get_attr(C, guard_entailment, D),
 9116        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
 9117    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9118                  E)
 9119    ),
 9120    member(F, E),
 9121    F=suspension(_, active, _, _, G),
 9122    nonvar(G),
 9123    G=atom(H),
 9124    H==A,
 9125    !,
 9126    F=suspension(_, _, _, _, I),
 9127    setarg(2, F, removed),
 9128    term_variables(I, J),
 9129    arg(4, F, K),
 9130    (   var(K)
 9131    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9132                  L),
 9133        L=[_|M],
 9134        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9135                 M),
 9136        (   M=[N|_]
 9137        ->  setarg(4, N, _)
 9138        ;   true
 9139        )
 9140    ;   K=[_, _|M],
 9141        setarg(2, K, M),
 9142        (   M=[N|_]
 9143        ->  setarg(4, N, K)
 9144        ;   true
 9145        )
 9146    ),
 9147    'detach_known/1_1_$special_\\+/1___1'(J, F),
 9148    (   var(B)
 9149    ->  true
 9150    ;   B=suspension(_, O, _, _, _, P),
 9151        setarg(2, B, removed),
 9152        (   O==not_stored_yet
 9153        ->  Q=[]
 9154        ;   term_variables(P, Q),
 9155            arg(5, B, R),
 9156            (   var(R)
 9157            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9158                          S),
 9159                S=[_|T],
 9160                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9161                         T),
 9162                (   T=[U|_]
 9163                ->  setarg(5, U, _)
 9164                ;   true
 9165                )
 9166            ;   R=[_, _|T],
 9167                setarg(2, R, T),
 9168                (   T=[U|_]
 9169                ->  setarg(5, U, R)
 9170                ;   true
 9171                )
 9172            ),
 9173            'detach_known/1_1_$special_atom/1___1'(Q, B)
 9174        )
 9175    ),
 9176    'known/1_1_$special_fail/0'.
 9177'known/1_1_$special_atom/1___1__0'(A, B) :-
 9178    (   var(B)
 9179    ->  B=suspension(C, not_stored_yet, t, 0, _, A),
 9180        'chr gen_id'(C)
 9181    ;   true
 9182    ),
 9183    (   '$novel_production'(B, 239),
 9184        !,
 9185        '$extend_history'(B, 239),
 9186        arg(2, B, D),
 9187        setarg(2, B, active),
 9188        arg(4, B, E),
 9189        F is E+1,
 9190        setarg(4, B, F),
 9191        (   D==not_stored_yet
 9192        ->  B=suspension(_, _, _, _, _, G),
 9193            term_variables(G, H),
 9194            'chr none_locked'(H),
 9195            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9196                      I),
 9197            J=[B|I],
 9198            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9199                     J),
 9200            (   I=[K|_]
 9201            ->  setarg(5, K, J)
 9202            ;   true
 9203            ),
 9204            'attach_known/1_1_$special_atom/1___1'(H, B)
 9205        ;   true
 9206        ),
 9207        'known/1_1_$special_nonvar/1'(A),
 9208        (   B=suspension(_, active, _, F, _, _)
 9209        ->  setarg(2, B, inactive),
 9210            'known/1_1_$special_atom/1___1__1'(A, B)
 9211        ;   true
 9212        )
 9213    ;   'known/1_1_$special_atom/1___1__1'(A, B)
 9214    ).
 9215'known/1_1_$special_atom/1___1__1'(A, B) :-
 9216    (   'chr newvia_1'(A, C)
 9217    ->  get_attr(C, guard_entailment, D),
 9218        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9219    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9220                  E)
 9221    ),
 9222    !,
 9223    'known/1_1_$special_atom/1___1__1__0__7'(E, A, B).
 9224'known/1_1_$special_atom/1___1__1__0__7'([], A, B) :-
 9225    'known/1_1_$special_atom/1___1__2'(A, B).
 9226'known/1_1_$special_atom/1___1__1__0__7'([A|B], C, D) :-
 9227    (   A=suspension(_, active, _, _, E, F),
 9228        nonvar(E),
 9229        E=(\+G),
 9230        nonvar(G),
 9231        G=atom(H),
 9232        H==C
 9233    ->  A=suspension(_, _, _, _, I, J),
 9234        setarg(2, A, removed),
 9235        term_variables(term(I, J), K),
 9236        ( arg(4, A, L),
 9237          (   var(L)
 9238          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9239                        M),
 9240              M=[_|N],
 9241              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9242                       N),
 9243              (   N=[O|_]
 9244              ->  setarg(4, O, _)
 9245              ;   true
 9246              )
 9247          ;   L=[_, _|N],
 9248              setarg(2, L, N),
 9249              (   N=[O|_]
 9250              ->  setarg(4, O, L)
 9251              ;   true
 9252              )
 9253          )
 9254        ),
 9255        'detach_known/1_1_$special_;/2___2'(K, A),
 9256        arg(2, D, P),
 9257        setarg(2, D, active),
 9258        ( arg(4, D, Q),
 9259          R is Q+1,
 9260          setarg(4, D, R)
 9261        ),
 9262        (   P==not_stored_yet
 9263        ->  D=suspension(_, _, _, _, _, S),
 9264            term_variables(S, T),
 9265            'chr none_locked'(T),
 9266            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9267                      U),
 9268            V=[D|U],
 9269            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9270                     V),
 9271            (   U=[W|_]
 9272            ->  setarg(5, W, V)
 9273            ;   true
 9274            ),
 9275            'attach_known/1_1_$special_atom/1___1'(T, D)
 9276        ;   true
 9277        ),
 9278        known(F),
 9279        (   D=suspension(_, active, _, R, _, _)
 9280        ->  setarg(2, D, inactive),
 9281            'known/1_1_$special_atom/1___1__1__0__7'(B, C, D)
 9282        ;   true
 9283        )
 9284    ;   'known/1_1_$special_atom/1___1__1__0__7'(B, C, D)
 9285    ).
 9286'known/1_1_$special_atom/1___1__1'(A, B) :-
 9287    'known/1_1_$special_atom/1___1__2'(A, B).
 9288'known/1_1_$special_atom/1___1__2'(A, B) :-
 9289    (   'chr newvia_1'(A, C)
 9290    ->  get_attr(C, guard_entailment, D),
 9291        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9292    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9293                  E)
 9294    ),
 9295    !,
 9296    'known/1_1_$special_atom/1___1__2__0__8'(E, A, B).
 9297'known/1_1_$special_atom/1___1__2__0__8'([], A, B) :-
 9298    'known/1_1_$special_atom/1___1__3'(A, B).
 9299'known/1_1_$special_atom/1___1__2__0__8'([A|B], C, D) :-
 9300    (   A=suspension(_, active, _, _, E, F),
 9301        nonvar(E),
 9302        E=(G, _),
 9303        nonvar(G),
 9304        G=(\+H),
 9305        nonvar(H),
 9306        H=atom(I),
 9307        I==C
 9308    ->  A=suspension(_, _, _, _, J, K),
 9309        setarg(2, A, removed),
 9310        term_variables(term(J, K), L),
 9311        ( arg(4, A, M),
 9312          (   var(M)
 9313          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9314                        N),
 9315              N=[_|O],
 9316              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9317                       O),
 9318              (   O=[P|_]
 9319              ->  setarg(4, P, _)
 9320              ;   true
 9321              )
 9322          ;   M=[_, _|O],
 9323              setarg(2, M, O),
 9324              (   O=[P|_]
 9325              ->  setarg(4, P, M)
 9326              ;   true
 9327              )
 9328          )
 9329        ),
 9330        'detach_known/1_1_$special_;/2___2'(L, A),
 9331        arg(2, D, Q),
 9332        setarg(2, D, active),
 9333        ( arg(4, D, R),
 9334          S is R+1,
 9335          setarg(4, D, S)
 9336        ),
 9337        (   Q==not_stored_yet
 9338        ->  D=suspension(_, _, _, _, _, T),
 9339            term_variables(T, U),
 9340            'chr none_locked'(U),
 9341            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9342                      V),
 9343            W=[D|V],
 9344            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9345                     W),
 9346            (   V=[X|_]
 9347            ->  setarg(5, X, W)
 9348            ;   true
 9349            ),
 9350            'attach_known/1_1_$special_atom/1___1'(U, D)
 9351        ;   true
 9352        ),
 9353        known(F),
 9354        (   D=suspension(_, active, _, S, _, _)
 9355        ->  setarg(2, D, inactive),
 9356            'known/1_1_$special_atom/1___1__2__0__8'(B, C, D)
 9357        ;   true
 9358        )
 9359    ;   'known/1_1_$special_atom/1___1__2__0__8'(B, C, D)
 9360    ).
 9361'known/1_1_$special_atom/1___1__2'(A, B) :-
 9362    'known/1_1_$special_atom/1___1__3'(A, B).
 9363'known/1_1_$special_atom/1___1__3'(_, A) :-
 9364    arg(2, A, B),
 9365    setarg(2, A, active),
 9366    arg(4, A, C),
 9367    D is C+1,
 9368    setarg(4, A, D),
 9369    (   B==not_stored_yet
 9370    ->  A=suspension(_, _, _, _, _, E),
 9371        term_variables(E, F),
 9372        'chr none_locked'(F),
 9373        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9374                  G),
 9375        H=[A|G],
 9376        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9377                 H),
 9378        (   G=[I|_]
 9379        ->  setarg(5, I, H)
 9380        ;   true
 9381        ),
 9382        'attach_known/1_1_$special_atom/1___1'(F, A)
 9383    ;   true
 9384    ).
 9385'known/1_1_$special_atomic/1'(A) :-
 9386    'known/1_1_$special_atomic/1___1__0'(A, _).
 9387'known/1_1_$special_atomic/1___1__0'(A, B) :-
 9388    (   'chr newvia_1'(A, C)
 9389    ->  get_attr(C, guard_entailment, D),
 9390        D=v(_, _, _, _, _, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9391    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9392                  E)
 9393    ),
 9394    member(F, E),
 9395    F=suspension(_, active, _, _, _, G),
 9396    G==A,
 9397    !,
 9398    (   var(B)
 9399    ->  true
 9400    ;   B=suspension(_, H, _, _, _, I),
 9401        setarg(2, B, removed),
 9402        (   H==not_stored_yet
 9403        ->  J=[]
 9404        ;   term_variables(I, J),
 9405            arg(5, B, K),
 9406            (   var(K)
 9407            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9408                          L),
 9409                L=[_|M],
 9410                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9411                         M),
 9412                (   M=[N|_]
 9413                ->  setarg(5, N, _)
 9414                ;   true
 9415                )
 9416            ;   K=[_, _|M],
 9417                setarg(2, K, M),
 9418                (   M=[N|_]
 9419                ->  setarg(5, N, K)
 9420                ;   true
 9421                )
 9422            ),
 9423            'detach_known/1_1_$special_atomic/1___1'(J, B)
 9424        )
 9425    ).
 9426'known/1_1_$special_atomic/1___1__0'(_, A) :-
 9427    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 9428              B),
 9429    member(C, B),
 9430    C=suspension(_, active, _),
 9431    !,
 9432    (   var(A)
 9433    ->  true
 9434    ;   A=suspension(_, D, _, _, _, E),
 9435        setarg(2, A, removed),
 9436        (   D==not_stored_yet
 9437        ->  F=[]
 9438        ;   term_variables(E, F),
 9439            arg(5, A, G),
 9440            (   var(G)
 9441            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9442                          H),
 9443                H=[_|I],
 9444                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9445                         I),
 9446                (   I=[J|_]
 9447                ->  setarg(5, J, _)
 9448                ;   true
 9449                )
 9450            ;   G=[_, _|I],
 9451                setarg(2, G, I),
 9452                (   I=[J|_]
 9453                ->  setarg(5, J, G)
 9454                ;   true
 9455                )
 9456            ),
 9457            'detach_known/1_1_$special_atomic/1___1'(F, A)
 9458        )
 9459    ).
 9460'known/1_1_$special_atomic/1___1__0'(A, B) :-
 9461    (   'chr newvia_1'(A, C)
 9462    ->  get_attr(C, guard_entailment, D),
 9463        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
 9464    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9465                  E)
 9466    ),
 9467    member(F, E),
 9468    F=suspension(_, active, _, _, G),
 9469    nonvar(G),
 9470    G=atomic(H),
 9471    H==A,
 9472    !,
 9473    F=suspension(_, _, _, _, I),
 9474    setarg(2, F, removed),
 9475    term_variables(I, J),
 9476    arg(4, F, K),
 9477    (   var(K)
 9478    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9479                  L),
 9480        L=[_|M],
 9481        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9482                 M),
 9483        (   M=[N|_]
 9484        ->  setarg(4, N, _)
 9485        ;   true
 9486        )
 9487    ;   K=[_, _|M],
 9488        setarg(2, K, M),
 9489        (   M=[N|_]
 9490        ->  setarg(4, N, K)
 9491        ;   true
 9492        )
 9493    ),
 9494    'detach_known/1_1_$special_\\+/1___1'(J, F),
 9495    (   var(B)
 9496    ->  true
 9497    ;   B=suspension(_, O, _, _, _, P),
 9498        setarg(2, B, removed),
 9499        (   O==not_stored_yet
 9500        ->  Q=[]
 9501        ;   term_variables(P, Q),
 9502            arg(5, B, R),
 9503            (   var(R)
 9504            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9505                          S),
 9506                S=[_|T],
 9507                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9508                         T),
 9509                (   T=[U|_]
 9510                ->  setarg(5, U, _)
 9511                ;   true
 9512                )
 9513            ;   R=[_, _|T],
 9514                setarg(2, R, T),
 9515                (   T=[U|_]
 9516                ->  setarg(5, U, R)
 9517                ;   true
 9518                )
 9519            ),
 9520            'detach_known/1_1_$special_atomic/1___1'(Q, B)
 9521        )
 9522    ),
 9523    'known/1_1_$special_fail/0'.
 9524'known/1_1_$special_atomic/1___1__0'(A, B) :-
 9525    (   var(B)
 9526    ->  B=suspension(C, not_stored_yet, t, 0, _, A),
 9527        'chr gen_id'(C)
 9528    ;   true
 9529    ),
 9530    (   '$novel_production'(B, 237),
 9531        !,
 9532        '$extend_history'(B, 237),
 9533        arg(2, B, D),
 9534        setarg(2, B, active),
 9535        arg(4, B, E),
 9536        F is E+1,
 9537        setarg(4, B, F),
 9538        (   D==not_stored_yet
 9539        ->  B=suspension(_, _, _, _, _, G),
 9540            term_variables(G, H),
 9541            'chr none_locked'(H),
 9542            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9543                      I),
 9544            J=[B|I],
 9545            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9546                     J),
 9547            (   I=[K|_]
 9548            ->  setarg(5, K, J)
 9549            ;   true
 9550            ),
 9551            'attach_known/1_1_$special_atomic/1___1'(H, B)
 9552        ;   true
 9553        ),
 9554        'known/1_1_$special_nonvar/1'(A),
 9555        (   B=suspension(_, active, _, F, _, _)
 9556        ->  setarg(2, B, inactive),
 9557            'known/1_1_$special_atomic/1___1__1'(A, B)
 9558        ;   true
 9559        )
 9560    ;   'known/1_1_$special_atomic/1___1__1'(A, B)
 9561    ).
 9562'known/1_1_$special_atomic/1___1__1'(A, B) :-
 9563    (   'chr newvia_1'(A, C)
 9564    ->  get_attr(C, guard_entailment, D),
 9565        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9566    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9567                  E)
 9568    ),
 9569    !,
 9570    'known/1_1_$special_atomic/1___1__1__0__7'(E, A, B).
 9571'known/1_1_$special_atomic/1___1__1__0__7'([], A, B) :-
 9572    'known/1_1_$special_atomic/1___1__2'(A, B).
 9573'known/1_1_$special_atomic/1___1__1__0__7'([A|B], C, D) :-
 9574    (   A=suspension(_, active, _, _, E, F),
 9575        nonvar(E),
 9576        E=(\+G),
 9577        nonvar(G),
 9578        G=atomic(H),
 9579        H==C
 9580    ->  A=suspension(_, _, _, _, I, J),
 9581        setarg(2, A, removed),
 9582        term_variables(term(I, J), K),
 9583        ( arg(4, A, L),
 9584          (   var(L)
 9585          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9586                        M),
 9587              M=[_|N],
 9588              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9589                       N),
 9590              (   N=[O|_]
 9591              ->  setarg(4, O, _)
 9592              ;   true
 9593              )
 9594          ;   L=[_, _|N],
 9595              setarg(2, L, N),
 9596              (   N=[O|_]
 9597              ->  setarg(4, O, L)
 9598              ;   true
 9599              )
 9600          )
 9601        ),
 9602        'detach_known/1_1_$special_;/2___2'(K, A),
 9603        arg(2, D, P),
 9604        setarg(2, D, active),
 9605        ( arg(4, D, Q),
 9606          R is Q+1,
 9607          setarg(4, D, R)
 9608        ),
 9609        (   P==not_stored_yet
 9610        ->  D=suspension(_, _, _, _, _, S),
 9611            term_variables(S, T),
 9612            'chr none_locked'(T),
 9613            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9614                      U),
 9615            V=[D|U],
 9616            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9617                     V),
 9618            (   U=[W|_]
 9619            ->  setarg(5, W, V)
 9620            ;   true
 9621            ),
 9622            'attach_known/1_1_$special_atomic/1___1'(T, D)
 9623        ;   true
 9624        ),
 9625        known(F),
 9626        (   D=suspension(_, active, _, R, _, _)
 9627        ->  setarg(2, D, inactive),
 9628            'known/1_1_$special_atomic/1___1__1__0__7'(B, C, D)
 9629        ;   true
 9630        )
 9631    ;   'known/1_1_$special_atomic/1___1__1__0__7'(B, C, D)
 9632    ).
 9633'known/1_1_$special_atomic/1___1__1'(A, B) :-
 9634    'known/1_1_$special_atomic/1___1__2'(A, B).
 9635'known/1_1_$special_atomic/1___1__2'(A, B) :-
 9636    (   'chr newvia_1'(A, C)
 9637    ->  get_attr(C, guard_entailment, D),
 9638        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9639    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9640                  E)
 9641    ),
 9642    !,
 9643    'known/1_1_$special_atomic/1___1__2__0__8'(E, A, B).
 9644'known/1_1_$special_atomic/1___1__2__0__8'([], A, B) :-
 9645    'known/1_1_$special_atomic/1___1__3'(A, B).
 9646'known/1_1_$special_atomic/1___1__2__0__8'([A|B], C, D) :-
 9647    (   A=suspension(_, active, _, _, E, F),
 9648        nonvar(E),
 9649        E=(G, _),
 9650        nonvar(G),
 9651        G=(\+H),
 9652        nonvar(H),
 9653        H=atomic(I),
 9654        I==C
 9655    ->  A=suspension(_, _, _, _, J, K),
 9656        setarg(2, A, removed),
 9657        term_variables(term(J, K), L),
 9658        ( arg(4, A, M),
 9659          (   var(M)
 9660          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9661                        N),
 9662              N=[_|O],
 9663              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9664                       O),
 9665              (   O=[P|_]
 9666              ->  setarg(4, P, _)
 9667              ;   true
 9668              )
 9669          ;   M=[_, _|O],
 9670              setarg(2, M, O),
 9671              (   O=[P|_]
 9672              ->  setarg(4, P, M)
 9673              ;   true
 9674              )
 9675          )
 9676        ),
 9677        'detach_known/1_1_$special_;/2___2'(L, A),
 9678        arg(2, D, Q),
 9679        setarg(2, D, active),
 9680        ( arg(4, D, R),
 9681          S is R+1,
 9682          setarg(4, D, S)
 9683        ),
 9684        (   Q==not_stored_yet
 9685        ->  D=suspension(_, _, _, _, _, T),
 9686            term_variables(T, U),
 9687            'chr none_locked'(U),
 9688            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9689                      V),
 9690            W=[D|V],
 9691            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9692                     W),
 9693            (   V=[X|_]
 9694            ->  setarg(5, X, W)
 9695            ;   true
 9696            ),
 9697            'attach_known/1_1_$special_atomic/1___1'(U, D)
 9698        ;   true
 9699        ),
 9700        known(F),
 9701        (   D=suspension(_, active, _, S, _, _)
 9702        ->  setarg(2, D, inactive),
 9703            'known/1_1_$special_atomic/1___1__2__0__8'(B, C, D)
 9704        ;   true
 9705        )
 9706    ;   'known/1_1_$special_atomic/1___1__2__0__8'(B, C, D)
 9707    ).
 9708'known/1_1_$special_atomic/1___1__2'(A, B) :-
 9709    'known/1_1_$special_atomic/1___1__3'(A, B).
 9710'known/1_1_$special_atomic/1___1__3'(_, A) :-
 9711    arg(2, A, B),
 9712    setarg(2, A, active),
 9713    arg(4, A, C),
 9714    D is C+1,
 9715    setarg(4, A, D),
 9716    (   B==not_stored_yet
 9717    ->  A=suspension(_, _, _, _, _, E),
 9718        term_variables(E, F),
 9719        'chr none_locked'(F),
 9720        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9721                  G),
 9722        H=[A|G],
 9723        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9724                 H),
 9725        (   G=[I|_]
 9726        ->  setarg(5, I, H)
 9727        ;   true
 9728        ),
 9729        'attach_known/1_1_$special_atomic/1___1'(F, A)
 9730    ;   true
 9731    ).
 9732'known/1_1_$special_compound/1'(A) :-
 9733    'known/1_1_$special_compound/1___1__0'(A, _).
 9734'known/1_1_$special_compound/1___1__0'(A, B) :-
 9735    (   'chr newvia_1'(A, C)
 9736    ->  get_attr(C, guard_entailment, D),
 9737        D=v(_, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9738    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9739                  E)
 9740    ),
 9741    member(F, E),
 9742    F=suspension(_, active, _, _, _, G),
 9743    G==A,
 9744    !,
 9745    (   var(B)
 9746    ->  true
 9747    ;   B=suspension(_, H, _, _, _, I),
 9748        setarg(2, B, removed),
 9749        (   H==not_stored_yet
 9750        ->  J=[]
 9751        ;   term_variables(I, J),
 9752            arg(5, B, K),
 9753            (   var(K)
 9754            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9755                          L),
 9756                L=[_|M],
 9757                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9758                         M),
 9759                (   M=[N|_]
 9760                ->  setarg(5, N, _)
 9761                ;   true
 9762                )
 9763            ;   K=[_, _|M],
 9764                setarg(2, K, M),
 9765                (   M=[N|_]
 9766                ->  setarg(5, N, K)
 9767                ;   true
 9768                )
 9769            ),
 9770            'detach_known/1_1_$special_compound/1___1'(J, B)
 9771        )
 9772    ).
 9773'known/1_1_$special_compound/1___1__0'(_, A) :-
 9774    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 9775              B),
 9776    member(C, B),
 9777    C=suspension(_, active, _),
 9778    !,
 9779    (   var(A)
 9780    ->  true
 9781    ;   A=suspension(_, D, _, _, _, E),
 9782        setarg(2, A, removed),
 9783        (   D==not_stored_yet
 9784        ->  F=[]
 9785        ;   term_variables(E, F),
 9786            arg(5, A, G),
 9787            (   var(G)
 9788            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9789                          H),
 9790                H=[_|I],
 9791                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9792                         I),
 9793                (   I=[J|_]
 9794                ->  setarg(5, J, _)
 9795                ;   true
 9796                )
 9797            ;   G=[_, _|I],
 9798                setarg(2, G, I),
 9799                (   I=[J|_]
 9800                ->  setarg(5, J, G)
 9801                ;   true
 9802                )
 9803            ),
 9804            'detach_known/1_1_$special_compound/1___1'(F, A)
 9805        )
 9806    ).
 9807'known/1_1_$special_compound/1___1__0'(A, B) :-
 9808    (   'chr newvia_1'(A, C)
 9809    ->  get_attr(C, guard_entailment, D),
 9810        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
 9811    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9812                  E)
 9813    ),
 9814    member(F, E),
 9815    F=suspension(_, active, _, _, G),
 9816    nonvar(G),
 9817    G=compound(H),
 9818    H==A,
 9819    !,
 9820    F=suspension(_, _, _, _, I),
 9821    setarg(2, F, removed),
 9822    term_variables(I, J),
 9823    arg(4, F, K),
 9824    (   var(K)
 9825    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9826                  L),
 9827        L=[_|M],
 9828        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9829                 M),
 9830        (   M=[N|_]
 9831        ->  setarg(4, N, _)
 9832        ;   true
 9833        )
 9834    ;   K=[_, _|M],
 9835        setarg(2, K, M),
 9836        (   M=[N|_]
 9837        ->  setarg(4, N, K)
 9838        ;   true
 9839        )
 9840    ),
 9841    'detach_known/1_1_$special_\\+/1___1'(J, F),
 9842    (   var(B)
 9843    ->  true
 9844    ;   B=suspension(_, O, _, _, _, P),
 9845        setarg(2, B, removed),
 9846        (   O==not_stored_yet
 9847        ->  Q=[]
 9848        ;   term_variables(P, Q),
 9849            arg(5, B, R),
 9850            (   var(R)
 9851            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9852                          S),
 9853                S=[_|T],
 9854                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9855                         T),
 9856                (   T=[U|_]
 9857                ->  setarg(5, U, _)
 9858                ;   true
 9859                )
 9860            ;   R=[_, _|T],
 9861                setarg(2, R, T),
 9862                (   T=[U|_]
 9863                ->  setarg(5, U, R)
 9864                ;   true
 9865                )
 9866            ),
 9867            'detach_known/1_1_$special_compound/1___1'(Q, B)
 9868        )
 9869    ),
 9870    'known/1_1_$special_fail/0'.
 9871'known/1_1_$special_compound/1___1__0'(A, B) :-
 9872    (   var(B)
 9873    ->  B=suspension(C, not_stored_yet, t, 0, _, A),
 9874        'chr gen_id'(C)
 9875    ;   true
 9876    ),
 9877    (   '$novel_production'(B, 236),
 9878        !,
 9879        '$extend_history'(B, 236),
 9880        arg(2, B, D),
 9881        setarg(2, B, active),
 9882        arg(4, B, E),
 9883        F is E+1,
 9884        setarg(4, B, F),
 9885        (   D==not_stored_yet
 9886        ->  B=suspension(_, _, _, _, _, G),
 9887            term_variables(G, H),
 9888            'chr none_locked'(H),
 9889            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9890                      I),
 9891            J=[B|I],
 9892            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9893                     J),
 9894            (   I=[K|_]
 9895            ->  setarg(5, K, J)
 9896            ;   true
 9897            ),
 9898            'attach_known/1_1_$special_compound/1___1'(H, B)
 9899        ;   true
 9900        ),
 9901        'known/1_1_$special_nonvar/1'(A),
 9902        (   B=suspension(_, active, _, F, _, _)
 9903        ->  setarg(2, B, inactive),
 9904            'known/1_1_$special_compound/1___1__1'(A, B)
 9905        ;   true
 9906        )
 9907    ;   'known/1_1_$special_compound/1___1__1'(A, B)
 9908    ).
 9909'known/1_1_$special_compound/1___1__1'(A, B) :-
 9910    (   'chr newvia_1'(A, C)
 9911    ->  get_attr(C, guard_entailment, D),
 9912        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9913    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9914                  E)
 9915    ),
 9916    !,
 9917    'known/1_1_$special_compound/1___1__1__0__7'(E, A, B).
 9918'known/1_1_$special_compound/1___1__1__0__7'([], A, B) :-
 9919    'known/1_1_$special_compound/1___1__2'(A, B).
 9920'known/1_1_$special_compound/1___1__1__0__7'([A|B], C, D) :-
 9921    (   A=suspension(_, active, _, _, E, F),
 9922        nonvar(E),
 9923        E=(\+G),
 9924        nonvar(G),
 9925        G=compound(H),
 9926        H==C
 9927    ->  A=suspension(_, _, _, _, I, J),
 9928        setarg(2, A, removed),
 9929        term_variables(term(I, J), K),
 9930        ( arg(4, A, L),
 9931          (   var(L)
 9932          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9933                        M),
 9934              M=[_|N],
 9935              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9936                       N),
 9937              (   N=[O|_]
 9938              ->  setarg(4, O, _)
 9939              ;   true
 9940              )
 9941          ;   L=[_, _|N],
 9942              setarg(2, L, N),
 9943              (   N=[O|_]
 9944              ->  setarg(4, O, L)
 9945              ;   true
 9946              )
 9947          )
 9948        ),
 9949        'detach_known/1_1_$special_;/2___2'(K, A),
 9950        arg(2, D, P),
 9951        setarg(2, D, active),
 9952        ( arg(4, D, Q),
 9953          R is Q+1,
 9954          setarg(4, D, R)
 9955        ),
 9956        (   P==not_stored_yet
 9957        ->  D=suspension(_, _, _, _, _, S),
 9958            term_variables(S, T),
 9959            'chr none_locked'(T),
 9960            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9961                      U),
 9962            V=[D|U],
 9963            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9964                     V),
 9965            (   U=[W|_]
 9966            ->  setarg(5, W, V)
 9967            ;   true
 9968            ),
 9969            'attach_known/1_1_$special_compound/1___1'(T, D)
 9970        ;   true
 9971        ),
 9972        known(F),
 9973        (   D=suspension(_, active, _, R, _, _)
 9974        ->  setarg(2, D, inactive),
 9975            'known/1_1_$special_compound/1___1__1__0__7'(B,
 9976                                                         C,
 9977                                                         D)
 9978        ;   true
 9979        )
 9980    ;   'known/1_1_$special_compound/1___1__1__0__7'(B, C, D)
 9981    ).
 9982'known/1_1_$special_compound/1___1__1'(A, B) :-
 9983    'known/1_1_$special_compound/1___1__2'(A, B).
 9984'known/1_1_$special_compound/1___1__2'(A, B) :-
 9985    (   'chr newvia_1'(A, C)
 9986    ->  get_attr(C, guard_entailment, D),
 9987        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9988    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9989                  E)
 9990    ),
 9991    !,
 9992    'known/1_1_$special_compound/1___1__2__0__8'(E, A, B).
 9993'known/1_1_$special_compound/1___1__2__0__8'([], A, B) :-
 9994    'known/1_1_$special_compound/1___1__3'(A, B).
 9995'known/1_1_$special_compound/1___1__2__0__8'([A|B], C, D) :-
 9996    (   A=suspension(_, active, _, _, E, F),
 9997        nonvar(E),
 9998        E=(G, _),
 9999        nonvar(G),
10000        G=(\+H),
10001        nonvar(H),
10002        H=compound(I),
10003        I==C
10004    ->  A=suspension(_, _, _, _, J, K),
10005        setarg(2, A, removed),
10006        term_variables(term(J, K), L),
10007        ( arg(4, A, M),
10008          (   var(M)
10009          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10010                        N),
10011              N=[_|O],
10012              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10013                       O),
10014              (   O=[P|_]
10015              ->  setarg(4, P, _)
10016              ;   true
10017              )
10018          ;   M=[_, _|O],
10019              setarg(2, M, O),
10020              (   O=[P|_]
10021              ->  setarg(4, P, M)
10022              ;   true
10023              )
10024          )
10025        ),
10026        'detach_known/1_1_$special_;/2___2'(L, A),
10027        arg(2, D, Q),
10028        setarg(2, D, active),
10029        ( arg(4, D, R),
10030          S is R+1,
10031          setarg(4, D, S)
10032        ),
10033        (   Q==not_stored_yet
10034        ->  D=suspension(_, _, _, _, _, T),
10035            term_variables(T, U),
10036            'chr none_locked'(U),
10037            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10038                      V),
10039            W=[D|V],
10040            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10041                     W),
10042            (   V=[X|_]
10043            ->  setarg(5, X, W)
10044            ;   true
10045            ),
10046            'attach_known/1_1_$special_compound/1___1'(U, D)
10047        ;   true
10048        ),
10049        known(F),
10050        (   D=suspension(_, active, _, S, _, _)
10051        ->  setarg(2, D, inactive),
10052            'known/1_1_$special_compound/1___1__2__0__8'(B,
10053                                                         C,
10054                                                         D)
10055        ;   true
10056        )
10057    ;   'known/1_1_$special_compound/1___1__2__0__8'(B, C, D)
10058    ).
10059'known/1_1_$special_compound/1___1__2'(A, B) :-
10060    'known/1_1_$special_compound/1___1__3'(A, B).
10061'known/1_1_$special_compound/1___1__3'(_, A) :-
10062    arg(2, A, B),
10063    setarg(2, A, active),
10064    arg(4, A, C),
10065    D is C+1,
10066    setarg(4, A, D),
10067    (   B==not_stored_yet
10068    ->  A=suspension(_, _, _, _, _, E),
10069        term_variables(E, F),
10070        'chr none_locked'(F),
10071        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10072                  G),
10073        H=[A|G],
10074        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10075                 H),
10076        (   G=[I|_]
10077        ->  setarg(5, I, H)
10078        ;   true
10079        ),
10080        'attach_known/1_1_$special_compound/1___1'(F, A)
10081    ;   true
10082    ).
10083'known/1_1_$special_ground/1'(A) :-
10084    'known/1_1_$special_ground/1___1__0'(A, _).
10085'known/1_1_$special_ground/1___1__0'(A, B) :-
10086    (   'chr newvia_1'(A, C)
10087    ->  get_attr(C, guard_entailment, D),
10088        D=v(_, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _)
10089    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10090                  E)
10091    ),
10092    member(F, E),
10093    F=suspension(_, active, _, _, _, G),
10094    G==A,
10095    !,
10096    (   var(B)
10097    ->  true
10098    ;   B=suspension(_, H, _, _, _, I),
10099        setarg(2, B, removed),
10100        (   H==not_stored_yet
10101        ->  J=[]
10102        ;   term_variables(I, J),
10103            arg(5, B, K),
10104            (   var(K)
10105            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10106                          L),
10107                L=[_|M],
10108                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10109                         M),
10110                (   M=[N|_]
10111                ->  setarg(5, N, _)
10112                ;   true
10113                )
10114            ;   K=[_, _|M],
10115                setarg(2, K, M),
10116                (   M=[N|_]
10117                ->  setarg(5, N, K)
10118                ;   true
10119                )
10120            ),
10121            'detach_known/1_1_$special_ground/1___1'(J, B)
10122        )
10123    ).
10124'known/1_1_$special_ground/1___1__0'(_, A) :-
10125    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
10126              B),
10127    member(C, B),
10128    C=suspension(_, active, _),
10129    !,
10130    (   var(A)
10131    ->  true
10132    ;   A=suspension(_, D, _, _, _, E),
10133        setarg(2, A, removed),
10134        (   D==not_stored_yet
10135        ->  F=[]
10136        ;   term_variables(E, F),
10137            arg(5, A, G),
10138            (   var(G)
10139            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10140                          H),
10141                H=[_|I],
10142                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10143                         I),
10144                (   I=[J|_]
10145                ->  setarg(5, J, _)
10146                ;   true
10147                )
10148            ;   G=[_, _|I],
10149                setarg(2, G, I),
10150                (   I=[J|_]
10151                ->  setarg(5, J, G)
10152                ;   true
10153                )
10154            ),
10155            'detach_known/1_1_$special_ground/1___1'(F, A)
10156        )
10157    ).
10158'known/1_1_$special_ground/1___1__0'(A, B) :-
10159    (   'chr newvia_1'(A, C)
10160    ->  get_attr(C, guard_entailment, D),
10161        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
10162    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10163                  E)
10164    ),
10165    member(F, E),
10166    F=suspension(_, active, _, _, G),
10167    nonvar(G),
10168    G=ground(H),
10169    H==A,
10170    !,
10171    F=suspension(_, _, _, _, I),
10172    setarg(2, F, removed),
10173    term_variables(I, J),
10174    arg(4, F, K),
10175    (   var(K)
10176    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10177                  L),
10178        L=[_|M],
10179        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10180                 M),
10181        (   M=[N|_]
10182        ->  setarg(4, N, _)
10183        ;   true
10184        )
10185    ;   K=[_, _|M],
10186        setarg(2, K, M),
10187        (   M=[N|_]
10188        ->  setarg(4, N, K)
10189        ;   true
10190        )
10191    ),
10192    'detach_known/1_1_$special_\\+/1___1'(J, F),
10193    (   var(B)
10194    ->  true
10195    ;   B=suspension(_, O, _, _, _, P),
10196        setarg(2, B, removed),
10197        (   O==not_stored_yet
10198        ->  Q=[]
10199        ;   term_variables(P, Q),
10200            arg(5, B, R),
10201            (   var(R)
10202            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10203                          S),
10204                S=[_|T],
10205                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10206                         T),
10207                (   T=[U|_]
10208                ->  setarg(5, U, _)
10209                ;   true
10210                )
10211            ;   R=[_, _|T],
10212                setarg(2, R, T),
10213                (   T=[U|_]
10214                ->  setarg(5, U, R)
10215                ;   true
10216                )
10217            ),
10218            'detach_known/1_1_$special_ground/1___1'(Q, B)
10219        )
10220    ),
10221    'known/1_1_$special_fail/0'.
10222'known/1_1_$special_ground/1___1__0'(A, B) :-
10223    (   var(B)
10224    ->  B=suspension(C, not_stored_yet, t, 0, _, A),
10225        'chr gen_id'(C)
10226    ;   true
10227    ),
10228    (   '$novel_production'(B, 235),
10229        !,
10230        '$extend_history'(B, 235),
10231        arg(2, B, D),
10232        setarg(2, B, active),
10233        arg(4, B, E),
10234        F is E+1,
10235        setarg(4, B, F),
10236        (   D==not_stored_yet
10237        ->  B=suspension(_, _, _, _, _, G),
10238            term_variables(G, H),
10239            'chr none_locked'(H),
10240            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10241                      I),
10242            J=[B|I],
10243            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10244                     J),
10245            (   I=[K|_]
10246            ->  setarg(5, K, J)
10247            ;   true
10248            ),
10249            'attach_known/1_1_$special_ground/1___1'(H, B)
10250        ;   true
10251        ),
10252        'known/1_1_$special_nonvar/1'(A),
10253        (   B=suspension(_, active, _, F, _, _)
10254        ->  setarg(2, B, inactive),
10255            'known/1_1_$special_ground/1___1__1'(A, B)
10256        ;   true
10257        )
10258    ;   'known/1_1_$special_ground/1___1__1'(A, B)
10259    ).
10260'known/1_1_$special_ground/1___1__1'(A, B) :-
10261    (   'chr newvia_1'(A, C)
10262    ->  get_attr(C, guard_entailment, D),
10263        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
10264    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10265                  E)
10266    ),
10267    !,
10268    'known/1_1_$special_ground/1___1__1__0__7'(E, A, B).
10269'known/1_1_$special_ground/1___1__1__0__7'([], A, B) :-
10270    'known/1_1_$special_ground/1___1__2'(A, B).
10271'known/1_1_$special_ground/1___1__1__0__7'([A|B], C, D) :-
10272    (   A=suspension(_, active, _, _, E, F),
10273        nonvar(E),
10274        E=(\+G),
10275        nonvar(G),
10276        G=ground(H),
10277        H==C
10278    ->  A=suspension(_, _, _, _, I, J),
10279        setarg(2, A, removed),
10280        term_variables(term(I, J), K),
10281        ( arg(4, A, L),
10282          (   var(L)
10283          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10284                        M),
10285              M=[_|N],
10286              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10287                       N),
10288              (   N=[O|_]
10289              ->  setarg(4, O, _)
10290              ;   true
10291              )
10292          ;   L=[_, _|N],
10293              setarg(2, L, N),
10294              (   N=[O|_]
10295              ->  setarg(4, O, L)
10296              ;   true
10297              )
10298          )
10299        ),
10300        'detach_known/1_1_$special_;/2___2'(K, A),
10301        arg(2, D, P),
10302        setarg(2, D, active),
10303        ( arg(4, D, Q),
10304          R is Q+1,
10305          setarg(4, D, R)
10306        ),
10307        (   P==not_stored_yet
10308        ->  D=suspension(_, _, _, _, _, S),
10309            term_variables(S, T),
10310            'chr none_locked'(T),
10311            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10312                      U),
10313            V=[D|U],
10314            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10315                     V),
10316            (   U=[W|_]
10317            ->  setarg(5, W, V)
10318            ;   true
10319            ),
10320            'attach_known/1_1_$special_ground/1___1'(T, D)
10321        ;   true
10322        ),
10323        known(F),
10324        (   D=suspension(_, active, _, R, _, _)
10325        ->  setarg(2, D, inactive),
10326            'known/1_1_$special_ground/1___1__1__0__7'(B, C, D)
10327        ;   true
10328        )
10329    ;   'known/1_1_$special_ground/1___1__1__0__7'(B, C, D)
10330    ).
10331'known/1_1_$special_ground/1___1__1'(A, B) :-
10332    'known/1_1_$special_ground/1___1__2'(A, B).
10333'known/1_1_$special_ground/1___1__2'(A, B) :-
10334    (   'chr newvia_1'(A, C)
10335    ->  get_attr(C, guard_entailment, D),
10336        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
10337    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10338                  E)
10339    ),
10340    !,
10341    'known/1_1_$special_ground/1___1__2__0__8'(E, A, B).
10342'known/1_1_$special_ground/1___1__2__0__8'([], A, B) :-
10343    'known/1_1_$special_ground/1___1__3'(A, B).
10344'known/1_1_$special_ground/1___1__2__0__8'([A|B], C, D) :-
10345    (   A=suspension(_, active, _, _, E, F),
10346        nonvar(E),
10347        E=(G, _),
10348        nonvar(G),
10349        G=(\+H),
10350        nonvar(H),
10351        H=ground(I),
10352        I==C
10353    ->  A=suspension(_, _, _, _, J, K),
10354        setarg(2, A, removed),
10355        term_variables(term(J, K), L),
10356        ( arg(4, A, M),
10357          (   var(M)
10358          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10359                        N),
10360              N=[_|O],
10361              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10362                       O),
10363              (   O=[P|_]
10364              ->  setarg(4, P, _)
10365              ;   true
10366              )
10367          ;   M=[_, _|O],
10368              setarg(2, M, O),
10369              (   O=[P|_]
10370              ->  setarg(4, P, M)
10371              ;   true
10372              )
10373          )
10374        ),
10375        'detach_known/1_1_$special_;/2___2'(L, A),
10376        arg(2, D, Q),
10377        setarg(2, D, active),
10378        ( arg(4, D, R),
10379          S is R+1,
10380          setarg(4, D, S)
10381        ),
10382        (   Q==not_stored_yet
10383        ->  D=suspension(_, _, _, _, _, T),
10384            term_variables(T, U),
10385            'chr none_locked'(U),
10386            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10387                      V),
10388            W=[D|V],
10389            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10390                     W),
10391            (   V=[X|_]
10392            ->  setarg(5, X, W)
10393            ;   true
10394            ),
10395            'attach_known/1_1_$special_ground/1___1'(U, D)
10396        ;   true
10397        ),
10398        known(F),
10399        (   D=suspension(_, active, _, S, _, _)
10400        ->  setarg(2, D, inactive),
10401            'known/1_1_$special_ground/1___1__2__0__8'(B, C, D)
10402        ;   true
10403        )
10404    ;   'known/1_1_$special_ground/1___1__2__0__8'(B, C, D)
10405    ).
10406'known/1_1_$special_ground/1___1__2'(A, B) :-
10407    'known/1_1_$special_ground/1___1__3'(A, B).
10408'known/1_1_$special_ground/1___1__3'(_, A) :-
10409    arg(2, A, B),
10410    setarg(2, A, active),
10411    arg(4, A, C),
10412    D is C+1,
10413    setarg(4, A, D),
10414    (   B==not_stored_yet
10415    ->  A=suspension(_, _, _, _, _, E),
10416        term_variables(E, F),
10417        'chr none_locked'(F),
10418        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10419                  G),
10420        H=[A|G],
10421        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10422                 H),
10423        (   G=[I|_]
10424        ->  setarg(5, I, H)
10425        ;   true
10426        ),
10427        'attach_known/1_1_$special_ground/1___1'(F, A)
10428    ;   true
10429    ).
10430'known/1_1_$special_integer/1'(A) :-
10431    'known/1_1_$special_integer/1___1__0'(A, _).
10432'known/1_1_$special_integer/1___1__0'(A, B) :-
10433    (   'chr newvia_1'(A, C)
10434    ->  get_attr(C, guard_entailment, D),
10435        D=v(_, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _, _, _, _, _)
10436    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10437                  E)
10438    ),
10439    member(F, E),
10440    F=suspension(_, active, _, _, _, G),
10441    G==A,
10442    !,
10443    (   var(B)
10444    ->  true
10445    ;   B=suspension(_, H, _, _, _, I),
10446        setarg(2, B, removed),
10447        (   H==not_stored_yet
10448        ->  J=[]
10449        ;   term_variables(I, J),
10450            arg(5, B, K),
10451            (   var(K)
10452            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10453                          L),
10454                L=[_|M],
10455                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10456                         M),
10457                (   M=[N|_]
10458                ->  setarg(5, N, _)
10459                ;   true
10460                )
10461            ;   K=[_, _|M],
10462                setarg(2, K, M),
10463                (   M=[N|_]
10464                ->  setarg(5, N, K)
10465                ;   true
10466                )
10467            ),
10468            'detach_known/1_1_$special_integer/1___1'(J, B)
10469        )
10470    ).
10471'known/1_1_$special_integer/1___1__0'(_, A) :-
10472    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
10473              B),
10474    member(C, B),
10475    C=suspension(_, active, _),
10476    !,
10477    (   var(A)
10478    ->  true
10479    ;   A=suspension(_, D, _, _, _, E),
10480        setarg(2, A, removed),
10481        (   D==not_stored_yet
10482        ->  F=[]
10483        ;   term_variables(E, F),
10484            arg(5, A, G),
10485            (   var(G)
10486            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10487                          H),
10488                H=[_|I],
10489                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10490                         I),
10491                (   I=[J|_]
10492                ->  setarg(5, J, _)
10493                ;   true
10494                )
10495            ;   G=[_, _|I],
10496                setarg(2, G, I),
10497                (   I=[J|_]
10498                ->  setarg(5, J, G)
10499                ;   true
10500                )
10501            ),
10502            'detach_known/1_1_$special_integer/1___1'(F, A)
10503        )
10504    ).
10505'known/1_1_$special_integer/1___1__0'(A, B) :-
10506    nonvar(A),
10507    \+ integer(A),
10508    !,
10509    (   var(B)
10510    ->  true
10511    ;   B=suspension(_, C, _, _, _, D),
10512        setarg(2, B, removed),
10513        (   C==not_stored_yet
10514        ->  E=[]
10515        ;   term_variables(D, E),
10516            arg(5, B, F),
10517            (   var(F)
10518            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10519                          G),
10520                G=[_|H],
10521                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10522                         H),
10523                (   H=[I|_]
10524                ->  setarg(5, I, _)
10525                ;   true
10526                )
10527            ;   F=[_, _|H],
10528                setarg(2, F, H),
10529                (   H=[I|_]
10530                ->  setarg(5, I, F)
10531                ;   true
10532                )
10533            ),
10534            'detach_known/1_1_$special_integer/1___1'(E, B)
10535        )
10536    ),
10537    'known/1_1_$special_fail/0'.
10538'known/1_1_$special_integer/1___1__0'(A, B) :-
10539    (   var(B)
10540    ->  B=suspension(C, not_stored_yet, t, 0, _, A),
10541        'chr gen_id'(C)
10542    ;   true
10543    ),
10544    (   '$novel_production'(B, 199),
10545        !,
10546        '$extend_history'(B, 199),
10547        arg(2, B, D),
10548        setarg(2, B, active),
10549        arg(4, B, E),
10550        F is E+1,
10551        setarg(4, B, F),
10552        (   D==not_stored_yet
10553        ->  B=suspension(_, _, _, _, _, G),
10554            term_variables(G, H),
10555            'chr none_locked'(H),
10556            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10557                      I),
10558            J=[B|I],
10559            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10560                     J),
10561            (   I=[K|_]
10562            ->  setarg(5, K, J)
10563            ;   true
10564            ),
10565            'attach_known/1_1_$special_integer/1___1'(H, B)
10566        ;   true
10567        ),
10568        'known/1_1_$special_number/1'(A),
10569        (   B=suspension(_, active, _, F, _, _)
10570        ->  setarg(2, B, inactive),
10571            'known/1_1_$special_integer/1___1__1'(A, B)
10572        ;   true
10573        )
10574    ;   'known/1_1_$special_integer/1___1__1'(A, B)
10575    ).
10576'known/1_1_$special_integer/1___1__1'(A, B) :-
10577    (   'chr newvia_1'(A, C)
10578    ->  get_attr(C, guard_entailment, D),
10579        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
10580    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10581                  E)
10582    ),
10583    member(F, E),
10584    F=suspension(_, active, _, _, G),
10585    nonvar(G),
10586    G=integer(H),
10587    H==A,
10588    !,
10589    F=suspension(_, _, _, _, I),
10590    setarg(2, F, removed),
10591    term_variables(I, J),
10592    arg(4, F, K),
10593    (   var(K)
10594    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10595                  L),
10596        L=[_|M],
10597        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10598                 M),
10599        (   M=[N|_]
10600        ->  setarg(4, N, _)
10601        ;   true
10602        )
10603    ;   K=[_, _|M],
10604        setarg(2, K, M),
10605        (   M=[N|_]
10606        ->  setarg(4, N, K)
10607        ;   true
10608        )
10609    ),
10610    'detach_known/1_1_$special_\\+/1___1'(J, F),
10611    (   var(B)
10612    ->  true
10613    ;   B=suspension(_, O, _, _, _, P),
10614        setarg(2, B, removed),
10615        (   O==not_stored_yet
10616        ->  Q=[]
10617        ;   term_variables(P, Q),
10618            arg(5, B, R),
10619            (   var(R)
10620            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10621                          S),
10622                S=[_|T],
10623                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10624                         T),
10625                (   T=[U|_]
10626                ->  setarg(5, U, _)
10627                ;   true
10628                )
10629            ;   R=[_, _|T],
10630                setarg(2, R, T),
10631                (   T=[U|_]
10632                ->  setarg(5, U, R)
10633                ;   true
10634                )
10635            ),
10636            'detach_known/1_1_$special_integer/1___1'(Q, B)
10637        )
10638    ),
10639    'known/1_1_$special_fail/0'.
10640'known/1_1_$special_integer/1___1__1'(A, B) :-
10641    (   'chr newvia_1'(A, C)
10642    ->  get_attr(C, guard_entailment, D),
10643        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
10644    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10645                  E)
10646    ),
10647    !,
10648    'known/1_1_$special_integer/1___1__1__0__8'(E, A, B).
10649'known/1_1_$special_integer/1___1__1__0__8'([], A, B) :-
10650    'known/1_1_$special_integer/1___1__2'(A, B).
10651'known/1_1_$special_integer/1___1__1__0__8'([A|B], C, D) :-
10652    (   A=suspension(_, active, _, _, E, F),
10653        nonvar(E),
10654        E=(\+G),
10655        nonvar(G),
10656        G=integer(H),
10657        H==C
10658    ->  A=suspension(_, _, _, _, I, J),
10659        setarg(2, A, removed),
10660        term_variables(term(I, J), K),
10661        ( arg(4, A, L),
10662          (   var(L)
10663          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10664                        M),
10665              M=[_|N],
10666              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10667                       N),
10668              (   N=[O|_]
10669              ->  setarg(4, O, _)
10670              ;   true
10671              )
10672          ;   L=[_, _|N],
10673              setarg(2, L, N),
10674              (   N=[O|_]
10675              ->  setarg(4, O, L)
10676              ;   true
10677              )
10678          )
10679        ),
10680        'detach_known/1_1_$special_;/2___2'(K, A),
10681        arg(2, D, P),
10682        setarg(2, D, active),
10683        ( arg(4, D, Q),
10684          R is Q+1,
10685          setarg(4, D, R)
10686        ),
10687        (   P==not_stored_yet
10688        ->  D=suspension(_, _, _, _, _, S),
10689            term_variables(S, T),
10690            'chr none_locked'(T),
10691            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10692                      U),
10693            V=[D|U],
10694            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10695                     V),
10696            (   U=[W|_]
10697            ->  setarg(5, W, V)
10698            ;   true
10699            ),
10700            'attach_known/1_1_$special_integer/1___1'(T, D)
10701        ;   true
10702        ),
10703        known(F),
10704        (   D=suspension(_, active, _, R, _, _)
10705        ->  setarg(2, D, inactive),
10706            'known/1_1_$special_integer/1___1__1__0__8'(B, C, D)
10707        ;   true
10708        )
10709    ;   'known/1_1_$special_integer/1___1__1__0__8'(B, C, D)
10710    ).
10711'known/1_1_$special_integer/1___1__1'(A, B) :-
10712    'known/1_1_$special_integer/1___1__2'(A, B).
10713'known/1_1_$special_integer/1___1__2'(A, B) :-
10714    (   'chr newvia_1'(A, C)
10715    ->  get_attr(C, guard_entailment, D),
10716        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
10717    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10718                  E)
10719    ),
10720    !,
10721    'known/1_1_$special_integer/1___1__2__0__9'(E, A, B).
10722'known/1_1_$special_integer/1___1__2__0__9'([], A, B) :-
10723    'known/1_1_$special_integer/1___1__3'(A, B).
10724'known/1_1_$special_integer/1___1__2__0__9'([A|B], C, D) :-
10725    (   A=suspension(_, active, _, _, E, F),
10726        nonvar(E),
10727        E=(G, _),
10728        nonvar(G),
10729        G=(\+H),
10730        nonvar(H),
10731        H=integer(I),
10732        I==C
10733    ->  A=suspension(_, _, _, _, J, K),
10734        setarg(2, A, removed),
10735        term_variables(term(J, K), L),
10736        ( arg(4, A, M),
10737          (   var(M)
10738          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10739                        N),
10740              N=[_|O],
10741              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10742                       O),
10743              (   O=[P|_]
10744              ->  setarg(4, P, _)
10745              ;   true
10746              )
10747          ;   M=[_, _|O],
10748              setarg(2, M, O),
10749              (   O=[P|_]
10750              ->  setarg(4, P, M)
10751              ;   true
10752              )
10753          )
10754        ),
10755        'detach_known/1_1_$special_;/2___2'(L, A),
10756        arg(2, D, Q),
10757        setarg(2, D, active),
10758        ( arg(4, D, R),
10759          S is R+1,
10760          setarg(4, D, S)
10761        ),
10762        (   Q==not_stored_yet
10763        ->  D=suspension(_, _, _, _, _, T),
10764            term_variables(T, U),
10765            'chr none_locked'(U),
10766            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10767                      V),
10768            W=[D|V],
10769            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10770                     W),
10771            (   V=[X|_]
10772            ->  setarg(5, X, W)
10773            ;   true
10774            ),
10775            'attach_known/1_1_$special_integer/1___1'(U, D)
10776        ;   true
10777        ),
10778        known(F),
10779        (   D=suspension(_, active, _, S, _, _)
10780        ->  setarg(2, D, inactive),
10781            'known/1_1_$special_integer/1___1__2__0__9'(B, C, D)
10782        ;   true
10783        )
10784    ;   'known/1_1_$special_integer/1___1__2__0__9'(B, C, D)
10785    ).
10786'known/1_1_$special_integer/1___1__2'(A, B) :-
10787    'known/1_1_$special_integer/1___1__3'(A, B).
10788'known/1_1_$special_integer/1___1__3'(_, A) :-
10789    arg(2, A, B),
10790    setarg(2, A, active),
10791    arg(4, A, C),
10792    D is C+1,
10793    setarg(4, A, D),
10794    (   B==not_stored_yet
10795    ->  A=suspension(_, _, _, _, _, E),
10796        term_variables(E, F),
10797        'chr none_locked'(F),
10798        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10799                  G),
10800        H=[A|G],
10801        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10802                 H),
10803        (   G=[I|_]
10804        ->  setarg(5, I, H)
10805        ;   true
10806        ),
10807        'attach_known/1_1_$special_integer/1___1'(F, A)
10808    ;   true
10809    ).
10810'known/1_1_$special_float/1'(A) :-
10811    'known/1_1_$special_float/1___1__0'(A, _).
10812'known/1_1_$special_float/1___1__0'(A, B) :-
10813    (   'chr newvia_1'(A, C)
10814    ->  get_attr(C, guard_entailment, D),
10815        D=v(_, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _, _, _, _)
10816    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
10817                  E)
10818    ),
10819    member(F, E),
10820    F=suspension(_, active, _, _, _, G),
10821    G==A,
10822    !,
10823    (   var(B)
10824    ->  true
10825    ;   B=suspension(_, H, _, _, _, I),
10826        setarg(2, B, removed),
10827        (   H==not_stored_yet
10828        ->  J=[]
10829        ;   term_variables(I, J),
10830            arg(5, B, K),
10831            (   var(K)
10832            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
10833                          L),
10834                L=[_|M],
10835                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
10836                         M),
10837                (   M=[N|_]
10838                ->  setarg(5, N, _)
10839                ;   true
10840                )
10841            ;   K=[_, _|M],
10842                setarg(2, K, M),
10843                (   M=[N|_]
10844                ->  setarg(5, N, K)
10845                ;   true
10846                )
10847            ),
10848            'detach_known/1_1_$special_float/1___1'(J, B)
10849        )
10850    ).
10851'known/1_1_$special_float/1___1__0'(_, A) :-
10852    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
10853              B),
10854    member(C, B),
10855    C=suspension(_, active, _),
10856    !,
10857    (   var(A)
10858    ->  true
10859    ;   A=suspension(_, D, _, _, _, E),
10860        setarg(2, A, removed),
10861        (   D==not_stored_yet
10862        ->  F=[]
10863        ;   term_variables(E, F),
10864            arg(5, A, G),
10865            (   var(G)
10866            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
10867                          H),
10868                H=[_|I],
10869                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
10870                         I),
10871                (   I=[J|_]
10872                ->  setarg(5, J, _)
10873                ;   true
10874                )
10875            ;   G=[_, _|I],
10876                setarg(2, G, I),
10877                (   I=[J|_]
10878                ->  setarg(5, J, G)
10879                ;   true
10880                )
10881            ),
10882            'detach_known/1_1_$special_float/1___1'(F, A)
10883        )
10884    ).
10885'known/1_1_$special_float/1___1__0'(A, B) :-
10886    nonvar(A),
10887    \+ float(A),
10888    !,
10889    (   var(B)
10890    ->  true
10891    ;   B=suspension(_, C, _, _, _, D),
10892        setarg(2, B, removed),
10893        (   C==not_stored_yet
10894        ->  E=[]
10895        ;   term_variables(D, E),
10896            arg(5, B, F),
10897            (   var(F)
10898            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
10899                          G),
10900                G=[_|H],
10901                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
10902                         H),
10903                (   H=[I|_]
10904                ->  setarg(5, I, _)
10905                ;   true
10906                )
10907            ;   F=[_, _|H],
10908                setarg(2, F, H),
10909                (   H=[I|_]
10910                ->  setarg(5, I, F)
10911                ;   true
10912                )
10913            ),
10914            'detach_known/1_1_$special_float/1___1'(E, B)
10915        )
10916    ),
10917    'known/1_1_$special_fail/0'.
10918'known/1_1_$special_float/1___1__0'(A, B) :-
10919    (   var(B)
10920    ->  B=suspension(C, not_stored_yet, t, 0, _, A),
10921        'chr gen_id'(C)
10922    ;   true
10923    ),
10924    (   '$novel_production'(B, 200),
10925        !,
10926        '$extend_history'(B, 200),
10927        arg(2, B, D),
10928        setarg(2, B, active),
10929        arg(4, B, E),
10930        F is E+1,
10931        setarg(4, B, F),
10932        (   D==not_stored_yet
10933        ->  B=suspension(_, _, _, _, _, G),
10934            term_variables(G, H),
10935            'chr none_locked'(H),
10936            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
10937                      I),
10938            J=[B|I],
10939            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
10940                     J),
10941            (   I=[K|_]
10942            ->  setarg(5, K, J)
10943            ;   true
10944            ),
10945            'attach_known/1_1_$special_float/1___1'(H, B)
10946        ;   true
10947        ),
10948        'known/1_1_$special_number/1'(A),
10949        (   B=suspension(_, active, _, F, _, _)
10950        ->  setarg(2, B, inactive),
10951            'known/1_1_$special_float/1___1__1'(A, B)
10952        ;   true
10953        )
10954    ;   'known/1_1_$special_float/1___1__1'(A, B)
10955    ).
10956'known/1_1_$special_float/1___1__1'(A, B) :-
10957    (   'chr newvia_1'(A, C)
10958    ->  get_attr(C, guard_entailment, D),
10959        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
10960    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10961                  E)
10962    ),
10963    member(F, E),
10964    F=suspension(_, active, _, _, G),
10965    nonvar(G),
10966    G=float(H),
10967    H==A,
10968    !,
10969    F=suspension(_, _, _, _, I),
10970    setarg(2, F, removed),
10971    term_variables(I, J),
10972    arg(4, F, K),
10973    (   var(K)
10974    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10975                  L),
10976        L=[_|M],
10977        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10978                 M),
10979        (   M=[N|_]
10980        ->  setarg(4, N, _)
10981        ;   true
10982        )
10983    ;   K=[_, _|M],
10984        setarg(2, K, M),
10985        (   M=[N|_]
10986        ->  setarg(4, N, K)
10987        ;   true
10988        )
10989    ),
10990    'detach_known/1_1_$special_\\+/1___1'(J, F),
10991    (   var(B)
10992    ->  true
10993    ;   B=suspension(_, O, _, _, _, P),
10994        setarg(2, B, removed),
10995        (   O==not_stored_yet
10996        ->  Q=[]
10997        ;   term_variables(P, Q),
10998            arg(5, B, R),
10999            (   var(R)
11000            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11001                          S),
11002                S=[_|T],
11003                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11004                         T),
11005                (   T=[U|_]
11006                ->  setarg(5, U, _)
11007                ;   true
11008                )
11009            ;   R=[_, _|T],
11010                setarg(2, R, T),
11011                (   T=[U|_]
11012                ->  setarg(5, U, R)
11013                ;   true
11014                )
11015            ),
11016            'detach_known/1_1_$special_float/1___1'(Q, B)
11017        )
11018    ),
11019    'known/1_1_$special_fail/0'.
11020'known/1_1_$special_float/1___1__1'(A, B) :-
11021    (   'chr newvia_1'(A, C)
11022    ->  get_attr(C, guard_entailment, D),
11023        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
11024    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11025                  E)
11026    ),
11027    !,
11028    'known/1_1_$special_float/1___1__1__0__8'(E, A, B).
11029'known/1_1_$special_float/1___1__1__0__8'([], A, B) :-
11030    'known/1_1_$special_float/1___1__2'(A, B).
11031'known/1_1_$special_float/1___1__1__0__8'([A|B], C, D) :-
11032    (   A=suspension(_, active, _, _, E, F),
11033        nonvar(E),
11034        E=(\+G),
11035        nonvar(G),
11036        G=float(H),
11037        H==C
11038    ->  A=suspension(_, _, _, _, I, J),
11039        setarg(2, A, removed),
11040        term_variables(term(I, J), K),
11041        ( arg(4, A, L),
11042          (   var(L)
11043          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11044                        M),
11045              M=[_|N],
11046              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11047                       N),
11048              (   N=[O|_]
11049              ->  setarg(4, O, _)
11050              ;   true
11051              )
11052          ;   L=[_, _|N],
11053              setarg(2, L, N),
11054              (   N=[O|_]
11055              ->  setarg(4, O, L)
11056              ;   true
11057              )
11058          )
11059        ),
11060        'detach_known/1_1_$special_;/2___2'(K, A),
11061        arg(2, D, P),
11062        setarg(2, D, active),
11063        ( arg(4, D, Q),
11064          R is Q+1,
11065          setarg(4, D, R)
11066        ),
11067        (   P==not_stored_yet
11068        ->  D=suspension(_, _, _, _, _, S),
11069            term_variables(S, T),
11070            'chr none_locked'(T),
11071            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11072                      U),
11073            V=[D|U],
11074            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11075                     V),
11076            (   U=[W|_]
11077            ->  setarg(5, W, V)
11078            ;   true
11079            ),
11080            'attach_known/1_1_$special_float/1___1'(T, D)
11081        ;   true
11082        ),
11083        known(F),
11084        (   D=suspension(_, active, _, R, _, _)
11085        ->  setarg(2, D, inactive),
11086            'known/1_1_$special_float/1___1__1__0__8'(B, C, D)
11087        ;   true
11088        )
11089    ;   'known/1_1_$special_float/1___1__1__0__8'(B, C, D)
11090    ).
11091'known/1_1_$special_float/1___1__1'(A, B) :-
11092    'known/1_1_$special_float/1___1__2'(A, B).
11093'known/1_1_$special_float/1___1__2'(A, B) :-
11094    (   'chr newvia_1'(A, C)
11095    ->  get_attr(C, guard_entailment, D),
11096        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
11097    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11098                  E)
11099    ),
11100    !,
11101    'known/1_1_$special_float/1___1__2__0__9'(E, A, B).
11102'known/1_1_$special_float/1___1__2__0__9'([], A, B) :-
11103    'known/1_1_$special_float/1___1__3'(A, B).
11104'known/1_1_$special_float/1___1__2__0__9'([A|B], C, D) :-
11105    (   A=suspension(_, active, _, _, E, F),
11106        nonvar(E),
11107        E=(G, _),
11108        nonvar(G),
11109        G=(\+H),
11110        nonvar(H),
11111        H=float(I),
11112        I==C
11113    ->  A=suspension(_, _, _, _, J, K),
11114        setarg(2, A, removed),
11115        term_variables(term(J, K), L),
11116        ( arg(4, A, M),
11117          (   var(M)
11118          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11119                        N),
11120              N=[_|O],
11121              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11122                       O),
11123              (   O=[P|_]
11124              ->  setarg(4, P, _)
11125              ;   true
11126              )
11127          ;   M=[_, _|O],
11128              setarg(2, M, O),
11129              (   O=[P|_]
11130              ->  setarg(4, P, M)
11131              ;   true
11132              )
11133          )
11134        ),
11135        'detach_known/1_1_$special_;/2___2'(L, A),
11136        arg(2, D, Q),
11137        setarg(2, D, active),
11138        ( arg(4, D, R),
11139          S is R+1,
11140          setarg(4, D, S)
11141        ),
11142        (   Q==not_stored_yet
11143        ->  D=suspension(_, _, _, _, _, T),
11144            term_variables(T, U),
11145            'chr none_locked'(U),
11146            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11147                      V),
11148            W=[D|V],
11149            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11150                     W),
11151            (   V=[X|_]
11152            ->  setarg(5, X, W)
11153            ;   true
11154            ),
11155            'attach_known/1_1_$special_float/1___1'(U, D)
11156        ;   true
11157        ),
11158        known(F),
11159        (   D=suspension(_, active, _, S, _, _)
11160        ->  setarg(2, D, inactive),
11161            'known/1_1_$special_float/1___1__2__0__9'(B, C, D)
11162        ;   true
11163        )
11164    ;   'known/1_1_$special_float/1___1__2__0__9'(B, C, D)
11165    ).
11166'known/1_1_$special_float/1___1__2'(A, B) :-
11167    'known/1_1_$special_float/1___1__3'(A, B).
11168'known/1_1_$special_float/1___1__3'(_, A) :-
11169    arg(2, A, B),
11170    setarg(2, A, active),
11171    arg(4, A, C),
11172    D is C+1,
11173    setarg(4, A, D),
11174    (   B==not_stored_yet
11175    ->  A=suspension(_, _, _, _, _, E),
11176        term_variables(E, F),
11177        'chr none_locked'(F),
11178        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11179                  G),
11180        H=[A|G],
11181        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11182                 H),
11183        (   G=[I|_]
11184        ->  setarg(5, I, H)
11185        ;   true
11186        ),
11187        'attach_known/1_1_$special_float/1___1'(F, A)
11188    ;   true
11189    ).
11190'known/1_1_$special_number/1'(A) :-
11191    'known/1_1_$special_number/1___1__0'(A, _).
11192'known/1_1_$special_number/1___1__0'(A, B) :-
11193    (   'chr newvia_1'(A, C)
11194    ->  get_attr(C, guard_entailment, D),
11195        D=v(_, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _, _, _)
11196    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11197                  E)
11198    ),
11199    member(F, E),
11200    F=suspension(_, active, _, _, _, G),
11201    G==A,
11202    !,
11203    (   var(B)
11204    ->  true
11205    ;   B=suspension(_, H, _, _, _, I),
11206        setarg(2, B, removed),
11207        (   H==not_stored_yet
11208        ->  J=[]
11209        ;   term_variables(I, J),
11210            arg(5, B, K),
11211            (   var(K)
11212            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11213                          L),
11214                L=[_|M],
11215                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11216                         M),
11217                (   M=[N|_]
11218                ->  setarg(5, N, _)
11219                ;   true
11220                )
11221            ;   K=[_, _|M],
11222                setarg(2, K, M),
11223                (   M=[N|_]
11224                ->  setarg(5, N, K)
11225                ;   true
11226                )
11227            ),
11228            'detach_known/1_1_$special_number/1___1'(J, B)
11229        )
11230    ).
11231'known/1_1_$special_number/1___1__0'(_, A) :-
11232    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
11233              B),
11234    member(C, B),
11235    C=suspension(_, active, _),
11236    !,
11237    (   var(A)
11238    ->  true
11239    ;   A=suspension(_, D, _, _, _, E),
11240        setarg(2, A, removed),
11241        (   D==not_stored_yet
11242        ->  F=[]
11243        ;   term_variables(E, F),
11244            arg(5, A, G),
11245            (   var(G)
11246            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11247                          H),
11248                H=[_|I],
11249                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11250                         I),
11251                (   I=[J|_]
11252                ->  setarg(5, J, _)
11253                ;   true
11254                )
11255            ;   G=[_, _|I],
11256                setarg(2, G, I),
11257                (   I=[J|_]
11258                ->  setarg(5, J, G)
11259                ;   true
11260                )
11261            ),
11262            'detach_known/1_1_$special_number/1___1'(F, A)
11263        )
11264    ).
11265'known/1_1_$special_number/1___1__0'(A, B) :-
11266    nonvar(A),
11267    \+ number(A),
11268    !,
11269    (   var(B)
11270    ->  true
11271    ;   B=suspension(_, C, _, _, _, D),
11272        setarg(2, B, removed),
11273        (   C==not_stored_yet
11274        ->  E=[]
11275        ;   term_variables(D, E),
11276            arg(5, B, F),
11277            (   var(F)
11278            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11279                          G),
11280                G=[_|H],
11281                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11282                         H),
11283                (   H=[I|_]
11284                ->  setarg(5, I, _)
11285                ;   true
11286                )
11287            ;   F=[_, _|H],
11288                setarg(2, F, H),
11289                (   H=[I|_]
11290                ->  setarg(5, I, F)
11291                ;   true
11292                )
11293            ),
11294            'detach_known/1_1_$special_number/1___1'(E, B)
11295        )
11296    ),
11297    'known/1_1_$special_fail/0'.
11298'known/1_1_$special_number/1___1__0'(A, B) :-
11299    (   'chr newvia_1'(A, C)
11300    ->  get_attr(C, guard_entailment, D),
11301        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
11302    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
11303                  E)
11304    ),
11305    member(F, E),
11306    F=suspension(_, active, _, _, G),
11307    nonvar(G),
11308    G=number(H),
11309    H==A,
11310    !,
11311    F=suspension(_, _, _, _, I),
11312    setarg(2, F, removed),
11313    term_variables(I, J),
11314    arg(4, F, K),
11315    (   var(K)
11316    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
11317                  L),
11318        L=[_|M],
11319        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
11320                 M),
11321        (   M=[N|_]
11322        ->  setarg(4, N, _)
11323        ;   true
11324        )
11325    ;   K=[_, _|M],
11326        setarg(2, K, M),
11327        (   M=[N|_]
11328        ->  setarg(4, N, K)
11329        ;   true
11330        )
11331    ),
11332    'detach_known/1_1_$special_\\+/1___1'(J, F),
11333    (   var(B)
11334    ->  true
11335    ;   B=suspension(_, O, _, _, _, P),
11336        setarg(2, B, removed),
11337        (   O==not_stored_yet
11338        ->  Q=[]
11339        ;   term_variables(P, Q),
11340            arg(5, B, R),
11341            (   var(R)
11342            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11343                          S),
11344                S=[_|T],
11345                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11346                         T),
11347                (   T=[U|_]
11348                ->  setarg(5, U, _)
11349                ;   true
11350                )
11351            ;   R=[_, _|T],
11352                setarg(2, R, T),
11353                (   T=[U|_]
11354                ->  setarg(5, U, R)
11355                ;   true
11356                )
11357            ),
11358            'detach_known/1_1_$special_number/1___1'(Q, B)
11359        )
11360    ),
11361    'known/1_1_$special_fail/0'.
11362'known/1_1_$special_number/1___1__0'(A, B) :-
11363    (   var(B)
11364    ->  B=suspension(C, not_stored_yet, t, 0, _, A),
11365        'chr gen_id'(C)
11366    ;   true
11367    ),
11368    (   '$novel_production'(B, 238),
11369        !,
11370        '$extend_history'(B, 238),
11371        arg(2, B, D),
11372        setarg(2, B, active),
11373        arg(4, B, E),
11374        F is E+1,
11375        setarg(4, B, F),
11376        (   D==not_stored_yet
11377        ->  B=suspension(_, _, _, _, _, G),
11378            term_variables(G, H),
11379            'chr none_locked'(H),
11380            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11381                      I),
11382            J=[B|I],
11383            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11384                     J),
11385            (   I=[K|_]
11386            ->  setarg(5, K, J)
11387            ;   true
11388            ),
11389            'attach_known/1_1_$special_number/1___1'(H, B)
11390        ;   true
11391        ),
11392        'known/1_1_$special_nonvar/1'(A),
11393        (   B=suspension(_, active, _, F, _, _)
11394        ->  setarg(2, B, inactive),
11395            'known/1_1_$special_number/1___1__1'(A, B)
11396        ;   true
11397        )
11398    ;   'known/1_1_$special_number/1___1__1'(A, B)
11399    ).
11400'known/1_1_$special_number/1___1__1'(A, B) :-
11401    (   'chr newvia_1'(A, C)
11402    ->  get_attr(C, guard_entailment, D),
11403        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
11404    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11405                  E)
11406    ),
11407    !,
11408    'known/1_1_$special_number/1___1__1__0__8'(E, A, B).
11409'known/1_1_$special_number/1___1__1__0__8'([], A, B) :-
11410    'known/1_1_$special_number/1___1__2'(A, B).
11411'known/1_1_$special_number/1___1__1__0__8'([A|B], C, D) :-
11412    (   A=suspension(_, active, _, _, E, F),
11413        nonvar(E),
11414        E=(\+G),
11415        nonvar(G),
11416        G=number(H),
11417        H==C
11418    ->  A=suspension(_, _, _, _, I, J),
11419        setarg(2, A, removed),
11420        term_variables(term(I, J), K),
11421        ( arg(4, A, L),
11422          (   var(L)
11423          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11424                        M),
11425              M=[_|N],
11426              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11427                       N),
11428              (   N=[O|_]
11429              ->  setarg(4, O, _)
11430              ;   true
11431              )
11432          ;   L=[_, _|N],
11433              setarg(2, L, N),
11434              (   N=[O|_]
11435              ->  setarg(4, O, L)
11436              ;   true
11437              )
11438          )
11439        ),
11440        'detach_known/1_1_$special_;/2___2'(K, A),
11441        arg(2, D, P),
11442        setarg(2, D, active),
11443        ( arg(4, D, Q),
11444          R is Q+1,
11445          setarg(4, D, R)
11446        ),
11447        (   P==not_stored_yet
11448        ->  D=suspension(_, _, _, _, _, S),
11449            term_variables(S, T),
11450            'chr none_locked'(T),
11451            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11452                      U),
11453            V=[D|U],
11454            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11455                     V),
11456            (   U=[W|_]
11457            ->  setarg(5, W, V)
11458            ;   true
11459            ),
11460            'attach_known/1_1_$special_number/1___1'(T, D)
11461        ;   true
11462        ),
11463        known(F),
11464        (   D=suspension(_, active, _, R, _, _)
11465        ->  setarg(2, D, inactive),
11466            'known/1_1_$special_number/1___1__1__0__8'(B, C, D)
11467        ;   true
11468        )
11469    ;   'known/1_1_$special_number/1___1__1__0__8'(B, C, D)
11470    ).
11471'known/1_1_$special_number/1___1__1'(A, B) :-
11472    'known/1_1_$special_number/1___1__2'(A, B).
11473'known/1_1_$special_number/1___1__2'(A, B) :-
11474    (   'chr newvia_1'(A, C)
11475    ->  get_attr(C, guard_entailment, D),
11476        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
11477    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11478                  E)
11479    ),
11480    !,
11481    'known/1_1_$special_number/1___1__2__0__9'(E, A, B).
11482'known/1_1_$special_number/1___1__2__0__9'([], A, B) :-
11483    'known/1_1_$special_number/1___1__3'(A, B).
11484'known/1_1_$special_number/1___1__2__0__9'([A|B], C, D) :-
11485    (   A=suspension(_, active, _, _, E, F),
11486        nonvar(E),
11487        E=(G, _),
11488        nonvar(G),
11489        G=(\+H),
11490        nonvar(H),
11491        H=number(I),
11492        I==C
11493    ->  A=suspension(_, _, _, _, J, K),
11494        setarg(2, A, removed),
11495        term_variables(term(J, K), L),
11496        ( arg(4, A, M),
11497          (   var(M)
11498          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11499                        N),
11500              N=[_|O],
11501              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11502                       O),
11503              (   O=[P|_]
11504              ->  setarg(4, P, _)
11505              ;   true
11506              )
11507          ;   M=[_, _|O],
11508              setarg(2, M, O),
11509              (   O=[P|_]
11510              ->  setarg(4, P, M)
11511              ;   true
11512              )
11513          )
11514        ),
11515        'detach_known/1_1_$special_;/2___2'(L, A),
11516        arg(2, D, Q),
11517        setarg(2, D, active),
11518        ( arg(4, D, R),
11519          S is R+1,
11520          setarg(4, D, S)
11521        ),
11522        (   Q==not_stored_yet
11523        ->  D=suspension(_, _, _, _, _, T),
11524            term_variables(T, U),
11525            'chr none_locked'(U),
11526            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11527                      V),
11528            W=[D|V],
11529            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11530                     W),
11531            (   V=[X|_]
11532            ->  setarg(5, X, W)
11533            ;   true
11534            ),
11535            'attach_known/1_1_$special_number/1___1'(U, D)
11536        ;   true
11537        ),
11538        known(F),
11539        (   D=suspension(_, active, _, S, _, _)
11540        ->  setarg(2, D, inactive),
11541            'known/1_1_$special_number/1___1__2__0__9'(B, C, D)
11542        ;   true
11543        )
11544    ;   'known/1_1_$special_number/1___1__2__0__9'(B, C, D)
11545    ).
11546'known/1_1_$special_number/1___1__2'(A, B) :-
11547    'known/1_1_$special_number/1___1__3'(A, B).
11548'known/1_1_$special_number/1___1__3'(_, A) :-
11549    arg(2, A, B),
11550    setarg(2, A, active),
11551    arg(4, A, C),
11552    D is C+1,
11553    setarg(4, A, D),
11554    (   B==not_stored_yet
11555    ->  A=suspension(_, _, _, _, _, E),
11556        term_variables(E, F),
11557        'chr none_locked'(F),
11558        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11559                  G),
11560        H=[A|G],
11561        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11562                 H),
11563        (   G=[I|_]
11564        ->  setarg(5, I, H)
11565        ;   true
11566        ),
11567        'attach_known/1_1_$special_number/1___1'(F, A)
11568    ;   true
11569    ).
11570'known/1_1_$special_=\\=/2'(A, B) :-
11571    'known/1_1_$special_=\\=/2___2__0'(A, B, _).
11572'known/1_1_$special_=\\=/2___2__0'(A, B, C) :-
11573    (   'chr newvia_2'(A, B, D)
11574    ->  get_attr(D, guard_entailment, E),
11575        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _, _, _)
11576    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11577                  F)
11578    ),
11579    member(G, F),
11580    G=suspension(_, active, _, _, _, H, I),
11581    H==A,
11582    I==B,
11583    !,
11584    (   var(C)
11585    ->  true
11586    ;   C=suspension(_, J, _, _, _, K, L),
11587        setarg(2, C, removed),
11588        (   J==not_stored_yet
11589        ->  M=[]
11590        ;   term_variables(term(K, L), M),
11591            arg(5, C, N),
11592            (   var(N)
11593            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11594                          O),
11595                O=[_|P],
11596                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11597                         P),
11598                (   P=[Q|_]
11599                ->  setarg(5, Q, _)
11600                ;   true
11601                )
11602            ;   N=[_, _|P],
11603                setarg(2, N, P),
11604                (   P=[Q|_]
11605                ->  setarg(5, Q, N)
11606                ;   true
11607                )
11608            ),
11609            'detach_known/1_1_$special_=\\=/2___2'(M, C)
11610        )
11611    ).
11612'known/1_1_$special_=\\=/2___2__0'(_, _, A) :-
11613    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
11614              B),
11615    member(C, B),
11616    C=suspension(_, active, _),
11617    !,
11618    (   var(A)
11619    ->  true
11620    ;   A=suspension(_, D, _, _, _, E, F),
11621        setarg(2, A, removed),
11622        (   D==not_stored_yet
11623        ->  G=[]
11624        ;   term_variables(term(E, F), G),
11625            arg(5, A, H),
11626            (   var(H)
11627            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11628                          I),
11629                I=[_|J],
11630                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11631                         J),
11632                (   J=[K|_]
11633                ->  setarg(5, K, _)
11634                ;   true
11635                )
11636            ;   H=[_, _|J],
11637                setarg(2, H, J),
11638                (   J=[K|_]
11639                ->  setarg(5, K, H)
11640                ;   true
11641                )
11642            ),
11643            'detach_known/1_1_$special_=\\=/2___2'(G, A)
11644        )
11645    ).
11646'known/1_1_$special_=\\=/2___2__0'(A, B, C) :-
11647    (   'chr newvia_1'(B, D)
11648    ->  get_attr(D, guard_entailment, E),
11649        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _, _, _)
11650    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11651                  F)
11652    ),
11653    !,
11654    (   var(C)
11655    ->  C=suspension(G, not_stored_yet, t, 0, _, A, B),
11656        'chr gen_id'(G)
11657    ;   true
11658    ),
11659    'known/1_1_$special_=\\=/2___2__0__0__5'(F, A, B, C).
11660'known/1_1_$special_=\\=/2___2__0__0__5'([], A, B, C) :-
11661    'known/1_1_$special_=\\=/2___2__1'(A, B, C).
11662'known/1_1_$special_=\\=/2___2__0__0__5'([A|B], C, D, E) :-
11663    (   A=suspension(_, active, _, _, _, F, G),
11664        F==D,
11665        (   'chr newvia_2'(D, G, H)
11666        ->  get_attr(H, guard_entailment, I),
11667            I=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, J, _)
11668        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
11669                      J)
11670        )
11671    ->  'known/1_1_$special_=\\=/2___2__0__1__5'(J,
11672                                                 G,
11673                                                 A,
11674                                                 B,
11675                                                 C,
11676                                                 D,
11677                                                 E)
11678    ;   'known/1_1_$special_=\\=/2___2__0__0__5'(B, C, D, E)
11679    ).
11680'known/1_1_$special_=\\=/2___2__0__1__5'([], _, _, A, B, C, D) :-
11681    'known/1_1_$special_=\\=/2___2__0__0__5'(A, B, C, D).
11682'known/1_1_$special_=\\=/2___2__0__1__5'([A|B], C, D, E, F, G, H) :-
11683    (   A=suspension(_, active, _, _, _, I, J),
11684        I==G,
11685        J==C,
11686        (   'chr newvia_2'(F, G, K)
11687        ->  get_attr(K, guard_entailment, L),
11688            L=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, M, _)
11689        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
11690                      M)
11691        )
11692    ->  'known/1_1_$special_=\\=/2___2__0__2__5'(M,
11693                                                 A,
11694                                                 B,
11695                                                 C,
11696                                                 D,
11697                                                 E,
11698                                                 F,
11699                                                 G,
11700                                                 H)
11701    ;   'known/1_1_$special_=\\=/2___2__0__1__5'(B,
11702                                                 C,
11703                                                 D,
11704                                                 E,
11705                                                 F,
11706                                                 G,
11707                                                 H)
11708    ).
11709'known/1_1_$special_=\\=/2___2__0__2__5'([], _, A, B, C, D, E, F, G) :-
11710    'known/1_1_$special_=\\=/2___2__0__1__5'(A,
11711                                             B,
11712                                             C,
11713                                             D,
11714                                             E,
11715                                             F,
11716                                             G).
11717'known/1_1_$special_=\\=/2___2__0__2__5'([A|B], C, D, E, F, G, H, I, J) :-
11718    (   A=suspension(_, active, _, _, _, K, L),
11719        A\==C,
11720        K==H,
11721        L==I,
11722        M=t(188, A, J, C, F),
11723        '$novel_production'(A, M),
11724        '$novel_production'(J, M),
11725        '$novel_production'(C, M),
11726        '$novel_production'(F, M)
11727    ->  '$extend_history'(J, M),
11728        arg(2, J, N),
11729        setarg(2, J, active),
11730        ( arg(4, J, O),
11731          P is O+1,
11732          setarg(4, J, P)
11733        ),
11734        (   N==not_stored_yet
11735        ->  J=suspension(_, _, _, _, _, Q, R),
11736            term_variables(term(Q, R), S),
11737            'chr none_locked'(S),
11738            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11739                      T),
11740            U=[J|T],
11741            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11742                     U),
11743            (   T=[V|_]
11744            ->  setarg(5, V, U)
11745            ;   true
11746            ),
11747            'attach_known/1_1_$special_=\\=/2___2'(S, J)
11748        ;   true
11749        ),
11750        'known/1_1_$special_=\\=/2'(H, E),
11751        (   J=suspension(_, active, _, P, _, _, _)
11752        ->  setarg(2, J, inactive),
11753            'known/1_1_$special_=\\=/2___2__0__2__5'(B,
11754                                                     C,
11755                                                     D,
11756                                                     E,
11757                                                     F,
11758                                                     G,
11759                                                     H,
11760                                                     I,
11761                                                     J)
11762        ;   true
11763        )
11764    ;   'known/1_1_$special_=\\=/2___2__0__2__5'(B,
11765                                                 C,
11766                                                 D,
11767                                                 E,
11768                                                 F,
11769                                                 G,
11770                                                 H,
11771                                                 I,
11772                                                 J)
11773    ).
11774'known/1_1_$special_=\\=/2___2__0'(A, B, C) :-
11775    (   var(C)
11776    ->  C=suspension(D, not_stored_yet, t, 0, _, A, B),
11777        'chr gen_id'(D)
11778    ;   true
11779    ),
11780    'known/1_1_$special_=\\=/2___2__1'(A, B, C).
11781'known/1_1_$special_=\\=/2___2__1'(A, B, C) :-
11782    (   'chr newvia_1'(A, D)
11783    ->  get_attr(D, guard_entailment, E),
11784        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _)
11785    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
11786                  F)
11787    ),
11788    !,
11789    'known/1_1_$special_=\\=/2___2__1__0__6'(F, A, B, C).
11790'known/1_1_$special_=\\=/2___2__1__0__6'([], A, B, C) :-
11791    'known/1_1_$special_=\\=/2___2__2'(A, B, C).
11792'known/1_1_$special_=\\=/2___2__1__0__6'([A|B], C, D, E) :-
11793    (   A=suspension(_, active, _, _, _, F, G),
11794        G==C,
11795        (   'chr newvia_2'(C, D, H)
11796        ->  get_attr(H, guard_entailment, I),
11797            I=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, J, _)
11798        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
11799                      J)
11800        )
11801    ->  'known/1_1_$special_=\\=/2___2__1__1__6'(J,
11802                                                 F,
11803                                                 A,
11804                                                 B,
11805                                                 C,
11806                                                 D,
11807                                                 E)
11808    ;   'known/1_1_$special_=\\=/2___2__1__0__6'(B, C, D, E)
11809    ).
11810'known/1_1_$special_=\\=/2___2__1__1__6'([], _, _, A, B, C, D) :-
11811    'known/1_1_$special_=\\=/2___2__1__0__6'(A, B, C, D).
11812'known/1_1_$special_=\\=/2___2__1__1__6'([A|B], C, D, E, F, G, H) :-
11813    (   A=suspension(_, active, _, _, _, I, J),
11814        A\==D,
11815        I==F,
11816        J==G,
11817        (   'chr newvia_2'(C, F, K)
11818        ->  get_attr(K, guard_entailment, L),
11819            L=v(_, _, _, _, _, _, _, _, _, _, _, _, _, M, _, _, _, _, _, _, _, _)
11820        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11821                      M)
11822        )
11823    ->  'known/1_1_$special_=\\=/2___2__1__2__6'(M,
11824                                                 A,
11825                                                 B,
11826                                                 C,
11827                                                 D,
11828                                                 E,
11829                                                 F,
11830                                                 G,
11831                                                 H)
11832    ;   'known/1_1_$special_=\\=/2___2__1__1__6'(B,
11833                                                 C,
11834                                                 D,
11835                                                 E,
11836                                                 F,
11837                                                 G,
11838                                                 H)
11839    ).
11840'known/1_1_$special_=\\=/2___2__1__2__6'([], _, A, B, C, D, E, F, G) :-
11841    'known/1_1_$special_=\\=/2___2__1__1__6'(A,
11842                                             B,
11843                                             C,
11844                                             D,
11845                                             E,
11846                                             F,
11847                                             G).
11848'known/1_1_$special_=\\=/2___2__1__2__6'([A|B], C, D, E, F, G, H, I, J) :-
11849    (   A=suspension(_, active, _, _, _, K, L),
11850        K==E,
11851        L==H,
11852        M=t(188, F, A, C, J),
11853        '$novel_production'(F, M),
11854        '$novel_production'(A, M),
11855        '$novel_production'(C, M),
11856        '$novel_production'(J, M)
11857    ->  '$extend_history'(J, M),
11858        arg(2, J, N),
11859        setarg(2, J, active),
11860        ( arg(4, J, O),
11861          P is O+1,
11862          setarg(4, J, P)
11863        ),
11864        (   N==not_stored_yet
11865        ->  J=suspension(_, _, _, _, _, Q, R),
11866            term_variables(term(Q, R), S),
11867            'chr none_locked'(S),
11868            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11869                      T),
11870            U=[J|T],
11871            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11872                     U),
11873            (   T=[V|_]
11874            ->  setarg(5, V, U)
11875            ;   true
11876            ),
11877            'attach_known/1_1_$special_=\\=/2___2'(S, J)
11878        ;   true
11879        ),
11880        'known/1_1_$special_=\\=/2'(E, I),
11881        (   J=suspension(_, active, _, P, _, _, _)
11882        ->  setarg(2, J, inactive),
11883            'known/1_1_$special_=\\=/2___2__1__2__6'(B,
11884                                                     C,
11885                                                     D,
11886                                                     E,
11887                                                     F,
11888                                                     G,
11889                                                     H,
11890                                                     I,
11891                                                     J)
11892        ;   true
11893        )
11894    ;   'known/1_1_$special_=\\=/2___2__1__2__6'(B,
11895                                                 C,
11896                                                 D,
11897                                                 E,
11898                                                 F,
11899                                                 G,
11900                                                 H,
11901                                                 I,
11902                                                 J)
11903    ).
11904'known/1_1_$special_=\\=/2___2__1'(A, B, C) :-
11905    'known/1_1_$special_=\\=/2___2__2'(A, B, C).
11906'known/1_1_$special_=\\=/2___2__2'(A, B, C) :-
11907    number(B),
11908    number(A),
11909    A=:=B,
11910    !,
11911    (   var(C)
11912    ->  true
11913    ;   C=suspension(_, D, _, _, _, E, F),
11914        setarg(2, C, removed),
11915        (   D==not_stored_yet
11916        ->  G=[]
11917        ;   term_variables(term(E, F), G),
11918            arg(5, C, H),
11919            (   var(H)
11920            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11921                          I),
11922                I=[_|J],
11923                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11924                         J),
11925                (   J=[K|_]
11926                ->  setarg(5, K, _)
11927                ;   true
11928                )
11929            ;   H=[_, _|J],
11930                setarg(2, H, J),
11931                (   J=[K|_]
11932                ->  setarg(5, K, H)
11933                ;   true
11934                )
11935            ),
11936            'detach_known/1_1_$special_=\\=/2___2'(G, C)
11937        )
11938    ),
11939    'known/1_1_$special_fail/0'.
11940'known/1_1_$special_=\\=/2___2__2'(A, B, C) :-
11941    B==A,
11942    !,
11943    (   var(C)
11944    ->  true
11945    ;   C=suspension(_, D, _, _, _, E, F),
11946        setarg(2, C, removed),
11947        (   D==not_stored_yet
11948        ->  G=[]
11949        ;   term_variables(term(E, F), G),
11950            arg(5, C, H),
11951            (   var(H)
11952            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11953                          I),
11954                I=[_|J],
11955                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11956                         J),
11957                (   J=[K|_]
11958                ->  setarg(5, K, _)
11959                ;   true
11960                )
11961            ;   H=[_, _|J],
11962                setarg(2, H, J),
11963                (   J=[K|_]
11964                ->  setarg(5, K, H)
11965                ;   true
11966                )
11967            ),
11968            'detach_known/1_1_$special_=\\=/2___2'(G, C)
11969        )
11970    ),
11971    'known/1_1_$special_fail/0'.
11972'known/1_1_$special_=\\=/2___2__2'(A, B, C) :-
11973    (   'chr newvia_2'(A, B, D)
11974    ->  get_attr(D, guard_entailment, E),
11975        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F)
11976    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
11977                  F)
11978    ),
11979    member(G, F),
11980    G=suspension(_, active, _, _, _, H, I),
11981    H==A,
11982    I==B,
11983    !,
11984    G=suspension(_, _, _, _, _, J, K),
11985    setarg(2, G, removed),
11986    term_variables(term(J, K), L),
11987    arg(5, G, M),
11988    (   var(M)
11989    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
11990                  N),
11991        N=[_|O],
11992        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
11993                 O),
11994        (   O=[P|_]
11995        ->  setarg(5, P, _)
11996        ;   true
11997        )
11998    ;   M=[_, _|O],
11999        setarg(2, M, O),
12000        (   O=[P|_]
12001        ->  setarg(5, P, M)
12002        ;   true
12003        )
12004    ),
12005    'detach_known/1_1_$special_=:=/2___2'(L, G),
12006    (   var(C)
12007    ->  true
12008    ;   C=suspension(_, Q, _, _, _, R, S),
12009        setarg(2, C, removed),
12010        (   Q==not_stored_yet
12011        ->  T=[]
12012        ;   term_variables(term(R, S), T),
12013            arg(5, C, U),
12014            (   var(U)
12015            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12016                          V),
12017                V=[_|W],
12018                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12019                         W),
12020                (   W=[X|_]
12021                ->  setarg(5, X, _)
12022                ;   true
12023                )
12024            ;   U=[_, _|W],
12025                setarg(2, U, W),
12026                (   W=[X|_]
12027                ->  setarg(5, X, U)
12028                ;   true
12029                )
12030            ),
12031            'detach_known/1_1_$special_=\\=/2___2'(T, C)
12032        )
12033    ),
12034    'known/1_1_$special_fail/0'.
12035'known/1_1_$special_=\\=/2___2__2'(A, B, C) :-
12036    '$novel_production'(C, 195),
12037    !,
12038    '$extend_history'(C, 195),
12039    arg(2, C, D),
12040    setarg(2, C, active),
12041    arg(4, C, E),
12042    F is E+1,
12043    setarg(4, C, F),
12044    (   D==not_stored_yet
12045    ->  C=suspension(_, _, _, _, _, G, H),
12046        term_variables(term(G, H), I),
12047        'chr none_locked'(I),
12048        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12049                  J),
12050        K=[C|J],
12051        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12052                 K),
12053        (   J=[L|_]
12054        ->  setarg(5, L, K)
12055        ;   true
12056        ),
12057        'attach_known/1_1_$special_=\\=/2___2'(I, C)
12058    ;   true
12059    ),
12060    'known/1_1_$special_=\\=/2'(B, A),
12061    (   C=suspension(_, active, _, F, _, _, _)
12062    ->  setarg(2, C, inactive),
12063        'known/1_1_$special_=\\=/2___2__3'(A, B, C)
12064    ;   true
12065    ).
12066'known/1_1_$special_=\\=/2___2__2'(A, B, C) :-
12067    'known/1_1_$special_=\\=/2___2__3'(A, B, C).
12068'known/1_1_$special_=\\=/2___2__3'(A, B, C) :-
12069    (   'chr newvia_2'(A, B, D)
12070    ->  get_attr(D, guard_entailment, E),
12071        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _, _)
12072    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12073                  F)
12074    ),
12075    member(G, F),
12076    G=suspension(_, active, _, _, H),
12077    nonvar(H),
12078    H=(I=\=J),
12079    I==A,
12080    J==B,
12081    !,
12082    G=suspension(_, _, _, _, K),
12083    setarg(2, G, removed),
12084    term_variables(K, L),
12085    arg(4, G, M),
12086    (   var(M)
12087    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12088                  N),
12089        N=[_|O],
12090        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12091                 O),
12092        (   O=[P|_]
12093        ->  setarg(4, P, _)
12094        ;   true
12095        )
12096    ;   M=[_, _|O],
12097        setarg(2, M, O),
12098        (   O=[P|_]
12099        ->  setarg(4, P, M)
12100        ;   true
12101        )
12102    ),
12103    'detach_known/1_1_$special_\\+/1___1'(L, G),
12104    (   var(C)
12105    ->  true
12106    ;   C=suspension(_, Q, _, _, _, R, S),
12107        setarg(2, C, removed),
12108        (   Q==not_stored_yet
12109        ->  T=[]
12110        ;   term_variables(term(R, S), T),
12111            arg(5, C, U),
12112            (   var(U)
12113            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12114                          V),
12115                V=[_|W],
12116                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12117                         W),
12118                (   W=[X|_]
12119                ->  setarg(5, X, _)
12120                ;   true
12121                )
12122            ;   U=[_, _|W],
12123                setarg(2, U, W),
12124                (   W=[X|_]
12125                ->  setarg(5, X, U)
12126                ;   true
12127                )
12128            ),
12129            'detach_known/1_1_$special_=\\=/2___2'(T, C)
12130        )
12131    ),
12132    'known/1_1_$special_fail/0'.
12133'known/1_1_$special_=\\=/2___2__3'(A, B, C) :-
12134    (   'chr newvia_2'(A, B, D)
12135    ->  get_attr(D, guard_entailment, E),
12136        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12137    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12138                  F)
12139    ),
12140    !,
12141    'known/1_1_$special_=\\=/2___2__3__0__12'(F, A, B, C).
12142'known/1_1_$special_=\\=/2___2__3__0__12'([], A, B, C) :-
12143    'known/1_1_$special_=\\=/2___2__4'(A, B, C).
12144'known/1_1_$special_=\\=/2___2__3__0__12'([A|B], C, D, E) :-
12145    (   A=suspension(_, active, _, _, F, G),
12146        nonvar(F),
12147        F=(\+H),
12148        nonvar(H),
12149        H=(I=\=J),
12150        I==C,
12151        J==D
12152    ->  A=suspension(_, _, _, _, K, L),
12153        setarg(2, A, removed),
12154        term_variables(term(K, L), M),
12155        ( arg(4, A, N),
12156          (   var(N)
12157          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12158                        O),
12159              O=[_|P],
12160              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12161                       P),
12162              (   P=[Q|_]
12163              ->  setarg(4, Q, _)
12164              ;   true
12165              )
12166          ;   N=[_, _|P],
12167              setarg(2, N, P),
12168              (   P=[Q|_]
12169              ->  setarg(4, Q, N)
12170              ;   true
12171              )
12172          )
12173        ),
12174        'detach_known/1_1_$special_;/2___2'(M, A),
12175        arg(2, E, R),
12176        setarg(2, E, active),
12177        ( arg(4, E, S),
12178          T is S+1,
12179          setarg(4, E, T)
12180        ),
12181        (   R==not_stored_yet
12182        ->  E=suspension(_, _, _, _, _, U, V),
12183            term_variables(term(U, V), W),
12184            'chr none_locked'(W),
12185            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12186                      X),
12187            Y=[E|X],
12188            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12189                     Y),
12190            (   X=[Z|_]
12191            ->  setarg(5, Z, Y)
12192            ;   true
12193            ),
12194            'attach_known/1_1_$special_=\\=/2___2'(W, E)
12195        ;   true
12196        ),
12197        known(G),
12198        (   E=suspension(_, active, _, T, _, _, _)
12199        ->  setarg(2, E, inactive),
12200            'known/1_1_$special_=\\=/2___2__3__0__12'(B,
12201                                                      C,
12202                                                      D,
12203                                                      E)
12204        ;   true
12205        )
12206    ;   'known/1_1_$special_=\\=/2___2__3__0__12'(B,
12207                                                  C,
12208                                                  D,
12209                                                  E)
12210    ).
12211'known/1_1_$special_=\\=/2___2__3'(A, B, C) :-
12212    'known/1_1_$special_=\\=/2___2__4'(A, B, C).
12213'known/1_1_$special_=\\=/2___2__4'(A, B, C) :-
12214    (   'chr newvia_2'(A, B, D)
12215    ->  get_attr(D, guard_entailment, E),
12216        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12217    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12218                  F)
12219    ),
12220    !,
12221    'known/1_1_$special_=\\=/2___2__4__0__13'(F, A, B, C).
12222'known/1_1_$special_=\\=/2___2__4__0__13'([], A, B, C) :-
12223    'known/1_1_$special_=\\=/2___2__5'(A, B, C).
12224'known/1_1_$special_=\\=/2___2__4__0__13'([A|B], C, D, E) :-
12225    (   A=suspension(_, active, _, _, F, G),
12226        nonvar(F),
12227        F=(H, _),
12228        nonvar(H),
12229        H=(\+I),
12230        nonvar(I),
12231        I=(J=\=K),
12232        J==C,
12233        K==D
12234    ->  A=suspension(_, _, _, _, L, M),
12235        setarg(2, A, removed),
12236        term_variables(term(L, M), N),
12237        ( arg(4, A, O),
12238          (   var(O)
12239          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12240                        P),
12241              P=[_|Q],
12242              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12243                       Q),
12244              (   Q=[R|_]
12245              ->  setarg(4, R, _)
12246              ;   true
12247              )
12248          ;   O=[_, _|Q],
12249              setarg(2, O, Q),
12250              (   Q=[R|_]
12251              ->  setarg(4, R, O)
12252              ;   true
12253              )
12254          )
12255        ),
12256        'detach_known/1_1_$special_;/2___2'(N, A),
12257        arg(2, E, S),
12258        setarg(2, E, active),
12259        ( arg(4, E, T),
12260          U is T+1,
12261          setarg(4, E, U)
12262        ),
12263        (   S==not_stored_yet
12264        ->  E=suspension(_, _, _, _, _, V, W),
12265            term_variables(term(V, W), X),
12266            'chr none_locked'(X),
12267            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12268                      Y),
12269            Z=[E|Y],
12270            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12271                     Z),
12272            (   Y=[A1|_]
12273            ->  setarg(5, A1, Z)
12274            ;   true
12275            ),
12276            'attach_known/1_1_$special_=\\=/2___2'(X, E)
12277        ;   true
12278        ),
12279        known(G),
12280        (   E=suspension(_, active, _, U, _, _, _)
12281        ->  setarg(2, E, inactive),
12282            'known/1_1_$special_=\\=/2___2__4__0__13'(B,
12283                                                      C,
12284                                                      D,
12285                                                      E)
12286        ;   true
12287        )
12288    ;   'known/1_1_$special_=\\=/2___2__4__0__13'(B,
12289                                                  C,
12290                                                  D,
12291                                                  E)
12292    ).
12293'known/1_1_$special_=\\=/2___2__4'(A, B, C) :-
12294    'known/1_1_$special_=\\=/2___2__5'(A, B, C).
12295'known/1_1_$special_=\\=/2___2__5'(_, _, A) :-
12296    arg(2, A, B),
12297    setarg(2, A, active),
12298    arg(4, A, C),
12299    D is C+1,
12300    setarg(4, A, D),
12301    (   B==not_stored_yet
12302    ->  A=suspension(_, _, _, _, _, E, F),
12303        term_variables(term(E, F), G),
12304        'chr none_locked'(G),
12305        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12306                  H),
12307        I=[A|H],
12308        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12309                 I),
12310        (   H=[J|_]
12311        ->  setarg(5, J, I)
12312        ;   true
12313        ),
12314        'attach_known/1_1_$special_=\\=/2___2'(G, A)
12315    ;   true
12316    ).
12317'known/1_1_$special_\\+/1'(A) :-
12318    'known/1_1_$special_\\+/1___1__0'(A, _).
12319'known/1_1_$special_\\+/1___1__0'(A, B) :-
12320    (   'chr newvia_1'(A, C)
12321    ->  get_attr(C, guard_entailment, D),
12322        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
12323    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12324                  E)
12325    ),
12326    member(F, E),
12327    F=suspension(_, active, _, _, G),
12328    G==A,
12329    !,
12330    (   var(B)
12331    ->  true
12332    ;   B=suspension(_, H, _, _, I),
12333        setarg(2, B, removed),
12334        (   H==not_stored_yet
12335        ->  J=[]
12336        ;   term_variables(I, J),
12337            arg(4, B, K),
12338            (   var(K)
12339            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12340                          L),
12341                L=[_|M],
12342                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12343                         M),
12344                (   M=[N|_]
12345                ->  setarg(4, N, _)
12346                ;   true
12347                )
12348            ;   K=[_, _|M],
12349                setarg(2, K, M),
12350                (   M=[N|_]
12351                ->  setarg(4, N, K)
12352                ;   true
12353                )
12354            ),
12355            'detach_known/1_1_$special_\\+/1___1'(J, B)
12356        )
12357    ).
12358'known/1_1_$special_\\+/1___1__0'(_, A) :-
12359    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
12360              B),
12361    member(C, B),
12362    C=suspension(_, active, _),
12363    !,
12364    (   var(A)
12365    ->  true
12366    ;   A=suspension(_, D, _, _, E),
12367        setarg(2, A, removed),
12368        (   D==not_stored_yet
12369        ->  F=[]
12370        ;   term_variables(E, F),
12371            arg(4, A, G),
12372            (   var(G)
12373            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12374                          H),
12375                H=[_|I],
12376                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12377                         I),
12378                (   I=[J|_]
12379                ->  setarg(4, J, _)
12380                ;   true
12381                )
12382            ;   G=[_, _|I],
12383                setarg(2, G, I),
12384                (   I=[J|_]
12385                ->  setarg(4, J, G)
12386                ;   true
12387                )
12388            ),
12389            'detach_known/1_1_$special_\\+/1___1'(F, A)
12390        )
12391    ).
12392'known/1_1_$special_\\+/1___1__0'(A, B) :-
12393    nonvar(A),
12394    (   (   (   (   (   (   (   (   (   (   (   A=functor(C, D, E),
12395                                                nonvar(C),
12396                                                'chr lock'(C),
12397                                                'chr lock'(D),
12398                                                'chr lock'(E),
12399                                                functor(C,
12400                                                        D,
12401                                                        E),
12402                                                'chr unlock'(C),
12403                                                'chr unlock'(D),
12404                                                'chr unlock'(E),
12405                                                !,
12406                                                (   var(B)
12407                                                ->  true
12408                                                ;   B=suspension(_, F, _, _, G),
12409                                                    setarg(2, B, removed),
12410                                                    (   F==not_stored_yet
12411                                                    ->  H=[]
12412                                                    ;   term_variables(G,
12413                                                                       H),
12414                                                        arg(4, B, I),
12415                                                        (   var(I)
12416                                                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12417                                                                      J),
12418                                                            J=[_|K],
12419                                                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12420                                                                     K),
12421                                                            (   K=[L|_]
12422                                                            ->  setarg(4,
12423                                                                       L,
12424                                                                       _)
12425                                                            ;   true
12426                                                            )
12427                                                        ;   I=[_, _|K],
12428                                                            setarg(2,
12429                                                                   I,
12430                                                                   K),
12431                                                            (   K=[L|_]
12432                                                            ->  setarg(4,
12433                                                                       L,
12434                                                                       I)
12435                                                            ;   true
12436                                                            )
12437                                                        ),
12438                                                        'detach_known/1_1_$special_\\+/1___1'(H,
12439                                                                                              B)
12440                                                    )
12441                                                ),
12442                                                'known/1_1_$special_fail/0'
12443                                            ;   A=(M;N),
12444                                                (   'chr newvia_2'(M,
12445                                                                   N,
12446                                                                   O)
12447                                                ->  get_attr(O,
12448                                                             guard_entailment,
12449                                                             P),
12450                                                    P=v(_, _, _, Q, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12451                                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12452                                                              Q)
12453                                                ),
12454                                                member(R, Q),
12455                                                R=suspension(_, active, _, _, S, T),
12456                                                S==M,
12457                                                T==N,
12458                                                !,
12459                                                R=suspension(_, _, _, _, U, V),
12460                                                setarg(2, R, removed),
12461                                                term_variables(term(U,
12462                                                                    V),
12463                                                               W),
12464                                                arg(4, R, X),
12465                                                (   var(X)
12466                                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12467                                                              Y),
12468                                                    Y=[_|Z],
12469                                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12470                                                             Z),
12471                                                    (   Z=[A1|_]
12472                                                    ->  setarg(4,
12473                                                               A1,
12474                                                               _)
12475                                                    ;   true
12476                                                    )
12477                                                ;   X=[_, _|Z],
12478                                                    setarg(2,
12479                                                           X,
12480                                                           Z),
12481                                                    (   Z=[A1|_]
12482                                                    ->  setarg(4,
12483                                                               A1,
12484                                                               X)
12485                                                    ;   true
12486                                                    )
12487                                                ),
12488                                                'detach_known/1_1_$special_;/2___2'(W,
12489                                                                                    R),
12490                                                (   var(B)
12491                                                ->  true
12492                                                ;   B=suspension(_, B1, _, _, C1),
12493                                                    setarg(2, B, removed),
12494                                                    (   B1==not_stored_yet
12495                                                    ->  D1=[]
12496                                                    ;   term_variables(C1,
12497                                                                       D1),
12498                                                        arg(4,
12499                                                            B,
12500                                                            E1),
12501                                                        (   var(E1)
12502                                                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12503                                                                      F1),
12504                                                            F1=[_|G1],
12505                                                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12506                                                                     G1),
12507                                                            (   G1=[H1|_]
12508                                                            ->  setarg(4,
12509                                                                       H1,
12510                                                                       _)
12511                                                            ;   true
12512                                                            )
12513                                                        ;   E1=[_, _|G1],
12514                                                            setarg(2,
12515                                                                   E1,
12516                                                                   G1),
12517                                                            (   G1=[H1|_]
12518                                                            ->  setarg(4,
12519                                                                       H1,
12520                                                                       E1)
12521                                                            ;   true
12522                                                            )
12523                                                        ),
12524                                                        'detach_known/1_1_$special_\\+/1___1'(D1,
12525                                                                                              B)
12526                                                    )
12527                                                ),
12528                                                'known/1_1_$special_fail/0'
12529                                            )
12530                                        ;   A=nonvar(I1),
12531                                            (   'chr newvia_1'(I1,
12532                                                               J1)
12533                                            ->  get_attr(J1,
12534                                                         guard_entailment,
12535                                                         K1),
12536                                                K1=v(_, _, _, _, L1, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12537                                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
12538                                                          L1)
12539                                            ),
12540                                            member(M1, L1),
12541                                            M1=suspension(_, active, _, _, N1),
12542                                            N1==I1,
12543                                            !,
12544                                            M1=suspension(_, _, _, _, O1),
12545                                            setarg(2, M1, removed),
12546                                            term_variables(O1, P1),
12547                                            arg(4, M1, Q1),
12548                                            (   var(Q1)
12549                                            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
12550                                                          R1),
12551                                                R1=[_|S1],
12552                                                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
12553                                                         S1),
12554                                                (   S1=[T1|_]
12555                                                ->  setarg(4, T1, _)
12556                                                ;   true
12557                                                )
12558                                            ;   Q1=[_, _|S1],
12559                                                setarg(2, Q1, S1),
12560                                                (   S1=[T1|_]
12561                                                ->  setarg(4,
12562                                                           T1,
12563                                                           Q1)
12564                                                ;   true
12565                                                )
12566                                            ),
12567                                            'detach_known/1_1_$special_nonvar/1___1'(P1,
12568                                                                                     M1),
12569                                            (   var(B)
12570                                            ->  true
12571                                            ;   B=suspension(_, U1, _, _, V1),
12572                                                setarg(2, B, removed),
12573                                                (   U1==not_stored_yet
12574                                                ->  W1=[]
12575                                                ;   term_variables(V1,
12576                                                                   W1),
12577                                                    arg(4, B, X1),
12578                                                    (   var(X1)
12579                                                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12580                                                                  Y1),
12581                                                        Y1=[_|Z1],
12582                                                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12583                                                                 Z1),
12584                                                        (   Z1=[A2|_]
12585                                                        ->  setarg(4,
12586                                                                   A2,
12587                                                                   _)
12588                                                        ;   true
12589                                                        )
12590                                                    ;   X1=[_, _|Z1],
12591                                                        setarg(2,
12592                                                               X1,
12593                                                               Z1),
12594                                                        (   Z1=[A2|_]
12595                                                        ->  setarg(4,
12596                                                                   A2,
12597                                                                   X1)
12598                                                        ;   true
12599                                                        )
12600                                                    ),
12601                                                    'detach_known/1_1_$special_\\+/1___1'(W1,
12602                                                                                          B)
12603                                                )
12604                                            ),
12605                                            'known/1_1_$special_fail/0'
12606                                        )
12607                                    ;   A=var(B2),
12608                                        (   'chr newvia_1'(B2, C2)
12609                                        ->  get_attr(C2,
12610                                                     guard_entailment,
12611                                                     D2),
12612                                            D2=v(_, _, _, _, _, E2, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12613                                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
12614                                                      E2)
12615                                        ),
12616                                        member(F2, E2),
12617                                        F2=suspension(_, active, _, _, G2),
12618                                        G2==B2,
12619                                        !,
12620                                        F2=suspension(_, _, _, _, H2),
12621                                        setarg(2, F2, removed),
12622                                        term_variables(H2, I2),
12623                                        arg(4, F2, J2),
12624                                        (   var(J2)
12625                                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
12626                                                      K2),
12627                                            K2=[_|L2],
12628                                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
12629                                                     L2),
12630                                            (   L2=[M2|_]
12631                                            ->  setarg(4, M2, _)
12632                                            ;   true
12633                                            )
12634                                        ;   J2=[_, _|L2],
12635                                            setarg(2, J2, L2),
12636                                            (   L2=[M2|_]
12637                                            ->  setarg(4, M2, J2)
12638                                            ;   true
12639                                            )
12640                                        ),
12641                                        'detach_known/1_1_$special_var/1___1'(I2,
12642                                                                              F2),
12643                                        (   var(B)
12644                                        ->  true
12645                                        ;   B=suspension(_, N2, _, _, O2),
12646                                            setarg(2, B, removed),
12647                                            (   N2==not_stored_yet
12648                                            ->  P2=[]
12649                                            ;   term_variables(O2,
12650                                                               P2),
12651                                                arg(4, B, Q2),
12652                                                (   var(Q2)
12653                                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12654                                                              R2),
12655                                                    R2=[_|S2],
12656                                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12657                                                             S2),
12658                                                    (   S2=[T2|_]
12659                                                    ->  setarg(4,
12660                                                               T2,
12661                                                               _)
12662                                                    ;   true
12663                                                    )
12664                                                ;   Q2=[_, _|S2],
12665                                                    setarg(2,
12666                                                           Q2,
12667                                                           S2),
12668                                                    (   S2=[T2|_]
12669                                                    ->  setarg(4,
12670                                                               T2,
12671                                                               Q2)
12672                                                    ;   true
12673                                                    )
12674                                                ),
12675                                                'detach_known/1_1_$special_\\+/1___1'(P2,
12676                                                                                      B)
12677                                            )
12678                                        ),
12679                                        'known/1_1_$special_fail/0'
12680                                    )
12681                                ;   A=atom(U2),
12682                                    (   'chr newvia_1'(U2, V2)
12683                                    ->  get_attr(V2,
12684                                                 guard_entailment,
12685                                                 W2),
12686                                        W2=v(_, _, _, _, _, _, X2, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12687                                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
12688                                                  X2)
12689                                    ),
12690                                    member(Y2, X2),
12691                                    Y2=suspension(_, active, _, _, _, Z2),
12692                                    Z2==U2,
12693                                    !,
12694                                    Y2=suspension(_, _, _, _, _, A3),
12695                                    setarg(2, Y2, removed),
12696                                    term_variables(A3, B3),
12697                                    arg(5, Y2, C3),
12698                                    (   var(C3)
12699                                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
12700                                                  D3),
12701                                        D3=[_|E3],
12702                                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
12703                                                 E3),
12704                                        (   E3=[F3|_]
12705                                        ->  setarg(5, F3, _)
12706                                        ;   true
12707                                        )
12708                                    ;   C3=[_, _|E3],
12709                                        setarg(2, C3, E3),
12710                                        (   E3=[F3|_]
12711                                        ->  setarg(5, F3, C3)
12712                                        ;   true
12713                                        )
12714                                    ),
12715                                    'detach_known/1_1_$special_atom/1___1'(B3,
12716                                                                           Y2),
12717                                    (   var(B)
12718                                    ->  true
12719                                    ;   B=suspension(_, G3, _, _, H3),
12720                                        setarg(2, B, removed),
12721                                        (   G3==not_stored_yet
12722                                        ->  I3=[]
12723                                        ;   term_variables(H3, I3),
12724                                            arg(4, B, J3),
12725                                            (   var(J3)
12726                                            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12727                                                          K3),
12728                                                K3=[_|L3],
12729                                                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12730                                                         L3),
12731                                                (   L3=[M3|_]
12732                                                ->  setarg(4, M3, _)
12733                                                ;   true
12734                                                )
12735                                            ;   J3=[_, _|L3],
12736                                                setarg(2, J3, L3),
12737                                                (   L3=[M3|_]
12738                                                ->  setarg(4,
12739                                                           M3,
12740                                                           J3)
12741                                                ;   true
12742                                                )
12743                                            ),
12744                                            'detach_known/1_1_$special_\\+/1___1'(I3,
12745                                                                                  B)
12746                                        )
12747                                    ),
12748                                    'known/1_1_$special_fail/0'
12749                                )
12750                            ;   A=atomic(N3),
12751                                (   'chr newvia_1'(N3, O3)
12752                                ->  get_attr(O3,
12753                                             guard_entailment,
12754                                             P3),
12755                                    P3=v(_, _, _, _, _, _, _, Q3, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12756                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
12757                                              Q3)
12758                                ),
12759                                member(R3, Q3),
12760                                R3=suspension(_, active, _, _, _, S3),
12761                                S3==N3,
12762                                !,
12763                                R3=suspension(_, _, _, _, _, T3),
12764                                setarg(2, R3, removed),
12765                                term_variables(T3, U3),
12766                                arg(5, R3, V3),
12767                                (   var(V3)
12768                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
12769                                              W3),
12770                                    W3=[_|X3],
12771                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
12772                                             X3),
12773                                    (   X3=[Y3|_]
12774                                    ->  setarg(5, Y3, _)
12775                                    ;   true
12776                                    )
12777                                ;   V3=[_, _|X3],
12778                                    setarg(2, V3, X3),
12779                                    (   X3=[Y3|_]
12780                                    ->  setarg(5, Y3, V3)
12781                                    ;   true
12782                                    )
12783                                ),
12784                                'detach_known/1_1_$special_atomic/1___1'(U3,
12785                                                                         R3),
12786                                (   var(B)
12787                                ->  true
12788                                ;   B=suspension(_, Z3, _, _, A4),
12789                                    setarg(2, B, removed),
12790                                    (   Z3==not_stored_yet
12791                                    ->  B4=[]
12792                                    ;   term_variables(A4, B4),
12793                                        arg(4, B, C4),
12794                                        (   var(C4)
12795                                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12796                                                      D4),
12797                                            D4=[_|E4],
12798                                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12799                                                     E4),
12800                                            (   E4=[F4|_]
12801                                            ->  setarg(4, F4, _)
12802                                            ;   true
12803                                            )
12804                                        ;   C4=[_, _|E4],
12805                                            setarg(2, C4, E4),
12806                                            (   E4=[F4|_]
12807                                            ->  setarg(4, F4, C4)
12808                                            ;   true
12809                                            )
12810                                        ),
12811                                        'detach_known/1_1_$special_\\+/1___1'(B4,
12812                                                                              B)
12813                                    )
12814                                ),
12815                                'known/1_1_$special_fail/0'
12816                            )
12817                        ;   A=compound(G4),
12818                            (   'chr newvia_1'(G4, H4)
12819                            ->  get_attr(H4, guard_entailment, I4),
12820                                I4=v(_, _, _, _, _, _, _, _, J4, _, _, _, _, _, _, _, _, _, _, _, _, _)
12821                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
12822                                          J4)
12823                            ),
12824                            member(K4, J4),
12825                            K4=suspension(_, active, _, _, _, L4),
12826                            L4==G4,
12827                            !,
12828                            K4=suspension(_, _, _, _, _, M4),
12829                            setarg(2, K4, removed),
12830                            term_variables(M4, N4),
12831                            arg(5, K4, O4),
12832                            (   var(O4)
12833                            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
12834                                          P4),
12835                                P4=[_|Q4],
12836                                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
12837                                         Q4),
12838                                (   Q4=[R4|_]
12839                                ->  setarg(5, R4, _)
12840                                ;   true
12841                                )
12842                            ;   O4=[_, _|Q4],
12843                                setarg(2, O4, Q4),
12844                                (   Q4=[R4|_]
12845                                ->  setarg(5, R4, O4)
12846                                ;   true
12847                                )
12848                            ),
12849                            'detach_known/1_1_$special_compound/1___1'(N4,
12850                                                                       K4),
12851                            (   var(B)
12852                            ->  true
12853                            ;   B=suspension(_, S4, _, _, T4),
12854                                setarg(2, B, removed),
12855                                (   S4==not_stored_yet
12856                                ->  U4=[]
12857                                ;   term_variables(T4, U4),
12858                                    arg(4, B, V4),
12859                                    (   var(V4)
12860                                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12861                                                  W4),
12862                                        W4=[_|X4],
12863                                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12864                                                 X4),
12865                                        (   X4=[Y4|_]
12866                                        ->  setarg(4, Y4, _)
12867                                        ;   true
12868                                        )
12869                                    ;   V4=[_, _|X4],
12870                                        setarg(2, V4, X4),
12871                                        (   X4=[Y4|_]
12872                                        ->  setarg(4, Y4, V4)
12873                                        ;   true
12874                                        )
12875                                    ),
12876                                    'detach_known/1_1_$special_\\+/1___1'(U4,
12877                                                                          B)
12878                                )
12879                            ),
12880                            'known/1_1_$special_fail/0'
12881                        )
12882                    ;   A=ground(Z4),
12883                        (   'chr newvia_1'(Z4, A5)
12884                        ->  get_attr(A5, guard_entailment, B5),
12885                            B5=v(_, _, _, _, _, _, _, _, _, C5, _, _, _, _, _, _, _, _, _, _, _, _)
12886                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
12887                                      C5)
12888                        ),
12889                        member(D5, C5),
12890                        D5=suspension(_, active, _, _, _, E5),
12891                        E5==Z4,
12892                        !,
12893                        D5=suspension(_, _, _, _, _, F5),
12894                        setarg(2, D5, removed),
12895                        term_variables(F5, G5),
12896                        arg(5, D5, H5),
12897                        (   var(H5)
12898                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
12899                                      I5),
12900                            I5=[_|J5],
12901                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
12902                                     J5),
12903                            (   J5=[K5|_]
12904                            ->  setarg(5, K5, _)
12905                            ;   true
12906                            )
12907                        ;   H5=[_, _|J5],
12908                            setarg(2, H5, J5),
12909                            (   J5=[K5|_]
12910                            ->  setarg(5, K5, H5)
12911                            ;   true
12912                            )
12913                        ),
12914                        'detach_known/1_1_$special_ground/1___1'(G5,
12915                                                                 D5),
12916                        (   var(B)
12917                        ->  true
12918                        ;   B=suspension(_, L5, _, _, M5),
12919                            setarg(2, B, removed),
12920                            (   L5==not_stored_yet
12921                            ->  N5=[]
12922                            ;   term_variables(M5, N5),
12923                                arg(4, B, O5),
12924                                (   var(O5)
12925                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12926                                              P5),
12927                                    P5=[_|Q5],
12928                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12929                                             Q5),
12930                                    (   Q5=[R5|_]
12931                                    ->  setarg(4, R5, _)
12932                                    ;   true
12933                                    )
12934                                ;   O5=[_, _|Q5],
12935                                    setarg(2, O5, Q5),
12936                                    (   Q5=[R5|_]
12937                                    ->  setarg(4, R5, O5)
12938                                    ;   true
12939                                    )
12940                                ),
12941                                'detach_known/1_1_$special_\\+/1___1'(N5,
12942                                                                      B)
12943                            )
12944                        ),
12945                        'known/1_1_$special_fail/0'
12946                    )
12947                ;   A=integer(S5),
12948                    (   'chr newvia_1'(S5, T5)
12949                    ->  get_attr(T5, guard_entailment, U5),
12950                        U5=v(_, _, _, _, _, _, _, _, _, _, V5, _, _, _, _, _, _, _, _, _, _, _)
12951                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
12952                                  V5)
12953                    ),
12954                    member(W5, V5),
12955                    W5=suspension(_, active, _, _, _, X5),
12956                    X5==S5,
12957                    !,
12958                    W5=suspension(_, _, _, _, _, Y5),
12959                    setarg(2, W5, removed),
12960                    term_variables(Y5, Z5),
12961                    arg(5, W5, A6),
12962                    (   var(A6)
12963                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
12964                                  B6),
12965                        B6=[_|C6],
12966                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
12967                                 C6),
12968                        (   C6=[D6|_]
12969                        ->  setarg(5, D6, _)
12970                        ;   true
12971                        )
12972                    ;   A6=[_, _|C6],
12973                        setarg(2, A6, C6),
12974                        (   C6=[D6|_]
12975                        ->  setarg(5, D6, A6)
12976                        ;   true
12977                        )
12978                    ),
12979                    'detach_known/1_1_$special_integer/1___1'(Z5,
12980                                                              W5),
12981                    (   var(B)
12982                    ->  true
12983                    ;   B=suspension(_, E6, _, _, F6),
12984                        setarg(2, B, removed),
12985                        (   E6==not_stored_yet
12986                        ->  G6=[]
12987                        ;   term_variables(F6, G6),
12988                            arg(4, B, H6),
12989                            (   var(H6)
12990                            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12991                                          I6),
12992                                I6=[_|J6],
12993                                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12994                                         J6),
12995                                (   J6=[K6|_]
12996                                ->  setarg(4, K6, _)
12997                                ;   true
12998                                )
12999                            ;   H6=[_, _|J6],
13000                                setarg(2, H6, J6),
13001                                (   J6=[K6|_]
13002                                ->  setarg(4, K6, H6)
13003                                ;   true
13004                                )
13005                            ),
13006                            'detach_known/1_1_$special_\\+/1___1'(G6,
13007                                                                  B)
13008                        )
13009                    ),
13010                    'known/1_1_$special_fail/0'
13011                )
13012            ;   A=float(L6),
13013                (   'chr newvia_1'(L6, M6)
13014                ->  get_attr(M6, guard_entailment, N6),
13015                    N6=v(_, _, _, _, _, _, _, _, _, _, _, O6, _, _, _, _, _, _, _, _, _, _)
13016                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
13017                              O6)
13018                ),
13019                member(P6, O6),
13020                P6=suspension(_, active, _, _, _, Q6),
13021                Q6==L6,
13022                !,
13023                P6=suspension(_, _, _, _, _, R6),
13024                setarg(2, P6, removed),
13025                term_variables(R6, S6),
13026                arg(5, P6, T6),
13027                (   var(T6)
13028                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
13029                              U6),
13030                    U6=[_|V6],
13031                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
13032                             V6),
13033                    (   V6=[W6|_]
13034                    ->  setarg(5, W6, _)
13035                    ;   true
13036                    )
13037                ;   T6=[_, _|V6],
13038                    setarg(2, T6, V6),
13039                    (   V6=[W6|_]
13040                    ->  setarg(5, W6, T6)
13041                    ;   true
13042                    )
13043                ),
13044                'detach_known/1_1_$special_float/1___1'(S6, P6),
13045                (   var(B)
13046                ->  true
13047                ;   B=suspension(_, X6, _, _, Y6),
13048                    setarg(2, B, removed),
13049                    (   X6==not_stored_yet
13050                    ->  Z6=[]
13051                    ;   term_variables(Y6, Z6),
13052                        arg(4, B, A7),
13053                        (   var(A7)
13054                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13055                                      B7),
13056                            B7=[_|C7],
13057                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13058                                     C7),
13059                            (   C7=[D7|_]
13060                            ->  setarg(4, D7, _)
13061                            ;   true
13062                            )
13063                        ;   A7=[_, _|C7],
13064                            setarg(2, A7, C7),
13065                            (   C7=[D7|_]
13066                            ->  setarg(4, D7, A7)
13067                            ;   true
13068                            )
13069                        ),
13070                        'detach_known/1_1_$special_\\+/1___1'(Z6, B)
13071                    )
13072                ),
13073                'known/1_1_$special_fail/0'
13074            )
13075        ;   A=number(E7),
13076            (   'chr newvia_1'(E7, F7)
13077            ->  get_attr(F7, guard_entailment, G7),
13078                G7=v(_, _, _, _, _, _, _, _, _, _, _, _, H7, _, _, _, _, _, _, _, _, _)
13079            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
13080                          H7)
13081            ),
13082            member(I7, H7),
13083            I7=suspension(_, active, _, _, _, J7),
13084            J7==E7,
13085            !,
13086            I7=suspension(_, _, _, _, _, K7),
13087            setarg(2, I7, removed),
13088            term_variables(K7, L7),
13089            arg(5, I7, M7),
13090            (   var(M7)
13091            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
13092                          N7),
13093                N7=[_|O7],
13094                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
13095                         O7),
13096                (   O7=[P7|_]
13097                ->  setarg(5, P7, _)
13098                ;   true
13099                )
13100            ;   M7=[_, _|O7],
13101                setarg(2, M7, O7),
13102                (   O7=[P7|_]
13103                ->  setarg(5, P7, M7)
13104                ;   true
13105                )
13106            ),
13107            'detach_known/1_1_$special_number/1___1'(L7, I7),
13108            (   var(B)
13109            ->  true
13110            ;   B=suspension(_, Q7, _, _, R7),
13111                setarg(2, B, removed),
13112                (   Q7==not_stored_yet
13113                ->  S7=[]
13114                ;   term_variables(R7, S7),
13115                    arg(4, B, T7),
13116                    (   var(T7)
13117                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13118                                  U7),
13119                        U7=[_|V7],
13120                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13121                                 V7),
13122                        (   V7=[W7|_]
13123                        ->  setarg(4, W7, _)
13124                        ;   true
13125                        )
13126                    ;   T7=[_, _|V7],
13127                        setarg(2, T7, V7),
13128                        (   V7=[W7|_]
13129                        ->  setarg(4, W7, T7)
13130                        ;   true
13131                        )
13132                    ),
13133                    'detach_known/1_1_$special_\\+/1___1'(S7, B)
13134                )
13135            ),
13136            'known/1_1_$special_fail/0'
13137        )
13138    ;   A=(X7=\=Y7),
13139        (   'chr newvia_2'(X7, Y7, Z7)
13140        ->  get_attr(Z7, guard_entailment, A8),
13141            A8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, B8, _, _, _, _, _, _, _, _)
13142        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
13143                      B8)
13144        ),
13145        member(C8, B8),
13146        C8=suspension(_, active, _, _, _, D8, E8),
13147        D8==X7,
13148        E8==Y7,
13149        !,
13150        C8=suspension(_, _, _, _, _, F8, G8),
13151        setarg(2, C8, removed),
13152        term_variables(term(F8, G8), H8),
13153        arg(5, C8, I8),
13154        (   var(I8)
13155        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
13156                      J8),
13157            J8=[_|K8],
13158            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
13159                     K8),
13160            (   K8=[L8|_]
13161            ->  setarg(5, L8, _)
13162            ;   true
13163            )
13164        ;   I8=[_, _|K8],
13165            setarg(2, I8, K8),
13166            (   K8=[L8|_]
13167            ->  setarg(5, L8, I8)
13168            ;   true
13169            )
13170        ),
13171        'detach_known/1_1_$special_=\\=/2___2'(H8, C8),
13172        (   var(B)
13173        ->  true
13174        ;   B=suspension(_, M8, _, _, N8),
13175            setarg(2, B, removed),
13176            (   M8==not_stored_yet
13177            ->  O8=[]
13178            ;   term_variables(N8, O8),
13179                arg(4, B, P8),
13180                (   var(P8)
13181                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13182                              Q8),
13183                    Q8=[_|R8],
13184                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13185                             R8),
13186                    (   R8=[S8|_]
13187                    ->  setarg(4, S8, _)
13188                    ;   true
13189                    )
13190                ;   P8=[_, _|R8],
13191                    setarg(2, P8, R8),
13192                    (   R8=[S8|_]
13193                    ->  setarg(4, S8, P8)
13194                    ;   true
13195                    )
13196                ),
13197                'detach_known/1_1_$special_\\+/1___1'(O8, B)
13198            )
13199        ),
13200        'known/1_1_$special_fail/0'
13201    ).
13202'known/1_1_$special_\\+/1___1__0'(A, B) :-
13203    (   'chr newvia_1'(A, C)
13204    ->  get_attr(C, guard_entailment, D),
13205        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
13206    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13207                  E)
13208    ),
13209    member(F, E),
13210    F=suspension(_, active, _, _, G),
13211    nonvar(G),
13212    G=(\+H),
13213    H==A,
13214    !,
13215    F=suspension(_, _, _, _, I),
13216    setarg(2, F, removed),
13217    term_variables(I, J),
13218    arg(4, F, K),
13219    (   var(K)
13220    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13221                  L),
13222        L=[_|M],
13223        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13224                 M),
13225        (   M=[N|_]
13226        ->  setarg(4, N, _)
13227        ;   true
13228        )
13229    ;   K=[_, _|M],
13230        setarg(2, K, M),
13231        (   M=[N|_]
13232        ->  setarg(4, N, K)
13233        ;   true
13234        )
13235    ),
13236    'detach_known/1_1_$special_\\+/1___1'(J, F),
13237    (   var(B)
13238    ->  true
13239    ;   B=suspension(_, O, _, _, P),
13240        setarg(2, B, removed),
13241        (   O==not_stored_yet
13242        ->  Q=[]
13243        ;   term_variables(P, Q),
13244            arg(4, B, R),
13245            (   var(R)
13246            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13247                          S),
13248                S=[_|T],
13249                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13250                         T),
13251                (   T=[U|_]
13252                ->  setarg(4, U, _)
13253                ;   true
13254                )
13255            ;   R=[_, _|T],
13256                setarg(2, R, T),
13257                (   T=[U|_]
13258                ->  setarg(4, U, R)
13259                ;   true
13260                )
13261            ),
13262            'detach_known/1_1_$special_\\+/1___1'(Q, B)
13263        )
13264    ),
13265    'known/1_1_$special_fail/0'.
13266'known/1_1_$special_\\+/1___1__0'(A, B) :-
13267    nonvar(A),
13268    (   (   (   (   (   (   (   A=(\+C),
13269                                (   'chr newvia_1'(C, D)
13270                                ->  get_attr(D, guard_entailment, E),
13271                                    E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _, _)
13272                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13273                                              F)
13274                                ),
13275                                member(G, F),
13276                                G=suspension(_, active, _, _, H),
13277                                H==C,
13278                                !,
13279                                G=suspension(_, _, _, _, I),
13280                                setarg(2, G, removed),
13281                                term_variables(I, J),
13282                                arg(4, G, K),
13283                                (   var(K)
13284                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13285                                              L),
13286                                    L=[_|M],
13287                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13288                                             M),
13289                                    (   M=[N|_]
13290                                    ->  setarg(4, N, _)
13291                                    ;   true
13292                                    )
13293                                ;   K=[_, _|M],
13294                                    setarg(2, K, M),
13295                                    (   M=[N|_]
13296                                    ->  setarg(4, N, K)
13297                                    ;   true
13298                                    )
13299                                ),
13300                                'detach_known/1_1_$special_\\+/1___1'(J,
13301                                                                      G),
13302                                (   var(B)
13303                                ->  true
13304                                ;   B=suspension(_, O, _, _, P),
13305                                    setarg(2, B, removed),
13306                                    (   O==not_stored_yet
13307                                    ->  Q=[]
13308                                    ;   term_variables(P, Q),
13309                                        arg(4, B, R),
13310                                        (   var(R)
13311                                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13312                                                      S),
13313                                            S=[_|T],
13314                                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13315                                                     T),
13316                                            (   T=[U|_]
13317                                            ->  setarg(4, U, _)
13318                                            ;   true
13319                                            )
13320                                        ;   R=[_, _|T],
13321                                            setarg(2, R, T),
13322                                            (   T=[U|_]
13323                                            ->  setarg(4, U, R)
13324                                            ;   true
13325                                            )
13326                                        ),
13327                                        'detach_known/1_1_$special_\\+/1___1'(Q,
13328                                                                              B)
13329                                    )
13330                                ),
13331                                'known/1_1_$special_fail/0'
13332                            ;   A=functor(V, W, X),
13333                                (   'chr newvia'([V, W, X],
13334                                                 Y)
13335                                ->  get_attr(Y,
13336                                             guard_entailment,
13337                                             Z),
13338                                    Z=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, A1, _, _, _, _, _, _)
13339                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
13340                                              A1)
13341                                ),
13342                                member(B1, A1),
13343                                B1=suspension(_, active, _, _, C1, D1, E1),
13344                                C1==V,
13345                                D1==W,
13346                                E1==X,
13347                                !,
13348                                B1=suspension(_, _, _, _, F1, G1, H1),
13349                                setarg(2, B1, removed),
13350                                term_variables(term(F1,
13351                                                    G1,
13352                                                    H1),
13353                                               I1),
13354                                arg(4, B1, J1),
13355                                (   var(J1)
13356                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
13357                                              K1),
13358                                    K1=[_|L1],
13359                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
13360                                             L1),
13361                                    (   L1=[M1|_]
13362                                    ->  setarg(4, M1, _)
13363                                    ;   true
13364                                    )
13365                                ;   J1=[_, _|L1],
13366                                    setarg(2, J1, L1),
13367                                    (   L1=[M1|_]
13368                                    ->  setarg(4, M1, J1)
13369                                    ;   true
13370                                    )
13371                                ),
13372                                'detach_known/1_1_$special_functor/3___3'(I1,
13373                                                                          B1),
13374                                (   var(B)
13375                                ->  true
13376                                ;   B=suspension(_, N1, _, _, O1),
13377                                    setarg(2, B, removed),
13378                                    (   N1==not_stored_yet
13379                                    ->  P1=[]
13380                                    ;   term_variables(O1, P1),
13381                                        arg(4, B, Q1),
13382                                        (   var(Q1)
13383                                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13384                                                      R1),
13385                                            R1=[_|S1],
13386                                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13387                                                     S1),
13388                                            (   S1=[T1|_]
13389                                            ->  setarg(4, T1, _)
13390                                            ;   true
13391                                            )
13392                                        ;   Q1=[_, _|S1],
13393                                            setarg(2, Q1, S1),
13394                                            (   S1=[T1|_]
13395                                            ->  setarg(4, T1, Q1)
13396                                            ;   true
13397                                            )
13398                                        ),
13399                                        'detach_known/1_1_$special_\\+/1___1'(P1,
13400                                                                              B)
13401                                    )
13402                                ),
13403                                'known/1_1_$special_fail/0'
13404                            )
13405                        ;   A=(U1\=V1),
13406                            (   'chr newvia_2'(U1, V1, W1)
13407                            ->  get_attr(W1, guard_entailment, X1),
13408                                X1=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, Y1, _, _, _, _, _)
13409                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
13410                                          Y1)
13411                            ),
13412                            member(Z1, Y1),
13413                            Z1=suspension(_, active, _, _, _, A2, B2),
13414                            A2==U1,
13415                            B2==V1,
13416                            !,
13417                            Z1=suspension(_, _, _, _, _, C2, D2),
13418                            setarg(2, Z1, removed),
13419                            term_variables(term(C2, D2), E2),
13420                            arg(5, Z1, F2),
13421                            (   var(F2)
13422                            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
13423                                          G2),
13424                                G2=[_|H2],
13425                                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
13426                                         H2),
13427                                (   H2=[I2|_]
13428                                ->  setarg(5, I2, _)
13429                                ;   true
13430                                )
13431                            ;   F2=[_, _|H2],
13432                                setarg(2, F2, H2),
13433                                (   H2=[I2|_]
13434                                ->  setarg(5, I2, F2)
13435                                ;   true
13436                                )
13437                            ),
13438                            'detach_known/1_1_$special_\\=/2___2'(E2,
13439                                                                  Z1),
13440                            (   var(B)
13441                            ->  true
13442                            ;   B=suspension(_, J2, _, _, K2),
13443                                setarg(2, B, removed),
13444                                (   J2==not_stored_yet
13445                                ->  L2=[]
13446                                ;   term_variables(K2, L2),
13447                                    arg(4, B, M2),
13448                                    (   var(M2)
13449                                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13450                                                  N2),
13451                                        N2=[_|O2],
13452                                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13453                                                 O2),
13454                                        (   O2=[P2|_]
13455                                        ->  setarg(4, P2, _)
13456                                        ;   true
13457                                        )
13458                                    ;   M2=[_, _|O2],
13459                                        setarg(2, M2, O2),
13460                                        (   O2=[P2|_]
13461                                        ->  setarg(4, P2, M2)
13462                                        ;   true
13463                                        )
13464                                    ),
13465                                    'detach_known/1_1_$special_\\+/1___1'(L2,
13466                                                                          B)
13467                                )
13468                            ),
13469                            'known/1_1_$special_fail/0'
13470                        )
13471                    ;   A=(Q2=R2),
13472                        (   'chr newvia_2'(Q2, R2, S2)
13473                        ->  get_attr(S2, guard_entailment, T2),
13474                            T2=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, U2, _, _, _, _)
13475                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
13476                                      U2)
13477                        ),
13478                        member(V2, U2),
13479                        V2=suspension(_, active, _, _, W2, X2),
13480                        W2==Q2,
13481                        X2==R2,
13482                        !,
13483                        V2=suspension(_, _, _, _, Y2, Z2),
13484                        setarg(2, V2, removed),
13485                        term_variables(term(Y2, Z2), A3),
13486                        arg(4, V2, B3),
13487                        (   var(B3)
13488                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
13489                                      C3),
13490                            C3=[_|D3],
13491                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
13492                                     D3),
13493                            (   D3=[E3|_]
13494                            ->  setarg(4, E3, _)
13495                            ;   true
13496                            )
13497                        ;   B3=[_, _|D3],
13498                            setarg(2, B3, D3),
13499                            (   D3=[E3|_]
13500                            ->  setarg(4, E3, B3)
13501                            ;   true
13502                            )
13503                        ),
13504                        'detach_known/1_1_$special_=/2___2'(A3, V2),
13505                        (   var(B)
13506                        ->  true
13507                        ;   B=suspension(_, F3, _, _, G3),
13508                            setarg(2, B, removed),
13509                            (   F3==not_stored_yet
13510                            ->  H3=[]
13511                            ;   term_variables(G3, H3),
13512                                arg(4, B, I3),
13513                                (   var(I3)
13514                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13515                                              J3),
13516                                    J3=[_|K3],
13517                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13518                                             K3),
13519                                    (   K3=[L3|_]
13520                                    ->  setarg(4, L3, _)
13521                                    ;   true
13522                                    )
13523                                ;   I3=[_, _|K3],
13524                                    setarg(2, I3, K3),
13525                                    (   K3=[L3|_]
13526                                    ->  setarg(4, L3, I3)
13527                                    ;   true
13528                                    )
13529                                ),
13530                                'detach_known/1_1_$special_\\+/1___1'(H3,
13531                                                                      B)
13532                            )
13533                        ),
13534                        'known/1_1_$special_fail/0'
13535                    )
13536                ;   A=(M3\==N3),
13537                    (   'chr newvia_2'(M3, N3, O3)
13538                    ->  get_attr(O3, guard_entailment, P3),
13539                        P3=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, Q3, _, _, _)
13540                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
13541                                  Q3)
13542                    ),
13543                    member(R3, Q3),
13544                    R3=suspension(_, active, _, _, _, S3, T3),
13545                    S3==M3,
13546                    T3==N3,
13547                    !,
13548                    R3=suspension(_, _, _, _, _, U3, V3),
13549                    setarg(2, R3, removed),
13550                    term_variables(term(U3, V3), W3),
13551                    arg(5, R3, X3),
13552                    (   var(X3)
13553                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
13554                                  Y3),
13555                        Y3=[_|Z3],
13556                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
13557                                 Z3),
13558                        (   Z3=[A4|_]
13559                        ->  setarg(5, A4, _)
13560                        ;   true
13561                        )
13562                    ;   X3=[_, _|Z3],
13563                        setarg(2, X3, Z3),
13564                        (   Z3=[A4|_]
13565                        ->  setarg(5, A4, X3)
13566                        ;   true
13567                        )
13568                    ),
13569                    'detach_known/1_1_$special_\\==/2___2'(W3, R3),
13570                    (   var(B)
13571                    ->  true
13572                    ;   B=suspension(_, B4, _, _, C4),
13573                        setarg(2, B, removed),
13574                        (   B4==not_stored_yet
13575                        ->  D4=[]
13576                        ;   term_variables(C4, D4),
13577                            arg(4, B, E4),
13578                            (   var(E4)
13579                            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13580                                          F4),
13581                                F4=[_|G4],
13582                                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13583                                         G4),
13584                                (   G4=[H4|_]
13585                                ->  setarg(4, H4, _)
13586                                ;   true
13587                                )
13588                            ;   E4=[_, _|G4],
13589                                setarg(2, E4, G4),
13590                                (   G4=[H4|_]
13591                                ->  setarg(4, H4, E4)
13592                                ;   true
13593                                )
13594                            ),
13595                            'detach_known/1_1_$special_\\+/1___1'(D4,
13596                                                                  B)
13597                        )
13598                    ),
13599                    'known/1_1_$special_fail/0'
13600                )
13601            ;   A=(I4==J4),
13602                (   'chr newvia_2'(I4, J4, K4)
13603                ->  get_attr(K4, guard_entailment, L4),
13604                    L4=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, M4, _, _)
13605                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
13606                              M4)
13607                ),
13608                member(N4, M4),
13609                N4=suspension(_, active, _, _, _, O4, P4),
13610                O4==I4,
13611                P4==J4,
13612                !,
13613                N4=suspension(_, _, _, _, _, Q4, R4),
13614                setarg(2, N4, removed),
13615                term_variables(term(Q4, R4), S4),
13616                arg(5, N4, T4),
13617                (   var(T4)
13618                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
13619                              U4),
13620                    U4=[_|V4],
13621                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
13622                             V4),
13623                    (   V4=[W4|_]
13624                    ->  setarg(5, W4, _)
13625                    ;   true
13626                    )
13627                ;   T4=[_, _|V4],
13628                    setarg(2, T4, V4),
13629                    (   V4=[W4|_]
13630                    ->  setarg(5, W4, T4)
13631                    ;   true
13632                    )
13633                ),
13634                'detach_known/1_1_$special_==/2___2'(S4, N4),
13635                (   var(B)
13636                ->  true
13637                ;   B=suspension(_, X4, _, _, Y4),
13638                    setarg(2, B, removed),
13639                    (   X4==not_stored_yet
13640                    ->  Z4=[]
13641                    ;   term_variables(Y4, Z4),
13642                        arg(4, B, A5),
13643                        (   var(A5)
13644                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13645                                      B5),
13646                            B5=[_|C5],
13647                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13648                                     C5),
13649                            (   C5=[D5|_]
13650                            ->  setarg(4, D5, _)
13651                            ;   true
13652                            )
13653                        ;   A5=[_, _|C5],
13654                            setarg(2, A5, C5),
13655                            (   C5=[D5|_]
13656                            ->  setarg(4, D5, A5)
13657                            ;   true
13658                            )
13659                        ),
13660                        'detach_known/1_1_$special_\\+/1___1'(Z4, B)
13661                    )
13662                ),
13663                'known/1_1_$special_fail/0'
13664            )
13665        ;   A=(E5=<F5),
13666            (   'chr newvia_2'(E5, F5, G5)
13667            ->  get_attr(G5, guard_entailment, H5),
13668                H5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, I5, _)
13669            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
13670                          I5)
13671            ),
13672            member(J5, I5),
13673            J5=suspension(_, active, _, _, _, K5, L5),
13674            K5==E5,
13675            L5==F5,
13676            !,
13677            J5=suspension(_, _, _, _, _, M5, N5),
13678            setarg(2, J5, removed),
13679            term_variables(term(M5, N5), O5),
13680            arg(5, J5, P5),
13681            (   var(P5)
13682            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
13683                          Q5),
13684                Q5=[_|R5],
13685                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
13686                         R5),
13687                (   R5=[S5|_]
13688                ->  setarg(5, S5, _)
13689                ;   true
13690                )
13691            ;   P5=[_, _|R5],
13692                setarg(2, P5, R5),
13693                (   R5=[S5|_]
13694                ->  setarg(5, S5, P5)
13695                ;   true
13696                )
13697            ),
13698            'detach_known/1_1_$special_=</2___2'(O5, J5),
13699            (   var(B)
13700            ->  true
13701            ;   B=suspension(_, T5, _, _, U5),
13702                setarg(2, B, removed),
13703                (   T5==not_stored_yet
13704                ->  V5=[]
13705                ;   term_variables(U5, V5),
13706                    arg(4, B, W5),
13707                    (   var(W5)
13708                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13709                                  X5),
13710                        X5=[_|Y5],
13711                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13712                                 Y5),
13713                        (   Y5=[Z5|_]
13714                        ->  setarg(4, Z5, _)
13715                        ;   true
13716                        )
13717                    ;   W5=[_, _|Y5],
13718                        setarg(2, W5, Y5),
13719                        (   Y5=[Z5|_]
13720                        ->  setarg(4, Z5, W5)
13721                        ;   true
13722                        )
13723                    ),
13724                    'detach_known/1_1_$special_\\+/1___1'(V5, B)
13725                )
13726            ),
13727            'known/1_1_$special_fail/0'
13728        )
13729    ;   A=(A6=:=B6),
13730        (   'chr newvia_2'(A6, B6, C6)
13731        ->  get_attr(C6, guard_entailment, D6),
13732            D6=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E6)
13733        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
13734                      E6)
13735        ),
13736        member(F6, E6),
13737        F6=suspension(_, active, _, _, _, G6, H6),
13738        G6==A6,
13739        H6==B6,
13740        !,
13741        F6=suspension(_, _, _, _, _, I6, J6),
13742        setarg(2, F6, removed),
13743        term_variables(term(I6, J6), K6),
13744        arg(5, F6, L6),
13745        (   var(L6)
13746        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
13747                      M6),
13748            M6=[_|N6],
13749            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
13750                     N6),
13751            (   N6=[O6|_]
13752            ->  setarg(5, O6, _)
13753            ;   true
13754            )
13755        ;   L6=[_, _|N6],
13756            setarg(2, L6, N6),
13757            (   N6=[O6|_]
13758            ->  setarg(5, O6, L6)
13759            ;   true
13760            )
13761        ),
13762        'detach_known/1_1_$special_=:=/2___2'(K6, F6),
13763        (   var(B)
13764        ->  true
13765        ;   B=suspension(_, P6, _, _, Q6),
13766            setarg(2, B, removed),
13767            (   P6==not_stored_yet
13768            ->  R6=[]
13769            ;   term_variables(Q6, R6),
13770                arg(4, B, S6),
13771                (   var(S6)
13772                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13773                              T6),
13774                    T6=[_|U6],
13775                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13776                             U6),
13777                    (   U6=[V6|_]
13778                    ->  setarg(4, V6, _)
13779                    ;   true
13780                    )
13781                ;   S6=[_, _|U6],
13782                    setarg(2, S6, U6),
13783                    (   U6=[V6|_]
13784                    ->  setarg(4, V6, S6)
13785                    ;   true
13786                    )
13787                ),
13788                'detach_known/1_1_$special_\\+/1___1'(R6, B)
13789            )
13790        ),
13791        'known/1_1_$special_fail/0'
13792    ).
13793'known/1_1_$special_\\+/1___1__0'(A, B) :-
13794    (   'chr newvia_1'(A, C)
13795    ->  get_attr(C, guard_entailment, D),
13796        D=v(_, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
13797    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
13798                  E)
13799    ),
13800    member(F, E),
13801    F=suspension(_, active, _, _, G),
13802    G==A,
13803    !,
13804    F=suspension(_, _, _, _, H),
13805    setarg(2, F, removed),
13806    term_variables(H, I),
13807    arg(4, F, J),
13808    (   var(J)
13809    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
13810                  K),
13811        K=[_|L],
13812        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
13813                 L),
13814        (   L=[M|_]
13815        ->  setarg(4, M, _)
13816        ;   true
13817        )
13818    ;   J=[_, _|L],
13819        setarg(2, J, L),
13820        (   L=[M|_]
13821        ->  setarg(4, M, J)
13822        ;   true
13823        )
13824    ),
13825    'detach_known/1_1_$default___1'(I, F),
13826    (   var(B)
13827    ->  true
13828    ;   B=suspension(_, N, _, _, O),
13829        setarg(2, B, removed),
13830        (   N==not_stored_yet
13831        ->  P=[]
13832        ;   term_variables(O, P),
13833            arg(4, B, Q),
13834            (   var(Q)
13835            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13836                          R),
13837                R=[_|S],
13838                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13839                         S),
13840                (   S=[T|_]
13841                ->  setarg(4, T, _)
13842                ;   true
13843                )
13844            ;   Q=[_, _|S],
13845                setarg(2, Q, S),
13846                (   S=[T|_]
13847                ->  setarg(4, T, Q)
13848                ;   true
13849                )
13850            ),
13851            'detach_known/1_1_$special_\\+/1___1'(P, B)
13852        )
13853    ),
13854    'known/1_1_$special_fail/0'.
13855'known/1_1_$special_\\+/1___1__0'(A, B) :-
13856    (   'chr newvia_1'(A, C)
13857    ->  get_attr(C, guard_entailment, D),
13858        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
13859    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
13860                  E)
13861    ),
13862    !,
13863    (   var(B)
13864    ->  B=suspension(F, not_stored_yet, 0, _, A),
13865        'chr gen_id'(F)
13866    ;   true
13867    ),
13868    'known/1_1_$special_\\+/1___1__0__0__33'(E, A, B).
13869'known/1_1_$special_\\+/1___1__0__0__33'([], A, B) :-
13870    'known/1_1_$special_\\+/1___1__1'(A, B).
13871'known/1_1_$special_\\+/1___1__0__0__33'([A|B], C, D) :-
13872    (   A=suspension(_, active, _, _, E, F),
13873        nonvar(E),
13874        E=(\+G),
13875        nonvar(G),
13876        G=(\+H),
13877        H==C
13878    ->  A=suspension(_, _, _, _, I, J),
13879        setarg(2, A, removed),
13880        term_variables(term(I, J), K),
13881        ( arg(4, A, L),
13882          (   var(L)
13883          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
13884                        M),
13885              M=[_|N],
13886              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
13887                       N),
13888              (   N=[O|_]
13889              ->  setarg(4, O, _)
13890              ;   true
13891              )
13892          ;   L=[_, _|N],
13893              setarg(2, L, N),
13894              (   N=[O|_]
13895              ->  setarg(4, O, L)
13896              ;   true
13897              )
13898          )
13899        ),
13900        'detach_known/1_1_$special_;/2___2'(K, A),
13901        arg(2, D, P),
13902        setarg(2, D, active),
13903        ( arg(3, D, Q),
13904          R is Q+1,
13905          setarg(3, D, R)
13906        ),
13907        (   P==not_stored_yet
13908        ->  D=suspension(_, _, _, _, S),
13909            term_variables(S, T),
13910            'chr none_locked'(T),
13911            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13912                      U),
13913            V=[D|U],
13914            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13915                     V),
13916            (   U=[W|_]
13917            ->  setarg(4, W, V)
13918            ;   true
13919            ),
13920            'attach_known/1_1_$special_\\+/1___1'(T, D)
13921        ;   true
13922        ),
13923        known(F),
13924        (   D=suspension(_, active, R, _, _)
13925        ->  setarg(2, D, inactive),
13926            'known/1_1_$special_\\+/1___1__0__0__33'(B, C, D)
13927        ;   true
13928        )
13929    ;   'known/1_1_$special_\\+/1___1__0__0__33'(B, C, D)
13930    ).
13931'known/1_1_$special_\\+/1___1__0'(A, B) :-
13932    (   var(B)
13933    ->  B=suspension(C, not_stored_yet, 0, _, A),
13934        'chr gen_id'(C)
13935    ;   true
13936    ),
13937    'known/1_1_$special_\\+/1___1__1'(A, B).
13938'known/1_1_$special_\\+/1___1__1'(A, B) :-
13939    (   'chr newvia_1'(A, C)
13940    ->  get_attr(C, guard_entailment, D),
13941        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
13942    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
13943                  E)
13944    ),
13945    !,
13946    'known/1_1_$special_\\+/1___1__1__0__34'(E, A, B).
13947'known/1_1_$special_\\+/1___1__1__0__34'([], A, B) :-
13948    'known/1_1_$special_\\+/1___1__2'(A, B).
13949'known/1_1_$special_\\+/1___1__1__0__34'([A|B], C, D) :-
13950    (   A=suspension(_, active, _, _, E, F),
13951        nonvar(E),
13952        E=(G, _),
13953        nonvar(G),
13954        G=(\+H),
13955        nonvar(H),
13956        H=(\+I),
13957        I==C
13958    ->  A=suspension(_, _, _, _, J, K),
13959        setarg(2, A, removed),
13960        term_variables(term(J, K), L),
13961        ( arg(4, A, M),
13962          (   var(M)
13963          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
13964                        N),
13965              N=[_|O],
13966              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
13967                       O),
13968              (   O=[P|_]
13969              ->  setarg(4, P, _)
13970              ;   true
13971              )
13972          ;   M=[_, _|O],
13973              setarg(2, M, O),
13974              (   O=[P|_]
13975              ->  setarg(4, P, M)
13976              ;   true
13977              )
13978          )
13979        ),
13980        'detach_known/1_1_$special_;/2___2'(L, A),
13981        arg(2, D, Q),
13982        setarg(2, D, active),
13983        ( arg(3, D, R),
13984          S is R+1,
13985          setarg(3, D, S)
13986        ),
13987        (   Q==not_stored_yet
13988        ->  D=suspension(_, _, _, _, T),
13989            term_variables(T, U),
13990            'chr none_locked'(U),
13991            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13992                      V),
13993            W=[D|V],
13994            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13995                     W),
13996            (   V=[X|_]
13997            ->  setarg(4, X, W)
13998            ;   true
13999            ),
14000            'attach_known/1_1_$special_\\+/1___1'(U, D)
14001        ;   true
14002        ),
14003        known(F),
14004        (   D=suspension(_, active, S, _, _)
14005        ->  setarg(2, D, inactive),
14006            'known/1_1_$special_\\+/1___1__1__0__34'(B, C, D)
14007        ;   true
14008        )
14009    ;   'known/1_1_$special_\\+/1___1__1__0__34'(B, C, D)
14010    ).
14011'known/1_1_$special_\\+/1___1__1'(A, B) :-
14012    'known/1_1_$special_\\+/1___1__2'(A, B).
14013'known/1_1_$special_\\+/1___1__2'(A, B) :-
14014    (   'chr newvia_1'(A, C)
14015    ->  get_attr(C, guard_entailment, D),
14016        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14017    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14018                  E)
14019    ),
14020    !,
14021    'known/1_1_$special_\\+/1___1__2__0__35'(E, A, B).
14022'known/1_1_$special_\\+/1___1__2__0__35'([], A, B) :-
14023    'known/1_1_$special_\\+/1___1__3'(A, B).
14024'known/1_1_$special_\\+/1___1__2__0__35'([A|B], C, D) :-
14025    (   A=suspension(_, active, _, _, E, F),
14026        E==C
14027    ->  A=suspension(_, _, _, _, G, H),
14028        setarg(2, A, removed),
14029        term_variables(term(G, H), I),
14030        ( arg(4, A, J),
14031          (   var(J)
14032          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14033                        K),
14034              K=[_|L],
14035              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14036                       L),
14037              (   L=[M|_]
14038              ->  setarg(4, M, _)
14039              ;   true
14040              )
14041          ;   J=[_, _|L],
14042              setarg(2, J, L),
14043              (   L=[M|_]
14044              ->  setarg(4, M, J)
14045              ;   true
14046              )
14047          )
14048        ),
14049        'detach_known/1_1_$special_;/2___2'(I, A),
14050        arg(2, D, N),
14051        setarg(2, D, active),
14052        ( arg(3, D, O),
14053          P is O+1,
14054          setarg(3, D, P)
14055        ),
14056        (   N==not_stored_yet
14057        ->  D=suspension(_, _, _, _, Q),
14058            term_variables(Q, R),
14059            'chr none_locked'(R),
14060            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14061                      S),
14062            T=[D|S],
14063            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14064                     T),
14065            (   S=[U|_]
14066            ->  setarg(4, U, T)
14067            ;   true
14068            ),
14069            'attach_known/1_1_$special_\\+/1___1'(R, D)
14070        ;   true
14071        ),
14072        known(F),
14073        (   D=suspension(_, active, P, _, _)
14074        ->  setarg(2, D, inactive),
14075            'known/1_1_$special_\\+/1___1__2__0__35'(B, C, D)
14076        ;   true
14077        )
14078    ;   'known/1_1_$special_\\+/1___1__2__0__35'(B, C, D)
14079    ).
14080'known/1_1_$special_\\+/1___1__2'(A, B) :-
14081    'known/1_1_$special_\\+/1___1__3'(A, B).
14082'known/1_1_$special_\\+/1___1__3'(A, B) :-
14083    (   'chr newvia_1'(A, C)
14084    ->  get_attr(C, guard_entailment, D),
14085        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14086    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14087                  E)
14088    ),
14089    !,
14090    'known/1_1_$special_\\+/1___1__3__0__36'(E, A, B).
14091'known/1_1_$special_\\+/1___1__3__0__36'([], A, B) :-
14092    'known/1_1_$special_\\+/1___1__4'(A, B).
14093'known/1_1_$special_\\+/1___1__3__0__36'([A|B], C, D) :-
14094    (   A=suspension(_, active, _, _, E, F),
14095        nonvar(E),
14096        E=(G, _),
14097        G==C
14098    ->  A=suspension(_, _, _, _, H, I),
14099        setarg(2, A, removed),
14100        term_variables(term(H, I), J),
14101        ( arg(4, A, K),
14102          (   var(K)
14103          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14104                        L),
14105              L=[_|M],
14106              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14107                       M),
14108              (   M=[N|_]
14109              ->  setarg(4, N, _)
14110              ;   true
14111              )
14112          ;   K=[_, _|M],
14113              setarg(2, K, M),
14114              (   M=[N|_]
14115              ->  setarg(4, N, K)
14116              ;   true
14117              )
14118          )
14119        ),
14120        'detach_known/1_1_$special_;/2___2'(J, A),
14121        arg(2, D, O),
14122        setarg(2, D, active),
14123        ( arg(3, D, P),
14124          Q is P+1,
14125          setarg(3, D, Q)
14126        ),
14127        (   O==not_stored_yet
14128        ->  D=suspension(_, _, _, _, R),
14129            term_variables(R, S),
14130            'chr none_locked'(S),
14131            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14132                      T),
14133            U=[D|T],
14134            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14135                     U),
14136            (   T=[V|_]
14137            ->  setarg(4, V, U)
14138            ;   true
14139            ),
14140            'attach_known/1_1_$special_\\+/1___1'(S, D)
14141        ;   true
14142        ),
14143        known(F),
14144        (   D=suspension(_, active, Q, _, _)
14145        ->  setarg(2, D, inactive),
14146            'known/1_1_$special_\\+/1___1__3__0__36'(B, C, D)
14147        ;   true
14148        )
14149    ;   'known/1_1_$special_\\+/1___1__3__0__36'(B, C, D)
14150    ).
14151'known/1_1_$special_\\+/1___1__3'(A, B) :-
14152    'known/1_1_$special_\\+/1___1__4'(A, B).
14153'known/1_1_$special_\\+/1___1__4'(_, A) :-
14154    arg(2, A, B),
14155    setarg(2, A, active),
14156    arg(3, A, C),
14157    D is C+1,
14158    setarg(3, A, D),
14159    (   B==not_stored_yet
14160    ->  A=suspension(_, _, _, _, E),
14161        term_variables(E, F),
14162        'chr none_locked'(F),
14163        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14164                  G),
14165        H=[A|G],
14166        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14167                 H),
14168        (   G=[I|_]
14169        ->  setarg(4, I, H)
14170        ;   true
14171        ),
14172        'attach_known/1_1_$special_\\+/1___1'(F, A)
14173    ;   true
14174    ).
14175'known/1_1_$special_functor/3'(A, B, C) :-
14176    'known/1_1_$special_functor/3___3__0'(A, B, C, _).
14177'known/1_1_$special_functor/3___3__0'(A, B, C, D) :-
14178    (   'chr newvia'([A, B, C], E)
14179    ->  get_attr(E, guard_entailment, F),
14180        F=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, G, _, _, _, _, _, _)
14181    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14182                  G)
14183    ),
14184    member(H, G),
14185    H=suspension(_, active, _, _, I, J, K),
14186    I==A,
14187    J==B,
14188    K==C,
14189    !,
14190    (   var(D)
14191    ->  true
14192    ;   D=suspension(_, L, _, _, M, N, O),
14193        setarg(2, D, removed),
14194        (   L==not_stored_yet
14195        ->  P=[]
14196        ;   term_variables(term(M, N, O), P),
14197            arg(4, D, Q),
14198            (   var(Q)
14199            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14200                          R),
14201                R=[_|S],
14202                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14203                         S),
14204                (   S=[T|_]
14205                ->  setarg(4, T, _)
14206                ;   true
14207                )
14208            ;   Q=[_, _|S],
14209                setarg(2, Q, S),
14210                (   S=[T|_]
14211                ->  setarg(4, T, Q)
14212                ;   true
14213                )
14214            ),
14215            'detach_known/1_1_$special_functor/3___3'(P, D)
14216        )
14217    ).
14218'known/1_1_$special_functor/3___3__0'(_, _, _, A) :-
14219    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
14220              B),
14221    member(C, B),
14222    C=suspension(_, active, _),
14223    !,
14224    (   var(A)
14225    ->  true
14226    ;   A=suspension(_, D, _, _, E, F, G),
14227        setarg(2, A, removed),
14228        (   D==not_stored_yet
14229        ->  H=[]
14230        ;   term_variables(term(E, F, G), H),
14231            arg(4, A, I),
14232            (   var(I)
14233            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14234                          J),
14235                J=[_|K],
14236                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14237                         K),
14238                (   K=[L|_]
14239                ->  setarg(4, L, _)
14240                ;   true
14241                )
14242            ;   I=[_, _|K],
14243                setarg(2, I, K),
14244                (   K=[L|_]
14245                ->  setarg(4, L, I)
14246                ;   true
14247                )
14248            ),
14249            'detach_known/1_1_$special_functor/3___3'(H, A)
14250        )
14251    ).
14252'known/1_1_$special_functor/3___3__0'(A, B, C, D) :-
14253    ground(C),
14254    ground(B),
14255    var(A),
14256    nb_getval('$chr_store_global_list_guard_entailment____variables___1',
14257              E),
14258    member(F, E),
14259    F=suspension(_, active, _, G),
14260    !,
14261    F=suspension(_, _, _, H),
14262    setarg(2, F, removed),
14263    term_variables(H, I),
14264    arg(3, F, J),
14265    (   var(J)
14266    ->  nb_getval('$chr_store_global_list_guard_entailment____variables___1',
14267                  K),
14268        K=[_|L],
14269        b_setval('$chr_store_global_list_guard_entailment____variables___1',
14270                 L),
14271        (   L=[M|_]
14272        ->  setarg(3, M, _)
14273        ;   true
14274        )
14275    ;   J=[_, _|L],
14276        setarg(2, J, L),
14277        (   L=[M|_]
14278        ->  setarg(3, M, J)
14279        ;   true
14280        )
14281    ),
14282    detach_variables___1(I, F),
14283    (   var(D)
14284    ->  true
14285    ;   D=suspension(_, N, _, _, O, P, Q),
14286        setarg(2, D, removed),
14287        (   N==not_stored_yet
14288        ->  R=[]
14289        ;   term_variables(term(O, P, Q), R),
14290            arg(4, D, S),
14291            (   var(S)
14292            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14293                          T),
14294                T=[_|U],
14295                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14296                         U),
14297                (   U=[V|_]
14298                ->  setarg(4, V, _)
14299                ;   true
14300                )
14301            ;   S=[_, _|U],
14302                setarg(2, S, U),
14303                (   U=[V|_]
14304                ->  setarg(4, V, S)
14305                ;   true
14306                )
14307            ),
14308            'detach_known/1_1_$special_functor/3___3'(R, D)
14309        )
14310    ),
14311    functor(A, B, C),
14312    A=..[_|W],
14313    append(W, G, X),
14314    variables(X).
14315'known/1_1_$special_functor/3___3__0'(A, B, C, D) :-
14316    nonvar(A),
14317    'chr lock'(A),
14318    'chr lock'(B),
14319    'chr lock'(C),
14320    \+ functor(A, B, C),
14321    'chr unlock'(A),
14322    'chr unlock'(B),
14323    'chr unlock'(C),
14324    !,
14325    (   var(D)
14326    ->  true
14327    ;   D=suspension(_, E, _, _, F, G, H),
14328        setarg(2, D, removed),
14329        (   E==not_stored_yet
14330        ->  I=[]
14331        ;   term_variables(term(F, G, H), I),
14332            arg(4, D, J),
14333            (   var(J)
14334            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14335                          K),
14336                K=[_|L],
14337                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14338                         L),
14339                (   L=[M|_]
14340                ->  setarg(4, M, _)
14341                ;   true
14342                )
14343            ;   J=[_, _|L],
14344                setarg(2, J, L),
14345                (   L=[M|_]
14346                ->  setarg(4, M, J)
14347                ;   true
14348                )
14349            ),
14350            'detach_known/1_1_$special_functor/3___3'(I, D)
14351        )
14352    ),
14353    'known/1_1_$special_fail/0'.
14354'known/1_1_$special_functor/3___3__0'(A, B, C, D) :-
14355    nonvar(C),
14356    nonvar(B),
14357    (   'chr newvia_1'(A, E)
14358    ->  get_attr(E, guard_entailment, F),
14359        F=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, G, _, _, _, _, _, _)
14360    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14361                  G)
14362    ),
14363    member(H, G),
14364    H=suspension(_, active, _, _, I, J, K),
14365    I==A,
14366    nonvar(K),
14367    nonvar(J),
14368    !,
14369    H=suspension(_, _, _, _, L, M, N),
14370    setarg(2, H, removed),
14371    term_variables(term(L, M, N), O),
14372    arg(4, H, P),
14373    (   var(P)
14374    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14375                  Q),
14376        Q=[_|R],
14377        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14378                 R),
14379        (   R=[S|_]
14380        ->  setarg(4, S, _)
14381        ;   true
14382        )
14383    ;   P=[_, _|R],
14384        setarg(2, P, R),
14385        (   R=[S|_]
14386        ->  setarg(4, S, P)
14387        ;   true
14388        )
14389    ),
14390    'detach_known/1_1_$special_functor/3___3'(O, H),
14391    (   var(D)
14392    ->  true
14393    ;   D=suspension(_, T, _, _, U, V, W),
14394        setarg(2, D, removed),
14395        (   T==not_stored_yet
14396        ->  X=[]
14397        ;   term_variables(term(U, V, W), X),
14398            arg(4, D, Y),
14399            (   var(Y)
14400            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14401                          Z),
14402                Z=[_|A1],
14403                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14404                         A1),
14405                (   A1=[B1|_]
14406                ->  setarg(4, B1, _)
14407                ;   true
14408                )
14409            ;   Y=[_, _|A1],
14410                setarg(2, Y, A1),
14411                (   A1=[B1|_]
14412                ->  setarg(4, B1, Y)
14413                ;   true
14414                )
14415            ),
14416            'detach_known/1_1_$special_functor/3___3'(X, D)
14417        )
14418    ),
14419    'known/1_1_$special_fail/0'.
14420'known/1_1_$special_functor/3___3__0'(A, B, C, D) :-
14421    (   'chr newvia'([A, B, C], E)
14422    ->  get_attr(E, guard_entailment, F),
14423        F=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, G, _, _, _, _, _, _, _)
14424    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14425                  G)
14426    ),
14427    member(H, G),
14428    H=suspension(_, active, _, _, I),
14429    nonvar(I),
14430    I=functor(J, K, L),
14431    J==A,
14432    K==B,
14433    L==C,
14434    !,
14435    H=suspension(_, _, _, _, M),
14436    setarg(2, H, removed),
14437    term_variables(M, N),
14438    arg(4, H, O),
14439    (   var(O)
14440    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14441                  P),
14442        P=[_|Q],
14443        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14444                 Q),
14445        (   Q=[R|_]
14446        ->  setarg(4, R, _)
14447        ;   true
14448        )
14449    ;   O=[_, _|Q],
14450        setarg(2, O, Q),
14451        (   Q=[R|_]
14452        ->  setarg(4, R, O)
14453        ;   true
14454        )
14455    ),
14456    'detach_known/1_1_$special_\\+/1___1'(N, H),
14457    (   var(D)
14458    ->  true
14459    ;   D=suspension(_, S, _, _, T, U, V),
14460        setarg(2, D, removed),
14461        (   S==not_stored_yet
14462        ->  W=[]
14463        ;   term_variables(term(T, U, V), W),
14464            arg(4, D, X),
14465            (   var(X)
14466            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14467                          Y),
14468                Y=[_|Z],
14469                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14470                         Z),
14471                (   Z=[A1|_]
14472                ->  setarg(4, A1, _)
14473                ;   true
14474                )
14475            ;   X=[_, _|Z],
14476                setarg(2, X, Z),
14477                (   Z=[A1|_]
14478                ->  setarg(4, A1, X)
14479                ;   true
14480                )
14481            ),
14482            'detach_known/1_1_$special_functor/3___3'(W, D)
14483        )
14484    ),
14485    'known/1_1_$special_fail/0'.
14486'known/1_1_$special_functor/3___3__0'(A, B, C, D) :-
14487    (   'chr newvia'([A, B, C], E)
14488    ->  get_attr(E, guard_entailment, F),
14489        F=v(_, _, _, G, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14490    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14491                  G)
14492    ),
14493    !,
14494    (   var(D)
14495    ->  D=suspension(H, not_stored_yet, 0, _, A, B, C),
14496        'chr gen_id'(H)
14497    ;   true
14498    ),
14499    'known/1_1_$special_functor/3___3__0__0__10'(G,
14500                                                 A,
14501                                                 B,
14502                                                 C,
14503                                                 D).
14504'known/1_1_$special_functor/3___3__0__0__10'([], A, B, C, D) :-
14505    'known/1_1_$special_functor/3___3__1'(A, B, C, D).
14506'known/1_1_$special_functor/3___3__0__0__10'([A|B], C, D, E, F) :-
14507    (   A=suspension(_, active, _, _, G, H),
14508        nonvar(G),
14509        G=(\+I),
14510        nonvar(I),
14511        I=functor(J, K, L),
14512        J==C,
14513        K==D,
14514        L==E
14515    ->  A=suspension(_, _, _, _, M, N),
14516        setarg(2, A, removed),
14517        term_variables(term(M, N), O),
14518        ( arg(4, A, P),
14519          (   var(P)
14520          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14521                        Q),
14522              Q=[_|R],
14523              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14524                       R),
14525              (   R=[S|_]
14526              ->  setarg(4, S, _)
14527              ;   true
14528              )
14529          ;   P=[_, _|R],
14530              setarg(2, P, R),
14531              (   R=[S|_]
14532              ->  setarg(4, S, P)
14533              ;   true
14534              )
14535          )
14536        ),
14537        'detach_known/1_1_$special_;/2___2'(O, A),
14538        arg(2, F, T),
14539        setarg(2, F, active),
14540        ( arg(3, F, U),
14541          V is U+1,
14542          setarg(3, F, V)
14543        ),
14544        (   T==not_stored_yet
14545        ->  F=suspension(_, _, _, _, W, X, Y),
14546            term_variables(term(W, X, Y), Z),
14547            'chr none_locked'(Z),
14548            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14549                      A1),
14550            B1=[F|A1],
14551            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14552                     B1),
14553            (   A1=[C1|_]
14554            ->  setarg(4, C1, B1)
14555            ;   true
14556            ),
14557            'attach_known/1_1_$special_functor/3___3'(Z, F)
14558        ;   true
14559        ),
14560        known(H),
14561        (   F=suspension(_, active, V, _, _, _, _)
14562        ->  setarg(2, F, inactive),
14563            'known/1_1_$special_functor/3___3__0__0__10'(B,
14564                                                         C,
14565                                                         D,
14566                                                         E,
14567                                                         F)
14568        ;   true
14569        )
14570    ;   'known/1_1_$special_functor/3___3__0__0__10'(B,
14571                                                     C,
14572                                                     D,
14573                                                     E,
14574                                                     F)
14575    ).
14576'known/1_1_$special_functor/3___3__0'(A, B, C, D) :-
14577    (   var(D)
14578    ->  D=suspension(E, not_stored_yet, 0, _, A, B, C),
14579        'chr gen_id'(E)
14580    ;   true
14581    ),
14582    'known/1_1_$special_functor/3___3__1'(A, B, C, D).
14583'known/1_1_$special_functor/3___3__1'(A, B, C, D) :-
14584    (   'chr newvia'([A, B, C], E)
14585    ->  get_attr(E, guard_entailment, F),
14586        F=v(_, _, _, G, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14587    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14588                  G)
14589    ),
14590    !,
14591    'known/1_1_$special_functor/3___3__1__0__11'(G,
14592                                                 A,
14593                                                 B,
14594                                                 C,
14595                                                 D).
14596'known/1_1_$special_functor/3___3__1__0__11'([], A, B, C, D) :-
14597    'known/1_1_$special_functor/3___3__2'(A, B, C, D).
14598'known/1_1_$special_functor/3___3__1__0__11'([A|B], C, D, E, F) :-
14599    (   A=suspension(_, active, _, _, G, H),
14600        nonvar(G),
14601        G=(I, _),
14602        nonvar(I),
14603        I=(\+J),
14604        nonvar(J),
14605        J=functor(K, L, M),
14606        K==C,
14607        L==D,
14608        M==E
14609    ->  A=suspension(_, _, _, _, N, O),
14610        setarg(2, A, removed),
14611        term_variables(term(N, O), P),
14612        ( arg(4, A, Q),
14613          (   var(Q)
14614          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14615                        R),
14616              R=[_|S],
14617              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14618                       S),
14619              (   S=[T|_]
14620              ->  setarg(4, T, _)
14621              ;   true
14622              )
14623          ;   Q=[_, _|S],
14624              setarg(2, Q, S),
14625              (   S=[T|_]
14626              ->  setarg(4, T, Q)
14627              ;   true
14628              )
14629          )
14630        ),
14631        'detach_known/1_1_$special_;/2___2'(P, A),
14632        arg(2, F, U),
14633        setarg(2, F, active),
14634        ( arg(3, F, V),
14635          W is V+1,
14636          setarg(3, F, W)
14637        ),
14638        (   U==not_stored_yet
14639        ->  F=suspension(_, _, _, _, X, Y, Z),
14640            term_variables(term(X, Y, Z), A1),
14641            'chr none_locked'(A1),
14642            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14643                      B1),
14644            C1=[F|B1],
14645            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14646                     C1),
14647            (   B1=[D1|_]
14648            ->  setarg(4, D1, C1)
14649            ;   true
14650            ),
14651            'attach_known/1_1_$special_functor/3___3'(A1, F)
14652        ;   true
14653        ),
14654        known(H),
14655        (   F=suspension(_, active, W, _, _, _, _)
14656        ->  setarg(2, F, inactive),
14657            'known/1_1_$special_functor/3___3__1__0__11'(B,
14658                                                         C,
14659                                                         D,
14660                                                         E,
14661                                                         F)
14662        ;   true
14663        )
14664    ;   'known/1_1_$special_functor/3___3__1__0__11'(B,
14665                                                     C,
14666                                                     D,
14667                                                     E,
14668                                                     F)
14669    ).
14670'known/1_1_$special_functor/3___3__1'(A, B, C, D) :-
14671    'known/1_1_$special_functor/3___3__2'(A, B, C, D).
14672'known/1_1_$special_functor/3___3__2'(A, B, C, D) :-
14673    (   'chr newvia_1'(A, E)
14674    ->  get_attr(E, guard_entailment, F),
14675        F=v(_, _, _, G, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14676    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14677                  G)
14678    ),
14679    !,
14680    'known/1_1_$special_functor/3___3__2__0__12'(G,
14681                                                 A,
14682                                                 B,
14683                                                 C,
14684                                                 D).
14685'known/1_1_$special_functor/3___3__2__0__12'([], A, B, C, D) :-
14686    'known/1_1_$special_functor/3___3__3'(A, B, C, D).
14687'known/1_1_$special_functor/3___3__2__0__12'([A|B], C, D, E, F) :-
14688    (   A=suspension(_, active, _, _, G, _),
14689        nonvar(G),
14690        G=(\+H),
14691        nonvar(H),
14692        H=functor(I, _, _),
14693        I==C
14694    ->  A=suspension(_, _, _, _, J, K),
14695        setarg(2, A, removed),
14696        term_variables(term(J, K), L),
14697        ( arg(4, A, M),
14698          (   var(M)
14699          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14700                        N),
14701              N=[_|O],
14702              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14703                       O),
14704              (   O=[P|_]
14705              ->  setarg(4, P, _)
14706              ;   true
14707              )
14708          ;   M=[_, _|O],
14709              setarg(2, M, O),
14710              (   O=[P|_]
14711              ->  setarg(4, P, M)
14712              ;   true
14713              )
14714          )
14715        ),
14716        'detach_known/1_1_$special_;/2___2'(L, A),
14717        'known/1_1_$special_functor/3___3__2__0__12'(B,
14718                                                     C,
14719                                                     D,
14720                                                     E,
14721                                                     F)
14722    ;   'known/1_1_$special_functor/3___3__2__0__12'(B,
14723                                                     C,
14724                                                     D,
14725                                                     E,
14726                                                     F)
14727    ).
14728'known/1_1_$special_functor/3___3__2'(A, B, C, D) :-
14729    'known/1_1_$special_functor/3___3__3'(A, B, C, D).
14730'known/1_1_$special_functor/3___3__3'(_, _, _, A) :-
14731    arg(2, A, B),
14732    setarg(2, A, active),
14733    arg(3, A, C),
14734    D is C+1,
14735    setarg(3, A, D),
14736    (   B==not_stored_yet
14737    ->  A=suspension(_, _, _, _, E, F, G),
14738        term_variables(term(E, F, G), H),
14739        'chr none_locked'(H),
14740        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14741                  I),
14742        J=[A|I],
14743        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14744                 J),
14745        (   I=[K|_]
14746        ->  setarg(4, K, J)
14747        ;   true
14748        ),
14749        'attach_known/1_1_$special_functor/3___3'(H, A)
14750    ;   true
14751    ).
14752'known/1_1_$special_\\=/2'(A, B) :-
14753    'known/1_1_$special_\\=/2___2__0'(A, B, _).
14754'known/1_1_$special_\\=/2___2__0'(A, B, C) :-
14755    (   'chr newvia_2'(A, B, D)
14756    ->  get_attr(D, guard_entailment, E),
14757        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _)
14758    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
14759                  F)
14760    ),
14761    member(G, F),
14762    G=suspension(_, active, _, _, _, H, I),
14763    H==A,
14764    I==B,
14765    !,
14766    (   var(C)
14767    ->  true
14768    ;   C=suspension(_, J, _, _, _, K, L),
14769        setarg(2, C, removed),
14770        (   J==not_stored_yet
14771        ->  M=[]
14772        ;   term_variables(term(K, L), M),
14773            arg(5, C, N),
14774            (   var(N)
14775            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
14776                          O),
14777                O=[_|P],
14778                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
14779                         P),
14780                (   P=[Q|_]
14781                ->  setarg(5, Q, _)
14782                ;   true
14783                )
14784            ;   N=[_, _|P],
14785                setarg(2, N, P),
14786                (   P=[Q|_]
14787                ->  setarg(5, Q, N)
14788                ;   true
14789                )
14790            ),
14791            'detach_known/1_1_$special_\\=/2___2'(M, C)
14792        )
14793    ).
14794'known/1_1_$special_\\=/2___2__0'(_, _, A) :-
14795    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
14796              B),
14797    member(C, B),
14798    C=suspension(_, active, _),
14799    !,
14800    (   var(A)
14801    ->  true
14802    ;   A=suspension(_, D, _, _, _, E, F),
14803        setarg(2, A, removed),
14804        (   D==not_stored_yet
14805        ->  G=[]
14806        ;   term_variables(term(E, F), G),
14807            arg(5, A, H),
14808            (   var(H)
14809            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
14810                          I),
14811                I=[_|J],
14812                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
14813                         J),
14814                (   J=[K|_]
14815                ->  setarg(5, K, _)
14816                ;   true
14817                )
14818            ;   H=[_, _|J],
14819                setarg(2, H, J),
14820                (   J=[K|_]
14821                ->  setarg(5, K, H)
14822                ;   true
14823                )
14824            ),
14825            'detach_known/1_1_$special_\\=/2___2'(G, A)
14826        )
14827    ).
14828'known/1_1_$special_\\=/2___2__0'(A, B, C) :-
14829    ground(B),
14830    ground(A),
14831    'chr lock'(A),
14832    'chr lock'(B),
14833    A=B,
14834    'chr unlock'(A),
14835    'chr unlock'(B),
14836    !,
14837    (   var(C)
14838    ->  true
14839    ;   C=suspension(_, D, _, _, _, E, F),
14840        setarg(2, C, removed),
14841        (   D==not_stored_yet
14842        ->  G=[]
14843        ;   term_variables(term(E, F), G),
14844            arg(5, C, H),
14845            (   var(H)
14846            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
14847                          I),
14848                I=[_|J],
14849                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
14850                         J),
14851                (   J=[K|_]
14852                ->  setarg(5, K, _)
14853                ;   true
14854                )
14855            ;   H=[_, _|J],
14856                setarg(2, H, J),
14857                (   J=[K|_]
14858                ->  setarg(5, K, H)
14859                ;   true
14860                )
14861            ),
14862            'detach_known/1_1_$special_\\=/2___2'(G, C)
14863        )
14864    ),
14865    'known/1_1_$special_fail/0'.
14866'known/1_1_$special_\\=/2___2__0'(A, B, C) :-
14867    B==A,
14868    !,
14869    (   var(C)
14870    ->  true
14871    ;   C=suspension(_, D, _, _, _, E, F),
14872        setarg(2, C, removed),
14873        (   D==not_stored_yet
14874        ->  G=[]
14875        ;   term_variables(term(E, F), G),
14876            arg(5, C, H),
14877            (   var(H)
14878            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
14879                          I),
14880                I=[_|J],
14881                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
14882                         J),
14883                (   J=[K|_]
14884                ->  setarg(5, K, _)
14885                ;   true
14886                )
14887            ;   H=[_, _|J],
14888                setarg(2, H, J),
14889                (   J=[K|_]
14890                ->  setarg(5, K, H)
14891                ;   true
14892                )
14893            ),
14894            'detach_known/1_1_$special_\\=/2___2'(G, C)
14895        )
14896    ),
14897    'known/1_1_$special_fail/0'.
14898'known/1_1_$special_\\=/2___2__0'(A, B, C) :-
14899    nonvar(B),
14900    (   var(A),
14901        'chr lock'(B),
14902        functor(B, D, E),
14903        E>0,
14904        'chr unlock'(B),
14905        !,
14906        (   var(C)
14907        ->  true
14908        ;   C=suspension(_, F, _, _, _, G, H),
14909            setarg(2, C, removed),
14910            (   F==not_stored_yet
14911            ->  I=[]
14912            ;   term_variables(term(G, H), I),
14913                arg(5, C, J),
14914                (   var(J)
14915                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
14916                              K),
14917                    K=[_|L],
14918                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
14919                             L),
14920                    (   L=[M|_]
14921                    ->  setarg(5, M, _)
14922                    ;   true
14923                    )
14924                ;   J=[_, _|L],
14925                    setarg(2, J, L),
14926                    (   L=[M|_]
14927                    ->  setarg(5, M, J)
14928                    ;   true
14929                    )
14930                ),
14931                'detach_known/1_1_$special_\\=/2___2'(I, C)
14932            )
14933        ),
14934        length(N, E),
14935        B=..[D|O],
14936        P=..[D|N],
14937        add_args_nunif(O, N, Q),
14938        R=(\+functor(A, D, E);A=P, Q),
14939        known(R)
14940    ;   nonvar(A),
14941        'chr lock'(A),
14942        functor(A, S, T),
14943        'chr unlock'(A),
14944        !,
14945        (   var(C)
14946        ->  true
14947        ;   C=suspension(_, U, _, _, _, V, W),
14948            setarg(2, C, removed),
14949            (   U==not_stored_yet
14950            ->  X=[]
14951            ;   term_variables(term(V, W), X),
14952                arg(5, C, Y),
14953                (   var(Y)
14954                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
14955                              Z),
14956                    Z=[_|A1],
14957                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
14958                             A1),
14959                    (   A1=[B1|_]
14960                    ->  setarg(5, B1, _)
14961                    ;   true
14962                    )
14963                ;   Y=[_, _|A1],
14964                    setarg(2, Y, A1),
14965                    (   A1=[B1|_]
14966                    ->  setarg(5, B1, Y)
14967                    ;   true
14968                    )
14969                ),
14970                'detach_known/1_1_$special_\\=/2___2'(X, C)
14971            )
14972        ),
14973        (   functor(B, S, T)
14974        ->  A=..[S|C1],
14975            B=..[S|D1],
14976            add_args_nunif(C1, D1, E1),
14977            known(E1)
14978        ;   true
14979        )
14980    ).
14981'known/1_1_$special_\\=/2___2__0'(A, B, C) :-
14982    (   var(C)
14983    ->  C=suspension(D, not_stored_yet, t, 0, _, A, B),
14984        'chr gen_id'(D)
14985    ;   true
14986    ),
14987    (   '$novel_production'(C, 182),
14988        !,
14989        '$extend_history'(C, 182),
14990        arg(2, C, E),
14991        setarg(2, C, active),
14992        arg(4, C, F),
14993        G is F+1,
14994        setarg(4, C, G),
14995        (   E==not_stored_yet
14996        ->  C=suspension(_, _, _, _, _, H, I),
14997            term_variables(term(H, I), J),
14998            'chr none_locked'(J),
14999            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15000                      K),
15001            L=[C|K],
15002            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15003                     L),
15004            (   K=[M|_]
15005            ->  setarg(5, M, L)
15006            ;   true
15007            ),
15008            'attach_known/1_1_$special_\\=/2___2'(J, C)
15009        ;   true
15010        ),
15011        'known/1_1_$special_\\=/2'(B, A),
15012        (   C=suspension(_, active, _, G, _, _, _)
15013        ->  setarg(2, C, inactive),
15014            'known/1_1_$special_\\=/2___2__1'(A, B, C)
15015        ;   true
15016        )
15017    ;   'known/1_1_$special_\\=/2___2__1'(A, B, C)
15018    ).
15019'known/1_1_$special_\\=/2___2__1'(A, B, C) :-
15020    (   'chr newvia_2'(A, B, D)
15021    ->  get_attr(D, guard_entailment, E),
15022        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _, _)
15023    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15024                  F)
15025    ),
15026    member(G, F),
15027    G=suspension(_, active, _, _, H),
15028    nonvar(H),
15029    H=(I\=J),
15030    I==A,
15031    J==B,
15032    !,
15033    G=suspension(_, _, _, _, K),
15034    setarg(2, G, removed),
15035    term_variables(K, L),
15036    arg(4, G, M),
15037    (   var(M)
15038    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15039                  N),
15040        N=[_|O],
15041        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15042                 O),
15043        (   O=[P|_]
15044        ->  setarg(4, P, _)
15045        ;   true
15046        )
15047    ;   M=[_, _|O],
15048        setarg(2, M, O),
15049        (   O=[P|_]
15050        ->  setarg(4, P, M)
15051        ;   true
15052        )
15053    ),
15054    'detach_known/1_1_$special_\\+/1___1'(L, G),
15055    (   var(C)
15056    ->  true
15057    ;   C=suspension(_, Q, _, _, _, R, S),
15058        setarg(2, C, removed),
15059        (   Q==not_stored_yet
15060        ->  T=[]
15061        ;   term_variables(term(R, S), T),
15062            arg(5, C, U),
15063            (   var(U)
15064            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15065                          V),
15066                V=[_|W],
15067                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15068                         W),
15069                (   W=[X|_]
15070                ->  setarg(5, X, _)
15071                ;   true
15072                )
15073            ;   U=[_, _|W],
15074                setarg(2, U, W),
15075                (   W=[X|_]
15076                ->  setarg(5, X, U)
15077                ;   true
15078                )
15079            ),
15080            'detach_known/1_1_$special_\\=/2___2'(T, C)
15081        )
15082    ),
15083    'known/1_1_$special_fail/0'.
15084'known/1_1_$special_\\=/2___2__1'(A, B, C) :-
15085    (   'chr newvia_2'(A, B, D)
15086    ->  get_attr(D, guard_entailment, E),
15087        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
15088    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15089                  F)
15090    ),
15091    !,
15092    'known/1_1_$special_\\=/2___2__1__0__11'(F, A, B, C).
15093'known/1_1_$special_\\=/2___2__1__0__11'([], A, B, C) :-
15094    'known/1_1_$special_\\=/2___2__2'(A, B, C).
15095'known/1_1_$special_\\=/2___2__1__0__11'([A|B], C, D, E) :-
15096    (   A=suspension(_, active, _, _, F, G),
15097        nonvar(F),
15098        F=(\+H),
15099        nonvar(H),
15100        H=(I\=J),
15101        I==C,
15102        J==D
15103    ->  A=suspension(_, _, _, _, K, L),
15104        setarg(2, A, removed),
15105        term_variables(term(K, L), M),
15106        ( arg(4, A, N),
15107          (   var(N)
15108          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15109                        O),
15110              O=[_|P],
15111              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15112                       P),
15113              (   P=[Q|_]
15114              ->  setarg(4, Q, _)
15115              ;   true
15116              )
15117          ;   N=[_, _|P],
15118              setarg(2, N, P),
15119              (   P=[Q|_]
15120              ->  setarg(4, Q, N)
15121              ;   true
15122              )
15123          )
15124        ),
15125        'detach_known/1_1_$special_;/2___2'(M, A),
15126        arg(2, E, R),
15127        setarg(2, E, active),
15128        ( arg(4, E, S),
15129          T is S+1,
15130          setarg(4, E, T)
15131        ),
15132        (   R==not_stored_yet
15133        ->  E=suspension(_, _, _, _, _, U, V),
15134            term_variables(term(U, V), W),
15135            'chr none_locked'(W),
15136            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15137                      X),
15138            Y=[E|X],
15139            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15140                     Y),
15141            (   X=[Z|_]
15142            ->  setarg(5, Z, Y)
15143            ;   true
15144            ),
15145            'attach_known/1_1_$special_\\=/2___2'(W, E)
15146        ;   true
15147        ),
15148        known(G),
15149        (   E=suspension(_, active, _, T, _, _, _)
15150        ->  setarg(2, E, inactive),
15151            'known/1_1_$special_\\=/2___2__1__0__11'(B,
15152                                                     C,
15153                                                     D,
15154                                                     E)
15155        ;   true
15156        )
15157    ;   'known/1_1_$special_\\=/2___2__1__0__11'(B, C, D, E)
15158    ).
15159'known/1_1_$special_\\=/2___2__1'(A, B, C) :-
15160    'known/1_1_$special_\\=/2___2__2'(A, B, C).
15161'known/1_1_$special_\\=/2___2__2'(A, B, C) :-
15162    (   'chr newvia_2'(A, B, D)
15163    ->  get_attr(D, guard_entailment, E),
15164        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
15165    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15166                  F)
15167    ),
15168    !,
15169    'known/1_1_$special_\\=/2___2__2__0__12'(F, A, B, C).
15170'known/1_1_$special_\\=/2___2__2__0__12'([], A, B, C) :-
15171    'known/1_1_$special_\\=/2___2__3'(A, B, C).
15172'known/1_1_$special_\\=/2___2__2__0__12'([A|B], C, D, E) :-
15173    (   A=suspension(_, active, _, _, F, G),
15174        nonvar(F),
15175        F=(H, _),
15176        nonvar(H),
15177        H=(\+I),
15178        nonvar(I),
15179        I=(J\=K),
15180        J==C,
15181        K==D
15182    ->  A=suspension(_, _, _, _, L, M),
15183        setarg(2, A, removed),
15184        term_variables(term(L, M), N),
15185        ( arg(4, A, O),
15186          (   var(O)
15187          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15188                        P),
15189              P=[_|Q],
15190              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15191                       Q),
15192              (   Q=[R|_]
15193              ->  setarg(4, R, _)
15194              ;   true
15195              )
15196          ;   O=[_, _|Q],
15197              setarg(2, O, Q),
15198              (   Q=[R|_]
15199              ->  setarg(4, R, O)
15200              ;   true
15201              )
15202          )
15203        ),
15204        'detach_known/1_1_$special_;/2___2'(N, A),
15205        arg(2, E, S),
15206        setarg(2, E, active),
15207        ( arg(4, E, T),
15208          U is T+1,
15209          setarg(4, E, U)
15210        ),
15211        (   S==not_stored_yet
15212        ->  E=suspension(_, _, _, _, _, V, W),
15213            term_variables(term(V, W), X),
15214            'chr none_locked'(X),
15215            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15216                      Y),
15217            Z=[E|Y],
15218            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15219                     Z),
15220            (   Y=[A1|_]
15221            ->  setarg(5, A1, Z)
15222            ;   true
15223            ),
15224            'attach_known/1_1_$special_\\=/2___2'(X, E)
15225        ;   true
15226        ),
15227        known(G),
15228        (   E=suspension(_, active, _, U, _, _, _)
15229        ->  setarg(2, E, inactive),
15230            'known/1_1_$special_\\=/2___2__2__0__12'(B,
15231                                                     C,
15232                                                     D,
15233                                                     E)
15234        ;   true
15235        )
15236    ;   'known/1_1_$special_\\=/2___2__2__0__12'(B, C, D, E)
15237    ).
15238'known/1_1_$special_\\=/2___2__2'(A, B, C) :-
15239    'known/1_1_$special_\\=/2___2__3'(A, B, C).
15240'known/1_1_$special_\\=/2___2__3'(_, _, A) :-
15241    arg(2, A, B),
15242    setarg(2, A, active),
15243    arg(4, A, C),
15244    D is C+1,
15245    setarg(4, A, D),
15246    (   B==not_stored_yet
15247    ->  A=suspension(_, _, _, _, _, E, F),
15248        term_variables(term(E, F), G),
15249        'chr none_locked'(G),
15250        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15251                  H),
15252        I=[A|H],
15253        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15254                 I),
15255        (   H=[J|_]
15256        ->  setarg(5, J, I)
15257        ;   true
15258        ),
15259        'attach_known/1_1_$special_\\=/2___2'(G, A)
15260    ;   true
15261    ).
15262'known/1_1_$special_=/2'(A, B) :-
15263    'known/1_1_$special_=/2___2__0'(A, B, _).
15264'known/1_1_$special_=/2___2__0'(A, B, C) :-
15265    (   'chr newvia_2'(A, B, D)
15266    ->  get_attr(D, guard_entailment, E),
15267        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _)
15268    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15269                  F)
15270    ),
15271    member(G, F),
15272    G=suspension(_, active, _, _, H, I),
15273    H==A,
15274    I==B,
15275    !,
15276    (   var(C)
15277    ->  true
15278    ;   C=suspension(_, J, _, _, K, L),
15279        setarg(2, C, removed),
15280        (   J==not_stored_yet
15281        ->  M=[]
15282        ;   term_variables(term(K, L), M),
15283            arg(4, C, N),
15284            (   var(N)
15285            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15286                          O),
15287                O=[_|P],
15288                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15289                         P),
15290                (   P=[Q|_]
15291                ->  setarg(4, Q, _)
15292                ;   true
15293                )
15294            ;   N=[_, _|P],
15295                setarg(2, N, P),
15296                (   P=[Q|_]
15297                ->  setarg(4, Q, N)
15298                ;   true
15299                )
15300            ),
15301            'detach_known/1_1_$special_=/2___2'(M, C)
15302        )
15303    ).
15304'known/1_1_$special_=/2___2__0'(_, _, A) :-
15305    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
15306              B),
15307    member(C, B),
15308    C=suspension(_, active, _),
15309    !,
15310    (   var(A)
15311    ->  true
15312    ;   A=suspension(_, D, _, _, E, F),
15313        setarg(2, A, removed),
15314        (   D==not_stored_yet
15315        ->  G=[]
15316        ;   term_variables(term(E, F), G),
15317            arg(4, A, H),
15318            (   var(H)
15319            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15320                          I),
15321                I=[_|J],
15322                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15323                         J),
15324                (   J=[K|_]
15325                ->  setarg(4, K, _)
15326                ;   true
15327                )
15328            ;   H=[_, _|J],
15329                setarg(2, H, J),
15330                (   J=[K|_]
15331                ->  setarg(4, K, H)
15332                ;   true
15333                )
15334            ),
15335            'detach_known/1_1_$special_=/2___2'(G, A)
15336        )
15337    ).
15338'known/1_1_$special_=/2___2__0'(A, B, C) :-
15339    B==A,
15340    !,
15341    (   var(C)
15342    ->  true
15343    ;   C=suspension(_, D, _, _, E, F),
15344        setarg(2, C, removed),
15345        (   D==not_stored_yet
15346        ->  G=[]
15347        ;   term_variables(term(E, F), G),
15348            arg(4, C, H),
15349            (   var(H)
15350            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15351                          I),
15352                I=[_|J],
15353                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15354                         J),
15355                (   J=[K|_]
15356                ->  setarg(4, K, _)
15357                ;   true
15358                )
15359            ;   H=[_, _|J],
15360                setarg(2, H, J),
15361                (   J=[K|_]
15362                ->  setarg(4, K, H)
15363                ;   true
15364                )
15365            ),
15366            'detach_known/1_1_$special_=/2___2'(G, C)
15367        )
15368    ).
15369'known/1_1_$special_=/2___2__0'(A, B, C) :-
15370    var(A),
15371    !,
15372    (   var(C)
15373    ->  true
15374    ;   C=suspension(_, D, _, _, E, F),
15375        setarg(2, C, removed),
15376        (   D==not_stored_yet
15377        ->  G=[]
15378        ;   term_variables(term(E, F), G),
15379            arg(4, C, H),
15380            (   var(H)
15381            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15382                          I),
15383                I=[_|J],
15384                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15385                         J),
15386                (   J=[K|_]
15387                ->  setarg(4, K, _)
15388                ;   true
15389                )
15390            ;   H=[_, _|J],
15391                setarg(2, H, J),
15392                (   J=[K|_]
15393                ->  setarg(4, K, H)
15394                ;   true
15395                )
15396            ),
15397            'detach_known/1_1_$special_=/2___2'(G, C)
15398        )
15399    ),
15400    A=B.
15401'known/1_1_$special_=/2___2__0'(A, B, C) :-
15402    var(B),
15403    !,
15404    (   var(C)
15405    ->  true
15406    ;   C=suspension(_, D, _, _, E, F),
15407        setarg(2, C, removed),
15408        (   D==not_stored_yet
15409        ->  G=[]
15410        ;   term_variables(term(E, F), G),
15411            arg(4, C, H),
15412            (   var(H)
15413            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15414                          I),
15415                I=[_|J],
15416                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15417                         J),
15418                (   J=[K|_]
15419                ->  setarg(4, K, _)
15420                ;   true
15421                )
15422            ;   H=[_, _|J],
15423                setarg(2, H, J),
15424                (   J=[K|_]
15425                ->  setarg(4, K, H)
15426                ;   true
15427                )
15428            ),
15429            'detach_known/1_1_$special_=/2___2'(G, C)
15430        )
15431    ),
15432    A=B.
15433'known/1_1_$special_=/2___2__0'(A, B, C) :-
15434    'chr lock'(A),
15435    functor(A, D, E),
15436    'chr unlock'(A),
15437    !,
15438    (   var(C)
15439    ->  true
15440    ;   C=suspension(_, F, _, _, G, H),
15441        setarg(2, C, removed),
15442        (   F==not_stored_yet
15443        ->  I=[]
15444        ;   term_variables(term(G, H), I),
15445            arg(4, C, J),
15446            (   var(J)
15447            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15448                          K),
15449                K=[_|L],
15450                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15451                         L),
15452                (   L=[M|_]
15453                ->  setarg(4, M, _)
15454                ;   true
15455                )
15456            ;   J=[_, _|L],
15457                setarg(2, J, L),
15458                (   L=[M|_]
15459                ->  setarg(4, M, J)
15460                ;   true
15461                )
15462            ),
15463            'detach_known/1_1_$special_=/2___2'(I, C)
15464        )
15465    ),
15466    (   functor(B, D, E),
15467        A=B
15468    ->  true
15469    ;   'known/1_1_$special_fail/0'
15470    ).
15471'known/1_1_$special_=/2___2__0'(A, B, C) :-
15472    (   'chr newvia_2'(A, B, D)
15473    ->  get_attr(D, guard_entailment, E),
15474        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _, _)
15475    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15476                  F)
15477    ),
15478    member(G, F),
15479    G=suspension(_, active, _, _, H),
15480    nonvar(H),
15481    H=(I=J),
15482    I==A,
15483    J==B,
15484    !,
15485    G=suspension(_, _, _, _, K),
15486    setarg(2, G, removed),
15487    term_variables(K, L),
15488    arg(4, G, M),
15489    (   var(M)
15490    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15491                  N),
15492        N=[_|O],
15493        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15494                 O),
15495        (   O=[P|_]
15496        ->  setarg(4, P, _)
15497        ;   true
15498        )
15499    ;   M=[_, _|O],
15500        setarg(2, M, O),
15501        (   O=[P|_]
15502        ->  setarg(4, P, M)
15503        ;   true
15504        )
15505    ),
15506    'detach_known/1_1_$special_\\+/1___1'(L, G),
15507    (   var(C)
15508    ->  true
15509    ;   C=suspension(_, Q, _, _, R, S),
15510        setarg(2, C, removed),
15511        (   Q==not_stored_yet
15512        ->  T=[]
15513        ;   term_variables(term(R, S), T),
15514            arg(4, C, U),
15515            (   var(U)
15516            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15517                          V),
15518                V=[_|W],
15519                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15520                         W),
15521                (   W=[X|_]
15522                ->  setarg(4, X, _)
15523                ;   true
15524                )
15525            ;   U=[_, _|W],
15526                setarg(2, U, W),
15527                (   W=[X|_]
15528                ->  setarg(4, X, U)
15529                ;   true
15530                )
15531            ),
15532            'detach_known/1_1_$special_=/2___2'(T, C)
15533        )
15534    ),
15535    'known/1_1_$special_fail/0'.
15536'known/1_1_$special_=/2___2__0'(A, B, C) :-
15537    (   'chr newvia_2'(A, B, D)
15538    ->  get_attr(D, guard_entailment, E),
15539        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
15540    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15541                  F)
15542    ),
15543    !,
15544    (   var(C)
15545    ->  C=suspension(G, not_stored_yet, 0, _, A, B),
15546        'chr gen_id'(G)
15547    ;   true
15548    ),
15549    'known/1_1_$special_=/2___2__0__0__10'(F, A, B, C).
15550'known/1_1_$special_=/2___2__0__0__10'([], A, B, C) :-
15551    'known/1_1_$special_=/2___2__1'(A, B, C).
15552'known/1_1_$special_=/2___2__0__0__10'([A|B], C, D, E) :-
15553    (   A=suspension(_, active, _, _, F, G),
15554        nonvar(F),
15555        F=(\+H),
15556        nonvar(H),
15557        H=(I=J),
15558        I==C,
15559        J==D
15560    ->  A=suspension(_, _, _, _, K, L),
15561        setarg(2, A, removed),
15562        term_variables(term(K, L), M),
15563        ( arg(4, A, N),
15564          (   var(N)
15565          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15566                        O),
15567              O=[_|P],
15568              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15569                       P),
15570              (   P=[Q|_]
15571              ->  setarg(4, Q, _)
15572              ;   true
15573              )
15574          ;   N=[_, _|P],
15575              setarg(2, N, P),
15576              (   P=[Q|_]
15577              ->  setarg(4, Q, N)
15578              ;   true
15579              )
15580          )
15581        ),
15582        'detach_known/1_1_$special_;/2___2'(M, A),
15583        arg(2, E, R),
15584        setarg(2, E, active),
15585        ( arg(3, E, S),
15586          T is S+1,
15587          setarg(3, E, T)
15588        ),
15589        (   R==not_stored_yet
15590        ->  E=suspension(_, _, _, _, U, V),
15591            term_variables(term(U, V), W),
15592            'chr none_locked'(W),
15593            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15594                      X),
15595            Y=[E|X],
15596            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15597                     Y),
15598            (   X=[Z|_]
15599            ->  setarg(4, Z, Y)
15600            ;   true
15601            ),
15602            'attach_known/1_1_$special_=/2___2'(W, E)
15603        ;   true
15604        ),
15605        known(G),
15606        (   E=suspension(_, active, T, _, _, _)
15607        ->  setarg(2, E, inactive),
15608            'known/1_1_$special_=/2___2__0__0__10'(B,
15609                                                   C,
15610                                                   D,
15611                                                   E)
15612        ;   true
15613        )
15614    ;   'known/1_1_$special_=/2___2__0__0__10'(B, C, D, E)
15615    ).
15616'known/1_1_$special_=/2___2__0'(A, B, C) :-
15617    (   var(C)
15618    ->  C=suspension(D, not_stored_yet, 0, _, A, B),
15619        'chr gen_id'(D)
15620    ;   true
15621    ),
15622    'known/1_1_$special_=/2___2__1'(A, B, C).
15623'known/1_1_$special_=/2___2__1'(A, B, C) :-
15624    (   'chr newvia_2'(A, B, D)
15625    ->  get_attr(D, guard_entailment, E),
15626        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
15627    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15628                  F)
15629    ),
15630    !,
15631    'known/1_1_$special_=/2___2__1__0__11'(F, A, B, C).
15632'known/1_1_$special_=/2___2__1__0__11'([], A, B, C) :-
15633    'known/1_1_$special_=/2___2__2'(A, B, C).
15634'known/1_1_$special_=/2___2__1__0__11'([A|B], C, D, E) :-
15635    (   A=suspension(_, active, _, _, F, G),
15636        nonvar(F),
15637        F=(H, _),
15638        nonvar(H),
15639        H=(\+I),
15640        nonvar(I),
15641        I=(J=K),
15642        J==C,
15643        K==D
15644    ->  A=suspension(_, _, _, _, L, M),
15645        setarg(2, A, removed),
15646        term_variables(term(L, M), N),
15647        ( arg(4, A, O),
15648          (   var(O)
15649          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15650                        P),
15651              P=[_|Q],
15652              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15653                       Q),
15654              (   Q=[R|_]
15655              ->  setarg(4, R, _)
15656              ;   true
15657              )
15658          ;   O=[_, _|Q],
15659              setarg(2, O, Q),
15660              (   Q=[R|_]
15661              ->  setarg(4, R, O)
15662              ;   true
15663              )
15664          )
15665        ),
15666        'detach_known/1_1_$special_;/2___2'(N, A),
15667        arg(2, E, S),
15668        setarg(2, E, active),
15669        ( arg(3, E, T),
15670          U is T+1,
15671          setarg(3, E, U)
15672        ),
15673        (   S==not_stored_yet
15674        ->  E=suspension(_, _, _, _, V, W),
15675            term_variables(term(V, W), X),
15676            'chr none_locked'(X),
15677            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15678                      Y),
15679            Z=[E|Y],
15680            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15681                     Z),
15682            (   Y=[A1|_]
15683            ->  setarg(4, A1, Z)
15684            ;   true
15685            ),
15686            'attach_known/1_1_$special_=/2___2'(X, E)
15687        ;   true
15688        ),
15689        known(G),
15690        (   E=suspension(_, active, U, _, _, _)
15691        ->  setarg(2, E, inactive),
15692            'known/1_1_$special_=/2___2__1__0__11'(B,
15693                                                   C,
15694                                                   D,
15695                                                   E)
15696        ;   true
15697        )
15698    ;   'known/1_1_$special_=/2___2__1__0__11'(B, C, D, E)
15699    ).
15700'known/1_1_$special_=/2___2__1'(A, B, C) :-
15701    'known/1_1_$special_=/2___2__2'(A, B, C).
15702'known/1_1_$special_=/2___2__2'(_, _, A) :-
15703    arg(2, A, B),
15704    setarg(2, A, active),
15705    arg(3, A, C),
15706    D is C+1,
15707    setarg(3, A, D),
15708    (   B==not_stored_yet
15709    ->  A=suspension(_, _, _, _, E, F),
15710        term_variables(term(E, F), G),
15711        'chr none_locked'(G),
15712        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15713                  H),
15714        I=[A|H],
15715        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15716                 I),
15717        (   H=[J|_]
15718        ->  setarg(4, J, I)
15719        ;   true
15720        ),
15721        'attach_known/1_1_$special_=/2___2'(G, A)
15722    ;   true
15723    ).
15724'known/1_1_$special_,/2'(_, _) :-
15725    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
15726              A),
15727    member(B, A),
15728    B=suspension(_, active, _),
15729    !.
15730'known/1_1_$special_,/2'(A, B) :-
15731    known(A),
15732    known(B).
15733'known/1_1_$special_\\==/2'(A, B) :-
15734    'known/1_1_$special_\\==/2___2__0'(A, B, _).
15735'known/1_1_$special_\\==/2___2__0'(A, B, C) :-
15736    (   'chr newvia_2'(A, B, D)
15737    ->  get_attr(D, guard_entailment, E),
15738        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _)
15739    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
15740                  F)
15741    ),
15742    member(G, F),
15743    G=suspension(_, active, _, _, _, H, I),
15744    H==A,
15745    I==B,
15746    !,
15747    (   var(C)
15748    ->  true
15749    ;   C=suspension(_, J, _, _, _, K, L),
15750        setarg(2, C, removed),
15751        (   J==not_stored_yet
15752        ->  M=[]
15753        ;   term_variables(term(K, L), M),
15754            arg(5, C, N),
15755            (   var(N)
15756            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
15757                          O),
15758                O=[_|P],
15759                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
15760                         P),
15761                (   P=[Q|_]
15762                ->  setarg(5, Q, _)
15763                ;   true
15764                )
15765            ;   N=[_, _|P],
15766                setarg(2, N, P),
15767                (   P=[Q|_]
15768                ->  setarg(5, Q, N)
15769                ;   true
15770                )
15771            ),
15772            'detach_known/1_1_$special_\\==/2___2'(M, C)
15773        )
15774    ).
15775'known/1_1_$special_\\==/2___2__0'(A, B, C) :-
15776    (   var(C)
15777    ->  C=suspension(D, not_stored_yet, t, 0, _, A, B),
15778        'chr gen_id'(D)
15779    ;   true
15780    ),
15781    (   '$novel_production'(C, 138),
15782        number(A),
15783        !,
15784        '$extend_history'(C, 138),
15785        arg(2, C, E),
15786        setarg(2, C, active),
15787        arg(4, C, F),
15788        G is F+1,
15789        setarg(4, C, G),
15790        (   E==not_stored_yet
15791        ->  C=suspension(_, _, _, _, _, H, I),
15792            term_variables(term(H, I), J),
15793            'chr none_locked'(J),
15794            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
15795                      K),
15796            L=[C|K],
15797            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
15798                     L),
15799            (   K=[M|_]
15800            ->  setarg(5, M, L)
15801            ;   true
15802            ),
15803            'attach_known/1_1_$special_\\==/2___2'(J, C)
15804        ;   true
15805        ),
15806        'known/1_1_$special_=\\=/2'(A, B),
15807        (   C=suspension(_, active, _, G, _, _, _)
15808        ->  setarg(2, C, inactive),
15809            'known/1_1_$special_\\==/2___2__1'(A, B, C)
15810        ;   true
15811        )
15812    ;   'known/1_1_$special_\\==/2___2__1'(A, B, C)
15813    ).
15814'known/1_1_$special_\\==/2___2__1'(A, B, C) :-
15815    '$novel_production'(C, 139),
15816    number(B),
15817    !,
15818    '$extend_history'(C, 139),
15819    arg(2, C, D),
15820    setarg(2, C, active),
15821    arg(4, C, E),
15822    F is E+1,
15823    setarg(4, C, F),
15824    (   D==not_stored_yet
15825    ->  C=suspension(_, _, _, _, _, G, H),
15826        term_variables(term(G, H), I),
15827        'chr none_locked'(I),
15828        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
15829                  J),
15830        K=[C|J],
15831        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
15832                 K),
15833        (   J=[L|_]
15834        ->  setarg(5, L, K)
15835        ;   true
15836        ),
15837        'attach_known/1_1_$special_\\==/2___2'(I, C)
15838    ;   true
15839    ),
15840    'known/1_1_$special_=\\=/2'(A, B),
15841    (   C=suspension(_, active, _, F, _, _, _)
15842    ->  setarg(2, C, inactive),
15843        'known/1_1_$special_\\==/2___2__2'(A, B, C)
15844    ;   true
15845    ).
15846'known/1_1_$special_\\==/2___2__1'(A, B, C) :-
15847    'known/1_1_$special_\\==/2___2__2'(A, B, C).
15848'known/1_1_$special_\\==/2___2__2'(_, _, A) :-
15849    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
15850              B),
15851    member(C, B),
15852    C=suspension(_, active, _),
15853    !,
15854    (   var(A)
15855    ->  true
15856    ;   A=suspension(_, D, _, _, _, E, F),
15857        setarg(2, A, removed),
15858        (   D==not_stored_yet
15859        ->  G=[]
15860        ;   term_variables(term(E, F), G),
15861            arg(5, A, H),
15862            (   var(H)
15863            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
15864                          I),
15865                I=[_|J],
15866                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
15867                         J),
15868                (   J=[K|_]
15869                ->  setarg(5, K, _)
15870                ;   true
15871                )
15872            ;   H=[_, _|J],
15873                setarg(2, H, J),
15874                (   J=[K|_]
15875                ->  setarg(5, K, H)
15876                ;   true
15877                )
15878            ),
15879            'detach_known/1_1_$special_\\==/2___2'(G, A)
15880        )
15881    ).
15882'known/1_1_$special_\\==/2___2__2'(A, B, C) :-
15883    (   'chr newvia_2'(A, B, D)
15884    ->  get_attr(D, guard_entailment, E),
15885        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _, _)
15886    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15887                  F)
15888    ),
15889    member(G, F),
15890    G=suspension(_, active, _, _, H),
15891    nonvar(H),
15892    H=(I\==J),
15893    I==A,
15894    J==B,
15895    !,
15896    G=suspension(_, _, _, _, K),
15897    setarg(2, G, removed),
15898    term_variables(K, L),
15899    arg(4, G, M),
15900    (   var(M)
15901    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15902                  N),
15903        N=[_|O],
15904        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15905                 O),
15906        (   O=[P|_]
15907        ->  setarg(4, P, _)
15908        ;   true
15909        )
15910    ;   M=[_, _|O],
15911        setarg(2, M, O),
15912        (   O=[P|_]
15913        ->  setarg(4, P, M)
15914        ;   true
15915        )
15916    ),
15917    'detach_known/1_1_$special_\\+/1___1'(L, G),
15918    (   var(C)
15919    ->  true
15920    ;   C=suspension(_, Q, _, _, _, R, S),
15921        setarg(2, C, removed),
15922        (   Q==not_stored_yet
15923        ->  T=[]
15924        ;   term_variables(term(R, S), T),
15925            arg(5, C, U),
15926            (   var(U)
15927            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
15928                          V),
15929                V=[_|W],
15930                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
15931                         W),
15932                (   W=[X|_]
15933                ->  setarg(5, X, _)
15934                ;   true
15935                )
15936            ;   U=[_, _|W],
15937                setarg(2, U, W),
15938                (   W=[X|_]
15939                ->  setarg(5, X, U)
15940                ;   true
15941                )
15942            ),
15943            'detach_known/1_1_$special_\\==/2___2'(T, C)
15944        )
15945    ),
15946    'known/1_1_$special_fail/0'.
15947'known/1_1_$special_\\==/2___2__2'(A, B, C) :-
15948    (   'chr newvia_2'(A, B, D)
15949    ->  get_attr(D, guard_entailment, E),
15950        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _)
15951    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
15952                  F)
15953    ),
15954    member(G, F),
15955    G=suspension(_, active, _, _, _, H, I),
15956    H==A,
15957    I==B,
15958    !,
15959    G=suspension(_, _, _, _, _, J, K),
15960    setarg(2, G, removed),
15961    term_variables(term(J, K), L),
15962    arg(5, G, M),
15963    (   var(M)
15964    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
15965                  N),
15966        N=[_|O],
15967        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
15968                 O),
15969        (   O=[P|_]
15970        ->  setarg(5, P, _)
15971        ;   true
15972        )
15973    ;   M=[_, _|O],
15974        setarg(2, M, O),
15975        (   O=[P|_]
15976        ->  setarg(5, P, M)
15977        ;   true
15978        )
15979    ),
15980    'detach_known/1_1_$special_==/2___2'(L, G),
15981    (   var(C)
15982    ->  true
15983    ;   C=suspension(_, Q, _, _, _, R, S),
15984        setarg(2, C, removed),
15985        (   Q==not_stored_yet
15986        ->  T=[]
15987        ;   term_variables(term(R, S), T),
15988            arg(5, C, U),
15989            (   var(U)
15990            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
15991                          V),
15992                V=[_|W],
15993                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
15994                         W),
15995                (   W=[X|_]
15996                ->  setarg(5, X, _)
15997                ;   true
15998                )
15999            ;   U=[_, _|W],
16000                setarg(2, U, W),
16001                (   W=[X|_]
16002                ->  setarg(5, X, U)
16003                ;   true
16004                )
16005            ),
16006            'detach_known/1_1_$special_\\==/2___2'(T, C)
16007        )
16008    ),
16009    'known/1_1_$special_fail/0'.
16010'known/1_1_$special_\\==/2___2__2'(A, B, C) :-
16011    (   'chr newvia_1'(A, D)
16012    ->  get_attr(D, guard_entailment, E),
16013        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _)
16014    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16015                  F)
16016    ),
16017    !,
16018    'known/1_1_$special_\\==/2___2__2__0__9'(F, A, B, C).
16019'known/1_1_$special_\\==/2___2__2__0__9'([], A, B, C) :-
16020    'known/1_1_$special_\\==/2___2__3'(A, B, C).
16021'known/1_1_$special_\\==/2___2__2__0__9'([A|B], C, D, E) :-
16022    (   A=suspension(_, active, _, _, _, F, G),
16023        G==C,
16024        H=t(229, A, E),
16025        '$novel_production'(A, H),
16026        '$novel_production'(E, H)
16027    ->  '$extend_history'(E, H),
16028        arg(2, E, I),
16029        setarg(2, E, active),
16030        ( arg(4, E, J),
16031          K is J+1,
16032          setarg(4, E, K)
16033        ),
16034        (   I==not_stored_yet
16035        ->  E=suspension(_, _, _, _, _, L, M),
16036            term_variables(term(L, M), N),
16037            'chr none_locked'(N),
16038            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16039                      O),
16040            P=[E|O],
16041            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16042                     P),
16043            (   O=[Q|_]
16044            ->  setarg(5, Q, P)
16045            ;   true
16046            ),
16047            'attach_known/1_1_$special_\\==/2___2'(N, E)
16048        ;   true
16049        ),
16050        'known/1_1_$special_\\==/2'(F, D),
16051        (   E=suspension(_, active, _, K, _, _, _)
16052        ->  setarg(2, E, inactive),
16053            'known/1_1_$special_\\==/2___2__2__0__9'(B,
16054                                                     C,
16055                                                     D,
16056                                                     E)
16057        ;   true
16058        )
16059    ;   'known/1_1_$special_\\==/2___2__2__0__9'(B, C, D, E)
16060    ).
16061'known/1_1_$special_\\==/2___2__2'(A, B, C) :-
16062    'known/1_1_$special_\\==/2___2__3'(A, B, C).
16063'known/1_1_$special_\\==/2___2__3'(A, B, C) :-
16064    '$novel_production'(C, 231),
16065    !,
16066    '$extend_history'(C, 231),
16067    arg(2, C, D),
16068    setarg(2, C, active),
16069    arg(4, C, E),
16070    F is E+1,
16071    setarg(4, C, F),
16072    (   D==not_stored_yet
16073    ->  C=suspension(_, _, _, _, _, G, H),
16074        term_variables(term(G, H), I),
16075        'chr none_locked'(I),
16076        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16077                  J),
16078        K=[C|J],
16079        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16080                 K),
16081        (   J=[L|_]
16082        ->  setarg(5, L, K)
16083        ;   true
16084        ),
16085        'attach_known/1_1_$special_\\==/2___2'(I, C)
16086    ;   true
16087    ),
16088    'known/1_1_$special_\\==/2'(B, A),
16089    (   C=suspension(_, active, _, F, _, _, _)
16090    ->  setarg(2, C, inactive),
16091        'known/1_1_$special_\\==/2___2__4'(A, B, C)
16092    ;   true
16093    ).
16094'known/1_1_$special_\\==/2___2__3'(A, B, C) :-
16095    'known/1_1_$special_\\==/2___2__4'(A, B, C).
16096'known/1_1_$special_\\==/2___2__4'(A, B, C) :-
16097    B==A,
16098    '$novel_production'(C, 232),
16099    !,
16100    '$extend_history'(C, 232),
16101    arg(2, C, D),
16102    setarg(2, C, active),
16103    arg(4, C, E),
16104    F is E+1,
16105    setarg(4, C, F),
16106    (   D==not_stored_yet
16107    ->  C=suspension(_, _, _, _, _, G, H),
16108        term_variables(term(G, H), I),
16109        'chr none_locked'(I),
16110        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16111                  J),
16112        K=[C|J],
16113        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16114                 K),
16115        (   J=[L|_]
16116        ->  setarg(5, L, K)
16117        ;   true
16118        ),
16119        'attach_known/1_1_$special_\\==/2___2'(I, C)
16120    ;   true
16121    ),
16122    'known/1_1_$special_fail/0',
16123    (   C=suspension(_, active, _, F, _, _, _)
16124    ->  setarg(2, C, inactive),
16125        'known/1_1_$special_\\==/2___2__5'(A, B, C)
16126    ;   true
16127    ).
16128'known/1_1_$special_\\==/2___2__4'(A, B, C) :-
16129    'known/1_1_$special_\\==/2___2__5'(A, B, C).
16130'known/1_1_$special_\\==/2___2__5'(A, B, C) :-
16131    nonvar(B),
16132    nonvar(A),
16133    'chr lock'(A),
16134    functor(A, D, E),
16135    'chr unlock'(A),
16136    !,
16137    (   var(C)
16138    ->  true
16139    ;   C=suspension(_, F, _, _, _, G, H),
16140        setarg(2, C, removed),
16141        (   F==not_stored_yet
16142        ->  I=[]
16143        ;   term_variables(term(G, H), I),
16144            arg(5, C, J),
16145            (   var(J)
16146            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16147                          K),
16148                K=[_|L],
16149                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16150                         L),
16151                (   L=[M|_]
16152                ->  setarg(5, M, _)
16153                ;   true
16154                )
16155            ;   J=[_, _|L],
16156                setarg(2, J, L),
16157                (   L=[M|_]
16158                ->  setarg(5, M, J)
16159                ;   true
16160                )
16161            ),
16162            'detach_known/1_1_$special_\\==/2___2'(I, C)
16163        )
16164    ),
16165    (   functor(B, D, E)
16166    ->  A=..[D|N],
16167        B=..[D|O],
16168        add_args_nmatch(N, O, P),
16169        known(P)
16170    ;   true
16171    ).
16172'known/1_1_$special_\\==/2___2__5'(A, B, C) :-
16173    (   'chr newvia_2'(A, B, D)
16174    ->  get_attr(D, guard_entailment, E),
16175        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
16176    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16177                  F)
16178    ),
16179    !,
16180    'known/1_1_$special_\\==/2___2__5__0__13'(F, A, B, C).
16181'known/1_1_$special_\\==/2___2__5__0__13'([], A, B, C) :-
16182    'known/1_1_$special_\\==/2___2__6'(A, B, C).
16183'known/1_1_$special_\\==/2___2__5__0__13'([A|B], C, D, E) :-
16184    (   A=suspension(_, active, _, _, F, G),
16185        nonvar(F),
16186        F=(\+H),
16187        nonvar(H),
16188        H=(I\==J),
16189        I==C,
16190        J==D
16191    ->  A=suspension(_, _, _, _, K, L),
16192        setarg(2, A, removed),
16193        term_variables(term(K, L), M),
16194        ( arg(4, A, N),
16195          (   var(N)
16196          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16197                        O),
16198              O=[_|P],
16199              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16200                       P),
16201              (   P=[Q|_]
16202              ->  setarg(4, Q, _)
16203              ;   true
16204              )
16205          ;   N=[_, _|P],
16206              setarg(2, N, P),
16207              (   P=[Q|_]
16208              ->  setarg(4, Q, N)
16209              ;   true
16210              )
16211          )
16212        ),
16213        'detach_known/1_1_$special_;/2___2'(M, A),
16214        arg(2, E, R),
16215        setarg(2, E, active),
16216        ( arg(4, E, S),
16217          T is S+1,
16218          setarg(4, E, T)
16219        ),
16220        (   R==not_stored_yet
16221        ->  E=suspension(_, _, _, _, _, U, V),
16222            term_variables(term(U, V), W),
16223            'chr none_locked'(W),
16224            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16225                      X),
16226            Y=[E|X],
16227            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16228                     Y),
16229            (   X=[Z|_]
16230            ->  setarg(5, Z, Y)
16231            ;   true
16232            ),
16233            'attach_known/1_1_$special_\\==/2___2'(W, E)
16234        ;   true
16235        ),
16236        known(G),
16237        (   E=suspension(_, active, _, T, _, _, _)
16238        ->  setarg(2, E, inactive),
16239            'known/1_1_$special_\\==/2___2__5__0__13'(B,
16240                                                      C,
16241                                                      D,
16242                                                      E)
16243        ;   true
16244        )
16245    ;   'known/1_1_$special_\\==/2___2__5__0__13'(B,
16246                                                  C,
16247                                                  D,
16248                                                  E)
16249    ).
16250'known/1_1_$special_\\==/2___2__5'(A, B, C) :-
16251    'known/1_1_$special_\\==/2___2__6'(A, B, C).
16252'known/1_1_$special_\\==/2___2__6'(A, B, C) :-
16253    (   'chr newvia_2'(A, B, D)
16254    ->  get_attr(D, guard_entailment, E),
16255        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
16256    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16257                  F)
16258    ),
16259    !,
16260    'known/1_1_$special_\\==/2___2__6__0__14'(F, A, B, C).
16261'known/1_1_$special_\\==/2___2__6__0__14'([], A, B, C) :-
16262    'known/1_1_$special_\\==/2___2__7'(A, B, C).
16263'known/1_1_$special_\\==/2___2__6__0__14'([A|B], C, D, E) :-
16264    (   A=suspension(_, active, _, _, F, G),
16265        nonvar(F),
16266        F=(H, _),
16267        nonvar(H),
16268        H=(\+I),
16269        nonvar(I),
16270        I=(J\==K),
16271        J==C,
16272        K==D
16273    ->  A=suspension(_, _, _, _, L, M),
16274        setarg(2, A, removed),
16275        term_variables(term(L, M), N),
16276        ( arg(4, A, O),
16277          (   var(O)
16278          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16279                        P),
16280              P=[_|Q],
16281              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16282                       Q),
16283              (   Q=[R|_]
16284              ->  setarg(4, R, _)
16285              ;   true
16286              )
16287          ;   O=[_, _|Q],
16288              setarg(2, O, Q),
16289              (   Q=[R|_]
16290              ->  setarg(4, R, O)
16291              ;   true
16292              )
16293          )
16294        ),
16295        'detach_known/1_1_$special_;/2___2'(N, A),
16296        arg(2, E, S),
16297        setarg(2, E, active),
16298        ( arg(4, E, T),
16299          U is T+1,
16300          setarg(4, E, U)
16301        ),
16302        (   S==not_stored_yet
16303        ->  E=suspension(_, _, _, _, _, V, W),
16304            term_variables(term(V, W), X),
16305            'chr none_locked'(X),
16306            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16307                      Y),
16308            Z=[E|Y],
16309            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16310                     Z),
16311            (   Y=[A1|_]
16312            ->  setarg(5, A1, Z)
16313            ;   true
16314            ),
16315            'attach_known/1_1_$special_\\==/2___2'(X, E)
16316        ;   true
16317        ),
16318        known(G),
16319        (   E=suspension(_, active, _, U, _, _, _)
16320        ->  setarg(2, E, inactive),
16321            'known/1_1_$special_\\==/2___2__6__0__14'(B,
16322                                                      C,
16323                                                      D,
16324                                                      E)
16325        ;   true
16326        )
16327    ;   'known/1_1_$special_\\==/2___2__6__0__14'(B,
16328                                                  C,
16329                                                  D,
16330                                                  E)
16331    ).
16332'known/1_1_$special_\\==/2___2__6'(A, B, C) :-
16333    'known/1_1_$special_\\==/2___2__7'(A, B, C).
16334'known/1_1_$special_\\==/2___2__7'(_, _, A) :-
16335    arg(2, A, B),
16336    setarg(2, A, active),
16337    arg(4, A, C),
16338    D is C+1,
16339    setarg(4, A, D),
16340    (   B==not_stored_yet
16341    ->  A=suspension(_, _, _, _, _, E, F),
16342        term_variables(term(E, F), G),
16343        'chr none_locked'(G),
16344        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16345                  H),
16346        I=[A|H],
16347        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16348                 I),
16349        (   H=[J|_]
16350        ->  setarg(5, J, I)
16351        ;   true
16352        ),
16353        'attach_known/1_1_$special_\\==/2___2'(G, A)
16354    ;   true
16355    ).
16356'known/1_1_$special_==/2'(A, B) :-
16357    'known/1_1_$special_==/2___2__0'(A, B, _).
16358'known/1_1_$special_==/2___2__0'(A, B, C) :-
16359    (   'chr newvia_2'(A, B, D)
16360    ->  get_attr(D, guard_entailment, E),
16361        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _)
16362    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16363                  F)
16364    ),
16365    member(G, F),
16366    G=suspension(_, active, _, _, _, H, I),
16367    H==A,
16368    I==B,
16369    !,
16370    (   var(C)
16371    ->  true
16372    ;   C=suspension(_, J, _, _, _, K, L),
16373        setarg(2, C, removed),
16374        (   J==not_stored_yet
16375        ->  M=[]
16376        ;   term_variables(term(K, L), M),
16377            arg(5, C, N),
16378            (   var(N)
16379            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16380                          O),
16381                O=[_|P],
16382                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16383                         P),
16384                (   P=[Q|_]
16385                ->  setarg(5, Q, _)
16386                ;   true
16387                )
16388            ;   N=[_, _|P],
16389                setarg(2, N, P),
16390                (   P=[Q|_]
16391                ->  setarg(5, Q, N)
16392                ;   true
16393                )
16394            ),
16395            'detach_known/1_1_$special_==/2___2'(M, C)
16396        )
16397    ).
16398'known/1_1_$special_==/2___2__0'(A, B, C) :-
16399    (   var(C)
16400    ->  C=suspension(D, not_stored_yet, t, 0, _, A, B),
16401        'chr gen_id'(D)
16402    ;   true
16403    ),
16404    (   '$novel_production'(C, 136),
16405        number(A),
16406        !,
16407        '$extend_history'(C, 136),
16408        arg(2, C, E),
16409        setarg(2, C, active),
16410        arg(4, C, F),
16411        G is F+1,
16412        setarg(4, C, G),
16413        (   E==not_stored_yet
16414        ->  C=suspension(_, _, _, _, _, H, I),
16415            term_variables(term(H, I), J),
16416            'chr none_locked'(J),
16417            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16418                      K),
16419            L=[C|K],
16420            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16421                     L),
16422            (   K=[M|_]
16423            ->  setarg(5, M, L)
16424            ;   true
16425            ),
16426            'attach_known/1_1_$special_==/2___2'(J, C)
16427        ;   true
16428        ),
16429        'known/1_1_$special_=:=/2'(A, B),
16430        (   C=suspension(_, active, _, G, _, _, _)
16431        ->  setarg(2, C, inactive),
16432            'known/1_1_$special_==/2___2__1'(A, B, C)
16433        ;   true
16434        )
16435    ;   'known/1_1_$special_==/2___2__1'(A, B, C)
16436    ).
16437'known/1_1_$special_==/2___2__1'(A, B, C) :-
16438    '$novel_production'(C, 137),
16439    number(B),
16440    !,
16441    '$extend_history'(C, 137),
16442    arg(2, C, D),
16443    setarg(2, C, active),
16444    arg(4, C, E),
16445    F is E+1,
16446    setarg(4, C, F),
16447    (   D==not_stored_yet
16448    ->  C=suspension(_, _, _, _, _, G, H),
16449        term_variables(term(G, H), I),
16450        'chr none_locked'(I),
16451        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16452                  J),
16453        K=[C|J],
16454        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16455                 K),
16456        (   J=[L|_]
16457        ->  setarg(5, L, K)
16458        ;   true
16459        ),
16460        'attach_known/1_1_$special_==/2___2'(I, C)
16461    ;   true
16462    ),
16463    'known/1_1_$special_=:=/2'(A, B),
16464    (   C=suspension(_, active, _, F, _, _, _)
16465    ->  setarg(2, C, inactive),
16466        'known/1_1_$special_==/2___2__2'(A, B, C)
16467    ;   true
16468    ).
16469'known/1_1_$special_==/2___2__1'(A, B, C) :-
16470    'known/1_1_$special_==/2___2__2'(A, B, C).
16471'known/1_1_$special_==/2___2__2'(_, _, A) :-
16472    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
16473              B),
16474    member(C, B),
16475    C=suspension(_, active, _),
16476    !,
16477    (   var(A)
16478    ->  true
16479    ;   A=suspension(_, D, _, _, _, E, F),
16480        setarg(2, A, removed),
16481        (   D==not_stored_yet
16482        ->  G=[]
16483        ;   term_variables(term(E, F), G),
16484            arg(5, A, H),
16485            (   var(H)
16486            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16487                          I),
16488                I=[_|J],
16489                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16490                         J),
16491                (   J=[K|_]
16492                ->  setarg(5, K, _)
16493                ;   true
16494                )
16495            ;   H=[_, _|J],
16496                setarg(2, H, J),
16497                (   J=[K|_]
16498                ->  setarg(5, K, H)
16499                ;   true
16500                )
16501            ),
16502            'detach_known/1_1_$special_==/2___2'(G, A)
16503        )
16504    ).
16505'known/1_1_$special_==/2___2__2'(A, B, C) :-
16506    B==A,
16507    !,
16508    (   var(C)
16509    ->  true
16510    ;   C=suspension(_, D, _, _, _, E, F),
16511        setarg(2, C, removed),
16512        (   D==not_stored_yet
16513        ->  G=[]
16514        ;   term_variables(term(E, F), G),
16515            arg(5, C, H),
16516            (   var(H)
16517            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16518                          I),
16519                I=[_|J],
16520                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16521                         J),
16522                (   J=[K|_]
16523                ->  setarg(5, K, _)
16524                ;   true
16525                )
16526            ;   H=[_, _|J],
16527                setarg(2, H, J),
16528                (   J=[K|_]
16529                ->  setarg(5, K, H)
16530                ;   true
16531                )
16532            ),
16533            'detach_known/1_1_$special_==/2___2'(G, C)
16534        )
16535    ).
16536'known/1_1_$special_==/2___2__2'(A, B, C) :-
16537    (   'chr newvia_2'(A, B, D)
16538    ->  get_attr(D, guard_entailment, E),
16539        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _, _)
16540    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
16541                  F)
16542    ),
16543    member(G, F),
16544    G=suspension(_, active, _, _, H),
16545    nonvar(H),
16546    H=(I==J),
16547    I==A,
16548    J==B,
16549    !,
16550    G=suspension(_, _, _, _, K),
16551    setarg(2, G, removed),
16552    term_variables(K, L),
16553    arg(4, G, M),
16554    (   var(M)
16555    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
16556                  N),
16557        N=[_|O],
16558        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
16559                 O),
16560        (   O=[P|_]
16561        ->  setarg(4, P, _)
16562        ;   true
16563        )
16564    ;   M=[_, _|O],
16565        setarg(2, M, O),
16566        (   O=[P|_]
16567        ->  setarg(4, P, M)
16568        ;   true
16569        )
16570    ),
16571    'detach_known/1_1_$special_\\+/1___1'(L, G),
16572    (   var(C)
16573    ->  true
16574    ;   C=suspension(_, Q, _, _, _, R, S),
16575        setarg(2, C, removed),
16576        (   Q==not_stored_yet
16577        ->  T=[]
16578        ;   term_variables(term(R, S), T),
16579            arg(5, C, U),
16580            (   var(U)
16581            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16582                          V),
16583                V=[_|W],
16584                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16585                         W),
16586                (   W=[X|_]
16587                ->  setarg(5, X, _)
16588                ;   true
16589                )
16590            ;   U=[_, _|W],
16591                setarg(2, U, W),
16592                (   W=[X|_]
16593                ->  setarg(5, X, U)
16594                ;   true
16595                )
16596            ),
16597            'detach_known/1_1_$special_==/2___2'(T, C)
16598        )
16599    ),
16600    'known/1_1_$special_fail/0'.
16601'known/1_1_$special_==/2___2__2'(A, B, C) :-
16602    (   'chr newvia_2'(A, B, D)
16603    ->  get_attr(D, guard_entailment, E),
16604        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _)
16605    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16606                  F)
16607    ),
16608    member(G, F),
16609    G=suspension(_, active, _, _, _, H, I),
16610    H==A,
16611    I==B,
16612    !,
16613    G=suspension(_, _, _, _, _, J, K),
16614    setarg(2, G, removed),
16615    term_variables(term(J, K), L),
16616    arg(5, G, M),
16617    (   var(M)
16618    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16619                  N),
16620        N=[_|O],
16621        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16622                 O),
16623        (   O=[P|_]
16624        ->  setarg(5, P, _)
16625        ;   true
16626        )
16627    ;   M=[_, _|O],
16628        setarg(2, M, O),
16629        (   O=[P|_]
16630        ->  setarg(5, P, M)
16631        ;   true
16632        )
16633    ),
16634    'detach_known/1_1_$special_\\==/2___2'(L, G),
16635    (   var(C)
16636    ->  true
16637    ;   C=suspension(_, Q, _, _, _, R, S),
16638        setarg(2, C, removed),
16639        (   Q==not_stored_yet
16640        ->  T=[]
16641        ;   term_variables(term(R, S), T),
16642            arg(5, C, U),
16643            (   var(U)
16644            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16645                          V),
16646                V=[_|W],
16647                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16648                         W),
16649                (   W=[X|_]
16650                ->  setarg(5, X, _)
16651                ;   true
16652                )
16653            ;   U=[_, _|W],
16654                setarg(2, U, W),
16655                (   W=[X|_]
16656                ->  setarg(5, X, U)
16657                ;   true
16658                )
16659            ),
16660            'detach_known/1_1_$special_==/2___2'(T, C)
16661        )
16662    ),
16663    'known/1_1_$special_fail/0'.
16664'known/1_1_$special_==/2___2__2'(A, B, C) :-
16665    (   'chr newvia_1'(B, D)
16666    ->  get_attr(D, guard_entailment, E),
16667        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _)
16668    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16669                  F)
16670    ),
16671    !,
16672    'known/1_1_$special_==/2___2__2__0__10'(F, A, B, C).
16673'known/1_1_$special_==/2___2__2__0__10'([], A, B, C) :-
16674    'known/1_1_$special_==/2___2__3'(A, B, C).
16675'known/1_1_$special_==/2___2__2__0__10'([A|B], C, D, E) :-
16676    (   A=suspension(_, active, _, _, _, F, G),
16677        F==D,
16678        H=t(228, E, A),
16679        '$novel_production'(E, H),
16680        '$novel_production'(A, H)
16681    ->  '$extend_history'(E, H),
16682        arg(2, E, I),
16683        setarg(2, E, active),
16684        ( arg(4, E, J),
16685          K is J+1,
16686          setarg(4, E, K)
16687        ),
16688        (   I==not_stored_yet
16689        ->  E=suspension(_, _, _, _, _, L, M),
16690            term_variables(term(L, M), N),
16691            'chr none_locked'(N),
16692            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16693                      O),
16694            P=[E|O],
16695            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16696                     P),
16697            (   O=[Q|_]
16698            ->  setarg(5, Q, P)
16699            ;   true
16700            ),
16701            'attach_known/1_1_$special_==/2___2'(N, E)
16702        ;   true
16703        ),
16704        'known/1_1_$special_==/2'(C, G),
16705        (   E=suspension(_, active, _, K, _, _, _)
16706        ->  setarg(2, E, inactive),
16707            'known/1_1_$special_==/2___2__2__0__10'(B,
16708                                                    C,
16709                                                    D,
16710                                                    E)
16711        ;   true
16712        )
16713    ;   'known/1_1_$special_==/2___2__2__0__10'(B, C, D, E)
16714    ).
16715'known/1_1_$special_==/2___2__2'(A, B, C) :-
16716    'known/1_1_$special_==/2___2__3'(A, B, C).
16717'known/1_1_$special_==/2___2__3'(A, B, C) :-
16718    (   'chr newvia_1'(A, D)
16719    ->  get_attr(D, guard_entailment, E),
16720        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _)
16721    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16722                  F)
16723    ),
16724    !,
16725    'known/1_1_$special_==/2___2__3__0__11'(F, A, B, C).
16726'known/1_1_$special_==/2___2__3__0__11'([], A, B, C) :-
16727    'known/1_1_$special_==/2___2__4'(A, B, C).
16728'known/1_1_$special_==/2___2__3__0__11'([A|B], C, D, E) :-
16729    (   A=suspension(_, active, _, _, _, F, G),
16730        G==C,
16731        H=t(228, A, E),
16732        '$novel_production'(A, H),
16733        '$novel_production'(E, H)
16734    ->  '$extend_history'(E, H),
16735        arg(2, E, I),
16736        setarg(2, E, active),
16737        ( arg(4, E, J),
16738          K is J+1,
16739          setarg(4, E, K)
16740        ),
16741        (   I==not_stored_yet
16742        ->  E=suspension(_, _, _, _, _, L, M),
16743            term_variables(term(L, M), N),
16744            'chr none_locked'(N),
16745            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16746                      O),
16747            P=[E|O],
16748            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16749                     P),
16750            (   O=[Q|_]
16751            ->  setarg(5, Q, P)
16752            ;   true
16753            ),
16754            'attach_known/1_1_$special_==/2___2'(N, E)
16755        ;   true
16756        ),
16757        'known/1_1_$special_==/2'(F, D),
16758        (   E=suspension(_, active, _, K, _, _, _)
16759        ->  setarg(2, E, inactive),
16760            'known/1_1_$special_==/2___2__3__0__11'(B,
16761                                                    C,
16762                                                    D,
16763                                                    E)
16764        ;   true
16765        )
16766    ;   'known/1_1_$special_==/2___2__3__0__11'(B, C, D, E)
16767    ).
16768'known/1_1_$special_==/2___2__3'(A, B, C) :-
16769    'known/1_1_$special_==/2___2__4'(A, B, C).
16770'known/1_1_$special_==/2___2__4'(A, B, C) :-
16771    (   'chr newvia_1'(B, D)
16772    ->  get_attr(D, guard_entailment, E),
16773        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _)
16774    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16775                  F)
16776    ),
16777    !,
16778    'known/1_1_$special_==/2___2__4__0__12'(F, A, B, C).
16779'known/1_1_$special_==/2___2__4__0__12'([], A, B, C) :-
16780    'known/1_1_$special_==/2___2__5'(A, B, C).
16781'known/1_1_$special_==/2___2__4__0__12'([A|B], C, D, E) :-
16782    (   A=suspension(_, active, _, _, _, F, G),
16783        F==D,
16784        H=t(229, E, A),
16785        '$novel_production'(E, H),
16786        '$novel_production'(A, H)
16787    ->  '$extend_history'(E, H),
16788        arg(2, E, I),
16789        setarg(2, E, active),
16790        ( arg(4, E, J),
16791          K is J+1,
16792          setarg(4, E, K)
16793        ),
16794        (   I==not_stored_yet
16795        ->  E=suspension(_, _, _, _, _, L, M),
16796            term_variables(term(L, M), N),
16797            'chr none_locked'(N),
16798            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16799                      O),
16800            P=[E|O],
16801            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16802                     P),
16803            (   O=[Q|_]
16804            ->  setarg(5, Q, P)
16805            ;   true
16806            ),
16807            'attach_known/1_1_$special_==/2___2'(N, E)
16808        ;   true
16809        ),
16810        'known/1_1_$special_\\==/2'(C, G),
16811        (   E=suspension(_, active, _, K, _, _, _)
16812        ->  setarg(2, E, inactive),
16813            'known/1_1_$special_==/2___2__4__0__12'(B,
16814                                                    C,
16815                                                    D,
16816                                                    E)
16817        ;   true
16818        )
16819    ;   'known/1_1_$special_==/2___2__4__0__12'(B, C, D, E)
16820    ).
16821'known/1_1_$special_==/2___2__4'(A, B, C) :-
16822    'known/1_1_$special_==/2___2__5'(A, B, C).
16823'known/1_1_$special_==/2___2__5'(A, B, C) :-
16824    '$novel_production'(C, 230),
16825    !,
16826    '$extend_history'(C, 230),
16827    arg(2, C, D),
16828    setarg(2, C, active),
16829    arg(4, C, E),
16830    F is E+1,
16831    setarg(4, C, F),
16832    (   D==not_stored_yet
16833    ->  C=suspension(_, _, _, _, _, G, H),
16834        term_variables(term(G, H), I),
16835        'chr none_locked'(I),
16836        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16837                  J),
16838        K=[C|J],
16839        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16840                 K),
16841        (   J=[L|_]
16842        ->  setarg(5, L, K)
16843        ;   true
16844        ),
16845        'attach_known/1_1_$special_==/2___2'(I, C)
16846    ;   true
16847    ),
16848    'known/1_1_$special_==/2'(B, A),
16849    (   C=suspension(_, active, _, F, _, _, _)
16850    ->  setarg(2, C, inactive),
16851        'known/1_1_$special_==/2___2__6'(A, B, C)
16852    ;   true
16853    ).
16854'known/1_1_$special_==/2___2__5'(A, B, C) :-
16855    'known/1_1_$special_==/2___2__6'(A, B, C).
16856'known/1_1_$special_==/2___2__6'(A, B, C) :-
16857    '$novel_production'(C, 234),
16858    !,
16859    '$extend_history'(C, 234),
16860    arg(2, C, D),
16861    setarg(2, C, active),
16862    arg(4, C, E),
16863    F is E+1,
16864    setarg(4, C, F),
16865    (   D==not_stored_yet
16866    ->  C=suspension(_, _, _, _, _, G, H),
16867        term_variables(term(G, H), I),
16868        'chr none_locked'(I),
16869        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16870                  J),
16871        K=[C|J],
16872        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16873                 K),
16874        (   J=[L|_]
16875        ->  setarg(5, L, K)
16876        ;   true
16877        ),
16878        'attach_known/1_1_$special_==/2___2'(I, C)
16879    ;   true
16880    ),
16881    'known/1_1_$special_=/2'(A, B),
16882    (   C=suspension(_, active, _, F, _, _, _)
16883    ->  setarg(2, C, inactive),
16884        'known/1_1_$special_==/2___2__7'(A, B, C)
16885    ;   true
16886    ).
16887'known/1_1_$special_==/2___2__6'(A, B, C) :-
16888    'known/1_1_$special_==/2___2__7'(A, B, C).
16889'known/1_1_$special_==/2___2__7'(A, B, C) :-
16890    (   'chr newvia_2'(A, B, D)
16891    ->  get_attr(D, guard_entailment, E),
16892        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
16893    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16894                  F)
16895    ),
16896    !,
16897    'known/1_1_$special_==/2___2__7__0__15'(F, A, B, C).
16898'known/1_1_$special_==/2___2__7__0__15'([], A, B, C) :-
16899    'known/1_1_$special_==/2___2__8'(A, B, C).
16900'known/1_1_$special_==/2___2__7__0__15'([A|B], C, D, E) :-
16901    (   A=suspension(_, active, _, _, F, G),
16902        nonvar(F),
16903        F=(\+H),
16904        nonvar(H),
16905        H=(I==J),
16906        I==C,
16907        J==D
16908    ->  A=suspension(_, _, _, _, K, L),
16909        setarg(2, A, removed),
16910        term_variables(term(K, L), M),
16911        ( arg(4, A, N),
16912          (   var(N)
16913          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16914                        O),
16915              O=[_|P],
16916              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16917                       P),
16918              (   P=[Q|_]
16919              ->  setarg(4, Q, _)
16920              ;   true
16921              )
16922          ;   N=[_, _|P],
16923              setarg(2, N, P),
16924              (   P=[Q|_]
16925              ->  setarg(4, Q, N)
16926              ;   true
16927              )
16928          )
16929        ),
16930        'detach_known/1_1_$special_;/2___2'(M, A),
16931        arg(2, E, R),
16932        setarg(2, E, active),
16933        ( arg(4, E, S),
16934          T is S+1,
16935          setarg(4, E, T)
16936        ),
16937        (   R==not_stored_yet
16938        ->  E=suspension(_, _, _, _, _, U, V),
16939            term_variables(term(U, V), W),
16940            'chr none_locked'(W),
16941            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16942                      X),
16943            Y=[E|X],
16944            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16945                     Y),
16946            (   X=[Z|_]
16947            ->  setarg(5, Z, Y)
16948            ;   true
16949            ),
16950            'attach_known/1_1_$special_==/2___2'(W, E)
16951        ;   true
16952        ),
16953        known(G),
16954        (   E=suspension(_, active, _, T, _, _, _)
16955        ->  setarg(2, E, inactive),
16956            'known/1_1_$special_==/2___2__7__0__15'(B,
16957                                                    C,
16958                                                    D,
16959                                                    E)
16960        ;   true
16961        )
16962    ;   'known/1_1_$special_==/2___2__7__0__15'(B, C, D, E)
16963    ).
16964'known/1_1_$special_==/2___2__7'(A, B, C) :-
16965    'known/1_1_$special_==/2___2__8'(A, B, C).
16966'known/1_1_$special_==/2___2__8'(A, B, C) :-
16967    (   'chr newvia_2'(A, B, D)
16968    ->  get_attr(D, guard_entailment, E),
16969        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
16970    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16971                  F)
16972    ),
16973    !,
16974    'known/1_1_$special_==/2___2__8__0__16'(F, A, B, C).
16975'known/1_1_$special_==/2___2__8__0__16'([], A, B, C) :-
16976    'known/1_1_$special_==/2___2__9'(A, B, C).
16977'known/1_1_$special_==/2___2__8__0__16'([A|B], C, D, E) :-
16978    (   A=suspension(_, active, _, _, F, G),
16979        nonvar(F),
16980        F=(H, _),
16981        nonvar(H),
16982        H=(\+I),
16983        nonvar(I),
16984        I=(J==K),
16985        J==C,
16986        K==D
16987    ->  A=suspension(_, _, _, _, L, M),
16988        setarg(2, A, removed),
16989        term_variables(term(L, M), N),
16990        ( arg(4, A, O),
16991          (   var(O)
16992          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16993                        P),
16994              P=[_|Q],
16995              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16996                       Q),
16997              (   Q=[R|_]
16998              ->  setarg(4, R, _)
16999              ;   true
17000              )
17001          ;   O=[_, _|Q],
17002              setarg(2, O, Q),
17003              (   Q=[R|_]
17004              ->  setarg(4, R, O)
17005              ;   true
17006              )
17007          )
17008        ),
17009        'detach_known/1_1_$special_;/2___2'(N, A),
17010        arg(2, E, S),
17011        setarg(2, E, active),
17012        ( arg(4, E, T),
17013          U is T+1,
17014          setarg(4, E, U)
17015        ),
17016        (   S==not_stored_yet
17017        ->  E=suspension(_, _, _, _, _, V, W),
17018            term_variables(term(V, W), X),
17019            'chr none_locked'(X),
17020            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17021                      Y),
17022            Z=[E|Y],
17023            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17024                     Z),
17025            (   Y=[A1|_]
17026            ->  setarg(5, A1, Z)
17027            ;   true
17028            ),
17029            'attach_known/1_1_$special_==/2___2'(X, E)
17030        ;   true
17031        ),
17032        known(G),
17033        (   E=suspension(_, active, _, U, _, _, _)
17034        ->  setarg(2, E, inactive),
17035            'known/1_1_$special_==/2___2__8__0__16'(B,
17036                                                    C,
17037                                                    D,
17038                                                    E)
17039        ;   true
17040        )
17041    ;   'known/1_1_$special_==/2___2__8__0__16'(B, C, D, E)
17042    ).
17043'known/1_1_$special_==/2___2__8'(A, B, C) :-
17044    'known/1_1_$special_==/2___2__9'(A, B, C).
17045'known/1_1_$special_==/2___2__9'(_, _, A) :-
17046    arg(2, A, B),
17047    setarg(2, A, active),
17048    arg(4, A, C),
17049    D is C+1,
17050    setarg(4, A, D),
17051    (   B==not_stored_yet
17052    ->  A=suspension(_, _, _, _, _, E, F),
17053        term_variables(term(E, F), G),
17054        'chr none_locked'(G),
17055        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17056                  H),
17057        I=[A|H],
17058        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17059                 I),
17060        (   H=[J|_]
17061        ->  setarg(5, J, I)
17062        ;   true
17063        ),
17064        'attach_known/1_1_$special_==/2___2'(G, A)
17065    ;   true
17066    ).
17067'known/1_1_$special_is/2'(A, B) :-
17068    'known/1_1_$special_=:=/2'(A, B).
17069'known/1_1_$special_</2'(A, B) :-
17070    'known/1_1_$special_=</2'(A, B),
17071    'known/1_1_$special_=\\=/2'(A, B).
17072'known/1_1_$special_>=/2'(A, B) :-
17073    'known/1_1_$special_=</2'(B, A).
17074'known/1_1_$special_>/2'(A, B) :-
17075    'known/1_1_$special_</2'(B, A).
17076'known/1_1_$special_=</2'(A, B) :-
17077    'known/1_1_$special_=</2___2__0'(A, B, _).
17078'known/1_1_$special_=</2___2__0'(A, B, C) :-
17079    (   'chr newvia_2'(A, B, D)
17080    ->  get_attr(D, guard_entailment, E),
17081        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _)
17082    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17083                  F)
17084    ),
17085    member(G, F),
17086    G=suspension(_, active, _, _, _, H, I),
17087    H==A,
17088    I==B,
17089    !,
17090    (   var(C)
17091    ->  true
17092    ;   C=suspension(_, J, _, _, _, K, L),
17093        setarg(2, C, removed),
17094        (   J==not_stored_yet
17095        ->  M=[]
17096        ;   term_variables(term(K, L), M),
17097            arg(5, C, N),
17098            (   var(N)
17099            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17100                          O),
17101                O=[_|P],
17102                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17103                         P),
17104                (   P=[Q|_]
17105                ->  setarg(5, Q, _)
17106                ;   true
17107                )
17108            ;   N=[_, _|P],
17109                setarg(2, N, P),
17110                (   P=[Q|_]
17111                ->  setarg(5, Q, N)
17112                ;   true
17113                )
17114            ),
17115            'detach_known/1_1_$special_=</2___2'(M, C)
17116        )
17117    ).
17118'known/1_1_$special_=</2___2__0'(_, _, A) :-
17119    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
17120              B),
17121    member(C, B),
17122    C=suspension(_, active, _),
17123    !,
17124    (   var(A)
17125    ->  true
17126    ;   A=suspension(_, D, _, _, _, E, F),
17127        setarg(2, A, removed),
17128        (   D==not_stored_yet
17129        ->  G=[]
17130        ;   term_variables(term(E, F), G),
17131            arg(5, A, H),
17132            (   var(H)
17133            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17134                          I),
17135                I=[_|J],
17136                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17137                         J),
17138                (   J=[K|_]
17139                ->  setarg(5, K, _)
17140                ;   true
17141                )
17142            ;   H=[_, _|J],
17143                setarg(2, H, J),
17144                (   J=[K|_]
17145                ->  setarg(5, K, H)
17146                ;   true
17147                )
17148            ),
17149            'detach_known/1_1_$special_=</2___2'(G, A)
17150        )
17151    ).
17152'known/1_1_$special_=</2___2__0'(A, B, C) :-
17153    B==A,
17154    !,
17155    (   var(C)
17156    ->  true
17157    ;   C=suspension(_, D, _, _, _, E, F),
17158        setarg(2, C, removed),
17159        (   D==not_stored_yet
17160        ->  G=[]
17161        ;   term_variables(term(E, F), G),
17162            arg(5, C, H),
17163            (   var(H)
17164            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17165                          I),
17166                I=[_|J],
17167                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17168                         J),
17169                (   J=[K|_]
17170                ->  setarg(5, K, _)
17171                ;   true
17172                )
17173            ;   H=[_, _|J],
17174                setarg(2, H, J),
17175                (   J=[K|_]
17176                ->  setarg(5, K, H)
17177                ;   true
17178                )
17179            ),
17180            'detach_known/1_1_$special_=</2___2'(G, C)
17181        )
17182    ).
17183'known/1_1_$special_=</2___2__0'(A, B, C) :-
17184    number(B),
17185    (   number(A),
17186        A>B,
17187        !,
17188        (   var(C)
17189        ->  true
17190        ;   C=suspension(_, D, _, _, _, E, F),
17191            setarg(2, C, removed),
17192            (   D==not_stored_yet
17193            ->  G=[]
17194            ;   term_variables(term(E, F), G),
17195                arg(5, C, H),
17196                (   var(H)
17197                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17198                              I),
17199                    I=[_|J],
17200                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17201                             J),
17202                    (   J=[K|_]
17203                    ->  setarg(5, K, _)
17204                    ;   true
17205                    )
17206                ;   H=[_, _|J],
17207                    setarg(2, H, J),
17208                    (   J=[K|_]
17209                    ->  setarg(5, K, H)
17210                    ;   true
17211                    )
17212                ),
17213                'detach_known/1_1_$special_=</2___2'(G, C)
17214            )
17215        ),
17216        'known/1_1_$special_fail/0'
17217    ;   (   'chr newvia_1'(A, L)
17218        ->  get_attr(L, guard_entailment, M),
17219            M=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, N, _)
17220        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17221                      N)
17222        ),
17223        member(O, N),
17224        O=suspension(_, active, _, _, _, P, Q),
17225        P==A,
17226        number(Q),
17227        Q=<B,
17228        !,
17229        (   var(C)
17230        ->  true
17231        ;   C=suspension(_, R, _, _, _, S, T),
17232            setarg(2, C, removed),
17233            (   R==not_stored_yet
17234            ->  U=[]
17235            ;   term_variables(term(S, T), U),
17236                arg(5, C, V),
17237                (   var(V)
17238                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17239                              W),
17240                    W=[_|X],
17241                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17242                             X),
17243                    (   X=[Y|_]
17244                    ->  setarg(5, Y, _)
17245                    ;   true
17246                    )
17247                ;   V=[_, _|X],
17248                    setarg(2, V, X),
17249                    (   X=[Y|_]
17250                    ->  setarg(5, Y, V)
17251                    ;   true
17252                    )
17253                ),
17254                'detach_known/1_1_$special_=</2___2'(U, C)
17255            )
17256        )
17257    ).
17258'known/1_1_$special_=</2___2__0'(A, B, C) :-
17259    (   'chr newvia_1'(A, D)
17260    ->  get_attr(D, guard_entailment, E),
17261        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _)
17262    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17263                  F)
17264    ),
17265    !,
17266    'known/1_1_$special_=</2___2__0__0__12'(F, A, B, C).
17267'known/1_1_$special_=</2___2__0__0__12'([], A, B, C) :-
17268    'known/1_1_$special_=</2___2__1'(A, B, C).
17269'known/1_1_$special_=</2___2__0__0__12'([A|B], C, D, E) :-
17270    (   A=suspension(_, active, _, _, _, F, G),
17271        F==C,
17272        number(G),
17273        number(D),
17274        D=<G
17275    ->  A=suspension(_, _, _, _, _, H, I),
17276        setarg(2, A, removed),
17277        term_variables(term(H, I), J),
17278        ( arg(5, A, K),
17279          (   var(K)
17280          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17281                        L),
17282              L=[_|M],
17283              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17284                       M),
17285              (   M=[N|_]
17286              ->  setarg(5, N, _)
17287              ;   true
17288              )
17289          ;   K=[_, _|M],
17290              setarg(2, K, M),
17291              (   M=[N|_]
17292              ->  setarg(5, N, K)
17293              ;   true
17294              )
17295          )
17296        ),
17297        'detach_known/1_1_$special_=</2___2'(J, A),
17298        'known/1_1_$special_=</2___2__0__0__12'(B, C, D, E)
17299    ;   'known/1_1_$special_=</2___2__0__0__12'(B, C, D, E)
17300    ).
17301'known/1_1_$special_=</2___2__0'(A, B, C) :-
17302    'known/1_1_$special_=</2___2__1'(A, B, C).
17303'known/1_1_$special_=</2___2__1'(A, B, C) :-
17304    number(A),
17305    (   'chr newvia_1'(B, D)
17306    ->  get_attr(D, guard_entailment, E),
17307        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _)
17308    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17309                  F)
17310    ),
17311    member(G, F),
17312    G=suspension(_, active, _, _, _, H, I),
17313    I==B,
17314    number(H),
17315    A=<H,
17316    !,
17317    (   var(C)
17318    ->  true
17319    ;   C=suspension(_, J, _, _, _, K, L),
17320        setarg(2, C, removed),
17321        (   J==not_stored_yet
17322        ->  M=[]
17323        ;   term_variables(term(K, L), M),
17324            arg(5, C, N),
17325            (   var(N)
17326            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17327                          O),
17328                O=[_|P],
17329                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17330                         P),
17331                (   P=[Q|_]
17332                ->  setarg(5, Q, _)
17333                ;   true
17334                )
17335            ;   N=[_, _|P],
17336                setarg(2, N, P),
17337                (   P=[Q|_]
17338                ->  setarg(5, Q, N)
17339                ;   true
17340                )
17341            ),
17342            'detach_known/1_1_$special_=</2___2'(M, C)
17343        )
17344    ).
17345'known/1_1_$special_=</2___2__1'(A, B, C) :-
17346    (   'chr newvia_1'(B, D)
17347    ->  get_attr(D, guard_entailment, E),
17348        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _)
17349    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17350                  F)
17351    ),
17352    !,
17353    'known/1_1_$special_=</2___2__1__0__14'(F, A, B, C).
17354'known/1_1_$special_=</2___2__1__0__14'([], A, B, C) :-
17355    'known/1_1_$special_=</2___2__2'(A, B, C).
17356'known/1_1_$special_=</2___2__1__0__14'([A|B], C, D, E) :-
17357    (   A=suspension(_, active, _, _, _, F, G),
17358        G==D,
17359        number(C),
17360        number(F),
17361        F=<C
17362    ->  A=suspension(_, _, _, _, _, H, I),
17363        setarg(2, A, removed),
17364        term_variables(term(H, I), J),
17365        ( arg(5, A, K),
17366          (   var(K)
17367          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17368                        L),
17369              L=[_|M],
17370              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17371                       M),
17372              (   M=[N|_]
17373              ->  setarg(5, N, _)
17374              ;   true
17375              )
17376          ;   K=[_, _|M],
17377              setarg(2, K, M),
17378              (   M=[N|_]
17379              ->  setarg(5, N, K)
17380              ;   true
17381              )
17382          )
17383        ),
17384        'detach_known/1_1_$special_=</2___2'(J, A),
17385        'known/1_1_$special_=</2___2__1__0__14'(B, C, D, E)
17386    ;   'known/1_1_$special_=</2___2__1__0__14'(B, C, D, E)
17387    ).
17388'known/1_1_$special_=</2___2__1'(A, B, C) :-
17389    'known/1_1_$special_=</2___2__2'(A, B, C).
17390'known/1_1_$special_=</2___2__2'(A, B, C) :-
17391    (   'chr newvia_2'(B, A, D)
17392    ->  get_attr(D, guard_entailment, E),
17393        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _)
17394    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17395                  F)
17396    ),
17397    member(G, F),
17398    G=suspension(_, active, _, _, _, H, I),
17399    H==B,
17400    I==A,
17401    !,
17402    G=suspension(_, _, _, _, _, J, K),
17403    setarg(2, G, removed),
17404    term_variables(term(J, K), L),
17405    arg(5, G, M),
17406    (   var(M)
17407    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17408                  N),
17409        N=[_|O],
17410        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17411                 O),
17412        (   O=[P|_]
17413        ->  setarg(5, P, _)
17414        ;   true
17415        )
17416    ;   M=[_, _|O],
17417        setarg(2, M, O),
17418        (   O=[P|_]
17419        ->  setarg(5, P, M)
17420        ;   true
17421        )
17422    ),
17423    'detach_known/1_1_$special_=</2___2'(L, G),
17424    (   var(C)
17425    ->  true
17426    ;   C=suspension(_, Q, _, _, _, R, S),
17427        setarg(2, C, removed),
17428        (   Q==not_stored_yet
17429        ->  T=[]
17430        ;   term_variables(term(R, S), T),
17431            arg(5, C, U),
17432            (   var(U)
17433            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17434                          V),
17435                V=[_|W],
17436                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17437                         W),
17438                (   W=[X|_]
17439                ->  setarg(5, X, _)
17440                ;   true
17441                )
17442            ;   U=[_, _|W],
17443                setarg(2, U, W),
17444                (   W=[X|_]
17445                ->  setarg(5, X, U)
17446                ;   true
17447                )
17448            ),
17449            'detach_known/1_1_$special_=</2___2'(T, C)
17450        )
17451    ),
17452    'known/1_1_$special_=:=/2'(A, B).
17453'known/1_1_$special_=</2___2__2'(A, B, C) :-
17454    (   'chr newvia_1'(B, D)
17455    ->  get_attr(D, guard_entailment, E),
17456        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _)
17457    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17458                  F)
17459    ),
17460    !,
17461    (   var(C)
17462    ->  C=suspension(G, not_stored_yet, t, 0, _, A, B),
17463        'chr gen_id'(G)
17464    ;   true
17465    ),
17466    'known/1_1_$special_=</2___2__2__0__17'(F, A, B, C).
17467'known/1_1_$special_=</2___2__2__0__17'([], A, B, C) :-
17468    'known/1_1_$special_=</2___2__3'(A, B, C).
17469'known/1_1_$special_=</2___2__2__0__17'([A|B], C, D, E) :-
17470    (   A=suspension(_, active, _, _, _, F, G),
17471        F==D,
17472        H=t(187, E, A),
17473        '$novel_production'(E, H),
17474        '$novel_production'(A, H)
17475    ->  '$extend_history'(E, H),
17476        arg(2, E, I),
17477        setarg(2, E, active),
17478        ( arg(4, E, J),
17479          K is J+1,
17480          setarg(4, E, K)
17481        ),
17482        (   I==not_stored_yet
17483        ->  E=suspension(_, _, _, _, _, L, M),
17484            term_variables(term(L, M), N),
17485            'chr none_locked'(N),
17486            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17487                      O),
17488            P=[E|O],
17489            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17490                     P),
17491            (   O=[Q|_]
17492            ->  setarg(5, Q, P)
17493            ;   true
17494            ),
17495            'attach_known/1_1_$special_=</2___2'(N, E)
17496        ;   true
17497        ),
17498        'known/1_1_$special_=</2'(C, G),
17499        (   E=suspension(_, active, _, K, _, _, _)
17500        ->  setarg(2, E, inactive),
17501            'known/1_1_$special_=</2___2__2__0__17'(B,
17502                                                    C,
17503                                                    D,
17504                                                    E)
17505        ;   true
17506        )
17507    ;   'known/1_1_$special_=</2___2__2__0__17'(B, C, D, E)
17508    ).
17509'known/1_1_$special_=</2___2__2'(A, B, C) :-
17510    (   var(C)
17511    ->  C=suspension(D, not_stored_yet, t, 0, _, A, B),
17512        'chr gen_id'(D)
17513    ;   true
17514    ),
17515    'known/1_1_$special_=</2___2__3'(A, B, C).
17516'known/1_1_$special_=</2___2__3'(A, B, C) :-
17517    (   'chr newvia_1'(A, D)
17518    ->  get_attr(D, guard_entailment, E),
17519        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _)
17520    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17521                  F)
17522    ),
17523    !,
17524    'known/1_1_$special_=</2___2__3__0__18'(F, A, B, C).
17525'known/1_1_$special_=</2___2__3__0__18'([], A, B, C) :-
17526    'known/1_1_$special_=</2___2__4'(A, B, C).
17527'known/1_1_$special_=</2___2__3__0__18'([A|B], C, D, E) :-
17528    (   A=suspension(_, active, _, _, _, F, G),
17529        G==C,
17530        H=t(187, A, E),
17531        '$novel_production'(A, H),
17532        '$novel_production'(E, H)
17533    ->  '$extend_history'(E, H),
17534        arg(2, E, I),
17535        setarg(2, E, active),
17536        ( arg(4, E, J),
17537          K is J+1,
17538          setarg(4, E, K)
17539        ),
17540        (   I==not_stored_yet
17541        ->  E=suspension(_, _, _, _, _, L, M),
17542            term_variables(term(L, M), N),
17543            'chr none_locked'(N),
17544            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17545                      O),
17546            P=[E|O],
17547            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17548                     P),
17549            (   O=[Q|_]
17550            ->  setarg(5, Q, P)
17551            ;   true
17552            ),
17553            'attach_known/1_1_$special_=</2___2'(N, E)
17554        ;   true
17555        ),
17556        'known/1_1_$special_=</2'(F, D),
17557        (   E=suspension(_, active, _, K, _, _, _)
17558        ->  setarg(2, E, inactive),
17559            'known/1_1_$special_=</2___2__3__0__18'(B,
17560                                                    C,
17561                                                    D,
17562                                                    E)
17563        ;   true
17564        )
17565    ;   'known/1_1_$special_=</2___2__3__0__18'(B, C, D, E)
17566    ).
17567'known/1_1_$special_=</2___2__3'(A, B, C) :-
17568    'known/1_1_$special_=</2___2__4'(A, B, C).
17569'known/1_1_$special_=</2___2__4'(A, B, C) :-
17570    (   'chr newvia_1'(B, D)
17571    ->  get_attr(D, guard_entailment, E),
17572        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _, _, _)
17573    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
17574                  F)
17575    ),
17576    !,
17577    'known/1_1_$special_=</2___2__4__0__19'(F, A, B, C).
17578'known/1_1_$special_=</2___2__4__0__19'([], A, B, C) :-
17579    'known/1_1_$special_=</2___2__5'(A, B, C).
17580'known/1_1_$special_=</2___2__4__0__19'([A|B], C, D, E) :-
17581    (   A=suspension(_, active, _, _, _, F, G),
17582        F==D,
17583        (   'chr newvia_2'(D, G, H)
17584        ->  get_attr(H, guard_entailment, I),
17585            I=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, J, _)
17586        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17587                      J)
17588        )
17589    ->  'known/1_1_$special_=</2___2__4__1__19'(J,
17590                                                G,
17591                                                A,
17592                                                B,
17593                                                C,
17594                                                D,
17595                                                E)
17596    ;   'known/1_1_$special_=</2___2__4__0__19'(B, C, D, E)
17597    ).
17598'known/1_1_$special_=</2___2__4__1__19'([], _, _, A, B, C, D) :-
17599    'known/1_1_$special_=</2___2__4__0__19'(A, B, C, D).
17600'known/1_1_$special_=</2___2__4__1__19'([A|B], C, D, E, F, G, H) :-
17601    (   A=suspension(_, active, _, _, _, I, J),
17602        I==G,
17603        J==C,
17604        (   'chr newvia_2'(F, G, K)
17605        ->  get_attr(K, guard_entailment, L),
17606            L=v(_, _, _, _, _, _, _, _, _, _, _, _, _, M, _, _, _, _, _, _, _, _)
17607        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
17608                      M)
17609        )
17610    ->  'known/1_1_$special_=</2___2__4__2__19'(M,
17611                                                A,
17612                                                B,
17613                                                C,
17614                                                D,
17615                                                E,
17616                                                F,
17617                                                G,
17618                                                H)
17619    ;   'known/1_1_$special_=</2___2__4__1__19'(B,
17620                                                C,
17621                                                D,
17622                                                E,
17623                                                F,
17624                                                G,
17625                                                H)
17626    ).
17627'known/1_1_$special_=</2___2__4__2__19'([], _, A, B, C, D, E, F, G) :-
17628    'known/1_1_$special_=</2___2__4__1__19'(A,
17629                                            B,
17630                                            C,
17631                                            D,
17632                                            E,
17633                                            F,
17634                                            G).
17635'known/1_1_$special_=</2___2__4__2__19'([A|B], C, D, E, F, G, H, I, J) :-
17636    (   A=suspension(_, active, _, _, _, K, L),
17637        A\==F,
17638        K==H,
17639        L==I,
17640        M=t(188, J, A, C, F),
17641        '$novel_production'(J, M),
17642        '$novel_production'(A, M),
17643        '$novel_production'(C, M),
17644        '$novel_production'(F, M)
17645    ->  '$extend_history'(J, M),
17646        arg(2, J, N),
17647        setarg(2, J, active),
17648        ( arg(4, J, O),
17649          P is O+1,
17650          setarg(4, J, P)
17651        ),
17652        (   N==not_stored_yet
17653        ->  J=suspension(_, _, _, _, _, Q, R),
17654            term_variables(term(Q, R), S),
17655            'chr none_locked'(S),
17656            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17657                      T),
17658            U=[J|T],
17659            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17660                     U),
17661            (   T=[V|_]
17662            ->  setarg(5, V, U)
17663            ;   true
17664            ),
17665            'attach_known/1_1_$special_=</2___2'(S, J)
17666        ;   true
17667        ),
17668        'known/1_1_$special_=\\=/2'(H, E),
17669        (   J=suspension(_, active, _, P, _, _, _)
17670        ->  setarg(2, J, inactive),
17671            'known/1_1_$special_=</2___2__4__2__19'(B,
17672                                                    C,
17673                                                    D,
17674                                                    E,
17675                                                    F,
17676                                                    G,
17677                                                    H,
17678                                                    I,
17679                                                    J)
17680        ;   true
17681        )
17682    ;   'known/1_1_$special_=</2___2__4__2__19'(B,
17683                                                C,
17684                                                D,
17685                                                E,
17686                                                F,
17687                                                G,
17688                                                H,
17689                                                I,
17690                                                J)
17691    ).
17692'known/1_1_$special_=</2___2__4'(A, B, C) :-
17693    'known/1_1_$special_=</2___2__5'(A, B, C).
17694'known/1_1_$special_=</2___2__5'(A, B, C) :-
17695    (   'chr newvia_1'(A, D)
17696    ->  get_attr(D, guard_entailment, E),
17697        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _)
17698    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17699                  F)
17700    ),
17701    !,
17702    'known/1_1_$special_=</2___2__5__0__20'(F, A, B, C).
17703'known/1_1_$special_=</2___2__5__0__20'([], A, B, C) :-
17704    'known/1_1_$special_=</2___2__6'(A, B, C).
17705'known/1_1_$special_=</2___2__5__0__20'([A|B], C, D, E) :-
17706    (   A=suspension(_, active, _, _, _, F, G),
17707        G==C,
17708        (   'chr newvia_2'(C, D, H)
17709        ->  get_attr(H, guard_entailment, I),
17710            I=v(_, _, _, _, _, _, _, _, _, _, _, _, _, J, _, _, _, _, _, _, _, _)
17711        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
17712                      J)
17713        )
17714    ->  'known/1_1_$special_=</2___2__5__1__20'(J,
17715                                                F,
17716                                                A,
17717                                                B,
17718                                                C,
17719                                                D,
17720                                                E)
17721    ;   'known/1_1_$special_=</2___2__5__0__20'(B, C, D, E)
17722    ).
17723'known/1_1_$special_=</2___2__5__1__20'([], _, _, A, B, C, D) :-
17724    'known/1_1_$special_=</2___2__5__0__20'(A, B, C, D).
17725'known/1_1_$special_=</2___2__5__1__20'([A|B], C, D, E, F, G, H) :-
17726    (   A=suspension(_, active, _, _, _, I, J),
17727        I==F,
17728        J==G,
17729        (   'chr newvia_2'(C, F, K)
17730        ->  get_attr(K, guard_entailment, L),
17731            L=v(_, _, _, _, _, _, _, _, _, _, _, _, _, M, _, _, _, _, _, _, _, _)
17732        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
17733                      M)
17734        )
17735    ->  'known/1_1_$special_=</2___2__5__2__20'(M,
17736                                                A,
17737                                                B,
17738                                                C,
17739                                                D,
17740                                                E,
17741                                                F,
17742                                                G,
17743                                                H)
17744    ;   'known/1_1_$special_=</2___2__5__1__20'(B,
17745                                                C,
17746                                                D,
17747                                                E,
17748                                                F,
17749                                                G,
17750                                                H)
17751    ).
17752'known/1_1_$special_=</2___2__5__2__20'([], _, A, B, C, D, E, F, G) :-
17753    'known/1_1_$special_=</2___2__5__1__20'(A,
17754                                            B,
17755                                            C,
17756                                            D,
17757                                            E,
17758                                            F,
17759                                            G).
17760'known/1_1_$special_=</2___2__5__2__20'([A|B], C, D, E, F, G, H, I, J) :-
17761    (   A=suspension(_, active, _, _, _, K, L),
17762        A\==C,
17763        K==E,
17764        L==H,
17765        M=t(188, F, A, J, C),
17766        '$novel_production'(F, M),
17767        '$novel_production'(A, M),
17768        '$novel_production'(J, M),
17769        '$novel_production'(C, M)
17770    ->  '$extend_history'(J, M),
17771        arg(2, J, N),
17772        setarg(2, J, active),
17773        ( arg(4, J, O),
17774          P is O+1,
17775          setarg(4, J, P)
17776        ),
17777        (   N==not_stored_yet
17778        ->  J=suspension(_, _, _, _, _, Q, R),
17779            term_variables(term(Q, R), S),
17780            'chr none_locked'(S),
17781            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17782                      T),
17783            U=[J|T],
17784            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17785                     U),
17786            (   T=[V|_]
17787            ->  setarg(5, V, U)
17788            ;   true
17789            ),
17790            'attach_known/1_1_$special_=</2___2'(S, J)
17791        ;   true
17792        ),
17793        'known/1_1_$special_=\\=/2'(E, I),
17794        (   J=suspension(_, active, _, P, _, _, _)
17795        ->  setarg(2, J, inactive),
17796            'known/1_1_$special_=</2___2__5__2__20'(B,
17797                                                    C,
17798                                                    D,
17799                                                    E,
17800                                                    F,
17801                                                    G,
17802                                                    H,
17803                                                    I,
17804                                                    J)
17805        ;   true
17806        )
17807    ;   'known/1_1_$special_=</2___2__5__2__20'(B,
17808                                                C,
17809                                                D,
17810                                                E,
17811                                                F,
17812                                                G,
17813                                                H,
17814                                                I,
17815                                                J)
17816    ).
17817'known/1_1_$special_=</2___2__5'(A, B, C) :-
17818    'known/1_1_$special_=</2___2__6'(A, B, C).
17819'known/1_1_$special_=</2___2__6'(A, B, C) :-
17820    (   'chr newvia_2'(A, B, D)
17821    ->  get_attr(D, guard_entailment, E),
17822        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _, _)
17823    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
17824                  F)
17825    ),
17826    member(G, F),
17827    G=suspension(_, active, _, _, H),
17828    nonvar(H),
17829    H=(I=<J),
17830    I==A,
17831    J==B,
17832    !,
17833    G=suspension(_, _, _, _, K),
17834    setarg(2, G, removed),
17835    term_variables(K, L),
17836    arg(4, G, M),
17837    (   var(M)
17838    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
17839                  N),
17840        N=[_|O],
17841        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
17842                 O),
17843        (   O=[P|_]
17844        ->  setarg(4, P, _)
17845        ;   true
17846        )
17847    ;   M=[_, _|O],
17848        setarg(2, M, O),
17849        (   O=[P|_]
17850        ->  setarg(4, P, M)
17851        ;   true
17852        )
17853    ),
17854    'detach_known/1_1_$special_\\+/1___1'(L, G),
17855    (   var(C)
17856    ->  true
17857    ;   C=suspension(_, Q, _, _, _, R, S),
17858        setarg(2, C, removed),
17859        (   Q==not_stored_yet
17860        ->  T=[]
17861        ;   term_variables(term(R, S), T),
17862            arg(5, C, U),
17863            (   var(U)
17864            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17865                          V),
17866                V=[_|W],
17867                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17868                         W),
17869                (   W=[X|_]
17870                ->  setarg(5, X, _)
17871                ;   true
17872                )
17873            ;   U=[_, _|W],
17874                setarg(2, U, W),
17875                (   W=[X|_]
17876                ->  setarg(5, X, U)
17877                ;   true
17878                )
17879            ),
17880            'detach_known/1_1_$special_=</2___2'(T, C)
17881        )
17882    ),
17883    'known/1_1_$special_fail/0'.
17884'known/1_1_$special_=</2___2__6'(A, B, C) :-
17885    (   'chr newvia_2'(A, B, D)
17886    ->  get_attr(D, guard_entailment, E),
17887        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
17888    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17889                  F)
17890    ),
17891    !,
17892    'known/1_1_$special_=</2___2__6__0__22'(F, A, B, C).
17893'known/1_1_$special_=</2___2__6__0__22'([], A, B, C) :-
17894    'known/1_1_$special_=</2___2__7'(A, B, C).
17895'known/1_1_$special_=</2___2__6__0__22'([A|B], C, D, E) :-
17896    (   A=suspension(_, active, _, _, F, G),
17897        nonvar(F),
17898        F=(\+H),
17899        nonvar(H),
17900        H=(I=<J),
17901        I==C,
17902        J==D
17903    ->  A=suspension(_, _, _, _, K, L),
17904        setarg(2, A, removed),
17905        term_variables(term(K, L), M),
17906        ( arg(4, A, N),
17907          (   var(N)
17908          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17909                        O),
17910              O=[_|P],
17911              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17912                       P),
17913              (   P=[Q|_]
17914              ->  setarg(4, Q, _)
17915              ;   true
17916              )
17917          ;   N=[_, _|P],
17918              setarg(2, N, P),
17919              (   P=[Q|_]
17920              ->  setarg(4, Q, N)
17921              ;   true
17922              )
17923          )
17924        ),
17925        'detach_known/1_1_$special_;/2___2'(M, A),
17926        arg(2, E, R),
17927        setarg(2, E, active),
17928        ( arg(4, E, S),
17929          T is S+1,
17930          setarg(4, E, T)
17931        ),
17932        (   R==not_stored_yet
17933        ->  E=suspension(_, _, _, _, _, U, V),
17934            term_variables(term(U, V), W),
17935            'chr none_locked'(W),
17936            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17937                      X),
17938            Y=[E|X],
17939            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17940                     Y),
17941            (   X=[Z|_]
17942            ->  setarg(5, Z, Y)
17943            ;   true
17944            ),
17945            'attach_known/1_1_$special_=</2___2'(W, E)
17946        ;   true
17947        ),
17948        known(G),
17949        (   E=suspension(_, active, _, T, _, _, _)
17950        ->  setarg(2, E, inactive),
17951            'known/1_1_$special_=</2___2__6__0__22'(B,
17952                                                    C,
17953                                                    D,
17954                                                    E)
17955        ;   true
17956        )
17957    ;   'known/1_1_$special_=</2___2__6__0__22'(B, C, D, E)
17958    ).
17959'known/1_1_$special_=</2___2__6'(A, B, C) :-
17960    'known/1_1_$special_=</2___2__7'(A, B, C).
17961'known/1_1_$special_=</2___2__7'(A, B, C) :-
17962    (   'chr newvia_2'(A, B, D)
17963    ->  get_attr(D, guard_entailment, E),
17964        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
17965    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17966                  F)
17967    ),
17968    !,
17969    'known/1_1_$special_=</2___2__7__0__23'(F, A, B, C).
17970'known/1_1_$special_=</2___2__7__0__23'([], A, B, C) :-
17971    'known/1_1_$special_=</2___2__8'(A, B, C).
17972'known/1_1_$special_=</2___2__7__0__23'([A|B], C, D, E) :-
17973    (   A=suspension(_, active, _, _, F, G),
17974        nonvar(F),
17975        F=(H, _),
17976        nonvar(H),
17977        H=(\+I),
17978        nonvar(I),
17979        I=(J=<K),
17980        J==C,
17981        K==D
17982    ->  A=suspension(_, _, _, _, L, M),
17983        setarg(2, A, removed),
17984        term_variables(term(L, M), N),
17985        ( arg(4, A, O),
17986          (   var(O)
17987          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17988                        P),
17989              P=[_|Q],
17990              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17991                       Q),
17992              (   Q=[R|_]
17993              ->  setarg(4, R, _)
17994              ;   true
17995              )
17996          ;   O=[_, _|Q],
17997              setarg(2, O, Q),
17998              (   Q=[R|_]
17999              ->  setarg(4, R, O)
18000              ;   true
18001              )
18002          )
18003        ),
18004        'detach_known/1_1_$special_;/2___2'(N, A),
18005        arg(2, E, S),
18006        setarg(2, E, active),
18007        ( arg(4, E, T),
18008          U is T+1,
18009          setarg(4, E, U)
18010        ),
18011        (   S==not_stored_yet
18012        ->  E=suspension(_, _, _, _, _, V, W),
18013            term_variables(term(V, W), X),
18014            'chr none_locked'(X),
18015            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18016                      Y),
18017            Z=[E|Y],
18018            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18019                     Z),
18020            (   Y=[A1|_]
18021            ->  setarg(5, A1, Z)
18022            ;   true
18023            ),
18024            'attach_known/1_1_$special_=</2___2'(X, E)
18025        ;   true
18026        ),
18027        known(G),
18028        (   E=suspension(_, active, _, U, _, _, _)
18029        ->  setarg(2, E, inactive),
18030            'known/1_1_$special_=</2___2__7__0__23'(B,
18031                                                    C,
18032                                                    D,
18033                                                    E)
18034        ;   true
18035        )
18036    ;   'known/1_1_$special_=</2___2__7__0__23'(B, C, D, E)
18037    ).
18038'known/1_1_$special_=</2___2__7'(A, B, C) :-
18039    'known/1_1_$special_=</2___2__8'(A, B, C).
18040'known/1_1_$special_=</2___2__8'(_, _, A) :-
18041    arg(2, A, B),
18042    setarg(2, A, active),
18043    arg(4, A, C),
18044    D is C+1,
18045    setarg(4, A, D),
18046    (   B==not_stored_yet
18047    ->  A=suspension(_, _, _, _, _, E, F),
18048        term_variables(term(E, F), G),
18049        'chr none_locked'(G),
18050        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18051                  H),
18052        I=[A|H],
18053        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18054                 I),
18055        (   H=[J|_]
18056        ->  setarg(5, J, I)
18057        ;   true
18058        ),
18059        'attach_known/1_1_$special_=</2___2'(G, A)
18060    ;   true
18061    ).
18062'known/1_1_$special_=:=/2'(A, B) :-
18063    'known/1_1_$special_=:=/2___2__0'(A, B, _).
18064'known/1_1_$special_=:=/2___2__0'(A, B, C) :-
18065    (   'chr newvia_2'(A, B, D)
18066    ->  get_attr(D, guard_entailment, E),
18067        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F)
18068    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18069                  F)
18070    ),
18071    member(G, F),
18072    G=suspension(_, active, _, _, _, H, I),
18073    H==A,
18074    I==B,
18075    !,
18076    (   var(C)
18077    ->  true
18078    ;   C=suspension(_, J, _, _, _, K, L),
18079        setarg(2, C, removed),
18080        (   J==not_stored_yet
18081        ->  M=[]
18082        ;   term_variables(term(K, L), M),
18083            arg(5, C, N),
18084            (   var(N)
18085            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18086                          O),
18087                O=[_|P],
18088                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18089                         P),
18090                (   P=[Q|_]
18091                ->  setarg(5, Q, _)
18092                ;   true
18093                )
18094            ;   N=[_, _|P],
18095                setarg(2, N, P),
18096                (   P=[Q|_]
18097                ->  setarg(5, Q, N)
18098                ;   true
18099                )
18100            ),
18101            'detach_known/1_1_$special_=:=/2___2'(M, C)
18102        )
18103    ).
18104'known/1_1_$special_=:=/2___2__0'(_, _, A) :-
18105    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
18106              B),
18107    member(C, B),
18108    C=suspension(_, active, _),
18109    !,
18110    (   var(A)
18111    ->  true
18112    ;   A=suspension(_, D, _, _, _, E, F),
18113        setarg(2, A, removed),
18114        (   D==not_stored_yet
18115        ->  G=[]
18116        ;   term_variables(term(E, F), G),
18117            arg(5, A, H),
18118            (   var(H)
18119            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18120                          I),
18121                I=[_|J],
18122                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18123                         J),
18124                (   J=[K|_]
18125                ->  setarg(5, K, _)
18126                ;   true
18127                )
18128            ;   H=[_, _|J],
18129                setarg(2, H, J),
18130                (   J=[K|_]
18131                ->  setarg(5, K, H)
18132                ;   true
18133                )
18134            ),
18135            'detach_known/1_1_$special_=:=/2___2'(G, A)
18136        )
18137    ).
18138'known/1_1_$special_=:=/2___2__0'(A, B, C) :-
18139    B==A,
18140    !,
18141    (   var(C)
18142    ->  true
18143    ;   C=suspension(_, D, _, _, _, E, F),
18144        setarg(2, C, removed),
18145        (   D==not_stored_yet
18146        ->  G=[]
18147        ;   term_variables(term(E, F), G),
18148            arg(5, C, H),
18149            (   var(H)
18150            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18151                          I),
18152                I=[_|J],
18153                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18154                         J),
18155                (   J=[K|_]
18156                ->  setarg(5, K, _)
18157                ;   true
18158                )
18159            ;   H=[_, _|J],
18160                setarg(2, H, J),
18161                (   J=[K|_]
18162                ->  setarg(5, K, H)
18163                ;   true
18164                )
18165            ),
18166            'detach_known/1_1_$special_=:=/2___2'(G, C)
18167        )
18168    ).
18169'known/1_1_$special_=:=/2___2__0'(A, B, C) :-
18170    number(B),
18171    number(A),
18172    A=\=B,
18173    !,
18174    (   var(C)
18175    ->  true
18176    ;   C=suspension(_, D, _, _, _, E, F),
18177        setarg(2, C, removed),
18178        (   D==not_stored_yet
18179        ->  G=[]
18180        ;   term_variables(term(E, F), G),
18181            arg(5, C, H),
18182            (   var(H)
18183            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18184                          I),
18185                I=[_|J],
18186                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18187                         J),
18188                (   J=[K|_]
18189                ->  setarg(5, K, _)
18190                ;   true
18191                )
18192            ;   H=[_, _|J],
18193                setarg(2, H, J),
18194                (   J=[K|_]
18195                ->  setarg(5, K, H)
18196                ;   true
18197                )
18198            ),
18199            'detach_known/1_1_$special_=:=/2___2'(G, C)
18200        )
18201    ),
18202    'known/1_1_$special_fail/0'.
18203'known/1_1_$special_=:=/2___2__0'(A, B, C) :-
18204    (   'chr newvia_2'(A, B, D)
18205    ->  get_attr(D, guard_entailment, E),
18206        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _, _, _)
18207    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
18208                  F)
18209    ),
18210    member(G, F),
18211    G=suspension(_, active, _, _, _, H, I),
18212    H==A,
18213    I==B,
18214    !,
18215    G=suspension(_, _, _, _, _, J, K),
18216    setarg(2, G, removed),
18217    term_variables(term(J, K), L),
18218    arg(5, G, M),
18219    (   var(M)
18220    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
18221                  N),
18222        N=[_|O],
18223        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
18224                 O),
18225        (   O=[P|_]
18226        ->  setarg(5, P, _)
18227        ;   true
18228        )
18229    ;   M=[_, _|O],
18230        setarg(2, M, O),
18231        (   O=[P|_]
18232        ->  setarg(5, P, M)
18233        ;   true
18234        )
18235    ),
18236    'detach_known/1_1_$special_=\\=/2___2'(L, G),
18237    (   var(C)
18238    ->  true
18239    ;   C=suspension(_, Q, _, _, _, R, S),
18240        setarg(2, C, removed),
18241        (   Q==not_stored_yet
18242        ->  T=[]
18243        ;   term_variables(term(R, S), T),
18244            arg(5, C, U),
18245            (   var(U)
18246            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18247                          V),
18248                V=[_|W],
18249                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18250                         W),
18251                (   W=[X|_]
18252                ->  setarg(5, X, _)
18253                ;   true
18254                )
18255            ;   U=[_, _|W],
18256                setarg(2, U, W),
18257                (   W=[X|_]
18258                ->  setarg(5, X, U)
18259                ;   true
18260                )
18261            ),
18262            'detach_known/1_1_$special_=:=/2___2'(T, C)
18263        )
18264    ),
18265    'known/1_1_$special_fail/0'.
18266'known/1_1_$special_=:=/2___2__0'(A, B, C) :-
18267    (   'chr newvia_1'(B, D)
18268    ->  get_attr(D, guard_entailment, E),
18269        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F)
18270    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18271                  F)
18272    ),
18273    !,
18274    (   var(C)
18275    ->  C=suspension(G, not_stored_yet, t, 0, _, A, B),
18276        'chr gen_id'(G)
18277    ;   true
18278    ),
18279    'known/1_1_$special_=:=/2___2__0__0__11'(F, A, B, C).
18280'known/1_1_$special_=:=/2___2__0__0__11'([], A, B, C) :-
18281    'known/1_1_$special_=:=/2___2__1'(A, B, C).
18282'known/1_1_$special_=:=/2___2__0__0__11'([A|B], C, D, E) :-
18283    (   A=suspension(_, active, _, _, _, F, G),
18284        F==D,
18285        H=t(193, E, A),
18286        '$novel_production'(E, H),
18287        '$novel_production'(A, H),
18288        C\==G
18289    ->  '$extend_history'(E, H),
18290        arg(2, E, I),
18291        setarg(2, E, active),
18292        ( arg(4, E, J),
18293          K is J+1,
18294          setarg(4, E, K)
18295        ),
18296        (   I==not_stored_yet
18297        ->  E=suspension(_, _, _, _, _, L, M),
18298            term_variables(term(L, M), N),
18299            'chr none_locked'(N),
18300            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18301                      O),
18302            P=[E|O],
18303            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18304                     P),
18305            (   O=[Q|_]
18306            ->  setarg(5, Q, P)
18307            ;   true
18308            ),
18309            'attach_known/1_1_$special_=:=/2___2'(N, E)
18310        ;   true
18311        ),
18312        'known/1_1_$special_=:=/2'(C, G),
18313        (   E=suspension(_, active, _, K, _, _, _)
18314        ->  setarg(2, E, inactive),
18315            'known/1_1_$special_=:=/2___2__0__0__11'(B,
18316                                                     C,
18317                                                     D,
18318                                                     E)
18319        ;   true
18320        )
18321    ;   'known/1_1_$special_=:=/2___2__0__0__11'(B,
18322                                                 C,
18323                                                 D,
18324                                                 E)
18325    ).
18326'known/1_1_$special_=:=/2___2__0'(A, B, C) :-
18327    (   var(C)
18328    ->  C=suspension(D, not_stored_yet, t, 0, _, A, B),
18329        'chr gen_id'(D)
18330    ;   true
18331    ),
18332    'known/1_1_$special_=:=/2___2__1'(A, B, C).
18333'known/1_1_$special_=:=/2___2__1'(A, B, C) :-
18334    (   'chr newvia_1'(A, D)
18335    ->  get_attr(D, guard_entailment, E),
18336        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F)
18337    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18338                  F)
18339    ),
18340    !,
18341    'known/1_1_$special_=:=/2___2__1__0__12'(F, A, B, C).
18342'known/1_1_$special_=:=/2___2__1__0__12'([], A, B, C) :-
18343    'known/1_1_$special_=:=/2___2__2'(A, B, C).
18344'known/1_1_$special_=:=/2___2__1__0__12'([A|B], C, D, E) :-
18345    (   A=suspension(_, active, _, _, _, F, G),
18346        G==C,
18347        H=t(193, A, E),
18348        '$novel_production'(A, H),
18349        '$novel_production'(E, H),
18350        F\==D
18351    ->  '$extend_history'(E, H),
18352        arg(2, E, I),
18353        setarg(2, E, active),
18354        ( arg(4, E, J),
18355          K is J+1,
18356          setarg(4, E, K)
18357        ),
18358        (   I==not_stored_yet
18359        ->  E=suspension(_, _, _, _, _, L, M),
18360            term_variables(term(L, M), N),
18361            'chr none_locked'(N),
18362            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18363                      O),
18364            P=[E|O],
18365            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18366                     P),
18367            (   O=[Q|_]
18368            ->  setarg(5, Q, P)
18369            ;   true
18370            ),
18371            'attach_known/1_1_$special_=:=/2___2'(N, E)
18372        ;   true
18373        ),
18374        'known/1_1_$special_=:=/2'(F, D),
18375        (   E=suspension(_, active, _, K, _, _, _)
18376        ->  setarg(2, E, inactive),
18377            'known/1_1_$special_=:=/2___2__1__0__12'(B,
18378                                                     C,
18379                                                     D,
18380                                                     E)
18381        ;   true
18382        )
18383    ;   'known/1_1_$special_=:=/2___2__1__0__12'(B,
18384                                                 C,
18385                                                 D,
18386                                                 E)
18387    ).
18388'known/1_1_$special_=:=/2___2__1'(A, B, C) :-
18389    'known/1_1_$special_=:=/2___2__2'(A, B, C).
18390'known/1_1_$special_=:=/2___2__2'(A, B, C) :-
18391    '$novel_production'(C, 194),
18392    !,
18393    '$extend_history'(C, 194),
18394    arg(2, C, D),
18395    setarg(2, C, active),
18396    arg(4, C, E),
18397    F is E+1,
18398    setarg(4, C, F),
18399    (   D==not_stored_yet
18400    ->  C=suspension(_, _, _, _, _, G, H),
18401        term_variables(term(G, H), I),
18402        'chr none_locked'(I),
18403        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18404                  J),
18405        K=[C|J],
18406        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18407                 K),
18408        (   J=[L|_]
18409        ->  setarg(5, L, K)
18410        ;   true
18411        ),
18412        'attach_known/1_1_$special_=:=/2___2'(I, C)
18413    ;   true
18414    ),
18415    'known/1_1_$special_=:=/2'(B, A),
18416    (   C=suspension(_, active, _, F, _, _, _)
18417    ->  setarg(2, C, inactive),
18418        'known/1_1_$special_=:=/2___2__3'(A, B, C)
18419    ;   true
18420    ).
18421'known/1_1_$special_=:=/2___2__2'(A, B, C) :-
18422    'known/1_1_$special_=:=/2___2__3'(A, B, C).
18423'known/1_1_$special_=:=/2___2__3'(A, B, C) :-
18424    (   'chr newvia_2'(A, B, D)
18425    ->  get_attr(D, guard_entailment, E),
18426        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _, _)
18427    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
18428                  F)
18429    ),
18430    member(G, F),
18431    G=suspension(_, active, _, _, H),
18432    nonvar(H),
18433    H=(I=:=J),
18434    I==A,
18435    J==B,
18436    !,
18437    G=suspension(_, _, _, _, K),
18438    setarg(2, G, removed),
18439    term_variables(K, L),
18440    arg(4, G, M),
18441    (   var(M)
18442    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
18443                  N),
18444        N=[_|O],
18445        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
18446                 O),
18447        (   O=[P|_]
18448        ->  setarg(4, P, _)
18449        ;   true
18450        )
18451    ;   M=[_, _|O],
18452        setarg(2, M, O),
18453        (   O=[P|_]
18454        ->  setarg(4, P, M)
18455        ;   true
18456        )
18457    ),
18458    'detach_known/1_1_$special_\\+/1___1'(L, G),
18459    (   var(C)
18460    ->  true
18461    ;   C=suspension(_, Q, _, _, _, R, S),
18462        setarg(2, C, removed),
18463        (   Q==not_stored_yet
18464        ->  T=[]
18465        ;   term_variables(term(R, S), T),
18466            arg(5, C, U),
18467            (   var(U)
18468            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18469                          V),
18470                V=[_|W],
18471                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18472                         W),
18473                (   W=[X|_]
18474                ->  setarg(5, X, _)
18475                ;   true
18476                )
18477            ;   U=[_, _|W],
18478                setarg(2, U, W),
18479                (   W=[X|_]
18480                ->  setarg(5, X, U)
18481                ;   true
18482                )
18483            ),
18484            'detach_known/1_1_$special_=:=/2___2'(T, C)
18485        )
18486    ),
18487    'known/1_1_$special_fail/0'.
18488'known/1_1_$special_=:=/2___2__3'(A, B, C) :-
18489    (   'chr newvia_2'(A, B, D)
18490    ->  get_attr(D, guard_entailment, E),
18491        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
18492    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18493                  F)
18494    ),
18495    !,
18496    'known/1_1_$special_=:=/2___2__3__0__15'(F, A, B, C).
18497'known/1_1_$special_=:=/2___2__3__0__15'([], A, B, C) :-
18498    'known/1_1_$special_=:=/2___2__4'(A, B, C).
18499'known/1_1_$special_=:=/2___2__3__0__15'([A|B], C, D, E) :-
18500    (   A=suspension(_, active, _, _, F, G),
18501        nonvar(F),
18502        F=(\+H),
18503        nonvar(H),
18504        H=(I=:=J),
18505        I==C,
18506        J==D
18507    ->  A=suspension(_, _, _, _, K, L),
18508        setarg(2, A, removed),
18509        term_variables(term(K, L), M),
18510        ( arg(4, A, N),
18511          (   var(N)
18512          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18513                        O),
18514              O=[_|P],
18515              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18516                       P),
18517              (   P=[Q|_]
18518              ->  setarg(4, Q, _)
18519              ;   true
18520              )
18521          ;   N=[_, _|P],
18522              setarg(2, N, P),
18523              (   P=[Q|_]
18524              ->  setarg(4, Q, N)
18525              ;   true
18526              )
18527          )
18528        ),
18529        'detach_known/1_1_$special_;/2___2'(M, A),
18530        arg(2, E, R),
18531        setarg(2, E, active),
18532        ( arg(4, E, S),
18533          T is S+1,
18534          setarg(4, E, T)
18535        ),
18536        (   R==not_stored_yet
18537        ->  E=suspension(_, _, _, _, _, U, V),
18538            term_variables(term(U, V), W),
18539            'chr none_locked'(W),
18540            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18541                      X),
18542            Y=[E|X],
18543            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18544                     Y),
18545            (   X=[Z|_]
18546            ->  setarg(5, Z, Y)
18547            ;   true
18548            ),
18549            'attach_known/1_1_$special_=:=/2___2'(W, E)
18550        ;   true
18551        ),
18552        known(G),
18553        (   E=suspension(_, active, _, T, _, _, _)
18554        ->  setarg(2, E, inactive),
18555            'known/1_1_$special_=:=/2___2__3__0__15'(B,
18556                                                     C,
18557                                                     D,
18558                                                     E)
18559        ;   true
18560        )
18561    ;   'known/1_1_$special_=:=/2___2__3__0__15'(B,
18562                                                 C,
18563                                                 D,
18564                                                 E)
18565    ).
18566'known/1_1_$special_=:=/2___2__3'(A, B, C) :-
18567    'known/1_1_$special_=:=/2___2__4'(A, B, C).
18568'known/1_1_$special_=:=/2___2__4'(A, B, C) :-
18569    (   'chr newvia_2'(A, B, D)
18570    ->  get_attr(D, guard_entailment, E),
18571        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
18572    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18573                  F)
18574    ),
18575    !,
18576    'known/1_1_$special_=:=/2___2__4__0__16'(F, A, B, C).
18577'known/1_1_$special_=:=/2___2__4__0__16'([], A, B, C) :-
18578    'known/1_1_$special_=:=/2___2__5'(A, B, C).
18579'known/1_1_$special_=:=/2___2__4__0__16'([A|B], C, D, E) :-
18580    (   A=suspension(_, active, _, _, F, G),
18581        nonvar(F),
18582        F=(H, _),
18583        nonvar(H),
18584        H=(\+I),
18585        nonvar(I),
18586        I=(J=:=K),
18587        J==C,
18588        K==D
18589    ->  A=suspension(_, _, _, _, L, M),
18590        setarg(2, A, removed),
18591        term_variables(term(L, M), N),
18592        ( arg(4, A, O),
18593          (   var(O)
18594          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18595                        P),
18596              P=[_|Q],
18597              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18598                       Q),
18599              (   Q=[R|_]
18600              ->  setarg(4, R, _)
18601              ;   true
18602              )
18603          ;   O=[_, _|Q],
18604              setarg(2, O, Q),
18605              (   Q=[R|_]
18606              ->  setarg(4, R, O)
18607              ;   true
18608              )
18609          )
18610        ),
18611        'detach_known/1_1_$special_;/2___2'(N, A),
18612        arg(2, E, S),
18613        setarg(2, E, active),
18614        ( arg(4, E, T),
18615          U is T+1,
18616          setarg(4, E, U)
18617        ),
18618        (   S==not_stored_yet
18619        ->  E=suspension(_, _, _, _, _, V, W),
18620            term_variables(term(V, W), X),
18621            'chr none_locked'(X),
18622            nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18623                      Y),
18624            Z=[E|Y],
18625            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18626                     Z),
18627            (   Y=[A1|_]
18628            ->  setarg(5, A1, Z)
18629            ;   true
18630            ),
18631            'attach_known/1_1_$special_=:=/2___2'(X, E)
18632        ;   true
18633        ),
18634        known(G),
18635        (   E=suspension(_, active, _, U, _, _, _)
18636        ->  setarg(2, E, inactive),
18637            'known/1_1_$special_=:=/2___2__4__0__16'(B,
18638                                                     C,
18639                                                     D,
18640                                                     E)
18641        ;   true
18642        )
18643    ;   'known/1_1_$special_=:=/2___2__4__0__16'(B,
18644                                                 C,
18645                                                 D,
18646                                                 E)
18647    ).
18648'known/1_1_$special_=:=/2___2__4'(A, B, C) :-
18649    'known/1_1_$special_=:=/2___2__5'(A, B, C).
18650'known/1_1_$special_=:=/2___2__5'(_, _, A) :-
18651    arg(2, A, B),
18652    setarg(2, A, active),
18653    arg(4, A, C),
18654    D is C+1,
18655    setarg(4, A, D),
18656    (   B==not_stored_yet
18657    ->  A=suspension(_, _, _, _, _, E, F),
18658        term_variables(term(E, F), G),
18659        'chr none_locked'(G),
18660        nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18661                  H),
18662        I=[A|H],
18663        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18664                 I),
18665        (   H=[J|_]
18666        ->  setarg(5, J, I)
18667        ;   true
18668        ),
18669        'attach_known/1_1_$special_=:=/2___2'(G, A)
18670    ;   true
18671    ).
18672'known/1_1_$special_fail/0' :-
18673    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
18674              A),
18675    member(B, A),
18676    B=suspension(_, active, _),
18677    !.
18678'known/1_1_$special_fail/0' :-
18679    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18680              A),
18681    !,
18682    'known/1_1_$special_fail/0___0__0__0__24'(A).
18683'known/1_1_$special_fail/0___0__0__0__24'([]) :-
18684    'known/1_1_$special_fail/0___0__1'.
18685'known/1_1_$special_fail/0___0__0__0__24'([A|B]) :-
18686    (   A=suspension(_, active, _, _, _, _)
18687    ->  A=suspension(_, _, _, _, C, D),
18688        setarg(2, A, removed),
18689        term_variables(term(C, D), E),
18690        ( arg(4, A, F),
18691          (   var(F)
18692          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18693                        G),
18694              G=[_|H],
18695              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18696                       H),
18697              (   H=[I|_]
18698              ->  setarg(4, I, _)
18699              ;   true
18700              )
18701          ;   F=[_, _|H],
18702              setarg(2, F, H),
18703              (   H=[I|_]
18704              ->  setarg(4, I, F)
18705              ;   true
18706              )
18707          )
18708        ),
18709        'detach_known/1_1_$special_;/2___2'(E, A),
18710        'known/1_1_$special_fail/0___0__0__0__24'(B)
18711    ;   'known/1_1_$special_fail/0___0__0__0__24'(B)
18712    ).
18713'known/1_1_$special_fail/0' :-
18714    'known/1_1_$special_fail/0___0__1'.
18715'known/1_1_$special_fail/0___0__1' :-
18716    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
18717              A),
18718    !,
18719    'known/1_1_$special_fail/0___0__1__0__25'(A).
18720'known/1_1_$special_fail/0___0__1__0__25'([]) :-
18721    'known/1_1_$special_fail/0___0__2'.
18722'known/1_1_$special_fail/0___0__1__0__25'([A|B]) :-
18723    (   A=suspension(_, active, _, _, _)
18724    ->  A=suspension(_, _, _, _, C),
18725        setarg(2, A, removed),
18726        term_variables(C, D),
18727        ( arg(4, A, E),
18728          (   var(E)
18729          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
18730                        F),
18731              F=[_|G],
18732              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
18733                       G),
18734              (   G=[H|_]
18735              ->  setarg(4, H, _)
18736              ;   true
18737              )
18738          ;   E=[_, _|G],
18739              setarg(2, E, G),
18740              (   G=[H|_]
18741              ->  setarg(4, H, E)
18742              ;   true
18743              )
18744          )
18745        ),
18746        'detach_known/1_1_$special_nonvar/1___1'(D, A),
18747        'known/1_1_$special_fail/0___0__1__0__25'(B)
18748    ;   'known/1_1_$special_fail/0___0__1__0__25'(B)
18749    ).
18750'known/1_1_$special_fail/0___0__1' :-
18751    'known/1_1_$special_fail/0___0__2'.
18752'known/1_1_$special_fail/0___0__2' :-
18753    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
18754              A),
18755    !,
18756    'known/1_1_$special_fail/0___0__2__0__26'(A).
18757'known/1_1_$special_fail/0___0__2__0__26'([]) :-
18758    'known/1_1_$special_fail/0___0__3'.
18759'known/1_1_$special_fail/0___0__2__0__26'([A|B]) :-
18760    (   A=suspension(_, active, _, _, _)
18761    ->  A=suspension(_, _, _, _, C),
18762        setarg(2, A, removed),
18763        term_variables(C, D),
18764        ( arg(4, A, E),
18765          (   var(E)
18766          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
18767                        F),
18768              F=[_|G],
18769              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
18770                       G),
18771              (   G=[H|_]
18772              ->  setarg(4, H, _)
18773              ;   true
18774              )
18775          ;   E=[_, _|G],
18776              setarg(2, E, G),
18777              (   G=[H|_]
18778              ->  setarg(4, H, E)
18779              ;   true
18780              )
18781          )
18782        ),
18783        'detach_known/1_1_$special_var/1___1'(D, A),
18784        'known/1_1_$special_fail/0___0__2__0__26'(B)
18785    ;   'known/1_1_$special_fail/0___0__2__0__26'(B)
18786    ).
18787'known/1_1_$special_fail/0___0__2' :-
18788    'known/1_1_$special_fail/0___0__3'.
18789'known/1_1_$special_fail/0___0__3' :-
18790    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
18791              A),
18792    !,
18793    'known/1_1_$special_fail/0___0__3__0__27'(A).
18794'known/1_1_$special_fail/0___0__3__0__27'([]) :-
18795    'known/1_1_$special_fail/0___0__4'.
18796'known/1_1_$special_fail/0___0__3__0__27'([A|B]) :-
18797    (   A=suspension(_, active, _, _, _, _)
18798    ->  A=suspension(_, _, _, _, _, C),
18799        setarg(2, A, removed),
18800        term_variables(C, D),
18801        ( arg(5, A, E),
18802          (   var(E)
18803          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
18804                        F),
18805              F=[_|G],
18806              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
18807                       G),
18808              (   G=[H|_]
18809              ->  setarg(5, H, _)
18810              ;   true
18811              )
18812          ;   E=[_, _|G],
18813              setarg(2, E, G),
18814              (   G=[H|_]
18815              ->  setarg(5, H, E)
18816              ;   true
18817              )
18818          )
18819        ),
18820        'detach_known/1_1_$special_atom/1___1'(D, A),
18821        'known/1_1_$special_fail/0___0__3__0__27'(B)
18822    ;   'known/1_1_$special_fail/0___0__3__0__27'(B)
18823    ).
18824'known/1_1_$special_fail/0___0__3' :-
18825    'known/1_1_$special_fail/0___0__4'.
18826'known/1_1_$special_fail/0___0__4' :-
18827    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
18828              A),
18829    !,
18830    'known/1_1_$special_fail/0___0__4__0__28'(A).
18831'known/1_1_$special_fail/0___0__4__0__28'([]) :-
18832    'known/1_1_$special_fail/0___0__5'.
18833'known/1_1_$special_fail/0___0__4__0__28'([A|B]) :-
18834    (   A=suspension(_, active, _, _, _, _)
18835    ->  A=suspension(_, _, _, _, _, C),
18836        setarg(2, A, removed),
18837        term_variables(C, D),
18838        ( arg(5, A, E),
18839          (   var(E)
18840          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
18841                        F),
18842              F=[_|G],
18843              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
18844                       G),
18845              (   G=[H|_]
18846              ->  setarg(5, H, _)
18847              ;   true
18848              )
18849          ;   E=[_, _|G],
18850              setarg(2, E, G),
18851              (   G=[H|_]
18852              ->  setarg(5, H, E)
18853              ;   true
18854              )
18855          )
18856        ),
18857        'detach_known/1_1_$special_atomic/1___1'(D, A),
18858        'known/1_1_$special_fail/0___0__4__0__28'(B)
18859    ;   'known/1_1_$special_fail/0___0__4__0__28'(B)
18860    ).
18861'known/1_1_$special_fail/0___0__4' :-
18862    'known/1_1_$special_fail/0___0__5'.
18863'known/1_1_$special_fail/0___0__5' :-
18864    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
18865              A),
18866    !,
18867    'known/1_1_$special_fail/0___0__5__0__29'(A).
18868'known/1_1_$special_fail/0___0__5__0__29'([]) :-
18869    'known/1_1_$special_fail/0___0__6'.
18870'known/1_1_$special_fail/0___0__5__0__29'([A|B]) :-
18871    (   A=suspension(_, active, _, _, _, _)
18872    ->  A=suspension(_, _, _, _, _, C),
18873        setarg(2, A, removed),
18874        term_variables(C, D),
18875        ( arg(5, A, E),
18876          (   var(E)
18877          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
18878                        F),
18879              F=[_|G],
18880              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
18881                       G),
18882              (   G=[H|_]
18883              ->  setarg(5, H, _)
18884              ;   true
18885              )
18886          ;   E=[_, _|G],
18887              setarg(2, E, G),
18888              (   G=[H|_]
18889              ->  setarg(5, H, E)
18890              ;   true
18891              )
18892          )
18893        ),
18894        'detach_known/1_1_$special_compound/1___1'(D, A),
18895        'known/1_1_$special_fail/0___0__5__0__29'(B)
18896    ;   'known/1_1_$special_fail/0___0__5__0__29'(B)
18897    ).
18898'known/1_1_$special_fail/0___0__5' :-
18899    'known/1_1_$special_fail/0___0__6'.
18900'known/1_1_$special_fail/0___0__6' :-
18901    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
18902              A),
18903    !,
18904    'known/1_1_$special_fail/0___0__6__0__30'(A).
18905'known/1_1_$special_fail/0___0__6__0__30'([]) :-
18906    'known/1_1_$special_fail/0___0__7'.
18907'known/1_1_$special_fail/0___0__6__0__30'([A|B]) :-
18908    (   A=suspension(_, active, _, _, _, _)
18909    ->  A=suspension(_, _, _, _, _, C),
18910        setarg(2, A, removed),
18911        term_variables(C, D),
18912        ( arg(5, A, E),
18913          (   var(E)
18914          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
18915                        F),
18916              F=[_|G],
18917              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
18918                       G),
18919              (   G=[H|_]
18920              ->  setarg(5, H, _)
18921              ;   true
18922              )
18923          ;   E=[_, _|G],
18924              setarg(2, E, G),
18925              (   G=[H|_]
18926              ->  setarg(5, H, E)
18927              ;   true
18928              )
18929          )
18930        ),
18931        'detach_known/1_1_$special_ground/1___1'(D, A),
18932        'known/1_1_$special_fail/0___0__6__0__30'(B)
18933    ;   'known/1_1_$special_fail/0___0__6__0__30'(B)
18934    ).
18935'known/1_1_$special_fail/0___0__6' :-
18936    'known/1_1_$special_fail/0___0__7'.
18937'known/1_1_$special_fail/0___0__7' :-
18938    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
18939              A),
18940    !,
18941    'known/1_1_$special_fail/0___0__7__0__31'(A).
18942'known/1_1_$special_fail/0___0__7__0__31'([]) :-
18943    'known/1_1_$special_fail/0___0__8'.
18944'known/1_1_$special_fail/0___0__7__0__31'([A|B]) :-
18945    (   A=suspension(_, active, _, _, _, _)
18946    ->  A=suspension(_, _, _, _, _, C),
18947        setarg(2, A, removed),
18948        term_variables(C, D),
18949        ( arg(5, A, E),
18950          (   var(E)
18951          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
18952                        F),
18953              F=[_|G],
18954              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
18955                       G),
18956              (   G=[H|_]
18957              ->  setarg(5, H, _)
18958              ;   true
18959              )
18960          ;   E=[_, _|G],
18961              setarg(2, E, G),
18962              (   G=[H|_]
18963              ->  setarg(5, H, E)
18964              ;   true
18965              )
18966          )
18967        ),
18968        'detach_known/1_1_$special_integer/1___1'(D, A),
18969        'known/1_1_$special_fail/0___0__7__0__31'(B)
18970    ;   'known/1_1_$special_fail/0___0__7__0__31'(B)
18971    ).
18972'known/1_1_$special_fail/0___0__7' :-
18973    'known/1_1_$special_fail/0___0__8'.
18974'known/1_1_$special_fail/0___0__8' :-
18975    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
18976              A),
18977    !,
18978    'known/1_1_$special_fail/0___0__8__0__32'(A).
18979'known/1_1_$special_fail/0___0__8__0__32'([]) :-
18980    'known/1_1_$special_fail/0___0__9'.
18981'known/1_1_$special_fail/0___0__8__0__32'([A|B]) :-
18982    (   A=suspension(_, active, _, _, _, _)
18983    ->  A=suspension(_, _, _, _, _, C),
18984        setarg(2, A, removed),
18985        term_variables(C, D),
18986        ( arg(5, A, E),
18987          (   var(E)
18988          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
18989                        F),
18990              F=[_|G],
18991              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
18992                       G),
18993              (   G=[H|_]
18994              ->  setarg(5, H, _)
18995              ;   true
18996              )
18997          ;   E=[_, _|G],
18998              setarg(2, E, G),
18999              (   G=[H|_]
19000              ->  setarg(5, H, E)
19001              ;   true
19002              )
19003          )
19004        ),
19005        'detach_known/1_1_$special_float/1___1'(D, A),
19006        'known/1_1_$special_fail/0___0__8__0__32'(B)
19007    ;   'known/1_1_$special_fail/0___0__8__0__32'(B)
19008    ).
19009'known/1_1_$special_fail/0___0__8' :-
19010    'known/1_1_$special_fail/0___0__9'.
19011'known/1_1_$special_fail/0___0__9' :-
19012    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
19013              A),
19014    !,
19015    'known/1_1_$special_fail/0___0__9__0__33'(A).
19016'known/1_1_$special_fail/0___0__9__0__33'([]) :-
19017    'known/1_1_$special_fail/0___0__10'.
19018'known/1_1_$special_fail/0___0__9__0__33'([A|B]) :-
19019    (   A=suspension(_, active, _, _, _, _)
19020    ->  A=suspension(_, _, _, _, _, C),
19021        setarg(2, A, removed),
19022        term_variables(C, D),
19023        ( arg(5, A, E),
19024          (   var(E)
19025          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
19026                        F),
19027              F=[_|G],
19028              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
19029                       G),
19030              (   G=[H|_]
19031              ->  setarg(5, H, _)
19032              ;   true
19033              )
19034          ;   E=[_, _|G],
19035              setarg(2, E, G),
19036              (   G=[H|_]
19037              ->  setarg(5, H, E)
19038              ;   true
19039              )
19040          )
19041        ),
19042        'detach_known/1_1_$special_number/1___1'(D, A),
19043        'known/1_1_$special_fail/0___0__9__0__33'(B)
19044    ;   'known/1_1_$special_fail/0___0__9__0__33'(B)
19045    ).
19046'known/1_1_$special_fail/0___0__9' :-
19047    'known/1_1_$special_fail/0___0__10'.
19048'known/1_1_$special_fail/0___0__10' :-
19049    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
19050              A),
19051    !,
19052    'known/1_1_$special_fail/0___0__10__0__34'(A).
19053'known/1_1_$special_fail/0___0__10__0__34'([]) :-
19054    'known/1_1_$special_fail/0___0__11'.
19055'known/1_1_$special_fail/0___0__10__0__34'([A|B]) :-
19056    (   A=suspension(_, active, _, _, _, _, _)
19057    ->  A=suspension(_, _, _, _, _, C, D),
19058        setarg(2, A, removed),
19059        term_variables(term(C, D), E),
19060        ( arg(5, A, F),
19061          (   var(F)
19062          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
19063                        G),
19064              G=[_|H],
19065              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
19066                       H),
19067              (   H=[I|_]
19068              ->  setarg(5, I, _)
19069              ;   true
19070              )
19071          ;   F=[_, _|H],
19072              setarg(2, F, H),
19073              (   H=[I|_]
19074              ->  setarg(5, I, F)
19075              ;   true
19076              )
19077          )
19078        ),
19079        'detach_known/1_1_$special_=\\=/2___2'(E, A),
19080        'known/1_1_$special_fail/0___0__10__0__34'(B)
19081    ;   'known/1_1_$special_fail/0___0__10__0__34'(B)
19082    ).
19083'known/1_1_$special_fail/0___0__10' :-
19084    'known/1_1_$special_fail/0___0__11'.
19085'known/1_1_$special_fail/0___0__11' :-
19086    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
19087              A),
19088    !,
19089    'known/1_1_$special_fail/0___0__11__0__35'(A).
19090'known/1_1_$special_fail/0___0__11__0__35'([]) :-
19091    'known/1_1_$special_fail/0___0__12'.
19092'known/1_1_$special_fail/0___0__11__0__35'([A|B]) :-
19093    (   A=suspension(_, active, _, _, _)
19094    ->  A=suspension(_, _, _, _, C),
19095        setarg(2, A, removed),
19096        term_variables(C, D),
19097        ( arg(4, A, E),
19098          (   var(E)
19099          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
19100                        F),
19101              F=[_|G],
19102              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
19103                       G),
19104              (   G=[H|_]
19105              ->  setarg(4, H, _)
19106              ;   true
19107              )
19108          ;   E=[_, _|G],
19109              setarg(2, E, G),
19110              (   G=[H|_]
19111              ->  setarg(4, H, E)
19112              ;   true
19113              )
19114          )
19115        ),
19116        'detach_known/1_1_$special_\\+/1___1'(D, A),
19117        'known/1_1_$special_fail/0___0__11__0__35'(B)
19118    ;   'known/1_1_$special_fail/0___0__11__0__35'(B)
19119    ).
19120'known/1_1_$special_fail/0___0__11' :-
19121    'known/1_1_$special_fail/0___0__12'.
19122'known/1_1_$special_fail/0___0__12' :-
19123    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
19124              A),
19125    !,
19126    'known/1_1_$special_fail/0___0__12__0__36'(A).
19127'known/1_1_$special_fail/0___0__12__0__36'([]) :-
19128    'known/1_1_$special_fail/0___0__13'.
19129'known/1_1_$special_fail/0___0__12__0__36'([A|B]) :-
19130    (   A=suspension(_, active, _, _, _, _, _)
19131    ->  A=suspension(_, _, _, _, C, D, E),
19132        setarg(2, A, removed),
19133        term_variables(term(C, D, E), F),
19134        ( arg(4, A, G),
19135          (   var(G)
19136          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
19137                        H),
19138              H=[_|I],
19139              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
19140                       I),
19141              (   I=[J|_]
19142              ->  setarg(4, J, _)
19143              ;   true
19144              )
19145          ;   G=[_, _|I],
19146              setarg(2, G, I),
19147              (   I=[J|_]
19148              ->  setarg(4, J, G)
19149              ;   true
19150              )
19151          )
19152        ),
19153        'detach_known/1_1_$special_functor/3___3'(F, A),
19154        'known/1_1_$special_fail/0___0__12__0__36'(B)
19155    ;   'known/1_1_$special_fail/0___0__12__0__36'(B)
19156    ).
19157'known/1_1_$special_fail/0___0__12' :-
19158    'known/1_1_$special_fail/0___0__13'.
19159'known/1_1_$special_fail/0___0__13' :-
19160    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
19161              A),
19162    !,
19163    'known/1_1_$special_fail/0___0__13__0__37'(A).
19164'known/1_1_$special_fail/0___0__13__0__37'([]) :-
19165    'known/1_1_$special_fail/0___0__14'.
19166'known/1_1_$special_fail/0___0__13__0__37'([A|B]) :-
19167    (   A=suspension(_, active, _, _, _, _, _)
19168    ->  A=suspension(_, _, _, _, _, C, D),
19169        setarg(2, A, removed),
19170        term_variables(term(C, D), E),
19171        ( arg(5, A, F),
19172          (   var(F)
19173          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
19174                        G),
19175              G=[_|H],
19176              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
19177                       H),
19178              (   H=[I|_]
19179              ->  setarg(5, I, _)
19180              ;   true
19181              )
19182          ;   F=[_, _|H],
19183              setarg(2, F, H),
19184              (   H=[I|_]
19185              ->  setarg(5, I, F)
19186              ;   true
19187              )
19188          )
19189        ),
19190        'detach_known/1_1_$special_\\=/2___2'(E, A),
19191        'known/1_1_$special_fail/0___0__13__0__37'(B)
19192    ;   'known/1_1_$special_fail/0___0__13__0__37'(B)
19193    ).
19194'known/1_1_$special_fail/0___0__13' :-
19195    'known/1_1_$special_fail/0___0__14'.
19196'known/1_1_$special_fail/0___0__14' :-
19197    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
19198              A),
19199    !,
19200    'known/1_1_$special_fail/0___0__14__0__38'(A).
19201'known/1_1_$special_fail/0___0__14__0__38'([]) :-
19202    'known/1_1_$special_fail/0___0__15'.
19203'known/1_1_$special_fail/0___0__14__0__38'([A|B]) :-
19204    (   A=suspension(_, active, _, _, _, _)
19205    ->  A=suspension(_, _, _, _, C, D),
19206        setarg(2, A, removed),
19207        term_variables(term(C, D), E),
19208        ( arg(4, A, F),
19209          (   var(F)
19210          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
19211                        G),
19212              G=[_|H],
19213              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
19214                       H),
19215              (   H=[I|_]
19216              ->  setarg(4, I, _)
19217              ;   true
19218              )
19219          ;   F=[_, _|H],
19220              setarg(2, F, H),
19221              (   H=[I|_]
19222              ->  setarg(4, I, F)
19223              ;   true
19224              )
19225          )
19226        ),
19227        'detach_known/1_1_$special_=/2___2'(E, A),
19228        'known/1_1_$special_fail/0___0__14__0__38'(B)
19229    ;   'known/1_1_$special_fail/0___0__14__0__38'(B)
19230    ).
19231'known/1_1_$special_fail/0___0__14' :-
19232    'known/1_1_$special_fail/0___0__15'.
19233'known/1_1_$special_fail/0___0__15' :-
19234    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
19235              A),
19236    !,
19237    'known/1_1_$special_fail/0___0__15__0__40'(A).
19238'known/1_1_$special_fail/0___0__15__0__40'([]) :-
19239    'known/1_1_$special_fail/0___0__16'.
19240'known/1_1_$special_fail/0___0__15__0__40'([A|B]) :-
19241    (   A=suspension(_, active, _, _, _, _, _)
19242    ->  A=suspension(_, _, _, _, _, C, D),
19243        setarg(2, A, removed),
19244        term_variables(term(C, D), E),
19245        ( arg(5, A, F),
19246          (   var(F)
19247          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
19248                        G),
19249              G=[_|H],
19250              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
19251                       H),
19252              (   H=[I|_]
19253              ->  setarg(5, I, _)
19254              ;   true
19255              )
19256          ;   F=[_, _|H],
19257              setarg(2, F, H),
19258              (   H=[I|_]
19259              ->  setarg(5, I, F)
19260              ;   true
19261              )
19262          )
19263        ),
19264        'detach_known/1_1_$special_\\==/2___2'(E, A),
19265        'known/1_1_$special_fail/0___0__15__0__40'(B)
19266    ;   'known/1_1_$special_fail/0___0__15__0__40'(B)
19267    ).
19268'known/1_1_$special_fail/0___0__15' :-
19269    'known/1_1_$special_fail/0___0__16'.
19270'known/1_1_$special_fail/0___0__16' :-
19271    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
19272              A),
19273    !,
19274    'known/1_1_$special_fail/0___0__16__0__41'(A).
19275'known/1_1_$special_fail/0___0__16__0__41'([]) :-
19276    'known/1_1_$special_fail/0___0__17'.
19277'known/1_1_$special_fail/0___0__16__0__41'([A|B]) :-
19278    (   A=suspension(_, active, _, _, _, _, _)
19279    ->  A=suspension(_, _, _, _, _, C, D),
19280        setarg(2, A, removed),
19281        term_variables(term(C, D), E),
19282        ( arg(5, A, F),
19283          (   var(F)
19284          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
19285                        G),
19286              G=[_|H],
19287              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
19288                       H),
19289              (   H=[I|_]
19290              ->  setarg(5, I, _)
19291              ;   true
19292              )
19293          ;   F=[_, _|H],
19294              setarg(2, F, H),
19295              (   H=[I|_]
19296              ->  setarg(5, I, F)
19297              ;   true
19298              )
19299          )
19300        ),
19301        'detach_known/1_1_$special_==/2___2'(E, A),
19302        'known/1_1_$special_fail/0___0__16__0__41'(B)
19303    ;   'known/1_1_$special_fail/0___0__16__0__41'(B)
19304    ).
19305'known/1_1_$special_fail/0___0__16' :-
19306    'known/1_1_$special_fail/0___0__17'.
19307'known/1_1_$special_fail/0___0__17' :-
19308    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
19309              A),
19310    !,
19311    'known/1_1_$special_fail/0___0__17__0__46'(A).
19312'known/1_1_$special_fail/0___0__17__0__46'([]) :-
19313    'known/1_1_$special_fail/0___0__18'.
19314'known/1_1_$special_fail/0___0__17__0__46'([A|B]) :-
19315    (   A=suspension(_, active, _, _, _, _, _)
19316    ->  A=suspension(_, _, _, _, _, C, D),
19317        setarg(2, A, removed),
19318        term_variables(term(C, D), E),
19319        ( arg(5, A, F),
19320          (   var(F)
19321          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
19322                        G),
19323              G=[_|H],
19324              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
19325                       H),
19326              (   H=[I|_]
19327              ->  setarg(5, I, _)
19328              ;   true
19329              )
19330          ;   F=[_, _|H],
19331              setarg(2, F, H),
19332              (   H=[I|_]
19333              ->  setarg(5, I, F)
19334              ;   true
19335              )
19336          )
19337        ),
19338        'detach_known/1_1_$special_=</2___2'(E, A),
19339        'known/1_1_$special_fail/0___0__17__0__46'(B)
19340    ;   'known/1_1_$special_fail/0___0__17__0__46'(B)
19341    ).
19342'known/1_1_$special_fail/0___0__17' :-
19343    'known/1_1_$special_fail/0___0__18'.
19344'known/1_1_$special_fail/0___0__18' :-
19345    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
19346              A),
19347    !,
19348    'known/1_1_$special_fail/0___0__18__0__47'(A).
19349'known/1_1_$special_fail/0___0__18__0__47'([]) :-
19350    'known/1_1_$special_fail/0___0__19'.
19351'known/1_1_$special_fail/0___0__18__0__47'([A|B]) :-
19352    (   A=suspension(_, active, _, _, _, _, _)
19353    ->  A=suspension(_, _, _, _, _, C, D),
19354        setarg(2, A, removed),
19355        term_variables(term(C, D), E),
19356        ( arg(5, A, F),
19357          (   var(F)
19358          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
19359                        G),
19360              G=[_|H],
19361              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
19362                       H),
19363              (   H=[I|_]
19364              ->  setarg(5, I, _)
19365              ;   true
19366              )
19367          ;   F=[_, _|H],
19368              setarg(2, F, H),
19369              (   H=[I|_]
19370              ->  setarg(5, I, F)
19371              ;   true
19372              )
19373          )
19374        ),
19375        'detach_known/1_1_$special_=:=/2___2'(E, A),
19376        'known/1_1_$special_fail/0___0__18__0__47'(B)
19377    ;   'known/1_1_$special_fail/0___0__18__0__47'(B)
19378    ).
19379'known/1_1_$special_fail/0___0__18' :-
19380    'known/1_1_$special_fail/0___0__19'.
19381'known/1_1_$special_fail/0___0__19' :-
19382    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
19383              A),
19384    !,
19385    'known/1_1_$special_fail/0___0__19__0__50'(A).
19386'known/1_1_$special_fail/0___0__19__0__50'([]) :-
19387    'known/1_1_$special_fail/0___0__20'.
19388'known/1_1_$special_fail/0___0__19__0__50'([A|B]) :-
19389    (   A=suspension(_, active, _, _, _)
19390    ->  A=suspension(_, _, _, _, C),
19391        setarg(2, A, removed),
19392        term_variables(C, D),
19393        ( arg(4, A, E),
19394          (   var(E)
19395          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
19396                        F),
19397              F=[_|G],
19398              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
19399                       G),
19400              (   G=[H|_]
19401              ->  setarg(4, H, _)
19402              ;   true
19403              )
19404          ;   E=[_, _|G],
19405              setarg(2, E, G),
19406              (   G=[H|_]
19407              ->  setarg(4, H, E)
19408              ;   true
19409              )
19410          )
19411        ),
19412        'detach_known/1_1_$default___1'(D, A),
19413        'known/1_1_$special_fail/0___0__19__0__50'(B)
19414    ;   'known/1_1_$special_fail/0___0__19__0__50'(B)
19415    ).
19416'known/1_1_$special_fail/0___0__19' :-
19417    'known/1_1_$special_fail/0___0__20'.
19418'known/1_1_$special_fail/0___0__20' :-
19419    A=suspension(B, active, _),
19420    'chr gen_id'(B),
19421    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
19422              C),
19423    D=[A|C],
19424    b_setval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
19425             D),
19426    (   C=[E|_]
19427    ->  setarg(3, E, D)
19428    ;   true
19429    ).
19430:- (multifile chr:'$chr_module'/1).19431chr:'$chr_module'(guard_entailment)