View source with formatted comments or as raw
    1/*  Generated by CHR bootstrap compiler
    2    From: /tmp/src/swipl-8.1.1/packages/chr/guard_entailment.chr
    3    Date: Wed Feb  6 04:17:11 2019
    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(chr(builtins)).   19:- use_module(chr(chr_compiler_errors)).   20entails_guard(A, B) :-
   21    copy_term_nat((A, B),  (C, F)),
   22    term_variables(C, D),
   23    variables(D),
   24    sort(C, E),
   25    entails_guard2(E),
   26    !,
   27    test(F),
   28    !,
   29    cleanup.
   30entails_guard2([]).
   31entails_guard2([A|B]) :-
   32    known(A),
   33    entails_guard2(B).
   34simplify_guards(A, I, B, H, J) :-
   35    copy_term_nat((A, B),  (C, F)),
   36    term_variables(C, D),
   37    variables(D),
   38    sort(C, E),
   39    entails_guard2(E),
   40    !,
   41    simplify(F, G),
   42    simplified(B, G, H, I, J),
   43    !,
   44    cleanup.
   45simplified([], [], [], A, A).
   46simplified([A|B], [keep|C], [A|D], E, F) :-
   47    simplified(B, C, D, E, F).
   48simplified([_|_], [fail|_], fail, A, A).
   49simplified([A|B], [true|L], [I|M], F, J) :-
   50    builtins:binds_b(A, C),
   51    term_variables(B, D),
   52    intersect_eq(C, D, E),
   53    !,
   54    (   E=[]
   55    ->  term_variables(F, G),
   56        intersect_eq(C, G, H),
   57        !,
   58        (   H=[]
   59        ->  I=true,
   60            J=K
   61        ;   I=true,
   62            J=(A, K)
   63        )
   64    ;   I=A,
   65        J=K
   66    ),
   67    simplified(B, L, M, F, K).
   68simplify([], []).
   69simplify([A|D], [B|E]) :-
   70    (   \+ try(true, A)
   71    ->  B=true
   72    ;   builtins:negate_b(A, C),
   73        (   \+ try(true, C)
   74        ->  B=fail
   75        ;   B=keep
   76        )
   77    ),
   78    known(A),
   79    simplify(D, E).
   80try(A, B) :-
   81    (   known(A)
   82    ->  true
   83    ;   chr_error(internal, 'Entailment Checker: try/2.\n', [])
   84    ),
   85    (   test(B)
   86    ->  fail
   87    ;   true
   88    ).
   89add_args_unif([], [], true).
   90add_args_unif([A|C], [B|D],  (A=B, E)) :-
   91    add_args_unif(C, D, E).
   92add_args_nunif([], [], fail).
   93add_args_nunif([A|C], [B|D],  (A\=B;E)) :-
   94    add_args_nunif(C, D, E).
   95add_args_nmatch([], [], fail).
   96add_args_nmatch([A|C], [B|D],  (A\==B;E)) :-
   97    add_args_nmatch(C, D, E).
   98all_unique_vars(A, B) :-
   99    all_unique_vars(A, B, []).
  100all_unique_vars([], _, _).
  101all_unique_vars([A|D], B, C) :-
  102    var(A),
  103    \+ memberchk_eq(A, B),
  104    \+ memberchk_eq(A, C),
  105    all_unique_vars(D, [A|C]).
  106:- use_module(chr(chr_runtime)).  107attach_variables___1([], _).
  108attach_variables___1([A|B1], D) :-
  109    (   get_attr(A, guard_entailment, B)
  110    ->  ( B=v(C, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  111          (   C/\1=:=1
  112          ->  Z=v(C, [D|E], F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  113          ;   A1 is C\/1,
  114              Z=v(A1, [D], F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  115          )
  116        ),
  117        put_attr(A, guard_entailment, Z)
  118    ;   put_attr(A,
  119                 guard_entailment,
  120                 v(1,
  121                   [D],
  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(B1, D).
  144detach_variables___1([], _).
  145detach_variables___1([A|B1], E) :-
  146    (   get_attr(A, guard_entailment, B)
  147    ->  B=v(C, D, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  148        (   C/\1=:=1
  149        ->  'chr sbag_del_element'(D, E, F),
  150            (   F==[]
  151            ->  G is C/\ -2,
  152                (   G==0
  153                ->  del_attr(A, guard_entailment)
  154                ;   put_attr(A,
  155                             guard_entailment,
  156                             v(G,
  157                               [],
  158                               H,
  159                               I,
  160                               J,
  161                               K,
  162                               L,
  163                               M,
  164                               N,
  165                               O,
  166                               P,
  167                               Q,
  168                               R,
  169                               S,
  170                               T,
  171                               U,
  172                               V,
  173                               W,
  174                               X,
  175                               Y,
  176                               Z,
  177                               A1))
  178                )
  179            ;   put_attr(A,
  180                         guard_entailment,
  181                         v(C,
  182                           F,
  183                           H,
  184                           I,
  185                           J,
  186                           K,
  187                           L,
  188                           M,
  189                           N,
  190                           O,
  191                           P,
  192                           Q,
  193                           R,
  194                           S,
  195                           T,
  196                           U,
  197                           V,
  198                           W,
  199                           X,
  200                           Y,
  201                           Z,
  202                           A1))
  203            )
  204        ;   true
  205        )
  206    ;   true
  207    ),
  208    detach_variables___1(B1, E).
  209'attach_known/1_1_$default___1'([], _).
  210'attach_known/1_1_$default___1'([A|B1], E) :-
  211    (   get_attr(A, guard_entailment, B)
  212    ->  ( B=v(C, D, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  213          (   C/\2=:=2
  214          ->  Z=v(C, D, [E|F], G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  215          ;   A1 is C\/2,
  216              Z=v(A1, D, [E], G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  217          )
  218        ),
  219        put_attr(A, guard_entailment, Z)
  220    ;   put_attr(A,
  221                 guard_entailment,
  222                 v(2,
  223                   [],
  224                   [E],
  225                   [],
  226                   [],
  227                   [],
  228                   [],
  229                   [],
  230                   [],
  231                   [],
  232                   [],
  233                   [],
  234                   [],
  235                   [],
  236                   [],
  237                   [],
  238                   [],
  239                   [],
  240                   [],
  241                   [],
  242                   [],
  243                   []))
  244    ),
  245    'attach_known/1_1_$default___1'(B1, E).
  246'detach_known/1_1_$default___1'([], _).
  247'detach_known/1_1_$default___1'([A|B1], E) :-
  248    (   get_attr(A, guard_entailment, B)
  249    ->  B=v(C, H, D, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  250        (   C/\2=:=2
  251        ->  'chr sbag_del_element'(D, E, F),
  252            (   F==[]
  253            ->  G is C/\ -3,
  254                (   G==0
  255                ->  del_attr(A, guard_entailment)
  256                ;   put_attr(A,
  257                             guard_entailment,
  258                             v(G,
  259                               H,
  260                               [],
  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                               A1))
  280                )
  281            ;   put_attr(A,
  282                         guard_entailment,
  283                         v(C,
  284                           H,
  285                           F,
  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                           A1))
  305            )
  306        ;   true
  307        )
  308    ;   true
  309    ),
  310    'detach_known/1_1_$default___1'(B1, E).
  311'attach_known/1_1_$special_;/2___2'([], _).
  312'attach_known/1_1_$special_;/2___2'([A|B1], F) :-
  313    (   get_attr(A, guard_entailment, B)
  314    ->  ( B=v(C, D, E, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  315          (   C/\4=:=4
  316          ->  Z=v(C, D, E, [F|G], H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  317          ;   A1 is C\/4,
  318              Z=v(A1, D, E, [F], H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  319          )
  320        ),
  321        put_attr(A, guard_entailment, Z)
  322    ;   put_attr(A,
  323                 guard_entailment,
  324                 v(4,
  325                   [],
  326                   [],
  327                   [F],
  328                   [],
  329                   [],
  330                   [],
  331                   [],
  332                   [],
  333                   [],
  334                   [],
  335                   [],
  336                   [],
  337                   [],
  338                   [],
  339                   [],
  340                   [],
  341                   [],
  342                   [],
  343                   [],
  344                   [],
  345                   []))
  346    ),
  347    'attach_known/1_1_$special_;/2___2'(B1, F).
  348'detach_known/1_1_$special_;/2___2'([], _).
  349'detach_known/1_1_$special_;/2___2'([A|B1], E) :-
  350    (   get_attr(A, guard_entailment, B)
  351    ->  B=v(C, H, I, D, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  352        (   C/\4=:=4
  353        ->  'chr sbag_del_element'(D, E, F),
  354            (   F==[]
  355            ->  G is C/\ -5,
  356                (   G==0
  357                ->  del_attr(A, guard_entailment)
  358                ;   put_attr(A,
  359                             guard_entailment,
  360                             v(G,
  361                               H,
  362                               I,
  363                               [],
  364                               J,
  365                               K,
  366                               L,
  367                               M,
  368                               N,
  369                               O,
  370                               P,
  371                               Q,
  372                               R,
  373                               S,
  374                               T,
  375                               U,
  376                               V,
  377                               W,
  378                               X,
  379                               Y,
  380                               Z,
  381                               A1))
  382                )
  383            ;   put_attr(A,
  384                         guard_entailment,
  385                         v(C,
  386                           H,
  387                           I,
  388                           F,
  389                           J,
  390                           K,
  391                           L,
  392                           M,
  393                           N,
  394                           O,
  395                           P,
  396                           Q,
  397                           R,
  398                           S,
  399                           T,
  400                           U,
  401                           V,
  402                           W,
  403                           X,
  404                           Y,
  405                           Z,
  406                           A1))
  407            )
  408        ;   true
  409        )
  410    ;   true
  411    ),
  412    'detach_known/1_1_$special_;/2___2'(B1, E).
  413'attach_known/1_1_$special_nonvar/1___1'([], _).
  414'attach_known/1_1_$special_nonvar/1___1'([A|B1], G) :-
  415    (   get_attr(A, guard_entailment, B)
  416    ->  ( B=v(C, D, E, F, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  417          (   C/\8=:=8
  418          ->  Z=v(C, D, E, F, [G|H], I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  419          ;   A1 is C\/8,
  420              Z=v(A1, D, E, F, [G], I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  421          )
  422        ),
  423        put_attr(A, guard_entailment, Z)
  424    ;   put_attr(A,
  425                 guard_entailment,
  426                 v(8,
  427                   [],
  428                   [],
  429                   [],
  430                   [G],
  431                   [],
  432                   [],
  433                   [],
  434                   [],
  435                   [],
  436                   [],
  437                   [],
  438                   [],
  439                   [],
  440                   [],
  441                   [],
  442                   [],
  443                   [],
  444                   [],
  445                   [],
  446                   [],
  447                   []))
  448    ),
  449    'attach_known/1_1_$special_nonvar/1___1'(B1, G).
  450'detach_known/1_1_$special_nonvar/1___1'([], _).
  451'detach_known/1_1_$special_nonvar/1___1'([A|B1], E) :-
  452    (   get_attr(A, guard_entailment, B)
  453    ->  B=v(C, H, I, J, D, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  454        (   C/\8=:=8
  455        ->  'chr sbag_del_element'(D, E, F),
  456            (   F==[]
  457            ->  G is C/\ -9,
  458                (   G==0
  459                ->  del_attr(A, guard_entailment)
  460                ;   put_attr(A,
  461                             guard_entailment,
  462                             v(G,
  463                               H,
  464                               I,
  465                               J,
  466                               [],
  467                               K,
  468                               L,
  469                               M,
  470                               N,
  471                               O,
  472                               P,
  473                               Q,
  474                               R,
  475                               S,
  476                               T,
  477                               U,
  478                               V,
  479                               W,
  480                               X,
  481                               Y,
  482                               Z,
  483                               A1))
  484                )
  485            ;   put_attr(A,
  486                         guard_entailment,
  487                         v(C,
  488                           H,
  489                           I,
  490                           J,
  491                           F,
  492                           K,
  493                           L,
  494                           M,
  495                           N,
  496                           O,
  497                           P,
  498                           Q,
  499                           R,
  500                           S,
  501                           T,
  502                           U,
  503                           V,
  504                           W,
  505                           X,
  506                           Y,
  507                           Z,
  508                           A1))
  509            )
  510        ;   true
  511        )
  512    ;   true
  513    ),
  514    'detach_known/1_1_$special_nonvar/1___1'(B1, E).
  515'attach_known/1_1_$special_var/1___1'([], _).
  516'attach_known/1_1_$special_var/1___1'([A|B1], H) :-
  517    (   get_attr(A, guard_entailment, B)
  518    ->  ( B=v(C, D, E, F, G, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  519          (   C/\16=:=16
  520          ->  Z=v(C, D, E, F, G, [H|I], J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  521          ;   A1 is C\/16,
  522              Z=v(A1, D, E, F, G, [H], J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  523          )
  524        ),
  525        put_attr(A, guard_entailment, Z)
  526    ;   put_attr(A,
  527                 guard_entailment,
  528                 v(16,
  529                   [],
  530                   [],
  531                   [],
  532                   [],
  533                   [H],
  534                   [],
  535                   [],
  536                   [],
  537                   [],
  538                   [],
  539                   [],
  540                   [],
  541                   [],
  542                   [],
  543                   [],
  544                   [],
  545                   [],
  546                   [],
  547                   [],
  548                   [],
  549                   []))
  550    ),
  551    'attach_known/1_1_$special_var/1___1'(B1, H).
  552'detach_known/1_1_$special_var/1___1'([], _).
  553'detach_known/1_1_$special_var/1___1'([A|B1], E) :-
  554    (   get_attr(A, guard_entailment, B)
  555    ->  B=v(C, H, I, J, K, D, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  556        (   C/\16=:=16
  557        ->  'chr sbag_del_element'(D, E, F),
  558            (   F==[]
  559            ->  G is C/\ -17,
  560                (   G==0
  561                ->  del_attr(A, guard_entailment)
  562                ;   put_attr(A,
  563                             guard_entailment,
  564                             v(G,
  565                               H,
  566                               I,
  567                               J,
  568                               K,
  569                               [],
  570                               L,
  571                               M,
  572                               N,
  573                               O,
  574                               P,
  575                               Q,
  576                               R,
  577                               S,
  578                               T,
  579                               U,
  580                               V,
  581                               W,
  582                               X,
  583                               Y,
  584                               Z,
  585                               A1))
  586                )
  587            ;   put_attr(A,
  588                         guard_entailment,
  589                         v(C,
  590                           H,
  591                           I,
  592                           J,
  593                           K,
  594                           F,
  595                           L,
  596                           M,
  597                           N,
  598                           O,
  599                           P,
  600                           Q,
  601                           R,
  602                           S,
  603                           T,
  604                           U,
  605                           V,
  606                           W,
  607                           X,
  608                           Y,
  609                           Z,
  610                           A1))
  611            )
  612        ;   true
  613        )
  614    ;   true
  615    ),
  616    'detach_known/1_1_$special_var/1___1'(B1, E).
  617'attach_known/1_1_$special_atom/1___1'([], _).
  618'attach_known/1_1_$special_atom/1___1'([A|B1], I) :-
  619    (   get_attr(A, guard_entailment, B)
  620    ->  ( B=v(C, D, E, F, G, H, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  621          (   C/\32=:=32
  622          ->  Z=v(C, D, E, F, G, H, [I|J], K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  623          ;   A1 is C\/32,
  624              Z=v(A1, D, E, F, G, H, [I], K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  625          )
  626        ),
  627        put_attr(A, guard_entailment, Z)
  628    ;   put_attr(A,
  629                 guard_entailment,
  630                 v(32,
  631                   [],
  632                   [],
  633                   [],
  634                   [],
  635                   [],
  636                   [I],
  637                   [],
  638                   [],
  639                   [],
  640                   [],
  641                   [],
  642                   [],
  643                   [],
  644                   [],
  645                   [],
  646                   [],
  647                   [],
  648                   [],
  649                   [],
  650                   [],
  651                   []))
  652    ),
  653    'attach_known/1_1_$special_atom/1___1'(B1, I).
  654'detach_known/1_1_$special_atom/1___1'([], _).
  655'detach_known/1_1_$special_atom/1___1'([A|B1], E) :-
  656    (   get_attr(A, guard_entailment, B)
  657    ->  B=v(C, H, I, J, K, L, D, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  658        (   C/\32=:=32
  659        ->  'chr sbag_del_element'(D, E, F),
  660            (   F==[]
  661            ->  G is C/\ -33,
  662                (   G==0
  663                ->  del_attr(A, guard_entailment)
  664                ;   put_attr(A,
  665                             guard_entailment,
  666                             v(G,
  667                               H,
  668                               I,
  669                               J,
  670                               K,
  671                               L,
  672                               [],
  673                               M,
  674                               N,
  675                               O,
  676                               P,
  677                               Q,
  678                               R,
  679                               S,
  680                               T,
  681                               U,
  682                               V,
  683                               W,
  684                               X,
  685                               Y,
  686                               Z,
  687                               A1))
  688                )
  689            ;   put_attr(A,
  690                         guard_entailment,
  691                         v(C,
  692                           H,
  693                           I,
  694                           J,
  695                           K,
  696                           L,
  697                           F,
  698                           M,
  699                           N,
  700                           O,
  701                           P,
  702                           Q,
  703                           R,
  704                           S,
  705                           T,
  706                           U,
  707                           V,
  708                           W,
  709                           X,
  710                           Y,
  711                           Z,
  712                           A1))
  713            )
  714        ;   true
  715        )
  716    ;   true
  717    ),
  718    'detach_known/1_1_$special_atom/1___1'(B1, E).
  719'attach_known/1_1_$special_atomic/1___1'([], _).
  720'attach_known/1_1_$special_atomic/1___1'([A|B1], J) :-
  721    (   get_attr(A, guard_entailment, B)
  722    ->  ( B=v(C, D, E, F, G, H, I, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  723          (   C/\64=:=64
  724          ->  Z=v(C, D, E, F, G, H, I, [J|K], L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  725          ;   A1 is C\/64,
  726              Z=v(A1, D, E, F, G, H, I, [J], L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  727          )
  728        ),
  729        put_attr(A, guard_entailment, Z)
  730    ;   put_attr(A,
  731                 guard_entailment,
  732                 v(64,
  733                   [],
  734                   [],
  735                   [],
  736                   [],
  737                   [],
  738                   [],
  739                   [J],
  740                   [],
  741                   [],
  742                   [],
  743                   [],
  744                   [],
  745                   [],
  746                   [],
  747                   [],
  748                   [],
  749                   [],
  750                   [],
  751                   [],
  752                   [],
  753                   []))
  754    ),
  755    'attach_known/1_1_$special_atomic/1___1'(B1, J).
  756'detach_known/1_1_$special_atomic/1___1'([], _).
  757'detach_known/1_1_$special_atomic/1___1'([A|B1], E) :-
  758    (   get_attr(A, guard_entailment, B)
  759    ->  B=v(C, H, I, J, K, L, M, D, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  760        (   C/\64=:=64
  761        ->  'chr sbag_del_element'(D, E, F),
  762            (   F==[]
  763            ->  G is C/\ -65,
  764                (   G==0
  765                ->  del_attr(A, guard_entailment)
  766                ;   put_attr(A,
  767                             guard_entailment,
  768                             v(G,
  769                               H,
  770                               I,
  771                               J,
  772                               K,
  773                               L,
  774                               M,
  775                               [],
  776                               N,
  777                               O,
  778                               P,
  779                               Q,
  780                               R,
  781                               S,
  782                               T,
  783                               U,
  784                               V,
  785                               W,
  786                               X,
  787                               Y,
  788                               Z,
  789                               A1))
  790                )
  791            ;   put_attr(A,
  792                         guard_entailment,
  793                         v(C,
  794                           H,
  795                           I,
  796                           J,
  797                           K,
  798                           L,
  799                           M,
  800                           F,
  801                           N,
  802                           O,
  803                           P,
  804                           Q,
  805                           R,
  806                           S,
  807                           T,
  808                           U,
  809                           V,
  810                           W,
  811                           X,
  812                           Y,
  813                           Z,
  814                           A1))
  815            )
  816        ;   true
  817        )
  818    ;   true
  819    ),
  820    'detach_known/1_1_$special_atomic/1___1'(B1, E).
  821'attach_known/1_1_$special_compound/1___1'([], _).
  822'attach_known/1_1_$special_compound/1___1'([A|B1], K) :-
  823    (   get_attr(A, guard_entailment, B)
  824    ->  ( B=v(C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  825          (   C/\128=:=128
  826          ->  Z=v(C, D, E, F, G, H, I, J, [K|L], M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  827          ;   A1 is C\/128,
  828              Z=v(A1, D, E, F, G, H, I, J, [K], M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  829          )
  830        ),
  831        put_attr(A, guard_entailment, Z)
  832    ;   put_attr(A,
  833                 guard_entailment,
  834                 v(128,
  835                   [],
  836                   [],
  837                   [],
  838                   [],
  839                   [],
  840                   [],
  841                   [],
  842                   [K],
  843                   [],
  844                   [],
  845                   [],
  846                   [],
  847                   [],
  848                   [],
  849                   [],
  850                   [],
  851                   [],
  852                   [],
  853                   [],
  854                   [],
  855                   []))
  856    ),
  857    'attach_known/1_1_$special_compound/1___1'(B1, K).
  858'detach_known/1_1_$special_compound/1___1'([], _).
  859'detach_known/1_1_$special_compound/1___1'([A|B1], E) :-
  860    (   get_attr(A, guard_entailment, B)
  861    ->  B=v(C, H, I, J, K, L, M, N, D, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  862        (   C/\128=:=128
  863        ->  'chr sbag_del_element'(D, E, F),
  864            (   F==[]
  865            ->  G is C/\ -129,
  866                (   G==0
  867                ->  del_attr(A, guard_entailment)
  868                ;   put_attr(A,
  869                             guard_entailment,
  870                             v(G,
  871                               H,
  872                               I,
  873                               J,
  874                               K,
  875                               L,
  876                               M,
  877                               N,
  878                               [],
  879                               O,
  880                               P,
  881                               Q,
  882                               R,
  883                               S,
  884                               T,
  885                               U,
  886                               V,
  887                               W,
  888                               X,
  889                               Y,
  890                               Z,
  891                               A1))
  892                )
  893            ;   put_attr(A,
  894                         guard_entailment,
  895                         v(C,
  896                           H,
  897                           I,
  898                           J,
  899                           K,
  900                           L,
  901                           M,
  902                           N,
  903                           F,
  904                           O,
  905                           P,
  906                           Q,
  907                           R,
  908                           S,
  909                           T,
  910                           U,
  911                           V,
  912                           W,
  913                           X,
  914                           Y,
  915                           Z,
  916                           A1))
  917            )
  918        ;   true
  919        )
  920    ;   true
  921    ),
  922    'detach_known/1_1_$special_compound/1___1'(B1, E).
  923'attach_known/1_1_$special_ground/1___1'([], _).
  924'attach_known/1_1_$special_ground/1___1'([A|B1], L) :-
  925    (   get_attr(A, guard_entailment, B)
  926    ->  ( B=v(C, D, E, F, G, H, I, J, K, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  927          (   C/\256=:=256
  928          ->  Z=v(C, D, E, F, G, H, I, J, K, [L|M], N, O, P, Q, R, S, T, U, V, W, X, Y)
  929          ;   A1 is C\/256,
  930              Z=v(A1, D, E, F, G, H, I, J, K, [L], N, O, P, Q, R, S, T, U, V, W, X, Y)
  931          )
  932        ),
  933        put_attr(A, guard_entailment, Z)
  934    ;   put_attr(A,
  935                 guard_entailment,
  936                 v(256,
  937                   [],
  938                   [],
  939                   [],
  940                   [],
  941                   [],
  942                   [],
  943                   [],
  944                   [],
  945                   [L],
  946                   [],
  947                   [],
  948                   [],
  949                   [],
  950                   [],
  951                   [],
  952                   [],
  953                   [],
  954                   [],
  955                   [],
  956                   [],
  957                   []))
  958    ),
  959    'attach_known/1_1_$special_ground/1___1'(B1, L).
  960'detach_known/1_1_$special_ground/1___1'([], _).
  961'detach_known/1_1_$special_ground/1___1'([A|B1], E) :-
  962    (   get_attr(A, guard_entailment, B)
  963    ->  B=v(C, H, I, J, K, L, M, N, O, D, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  964        (   C/\256=:=256
  965        ->  'chr sbag_del_element'(D, E, F),
  966            (   F==[]
  967            ->  G is C/\ -257,
  968                (   G==0
  969                ->  del_attr(A, guard_entailment)
  970                ;   put_attr(A,
  971                             guard_entailment,
  972                             v(G,
  973                               H,
  974                               I,
  975                               J,
  976                               K,
  977                               L,
  978                               M,
  979                               N,
  980                               O,
  981                               [],
  982                               P,
  983                               Q,
  984                               R,
  985                               S,
  986                               T,
  987                               U,
  988                               V,
  989                               W,
  990                               X,
  991                               Y,
  992                               Z,
  993                               A1))
  994                )
  995            ;   put_attr(A,
  996                         guard_entailment,
  997                         v(C,
  998                           H,
  999                           I,
 1000                           J,
 1001                           K,
 1002                           L,
 1003                           M,
 1004                           N,
 1005                           O,
 1006                           F,
 1007                           P,
 1008                           Q,
 1009                           R,
 1010                           S,
 1011                           T,
 1012                           U,
 1013                           V,
 1014                           W,
 1015                           X,
 1016                           Y,
 1017                           Z,
 1018                           A1))
 1019            )
 1020        ;   true
 1021        )
 1022    ;   true
 1023    ),
 1024    'detach_known/1_1_$special_ground/1___1'(B1, E).
 1025'attach_known/1_1_$special_integer/1___1'([], _).
 1026'attach_known/1_1_$special_integer/1___1'([A|B1], M) :-
 1027    (   get_attr(A, guard_entailment, B)
 1028    ->  ( B=v(C, D, E, F, G, H, I, J, K, L, N, O, P, Q, R, S, T, U, V, W, X, Y),
 1029          (   C/\512=:=512
 1030          ->  Z=v(C, D, E, F, G, H, I, J, K, L, [M|N], O, P, Q, R, S, T, U, V, W, X, Y)
 1031          ;   A1 is C\/512,
 1032              Z=v(A1, D, E, F, G, H, I, J, K, L, [M], O, P, Q, R, S, T, U, V, W, X, Y)
 1033          )
 1034        ),
 1035        put_attr(A, guard_entailment, Z)
 1036    ;   put_attr(A,
 1037                 guard_entailment,
 1038                 v(512,
 1039                   [],
 1040                   [],
 1041                   [],
 1042                   [],
 1043                   [],
 1044                   [],
 1045                   [],
 1046                   [],
 1047                   [],
 1048                   [M],
 1049                   [],
 1050                   [],
 1051                   [],
 1052                   [],
 1053                   [],
 1054                   [],
 1055                   [],
 1056                   [],
 1057                   [],
 1058                   [],
 1059                   []))
 1060    ),
 1061    'attach_known/1_1_$special_integer/1___1'(B1, M).
 1062'detach_known/1_1_$special_integer/1___1'([], _).
 1063'detach_known/1_1_$special_integer/1___1'([A|B1], E) :-
 1064    (   get_attr(A, guard_entailment, B)
 1065    ->  B=v(C, H, I, J, K, L, M, N, O, P, D, Q, R, S, T, U, V, W, X, Y, Z, A1),
 1066        (   C/\512=:=512
 1067        ->  'chr sbag_del_element'(D, E, F),
 1068            (   F==[]
 1069            ->  G is C/\ -513,
 1070                (   G==0
 1071                ->  del_attr(A, guard_entailment)
 1072                ;   put_attr(A,
 1073                             guard_entailment,
 1074                             v(G,
 1075                               H,
 1076                               I,
 1077                               J,
 1078                               K,
 1079                               L,
 1080                               M,
 1081                               N,
 1082                               O,
 1083                               P,
 1084                               [],
 1085                               Q,
 1086                               R,
 1087                               S,
 1088                               T,
 1089                               U,
 1090                               V,
 1091                               W,
 1092                               X,
 1093                               Y,
 1094                               Z,
 1095                               A1))
 1096                )
 1097            ;   put_attr(A,
 1098                         guard_entailment,
 1099                         v(C,
 1100                           H,
 1101                           I,
 1102                           J,
 1103                           K,
 1104                           L,
 1105                           M,
 1106                           N,
 1107                           O,
 1108                           P,
 1109                           F,
 1110                           Q,
 1111                           R,
 1112                           S,
 1113                           T,
 1114                           U,
 1115                           V,
 1116                           W,
 1117                           X,
 1118                           Y,
 1119                           Z,
 1120                           A1))
 1121            )
 1122        ;   true
 1123        )
 1124    ;   true
 1125    ),
 1126    'detach_known/1_1_$special_integer/1___1'(B1, E).
 1127'attach_known/1_1_$special_float/1___1'([], _).
 1128'attach_known/1_1_$special_float/1___1'([A|B1], N) :-
 1129    (   get_attr(A, guard_entailment, B)
 1130    ->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, O, P, Q, R, S, T, U, V, W, X, Y),
 1131          (   C/\1024=:=1024
 1132          ->  Z=v(C, D, E, F, G, H, I, J, K, L, M, [N|O], P, Q, R, S, T, U, V, W, X, Y)
 1133          ;   A1 is C\/1024,
 1134              Z=v(A1, D, E, F, G, H, I, J, K, L, M, [N], P, Q, R, S, T, U, V, W, X, Y)
 1135          )
 1136        ),
 1137        put_attr(A, guard_entailment, Z)
 1138    ;   put_attr(A,
 1139                 guard_entailment,
 1140                 v(1024,
 1141                   [],
 1142                   [],
 1143                   [],
 1144                   [],
 1145                   [],
 1146                   [],
 1147                   [],
 1148                   [],
 1149                   [],
 1150                   [],
 1151                   [N],
 1152                   [],
 1153                   [],
 1154                   [],
 1155                   [],
 1156                   [],
 1157                   [],
 1158                   [],
 1159                   [],
 1160                   [],
 1161                   []))
 1162    ),
 1163    'attach_known/1_1_$special_float/1___1'(B1, N).
 1164'detach_known/1_1_$special_float/1___1'([], _).
 1165'detach_known/1_1_$special_float/1___1'([A|B1], E) :-
 1166    (   get_attr(A, guard_entailment, B)
 1167    ->  B=v(C, H, I, J, K, L, M, N, O, P, Q, D, R, S, T, U, V, W, X, Y, Z, A1),
 1168        (   C/\1024=:=1024
 1169        ->  'chr sbag_del_element'(D, E, F),
 1170            (   F==[]
 1171            ->  G is C/\ -1025,
 1172                (   G==0
 1173                ->  del_attr(A, guard_entailment)
 1174                ;   put_attr(A,
 1175                             guard_entailment,
 1176                             v(G,
 1177                               H,
 1178                               I,
 1179                               J,
 1180                               K,
 1181                               L,
 1182                               M,
 1183                               N,
 1184                               O,
 1185                               P,
 1186                               Q,
 1187                               [],
 1188                               R,
 1189                               S,
 1190                               T,
 1191                               U,
 1192                               V,
 1193                               W,
 1194                               X,
 1195                               Y,
 1196                               Z,
 1197                               A1))
 1198                )
 1199            ;   put_attr(A,
 1200                         guard_entailment,
 1201                         v(C,
 1202                           H,
 1203                           I,
 1204                           J,
 1205                           K,
 1206                           L,
 1207                           M,
 1208                           N,
 1209                           O,
 1210                           P,
 1211                           Q,
 1212                           F,
 1213                           R,
 1214                           S,
 1215                           T,
 1216                           U,
 1217                           V,
 1218                           W,
 1219                           X,
 1220                           Y,
 1221                           Z,
 1222                           A1))
 1223            )
 1224        ;   true
 1225        )
 1226    ;   true
 1227    ),
 1228    'detach_known/1_1_$special_float/1___1'(B1, E).
 1229'attach_known/1_1_$special_number/1___1'([], _).
 1230'attach_known/1_1_$special_number/1___1'([A|B1], O) :-
 1231    (   get_attr(A, guard_entailment, B)
 1232    ->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, P, Q, R, S, T, U, V, W, X, Y),
 1233          (   C/\2048=:=2048
 1234          ->  Z=v(C, D, E, F, G, H, I, J, K, L, M, N, [O|P], Q, R, S, T, U, V, W, X, Y)
 1235          ;   A1 is C\/2048,
 1236              Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, [O], Q, R, S, T, U, V, W, X, Y)
 1237          )
 1238        ),
 1239        put_attr(A, guard_entailment, Z)
 1240    ;   put_attr(A,
 1241                 guard_entailment,
 1242                 v(2048,
 1243                   [],
 1244                   [],
 1245                   [],
 1246                   [],
 1247                   [],
 1248                   [],
 1249                   [],
 1250                   [],
 1251                   [],
 1252                   [],
 1253                   [],
 1254                   [O],
 1255                   [],
 1256                   [],
 1257                   [],
 1258                   [],
 1259                   [],
 1260                   [],
 1261                   [],
 1262                   [],
 1263                   []))
 1264    ),
 1265    'attach_known/1_1_$special_number/1___1'(B1, O).
 1266'detach_known/1_1_$special_number/1___1'([], _).
 1267'detach_known/1_1_$special_number/1___1'([A|B1], E) :-
 1268    (   get_attr(A, guard_entailment, B)
 1269    ->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, D, S, T, U, V, W, X, Y, Z, A1),
 1270        (   C/\2048=:=2048
 1271        ->  'chr sbag_del_element'(D, E, F),
 1272            (   F==[]
 1273            ->  G is C/\ -2049,
 1274                (   G==0
 1275                ->  del_attr(A, guard_entailment)
 1276                ;   put_attr(A,
 1277                             guard_entailment,
 1278                             v(G,
 1279                               H,
 1280                               I,
 1281                               J,
 1282                               K,
 1283                               L,
 1284                               M,
 1285                               N,
 1286                               O,
 1287                               P,
 1288                               Q,
 1289                               R,
 1290                               [],
 1291                               S,
 1292                               T,
 1293                               U,
 1294                               V,
 1295                               W,
 1296                               X,
 1297                               Y,
 1298                               Z,
 1299                               A1))
 1300                )
 1301            ;   put_attr(A,
 1302                         guard_entailment,
 1303                         v(C,
 1304                           H,
 1305                           I,
 1306                           J,
 1307                           K,
 1308                           L,
 1309                           M,
 1310                           N,
 1311                           O,
 1312                           P,
 1313                           Q,
 1314                           R,
 1315                           F,
 1316                           S,
 1317                           T,
 1318                           U,
 1319                           V,
 1320                           W,
 1321                           X,
 1322                           Y,
 1323                           Z,
 1324                           A1))
 1325            )
 1326        ;   true
 1327        )
 1328    ;   true
 1329    ),
 1330    'detach_known/1_1_$special_number/1___1'(B1, E).
 1331'attach_known/1_1_$special_=\\=/2___2'([], _).
 1332'attach_known/1_1_$special_=\\=/2___2'([A|B1], P) :-
 1333    (   get_attr(A, guard_entailment, B)
 1334    ->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, Q, R, S, T, U, V, W, X, Y),
 1335          (   C/\4096=:=4096
 1336          ->  Z=v(C, D, E, F, G, H, I, J, K, L, M, N, O, [P|Q], R, S, T, U, V, W, X, Y)
 1337          ;   A1 is C\/4096,
 1338              Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, [P], R, S, T, U, V, W, X, Y)
 1339          )
 1340        ),
 1341        put_attr(A, guard_entailment, Z)
 1342    ;   put_attr(A,
 1343                 guard_entailment,
 1344                 v(4096,
 1345                   [],
 1346                   [],
 1347                   [],
 1348                   [],
 1349                   [],
 1350                   [],
 1351                   [],
 1352                   [],
 1353                   [],
 1354                   [],
 1355                   [],
 1356                   [],
 1357                   [P],
 1358                   [],
 1359                   [],
 1360                   [],
 1361                   [],
 1362                   [],
 1363                   [],
 1364                   [],
 1365                   []))
 1366    ),
 1367    'attach_known/1_1_$special_=\\=/2___2'(B1, P).
 1368'detach_known/1_1_$special_=\\=/2___2'([], _).
 1369'detach_known/1_1_$special_=\\=/2___2'([A|B1], E) :-
 1370    (   get_attr(A, guard_entailment, B)
 1371    ->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, D, T, U, V, W, X, Y, Z, A1),
 1372        (   C/\4096=:=4096
 1373        ->  'chr sbag_del_element'(D, E, F),
 1374            (   F==[]
 1375            ->  G is C/\ -4097,
 1376                (   G==0
 1377                ->  del_attr(A, guard_entailment)
 1378                ;   put_attr(A,
 1379                             guard_entailment,
 1380                             v(G,
 1381                               H,
 1382                               I,
 1383                               J,
 1384                               K,
 1385                               L,
 1386                               M,
 1387                               N,
 1388                               O,
 1389                               P,
 1390                               Q,
 1391                               R,
 1392                               S,
 1393                               [],
 1394                               T,
 1395                               U,
 1396                               V,
 1397                               W,
 1398                               X,
 1399                               Y,
 1400                               Z,
 1401                               A1))
 1402                )
 1403            ;   put_attr(A,
 1404                         guard_entailment,
 1405                         v(C,
 1406                           H,
 1407                           I,
 1408                           J,
 1409                           K,
 1410                           L,
 1411                           M,
 1412                           N,
 1413                           O,
 1414                           P,
 1415                           Q,
 1416                           R,
 1417                           S,
 1418                           F,
 1419                           T,
 1420                           U,
 1421                           V,
 1422                           W,
 1423                           X,
 1424                           Y,
 1425                           Z,
 1426                           A1))
 1427            )
 1428        ;   true
 1429        )
 1430    ;   true
 1431    ),
 1432    'detach_known/1_1_$special_=\\=/2___2'(B1, E).
 1433'attach_known/1_1_$special_\\+/1___1'([], _).
 1434'attach_known/1_1_$special_\\+/1___1'([A|B1], Q) :-
 1435    (   get_attr(A, guard_entailment, B)
 1436    ->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, R, S, T, U, V, W, X, Y),
 1437          (   C/\8192=:=8192
 1438          ->  Z=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, [Q|R], S, T, U, V, W, X, Y)
 1439          ;   A1 is C\/8192,
 1440              Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, [Q], S, T, U, V, W, X, Y)
 1441          )
 1442        ),
 1443        put_attr(A, guard_entailment, Z)
 1444    ;   put_attr(A,
 1445                 guard_entailment,
 1446                 v(8192,
 1447                   [],
 1448                   [],
 1449                   [],
 1450                   [],
 1451                   [],
 1452                   [],
 1453                   [],
 1454                   [],
 1455                   [],
 1456                   [],
 1457                   [],
 1458                   [],
 1459                   [],
 1460                   [Q],
 1461                   [],
 1462                   [],
 1463                   [],
 1464                   [],
 1465                   [],
 1466                   [],
 1467                   []))
 1468    ),
 1469    'attach_known/1_1_$special_\\+/1___1'(B1, Q).
 1470'detach_known/1_1_$special_\\+/1___1'([], _).
 1471'detach_known/1_1_$special_\\+/1___1'([A|B1], E) :-
 1472    (   get_attr(A, guard_entailment, B)
 1473    ->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, D, U, V, W, X, Y, Z, A1),
 1474        (   C/\8192=:=8192
 1475        ->  'chr sbag_del_element'(D, E, F),
 1476            (   F==[]
 1477            ->  G is C/\ -8193,
 1478                (   G==0
 1479                ->  del_attr(A, guard_entailment)
 1480                ;   put_attr(A,
 1481                             guard_entailment,
 1482                             v(G,
 1483                               H,
 1484                               I,
 1485                               J,
 1486                               K,
 1487                               L,
 1488                               M,
 1489                               N,
 1490                               O,
 1491                               P,
 1492                               Q,
 1493                               R,
 1494                               S,
 1495                               T,
 1496                               [],
 1497                               U,
 1498                               V,
 1499                               W,
 1500                               X,
 1501                               Y,
 1502                               Z,
 1503                               A1))
 1504                )
 1505            ;   put_attr(A,
 1506                         guard_entailment,
 1507                         v(C,
 1508                           H,
 1509                           I,
 1510                           J,
 1511                           K,
 1512                           L,
 1513                           M,
 1514                           N,
 1515                           O,
 1516                           P,
 1517                           Q,
 1518                           R,
 1519                           S,
 1520                           T,
 1521                           F,
 1522                           U,
 1523                           V,
 1524                           W,
 1525                           X,
 1526                           Y,
 1527                           Z,
 1528                           A1))
 1529            )
 1530        ;   true
 1531        )
 1532    ;   true
 1533    ),
 1534    'detach_known/1_1_$special_\\+/1___1'(B1, E).
 1535'attach_known/1_1_$special_functor/3___3'([], _).
 1536'attach_known/1_1_$special_functor/3___3'([A|B1], R) :-
 1537    (   get_attr(A, guard_entailment, B)
 1538    ->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, S, T, U, V, W, X, Y),
 1539          (   C/\16384=:=16384
 1540          ->  Z=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, [R|S], T, U, V, W, X, Y)
 1541          ;   A1 is C\/16384,
 1542              Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, [R], T, U, V, W, X, Y)
 1543          )
 1544        ),
 1545        put_attr(A, guard_entailment, Z)
 1546    ;   put_attr(A,
 1547                 guard_entailment,
 1548                 v(16384,
 1549                   [],
 1550                   [],
 1551                   [],
 1552                   [],
 1553                   [],
 1554                   [],
 1555                   [],
 1556                   [],
 1557                   [],
 1558                   [],
 1559                   [],
 1560                   [],
 1561                   [],
 1562                   [],
 1563                   [R],
 1564                   [],
 1565                   [],
 1566                   [],
 1567                   [],
 1568                   [],
 1569                   []))
 1570    ),
 1571    'attach_known/1_1_$special_functor/3___3'(B1, R).
 1572'detach_known/1_1_$special_functor/3___3'([], _).
 1573'detach_known/1_1_$special_functor/3___3'([A|B1], E) :-
 1574    (   get_attr(A, guard_entailment, B)
 1575    ->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, D, V, W, X, Y, Z, A1),
 1576        (   C/\16384=:=16384
 1577        ->  'chr sbag_del_element'(D, E, F),
 1578            (   F==[]
 1579            ->  G is C/\ -16385,
 1580                (   G==0
 1581                ->  del_attr(A, guard_entailment)
 1582                ;   put_attr(A,
 1583                             guard_entailment,
 1584                             v(G,
 1585                               H,
 1586                               I,
 1587                               J,
 1588                               K,
 1589                               L,
 1590                               M,
 1591                               N,
 1592                               O,
 1593                               P,
 1594                               Q,
 1595                               R,
 1596                               S,
 1597                               T,
 1598                               U,
 1599                               [],
 1600                               V,
 1601                               W,
 1602                               X,
 1603                               Y,
 1604                               Z,
 1605                               A1))
 1606                )
 1607            ;   put_attr(A,
 1608                         guard_entailment,
 1609                         v(C,
 1610                           H,
 1611                           I,
 1612                           J,
 1613                           K,
 1614                           L,
 1615                           M,
 1616                           N,
 1617                           O,
 1618                           P,
 1619                           Q,
 1620                           R,
 1621                           S,
 1622                           T,
 1623                           U,
 1624                           F,
 1625                           V,
 1626                           W,
 1627                           X,
 1628                           Y,
 1629                           Z,
 1630                           A1))
 1631            )
 1632        ;   true
 1633        )
 1634    ;   true
 1635    ),
 1636    'detach_known/1_1_$special_functor/3___3'(B1, E).
 1637'attach_known/1_1_$special_\\=/2___2'([], _).
 1638'attach_known/1_1_$special_\\=/2___2'([A|B1], S) :-
 1639    (   get_attr(A, guard_entailment, B)
 1640    ->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, T, U, V, W, X, Y),
 1641          (   C/\32768=:=32768
 1642          ->  Z=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, [S|T], U, V, W, X, Y)
 1643          ;   A1 is C\/32768,
 1644              Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, [S], U, V, W, X, Y)
 1645          )
 1646        ),
 1647        put_attr(A, guard_entailment, Z)
 1648    ;   put_attr(A,
 1649                 guard_entailment,
 1650                 v(32768,
 1651                   [],
 1652                   [],
 1653                   [],
 1654                   [],
 1655                   [],
 1656                   [],
 1657                   [],
 1658                   [],
 1659                   [],
 1660                   [],
 1661                   [],
 1662                   [],
 1663                   [],
 1664                   [],
 1665                   [],
 1666                   [S],
 1667                   [],
 1668                   [],
 1669                   [],
 1670                   [],
 1671                   []))
 1672    ),
 1673    'attach_known/1_1_$special_\\=/2___2'(B1, S).
 1674'detach_known/1_1_$special_\\=/2___2'([], _).
 1675'detach_known/1_1_$special_\\=/2___2'([A|B1], E) :-
 1676    (   get_attr(A, guard_entailment, B)
 1677    ->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, D, W, X, Y, Z, A1),
 1678        (   C/\32768=:=32768
 1679        ->  'chr sbag_del_element'(D, E, F),
 1680            (   F==[]
 1681            ->  G is C/\ -32769,
 1682                (   G==0
 1683                ->  del_attr(A, guard_entailment)
 1684                ;   put_attr(A,
 1685                             guard_entailment,
 1686                             v(G,
 1687                               H,
 1688                               I,
 1689                               J,
 1690                               K,
 1691                               L,
 1692                               M,
 1693                               N,
 1694                               O,
 1695                               P,
 1696                               Q,
 1697                               R,
 1698                               S,
 1699                               T,
 1700                               U,
 1701                               V,
 1702                               [],
 1703                               W,
 1704                               X,
 1705                               Y,
 1706                               Z,
 1707                               A1))
 1708                )
 1709            ;   put_attr(A,
 1710                         guard_entailment,
 1711                         v(C,
 1712                           H,
 1713                           I,
 1714                           J,
 1715                           K,
 1716                           L,
 1717                           M,
 1718                           N,
 1719                           O,
 1720                           P,
 1721                           Q,
 1722                           R,
 1723                           S,
 1724                           T,
 1725                           U,
 1726                           V,
 1727                           F,
 1728                           W,
 1729                           X,
 1730                           Y,
 1731                           Z,
 1732                           A1))
 1733            )
 1734        ;   true
 1735        )
 1736    ;   true
 1737    ),
 1738    'detach_known/1_1_$special_\\=/2___2'(B1, E).
 1739'attach_known/1_1_$special_=/2___2'([], _).
 1740'attach_known/1_1_$special_=/2___2'([A|B1], T) :-
 1741    (   get_attr(A, guard_entailment, B)
 1742    ->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, U, V, W, X, Y),
 1743          (   C/\65536=:=65536
 1744          ->  Z=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, [T|U], V, W, X, Y)
 1745          ;   A1 is C\/65536,
 1746              Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, [T], V, W, X, Y)
 1747          )
 1748        ),
 1749        put_attr(A, guard_entailment, Z)
 1750    ;   put_attr(A,
 1751                 guard_entailment,
 1752                 v(65536,
 1753                   [],
 1754                   [],
 1755                   [],
 1756                   [],
 1757                   [],
 1758                   [],
 1759                   [],
 1760                   [],
 1761                   [],
 1762                   [],
 1763                   [],
 1764                   [],
 1765                   [],
 1766                   [],
 1767                   [],
 1768                   [],
 1769                   [T],
 1770                   [],
 1771                   [],
 1772                   [],
 1773                   []))
 1774    ),
 1775    'attach_known/1_1_$special_=/2___2'(B1, T).
 1776'detach_known/1_1_$special_=/2___2'([], _).
 1777'detach_known/1_1_$special_=/2___2'([A|B1], E) :-
 1778    (   get_attr(A, guard_entailment, B)
 1779    ->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, D, X, Y, Z, A1),
 1780        (   C/\65536=:=65536
 1781        ->  'chr sbag_del_element'(D, E, F),
 1782            (   F==[]
 1783            ->  G is C/\ -65537,
 1784                (   G==0
 1785                ->  del_attr(A, guard_entailment)
 1786                ;   put_attr(A,
 1787                             guard_entailment,
 1788                             v(G,
 1789                               H,
 1790                               I,
 1791                               J,
 1792                               K,
 1793                               L,
 1794                               M,
 1795                               N,
 1796                               O,
 1797                               P,
 1798                               Q,
 1799                               R,
 1800                               S,
 1801                               T,
 1802                               U,
 1803                               V,
 1804                               W,
 1805                               [],
 1806                               X,
 1807                               Y,
 1808                               Z,
 1809                               A1))
 1810                )
 1811            ;   put_attr(A,
 1812                         guard_entailment,
 1813                         v(C,
 1814                           H,
 1815                           I,
 1816                           J,
 1817                           K,
 1818                           L,
 1819                           M,
 1820                           N,
 1821                           O,
 1822                           P,
 1823                           Q,
 1824                           R,
 1825                           S,
 1826                           T,
 1827                           U,
 1828                           V,
 1829                           W,
 1830                           F,
 1831                           X,
 1832                           Y,
 1833                           Z,
 1834                           A1))
 1835            )
 1836        ;   true
 1837        )
 1838    ;   true
 1839    ),
 1840    'detach_known/1_1_$special_=/2___2'(B1, E).
 1841'attach_known/1_1_$special_\\==/2___2'([], _).
 1842'attach_known/1_1_$special_\\==/2___2'([A|B1], U) :-
 1843    (   get_attr(A, guard_entailment, B)
 1844    ->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, V, W, X, Y),
 1845          (   C/\131072=:=131072
 1846          ->  Z=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, [U|V], W, X, Y)
 1847          ;   A1 is C\/131072,
 1848              Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, [U], W, X, Y)
 1849          )
 1850        ),
 1851        put_attr(A, guard_entailment, Z)
 1852    ;   put_attr(A,
 1853                 guard_entailment,
 1854                 v(131072,
 1855                   [],
 1856                   [],
 1857                   [],
 1858                   [],
 1859                   [],
 1860                   [],
 1861                   [],
 1862                   [],
 1863                   [],
 1864                   [],
 1865                   [],
 1866                   [],
 1867                   [],
 1868                   [],
 1869                   [],
 1870                   [],
 1871                   [],
 1872                   [U],
 1873                   [],
 1874                   [],
 1875                   []))
 1876    ),
 1877    'attach_known/1_1_$special_\\==/2___2'(B1, U).
 1878'detach_known/1_1_$special_\\==/2___2'([], _).
 1879'detach_known/1_1_$special_\\==/2___2'([A|B1], E) :-
 1880    (   get_attr(A, guard_entailment, B)
 1881    ->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, D, Y, Z, A1),
 1882        (   C/\131072=:=131072
 1883        ->  'chr sbag_del_element'(D, E, F),
 1884            (   F==[]
 1885            ->  G is C/\ -131073,
 1886                (   G==0
 1887                ->  del_attr(A, guard_entailment)
 1888                ;   put_attr(A,
 1889                             guard_entailment,
 1890                             v(G,
 1891                               H,
 1892                               I,
 1893                               J,
 1894                               K,
 1895                               L,
 1896                               M,
 1897                               N,
 1898                               O,
 1899                               P,
 1900                               Q,
 1901                               R,
 1902                               S,
 1903                               T,
 1904                               U,
 1905                               V,
 1906                               W,
 1907                               X,
 1908                               [],
 1909                               Y,
 1910                               Z,
 1911                               A1))
 1912                )
 1913            ;   put_attr(A,
 1914                         guard_entailment,
 1915                         v(C,
 1916                           H,
 1917                           I,
 1918                           J,
 1919                           K,
 1920                           L,
 1921                           M,
 1922                           N,
 1923                           O,
 1924                           P,
 1925                           Q,
 1926                           R,
 1927                           S,
 1928                           T,
 1929                           U,
 1930                           V,
 1931                           W,
 1932                           X,
 1933                           F,
 1934                           Y,
 1935                           Z,
 1936                           A1))
 1937            )
 1938        ;   true
 1939        )
 1940    ;   true
 1941    ),
 1942    'detach_known/1_1_$special_\\==/2___2'(B1, E).
 1943'attach_known/1_1_$special_==/2___2'([], _).
 1944'attach_known/1_1_$special_==/2___2'([A|B1], V) :-
 1945    (   get_attr(A, guard_entailment, B)
 1946    ->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, W, X, Y),
 1947          (   C/\262144=:=262144
 1948          ->  Z=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, [V|W], X, Y)
 1949          ;   A1 is C\/262144,
 1950              Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, [V], X, Y)
 1951          )
 1952        ),
 1953        put_attr(A, guard_entailment, Z)
 1954    ;   put_attr(A,
 1955                 guard_entailment,
 1956                 v(262144,
 1957                   [],
 1958                   [],
 1959                   [],
 1960                   [],
 1961                   [],
 1962                   [],
 1963                   [],
 1964                   [],
 1965                   [],
 1966                   [],
 1967                   [],
 1968                   [],
 1969                   [],
 1970                   [],
 1971                   [],
 1972                   [],
 1973                   [],
 1974                   [],
 1975                   [V],
 1976                   [],
 1977                   []))
 1978    ),
 1979    'attach_known/1_1_$special_==/2___2'(B1, V).
 1980'detach_known/1_1_$special_==/2___2'([], _).
 1981'detach_known/1_1_$special_==/2___2'([A|B1], E) :-
 1982    (   get_attr(A, guard_entailment, B)
 1983    ->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, D, Z, A1),
 1984        (   C/\262144=:=262144
 1985        ->  'chr sbag_del_element'(D, E, F),
 1986            (   F==[]
 1987            ->  G is C/\ -262145,
 1988                (   G==0
 1989                ->  del_attr(A, guard_entailment)
 1990                ;   put_attr(A,
 1991                             guard_entailment,
 1992                             v(G,
 1993                               H,
 1994                               I,
 1995                               J,
 1996                               K,
 1997                               L,
 1998                               M,
 1999                               N,
 2000                               O,
 2001                               P,
 2002                               Q,
 2003                               R,
 2004                               S,
 2005                               T,
 2006                               U,
 2007                               V,
 2008                               W,
 2009                               X,
 2010                               Y,
 2011                               [],
 2012                               Z,
 2013                               A1))
 2014                )
 2015            ;   put_attr(A,
 2016                         guard_entailment,
 2017                         v(C,
 2018                           H,
 2019                           I,
 2020                           J,
 2021                           K,
 2022                           L,
 2023                           M,
 2024                           N,
 2025                           O,
 2026                           P,
 2027                           Q,
 2028                           R,
 2029                           S,
 2030                           T,
 2031                           U,
 2032                           V,
 2033                           W,
 2034                           X,
 2035                           Y,
 2036                           F,
 2037                           Z,
 2038                           A1))
 2039            )
 2040        ;   true
 2041        )
 2042    ;   true
 2043    ),
 2044    'detach_known/1_1_$special_==/2___2'(B1, E).
 2045'attach_known/1_1_$special_=</2___2'([], _).
 2046'attach_known/1_1_$special_=</2___2'([A|B1], W) :-
 2047    (   get_attr(A, guard_entailment, B)
 2048    ->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, X, Y),
 2049          (   C/\524288=:=524288
 2050          ->  Z=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, [W|X], Y)
 2051          ;   A1 is C\/524288,
 2052              Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, [W], Y)
 2053          )
 2054        ),
 2055        put_attr(A, guard_entailment, Z)
 2056    ;   put_attr(A,
 2057                 guard_entailment,
 2058                 v(524288,
 2059                   [],
 2060                   [],
 2061                   [],
 2062                   [],
 2063                   [],
 2064                   [],
 2065                   [],
 2066                   [],
 2067                   [],
 2068                   [],
 2069                   [],
 2070                   [],
 2071                   [],
 2072                   [],
 2073                   [],
 2074                   [],
 2075                   [],
 2076                   [],
 2077                   [],
 2078                   [W],
 2079                   []))
 2080    ),
 2081    'attach_known/1_1_$special_=</2___2'(B1, W).
 2082'detach_known/1_1_$special_=</2___2'([], _).
 2083'detach_known/1_1_$special_=</2___2'([A|B1], E) :-
 2084    (   get_attr(A, guard_entailment, B)
 2085    ->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, D, A1),
 2086        (   C/\524288=:=524288
 2087        ->  'chr sbag_del_element'(D, E, F),
 2088            (   F==[]
 2089            ->  G is C/\ -524289,
 2090                (   G==0
 2091                ->  del_attr(A, guard_entailment)
 2092                ;   put_attr(A,
 2093                             guard_entailment,
 2094                             v(G,
 2095                               H,
 2096                               I,
 2097                               J,
 2098                               K,
 2099                               L,
 2100                               M,
 2101                               N,
 2102                               O,
 2103                               P,
 2104                               Q,
 2105                               R,
 2106                               S,
 2107                               T,
 2108                               U,
 2109                               V,
 2110                               W,
 2111                               X,
 2112                               Y,
 2113                               Z,
 2114                               [],
 2115                               A1))
 2116                )
 2117            ;   put_attr(A,
 2118                         guard_entailment,
 2119                         v(C,
 2120                           H,
 2121                           I,
 2122                           J,
 2123                           K,
 2124                           L,
 2125                           M,
 2126                           N,
 2127                           O,
 2128                           P,
 2129                           Q,
 2130                           R,
 2131                           S,
 2132                           T,
 2133                           U,
 2134                           V,
 2135                           W,
 2136                           X,
 2137                           Y,
 2138                           Z,
 2139                           F,
 2140                           A1))
 2141            )
 2142        ;   true
 2143        )
 2144    ;   true
 2145    ),
 2146    'detach_known/1_1_$special_=</2___2'(B1, E).
 2147'attach_known/1_1_$special_=:=/2___2'([], _).
 2148'attach_known/1_1_$special_=:=/2___2'([A|B1], X) :-
 2149    (   get_attr(A, guard_entailment, B)
 2150    ->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, Y),
 2151          (   C/\1048576=:=1048576
 2152          ->  Z=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, [X|Y])
 2153          ;   A1 is C\/1048576,
 2154              Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, [X])
 2155          )
 2156        ),
 2157        put_attr(A, guard_entailment, Z)
 2158    ;   put_attr(A,
 2159                 guard_entailment,
 2160                 v(1048576,
 2161                   [],
 2162                   [],
 2163                   [],
 2164                   [],
 2165                   [],
 2166                   [],
 2167                   [],
 2168                   [],
 2169                   [],
 2170                   [],
 2171                   [],
 2172                   [],
 2173                   [],
 2174                   [],
 2175                   [],
 2176                   [],
 2177                   [],
 2178                   [],
 2179                   [],
 2180                   [],
 2181                   [X]))
 2182    ),
 2183    'attach_known/1_1_$special_=:=/2___2'(B1, X).
 2184'detach_known/1_1_$special_=:=/2___2'([], _).
 2185'detach_known/1_1_$special_=:=/2___2'([A|B1], E) :-
 2186    (   get_attr(A, guard_entailment, B)
 2187    ->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1, D),
 2188        (   C/\1048576=:=1048576
 2189        ->  'chr sbag_del_element'(D, E, F),
 2190            (   F==[]
 2191            ->  G is C/\ -1048577,
 2192                (   G==0
 2193                ->  del_attr(A, guard_entailment)
 2194                ;   put_attr(A,
 2195                             guard_entailment,
 2196                             v(G,
 2197                               H,
 2198                               I,
 2199                               J,
 2200                               K,
 2201                               L,
 2202                               M,
 2203                               N,
 2204                               O,
 2205                               P,
 2206                               Q,
 2207                               R,
 2208                               S,
 2209                               T,
 2210                               U,
 2211                               V,
 2212                               W,
 2213                               X,
 2214                               Y,
 2215                               Z,
 2216                               A1,
 2217                               []))
 2218                )
 2219            ;   put_attr(A,
 2220                         guard_entailment,
 2221                         v(C,
 2222                           H,
 2223                           I,
 2224                           J,
 2225                           K,
 2226                           L,
 2227                           M,
 2228                           N,
 2229                           O,
 2230                           P,
 2231                           Q,
 2232                           R,
 2233                           S,
 2234                           T,
 2235                           U,
 2236                           V,
 2237                           W,
 2238                           X,
 2239                           Y,
 2240                           Z,
 2241                           A1,
 2242                           F))
 2243            )
 2244        ;   true
 2245        )
 2246    ;   true
 2247    ),
 2248    'detach_known/1_1_$special_=:=/2___2'(B1, E).
 2249attach_increment([], _).
 2250attach_increment([A|M3], B) :-
 2251    'chr not_locked'(A),
 2252    (   get_attr(A, guard_entailment, C)
 2253    ->  ( B=v(O2, E, H, K, N, Q, T, W, Z, C1, F1, I1, L1, O1, R1, U1, X1, A2, D2, G2, J2, M2),
 2254          C=v(P2, D, G, J, M, P, S, V, Y, B1, E1, H1, K1, N1, Q1, T1, W1, Z1, C2, F2, I2, L2),
 2255          ( ( sort(D, F),
 2256              'chr merge_attributes'(E, F, R2)
 2257            ),
 2258            ( sort(G, I),
 2259              'chr merge_attributes'(H, I, S2)
 2260            ),
 2261            ( sort(J, L),
 2262              'chr merge_attributes'(K, L, T2)
 2263            ),
 2264            ( sort(M, O),
 2265              'chr merge_attributes'(N, O, U2)
 2266            ),
 2267            ( sort(P, R),
 2268              'chr merge_attributes'(Q, R, V2)
 2269            ),
 2270            ( sort(S, U),
 2271              'chr merge_attributes'(T, U, W2)
 2272            ),
 2273            ( sort(V, X),
 2274              'chr merge_attributes'(W, X, X2)
 2275            ),
 2276            ( sort(Y, A1),
 2277              'chr merge_attributes'(Z, A1, Y2)
 2278            ),
 2279            ( sort(B1, D1),
 2280              'chr merge_attributes'(C1, D1, Z2)
 2281            ),
 2282            ( sort(E1, G1),
 2283              'chr merge_attributes'(F1, G1, A3)
 2284            ),
 2285            ( sort(H1, J1),
 2286              'chr merge_attributes'(I1, J1, B3)
 2287            ),
 2288            ( sort(K1, M1),
 2289              'chr merge_attributes'(L1, M1, C3)
 2290            ),
 2291            ( sort(N1, P1),
 2292              'chr merge_attributes'(O1, P1, D3)
 2293            ),
 2294            ( sort(Q1, S1),
 2295              'chr merge_attributes'(R1, S1, E3)
 2296            ),
 2297            ( sort(T1, V1),
 2298              'chr merge_attributes'(U1, V1, F3)
 2299            ),
 2300            ( sort(W1, Y1),
 2301              'chr merge_attributes'(X1, Y1, G3)
 2302            ),
 2303            ( sort(Z1, B2),
 2304              'chr merge_attributes'(A2, B2, H3)
 2305            ),
 2306            ( sort(C2, E2),
 2307              'chr merge_attributes'(D2, E2, I3)
 2308            ),
 2309            ( sort(F2, H2),
 2310              'chr merge_attributes'(G2, H2, J3)
 2311            ),
 2312            ( sort(I2, K2),
 2313              'chr merge_attributes'(J2, K2, K3)
 2314            ),
 2315            sort(L2, N2),
 2316            'chr merge_attributes'(M2, N2, L3)
 2317          ),
 2318          Q2 is O2\/P2
 2319        ),
 2320        put_attr(A,
 2321                 guard_entailment,
 2322                 v(Q2,
 2323                   R2,
 2324                   S2,
 2325                   T2,
 2326                   U2,
 2327                   V2,
 2328                   W2,
 2329                   X2,
 2330                   Y2,
 2331                   Z2,
 2332                   A3,
 2333                   B3,
 2334                   C3,
 2335                   D3,
 2336                   E3,
 2337                   F3,
 2338                   G3,
 2339                   H3,
 2340                   I3,
 2341                   J3,
 2342                   K3,
 2343                   L3))
 2344    ;   put_attr(A, guard_entailment, B)
 2345    ),
 2346    attach_increment(M3, B).
 2347attribute_goals(_, A, A).
 2348attr_unify_hook(v(I3, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U), V) :-
 2349    sort(A, Y),
 2350    sort(B, B1),
 2351    sort(C, E1),
 2352    sort(D, H1),
 2353    sort(E, K1),
 2354    sort(F, N1),
 2355    sort(G, Q1),
 2356    sort(H, T1),
 2357    sort(I, W1),
 2358    sort(J, Z1),
 2359    sort(K, C2),
 2360    sort(L, F2),
 2361    sort(M, I2),
 2362    sort(N, L2),
 2363    sort(O, O2),
 2364    sort(P, R2),
 2365    sort(Q, U2),
 2366    sort(R, X2),
 2367    sort(S, A3),
 2368    sort(T, D3),
 2369    sort(U, G3),
 2370    (   var(V)
 2371    ->  (   get_attr(V, guard_entailment, W)
 2372        ->  ( W=v(J3, X, A1, D1, G1, J1, M1, P1, S1, V1, Y1, B2, E2, H2, K2, N2, Q2, T2, W2, Z2, C3, F3),
 2373              ( ( sort(X, Z),
 2374                  'chr merge_attributes'(Y, Z, L3)
 2375                ),
 2376                ( sort(A1, C1),
 2377                  'chr merge_attributes'(B1, C1, M3)
 2378                ),
 2379                ( sort(D1, F1),
 2380                  'chr merge_attributes'(E1, F1, N3)
 2381                ),
 2382                ( sort(G1, I1),
 2383                  'chr merge_attributes'(H1, I1, O3)
 2384                ),
 2385                ( sort(J1, L1),
 2386                  'chr merge_attributes'(K1, L1, P3)
 2387                ),
 2388                ( sort(M1, O1),
 2389                  'chr merge_attributes'(N1, O1, Q3)
 2390                ),
 2391                ( sort(P1, R1),
 2392                  'chr merge_attributes'(Q1, R1, R3)
 2393                ),
 2394                ( sort(S1, U1),
 2395                  'chr merge_attributes'(T1, U1, S3)
 2396                ),
 2397                ( sort(V1, X1),
 2398                  'chr merge_attributes'(W1, X1, T3)
 2399                ),
 2400                ( sort(Y1, A2),
 2401                  'chr merge_attributes'(Z1, A2, U3)
 2402                ),
 2403                ( sort(B2, D2),
 2404                  'chr merge_attributes'(C2, D2, V3)
 2405                ),
 2406                ( sort(E2, G2),
 2407                  'chr merge_attributes'(F2, G2, W3)
 2408                ),
 2409                ( sort(H2, J2),
 2410                  'chr merge_attributes'(I2, J2, X3)
 2411                ),
 2412                ( sort(K2, M2),
 2413                  'chr merge_attributes'(L2, M2, Y3)
 2414                ),
 2415                ( sort(N2, P2),
 2416                  'chr merge_attributes'(O2, P2, Z3)
 2417                ),
 2418                ( sort(Q2, S2),
 2419                  'chr merge_attributes'(R2, S2, A4)
 2420                ),
 2421                ( sort(T2, V2),
 2422                  'chr merge_attributes'(U2, V2, B4)
 2423                ),
 2424                ( sort(W2, Y2),
 2425                  'chr merge_attributes'(X2, Y2, C4)
 2426                ),
 2427                ( sort(Z2, B3),
 2428                  'chr merge_attributes'(A3, B3, D4)
 2429                ),
 2430                ( sort(C3, E3),
 2431                  'chr merge_attributes'(D3, E3, E4)
 2432                ),
 2433                sort(F3, H3),
 2434                'chr merge_attributes'(G3, H3, F4)
 2435              ),
 2436              K3 is I3\/J3
 2437            ),
 2438            put_attr(V,
 2439                     guard_entailment,
 2440                     v(K3,
 2441                       L3,
 2442                       M3,
 2443                       N3,
 2444                       O3,
 2445                       P3,
 2446                       Q3,
 2447                       R3,
 2448                       S3,
 2449                       T3,
 2450                       U3,
 2451                       V3,
 2452                       W3,
 2453                       X3,
 2454                       Y3,
 2455                       Z3,
 2456                       A4,
 2457                       B4,
 2458                       C4,
 2459                       D4,
 2460                       E4,
 2461                       F4)),
 2462            '$run_suspensions_variables___1'(Y),
 2463            '$run_suspensions_known/1_1_$default___1'(B1),
 2464            '$run_suspensions_known/1_1_$special_;/2___2'(N3),
 2465            '$run_suspensions_known/1_1_$special_nonvar/1___1'(H1),
 2466            '$run_suspensions_known/1_1_$special_var/1___1'(K1),
 2467            '$run_suspensions_known/1_1_$special_atom/1___1'(N1),
 2468            '$run_suspensions_known/1_1_$special_atomic/1___1'(Q1),
 2469            '$run_suspensions_known/1_1_$special_compound/1___1'(T1),
 2470            '$run_suspensions_known/1_1_$special_ground/1___1'(W1),
 2471            '$run_suspensions_known/1_1_$special_integer/1___1'(U3),
 2472            '$run_suspensions_known/1_1_$special_float/1___1'(V3),
 2473            '$run_suspensions_known/1_1_$special_number/1___1'(W3),
 2474            '$run_suspensions_known/1_1_$special_=\\=/2___2'(X3),
 2475            '$run_suspensions_known/1_1_$special_\\+/1___1'(Y3),
 2476            '$run_suspensions_known/1_1_$special_functor/3___3'(Z3),
 2477            '$run_suspensions_known/1_1_$special_\\=/2___2'(A4),
 2478            '$run_suspensions_known/1_1_$special_=/2___2'(B4),
 2479            '$run_suspensions_known/1_1_$special_\\==/2___2'(C4),
 2480            '$run_suspensions_known/1_1_$special_==/2___2'(D4),
 2481            '$run_suspensions_known/1_1_$special_=</2___2'(E4),
 2482            '$run_suspensions_known/1_1_$special_=:=/2___2'(F4)
 2483        ;   put_attr(V,
 2484                     guard_entailment,
 2485                     v(I3,
 2486                       Y,
 2487                       B1,
 2488                       E1,
 2489                       H1,
 2490                       K1,
 2491                       N1,
 2492                       Q1,
 2493                       T1,
 2494                       W1,
 2495                       Z1,
 2496                       C2,
 2497                       F2,
 2498                       I2,
 2499                       L2,
 2500                       O2,
 2501                       R2,
 2502                       U2,
 2503                       X2,
 2504                       A3,
 2505                       D3,
 2506                       G3)),
 2507            '$run_suspensions_variables___1'(Y),
 2508            '$run_suspensions_known/1_1_$default___1'(B1),
 2509            '$run_suspensions_known/1_1_$special_;/2___2'(E1),
 2510            '$run_suspensions_known/1_1_$special_nonvar/1___1'(H1),
 2511            '$run_suspensions_known/1_1_$special_var/1___1'(K1),
 2512            '$run_suspensions_known/1_1_$special_atom/1___1'(N1),
 2513            '$run_suspensions_known/1_1_$special_atomic/1___1'(Q1),
 2514            '$run_suspensions_known/1_1_$special_compound/1___1'(T1),
 2515            '$run_suspensions_known/1_1_$special_ground/1___1'(W1),
 2516            '$run_suspensions_known/1_1_$special_integer/1___1'(Z1),
 2517            '$run_suspensions_known/1_1_$special_float/1___1'(C2),
 2518            '$run_suspensions_known/1_1_$special_number/1___1'(F2),
 2519            '$run_suspensions_known/1_1_$special_=\\=/2___2'(I2),
 2520            '$run_suspensions_known/1_1_$special_\\+/1___1'(L2),
 2521            '$run_suspensions_known/1_1_$special_functor/3___3'(O2),
 2522            '$run_suspensions_known/1_1_$special_\\=/2___2'(R2),
 2523            '$run_suspensions_known/1_1_$special_=/2___2'(U2),
 2524            '$run_suspensions_known/1_1_$special_\\==/2___2'(X2),
 2525            '$run_suspensions_known/1_1_$special_==/2___2'(A3),
 2526            '$run_suspensions_known/1_1_$special_=</2___2'(D3),
 2527            '$run_suspensions_known/1_1_$special_=:=/2___2'(G3)
 2528        )
 2529    ;   (   compound(V)
 2530        ->  term_variables(V, G4),
 2531            attach_increment(G4,
 2532                             v(I3,
 2533                               Y,
 2534                               B1,
 2535                               E1,
 2536                               H1,
 2537                               K1,
 2538                               N1,
 2539                               Q1,
 2540                               T1,
 2541                               W1,
 2542                               Z1,
 2543                               C2,
 2544                               F2,
 2545                               I2,
 2546                               L2,
 2547                               O2,
 2548                               R2,
 2549                               U2,
 2550                               X2,
 2551                               A3,
 2552                               D3,
 2553                               G3))
 2554        ;   true
 2555        ),
 2556        '$run_suspensions_variables___1'(Y),
 2557        '$run_suspensions_known/1_1_$default___1'(B1),
 2558        '$run_suspensions_known/1_1_$special_;/2___2'(E1),
 2559        '$run_suspensions_known/1_1_$special_nonvar/1___1'(H1),
 2560        '$run_suspensions_known/1_1_$special_var/1___1'(K1),
 2561        '$run_suspensions_known/1_1_$special_atom/1___1'(N1),
 2562        '$run_suspensions_known/1_1_$special_atomic/1___1'(Q1),
 2563        '$run_suspensions_known/1_1_$special_compound/1___1'(T1),
 2564        '$run_suspensions_known/1_1_$special_ground/1___1'(W1),
 2565        '$run_suspensions_known/1_1_$special_integer/1___1'(Z1),
 2566        '$run_suspensions_known/1_1_$special_float/1___1'(C2),
 2567        '$run_suspensions_known/1_1_$special_number/1___1'(F2),
 2568        '$run_suspensions_known/1_1_$special_=\\=/2___2'(I2),
 2569        '$run_suspensions_known/1_1_$special_\\+/1___1'(L2),
 2570        '$run_suspensions_known/1_1_$special_functor/3___3'(O2),
 2571        '$run_suspensions_known/1_1_$special_\\=/2___2'(R2),
 2572        '$run_suspensions_known/1_1_$special_=/2___2'(U2),
 2573        '$run_suspensions_known/1_1_$special_\\==/2___2'(X2),
 2574        '$run_suspensions_known/1_1_$special_==/2___2'(A3),
 2575        '$run_suspensions_known/1_1_$special_=</2___2'(D3),
 2576        '$run_suspensions_known/1_1_$special_=:=/2___2'(G3)
 2577    ).
 2578'$novel_production'(A, B) :-
 2579    arg(3, A, C),
 2580    (   hprolog:get_ds(B, C, _)
 2581    ->  fail
 2582    ;   true
 2583    ).
 2584'$extend_history'(A, B) :-
 2585    arg(3, A, C),
 2586    hprolog:put_ds(B, C, x, D),
 2587    setarg(3, A, D).
 2588'$run_suspensions_variables___1'([]).
 2589'$run_suspensions_variables___1'([A|D]) :-
 2590    A=suspension(_, B, _, C),
 2591    (   B==active
 2592    ->  setarg(2, A, triggered),
 2593        variables___1__0(C, A),
 2594        (   B==triggered
 2595        ->  setarg(2, A, active)
 2596        ;   true
 2597        )
 2598    ;   true
 2599    ),
 2600    '$run_suspensions_variables___1'(D).
 2601'$run_suspensions_known/1_1_$default___1'([]).
 2602'$run_suspensions_known/1_1_$default___1'([A|F]) :-
 2603    A=suspension(_, B, C, _, E),
 2604    (   B==active
 2605    ->  setarg(2, A, triggered),
 2606        ( D is C+1,
 2607          setarg(3, A, D)
 2608        ),
 2609        'known/1_1_$default___1__0'(E, A),
 2610        (   B==triggered
 2611        ->  setarg(2, A, active)
 2612        ;   true
 2613        )
 2614    ;   true
 2615    ),
 2616    '$run_suspensions_known/1_1_$default___1'(F).
 2617'$run_suspensions_known/1_1_$special_;/2___2'([]).
 2618'$run_suspensions_known/1_1_$special_;/2___2'([A|G]) :-
 2619    A=suspension(_, B, C, _, E, F),
 2620    (   B==active
 2621    ->  setarg(2, A, triggered),
 2622        ( D is C+1,
 2623          setarg(3, A, D)
 2624        ),
 2625        'known/1_1_$special_;/2___2__0'(E, F, A),
 2626        (   B==triggered
 2627        ->  setarg(2, A, active)
 2628        ;   true
 2629        )
 2630    ;   true
 2631    ),
 2632    '$run_suspensions_known/1_1_$special_;/2___2'(G).
 2633'$run_suspensions_known/1_1_$special_nonvar/1___1'([]).
 2634'$run_suspensions_known/1_1_$special_nonvar/1___1'([A|F]) :-
 2635    A=suspension(_, B, C, _, E),
 2636    (   B==active
 2637    ->  setarg(2, A, triggered),
 2638        ( D is C+1,
 2639          setarg(3, A, D)
 2640        ),
 2641        'known/1_1_$special_nonvar/1___1__0'(E, A),
 2642        (   B==triggered
 2643        ->  setarg(2, A, active)
 2644        ;   true
 2645        )
 2646    ;   true
 2647    ),
 2648    '$run_suspensions_known/1_1_$special_nonvar/1___1'(F).
 2649'$run_suspensions_known/1_1_$special_var/1___1'([]).
 2650'$run_suspensions_known/1_1_$special_var/1___1'([A|F]) :-
 2651    A=suspension(_, B, C, _, E),
 2652    (   B==active
 2653    ->  setarg(2, A, triggered),
 2654        ( D is C+1,
 2655          setarg(3, A, D)
 2656        ),
 2657        'known/1_1_$special_var/1___1__0'(E, A),
 2658        (   B==triggered
 2659        ->  setarg(2, A, active)
 2660        ;   true
 2661        )
 2662    ;   true
 2663    ),
 2664    '$run_suspensions_known/1_1_$special_var/1___1'(F).
 2665'$run_suspensions_known/1_1_$special_atom/1___1'([]).
 2666'$run_suspensions_known/1_1_$special_atom/1___1'([A|F]) :-
 2667    A=suspension(_, B, _, C, _, E),
 2668    (   B==active
 2669    ->  setarg(2, A, triggered),
 2670        ( D is C+1,
 2671          setarg(4, A, D)
 2672        ),
 2673        'known/1_1_$special_atom/1___1__0'(E, A),
 2674        (   B==triggered
 2675        ->  setarg(2, A, active)
 2676        ;   true
 2677        )
 2678    ;   true
 2679    ),
 2680    '$run_suspensions_known/1_1_$special_atom/1___1'(F).
 2681'$run_suspensions_known/1_1_$special_atomic/1___1'([]).
 2682'$run_suspensions_known/1_1_$special_atomic/1___1'([A|F]) :-
 2683    A=suspension(_, B, _, C, _, E),
 2684    (   B==active
 2685    ->  setarg(2, A, triggered),
 2686        ( D is C+1,
 2687          setarg(4, A, D)
 2688        ),
 2689        'known/1_1_$special_atomic/1___1__0'(E, A),
 2690        (   B==triggered
 2691        ->  setarg(2, A, active)
 2692        ;   true
 2693        )
 2694    ;   true
 2695    ),
 2696    '$run_suspensions_known/1_1_$special_atomic/1___1'(F).
 2697'$run_suspensions_known/1_1_$special_compound/1___1'([]).
 2698'$run_suspensions_known/1_1_$special_compound/1___1'([A|F]) :-
 2699    A=suspension(_, B, _, C, _, E),
 2700    (   B==active
 2701    ->  setarg(2, A, triggered),
 2702        ( D is C+1,
 2703          setarg(4, A, D)
 2704        ),
 2705        'known/1_1_$special_compound/1___1__0'(E, A),
 2706        (   B==triggered
 2707        ->  setarg(2, A, active)
 2708        ;   true
 2709        )
 2710    ;   true
 2711    ),
 2712    '$run_suspensions_known/1_1_$special_compound/1___1'(F).
 2713'$run_suspensions_known/1_1_$special_ground/1___1'([]).
 2714'$run_suspensions_known/1_1_$special_ground/1___1'([A|F]) :-
 2715    A=suspension(_, B, _, C, _, E),
 2716    (   B==active
 2717    ->  setarg(2, A, triggered),
 2718        ( D is C+1,
 2719          setarg(4, A, D)
 2720        ),
 2721        'known/1_1_$special_ground/1___1__0'(E, A),
 2722        (   B==triggered
 2723        ->  setarg(2, A, active)
 2724        ;   true
 2725        )
 2726    ;   true
 2727    ),
 2728    '$run_suspensions_known/1_1_$special_ground/1___1'(F).
 2729'$run_suspensions_known/1_1_$special_integer/1___1'([]).
 2730'$run_suspensions_known/1_1_$special_integer/1___1'([A|F]) :-
 2731    A=suspension(_, B, _, C, _, E),
 2732    (   B==active
 2733    ->  setarg(2, A, triggered),
 2734        ( D is C+1,
 2735          setarg(4, A, D)
 2736        ),
 2737        'known/1_1_$special_integer/1___1__0'(E, A),
 2738        (   B==triggered
 2739        ->  setarg(2, A, active)
 2740        ;   true
 2741        )
 2742    ;   true
 2743    ),
 2744    '$run_suspensions_known/1_1_$special_integer/1___1'(F).
 2745'$run_suspensions_known/1_1_$special_float/1___1'([]).
 2746'$run_suspensions_known/1_1_$special_float/1___1'([A|F]) :-
 2747    A=suspension(_, B, _, C, _, E),
 2748    (   B==active
 2749    ->  setarg(2, A, triggered),
 2750        ( D is C+1,
 2751          setarg(4, A, D)
 2752        ),
 2753        'known/1_1_$special_float/1___1__0'(E, A),
 2754        (   B==triggered
 2755        ->  setarg(2, A, active)
 2756        ;   true
 2757        )
 2758    ;   true
 2759    ),
 2760    '$run_suspensions_known/1_1_$special_float/1___1'(F).
 2761'$run_suspensions_known/1_1_$special_number/1___1'([]).
 2762'$run_suspensions_known/1_1_$special_number/1___1'([A|F]) :-
 2763    A=suspension(_, B, _, C, _, E),
 2764    (   B==active
 2765    ->  setarg(2, A, triggered),
 2766        ( D is C+1,
 2767          setarg(4, A, D)
 2768        ),
 2769        'known/1_1_$special_number/1___1__0'(E, A),
 2770        (   B==triggered
 2771        ->  setarg(2, A, active)
 2772        ;   true
 2773        )
 2774    ;   true
 2775    ),
 2776    '$run_suspensions_known/1_1_$special_number/1___1'(F).
 2777'$run_suspensions_known/1_1_$special_=\\=/2___2'([]).
 2778'$run_suspensions_known/1_1_$special_=\\=/2___2'([A|G]) :-
 2779    A=suspension(_, B, _, C, _, E, F),
 2780    (   B==active
 2781    ->  setarg(2, A, triggered),
 2782        ( D is C+1,
 2783          setarg(4, A, D)
 2784        ),
 2785        'known/1_1_$special_=\\=/2___2__0'(E, F, A),
 2786        (   B==triggered
 2787        ->  setarg(2, A, active)
 2788        ;   true
 2789        )
 2790    ;   true
 2791    ),
 2792    '$run_suspensions_known/1_1_$special_=\\=/2___2'(G).
 2793'$run_suspensions_known/1_1_$special_\\+/1___1'([]).
 2794'$run_suspensions_known/1_1_$special_\\+/1___1'([A|F]) :-
 2795    A=suspension(_, B, C, _, E),
 2796    (   B==active
 2797    ->  setarg(2, A, triggered),
 2798        ( D is C+1,
 2799          setarg(3, A, D)
 2800        ),
 2801        'known/1_1_$special_\\+/1___1__0'(E, A),
 2802        (   B==triggered
 2803        ->  setarg(2, A, active)
 2804        ;   true
 2805        )
 2806    ;   true
 2807    ),
 2808    '$run_suspensions_known/1_1_$special_\\+/1___1'(F).
 2809'$run_suspensions_known/1_1_$special_functor/3___3'([]).
 2810'$run_suspensions_known/1_1_$special_functor/3___3'([A|H]) :-
 2811    A=suspension(_, B, C, _, E, F, G),
 2812    (   B==active
 2813    ->  setarg(2, A, triggered),
 2814        ( D is C+1,
 2815          setarg(3, A, D)
 2816        ),
 2817        'known/1_1_$special_functor/3___3__0'(E, F, G, A),
 2818        (   B==triggered
 2819        ->  setarg(2, A, active)
 2820        ;   true
 2821        )
 2822    ;   true
 2823    ),
 2824    '$run_suspensions_known/1_1_$special_functor/3___3'(H).
 2825'$run_suspensions_known/1_1_$special_\\=/2___2'([]).
 2826'$run_suspensions_known/1_1_$special_\\=/2___2'([A|G]) :-
 2827    A=suspension(_, B, _, C, _, E, F),
 2828    (   B==active
 2829    ->  setarg(2, A, triggered),
 2830        ( D is C+1,
 2831          setarg(4, A, D)
 2832        ),
 2833        'known/1_1_$special_\\=/2___2__0'(E, F, A),
 2834        (   B==triggered
 2835        ->  setarg(2, A, active)
 2836        ;   true
 2837        )
 2838    ;   true
 2839    ),
 2840    '$run_suspensions_known/1_1_$special_\\=/2___2'(G).
 2841'$run_suspensions_known/1_1_$special_=/2___2'([]).
 2842'$run_suspensions_known/1_1_$special_=/2___2'([A|G]) :-
 2843    A=suspension(_, B, C, _, E, F),
 2844    (   B==active
 2845    ->  setarg(2, A, triggered),
 2846        ( D is C+1,
 2847          setarg(3, A, D)
 2848        ),
 2849        'known/1_1_$special_=/2___2__0'(E, F, A),
 2850        (   B==triggered
 2851        ->  setarg(2, A, active)
 2852        ;   true
 2853        )
 2854    ;   true
 2855    ),
 2856    '$run_suspensions_known/1_1_$special_=/2___2'(G).
 2857'$run_suspensions_known/1_1_$special_\\==/2___2'([]).
 2858'$run_suspensions_known/1_1_$special_\\==/2___2'([A|G]) :-
 2859    A=suspension(_, B, _, C, _, E, F),
 2860    (   B==active
 2861    ->  setarg(2, A, triggered),
 2862        ( D is C+1,
 2863          setarg(4, A, D)
 2864        ),
 2865        'known/1_1_$special_\\==/2___2__0'(E, F, A),
 2866        (   B==triggered
 2867        ->  setarg(2, A, active)
 2868        ;   true
 2869        )
 2870    ;   true
 2871    ),
 2872    '$run_suspensions_known/1_1_$special_\\==/2___2'(G).
 2873'$run_suspensions_known/1_1_$special_==/2___2'([]).
 2874'$run_suspensions_known/1_1_$special_==/2___2'([A|G]) :-
 2875    A=suspension(_, B, _, C, _, E, F),
 2876    (   B==active
 2877    ->  setarg(2, A, triggered),
 2878        ( D is C+1,
 2879          setarg(4, A, D)
 2880        ),
 2881        'known/1_1_$special_==/2___2__0'(E, F, A),
 2882        (   B==triggered
 2883        ->  setarg(2, A, active)
 2884        ;   true
 2885        )
 2886    ;   true
 2887    ),
 2888    '$run_suspensions_known/1_1_$special_==/2___2'(G).
 2889'$run_suspensions_known/1_1_$special_=</2___2'([]).
 2890'$run_suspensions_known/1_1_$special_=</2___2'([A|G]) :-
 2891    A=suspension(_, B, _, C, _, E, F),
 2892    (   B==active
 2893    ->  setarg(2, A, triggered),
 2894        ( D is C+1,
 2895          setarg(4, A, D)
 2896        ),
 2897        'known/1_1_$special_=</2___2__0'(E, F, A),
 2898        (   B==triggered
 2899        ->  setarg(2, A, active)
 2900        ;   true
 2901        )
 2902    ;   true
 2903    ),
 2904    '$run_suspensions_known/1_1_$special_=</2___2'(G).
 2905'$run_suspensions_known/1_1_$special_=:=/2___2'([]).
 2906'$run_suspensions_known/1_1_$special_=:=/2___2'([A|G]) :-
 2907    A=suspension(_, B, _, C, _, E, F),
 2908    (   B==active
 2909    ->  setarg(2, A, triggered),
 2910        ( D is C+1,
 2911          setarg(4, A, D)
 2912        ),
 2913        'known/1_1_$special_=:=/2___2__0'(E, F, A),
 2914        (   B==triggered
 2915        ->  setarg(2, A, active)
 2916        ;   true
 2917        )
 2918    ;   true
 2919    ),
 2920    '$run_suspensions_known/1_1_$special_=:=/2___2'(G).
 2921'$enumerate_constraints'(A) :-
 2922    (   nonvar(A)
 2923    ->  functor(A, B, _),
 2924        '$enumerate_constraints'(B, A)
 2925    ;   '$enumerate_constraints'(_, A)
 2926    ).
 2927'$enumerate_constraints'(variables, C) :-
 2928    nb_current('$chr_store_global_list_guard_entailment____variables___1',
 2929               A),
 2930    member(B, A),
 2931    B=suspension(_, _, _, D),
 2932    C=variables(D).
 2933'$enumerate_constraints'('known/1_1_$default', C) :-
 2934    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 2935               A),
 2936    member(B, A),
 2937    B=suspension(_, _, _, _, D),
 2938    C='known/1_1_$default'(D).
 2939'$enumerate_constraints'('known/1_1_$special_;/2', C) :-
 2940    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 2941               A),
 2942    member(B, A),
 2943    B=suspension(_, _, _, _, D, E),
 2944    C='known/1_1_$special_;/2'(D, E).
 2945'$enumerate_constraints'('known/1_1_$special_nonvar/1', C) :-
 2946    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 2947               A),
 2948    member(B, A),
 2949    B=suspension(_, _, _, _, D),
 2950    C='known/1_1_$special_nonvar/1'(D).
 2951'$enumerate_constraints'('known/1_1_$special_var/1', C) :-
 2952    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 2953               A),
 2954    member(B, A),
 2955    B=suspension(_, _, _, _, D),
 2956    C='known/1_1_$special_var/1'(D).
 2957'$enumerate_constraints'('known/1_1_$special_atom/1', C) :-
 2958    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 2959               A),
 2960    member(B, A),
 2961    B=suspension(_, _, _, _, _, D),
 2962    C='known/1_1_$special_atom/1'(D).
 2963'$enumerate_constraints'('known/1_1_$special_atomic/1', C) :-
 2964    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 2965               A),
 2966    member(B, A),
 2967    B=suspension(_, _, _, _, _, D),
 2968    C='known/1_1_$special_atomic/1'(D).
 2969'$enumerate_constraints'('known/1_1_$special_compound/1', C) :-
 2970    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 2971               A),
 2972    member(B, A),
 2973    B=suspension(_, _, _, _, _, D),
 2974    C='known/1_1_$special_compound/1'(D).
 2975'$enumerate_constraints'('known/1_1_$special_ground/1', C) :-
 2976    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 2977               A),
 2978    member(B, A),
 2979    B=suspension(_, _, _, _, _, D),
 2980    C='known/1_1_$special_ground/1'(D).
 2981'$enumerate_constraints'('known/1_1_$special_integer/1', C) :-
 2982    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 2983               A),
 2984    member(B, A),
 2985    B=suspension(_, _, _, _, _, D),
 2986    C='known/1_1_$special_integer/1'(D).
 2987'$enumerate_constraints'('known/1_1_$special_float/1', C) :-
 2988    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 2989               A),
 2990    member(B, A),
 2991    B=suspension(_, _, _, _, _, D),
 2992    C='known/1_1_$special_float/1'(D).
 2993'$enumerate_constraints'('known/1_1_$special_number/1', C) :-
 2994    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 2995               A),
 2996    member(B, A),
 2997    B=suspension(_, _, _, _, _, D),
 2998    C='known/1_1_$special_number/1'(D).
 2999'$enumerate_constraints'('known/1_1_$special_=\\=/2', C) :-
 3000    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 3001               A),
 3002    member(B, A),
 3003    B=suspension(_, _, _, _, _, D, E),
 3004    C='known/1_1_$special_=\\=/2'(D, E).
 3005'$enumerate_constraints'('known/1_1_$special_\\+/1', C) :-
 3006    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 3007               A),
 3008    member(B, A),
 3009    B=suspension(_, _, _, _, D),
 3010    C='known/1_1_$special_\\+/1'(D).
 3011'$enumerate_constraints'('known/1_1_$special_functor/3', C) :-
 3012    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 3013               A),
 3014    member(B, A),
 3015    B=suspension(_, _, _, _, D, E, F),
 3016    C='known/1_1_$special_functor/3'(D, E, F).
 3017'$enumerate_constraints'('known/1_1_$special_\\=/2', C) :-
 3018    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 3019               A),
 3020    member(B, A),
 3021    B=suspension(_, _, _, _, _, D, E),
 3022    C='known/1_1_$special_\\=/2'(D, E).
 3023'$enumerate_constraints'('known/1_1_$special_=/2', C) :-
 3024    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 3025               A),
 3026    member(B, A),
 3027    B=suspension(_, _, _, _, D, E),
 3028    C='known/1_1_$special_=/2'(D, E).
 3029'$enumerate_constraints'('known/1_1_$special_\\==/2', C) :-
 3030    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 3031               A),
 3032    member(B, A),
 3033    B=suspension(_, _, _, _, _, D, E),
 3034    C='known/1_1_$special_\\==/2'(D, E).
 3035'$enumerate_constraints'('known/1_1_$special_==/2', C) :-
 3036    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 3037               A),
 3038    member(B, A),
 3039    B=suspension(_, _, _, _, _, D, E),
 3040    C='known/1_1_$special_==/2'(D, E).
 3041'$enumerate_constraints'('known/1_1_$special_=</2', C) :-
 3042    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 3043               A),
 3044    member(B, A),
 3045    B=suspension(_, _, _, _, _, D, E),
 3046    C='known/1_1_$special_=</2'(D, E).
 3047'$enumerate_constraints'('known/1_1_$special_=:=/2', C) :-
 3048    nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 3049               A),
 3050    member(B, A),
 3051    B=suspension(_, _, _, _, _, D, E),
 3052    C='known/1_1_$special_=:=/2'(D, E).
 3053'$enumerate_constraints'('known/1_1_$special_fail/0', C) :-
 3054    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 3055              A),
 3056    member(B, A),
 3057    B=suspension(_, _, _),
 3058    C='known/1_1_$special_fail/0'.
 3059'$chr_initialization' :-
 3060    nb_setval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 3061              []),
 3062    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 3063              []),
 3064    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 3065              []),
 3066    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 3067              []),
 3068    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 3069              []),
 3070    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 3071              []),
 3072    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 3073              []),
 3074    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 3075              []),
 3076    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 3077              []),
 3078    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 3079              []),
 3080    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 3081              []),
 3082    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 3083              []),
 3084    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 3085              []),
 3086    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 3087              []),
 3088    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 3089              []),
 3090    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 3091              []),
 3092    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 3093              []),
 3094    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 3095              []),
 3096    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 3097              []),
 3098    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 3099              []),
 3100    nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 3101              []),
 3102    nb_setval('$chr_store_global_list_guard_entailment____variables___1', []).
 3103:- (initialization'$chr_initialization'). 3104:- (dynamic user:exception/3). 3105:- (multifile user:exception/3). 3106user:exception(undefined_global_variable, A, retry) :-
 3107    '$chr_prolog_global_variable'(A),
 3108    '$chr_initialization'.
 3109'$chr_prolog_global_variable'('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0').
 3110'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2').
 3111'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2').
 3112'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2').
 3113'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2').
 3114'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2').
 3115'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2').
 3116'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3').
 3117'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1').
 3118'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2').
 3119'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1').
 3120'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1').
 3121'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1').
 3122'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1').
 3123'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1').
 3124'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1').
 3125'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1').
 3126'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1').
 3127'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1').
 3128'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2').
 3129'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$default___1').
 3130'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____variables___1').
 3131known(A) :-
 3132    nonvar(A),
 3133    (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   A=(B;C),
 3134                                                                                                !,
 3135                                                                                                'known/1_1_$special_;/2'(B,
 3136                                                                                                                         C)
 3137                                                                                            ;   A=nonvar(D),
 3138                                                                                                !,
 3139                                                                                                'known/1_1_$special_nonvar/1'(D)
 3140                                                                                            )
 3141                                                                                        ;   A=var(E),
 3142                                                                                            !,
 3143                                                                                            'known/1_1_$special_var/1'(E)
 3144                                                                                        )
 3145                                                                                    ;   A=atom(F),
 3146                                                                                        !,
 3147                                                                                        'known/1_1_$special_atom/1'(F)
 3148                                                                                    )
 3149                                                                                ;   A=atomic(G),
 3150                                                                                    !,
 3151                                                                                    'known/1_1_$special_atomic/1'(G)
 3152                                                                                )
 3153                                                                            ;   A=compound(H),
 3154                                                                                !,
 3155                                                                                'known/1_1_$special_compound/1'(H)
 3156                                                                            )
 3157                                                                        ;   A=ground(I),
 3158                                                                            !,
 3159                                                                            'known/1_1_$special_ground/1'(I)
 3160                                                                        )
 3161                                                                    ;   A=integer(J),
 3162                                                                        !,
 3163                                                                        'known/1_1_$special_integer/1'(J)
 3164                                                                    )
 3165                                                                ;   A=float(K),
 3166                                                                    !,
 3167                                                                    'known/1_1_$special_float/1'(K)
 3168                                                                )
 3169                                                            ;   A=number(L),
 3170                                                                !,
 3171                                                                'known/1_1_$special_number/1'(L)
 3172                                                            )
 3173                                                        ;   A=(M=\=N),
 3174                                                            !,
 3175                                                            'known/1_1_$special_=\\=/2'(M,
 3176                                                                                        N)
 3177                                                        )
 3178                                                    ;   A=(\+O),
 3179                                                        !,
 3180                                                        'known/1_1_$special_\\+/1'(O)
 3181                                                    )
 3182                                                ;   A=functor(P, Q, R),
 3183                                                    !,
 3184                                                    'known/1_1_$special_functor/3'(P,
 3185                                                                                   Q,
 3186                                                                                   R)
 3187                                                )
 3188                                            ;   A=(S\=T),
 3189                                                !,
 3190                                                'known/1_1_$special_\\=/2'(S,
 3191                                                                           T)
 3192                                            )
 3193                                        ;   A=(U=V),
 3194                                            !,
 3195                                            'known/1_1_$special_=/2'(U,
 3196                                                                     V)
 3197                                        )
 3198                                    ;   A=(W, X),
 3199                                        !,
 3200                                        'known/1_1_$special_,/2'(W,
 3201                                                                 X)
 3202                                    )
 3203                                ;   A=(Y\==Z),
 3204                                    !,
 3205                                    'known/1_1_$special_\\==/2'(Y,
 3206                                                                Z)
 3207                                )
 3208                            ;   A=(A1==B1),
 3209                                !,
 3210                                'known/1_1_$special_==/2'(A1, B1)
 3211                            )
 3212                        ;   A=(C1 is D1),
 3213                            !,
 3214                            'known/1_1_$special_is/2'(C1, D1)
 3215                        )
 3216                    ;   A=(E1<F1),
 3217                        !,
 3218                        'known/1_1_$special_</2'(E1, F1)
 3219                    )
 3220                ;   A=(G1>=H1),
 3221                    !,
 3222                    'known/1_1_$special_>=/2'(G1, H1)
 3223                )
 3224            ;   A=(I1>J1),
 3225                !,
 3226                'known/1_1_$special_>/2'(I1, J1)
 3227            )
 3228        ;   A=(K1=<L1),
 3229            !,
 3230            'known/1_1_$special_=</2'(K1, L1)
 3231        )
 3232    ;   A=(M1=:=N1),
 3233        !,
 3234        'known/1_1_$special_=:=/2'(M1, N1)
 3235    ).
 3236known(A) :-
 3237    A==fail,
 3238    !,
 3239    'known/1_1_$special_fail/0'.
 3240known(A) :-
 3241    'known/1_1_$default'(A).
 3242test(A) :-
 3243    nonvar(A),
 3244    (   (   (   (   (   (   (   A=(B, C),
 3245                                !,
 3246                                'test/1_1_$special_,/2'(B, C)
 3247                            ;   A=(\+D),
 3248                                !,
 3249                                'test/1_1_$special_\\+/1'(D)
 3250                            )
 3251                        ;   A=integer(E),
 3252                            !,
 3253                            'test/1_1_$special_integer/1'(E)
 3254                        )
 3255                    ;   A=float(F),
 3256                        !,
 3257                        'test/1_1_$special_float/1'(F)
 3258                    )
 3259                ;   A=number(G),
 3260                    !,
 3261                    'test/1_1_$special_number/1'(G)
 3262                )
 3263            ;   A=ground(H),
 3264                !,
 3265                'test/1_1_$special_ground/1'(H)
 3266            )
 3267        ;   A=(I=:=J),
 3268            !,
 3269            'test/1_1_$special_=:=/2'(I, J)
 3270        )
 3271    ;   A=(K==L),
 3272        !,
 3273        'test/1_1_$special_==/2'(K, L)
 3274    ).
 3275test(A) :-
 3276    A==true,
 3277    !,
 3278    'test/1_1_$special_true/0'.
 3279test(A) :-
 3280    nonvar(A),
 3281    (   (   (   (   (   (   (   (   (   A=functor(B, C, D),
 3282                                        !,
 3283                                        'test/1_1_$special_functor/3'(B,
 3284                                                                      C,
 3285                                                                      D)
 3286                                    ;   A=(E=F),
 3287                                        !,
 3288                                        'test/1_1_$special_=/2'(E, F)
 3289                                    )
 3290                                ;   A=(G;H),
 3291                                    !,
 3292                                    'test/1_1_$special_;/2'(G, H)
 3293                                )
 3294                            ;   A=(I is J),
 3295                                !,
 3296                                'test/1_1_$special_is/2'(I, J)
 3297                            )
 3298                        ;   A=(K<L),
 3299                            !,
 3300                            'test/1_1_$special_</2'(K, L)
 3301                        )
 3302                    ;   A=(M>=N),
 3303                        !,
 3304                        'test/1_1_$special_>=/2'(M, N)
 3305                    )
 3306                ;   A=(O>P),
 3307                    !,
 3308                    'test/1_1_$special_>/2'(O, P)
 3309                )
 3310            ;   A=(Q=\=R),
 3311                !,
 3312                'test/1_1_$special_=\\=/2'(Q, R)
 3313            )
 3314        ;   A=(S=<T),
 3315            !,
 3316            'test/1_1_$special_=</2'(S, T)
 3317        )
 3318    ;   A=(U\==V),
 3319        !,
 3320        'test/1_1_$special_\\==/2'(U, V)
 3321    ).
 3322test(A) :-
 3323    'test/1_1_$default'(A).
 3324cleanup :-
 3325    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 3326              A),
 3327    !,
 3328    cleanup___0__0__0__1(A).
 3329cleanup___0__0__0__1([]) :-
 3330    cleanup___0__1.
 3331cleanup___0__0__0__1([A|I]) :-
 3332    (   A=suspension(_, active, _, _, _, _)
 3333    ->  ( A=suspension(_, _, _, _, B, C),
 3334          setarg(2, A, removed),
 3335          term_variables(term(B, C), H),
 3336          ( arg(4, A, D),
 3337            (   var(D)
 3338            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 3339                          E),
 3340                E=[_|F],
 3341                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 3342                         F),
 3343                (   F=[G|_]
 3344                ->  setarg(4, G, _)
 3345                ;   true
 3346                )
 3347            ;   D=[_, _|F],
 3348                setarg(2, D, F),
 3349                (   F=[G|_]
 3350                ->  setarg(4, G, D)
 3351                ;   true
 3352                )
 3353            )
 3354          ),
 3355          'detach_known/1_1_$special_;/2___2'(H, A)
 3356        ),
 3357        cleanup___0__0__0__1(I)
 3358    ;   cleanup___0__0__0__1(I)
 3359    ).
 3360cleanup :-
 3361    cleanup___0__1.
 3362cleanup___0__1 :-
 3363    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 3364              A),
 3365    !,
 3366    cleanup___0__1__0__2(A).
 3367cleanup___0__1__0__2([]) :-
 3368    cleanup___0__2.
 3369cleanup___0__1__0__2([A|H]) :-
 3370    (   A=suspension(_, active, _, _, _)
 3371    ->  ( A=suspension(_, _, _, _, B),
 3372          setarg(2, A, removed),
 3373          term_variables(B, G),
 3374          ( arg(4, A, C),
 3375            (   var(C)
 3376            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 3377                          D),
 3378                D=[_|E],
 3379                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 3380                         E),
 3381                (   E=[F|_]
 3382                ->  setarg(4, F, _)
 3383                ;   true
 3384                )
 3385            ;   C=[_, _|E],
 3386                setarg(2, C, E),
 3387                (   E=[F|_]
 3388                ->  setarg(4, F, C)
 3389                ;   true
 3390                )
 3391            )
 3392          ),
 3393          'detach_known/1_1_$special_nonvar/1___1'(G, A)
 3394        ),
 3395        cleanup___0__1__0__2(H)
 3396    ;   cleanup___0__1__0__2(H)
 3397    ).
 3398cleanup___0__1 :-
 3399    cleanup___0__2.
 3400cleanup___0__2 :-
 3401    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 3402              A),
 3403    !,
 3404    cleanup___0__2__0__3(A).
 3405cleanup___0__2__0__3([]) :-
 3406    cleanup___0__3.
 3407cleanup___0__2__0__3([A|H]) :-
 3408    (   A=suspension(_, active, _, _, _)
 3409    ->  ( A=suspension(_, _, _, _, B),
 3410          setarg(2, A, removed),
 3411          term_variables(B, G),
 3412          ( arg(4, A, C),
 3413            (   var(C)
 3414            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 3415                          D),
 3416                D=[_|E],
 3417                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 3418                         E),
 3419                (   E=[F|_]
 3420                ->  setarg(4, F, _)
 3421                ;   true
 3422                )
 3423            ;   C=[_, _|E],
 3424                setarg(2, C, E),
 3425                (   E=[F|_]
 3426                ->  setarg(4, F, C)
 3427                ;   true
 3428                )
 3429            )
 3430          ),
 3431          'detach_known/1_1_$special_var/1___1'(G, A)
 3432        ),
 3433        cleanup___0__2__0__3(H)
 3434    ;   cleanup___0__2__0__3(H)
 3435    ).
 3436cleanup___0__2 :-
 3437    cleanup___0__3.
 3438cleanup___0__3 :-
 3439    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 3440              A),
 3441    !,
 3442    cleanup___0__3__0__4(A).
 3443cleanup___0__3__0__4([]) :-
 3444    cleanup___0__4.
 3445cleanup___0__3__0__4([A|H]) :-
 3446    (   A=suspension(_, active, _, _, _, _)
 3447    ->  ( A=suspension(_, _, _, _, _, B),
 3448          setarg(2, A, removed),
 3449          term_variables(B, G),
 3450          ( arg(5, A, C),
 3451            (   var(C)
 3452            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 3453                          D),
 3454                D=[_|E],
 3455                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 3456                         E),
 3457                (   E=[F|_]
 3458                ->  setarg(5, F, _)
 3459                ;   true
 3460                )
 3461            ;   C=[_, _|E],
 3462                setarg(2, C, E),
 3463                (   E=[F|_]
 3464                ->  setarg(5, F, C)
 3465                ;   true
 3466                )
 3467            )
 3468          ),
 3469          'detach_known/1_1_$special_atom/1___1'(G, A)
 3470        ),
 3471        cleanup___0__3__0__4(H)
 3472    ;   cleanup___0__3__0__4(H)
 3473    ).
 3474cleanup___0__3 :-
 3475    cleanup___0__4.
 3476cleanup___0__4 :-
 3477    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 3478              A),
 3479    !,
 3480    cleanup___0__4__0__5(A).
 3481cleanup___0__4__0__5([]) :-
 3482    cleanup___0__5.
 3483cleanup___0__4__0__5([A|H]) :-
 3484    (   A=suspension(_, active, _, _, _, _)
 3485    ->  ( A=suspension(_, _, _, _, _, B),
 3486          setarg(2, A, removed),
 3487          term_variables(B, G),
 3488          ( arg(5, A, C),
 3489            (   var(C)
 3490            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 3491                          D),
 3492                D=[_|E],
 3493                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 3494                         E),
 3495                (   E=[F|_]
 3496                ->  setarg(5, F, _)
 3497                ;   true
 3498                )
 3499            ;   C=[_, _|E],
 3500                setarg(2, C, E),
 3501                (   E=[F|_]
 3502                ->  setarg(5, F, C)
 3503                ;   true
 3504                )
 3505            )
 3506          ),
 3507          'detach_known/1_1_$special_atomic/1___1'(G, A)
 3508        ),
 3509        cleanup___0__4__0__5(H)
 3510    ;   cleanup___0__4__0__5(H)
 3511    ).
 3512cleanup___0__4 :-
 3513    cleanup___0__5.
 3514cleanup___0__5 :-
 3515    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 3516              A),
 3517    !,
 3518    cleanup___0__5__0__6(A).
 3519cleanup___0__5__0__6([]) :-
 3520    cleanup___0__6.
 3521cleanup___0__5__0__6([A|H]) :-
 3522    (   A=suspension(_, active, _, _, _, _)
 3523    ->  ( A=suspension(_, _, _, _, _, B),
 3524          setarg(2, A, removed),
 3525          term_variables(B, G),
 3526          ( arg(5, A, C),
 3527            (   var(C)
 3528            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 3529                          D),
 3530                D=[_|E],
 3531                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 3532                         E),
 3533                (   E=[F|_]
 3534                ->  setarg(5, F, _)
 3535                ;   true
 3536                )
 3537            ;   C=[_, _|E],
 3538                setarg(2, C, E),
 3539                (   E=[F|_]
 3540                ->  setarg(5, F, C)
 3541                ;   true
 3542                )
 3543            )
 3544          ),
 3545          'detach_known/1_1_$special_compound/1___1'(G, A)
 3546        ),
 3547        cleanup___0__5__0__6(H)
 3548    ;   cleanup___0__5__0__6(H)
 3549    ).
 3550cleanup___0__5 :-
 3551    cleanup___0__6.
 3552cleanup___0__6 :-
 3553    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 3554              A),
 3555    !,
 3556    cleanup___0__6__0__7(A).
 3557cleanup___0__6__0__7([]) :-
 3558    cleanup___0__7.
 3559cleanup___0__6__0__7([A|H]) :-
 3560    (   A=suspension(_, active, _, _, _, _)
 3561    ->  ( A=suspension(_, _, _, _, _, B),
 3562          setarg(2, A, removed),
 3563          term_variables(B, G),
 3564          ( arg(5, A, C),
 3565            (   var(C)
 3566            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 3567                          D),
 3568                D=[_|E],
 3569                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 3570                         E),
 3571                (   E=[F|_]
 3572                ->  setarg(5, F, _)
 3573                ;   true
 3574                )
 3575            ;   C=[_, _|E],
 3576                setarg(2, C, E),
 3577                (   E=[F|_]
 3578                ->  setarg(5, F, C)
 3579                ;   true
 3580                )
 3581            )
 3582          ),
 3583          'detach_known/1_1_$special_ground/1___1'(G, A)
 3584        ),
 3585        cleanup___0__6__0__7(H)
 3586    ;   cleanup___0__6__0__7(H)
 3587    ).
 3588cleanup___0__6 :-
 3589    cleanup___0__7.
 3590cleanup___0__7 :-
 3591    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 3592              A),
 3593    !,
 3594    cleanup___0__7__0__8(A).
 3595cleanup___0__7__0__8([]) :-
 3596    cleanup___0__8.
 3597cleanup___0__7__0__8([A|H]) :-
 3598    (   A=suspension(_, active, _, _, _, _)
 3599    ->  ( A=suspension(_, _, _, _, _, B),
 3600          setarg(2, A, removed),
 3601          term_variables(B, G),
 3602          ( arg(5, A, C),
 3603            (   var(C)
 3604            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 3605                          D),
 3606                D=[_|E],
 3607                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 3608                         E),
 3609                (   E=[F|_]
 3610                ->  setarg(5, F, _)
 3611                ;   true
 3612                )
 3613            ;   C=[_, _|E],
 3614                setarg(2, C, E),
 3615                (   E=[F|_]
 3616                ->  setarg(5, F, C)
 3617                ;   true
 3618                )
 3619            )
 3620          ),
 3621          'detach_known/1_1_$special_integer/1___1'(G, A)
 3622        ),
 3623        cleanup___0__7__0__8(H)
 3624    ;   cleanup___0__7__0__8(H)
 3625    ).
 3626cleanup___0__7 :-
 3627    cleanup___0__8.
 3628cleanup___0__8 :-
 3629    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 3630              A),
 3631    !,
 3632    cleanup___0__8__0__9(A).
 3633cleanup___0__8__0__9([]) :-
 3634    cleanup___0__9.
 3635cleanup___0__8__0__9([A|H]) :-
 3636    (   A=suspension(_, active, _, _, _, _)
 3637    ->  ( A=suspension(_, _, _, _, _, B),
 3638          setarg(2, A, removed),
 3639          term_variables(B, G),
 3640          ( arg(5, A, C),
 3641            (   var(C)
 3642            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 3643                          D),
 3644                D=[_|E],
 3645                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 3646                         E),
 3647                (   E=[F|_]
 3648                ->  setarg(5, F, _)
 3649                ;   true
 3650                )
 3651            ;   C=[_, _|E],
 3652                setarg(2, C, E),
 3653                (   E=[F|_]
 3654                ->  setarg(5, F, C)
 3655                ;   true
 3656                )
 3657            )
 3658          ),
 3659          'detach_known/1_1_$special_float/1___1'(G, A)
 3660        ),
 3661        cleanup___0__8__0__9(H)
 3662    ;   cleanup___0__8__0__9(H)
 3663    ).
 3664cleanup___0__8 :-
 3665    cleanup___0__9.
 3666cleanup___0__9 :-
 3667    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 3668              A),
 3669    !,
 3670    cleanup___0__9__0__10(A).
 3671cleanup___0__9__0__10([]) :-
 3672    cleanup___0__10.
 3673cleanup___0__9__0__10([A|H]) :-
 3674    (   A=suspension(_, active, _, _, _, _)
 3675    ->  ( A=suspension(_, _, _, _, _, B),
 3676          setarg(2, A, removed),
 3677          term_variables(B, G),
 3678          ( arg(5, A, C),
 3679            (   var(C)
 3680            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 3681                          D),
 3682                D=[_|E],
 3683                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 3684                         E),
 3685                (   E=[F|_]
 3686                ->  setarg(5, F, _)
 3687                ;   true
 3688                )
 3689            ;   C=[_, _|E],
 3690                setarg(2, C, E),
 3691                (   E=[F|_]
 3692                ->  setarg(5, F, C)
 3693                ;   true
 3694                )
 3695            )
 3696          ),
 3697          'detach_known/1_1_$special_number/1___1'(G, A)
 3698        ),
 3699        cleanup___0__9__0__10(H)
 3700    ;   cleanup___0__9__0__10(H)
 3701    ).
 3702cleanup___0__9 :-
 3703    cleanup___0__10.
 3704cleanup___0__10 :-
 3705    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 3706              A),
 3707    !,
 3708    cleanup___0__10__0__11(A).
 3709cleanup___0__10__0__11([]) :-
 3710    cleanup___0__11.
 3711cleanup___0__10__0__11([A|I]) :-
 3712    (   A=suspension(_, active, _, _, _, _, _)
 3713    ->  ( A=suspension(_, _, _, _, _, B, C),
 3714          setarg(2, A, removed),
 3715          term_variables(term(B, C), H),
 3716          ( arg(5, A, D),
 3717            (   var(D)
 3718            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 3719                          E),
 3720                E=[_|F],
 3721                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 3722                         F),
 3723                (   F=[G|_]
 3724                ->  setarg(5, G, _)
 3725                ;   true
 3726                )
 3727            ;   D=[_, _|F],
 3728                setarg(2, D, F),
 3729                (   F=[G|_]
 3730                ->  setarg(5, G, D)
 3731                ;   true
 3732                )
 3733            )
 3734          ),
 3735          'detach_known/1_1_$special_=\\=/2___2'(H, A)
 3736        ),
 3737        cleanup___0__10__0__11(I)
 3738    ;   cleanup___0__10__0__11(I)
 3739    ).
 3740cleanup___0__10 :-
 3741    cleanup___0__11.
 3742cleanup___0__11 :-
 3743    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 3744              A),
 3745    !,
 3746    cleanup___0__11__0__12(A).
 3747cleanup___0__11__0__12([]) :-
 3748    cleanup___0__12.
 3749cleanup___0__11__0__12([A|H]) :-
 3750    (   A=suspension(_, active, _, _, _)
 3751    ->  ( A=suspension(_, _, _, _, B),
 3752          setarg(2, A, removed),
 3753          term_variables(B, G),
 3754          ( arg(4, A, C),
 3755            (   var(C)
 3756            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 3757                          D),
 3758                D=[_|E],
 3759                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 3760                         E),
 3761                (   E=[F|_]
 3762                ->  setarg(4, F, _)
 3763                ;   true
 3764                )
 3765            ;   C=[_, _|E],
 3766                setarg(2, C, E),
 3767                (   E=[F|_]
 3768                ->  setarg(4, F, C)
 3769                ;   true
 3770                )
 3771            )
 3772          ),
 3773          'detach_known/1_1_$special_\\+/1___1'(G, A)
 3774        ),
 3775        cleanup___0__11__0__12(H)
 3776    ;   cleanup___0__11__0__12(H)
 3777    ).
 3778cleanup___0__11 :-
 3779    cleanup___0__12.
 3780cleanup___0__12 :-
 3781    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 3782              A),
 3783    !,
 3784    cleanup___0__12__0__13(A).
 3785cleanup___0__12__0__13([]) :-
 3786    cleanup___0__13.
 3787cleanup___0__12__0__13([A|J]) :-
 3788    (   A=suspension(_, active, _, _, _, _, _)
 3789    ->  ( A=suspension(_, _, _, _, B, C, D),
 3790          setarg(2, A, removed),
 3791          term_variables(term(B, C, D), I),
 3792          ( arg(4, A, E),
 3793            (   var(E)
 3794            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 3795                          F),
 3796                F=[_|G],
 3797                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 3798                         G),
 3799                (   G=[H|_]
 3800                ->  setarg(4, H, _)
 3801                ;   true
 3802                )
 3803            ;   E=[_, _|G],
 3804                setarg(2, E, G),
 3805                (   G=[H|_]
 3806                ->  setarg(4, H, E)
 3807                ;   true
 3808                )
 3809            )
 3810          ),
 3811          'detach_known/1_1_$special_functor/3___3'(I, A)
 3812        ),
 3813        cleanup___0__12__0__13(J)
 3814    ;   cleanup___0__12__0__13(J)
 3815    ).
 3816cleanup___0__12 :-
 3817    cleanup___0__13.
 3818cleanup___0__13 :-
 3819    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 3820              A),
 3821    !,
 3822    cleanup___0__13__0__14(A).
 3823cleanup___0__13__0__14([]) :-
 3824    cleanup___0__14.
 3825cleanup___0__13__0__14([A|I]) :-
 3826    (   A=suspension(_, active, _, _, _, _, _)
 3827    ->  ( A=suspension(_, _, _, _, _, B, C),
 3828          setarg(2, A, removed),
 3829          term_variables(term(B, C), H),
 3830          ( arg(5, A, D),
 3831            (   var(D)
 3832            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 3833                          E),
 3834                E=[_|F],
 3835                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 3836                         F),
 3837                (   F=[G|_]
 3838                ->  setarg(5, G, _)
 3839                ;   true
 3840                )
 3841            ;   D=[_, _|F],
 3842                setarg(2, D, F),
 3843                (   F=[G|_]
 3844                ->  setarg(5, G, D)
 3845                ;   true
 3846                )
 3847            )
 3848          ),
 3849          'detach_known/1_1_$special_\\=/2___2'(H, A)
 3850        ),
 3851        cleanup___0__13__0__14(I)
 3852    ;   cleanup___0__13__0__14(I)
 3853    ).
 3854cleanup___0__13 :-
 3855    cleanup___0__14.
 3856cleanup___0__14 :-
 3857    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 3858              A),
 3859    !,
 3860    cleanup___0__14__0__15(A).
 3861cleanup___0__14__0__15([]) :-
 3862    cleanup___0__15.
 3863cleanup___0__14__0__15([A|I]) :-
 3864    (   A=suspension(_, active, _, _, _, _)
 3865    ->  ( A=suspension(_, _, _, _, B, C),
 3866          setarg(2, A, removed),
 3867          term_variables(term(B, C), H),
 3868          ( arg(4, A, D),
 3869            (   var(D)
 3870            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 3871                          E),
 3872                E=[_|F],
 3873                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 3874                         F),
 3875                (   F=[G|_]
 3876                ->  setarg(4, G, _)
 3877                ;   true
 3878                )
 3879            ;   D=[_, _|F],
 3880                setarg(2, D, F),
 3881                (   F=[G|_]
 3882                ->  setarg(4, G, D)
 3883                ;   true
 3884                )
 3885            )
 3886          ),
 3887          'detach_known/1_1_$special_=/2___2'(H, A)
 3888        ),
 3889        cleanup___0__14__0__15(I)
 3890    ;   cleanup___0__14__0__15(I)
 3891    ).
 3892cleanup___0__14 :-
 3893    cleanup___0__15.
 3894cleanup___0__15 :-
 3895    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 3896              A),
 3897    !,
 3898    cleanup___0__15__0__17(A).
 3899cleanup___0__15__0__17([]) :-
 3900    cleanup___0__16.
 3901cleanup___0__15__0__17([A|I]) :-
 3902    (   A=suspension(_, active, _, _, _, _, _)
 3903    ->  ( A=suspension(_, _, _, _, _, B, C),
 3904          setarg(2, A, removed),
 3905          term_variables(term(B, C), H),
 3906          ( arg(5, A, D),
 3907            (   var(D)
 3908            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 3909                          E),
 3910                E=[_|F],
 3911                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 3912                         F),
 3913                (   F=[G|_]
 3914                ->  setarg(5, G, _)
 3915                ;   true
 3916                )
 3917            ;   D=[_, _|F],
 3918                setarg(2, D, F),
 3919                (   F=[G|_]
 3920                ->  setarg(5, G, D)
 3921                ;   true
 3922                )
 3923            )
 3924          ),
 3925          'detach_known/1_1_$special_\\==/2___2'(H, A)
 3926        ),
 3927        cleanup___0__15__0__17(I)
 3928    ;   cleanup___0__15__0__17(I)
 3929    ).
 3930cleanup___0__15 :-
 3931    cleanup___0__16.
 3932cleanup___0__16 :-
 3933    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 3934              A),
 3935    !,
 3936    cleanup___0__16__0__18(A).
 3937cleanup___0__16__0__18([]) :-
 3938    cleanup___0__17.
 3939cleanup___0__16__0__18([A|I]) :-
 3940    (   A=suspension(_, active, _, _, _, _, _)
 3941    ->  ( A=suspension(_, _, _, _, _, B, C),
 3942          setarg(2, A, removed),
 3943          term_variables(term(B, C), H),
 3944          ( arg(5, A, D),
 3945            (   var(D)
 3946            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 3947                          E),
 3948                E=[_|F],
 3949                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 3950                         F),
 3951                (   F=[G|_]
 3952                ->  setarg(5, G, _)
 3953                ;   true
 3954                )
 3955            ;   D=[_, _|F],
 3956                setarg(2, D, F),
 3957                (   F=[G|_]
 3958                ->  setarg(5, G, D)
 3959                ;   true
 3960                )
 3961            )
 3962          ),
 3963          'detach_known/1_1_$special_==/2___2'(H, A)
 3964        ),
 3965        cleanup___0__16__0__18(I)
 3966    ;   cleanup___0__16__0__18(I)
 3967    ).
 3968cleanup___0__16 :-
 3969    cleanup___0__17.
 3970cleanup___0__17 :-
 3971    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 3972              A),
 3973    !,
 3974    cleanup___0__17__0__23(A).
 3975cleanup___0__17__0__23([]) :-
 3976    cleanup___0__18.
 3977cleanup___0__17__0__23([A|I]) :-
 3978    (   A=suspension(_, active, _, _, _, _, _)
 3979    ->  ( A=suspension(_, _, _, _, _, B, C),
 3980          setarg(2, A, removed),
 3981          term_variables(term(B, C), H),
 3982          ( arg(5, A, D),
 3983            (   var(D)
 3984            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 3985                          E),
 3986                E=[_|F],
 3987                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 3988                         F),
 3989                (   F=[G|_]
 3990                ->  setarg(5, G, _)
 3991                ;   true
 3992                )
 3993            ;   D=[_, _|F],
 3994                setarg(2, D, F),
 3995                (   F=[G|_]
 3996                ->  setarg(5, G, D)
 3997                ;   true
 3998                )
 3999            )
 4000          ),
 4001          'detach_known/1_1_$special_=</2___2'(H, A)
 4002        ),
 4003        cleanup___0__17__0__23(I)
 4004    ;   cleanup___0__17__0__23(I)
 4005    ).
 4006cleanup___0__17 :-
 4007    cleanup___0__18.
 4008cleanup___0__18 :-
 4009    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 4010              A),
 4011    !,
 4012    cleanup___0__18__0__24(A).
 4013cleanup___0__18__0__24([]) :-
 4014    cleanup___0__19.
 4015cleanup___0__18__0__24([A|I]) :-
 4016    (   A=suspension(_, active, _, _, _, _, _)
 4017    ->  ( A=suspension(_, _, _, _, _, B, C),
 4018          setarg(2, A, removed),
 4019          term_variables(term(B, C), H),
 4020          ( arg(5, A, D),
 4021            (   var(D)
 4022            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 4023                          E),
 4024                E=[_|F],
 4025                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 4026                         F),
 4027                (   F=[G|_]
 4028                ->  setarg(5, G, _)
 4029                ;   true
 4030                )
 4031            ;   D=[_, _|F],
 4032                setarg(2, D, F),
 4033                (   F=[G|_]
 4034                ->  setarg(5, G, D)
 4035                ;   true
 4036                )
 4037            )
 4038          ),
 4039          'detach_known/1_1_$special_=:=/2___2'(H, A)
 4040        ),
 4041        cleanup___0__18__0__24(I)
 4042    ;   cleanup___0__18__0__24(I)
 4043    ).
 4044cleanup___0__18 :-
 4045    cleanup___0__19.
 4046cleanup___0__19 :-
 4047    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4048              A),
 4049    !,
 4050    cleanup___0__19__0__25(A).
 4051cleanup___0__19__0__25([]) :-
 4052    cleanup___0__20.
 4053cleanup___0__19__0__25([A|F]) :-
 4054    (   A=suspension(_, active, _)
 4055    ->  ( setarg(2, A, removed),
 4056          arg(3, A, B),
 4057          (   var(B)
 4058          ->  nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4059                        C),
 4060              C=[_|D],
 4061              b_setval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4062                       D),
 4063              (   D=[E|_]
 4064              ->  setarg(3, E, _)
 4065              ;   true
 4066              )
 4067          ;   B=[_, _|D],
 4068              setarg(2, B, D),
 4069              (   D=[E|_]
 4070              ->  setarg(3, E, B)
 4071              ;   true
 4072              )
 4073          )
 4074        ),
 4075        cleanup___0__19__0__25(F)
 4076    ;   cleanup___0__19__0__25(F)
 4077    ).
 4078cleanup___0__19 :-
 4079    cleanup___0__20.
 4080cleanup___0__20 :-
 4081    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 4082              A),
 4083    !,
 4084    cleanup___0__20__0__26(A).
 4085cleanup___0__20__0__26([]) :-
 4086    cleanup___0__21.
 4087cleanup___0__20__0__26([A|H]) :-
 4088    (   A=suspension(_, active, _, _, _)
 4089    ->  ( A=suspension(_, _, _, _, B),
 4090          setarg(2, A, removed),
 4091          term_variables(B, G),
 4092          ( arg(4, A, C),
 4093            (   var(C)
 4094            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 4095                          D),
 4096                D=[_|E],
 4097                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 4098                         E),
 4099                (   E=[F|_]
 4100                ->  setarg(4, F, _)
 4101                ;   true
 4102                )
 4103            ;   C=[_, _|E],
 4104                setarg(2, C, E),
 4105                (   E=[F|_]
 4106                ->  setarg(4, F, C)
 4107                ;   true
 4108                )
 4109            )
 4110          ),
 4111          'detach_known/1_1_$default___1'(G, A)
 4112        ),
 4113        cleanup___0__20__0__26(H)
 4114    ;   cleanup___0__20__0__26(H)
 4115    ).
 4116cleanup___0__20 :-
 4117    cleanup___0__21.
 4118cleanup___0__21 :-
 4119    nb_getval('$chr_store_global_list_guard_entailment____variables___1',
 4120              A),
 4121    !,
 4122    cleanup___0__21__0__27(A).
 4123cleanup___0__21__0__27([]) :-
 4124    cleanup___0__22.
 4125cleanup___0__21__0__27([A|H]) :-
 4126    (   A=suspension(_, active, _, _)
 4127    ->  ( A=suspension(_, _, _, B),
 4128          setarg(2, A, removed),
 4129          term_variables(B, G),
 4130          ( arg(3, A, C),
 4131            (   var(C)
 4132            ->  nb_getval('$chr_store_global_list_guard_entailment____variables___1',
 4133                          D),
 4134                D=[_|E],
 4135                b_setval('$chr_store_global_list_guard_entailment____variables___1',
 4136                         E),
 4137                (   E=[F|_]
 4138                ->  setarg(3, F, _)
 4139                ;   true
 4140                )
 4141            ;   C=[_, _|E],
 4142                setarg(2, C, E),
 4143                (   E=[F|_]
 4144                ->  setarg(3, F, C)
 4145                ;   true
 4146                )
 4147            )
 4148          ),
 4149          detach_variables___1(G, A)
 4150        ),
 4151        cleanup___0__21__0__27(H)
 4152    ;   cleanup___0__21__0__27(H)
 4153    ).
 4154cleanup___0__21 :-
 4155    cleanup___0__22.
 4156cleanup___0__22.
 4157variables(A) :-
 4158    variables___1__0(A, _).
 4159variables___1__0(V, N) :-
 4160    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 4161              A),
 4162    member(B, A),
 4163    B=suspension(_, active, _, _, E, D, C),
 4164    ground(C),
 4165    ground(D),
 4166    var(E),
 4167    !,
 4168    B=suspension(_, _, _, _, F, G, H),
 4169    setarg(2, B, removed),
 4170    term_variables(term(F, G, H), M),
 4171    arg(4, B, I),
 4172    (   var(I)
 4173    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 4174                  J),
 4175        J=[_|K],
 4176        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 4177                 K),
 4178        (   K=[L|_]
 4179        ->  setarg(4, L, _)
 4180        ;   true
 4181        )
 4182    ;   I=[_, _|K],
 4183        setarg(2, I, K),
 4184        (   K=[L|_]
 4185        ->  setarg(4, L, I)
 4186        ;   true
 4187        )
 4188    ),
 4189    'detach_known/1_1_$special_functor/3___3'(M, B),
 4190    (   var(N)
 4191    ->  true
 4192    ;   N=suspension(_, _, _, O),
 4193        setarg(2, N, removed),
 4194        term_variables(O, T),
 4195        ( arg(3, N, P),
 4196          (   var(P)
 4197          ->  nb_getval('$chr_store_global_list_guard_entailment____variables___1',
 4198                        Q),
 4199              Q=[_|R],
 4200              b_setval('$chr_store_global_list_guard_entailment____variables___1',
 4201                       R),
 4202              (   R=[S|_]
 4203              ->  setarg(3, S, _)
 4204              ;   true
 4205              )
 4206          ;   P=[_, _|R],
 4207              setarg(2, P, R),
 4208              (   R=[S|_]
 4209              ->  setarg(3, S, P)
 4210              ;   true
 4211              )
 4212          )
 4213        ),
 4214        detach_variables___1(T, N)
 4215    ),
 4216    functor(E, D, C),
 4217    E=..[_|U],
 4218    append(U, V, W),
 4219    variables(W).
 4220variables___1__0(B, A) :-
 4221    (   var(A)
 4222    ->  ( A=suspension(D, active, _, B),
 4223          term_variables(B, C),
 4224          'chr none_locked'(C),
 4225          'chr gen_id'(D)
 4226        ),
 4227        ( nb_getval('$chr_store_global_list_guard_entailment____variables___1',
 4228                    E),
 4229          F=[A|E],
 4230          b_setval('$chr_store_global_list_guard_entailment____variables___1',
 4231                   F),
 4232          (   E=[G|_]
 4233          ->  setarg(3, G, F)
 4234          ;   true
 4235          )
 4236        ),
 4237        attach_variables___1(C, A)
 4238    ;   setarg(2, A, active)
 4239    ).
 4240'test/1_1_$default'(_) :-
 4241    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4242              A),
 4243    member(B, A),
 4244    B=suspension(_, active, _),
 4245    !.
 4246'test/1_1_$default'(A) :-
 4247    nonvar(A),
 4248    (   (   (   (   (   A=nonvar(B),
 4249                        (   'chr newvia_1'(B, C)
 4250                        ->  get_attr(C, guard_entailment, D),
 4251                            D=v(_, _, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4252                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 4253                                      E)
 4254                        ),
 4255                        member(F, E),
 4256                        F=suspension(_, active, _, _, G),
 4257                        G==B,
 4258                        !
 4259                    ;   A=var(H),
 4260                        (   'chr newvia_1'(H, I)
 4261                        ->  get_attr(I, guard_entailment, J),
 4262                            J=v(_, _, _, _, _, K, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4263                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 4264                                      K)
 4265                        ),
 4266                        member(L, K),
 4267                        L=suspension(_, active, _, _, M),
 4268                        M==H,
 4269                        !
 4270                    )
 4271                ;   A=atom(N),
 4272                    (   'chr newvia_1'(N, O)
 4273                    ->  get_attr(O, guard_entailment, P),
 4274                        P=v(_, _, _, _, _, _, Q, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4275                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 4276                                  Q)
 4277                    ),
 4278                    member(R, Q),
 4279                    R=suspension(_, active, _, _, _, S),
 4280                    S==N,
 4281                    !
 4282                )
 4283            ;   A=atomic(T),
 4284                (   'chr newvia_1'(T, U)
 4285                ->  get_attr(U, guard_entailment, V),
 4286                    V=v(_, _, _, _, _, _, _, W, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4287                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 4288                              W)
 4289                ),
 4290                member(X, W),
 4291                X=suspension(_, active, _, _, _, Y),
 4292                Y==T,
 4293                !
 4294            )
 4295        ;   A=compound(Z),
 4296            (   'chr newvia_1'(Z, A1)
 4297            ->  get_attr(A1, guard_entailment, B1),
 4298                B1=v(_, _, _, _, _, _, _, _, C1, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4299            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 4300                          C1)
 4301            ),
 4302            member(D1, C1),
 4303            D1=suspension(_, active, _, _, _, E1),
 4304            E1==Z,
 4305            !
 4306        )
 4307    ;   A=(F1\=G1),
 4308        (   'chr newvia_2'(F1, G1, H1)
 4309        ->  get_attr(H1, guard_entailment, I1),
 4310            I1=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, J1, _, _, _, _, _)
 4311        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 4312                      J1)
 4313        ),
 4314        member(K1, J1),
 4315        K1=suspension(_, active, _, _, _, L1, M1),
 4316        L1==F1,
 4317        M1==G1,
 4318        !
 4319    ).
 4320'test/1_1_$default'(A) :-
 4321    (   'chr newvia_1'(A, B)
 4322    ->  get_attr(B, guard_entailment, C),
 4323        C=v(_, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4324    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 4325                  D)
 4326    ),
 4327    member(E, D),
 4328    E=suspension(_, active, _, _, F),
 4329    F==A,
 4330    !.
 4331'test/1_1_$default'(K) :-
 4332    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4333              A),
 4334    member(B, A),
 4335    B=suspension(_, active, _, _, J, M),
 4336    !,
 4337    B=suspension(_, _, _, _, C, D),
 4338    setarg(2, B, removed),
 4339    term_variables(term(C, D), I),
 4340    arg(4, B, E),
 4341    (   var(E)
 4342    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4343                  F),
 4344        F=[_|G],
 4345        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4346                 G),
 4347        (   G=[H|_]
 4348        ->  setarg(4, H, _)
 4349        ;   true
 4350        )
 4351    ;   E=[_, _|G],
 4352        setarg(2, E, G),
 4353        (   G=[H|_]
 4354        ->  setarg(4, H, E)
 4355        ;   true
 4356        )
 4357    ),
 4358    'detach_known/1_1_$special_;/2___2'(I, B),
 4359    \+ try(J, K),
 4360    !,
 4361    negate_b(J, L),
 4362    known(L),
 4363    \+ try(M, K).
 4364'test/1_1_$default'(_) :-
 4365    fail.
 4366'test/1_1_$special_,/2'(_, _) :-
 4367    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4368              A),
 4369    member(B, A),
 4370    B=suspension(_, active, _),
 4371    !.
 4372'test/1_1_$special_,/2'(A, B) :-
 4373    test(A),
 4374    known(A),
 4375    test(B).
 4376'test/1_1_$special_\\+/1'(_) :-
 4377    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4378              A),
 4379    member(B, A),
 4380    B=suspension(_, active, _),
 4381    !.
 4382'test/1_1_$special_\\+/1'(A) :-
 4383    (   'chr newvia_1'(A, B)
 4384    ->  get_attr(B, guard_entailment, C),
 4385        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
 4386    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 4387                  D)
 4388    ),
 4389    member(E, D),
 4390    E=suspension(_, active, _, _, F),
 4391    F==A,
 4392    !.
 4393'test/1_1_$special_\\+/1'(A) :-
 4394    nonvar(A),
 4395    (   (   (   (   (   (   (   A=functor(B, C, D),
 4396                                nonvar(B),
 4397                                (   'chr lock'(B),
 4398                                    'chr lock'(C),
 4399                                    'chr lock'(D),
 4400                                    functor(B, C, D),
 4401                                    'chr unlock'(B),
 4402                                    'chr unlock'(C),
 4403                                    'chr unlock'(D),
 4404                                    !,
 4405                                    fail
 4406                                ;   !
 4407                                )
 4408                            ;   A=ground(E),
 4409                                ground(E),
 4410                                !,
 4411                                fail
 4412                            )
 4413                        ;   A=number(F),
 4414                            number(F),
 4415                            !,
 4416                            fail
 4417                        )
 4418                    ;   A=float(G),
 4419                        float(G),
 4420                        !,
 4421                        fail
 4422                    )
 4423                ;   A=integer(H),
 4424                    integer(H),
 4425                    !,
 4426                    fail
 4427                )
 4428            ;   A=number(I),
 4429                nonvar(I),
 4430                !
 4431            )
 4432        ;   A=float(J),
 4433            nonvar(J),
 4434            !
 4435        )
 4436    ;   A=integer(K),
 4437        nonvar(K),
 4438        !
 4439    ).
 4440'test/1_1_$special_\\+/1'(K) :-
 4441    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4442              A),
 4443    member(B, A),
 4444    B=suspension(_, active, _, _, J, M),
 4445    !,
 4446    B=suspension(_, _, _, _, C, D),
 4447    setarg(2, B, removed),
 4448    term_variables(term(C, D), I),
 4449    arg(4, B, E),
 4450    (   var(E)
 4451    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4452                  F),
 4453        F=[_|G],
 4454        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4455                 G),
 4456        (   G=[H|_]
 4457        ->  setarg(4, H, _)
 4458        ;   true
 4459        )
 4460    ;   E=[_, _|G],
 4461        setarg(2, E, G),
 4462        (   G=[H|_]
 4463        ->  setarg(4, H, E)
 4464        ;   true
 4465        )
 4466    ),
 4467    'detach_known/1_1_$special_;/2___2'(I, B),
 4468    \+ try(J, \+K),
 4469    !,
 4470    negate_b(J, L),
 4471    known(L),
 4472    \+ try(M, \+K).
 4473'test/1_1_$special_\\+/1'(_) :-
 4474    fail.
 4475'test/1_1_$special_integer/1'(_) :-
 4476    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4477              A),
 4478    member(B, A),
 4479    B=suspension(_, active, _),
 4480    !.
 4481'test/1_1_$special_integer/1'(A) :-
 4482    (   'chr newvia_1'(A, B)
 4483    ->  get_attr(B, guard_entailment, C),
 4484        C=v(_, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _)
 4485    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 4486                  D)
 4487    ),
 4488    member(E, D),
 4489    E=suspension(_, active, _, _, _, F),
 4490    F==A,
 4491    !.
 4492'test/1_1_$special_integer/1'(A) :-
 4493    integer(A),
 4494    !.
 4495'test/1_1_$special_integer/1'(A) :-
 4496    nonvar(A),
 4497    !,
 4498    fail.
 4499'test/1_1_$special_integer/1'(K) :-
 4500    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4501              A),
 4502    member(B, A),
 4503    B=suspension(_, active, _, _, J, M),
 4504    !,
 4505    B=suspension(_, _, _, _, C, D),
 4506    setarg(2, B, removed),
 4507    term_variables(term(C, D), I),
 4508    arg(4, B, E),
 4509    (   var(E)
 4510    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4511                  F),
 4512        F=[_|G],
 4513        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4514                 G),
 4515        (   G=[H|_]
 4516        ->  setarg(4, H, _)
 4517        ;   true
 4518        )
 4519    ;   E=[_, _|G],
 4520        setarg(2, E, G),
 4521        (   G=[H|_]
 4522        ->  setarg(4, H, E)
 4523        ;   true
 4524        )
 4525    ),
 4526    'detach_known/1_1_$special_;/2___2'(I, B),
 4527    \+ try(J, integer(K)),
 4528    !,
 4529    negate_b(J, L),
 4530    known(L),
 4531    \+ try(M, integer(K)).
 4532'test/1_1_$special_integer/1'(_) :-
 4533    fail.
 4534'test/1_1_$special_float/1'(_) :-
 4535    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4536              A),
 4537    member(B, A),
 4538    B=suspension(_, active, _),
 4539    !.
 4540'test/1_1_$special_float/1'(A) :-
 4541    (   'chr newvia_1'(A, B)
 4542    ->  get_attr(B, guard_entailment, C),
 4543        C=v(_, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _)
 4544    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 4545                  D)
 4546    ),
 4547    member(E, D),
 4548    E=suspension(_, active, _, _, _, F),
 4549    F==A,
 4550    !.
 4551'test/1_1_$special_float/1'(A) :-
 4552    float(A),
 4553    !.
 4554'test/1_1_$special_float/1'(A) :-
 4555    nonvar(A),
 4556    !,
 4557    fail.
 4558'test/1_1_$special_float/1'(K) :-
 4559    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4560              A),
 4561    member(B, A),
 4562    B=suspension(_, active, _, _, J, M),
 4563    !,
 4564    B=suspension(_, _, _, _, C, D),
 4565    setarg(2, B, removed),
 4566    term_variables(term(C, D), I),
 4567    arg(4, B, E),
 4568    (   var(E)
 4569    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4570                  F),
 4571        F=[_|G],
 4572        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4573                 G),
 4574        (   G=[H|_]
 4575        ->  setarg(4, H, _)
 4576        ;   true
 4577        )
 4578    ;   E=[_, _|G],
 4579        setarg(2, E, G),
 4580        (   G=[H|_]
 4581        ->  setarg(4, H, E)
 4582        ;   true
 4583        )
 4584    ),
 4585    'detach_known/1_1_$special_;/2___2'(I, B),
 4586    \+ try(J, float(K)),
 4587    !,
 4588    negate_b(J, L),
 4589    known(L),
 4590    \+ try(M, float(K)).
 4591'test/1_1_$special_float/1'(_) :-
 4592    fail.
 4593'test/1_1_$special_number/1'(_) :-
 4594    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4595              A),
 4596    member(B, A),
 4597    B=suspension(_, active, _),
 4598    !.
 4599'test/1_1_$special_number/1'(A) :-
 4600    (   'chr newvia_1'(A, B)
 4601    ->  get_attr(B, guard_entailment, C),
 4602        C=v(_, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _)
 4603    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 4604                  D)
 4605    ),
 4606    member(E, D),
 4607    E=suspension(_, active, _, _, _, F),
 4608    F==A,
 4609    !.
 4610'test/1_1_$special_number/1'(A) :-
 4611    number(A),
 4612    !.
 4613'test/1_1_$special_number/1'(A) :-
 4614    nonvar(A),
 4615    !,
 4616    fail.
 4617'test/1_1_$special_number/1'(K) :-
 4618    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4619              A),
 4620    member(B, A),
 4621    B=suspension(_, active, _, _, J, M),
 4622    !,
 4623    B=suspension(_, _, _, _, C, D),
 4624    setarg(2, B, removed),
 4625    term_variables(term(C, D), I),
 4626    arg(4, B, E),
 4627    (   var(E)
 4628    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4629                  F),
 4630        F=[_|G],
 4631        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4632                 G),
 4633        (   G=[H|_]
 4634        ->  setarg(4, H, _)
 4635        ;   true
 4636        )
 4637    ;   E=[_, _|G],
 4638        setarg(2, E, G),
 4639        (   G=[H|_]
 4640        ->  setarg(4, H, E)
 4641        ;   true
 4642        )
 4643    ),
 4644    'detach_known/1_1_$special_;/2___2'(I, B),
 4645    \+ try(J, number(K)),
 4646    !,
 4647    negate_b(J, L),
 4648    known(L),
 4649    \+ try(M, number(K)).
 4650'test/1_1_$special_number/1'(_) :-
 4651    fail.
 4652'test/1_1_$special_ground/1'(_) :-
 4653    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4654              A),
 4655    member(B, A),
 4656    B=suspension(_, active, _),
 4657    !.
 4658'test/1_1_$special_ground/1'(A) :-
 4659    (   'chr newvia_1'(A, B)
 4660    ->  get_attr(B, guard_entailment, C),
 4661        C=v(_, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _)
 4662    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 4663                  D)
 4664    ),
 4665    member(E, D),
 4666    E=suspension(_, active, _, _, _, F),
 4667    F==A,
 4668    !.
 4669'test/1_1_$special_ground/1'(A) :-
 4670    ground(A),
 4671    !.
 4672'test/1_1_$special_ground/1'(K) :-
 4673    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4674              A),
 4675    member(B, A),
 4676    B=suspension(_, active, _, _, J, M),
 4677    !,
 4678    B=suspension(_, _, _, _, C, D),
 4679    setarg(2, B, removed),
 4680    term_variables(term(C, D), I),
 4681    arg(4, B, E),
 4682    (   var(E)
 4683    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4684                  F),
 4685        F=[_|G],
 4686        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4687                 G),
 4688        (   G=[H|_]
 4689        ->  setarg(4, H, _)
 4690        ;   true
 4691        )
 4692    ;   E=[_, _|G],
 4693        setarg(2, E, G),
 4694        (   G=[H|_]
 4695        ->  setarg(4, H, E)
 4696        ;   true
 4697        )
 4698    ),
 4699    'detach_known/1_1_$special_;/2___2'(I, B),
 4700    \+ try(J, ground(K)),
 4701    !,
 4702    negate_b(J, L),
 4703    known(L),
 4704    \+ try(M, ground(K)).
 4705'test/1_1_$special_ground/1'(_) :-
 4706    fail.
 4707'test/1_1_$special_=:=/2'(_, _) :-
 4708    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4709              A),
 4710    member(B, A),
 4711    B=suspension(_, active, _),
 4712    !.
 4713'test/1_1_$special_=:=/2'(A, B) :-
 4714    (   'chr newvia_2'(A, B, C)
 4715    ->  get_attr(C, guard_entailment, D),
 4716        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
 4717    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 4718                  E)
 4719    ),
 4720    member(F, E),
 4721    F=suspension(_, active, _, _, _, G, H),
 4722    G==A,
 4723    H==B,
 4724    !.
 4725'test/1_1_$special_=:=/2'(A, B) :-
 4726    A==B,
 4727    !.
 4728'test/1_1_$special_=:=/2'(B, A) :-
 4729    ( ground(A),
 4730      ground(B)
 4731    ),
 4732    (   B=:=A,
 4733        !
 4734    ;   !,
 4735        fail
 4736    ).
 4737'test/1_1_$special_=:=/2'(K, L) :-
 4738    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4739              A),
 4740    member(B, A),
 4741    B=suspension(_, active, _, _, J, N),
 4742    !,
 4743    B=suspension(_, _, _, _, C, D),
 4744    setarg(2, B, removed),
 4745    term_variables(term(C, D), I),
 4746    arg(4, B, E),
 4747    (   var(E)
 4748    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4749                  F),
 4750        F=[_|G],
 4751        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4752                 G),
 4753        (   G=[H|_]
 4754        ->  setarg(4, H, _)
 4755        ;   true
 4756        )
 4757    ;   E=[_, _|G],
 4758        setarg(2, E, G),
 4759        (   G=[H|_]
 4760        ->  setarg(4, H, E)
 4761        ;   true
 4762        )
 4763    ),
 4764    'detach_known/1_1_$special_;/2___2'(I, B),
 4765    \+ try(J, K=:=L),
 4766    !,
 4767    negate_b(J, M),
 4768    known(M),
 4769    \+ try(N, K=:=L).
 4770'test/1_1_$special_=:=/2'(_, _) :-
 4771    fail.
 4772'test/1_1_$special_==/2'(_, _) :-
 4773    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4774              A),
 4775    member(B, A),
 4776    B=suspension(_, active, _),
 4777    !.
 4778'test/1_1_$special_==/2'(A, B) :-
 4779    (   'chr newvia_2'(A, B, C)
 4780    ->  get_attr(C, guard_entailment, D),
 4781        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _)
 4782    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 4783                  E)
 4784    ),
 4785    member(F, E),
 4786    F=suspension(_, active, _, _, _, G, H),
 4787    G==A,
 4788    H==B,
 4789    !.
 4790'test/1_1_$special_==/2'(A, B) :-
 4791    A==B,
 4792    !.
 4793'test/1_1_$special_==/2'(K, L) :-
 4794    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4795              A),
 4796    member(B, A),
 4797    B=suspension(_, active, _, _, J, N),
 4798    !,
 4799    B=suspension(_, _, _, _, C, D),
 4800    setarg(2, B, removed),
 4801    term_variables(term(C, D), I),
 4802    arg(4, B, E),
 4803    (   var(E)
 4804    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4805                  F),
 4806        F=[_|G],
 4807        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4808                 G),
 4809        (   G=[H|_]
 4810        ->  setarg(4, H, _)
 4811        ;   true
 4812        )
 4813    ;   E=[_, _|G],
 4814        setarg(2, E, G),
 4815        (   G=[H|_]
 4816        ->  setarg(4, H, E)
 4817        ;   true
 4818        )
 4819    ),
 4820    'detach_known/1_1_$special_;/2___2'(I, B),
 4821    \+ try(J, K==L),
 4822    !,
 4823    negate_b(J, M),
 4824    known(M),
 4825    \+ try(N, K==L).
 4826'test/1_1_$special_==/2'(_, _) :-
 4827    fail.
 4828'test/1_1_$special_true/0' :-
 4829    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4830              A),
 4831    member(B, A),
 4832    B=suspension(_, active, _),
 4833    !.
 4834'test/1_1_$special_true/0'.
 4835'test/1_1_$special_functor/3'(_, _, _) :-
 4836    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4837              A),
 4838    member(B, A),
 4839    B=suspension(_, active, _),
 4840    !.
 4841'test/1_1_$special_functor/3'(A, B, C) :-
 4842    (   'chr newvia'([A, B, C], D)
 4843    ->  get_attr(D, guard_entailment, E),
 4844        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _)
 4845    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 4846                  F)
 4847    ),
 4848    member(G, F),
 4849    G=suspension(_, active, _, _, H, I, J),
 4850    H==A,
 4851    I==B,
 4852    J==C,
 4853    !.
 4854'test/1_1_$special_functor/3'(C, B, A) :-
 4855    ground(A),
 4856    ground(B),
 4857    var(C),
 4858    nb_getval('$chr_store_global_list_guard_entailment____variables___1',
 4859              D),
 4860    member(E, D),
 4861    E=suspension(_, active, _, F),
 4862    'chr lock'(C),
 4863    'chr lock'(F),
 4864    \+ memberchk_eq(C, F),
 4865    'chr unlock'(C),
 4866    'chr unlock'(F),
 4867    !,
 4868    functor(C, B, A).
 4869'test/1_1_$special_functor/3'(A, B, C) :-
 4870    nonvar(A),
 4871    (   'chr lock'(A),
 4872        'chr lock'(B),
 4873        'chr lock'(C),
 4874        functor(A, B, C),
 4875        'chr unlock'(A),
 4876        'chr unlock'(B),
 4877        'chr unlock'(C),
 4878        !
 4879    ;   !,
 4880        fail
 4881    ).
 4882'test/1_1_$special_functor/3'(K, L, M) :-
 4883    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4884              A),
 4885    member(B, A),
 4886    B=suspension(_, active, _, _, J, O),
 4887    !,
 4888    B=suspension(_, _, _, _, C, D),
 4889    setarg(2, B, removed),
 4890    term_variables(term(C, D), I),
 4891    arg(4, B, E),
 4892    (   var(E)
 4893    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4894                  F),
 4895        F=[_|G],
 4896        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4897                 G),
 4898        (   G=[H|_]
 4899        ->  setarg(4, H, _)
 4900        ;   true
 4901        )
 4902    ;   E=[_, _|G],
 4903        setarg(2, E, G),
 4904        (   G=[H|_]
 4905        ->  setarg(4, H, E)
 4906        ;   true
 4907        )
 4908    ),
 4909    'detach_known/1_1_$special_;/2___2'(I, B),
 4910    \+ try(J, functor(K, L, M)),
 4911    !,
 4912    negate_b(J, N),
 4913    known(N),
 4914    \+ try(O, functor(K, L, M)).
 4915'test/1_1_$special_functor/3'(_, _, _) :-
 4916    fail.
 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    (   'chr newvia_2'(A, B, C)
 4925    ->  get_attr(C, guard_entailment, D),
 4926        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _)
 4927    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 4928                  E)
 4929    ),
 4930    member(F, E),
 4931    F=suspension(_, active, _, _, G, H),
 4932    G==A,
 4933    H==B,
 4934    !.
 4935'test/1_1_$special_=/2'(B, A) :-
 4936    ground(A),
 4937    ground(B),
 4938    !,
 4939    B=A.
 4940'test/1_1_$special_=/2'(K, L) :-
 4941    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4942              A),
 4943    member(B, A),
 4944    B=suspension(_, active, _, _, J, N),
 4945    !,
 4946    B=suspension(_, _, _, _, C, D),
 4947    setarg(2, B, removed),
 4948    term_variables(term(C, D), I),
 4949    arg(4, B, E),
 4950    (   var(E)
 4951    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4952                  F),
 4953        F=[_|G],
 4954        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4955                 G),
 4956        (   G=[H|_]
 4957        ->  setarg(4, H, _)
 4958        ;   true
 4959        )
 4960    ;   E=[_, _|G],
 4961        setarg(2, E, G),
 4962        (   G=[H|_]
 4963        ->  setarg(4, H, E)
 4964        ;   true
 4965        )
 4966    ),
 4967    'detach_known/1_1_$special_;/2___2'(I, B),
 4968    \+ try(J, K=L),
 4969    !,
 4970    negate_b(J, M),
 4971    known(M),
 4972    \+ try(N, K=L).
 4973'test/1_1_$special_=/2'(_, _) :-
 4974    fail.
 4975'test/1_1_$special_;/2'(_, _) :-
 4976    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4977              A),
 4978    member(B, A),
 4979    B=suspension(_, active, _),
 4980    !.
 4981'test/1_1_$special_;/2'(A, B) :-
 4982    (   'chr newvia_2'(A, B, C)
 4983    ->  get_attr(C, guard_entailment, D),
 4984        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4985    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4986                  E)
 4987    ),
 4988    member(F, E),
 4989    F=suspension(_, active, _, _, G, H),
 4990    G==A,
 4991    H==B,
 4992    !.
 4993'test/1_1_$special_;/2'(A, B) :-
 4994    A==fail,
 4995    !,
 4996    test(B).
 4997'test/1_1_$special_;/2'(B, A) :-
 4998    A==fail,
 4999    !,
 5000    test(B).
 5001'test/1_1_$special_;/2'(A, B) :-
 5002    negate_b(A, D),
 5003    negate_b(B, C),
 5004    (   known(C),
 5005        test(A)
 5006    ;   known(D),
 5007        test(B)
 5008    ).
 5009'test/1_1_$special_is/2'(_, _) :-
 5010    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 5011              A),
 5012    member(B, A),
 5013    B=suspension(_, active, _),
 5014    !.
 5015'test/1_1_$special_is/2'(A, B) :-
 5016    'test/1_1_$special_=:=/2'(A, B).
 5017'test/1_1_$special_</2'(_, _) :-
 5018    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 5019              A),
 5020    member(B, A),
 5021    B=suspension(_, active, _),
 5022    !.
 5023'test/1_1_$special_</2'(A, B) :-
 5024    'test/1_1_$special_,/2'(A=<B, A=\=B).
 5025'test/1_1_$special_>=/2'(_, _) :-
 5026    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 5027              A),
 5028    member(B, A),
 5029    B=suspension(_, active, _),
 5030    !.
 5031'test/1_1_$special_>=/2'(B, A) :-
 5032    'test/1_1_$special_=</2'(A, B).
 5033'test/1_1_$special_>/2'(_, _) :-
 5034    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 5035              A),
 5036    member(B, A),
 5037    B=suspension(_, active, _),
 5038    !.
 5039'test/1_1_$special_>/2'(B, A) :-
 5040    'test/1_1_$special_</2'(A, B).
 5041'test/1_1_$special_=\\=/2'(_, _) :-
 5042    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 5043              A),
 5044    member(B, A),
 5045    B=suspension(_, active, _),
 5046    !.
 5047'test/1_1_$special_=\\=/2'(A, B) :-
 5048    (   'chr newvia_2'(A, B, C)
 5049    ->  get_attr(C, guard_entailment, D),
 5050        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _, _)
 5051    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 5052                  E)
 5053    ),
 5054    member(F, E),
 5055    F=suspension(_, active, _, _, _, G, H),
 5056    G==A,
 5057    H==B,
 5058    !.
 5059'test/1_1_$special_=\\=/2'(B, A) :-
 5060    ( number(A),
 5061      (   'chr newvia_1'(B, C)
 5062      ->  get_attr(C, guard_entailment, D),
 5063          D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
 5064      ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 5065                    E)
 5066      ),
 5067      member(F, E),
 5068      F=suspension(_, active, _, _, _, G, H)
 5069    ),
 5070    (   G==B,
 5071        number(H),
 5072        A>H,
 5073        !
 5074    ;   H==B,
 5075        number(G),
 5076        A<G,
 5077        !
 5078    ).
 5079'test/1_1_$special_=\\=/2'(B, A) :-
 5080    ( ground(A),
 5081      ground(B)
 5082    ),
 5083    (   B=\=A,
 5084        !
 5085    ;   !,
 5086        fail
 5087    ).
 5088'test/1_1_$special_=\\=/2'(K, L) :-
 5089    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5090              A),
 5091    member(B, A),
 5092    B=suspension(_, active, _, _, J, N),
 5093    !,
 5094    B=suspension(_, _, _, _, C, D),
 5095    setarg(2, B, removed),
 5096    term_variables(term(C, D), I),
 5097    arg(4, B, E),
 5098    (   var(E)
 5099    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5100                  F),
 5101        F=[_|G],
 5102        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5103                 G),
 5104        (   G=[H|_]
 5105        ->  setarg(4, H, _)
 5106        ;   true
 5107        )
 5108    ;   E=[_, _|G],
 5109        setarg(2, E, G),
 5110        (   G=[H|_]
 5111        ->  setarg(4, H, E)
 5112        ;   true
 5113        )
 5114    ),
 5115    'detach_known/1_1_$special_;/2___2'(I, B),
 5116    \+ try(J, K=\=L),
 5117    !,
 5118    negate_b(J, M),
 5119    known(M),
 5120    \+ try(N, K=\=L).
 5121'test/1_1_$special_=\\=/2'(_, _) :-
 5122    fail.
 5123'test/1_1_$special_=</2'(_, _) :-
 5124    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 5125              A),
 5126    member(B, A),
 5127    B=suspension(_, active, _),
 5128    !.
 5129'test/1_1_$special_=</2'(A, B) :-
 5130    (   'chr newvia_2'(A, B, C)
 5131    ->  get_attr(C, guard_entailment, D),
 5132        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
 5133    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 5134                  E)
 5135    ),
 5136    member(F, E),
 5137    F=suspension(_, active, _, _, _, G, H),
 5138    G==A,
 5139    H==B,
 5140    !.
 5141'test/1_1_$special_=</2'(A, B) :-
 5142    (   'chr newvia_2'(A, B, C)
 5143    ->  get_attr(C, guard_entailment, D),
 5144        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
 5145    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 5146                  E)
 5147    ),
 5148    member(F, E),
 5149    F=suspension(_, active, _, _, _, G, H),
 5150    G==A,
 5151    H==B,
 5152    !.
 5153'test/1_1_$special_=</2'(B, A) :-
 5154    number(A),
 5155    (   'chr newvia_1'(B, C)
 5156    ->  get_attr(C, guard_entailment, D),
 5157        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
 5158    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 5159                  E)
 5160    ),
 5161    member(F, E),
 5162    F=suspension(_, active, _, _, _, G, H),
 5163    G==B,
 5164    number(H),
 5165    H=<A,
 5166    !.
 5167'test/1_1_$special_=</2'(A, B) :-
 5168    number(A),
 5169    (   'chr newvia_1'(B, C)
 5170    ->  get_attr(C, guard_entailment, D),
 5171        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
 5172    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 5173                  E)
 5174    ),
 5175    member(F, E),
 5176    F=suspension(_, active, _, _, _, G, H),
 5177    G==B,
 5178    number(H),
 5179    A=<H,
 5180    !.
 5181'test/1_1_$special_=</2'(B, A) :-
 5182    number(A),
 5183    (   'chr newvia_1'(B, C)
 5184    ->  get_attr(C, guard_entailment, D),
 5185        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
 5186    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 5187                  E)
 5188    ),
 5189    member(F, E),
 5190    F=suspension(_, active, _, _, _, G, H),
 5191    G==B,
 5192    number(H),
 5193    H=<A,
 5194    !.
 5195'test/1_1_$special_=</2'(A, B) :-
 5196    number(A),
 5197    (   'chr newvia_1'(B, C)
 5198    ->  get_attr(C, guard_entailment, D),
 5199        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
 5200    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 5201                  E)
 5202    ),
 5203    member(F, E),
 5204    F=suspension(_, active, _, _, _, H, G),
 5205    G==B,
 5206    number(H),
 5207    A=<H,
 5208    !.
 5209'test/1_1_$special_=</2'(A, B) :-
 5210    A==B,
 5211    !.
 5212'test/1_1_$special_=</2'(B, A) :-
 5213    ( ground(A),
 5214      ground(B)
 5215    ),
 5216    (   B=<A,
 5217        !
 5218    ;   !,
 5219        fail
 5220    ).
 5221'test/1_1_$special_=</2'(K, L) :-
 5222    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5223              A),
 5224    member(B, A),
 5225    B=suspension(_, active, _, _, J, N),
 5226    !,
 5227    B=suspension(_, _, _, _, C, D),
 5228    setarg(2, B, removed),
 5229    term_variables(term(C, D), I),
 5230    arg(4, B, E),
 5231    (   var(E)
 5232    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5233                  F),
 5234        F=[_|G],
 5235        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5236                 G),
 5237        (   G=[H|_]
 5238        ->  setarg(4, H, _)
 5239        ;   true
 5240        )
 5241    ;   E=[_, _|G],
 5242        setarg(2, E, G),
 5243        (   G=[H|_]
 5244        ->  setarg(4, H, E)
 5245        ;   true
 5246        )
 5247    ),
 5248    'detach_known/1_1_$special_;/2___2'(I, B),
 5249    \+ try(J, K=<L),
 5250    !,
 5251    negate_b(J, M),
 5252    known(M),
 5253    \+ try(N, K=<L).
 5254'test/1_1_$special_=</2'(_, _) :-
 5255    fail.
 5256'test/1_1_$special_\\==/2'(_, _) :-
 5257    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 5258              A),
 5259    member(B, A),
 5260    B=suspension(_, active, _),
 5261    !.
 5262'test/1_1_$special_\\==/2'(A, B) :-
 5263    (   'chr newvia_2'(A, B, C)
 5264    ->  get_attr(C, guard_entailment, D),
 5265        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _)
 5266    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 5267                  E)
 5268    ),
 5269    member(F, E),
 5270    F=suspension(_, active, _, _, _, G, H),
 5271    G==A,
 5272    H==B,
 5273    !.
 5274'test/1_1_$special_\\==/2'(F, A) :-
 5275    nonvar(A),
 5276    'chr lock'(A),
 5277    functor(A, C, B),
 5278    'chr unlock'(A),
 5279    !,
 5280    A=..[_|E],
 5281    length(D, B),
 5282    G=..[C|D],
 5283    add_args_nmatch(D, E, H),
 5284    I=(\+functor(F, C, B);functor(F, C, B), F=G, H),
 5285    test(I).
 5286'test/1_1_$special_\\==/2'(A, B) :-
 5287    nonvar(A),
 5288    !,
 5289    'test/1_1_$special_\\==/2'(B, A).
 5290'test/1_1_$special_\\==/2'(K, L) :-
 5291    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5292              A),
 5293    member(B, A),
 5294    B=suspension(_, active, _, _, J, N),
 5295    !,
 5296    B=suspension(_, _, _, _, C, D),
 5297    setarg(2, B, removed),
 5298    term_variables(term(C, D), I),
 5299    arg(4, B, E),
 5300    (   var(E)
 5301    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5302                  F),
 5303        F=[_|G],
 5304        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5305                 G),
 5306        (   G=[H|_]
 5307        ->  setarg(4, H, _)
 5308        ;   true
 5309        )
 5310    ;   E=[_, _|G],
 5311        setarg(2, E, G),
 5312        (   G=[H|_]
 5313        ->  setarg(4, H, E)
 5314        ;   true
 5315        )
 5316    ),
 5317    'detach_known/1_1_$special_;/2___2'(I, B),
 5318    \+ try(J, K\==L),
 5319    !,
 5320    negate_b(J, M),
 5321    known(M),
 5322    \+ try(N, K\==L).
 5323'test/1_1_$special_\\==/2'(_, _) :-
 5324    fail.
 5325'known/1_1_$default'(A) :-
 5326    'known/1_1_$default___1__0'(A, _).
 5327'known/1_1_$default___1__0'(A, G) :-
 5328    (   'chr newvia_1'(A, B)
 5329    ->  get_attr(B, guard_entailment, C),
 5330        C=v(_, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5331    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5332                  D)
 5333    ),
 5334    member(E, D),
 5335    E=suspension(_, active, _, _, F),
 5336    F==A,
 5337    !,
 5338    (   var(G)
 5339    ->  true
 5340    ;   G=suspension(_, H, _, _, I),
 5341        setarg(2, G, removed),
 5342        (   H==not_stored_yet
 5343        ->  J=[]
 5344        ;   term_variables(I, J),
 5345            ( arg(4, G, K),
 5346              (   var(K)
 5347              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5348                            L),
 5349                  L=[_|M],
 5350                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5351                           M),
 5352                  (   M=[N|_]
 5353                  ->  setarg(4, N, _)
 5354                  ;   true
 5355                  )
 5356              ;   K=[_, _|M],
 5357                  setarg(2, K, M),
 5358                  (   M=[N|_]
 5359                  ->  setarg(4, N, K)
 5360                  ;   true
 5361                  )
 5362              )
 5363            ),
 5364            'detach_known/1_1_$default___1'(J, G)
 5365        )
 5366    ).
 5367'known/1_1_$default___1__0'(_, C) :-
 5368    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 5369              A),
 5370    member(B, A),
 5371    B=suspension(_, active, _),
 5372    !,
 5373    (   var(C)
 5374    ->  true
 5375    ;   C=suspension(_, D, _, _, E),
 5376        setarg(2, C, removed),
 5377        (   D==not_stored_yet
 5378        ->  F=[]
 5379        ;   term_variables(E, F),
 5380            ( arg(4, C, G),
 5381              (   var(G)
 5382              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5383                            H),
 5384                  H=[_|I],
 5385                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5386                           I),
 5387                  (   I=[J|_]
 5388                  ->  setarg(4, J, _)
 5389                  ;   true
 5390                  )
 5391              ;   G=[_, _|I],
 5392                  setarg(2, G, I),
 5393                  (   I=[J|_]
 5394                  ->  setarg(4, J, G)
 5395                  ;   true
 5396                  )
 5397              )
 5398            ),
 5399            'detach_known/1_1_$default___1'(F, C)
 5400        )
 5401    ).
 5402'known/1_1_$default___1__0'(A, M) :-
 5403    (   'chr newvia_1'(A, B)
 5404    ->  get_attr(B, guard_entailment, C),
 5405        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
 5406    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5407                  D)
 5408    ),
 5409    member(E, D),
 5410    E=suspension(_, active, _, _, F),
 5411    F==A,
 5412    !,
 5413    E=suspension(_, _, _, _, G),
 5414    setarg(2, E, removed),
 5415    term_variables(G, L),
 5416    arg(4, E, H),
 5417    (   var(H)
 5418    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5419                  I),
 5420        I=[_|J],
 5421        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5422                 J),
 5423        (   J=[K|_]
 5424        ->  setarg(4, K, _)
 5425        ;   true
 5426        )
 5427    ;   H=[_, _|J],
 5428        setarg(2, H, J),
 5429        (   J=[K|_]
 5430        ->  setarg(4, K, H)
 5431        ;   true
 5432        )
 5433    ),
 5434    'detach_known/1_1_$special_\\+/1___1'(L, E),
 5435    (   var(M)
 5436    ->  true
 5437    ;   M=suspension(_, N, _, _, O),
 5438        setarg(2, M, removed),
 5439        (   N==not_stored_yet
 5440        ->  P=[]
 5441        ;   term_variables(O, P),
 5442            ( arg(4, M, Q),
 5443              (   var(Q)
 5444              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5445                            R),
 5446                  R=[_|S],
 5447                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5448                           S),
 5449                  (   S=[T|_]
 5450                  ->  setarg(4, T, _)
 5451                  ;   true
 5452                  )
 5453              ;   Q=[_, _|S],
 5454                  setarg(2, Q, S),
 5455                  (   S=[T|_]
 5456                  ->  setarg(4, T, Q)
 5457                  ;   true
 5458                  )
 5459              )
 5460            ),
 5461            'detach_known/1_1_$default___1'(P, M)
 5462        )
 5463    ),
 5464    'known/1_1_$special_fail/0'.
 5465'known/1_1_$default___1__0'(A, E) :-
 5466    (   'chr newvia_1'(A, B)
 5467    ->  get_attr(B, guard_entailment, C),
 5468        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5469    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5470                  D)
 5471    ),
 5472    !,
 5473    (   var(E)
 5474    ->  E=suspension(F, not_stored_yet, 0, _, A),
 5475        'chr gen_id'(F)
 5476    ;   true
 5477    ),
 5478    'known/1_1_$default___1__0__0__6'(D, A, E).
 5479'known/1_1_$default___1__0__0__6'([], A, B) :-
 5480    'known/1_1_$default___1__1'(A, B).
 5481'known/1_1_$default___1__0__0__6'([A|V], D, L) :-
 5482    (   A=suspension(_, active, _, _, B, U),
 5483        nonvar(B),
 5484        B=(\+C),
 5485        C==D
 5486    ->  ( A=suspension(_, _, _, _, E, F),
 5487          setarg(2, A, removed),
 5488          term_variables(term(E, F), K),
 5489          ( arg(4, A, G),
 5490            (   var(G)
 5491            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5492                          H),
 5493                H=[_|I],
 5494                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5495                         I),
 5496                (   I=[J|_]
 5497                ->  setarg(4, J, _)
 5498                ;   true
 5499                )
 5500            ;   G=[_, _|I],
 5501                setarg(2, G, I),
 5502                (   I=[J|_]
 5503                ->  setarg(4, J, G)
 5504                ;   true
 5505                )
 5506            )
 5507          ),
 5508          'detach_known/1_1_$special_;/2___2'(K, A)
 5509        ),
 5510        ( arg(2, L, O),
 5511          setarg(2, L, active),
 5512          ( arg(3, L, M),
 5513            N is M+1,
 5514            setarg(3, L, N)
 5515          ),
 5516          (   O==not_stored_yet
 5517          ->  L=suspension(_, _, _, _, P),
 5518              term_variables(P, Q),
 5519              'chr none_locked'(Q),
 5520              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5521                          R),
 5522                S=[L|R],
 5523                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5524                         S),
 5525                (   R=[T|_]
 5526                ->  setarg(4, T, S)
 5527                ;   true
 5528                )
 5529              ),
 5530              'attach_known/1_1_$default___1'(Q, L)
 5531          ;   true
 5532          )
 5533        ),
 5534        known(U),
 5535        (   L=suspension(_, active, N, _, _)
 5536        ->  setarg(2, L, inactive),
 5537            'known/1_1_$default___1__0__0__6'(V, D, L)
 5538        ;   true
 5539        )
 5540    ;   'known/1_1_$default___1__0__0__6'(V, D, L)
 5541    ).
 5542'known/1_1_$default___1__0'(B, A) :-
 5543    (   var(A)
 5544    ->  A=suspension(C, not_stored_yet, 0, _, B),
 5545        'chr gen_id'(C)
 5546    ;   true
 5547    ),
 5548    'known/1_1_$default___1__1'(B, A).
 5549'known/1_1_$default___1__1'(A, E) :-
 5550    (   'chr newvia_1'(A, B)
 5551    ->  get_attr(B, guard_entailment, C),
 5552        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5553    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5554                  D)
 5555    ),
 5556    !,
 5557    'known/1_1_$default___1__1__0__7'(D, A, E).
 5558'known/1_1_$default___1__1__0__7'([], A, B) :-
 5559    'known/1_1_$default___1__2'(A, B).
 5560'known/1_1_$default___1__1__0__7'([A|W], E, M) :-
 5561    (   A=suspension(_, active, _, _, B, V),
 5562        nonvar(B),
 5563        B=(C, _),
 5564        nonvar(C),
 5565        C=(\+D),
 5566        D==E
 5567    ->  ( A=suspension(_, _, _, _, F, G),
 5568          setarg(2, A, removed),
 5569          term_variables(term(F, G), L),
 5570          ( arg(4, A, H),
 5571            (   var(H)
 5572            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5573                          I),
 5574                I=[_|J],
 5575                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5576                         J),
 5577                (   J=[K|_]
 5578                ->  setarg(4, K, _)
 5579                ;   true
 5580                )
 5581            ;   H=[_, _|J],
 5582                setarg(2, H, J),
 5583                (   J=[K|_]
 5584                ->  setarg(4, K, H)
 5585                ;   true
 5586                )
 5587            )
 5588          ),
 5589          'detach_known/1_1_$special_;/2___2'(L, A)
 5590        ),
 5591        ( arg(2, M, P),
 5592          setarg(2, M, active),
 5593          ( arg(3, M, N),
 5594            O is N+1,
 5595            setarg(3, M, O)
 5596          ),
 5597          (   P==not_stored_yet
 5598          ->  M=suspension(_, _, _, _, Q),
 5599              term_variables(Q, R),
 5600              'chr none_locked'(R),
 5601              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5602                          S),
 5603                T=[M|S],
 5604                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5605                         T),
 5606                (   S=[U|_]
 5607                ->  setarg(4, U, T)
 5608                ;   true
 5609                )
 5610              ),
 5611              'attach_known/1_1_$default___1'(R, M)
 5612          ;   true
 5613          )
 5614        ),
 5615        known(V),
 5616        (   M=suspension(_, active, O, _, _)
 5617        ->  setarg(2, M, inactive),
 5618            'known/1_1_$default___1__1__0__7'(W, E, M)
 5619        ;   true
 5620        )
 5621    ;   'known/1_1_$default___1__1__0__7'(W, E, M)
 5622    ).
 5623'known/1_1_$default___1__1'(A, B) :-
 5624    'known/1_1_$default___1__2'(A, B).
 5625'known/1_1_$default___1__2'(_, A) :-
 5626    arg(2, A, D),
 5627    setarg(2, A, active),
 5628    arg(3, A, B),
 5629    C is B+1,
 5630    setarg(3, A, C),
 5631    (   D==not_stored_yet
 5632    ->  A=suspension(_, _, _, _, E),
 5633        term_variables(E, F),
 5634        'chr none_locked'(F),
 5635        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5636                    G),
 5637          H=[A|G],
 5638          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5639                   H),
 5640          (   G=[I|_]
 5641          ->  setarg(4, I, H)
 5642          ;   true
 5643          )
 5644        ),
 5645        'attach_known/1_1_$default___1'(F, A)
 5646    ;   true
 5647    ).
 5648'known/1_1_$special_;/2'(A, B) :-
 5649    'known/1_1_$special_;/2___2__0'(A, B, _).
 5650'known/1_1_$special_;/2___2__0'(A, B, I) :-
 5651    (   'chr newvia_2'(A, B, C)
 5652    ->  get_attr(C, guard_entailment, D),
 5653        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5654    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5655                  E)
 5656    ),
 5657    member(F, E),
 5658    F=suspension(_, active, _, _, G, H),
 5659    G==A,
 5660    H==B,
 5661    !,
 5662    (   var(I)
 5663    ->  true
 5664    ;   I=suspension(_, J, _, _, K, L),
 5665        setarg(2, I, removed),
 5666        (   J==not_stored_yet
 5667        ->  M=[]
 5668        ;   term_variables(term(K, L), M),
 5669            ( arg(4, I, N),
 5670              (   var(N)
 5671              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5672                            O),
 5673                  O=[_|P],
 5674                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5675                           P),
 5676                  (   P=[Q|_]
 5677                  ->  setarg(4, Q, _)
 5678                  ;   true
 5679                  )
 5680              ;   N=[_, _|P],
 5681                  setarg(2, N, P),
 5682                  (   P=[Q|_]
 5683                  ->  setarg(4, Q, N)
 5684                  ;   true
 5685                  )
 5686              )
 5687            ),
 5688            'detach_known/1_1_$special_;/2___2'(M, I)
 5689        )
 5690    ).
 5691'known/1_1_$special_;/2___2__0'(_, _, C) :-
 5692    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 5693              A),
 5694    member(B, A),
 5695    B=suspension(_, active, _),
 5696    !,
 5697    (   var(C)
 5698    ->  true
 5699    ;   C=suspension(_, D, _, _, E, F),
 5700        setarg(2, C, removed),
 5701        (   D==not_stored_yet
 5702        ->  G=[]
 5703        ;   term_variables(term(E, F), G),
 5704            ( arg(4, C, H),
 5705              (   var(H)
 5706              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5707                            I),
 5708                  I=[_|J],
 5709                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5710                           J),
 5711                  (   J=[K|_]
 5712                  ->  setarg(4, K, _)
 5713                  ;   true
 5714                  )
 5715              ;   H=[_, _|J],
 5716                  setarg(2, H, J),
 5717                  (   J=[K|_]
 5718                  ->  setarg(4, K, H)
 5719                  ;   true
 5720                  )
 5721              )
 5722            ),
 5723            'detach_known/1_1_$special_;/2___2'(G, C)
 5724        )
 5725    ).
 5726'known/1_1_$special_;/2___2__0'(A, B, P) :-
 5727    (   'chr newvia_2'(A, B, C)
 5728    ->  get_attr(C, guard_entailment, D),
 5729        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
 5730    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5731                  E)
 5732    ),
 5733    member(F, E),
 5734    F=suspension(_, active, _, _, G),
 5735    nonvar(G),
 5736    G=(H;I),
 5737    H==A,
 5738    I==B,
 5739    !,
 5740    F=suspension(_, _, _, _, J),
 5741    setarg(2, F, removed),
 5742    term_variables(J, O),
 5743    arg(4, F, K),
 5744    (   var(K)
 5745    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5746                  L),
 5747        L=[_|M],
 5748        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5749                 M),
 5750        (   M=[N|_]
 5751        ->  setarg(4, N, _)
 5752        ;   true
 5753        )
 5754    ;   K=[_, _|M],
 5755        setarg(2, K, M),
 5756        (   M=[N|_]
 5757        ->  setarg(4, N, K)
 5758        ;   true
 5759        )
 5760    ),
 5761    'detach_known/1_1_$special_\\+/1___1'(O, F),
 5762    (   var(P)
 5763    ->  true
 5764    ;   P=suspension(_, Q, _, _, R, S),
 5765        setarg(2, P, removed),
 5766        (   Q==not_stored_yet
 5767        ->  T=[]
 5768        ;   term_variables(term(R, S), T),
 5769            ( arg(4, P, U),
 5770              (   var(U)
 5771              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5772                            V),
 5773                  V=[_|W],
 5774                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5775                           W),
 5776                  (   W=[X|_]
 5777                  ->  setarg(4, X, _)
 5778                  ;   true
 5779                  )
 5780              ;   U=[_, _|W],
 5781                  setarg(2, U, W),
 5782                  (   W=[X|_]
 5783                  ->  setarg(4, X, U)
 5784                  ;   true
 5785                  )
 5786              )
 5787            ),
 5788            'detach_known/1_1_$special_;/2___2'(T, P)
 5789        )
 5790    ),
 5791    'known/1_1_$special_fail/0'.
 5792'known/1_1_$special_;/2___2__0'(A, T, K) :-
 5793    nonvar(A),
 5794    A=(\+B),
 5795    nonvar(B),
 5796    B=(C;D),
 5797    (   'chr newvia_2'(C, D, E)
 5798    ->  get_attr(E, guard_entailment, F),
 5799        F=v(_, _, _, G, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5800    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5801                  G)
 5802    ),
 5803    member(H, G),
 5804    H=suspension(_, active, _, _, I, J),
 5805    I==C,
 5806    J==D,
 5807    !,
 5808    (   var(K)
 5809    ->  true
 5810    ;   K=suspension(_, L, _, _, M, N),
 5811        setarg(2, K, removed),
 5812        (   L==not_stored_yet
 5813        ->  O=[]
 5814        ;   term_variables(term(M, N), O),
 5815            ( arg(4, K, P),
 5816              (   var(P)
 5817              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5818                            Q),
 5819                  Q=[_|R],
 5820                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5821                           R),
 5822                  (   R=[S|_]
 5823                  ->  setarg(4, S, _)
 5824                  ;   true
 5825                  )
 5826              ;   P=[_, _|R],
 5827                  setarg(2, P, R),
 5828                  (   R=[S|_]
 5829                  ->  setarg(4, S, P)
 5830                  ;   true
 5831                  )
 5832              )
 5833            ),
 5834            'detach_known/1_1_$special_;/2___2'(O, K)
 5835        )
 5836    ),
 5837    known(T).
 5838'known/1_1_$special_;/2___2__0'(A, B, F) :-
 5839    (   'chr newvia_2'(A, B, C)
 5840    ->  get_attr(C, guard_entailment, D),
 5841        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5842    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5843                  E)
 5844    ),
 5845    !,
 5846    (   var(F)
 5847    ->  F=suspension(G, not_stored_yet, 0, _, A, B),
 5848        'chr gen_id'(G)
 5849    ;   true
 5850    ),
 5851    'known/1_1_$special_;/2___2__0__0__7'(E, A, B, F).
 5852'known/1_1_$special_;/2___2__0__0__7'([], A, B, C) :-
 5853    'known/1_1_$special_;/2___2__1'(A, B, C).
 5854'known/1_1_$special_;/2___2__0__0__7'([A|Z], E, G, O) :-
 5855    (   A=suspension(_, active, _, _, B, Y),
 5856        nonvar(B),
 5857        B=(\+C),
 5858        nonvar(C),
 5859        C=(D;F),
 5860        D==E,
 5861        F==G
 5862    ->  ( A=suspension(_, _, _, _, H, I),
 5863          setarg(2, A, removed),
 5864          term_variables(term(H, I), N),
 5865          ( arg(4, A, J),
 5866            (   var(J)
 5867            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5868                          K),
 5869                K=[_|L],
 5870                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5871                         L),
 5872                (   L=[M|_]
 5873                ->  setarg(4, M, _)
 5874                ;   true
 5875                )
 5876            ;   J=[_, _|L],
 5877                setarg(2, J, L),
 5878                (   L=[M|_]
 5879                ->  setarg(4, M, J)
 5880                ;   true
 5881                )
 5882            )
 5883          ),
 5884          'detach_known/1_1_$special_;/2___2'(N, A)
 5885        ),
 5886        ( arg(2, O, R),
 5887          setarg(2, O, active),
 5888          ( arg(3, O, P),
 5889            Q is P+1,
 5890            setarg(3, O, Q)
 5891          ),
 5892          (   R==not_stored_yet
 5893          ->  O=suspension(_, _, _, _, S, T),
 5894              term_variables(term(S, T), U),
 5895              'chr none_locked'(U),
 5896              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5897                          V),
 5898                W=[O|V],
 5899                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5900                         W),
 5901                (   V=[X|_]
 5902                ->  setarg(4, X, W)
 5903                ;   true
 5904                )
 5905              ),
 5906              'attach_known/1_1_$special_;/2___2'(U, O)
 5907          ;   true
 5908          )
 5909        ),
 5910        known(Y),
 5911        (   O=suspension(_, active, Q, _, _, _)
 5912        ->  setarg(2, O, inactive),
 5913            'known/1_1_$special_;/2___2__0__0__7'(Z,
 5914                                                  E,
 5915                                                  G,
 5916                                                  O)
 5917        ;   true
 5918        )
 5919    ;   'known/1_1_$special_;/2___2__0__0__7'(Z, E, G, O)
 5920    ).
 5921'known/1_1_$special_;/2___2__0'(B, C, A) :-
 5922    (   var(A)
 5923    ->  A=suspension(D, not_stored_yet, 0, _, B, C),
 5924        'chr gen_id'(D)
 5925    ;   true
 5926    ),
 5927    'known/1_1_$special_;/2___2__1'(B, C, A).
 5928'known/1_1_$special_;/2___2__1'(A, R, I) :-
 5929    nonvar(A),
 5930    (   A=(\+B),
 5931        (   nonvar(B),
 5932            (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   B=nonvar(C),
 5933                                                                                (   'chr newvia_1'(C,
 5934                                                                                                   D)
 5935                                                                                ->  get_attr(D,
 5936                                                                                             guard_entailment,
 5937                                                                                             E),
 5938                                                                                    E=v(_, _, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5939                                                                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 5940                                                                                              F)
 5941                                                                                ),
 5942                                                                                member(G,
 5943                                                                                       F),
 5944                                                                                G=suspension(_, active, _, _, H),
 5945                                                                                H==C,
 5946                                                                                !,
 5947                                                                                (   var(I)
 5948                                                                                ->  true
 5949                                                                                ;   I=suspension(_, J, _, _, K, L),
 5950                                                                                    setarg(2,
 5951                                                                                           I,
 5952                                                                                           removed),
 5953                                                                                    (   J==not_stored_yet
 5954                                                                                    ->  M=[]
 5955                                                                                    ;   term_variables(term(K,
 5956                                                                                                            L),
 5957                                                                                                       M),
 5958                                                                                        ( arg(4,
 5959                                                                                              I,
 5960                                                                                              N),
 5961                                                                                          (   var(N)
 5962                                                                                          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5963                                                                                                        O),
 5964                                                                                              O=[_|P],
 5965                                                                                              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5966                                                                                                       P),
 5967                                                                                              (   P=[Q|_]
 5968                                                                                              ->  setarg(4,
 5969                                                                                                         Q,
 5970                                                                                                         _)
 5971                                                                                              ;   true
 5972                                                                                              )
 5973                                                                                          ;   N=[_, _|P],
 5974                                                                                              setarg(2,
 5975                                                                                                     N,
 5976                                                                                                     P),
 5977                                                                                              (   P=[Q|_]
 5978                                                                                              ->  setarg(4,
 5979                                                                                                         Q,
 5980                                                                                                         N)
 5981                                                                                              ;   true
 5982                                                                                              )
 5983                                                                                          )
 5984                                                                                        ),
 5985                                                                                        'detach_known/1_1_$special_;/2___2'(M,
 5986                                                                                                                            I)
 5987                                                                                    )
 5988                                                                                ),
 5989                                                                                known(R)
 5990                                                                            ;   B=var(S),
 5991                                                                                (   'chr newvia_1'(S,
 5992                                                                                                   T)
 5993                                                                                ->  get_attr(T,
 5994                                                                                             guard_entailment,
 5995                                                                                             U),
 5996                                                                                    U=v(_, _, _, _, _, V, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5997                                                                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 5998                                                                                              V)
 5999                                                                                ),
 6000                                                                                member(W,
 6001                                                                                       V),
 6002                                                                                W=suspension(_, active, _, _, X),
 6003                                                                                X==S,
 6004                                                                                !,
 6005                                                                                (   var(I)
 6006                                                                                ->  true
 6007                                                                                ;   I=suspension(_, Y, _, _, Z, A1),
 6008                                                                                    setarg(2,
 6009                                                                                           I,
 6010                                                                                           removed),
 6011                                                                                    (   Y==not_stored_yet
 6012                                                                                    ->  B1=[]
 6013                                                                                    ;   term_variables(term(Z,
 6014                                                                                                            A1),
 6015                                                                                                       B1),
 6016                                                                                        ( arg(4,
 6017                                                                                              I,
 6018                                                                                              C1),
 6019                                                                                          (   var(C1)
 6020                                                                                          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6021                                                                                                        D1),
 6022                                                                                              D1=[_|E1],
 6023                                                                                              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6024                                                                                                       E1),
 6025                                                                                              (   E1=[F1|_]
 6026                                                                                              ->  setarg(4,
 6027                                                                                                         F1,
 6028                                                                                                         _)
 6029                                                                                              ;   true
 6030                                                                                              )
 6031                                                                                          ;   C1=[_, _|E1],
 6032                                                                                              setarg(2,
 6033                                                                                                     C1,
 6034                                                                                                     E1),
 6035                                                                                              (   E1=[F1|_]
 6036                                                                                              ->  setarg(4,
 6037                                                                                                         F1,
 6038                                                                                                         C1)
 6039                                                                                              ;   true
 6040                                                                                              )
 6041                                                                                          )
 6042                                                                                        ),
 6043                                                                                        'detach_known/1_1_$special_;/2___2'(B1,
 6044                                                                                                                            I)
 6045                                                                                    )
 6046                                                                                ),
 6047                                                                                known(R)
 6048                                                                            )
 6049                                                                        ;   B=atom(G1),
 6050                                                                            (   'chr newvia_1'(G1,
 6051                                                                                               H1)
 6052                                                                            ->  get_attr(H1,
 6053                                                                                         guard_entailment,
 6054                                                                                         I1),
 6055                                                                                I1=v(_, _, _, _, _, _, J1, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 6056                                                                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 6057                                                                                          J1)
 6058                                                                            ),
 6059                                                                            member(K1,
 6060                                                                                   J1),
 6061                                                                            K1=suspension(_, active, _, _, _, L1),
 6062                                                                            L1==G1,
 6063                                                                            !,
 6064                                                                            (   var(I)
 6065                                                                            ->  true
 6066                                                                            ;   I=suspension(_, M1, _, _, N1, O1),
 6067                                                                                setarg(2,
 6068                                                                                       I,
 6069                                                                                       removed),
 6070                                                                                (   M1==not_stored_yet
 6071                                                                                ->  P1=[]
 6072                                                                                ;   term_variables(term(N1,
 6073                                                                                                        O1),
 6074                                                                                                   P1),
 6075                                                                                    ( arg(4,
 6076                                                                                          I,
 6077                                                                                          Q1),
 6078                                                                                      (   var(Q1)
 6079                                                                                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6080                                                                                                    R1),
 6081                                                                                          R1=[_|S1],
 6082                                                                                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6083                                                                                                   S1),
 6084                                                                                          (   S1=[T1|_]
 6085                                                                                          ->  setarg(4,
 6086                                                                                                     T1,
 6087                                                                                                     _)
 6088                                                                                          ;   true
 6089                                                                                          )
 6090                                                                                      ;   Q1=[_, _|S1],
 6091                                                                                          setarg(2,
 6092                                                                                                 Q1,
 6093                                                                                                 S1),
 6094                                                                                          (   S1=[T1|_]
 6095                                                                                          ->  setarg(4,
 6096                                                                                                     T1,
 6097                                                                                                     Q1)
 6098                                                                                          ;   true
 6099                                                                                          )
 6100                                                                                      )
 6101                                                                                    ),
 6102                                                                                    'detach_known/1_1_$special_;/2___2'(P1,
 6103                                                                                                                        I)
 6104                                                                                )
 6105                                                                            ),
 6106                                                                            known(R)
 6107                                                                        )
 6108                                                                    ;   B=atomic(U1),
 6109                                                                        (   'chr newvia_1'(U1,
 6110                                                                                           V1)
 6111                                                                        ->  get_attr(V1,
 6112                                                                                     guard_entailment,
 6113                                                                                     W1),
 6114                                                                            W1=v(_, _, _, _, _, _, _, X1, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 6115                                                                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 6116                                                                                      X1)
 6117                                                                        ),
 6118                                                                        member(Y1,
 6119                                                                               X1),
 6120                                                                        Y1=suspension(_, active, _, _, _, Z1),
 6121                                                                        Z1==U1,
 6122                                                                        !,
 6123                                                                        (   var(I)
 6124                                                                        ->  true
 6125                                                                        ;   I=suspension(_, A2, _, _, B2, C2),
 6126                                                                            setarg(2,
 6127                                                                                   I,
 6128                                                                                   removed),
 6129                                                                            (   A2==not_stored_yet
 6130                                                                            ->  D2=[]
 6131                                                                            ;   term_variables(term(B2,
 6132                                                                                                    C2),
 6133                                                                                               D2),
 6134                                                                                ( arg(4,
 6135                                                                                      I,
 6136                                                                                      E2),
 6137                                                                                  (   var(E2)
 6138                                                                                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6139                                                                                                F2),
 6140                                                                                      F2=[_|G2],
 6141                                                                                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6142                                                                                               G2),
 6143                                                                                      (   G2=[H2|_]
 6144                                                                                      ->  setarg(4,
 6145                                                                                                 H2,
 6146                                                                                                 _)
 6147                                                                                      ;   true
 6148                                                                                      )
 6149                                                                                  ;   E2=[_, _|G2],
 6150                                                                                      setarg(2,
 6151                                                                                             E2,
 6152                                                                                             G2),
 6153                                                                                      (   G2=[H2|_]
 6154                                                                                      ->  setarg(4,
 6155                                                                                                 H2,
 6156                                                                                                 E2)
 6157                                                                                      ;   true
 6158                                                                                      )
 6159                                                                                  )
 6160                                                                                ),
 6161                                                                                'detach_known/1_1_$special_;/2___2'(D2,
 6162                                                                                                                    I)
 6163                                                                            )
 6164                                                                        ),
 6165                                                                        known(R)
 6166                                                                    )
 6167                                                                ;   B=compound(I2),
 6168                                                                    (   'chr newvia_1'(I2,
 6169                                                                                       J2)
 6170                                                                    ->  get_attr(J2,
 6171                                                                                 guard_entailment,
 6172                                                                                 K2),
 6173                                                                        K2=v(_, _, _, _, _, _, _, _, L2, _, _, _, _, _, _, _, _, _, _, _, _, _)
 6174                                                                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 6175                                                                                  L2)
 6176                                                                    ),
 6177                                                                    member(M2,
 6178                                                                           L2),
 6179                                                                    M2=suspension(_, active, _, _, _, N2),
 6180                                                                    N2==I2,
 6181                                                                    !,
 6182                                                                    (   var(I)
 6183                                                                    ->  true
 6184                                                                    ;   I=suspension(_, O2, _, _, P2, Q2),
 6185                                                                        setarg(2,
 6186                                                                               I,
 6187                                                                               removed),
 6188                                                                        (   O2==not_stored_yet
 6189                                                                        ->  R2=[]
 6190                                                                        ;   term_variables(term(P2,
 6191                                                                                                Q2),
 6192                                                                                           R2),
 6193                                                                            ( arg(4,
 6194                                                                                  I,
 6195                                                                                  S2),
 6196                                                                              (   var(S2)
 6197                                                                              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6198                                                                                            T2),
 6199                                                                                  T2=[_|U2],
 6200                                                                                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6201                                                                                           U2),
 6202                                                                                  (   U2=[V2|_]
 6203                                                                                  ->  setarg(4,
 6204                                                                                             V2,
 6205                                                                                             _)
 6206                                                                                  ;   true
 6207                                                                                  )
 6208                                                                              ;   S2=[_, _|U2],
 6209                                                                                  setarg(2,
 6210                                                                                         S2,
 6211                                                                                         U2),
 6212                                                                                  (   U2=[V2|_]
 6213                                                                                  ->  setarg(4,
 6214                                                                                             V2,
 6215                                                                                             S2)
 6216                                                                                  ;   true
 6217                                                                                  )
 6218                                                                              )
 6219                                                                            ),
 6220                                                                            'detach_known/1_1_$special_;/2___2'(R2,
 6221                                                                                                                I)
 6222                                                                        )
 6223                                                                    ),
 6224                                                                    known(R)
 6225                                                                )
 6226                                                            ;   B=ground(W2),
 6227                                                                (   'chr newvia_1'(W2,
 6228                                                                                   X2)
 6229                                                                ->  get_attr(X2,
 6230                                                                             guard_entailment,
 6231                                                                             Y2),
 6232                                                                    Y2=v(_, _, _, _, _, _, _, _, _, Z2, _, _, _, _, _, _, _, _, _, _, _, _)
 6233                                                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 6234                                                                              Z2)
 6235                                                                ),
 6236                                                                member(A3,
 6237                                                                       Z2),
 6238                                                                A3=suspension(_, active, _, _, _, B3),
 6239                                                                B3==W2,
 6240                                                                !,
 6241                                                                (   var(I)
 6242                                                                ->  true
 6243                                                                ;   I=suspension(_, C3, _, _, D3, E3),
 6244                                                                    setarg(2,
 6245                                                                           I,
 6246                                                                           removed),
 6247                                                                    (   C3==not_stored_yet
 6248                                                                    ->  F3=[]
 6249                                                                    ;   term_variables(term(D3,
 6250                                                                                            E3),
 6251                                                                                       F3),
 6252                                                                        ( arg(4,
 6253                                                                              I,
 6254                                                                              G3),
 6255                                                                          (   var(G3)
 6256                                                                          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6257                                                                                        H3),
 6258                                                                              H3=[_|I3],
 6259                                                                              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6260                                                                                       I3),
 6261                                                                              (   I3=[J3|_]
 6262                                                                              ->  setarg(4,
 6263                                                                                         J3,
 6264                                                                                         _)
 6265                                                                              ;   true
 6266                                                                              )
 6267                                                                          ;   G3=[_, _|I3],
 6268                                                                              setarg(2,
 6269                                                                                     G3,
 6270                                                                                     I3),
 6271                                                                              (   I3=[J3|_]
 6272                                                                              ->  setarg(4,
 6273                                                                                         J3,
 6274                                                                                         G3)
 6275                                                                              ;   true
 6276                                                                              )
 6277                                                                          )
 6278                                                                        ),
 6279                                                                        'detach_known/1_1_$special_;/2___2'(F3,
 6280                                                                                                            I)
 6281                                                                    )
 6282                                                                ),
 6283                                                                known(R)
 6284                                                            )
 6285                                                        ;   B=integer(K3),
 6286                                                            (   'chr newvia_1'(K3,
 6287                                                                               L3)
 6288                                                            ->  get_attr(L3,
 6289                                                                         guard_entailment,
 6290                                                                         M3),
 6291                                                                M3=v(_, _, _, _, _, _, _, _, _, _, N3, _, _, _, _, _, _, _, _, _, _, _)
 6292                                                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 6293                                                                          N3)
 6294                                                            ),
 6295                                                            member(O3,
 6296                                                                   N3),
 6297                                                            O3=suspension(_, active, _, _, _, P3),
 6298                                                            P3==K3,
 6299                                                            !,
 6300                                                            (   var(I)
 6301                                                            ->  true
 6302                                                            ;   I=suspension(_, Q3, _, _, R3, S3),
 6303                                                                setarg(2,
 6304                                                                       I,
 6305                                                                       removed),
 6306                                                                (   Q3==not_stored_yet
 6307                                                                ->  T3=[]
 6308                                                                ;   term_variables(term(R3,
 6309                                                                                        S3),
 6310                                                                                   T3),
 6311                                                                    ( arg(4,
 6312                                                                          I,
 6313                                                                          U3),
 6314                                                                      (   var(U3)
 6315                                                                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6316                                                                                    V3),
 6317                                                                          V3=[_|W3],
 6318                                                                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6319                                                                                   W3),
 6320                                                                          (   W3=[X3|_]
 6321                                                                          ->  setarg(4,
 6322                                                                                     X3,
 6323                                                                                     _)
 6324                                                                          ;   true
 6325                                                                          )
 6326                                                                      ;   U3=[_, _|W3],
 6327                                                                          setarg(2,
 6328                                                                                 U3,
 6329                                                                                 W3),
 6330                                                                          (   W3=[X3|_]
 6331                                                                          ->  setarg(4,
 6332                                                                                     X3,
 6333                                                                                     U3)
 6334                                                                          ;   true
 6335                                                                          )
 6336                                                                      )
 6337                                                                    ),
 6338                                                                    'detach_known/1_1_$special_;/2___2'(T3,
 6339                                                                                                        I)
 6340                                                                )
 6341                                                            ),
 6342                                                            known(R)
 6343                                                        )
 6344                                                    ;   B=float(Y3),
 6345                                                        (   'chr newvia_1'(Y3,
 6346                                                                           Z3)
 6347                                                        ->  get_attr(Z3,
 6348                                                                     guard_entailment,
 6349                                                                     A4),
 6350                                                            A4=v(_, _, _, _, _, _, _, _, _, _, _, B4, _, _, _, _, _, _, _, _, _, _)
 6351                                                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 6352                                                                      B4)
 6353                                                        ),
 6354                                                        member(C4,
 6355                                                               B4),
 6356                                                        C4=suspension(_, active, _, _, _, D4),
 6357                                                        D4==Y3,
 6358                                                        !,
 6359                                                        (   var(I)
 6360                                                        ->  true
 6361                                                        ;   I=suspension(_, E4, _, _, F4, G4),
 6362                                                            setarg(2,
 6363                                                                   I,
 6364                                                                   removed),
 6365                                                            (   E4==not_stored_yet
 6366                                                            ->  H4=[]
 6367                                                            ;   term_variables(term(F4,
 6368                                                                                    G4),
 6369                                                                               H4),
 6370                                                                ( arg(4,
 6371                                                                      I,
 6372                                                                      I4),
 6373                                                                  (   var(I4)
 6374                                                                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6375                                                                                J4),
 6376                                                                      J4=[_|K4],
 6377                                                                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6378                                                                               K4),
 6379                                                                      (   K4=[L4|_]
 6380                                                                      ->  setarg(4,
 6381                                                                                 L4,
 6382                                                                                 _)
 6383                                                                      ;   true
 6384                                                                      )
 6385                                                                  ;   I4=[_, _|K4],
 6386                                                                      setarg(2,
 6387                                                                             I4,
 6388                                                                             K4),
 6389                                                                      (   K4=[L4|_]
 6390                                                                      ->  setarg(4,
 6391                                                                                 L4,
 6392                                                                                 I4)
 6393                                                                      ;   true
 6394                                                                      )
 6395                                                                  )
 6396                                                                ),
 6397                                                                'detach_known/1_1_$special_;/2___2'(H4,
 6398                                                                                                    I)
 6399                                                            )
 6400                                                        ),
 6401                                                        known(R)
 6402                                                    )
 6403                                                ;   B=number(M4),
 6404                                                    (   'chr newvia_1'(M4,
 6405                                                                       N4)
 6406                                                    ->  get_attr(N4,
 6407                                                                 guard_entailment,
 6408                                                                 O4),
 6409                                                        O4=v(_, _, _, _, _, _, _, _, _, _, _, _, P4, _, _, _, _, _, _, _, _, _)
 6410                                                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 6411                                                                  P4)
 6412                                                    ),
 6413                                                    member(Q4,
 6414                                                           P4),
 6415                                                    Q4=suspension(_, active, _, _, _, R4),
 6416                                                    R4==M4,
 6417                                                    !,
 6418                                                    (   var(I)
 6419                                                    ->  true
 6420                                                    ;   I=suspension(_, S4, _, _, T4, U4),
 6421                                                        setarg(2,
 6422                                                               I,
 6423                                                               removed),
 6424                                                        (   S4==not_stored_yet
 6425                                                        ->  V4=[]
 6426                                                        ;   term_variables(term(T4,
 6427                                                                                U4),
 6428                                                                           V4),
 6429                                                            ( arg(4,
 6430                                                                  I,
 6431                                                                  W4),
 6432                                                              (   var(W4)
 6433                                                              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6434                                                                            X4),
 6435                                                                  X4=[_|Y4],
 6436                                                                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6437                                                                           Y4),
 6438                                                                  (   Y4=[Z4|_]
 6439                                                                  ->  setarg(4,
 6440                                                                             Z4,
 6441                                                                             _)
 6442                                                                  ;   true
 6443                                                                  )
 6444                                                              ;   W4=[_, _|Y4],
 6445                                                                  setarg(2,
 6446                                                                         W4,
 6447                                                                         Y4),
 6448                                                                  (   Y4=[Z4|_]
 6449                                                                  ->  setarg(4,
 6450                                                                             Z4,
 6451                                                                             W4)
 6452                                                                  ;   true
 6453                                                                  )
 6454                                                              )
 6455                                                            ),
 6456                                                            'detach_known/1_1_$special_;/2___2'(V4,
 6457                                                                                                I)
 6458                                                        )
 6459                                                    ),
 6460                                                    known(R)
 6461                                                )
 6462                                            ;   B=(A5=\=B5),
 6463                                                (   'chr newvia_2'(A5,
 6464                                                                   B5,
 6465                                                                   C5)
 6466                                                ->  get_attr(C5,
 6467                                                             guard_entailment,
 6468                                                             D5),
 6469                                                    D5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, E5, _, _, _, _, _, _, _, _)
 6470                                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 6471                                                              E5)
 6472                                                ),
 6473                                                member(F5, E5),
 6474                                                F5=suspension(_, active, _, _, _, G5, H5),
 6475                                                G5==A5,
 6476                                                H5==B5,
 6477                                                !,
 6478                                                (   var(I)
 6479                                                ->  true
 6480                                                ;   I=suspension(_, I5, _, _, J5, K5),
 6481                                                    setarg(2, I, removed),
 6482                                                    (   I5==not_stored_yet
 6483                                                    ->  L5=[]
 6484                                                    ;   term_variables(term(J5,
 6485                                                                            K5),
 6486                                                                       L5),
 6487                                                        ( arg(4,
 6488                                                              I,
 6489                                                              M5),
 6490                                                          (   var(M5)
 6491                                                          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6492                                                                        N5),
 6493                                                              N5=[_|O5],
 6494                                                              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6495                                                                       O5),
 6496                                                              (   O5=[P5|_]
 6497                                                              ->  setarg(4,
 6498                                                                         P5,
 6499                                                                         _)
 6500                                                              ;   true
 6501                                                              )
 6502                                                          ;   M5=[_, _|O5],
 6503                                                              setarg(2,
 6504                                                                     M5,
 6505                                                                     O5),
 6506                                                              (   O5=[P5|_]
 6507                                                              ->  setarg(4,
 6508                                                                         P5,
 6509                                                                         M5)
 6510                                                              ;   true
 6511                                                              )
 6512                                                          )
 6513                                                        ),
 6514                                                        'detach_known/1_1_$special_;/2___2'(L5,
 6515                                                                                            I)
 6516                                                    )
 6517                                                ),
 6518                                                known(R)
 6519                                            )
 6520                                        ;   B=(\+Q5),
 6521                                            (   'chr newvia_1'(Q5,
 6522                                                               R5)
 6523                                            ->  get_attr(R5,
 6524                                                         guard_entailment,
 6525                                                         S5),
 6526                                                S5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, T5, _, _, _, _, _, _, _)
 6527                                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 6528                                                          T5)
 6529                                            ),
 6530                                            member(U5, T5),
 6531                                            U5=suspension(_, active, _, _, V5),
 6532                                            V5==Q5,
 6533                                            !,
 6534                                            (   var(I)
 6535                                            ->  true
 6536                                            ;   I=suspension(_, W5, _, _, X5, Y5),
 6537                                                setarg(2, I, removed),
 6538                                                (   W5==not_stored_yet
 6539                                                ->  Z5=[]
 6540                                                ;   term_variables(term(X5,
 6541                                                                        Y5),
 6542                                                                   Z5),
 6543                                                    ( arg(4, I, A6),
 6544                                                      (   var(A6)
 6545                                                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6546                                                                    B6),
 6547                                                          B6=[_|C6],
 6548                                                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6549                                                                   C6),
 6550                                                          (   C6=[D6|_]
 6551                                                          ->  setarg(4,
 6552                                                                     D6,
 6553                                                                     _)
 6554                                                          ;   true
 6555                                                          )
 6556                                                      ;   A6=[_, _|C6],
 6557                                                          setarg(2,
 6558                                                                 A6,
 6559                                                                 C6),
 6560                                                          (   C6=[D6|_]
 6561                                                          ->  setarg(4,
 6562                                                                     D6,
 6563                                                                     A6)
 6564                                                          ;   true
 6565                                                          )
 6566                                                      )
 6567                                                    ),
 6568                                                    'detach_known/1_1_$special_;/2___2'(Z5,
 6569                                                                                        I)
 6570                                                )
 6571                                            ),
 6572                                            known(R)
 6573                                        )
 6574                                    ;   B=functor(E6, F6, G6),
 6575                                        (   'chr newvia'(
 6576                                                         [ E6,
 6577                                                           F6,
 6578                                                           G6
 6579                                                         ],
 6580                                                         H6)
 6581                                        ->  get_attr(H6,
 6582                                                     guard_entailment,
 6583                                                     I6),
 6584                                            I6=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, J6, _, _, _, _, _, _)
 6585                                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 6586                                                      J6)
 6587                                        ),
 6588                                        member(K6, J6),
 6589                                        K6=suspension(_, active, _, _, L6, M6, N6),
 6590                                        L6==E6,
 6591                                        M6==F6,
 6592                                        N6==G6,
 6593                                        !,
 6594                                        (   var(I)
 6595                                        ->  true
 6596                                        ;   I=suspension(_, O6, _, _, P6, Q6),
 6597                                            setarg(2, I, removed),
 6598                                            (   O6==not_stored_yet
 6599                                            ->  R6=[]
 6600                                            ;   term_variables(term(P6,
 6601                                                                    Q6),
 6602                                                               R6),
 6603                                                ( arg(4, I, S6),
 6604                                                  (   var(S6)
 6605                                                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6606                                                                T6),
 6607                                                      T6=[_|U6],
 6608                                                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6609                                                               U6),
 6610                                                      (   U6=[V6|_]
 6611                                                      ->  setarg(4,
 6612                                                                 V6,
 6613                                                                 _)
 6614                                                      ;   true
 6615                                                      )
 6616                                                  ;   S6=[_, _|U6],
 6617                                                      setarg(2,
 6618                                                             S6,
 6619                                                             U6),
 6620                                                      (   U6=[V6|_]
 6621                                                      ->  setarg(4,
 6622                                                                 V6,
 6623                                                                 S6)
 6624                                                      ;   true
 6625                                                      )
 6626                                                  )
 6627                                                ),
 6628                                                'detach_known/1_1_$special_;/2___2'(R6,
 6629                                                                                    I)
 6630                                            )
 6631                                        ),
 6632                                        known(R)
 6633                                    )
 6634                                ;   B=(W6\=X6),
 6635                                    (   'chr newvia_2'(W6,
 6636                                                       X6,
 6637                                                       Y6)
 6638                                    ->  get_attr(Y6,
 6639                                                 guard_entailment,
 6640                                                 Z6),
 6641                                        Z6=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, A7, _, _, _, _, _)
 6642                                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 6643                                                  A7)
 6644                                    ),
 6645                                    member(B7, A7),
 6646                                    B7=suspension(_, active, _, _, _, C7, D7),
 6647                                    C7==W6,
 6648                                    D7==X6,
 6649                                    !,
 6650                                    (   var(I)
 6651                                    ->  true
 6652                                    ;   I=suspension(_, E7, _, _, F7, G7),
 6653                                        setarg(2, I, removed),
 6654                                        (   E7==not_stored_yet
 6655                                        ->  H7=[]
 6656                                        ;   term_variables(term(F7,
 6657                                                                G7),
 6658                                                           H7),
 6659                                            ( arg(4, I, I7),
 6660                                              (   var(I7)
 6661                                              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6662                                                            J7),
 6663                                                  J7=[_|K7],
 6664                                                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6665                                                           K7),
 6666                                                  (   K7=[L7|_]
 6667                                                  ->  setarg(4,
 6668                                                             L7,
 6669                                                             _)
 6670                                                  ;   true
 6671                                                  )
 6672                                              ;   I7=[_, _|K7],
 6673                                                  setarg(2,
 6674                                                         I7,
 6675                                                         K7),
 6676                                                  (   K7=[L7|_]
 6677                                                  ->  setarg(4,
 6678                                                             L7,
 6679                                                             I7)
 6680                                                  ;   true
 6681                                                  )
 6682                                              )
 6683                                            ),
 6684                                            'detach_known/1_1_$special_;/2___2'(H7,
 6685                                                                                I)
 6686                                        )
 6687                                    ),
 6688                                    known(R)
 6689                                )
 6690                            ;   B=(M7=N7),
 6691                                (   'chr newvia_2'(M7,
 6692                                                   N7,
 6693                                                   O7)
 6694                                ->  get_attr(O7,
 6695                                             guard_entailment,
 6696                                             P7),
 6697                                    P7=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, Q7, _, _, _, _)
 6698                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 6699                                              Q7)
 6700                                ),
 6701                                member(R7, Q7),
 6702                                R7=suspension(_, active, _, _, S7, T7),
 6703                                S7==M7,
 6704                                T7==N7,
 6705                                !,
 6706                                (   var(I)
 6707                                ->  true
 6708                                ;   I=suspension(_, U7, _, _, V7, W7),
 6709                                    setarg(2, I, removed),
 6710                                    (   U7==not_stored_yet
 6711                                    ->  X7=[]
 6712                                    ;   term_variables(term(V7,
 6713                                                            W7),
 6714                                                       X7),
 6715                                        ( arg(4, I, Y7),
 6716                                          (   var(Y7)
 6717                                          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6718                                                        Z7),
 6719                                              Z7=[_|A8],
 6720                                              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6721                                                       A8),
 6722                                              (   A8=[B8|_]
 6723                                              ->  setarg(4, B8, _)
 6724                                              ;   true
 6725                                              )
 6726                                          ;   Y7=[_, _|A8],
 6727                                              setarg(2, Y7, A8),
 6728                                              (   A8=[B8|_]
 6729                                              ->  setarg(4,
 6730                                                         B8,
 6731                                                         Y7)
 6732                                              ;   true
 6733                                              )
 6734                                          )
 6735                                        ),
 6736                                        'detach_known/1_1_$special_;/2___2'(X7,
 6737                                                                            I)
 6738                                    )
 6739                                ),
 6740                                known(R)
 6741                            )
 6742                        ;   B=(C8\==D8),
 6743                            (   'chr newvia_2'(C8, D8, E8)
 6744                            ->  get_attr(E8, guard_entailment, F8),
 6745                                F8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, G8, _, _, _)
 6746                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 6747                                          G8)
 6748                            ),
 6749                            member(H8, G8),
 6750                            H8=suspension(_, active, _, _, _, I8, J8),
 6751                            I8==C8,
 6752                            J8==D8,
 6753                            !,
 6754                            (   var(I)
 6755                            ->  true
 6756                            ;   I=suspension(_, K8, _, _, L8, M8),
 6757                                setarg(2, I, removed),
 6758                                (   K8==not_stored_yet
 6759                                ->  N8=[]
 6760                                ;   term_variables(term(L8, M8),
 6761                                                   N8),
 6762                                    ( arg(4, I, O8),
 6763                                      (   var(O8)
 6764                                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6765                                                    P8),
 6766                                          P8=[_|Q8],
 6767                                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6768                                                   Q8),
 6769                                          (   Q8=[R8|_]
 6770                                          ->  setarg(4, R8, _)
 6771                                          ;   true
 6772                                          )
 6773                                      ;   O8=[_, _|Q8],
 6774                                          setarg(2, O8, Q8),
 6775                                          (   Q8=[R8|_]
 6776                                          ->  setarg(4, R8, O8)
 6777                                          ;   true
 6778                                          )
 6779                                      )
 6780                                    ),
 6781                                    'detach_known/1_1_$special_;/2___2'(N8,
 6782                                                                        I)
 6783                                )
 6784                            ),
 6785                            known(R)
 6786                        )
 6787                    ;   B=(S8==T8),
 6788                        (   'chr newvia_2'(S8, T8, U8)
 6789                        ->  get_attr(U8, guard_entailment, V8),
 6790                            V8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, W8, _, _)
 6791                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 6792                                      W8)
 6793                        ),
 6794                        member(X8, W8),
 6795                        X8=suspension(_, active, _, _, _, Y8, Z8),
 6796                        Y8==S8,
 6797                        Z8==T8,
 6798                        !,
 6799                        (   var(I)
 6800                        ->  true
 6801                        ;   I=suspension(_, A9, _, _, B9, C9),
 6802                            setarg(2, I, removed),
 6803                            (   A9==not_stored_yet
 6804                            ->  D9=[]
 6805                            ;   term_variables(term(B9, C9),
 6806                                               D9),
 6807                                ( arg(4, I, E9),
 6808                                  (   var(E9)
 6809                                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6810                                                F9),
 6811                                      F9=[_|G9],
 6812                                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6813                                               G9),
 6814                                      (   G9=[H9|_]
 6815                                      ->  setarg(4, H9, _)
 6816                                      ;   true
 6817                                      )
 6818                                  ;   E9=[_, _|G9],
 6819                                      setarg(2, E9, G9),
 6820                                      (   G9=[H9|_]
 6821                                      ->  setarg(4, H9, E9)
 6822                                      ;   true
 6823                                      )
 6824                                  )
 6825                                ),
 6826                                'detach_known/1_1_$special_;/2___2'(D9,
 6827                                                                    I)
 6828                            )
 6829                        ),
 6830                        known(R)
 6831                    )
 6832                ;   B=(I9=<J9),
 6833                    (   'chr newvia_2'(I9, J9, K9)
 6834                    ->  get_attr(K9, guard_entailment, L9),
 6835                        L9=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, M9, _)
 6836                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 6837                                  M9)
 6838                    ),
 6839                    member(N9, M9),
 6840                    N9=suspension(_, active, _, _, _, O9, P9),
 6841                    O9==I9,
 6842                    P9==J9,
 6843                    !,
 6844                    (   var(I)
 6845                    ->  true
 6846                    ;   I=suspension(_, Q9, _, _, R9, S9),
 6847                        setarg(2, I, removed),
 6848                        (   Q9==not_stored_yet
 6849                        ->  T9=[]
 6850                        ;   term_variables(term(R9, S9),
 6851                                           T9),
 6852                            ( arg(4, I, U9),
 6853                              (   var(U9)
 6854                              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6855                                            V9),
 6856                                  V9=[_|W9],
 6857                                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6858                                           W9),
 6859                                  (   W9=[X9|_]
 6860                                  ->  setarg(4, X9, _)
 6861                                  ;   true
 6862                                  )
 6863                              ;   U9=[_, _|W9],
 6864                                  setarg(2, U9, W9),
 6865                                  (   W9=[X9|_]
 6866                                  ->  setarg(4, X9, U9)
 6867                                  ;   true
 6868                                  )
 6869                              )
 6870                            ),
 6871                            'detach_known/1_1_$special_;/2___2'(T9,
 6872                                                                I)
 6873                        )
 6874                    ),
 6875                    known(R)
 6876                )
 6877            ;   B=(Y9=:=Z9),
 6878                (   'chr newvia_2'(Y9, Z9, A10)
 6879                ->  get_attr(A10, guard_entailment, B10),
 6880                    B10=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C10)
 6881                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 6882                              C10)
 6883                ),
 6884                member(D10, C10),
 6885                D10=suspension(_, active, _, _, _, E10, F10),
 6886                E10==Y9,
 6887                F10==Z9,
 6888                !,
 6889                (   var(I)
 6890                ->  true
 6891                ;   I=suspension(_, G10, _, _, H10, I10),
 6892                    setarg(2, I, removed),
 6893                    (   G10==not_stored_yet
 6894                    ->  J10=[]
 6895                    ;   term_variables(term(H10, I10), J10),
 6896                        ( arg(4, I, K10),
 6897                          (   var(K10)
 6898                          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6899                                        L10),
 6900                              L10=[_|M10],
 6901                              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6902                                       M10),
 6903                              (   M10=[N10|_]
 6904                              ->  setarg(4, N10, _)
 6905                              ;   true
 6906                              )
 6907                          ;   K10=[_, _|M10],
 6908                              setarg(2, K10, M10),
 6909                              (   M10=[N10|_]
 6910                              ->  setarg(4, N10, K10)
 6911                              ;   true
 6912                              )
 6913                          )
 6914                        ),
 6915                        'detach_known/1_1_$special_;/2___2'(J10, I)
 6916                    )
 6917                ),
 6918                known(R)
 6919            )
 6920        ;   (   'chr newvia_1'(B, O10)
 6921            ->  get_attr(O10, guard_entailment, P10),
 6922                P10=v(_, _, Q10, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 6923            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 6924                          Q10)
 6925            ),
 6926            member(R10, Q10),
 6927            R10=suspension(_, active, _, _, S10),
 6928            S10==B,
 6929            !,
 6930            (   var(I)
 6931            ->  true
 6932            ;   I=suspension(_, T10, _, _, U10, V10),
 6933                setarg(2, I, removed),
 6934                (   T10==not_stored_yet
 6935                ->  W10=[]
 6936                ;   term_variables(term(U10, V10), W10),
 6937                    ( arg(4, I, X10),
 6938                      (   var(X10)
 6939                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6940                                    Y10),
 6941                          Y10=[_|Z10],
 6942                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6943                                   Z10),
 6944                          (   Z10=[A11|_]
 6945                          ->  setarg(4, A11, _)
 6946                          ;   true
 6947                          )
 6948                      ;   X10=[_, _|Z10],
 6949                          setarg(2, X10, Z10),
 6950                          (   Z10=[A11|_]
 6951                          ->  setarg(4, A11, X10)
 6952                          ;   true
 6953                          )
 6954                      )
 6955                    ),
 6956                    'detach_known/1_1_$special_;/2___2'(W10, I)
 6957                )
 6958            ),
 6959            known(R)
 6960        )
 6961    ;   A=(B11, _),
 6962        nonvar(B11),
 6963        B11=(\+C11),
 6964        nonvar(C11),
 6965        C11=(D11;E11),
 6966        (   'chr newvia_2'(D11, E11, F11)
 6967        ->  get_attr(F11, guard_entailment, G11),
 6968            G11=v(_, _, _, H11, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 6969        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6970                      H11)
 6971        ),
 6972        member(I11, H11),
 6973        I11=suspension(_, active, _, _, J11, K11),
 6974        J11==D11,
 6975        K11==E11,
 6976        !,
 6977        (   var(I)
 6978        ->  true
 6979        ;   I=suspension(_, L11, _, _, M11, N11),
 6980            setarg(2, I, removed),
 6981            (   L11==not_stored_yet
 6982            ->  O11=[]
 6983            ;   term_variables(term(M11, N11), O11),
 6984                ( arg(4, I, P11),
 6985                  (   var(P11)
 6986                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6987                                Q11),
 6988                      Q11=[_|R11],
 6989                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6990                               R11),
 6991                      (   R11=[S11|_]
 6992                      ->  setarg(4, S11, _)
 6993                      ;   true
 6994                      )
 6995                  ;   P11=[_, _|R11],
 6996                      setarg(2, P11, R11),
 6997                      (   R11=[S11|_]
 6998                      ->  setarg(4, S11, P11)
 6999                      ;   true
 7000                      )
 7001                  )
 7002                ),
 7003                'detach_known/1_1_$special_;/2___2'(O11, I)
 7004            )
 7005        ),
 7006        known(R)
 7007    ).
 7008'known/1_1_$special_;/2___2__1'(A, B, F) :-
 7009    (   'chr newvia_2'(A, B, C)
 7010    ->  get_attr(C, guard_entailment, D),
 7011        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 7012    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7013                  E)
 7014    ),
 7015    !,
 7016    'known/1_1_$special_;/2___2__1__0__34'(E, A, B, F).
 7017'known/1_1_$special_;/2___2__1__0__34'([], A, B, C) :-
 7018    'known/1_1_$special_;/2___2__2'(A, B, C).
 7019'known/1_1_$special_;/2___2__1__0__34'([A|A1], F, H, P) :-
 7020    (   A=suspension(_, active, _, _, B, Z),
 7021        nonvar(B),
 7022        B=(C, _),
 7023        nonvar(C),
 7024        C=(\+D),
 7025        nonvar(D),
 7026        D=(E;G),
 7027        E==F,
 7028        G==H
 7029    ->  ( A=suspension(_, _, _, _, I, J),
 7030          setarg(2, A, removed),
 7031          term_variables(term(I, J), O),
 7032          ( arg(4, A, K),
 7033            (   var(K)
 7034            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7035                          L),
 7036                L=[_|M],
 7037                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7038                         M),
 7039                (   M=[N|_]
 7040                ->  setarg(4, N, _)
 7041                ;   true
 7042                )
 7043            ;   K=[_, _|M],
 7044                setarg(2, K, M),
 7045                (   M=[N|_]
 7046                ->  setarg(4, N, K)
 7047                ;   true
 7048                )
 7049            )
 7050          ),
 7051          'detach_known/1_1_$special_;/2___2'(O, A)
 7052        ),
 7053        ( arg(2, P, S),
 7054          setarg(2, P, active),
 7055          ( arg(3, P, Q),
 7056            R is Q+1,
 7057            setarg(3, P, R)
 7058          ),
 7059          (   S==not_stored_yet
 7060          ->  P=suspension(_, _, _, _, T, U),
 7061              term_variables(term(T, U), V),
 7062              'chr none_locked'(V),
 7063              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7064                          W),
 7065                X=[P|W],
 7066                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7067                         X),
 7068                (   W=[Y|_]
 7069                ->  setarg(4, Y, X)
 7070                ;   true
 7071                )
 7072              ),
 7073              'attach_known/1_1_$special_;/2___2'(V, P)
 7074          ;   true
 7075          )
 7076        ),
 7077        known(Z),
 7078        (   P=suspension(_, active, R, _, _, _)
 7079        ->  setarg(2, P, inactive),
 7080            'known/1_1_$special_;/2___2__1__0__34'(A1,
 7081                                                   F,
 7082                                                   H,
 7083                                                   P)
 7084        ;   true
 7085        )
 7086    ;   'known/1_1_$special_;/2___2__1__0__34'(A1,
 7087                                               F,
 7088                                               H,
 7089                                               P)
 7090    ).
 7091'known/1_1_$special_;/2___2__1'(A, B, C) :-
 7092    'known/1_1_$special_;/2___2__2'(A, B, C).
 7093'known/1_1_$special_;/2___2__2'(A, S, J) :-
 7094    ( nonvar(A),
 7095      A=(B, _),
 7096      nonvar(B),
 7097      B=(\+C)
 7098    ),
 7099    (   nonvar(C),
 7100        (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   C=nonvar(D),
 7101                                                                            (   'chr newvia_1'(D,
 7102                                                                                               E)
 7103                                                                            ->  get_attr(E,
 7104                                                                                         guard_entailment,
 7105                                                                                         F),
 7106                                                                                F=v(_, _, _, _, G, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 7107                                                                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 7108                                                                                          G)
 7109                                                                            ),
 7110                                                                            member(H,
 7111                                                                                   G),
 7112                                                                            H=suspension(_, active, _, _, I),
 7113                                                                            I==D,
 7114                                                                            !,
 7115                                                                            (   var(J)
 7116                                                                            ->  true
 7117                                                                            ;   J=suspension(_, K, _, _, L, M),
 7118                                                                                setarg(2,
 7119                                                                                       J,
 7120                                                                                       removed),
 7121                                                                                (   K==not_stored_yet
 7122                                                                                ->  N=[]
 7123                                                                                ;   term_variables(term(L,
 7124                                                                                                        M),
 7125                                                                                                   N),
 7126                                                                                    ( arg(4,
 7127                                                                                          J,
 7128                                                                                          O),
 7129                                                                                      (   var(O)
 7130                                                                                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7131                                                                                                    P),
 7132                                                                                          P=[_|Q],
 7133                                                                                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7134                                                                                                   Q),
 7135                                                                                          (   Q=[R|_]
 7136                                                                                          ->  setarg(4,
 7137                                                                                                     R,
 7138                                                                                                     _)
 7139                                                                                          ;   true
 7140                                                                                          )
 7141                                                                                      ;   O=[_, _|Q],
 7142                                                                                          setarg(2,
 7143                                                                                                 O,
 7144                                                                                                 Q),
 7145                                                                                          (   Q=[R|_]
 7146                                                                                          ->  setarg(4,
 7147                                                                                                     R,
 7148                                                                                                     O)
 7149                                                                                          ;   true
 7150                                                                                          )
 7151                                                                                      )
 7152                                                                                    ),
 7153                                                                                    'detach_known/1_1_$special_;/2___2'(N,
 7154                                                                                                                        J)
 7155                                                                                )
 7156                                                                            ),
 7157                                                                            known(S)
 7158                                                                        ;   C=var(T),
 7159                                                                            (   'chr newvia_1'(T,
 7160                                                                                               U)
 7161                                                                            ->  get_attr(U,
 7162                                                                                         guard_entailment,
 7163                                                                                         V),
 7164                                                                                V=v(_, _, _, _, _, W, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 7165                                                                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 7166                                                                                          W)
 7167                                                                            ),
 7168                                                                            member(X,
 7169                                                                                   W),
 7170                                                                            X=suspension(_, active, _, _, Y),
 7171                                                                            Y==T,
 7172                                                                            !,
 7173                                                                            (   var(J)
 7174                                                                            ->  true
 7175                                                                            ;   J=suspension(_, Z, _, _, A1, B1),
 7176                                                                                setarg(2,
 7177                                                                                       J,
 7178                                                                                       removed),
 7179                                                                                (   Z==not_stored_yet
 7180                                                                                ->  C1=[]
 7181                                                                                ;   term_variables(term(A1,
 7182                                                                                                        B1),
 7183                                                                                                   C1),
 7184                                                                                    ( arg(4,
 7185                                                                                          J,
 7186                                                                                          D1),
 7187                                                                                      (   var(D1)
 7188                                                                                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7189                                                                                                    E1),
 7190                                                                                          E1=[_|F1],
 7191                                                                                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7192                                                                                                   F1),
 7193                                                                                          (   F1=[G1|_]
 7194                                                                                          ->  setarg(4,
 7195                                                                                                     G1,
 7196                                                                                                     _)
 7197                                                                                          ;   true
 7198                                                                                          )
 7199                                                                                      ;   D1=[_, _|F1],
 7200                                                                                          setarg(2,
 7201                                                                                                 D1,
 7202                                                                                                 F1),
 7203                                                                                          (   F1=[G1|_]
 7204                                                                                          ->  setarg(4,
 7205                                                                                                     G1,
 7206                                                                                                     D1)
 7207                                                                                          ;   true
 7208                                                                                          )
 7209                                                                                      )
 7210                                                                                    ),
 7211                                                                                    'detach_known/1_1_$special_;/2___2'(C1,
 7212                                                                                                                        J)
 7213                                                                                )
 7214                                                                            ),
 7215                                                                            known(S)
 7216                                                                        )
 7217                                                                    ;   C=atom(H1),
 7218                                                                        (   'chr newvia_1'(H1,
 7219                                                                                           I1)
 7220                                                                        ->  get_attr(I1,
 7221                                                                                     guard_entailment,
 7222                                                                                     J1),
 7223                                                                            J1=v(_, _, _, _, _, _, K1, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 7224                                                                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 7225                                                                                      K1)
 7226                                                                        ),
 7227                                                                        member(L1,
 7228                                                                               K1),
 7229                                                                        L1=suspension(_, active, _, _, _, M1),
 7230                                                                        M1==H1,
 7231                                                                        !,
 7232                                                                        (   var(J)
 7233                                                                        ->  true
 7234                                                                        ;   J=suspension(_, N1, _, _, O1, P1),
 7235                                                                            setarg(2,
 7236                                                                                   J,
 7237                                                                                   removed),
 7238                                                                            (   N1==not_stored_yet
 7239                                                                            ->  Q1=[]
 7240                                                                            ;   term_variables(term(O1,
 7241                                                                                                    P1),
 7242                                                                                               Q1),
 7243                                                                                ( arg(4,
 7244                                                                                      J,
 7245                                                                                      R1),
 7246                                                                                  (   var(R1)
 7247                                                                                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7248                                                                                                S1),
 7249                                                                                      S1=[_|T1],
 7250                                                                                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7251                                                                                               T1),
 7252                                                                                      (   T1=[U1|_]
 7253                                                                                      ->  setarg(4,
 7254                                                                                                 U1,
 7255                                                                                                 _)
 7256                                                                                      ;   true
 7257                                                                                      )
 7258                                                                                  ;   R1=[_, _|T1],
 7259                                                                                      setarg(2,
 7260                                                                                             R1,
 7261                                                                                             T1),
 7262                                                                                      (   T1=[U1|_]
 7263                                                                                      ->  setarg(4,
 7264                                                                                                 U1,
 7265                                                                                                 R1)
 7266                                                                                      ;   true
 7267                                                                                      )
 7268                                                                                  )
 7269                                                                                ),
 7270                                                                                'detach_known/1_1_$special_;/2___2'(Q1,
 7271                                                                                                                    J)
 7272                                                                            )
 7273                                                                        ),
 7274                                                                        known(S)
 7275                                                                    )
 7276                                                                ;   C=atomic(V1),
 7277                                                                    (   'chr newvia_1'(V1,
 7278                                                                                       W1)
 7279                                                                    ->  get_attr(W1,
 7280                                                                                 guard_entailment,
 7281                                                                                 X1),
 7282                                                                        X1=v(_, _, _, _, _, _, _, Y1, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 7283                                                                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 7284                                                                                  Y1)
 7285                                                                    ),
 7286                                                                    member(Z1,
 7287                                                                           Y1),
 7288                                                                    Z1=suspension(_, active, _, _, _, A2),
 7289                                                                    A2==V1,
 7290                                                                    !,
 7291                                                                    (   var(J)
 7292                                                                    ->  true
 7293                                                                    ;   J=suspension(_, B2, _, _, C2, D2),
 7294                                                                        setarg(2,
 7295                                                                               J,
 7296                                                                               removed),
 7297                                                                        (   B2==not_stored_yet
 7298                                                                        ->  E2=[]
 7299                                                                        ;   term_variables(term(C2,
 7300                                                                                                D2),
 7301                                                                                           E2),
 7302                                                                            ( arg(4,
 7303                                                                                  J,
 7304                                                                                  F2),
 7305                                                                              (   var(F2)
 7306                                                                              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7307                                                                                            G2),
 7308                                                                                  G2=[_|H2],
 7309                                                                                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7310                                                                                           H2),
 7311                                                                                  (   H2=[I2|_]
 7312                                                                                  ->  setarg(4,
 7313                                                                                             I2,
 7314                                                                                             _)
 7315                                                                                  ;   true
 7316                                                                                  )
 7317                                                                              ;   F2=[_, _|H2],
 7318                                                                                  setarg(2,
 7319                                                                                         F2,
 7320                                                                                         H2),
 7321                                                                                  (   H2=[I2|_]
 7322                                                                                  ->  setarg(4,
 7323                                                                                             I2,
 7324                                                                                             F2)
 7325                                                                                  ;   true
 7326                                                                                  )
 7327                                                                              )
 7328                                                                            ),
 7329                                                                            'detach_known/1_1_$special_;/2___2'(E2,
 7330                                                                                                                J)
 7331                                                                        )
 7332                                                                    ),
 7333                                                                    known(S)
 7334                                                                )
 7335                                                            ;   C=compound(J2),
 7336                                                                (   'chr newvia_1'(J2,
 7337                                                                                   K2)
 7338                                                                ->  get_attr(K2,
 7339                                                                             guard_entailment,
 7340                                                                             L2),
 7341                                                                    L2=v(_, _, _, _, _, _, _, _, M2, _, _, _, _, _, _, _, _, _, _, _, _, _)
 7342                                                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 7343                                                                              M2)
 7344                                                                ),
 7345                                                                member(N2,
 7346                                                                       M2),
 7347                                                                N2=suspension(_, active, _, _, _, O2),
 7348                                                                O2==J2,
 7349                                                                !,
 7350                                                                (   var(J)
 7351                                                                ->  true
 7352                                                                ;   J=suspension(_, P2, _, _, Q2, R2),
 7353                                                                    setarg(2,
 7354                                                                           J,
 7355                                                                           removed),
 7356                                                                    (   P2==not_stored_yet
 7357                                                                    ->  S2=[]
 7358                                                                    ;   term_variables(term(Q2,
 7359                                                                                            R2),
 7360                                                                                       S2),
 7361                                                                        ( arg(4,
 7362                                                                              J,
 7363                                                                              T2),
 7364                                                                          (   var(T2)
 7365                                                                          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7366                                                                                        U2),
 7367                                                                              U2=[_|V2],
 7368                                                                              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7369                                                                                       V2),
 7370                                                                              (   V2=[W2|_]
 7371                                                                              ->  setarg(4,
 7372                                                                                         W2,
 7373                                                                                         _)
 7374                                                                              ;   true
 7375                                                                              )
 7376                                                                          ;   T2=[_, _|V2],
 7377                                                                              setarg(2,
 7378                                                                                     T2,
 7379                                                                                     V2),
 7380                                                                              (   V2=[W2|_]
 7381                                                                              ->  setarg(4,
 7382                                                                                         W2,
 7383                                                                                         T2)
 7384                                                                              ;   true
 7385                                                                              )
 7386                                                                          )
 7387                                                                        ),
 7388                                                                        'detach_known/1_1_$special_;/2___2'(S2,
 7389                                                                                                            J)
 7390                                                                    )
 7391                                                                ),
 7392                                                                known(S)
 7393                                                            )
 7394                                                        ;   C=ground(X2),
 7395                                                            (   'chr newvia_1'(X2,
 7396                                                                               Y2)
 7397                                                            ->  get_attr(Y2,
 7398                                                                         guard_entailment,
 7399                                                                         Z2),
 7400                                                                Z2=v(_, _, _, _, _, _, _, _, _, A3, _, _, _, _, _, _, _, _, _, _, _, _)
 7401                                                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 7402                                                                          A3)
 7403                                                            ),
 7404                                                            member(B3,
 7405                                                                   A3),
 7406                                                            B3=suspension(_, active, _, _, _, C3),
 7407                                                            C3==X2,
 7408                                                            !,
 7409                                                            (   var(J)
 7410                                                            ->  true
 7411                                                            ;   J=suspension(_, D3, _, _, E3, F3),
 7412                                                                setarg(2,
 7413                                                                       J,
 7414                                                                       removed),
 7415                                                                (   D3==not_stored_yet
 7416                                                                ->  G3=[]
 7417                                                                ;   term_variables(term(E3,
 7418                                                                                        F3),
 7419                                                                                   G3),
 7420                                                                    ( arg(4,
 7421                                                                          J,
 7422                                                                          H3),
 7423                                                                      (   var(H3)
 7424                                                                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7425                                                                                    I3),
 7426                                                                          I3=[_|J3],
 7427                                                                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7428                                                                                   J3),
 7429                                                                          (   J3=[K3|_]
 7430                                                                          ->  setarg(4,
 7431                                                                                     K3,
 7432                                                                                     _)
 7433                                                                          ;   true
 7434                                                                          )
 7435                                                                      ;   H3=[_, _|J3],
 7436                                                                          setarg(2,
 7437                                                                                 H3,
 7438                                                                                 J3),
 7439                                                                          (   J3=[K3|_]
 7440                                                                          ->  setarg(4,
 7441                                                                                     K3,
 7442                                                                                     H3)
 7443                                                                          ;   true
 7444                                                                          )
 7445                                                                      )
 7446                                                                    ),
 7447                                                                    'detach_known/1_1_$special_;/2___2'(G3,
 7448                                                                                                        J)
 7449                                                                )
 7450                                                            ),
 7451                                                            known(S)
 7452                                                        )
 7453                                                    ;   C=integer(L3),
 7454                                                        (   'chr newvia_1'(L3,
 7455                                                                           M3)
 7456                                                        ->  get_attr(M3,
 7457                                                                     guard_entailment,
 7458                                                                     N3),
 7459                                                            N3=v(_, _, _, _, _, _, _, _, _, _, O3, _, _, _, _, _, _, _, _, _, _, _)
 7460                                                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 7461                                                                      O3)
 7462                                                        ),
 7463                                                        member(P3,
 7464                                                               O3),
 7465                                                        P3=suspension(_, active, _, _, _, Q3),
 7466                                                        Q3==L3,
 7467                                                        !,
 7468                                                        (   var(J)
 7469                                                        ->  true
 7470                                                        ;   J=suspension(_, R3, _, _, S3, T3),
 7471                                                            setarg(2,
 7472                                                                   J,
 7473                                                                   removed),
 7474                                                            (   R3==not_stored_yet
 7475                                                            ->  U3=[]
 7476                                                            ;   term_variables(term(S3,
 7477                                                                                    T3),
 7478                                                                               U3),
 7479                                                                ( arg(4,
 7480                                                                      J,
 7481                                                                      V3),
 7482                                                                  (   var(V3)
 7483                                                                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7484                                                                                W3),
 7485                                                                      W3=[_|X3],
 7486                                                                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7487                                                                               X3),
 7488                                                                      (   X3=[Y3|_]
 7489                                                                      ->  setarg(4,
 7490                                                                                 Y3,
 7491                                                                                 _)
 7492                                                                      ;   true
 7493                                                                      )
 7494                                                                  ;   V3=[_, _|X3],
 7495                                                                      setarg(2,
 7496                                                                             V3,
 7497                                                                             X3),
 7498                                                                      (   X3=[Y3|_]
 7499                                                                      ->  setarg(4,
 7500                                                                                 Y3,
 7501                                                                                 V3)
 7502                                                                      ;   true
 7503                                                                      )
 7504                                                                  )
 7505                                                                ),
 7506                                                                'detach_known/1_1_$special_;/2___2'(U3,
 7507                                                                                                    J)
 7508                                                            )
 7509                                                        ),
 7510                                                        known(S)
 7511                                                    )
 7512                                                ;   C=float(Z3),
 7513                                                    (   'chr newvia_1'(Z3,
 7514                                                                       A4)
 7515                                                    ->  get_attr(A4,
 7516                                                                 guard_entailment,
 7517                                                                 B4),
 7518                                                        B4=v(_, _, _, _, _, _, _, _, _, _, _, C4, _, _, _, _, _, _, _, _, _, _)
 7519                                                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 7520                                                                  C4)
 7521                                                    ),
 7522                                                    member(D4,
 7523                                                           C4),
 7524                                                    D4=suspension(_, active, _, _, _, E4),
 7525                                                    E4==Z3,
 7526                                                    !,
 7527                                                    (   var(J)
 7528                                                    ->  true
 7529                                                    ;   J=suspension(_, F4, _, _, G4, H4),
 7530                                                        setarg(2,
 7531                                                               J,
 7532                                                               removed),
 7533                                                        (   F4==not_stored_yet
 7534                                                        ->  I4=[]
 7535                                                        ;   term_variables(term(G4,
 7536                                                                                H4),
 7537                                                                           I4),
 7538                                                            ( arg(4,
 7539                                                                  J,
 7540                                                                  J4),
 7541                                                              (   var(J4)
 7542                                                              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7543                                                                            K4),
 7544                                                                  K4=[_|L4],
 7545                                                                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7546                                                                           L4),
 7547                                                                  (   L4=[M4|_]
 7548                                                                  ->  setarg(4,
 7549                                                                             M4,
 7550                                                                             _)
 7551                                                                  ;   true
 7552                                                                  )
 7553                                                              ;   J4=[_, _|L4],
 7554                                                                  setarg(2,
 7555                                                                         J4,
 7556                                                                         L4),
 7557                                                                  (   L4=[M4|_]
 7558                                                                  ->  setarg(4,
 7559                                                                             M4,
 7560                                                                             J4)
 7561                                                                  ;   true
 7562                                                                  )
 7563                                                              )
 7564                                                            ),
 7565                                                            'detach_known/1_1_$special_;/2___2'(I4,
 7566                                                                                                J)
 7567                                                        )
 7568                                                    ),
 7569                                                    known(S)
 7570                                                )
 7571                                            ;   C=number(N4),
 7572                                                (   'chr newvia_1'(N4,
 7573                                                                   O4)
 7574                                                ->  get_attr(O4,
 7575                                                             guard_entailment,
 7576                                                             P4),
 7577                                                    P4=v(_, _, _, _, _, _, _, _, _, _, _, _, Q4, _, _, _, _, _, _, _, _, _)
 7578                                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 7579                                                              Q4)
 7580                                                ),
 7581                                                member(R4, Q4),
 7582                                                R4=suspension(_, active, _, _, _, S4),
 7583                                                S4==N4,
 7584                                                !,
 7585                                                (   var(J)
 7586                                                ->  true
 7587                                                ;   J=suspension(_, T4, _, _, U4, V4),
 7588                                                    setarg(2, J, removed),
 7589                                                    (   T4==not_stored_yet
 7590                                                    ->  W4=[]
 7591                                                    ;   term_variables(term(U4,
 7592                                                                            V4),
 7593                                                                       W4),
 7594                                                        ( arg(4,
 7595                                                              J,
 7596                                                              X4),
 7597                                                          (   var(X4)
 7598                                                          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7599                                                                        Y4),
 7600                                                              Y4=[_|Z4],
 7601                                                              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7602                                                                       Z4),
 7603                                                              (   Z4=[A5|_]
 7604                                                              ->  setarg(4,
 7605                                                                         A5,
 7606                                                                         _)
 7607                                                              ;   true
 7608                                                              )
 7609                                                          ;   X4=[_, _|Z4],
 7610                                                              setarg(2,
 7611                                                                     X4,
 7612                                                                     Z4),
 7613                                                              (   Z4=[A5|_]
 7614                                                              ->  setarg(4,
 7615                                                                         A5,
 7616                                                                         X4)
 7617                                                              ;   true
 7618                                                              )
 7619                                                          )
 7620                                                        ),
 7621                                                        'detach_known/1_1_$special_;/2___2'(W4,
 7622                                                                                            J)
 7623                                                    )
 7624                                                ),
 7625                                                known(S)
 7626                                            )
 7627                                        ;   C=(B5=\=C5),
 7628                                            (   'chr newvia_2'(B5,
 7629                                                               C5,
 7630                                                               D5)
 7631                                            ->  get_attr(D5,
 7632                                                         guard_entailment,
 7633                                                         E5),
 7634                                                E5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, F5, _, _, _, _, _, _, _, _)
 7635                                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 7636                                                          F5)
 7637                                            ),
 7638                                            member(G5, F5),
 7639                                            G5=suspension(_, active, _, _, _, H5, I5),
 7640                                            H5==B5,
 7641                                            I5==C5,
 7642                                            !,
 7643                                            (   var(J)
 7644                                            ->  true
 7645                                            ;   J=suspension(_, J5, _, _, K5, L5),
 7646                                                setarg(2, J, removed),
 7647                                                (   J5==not_stored_yet
 7648                                                ->  M5=[]
 7649                                                ;   term_variables(term(K5,
 7650                                                                        L5),
 7651                                                                   M5),
 7652                                                    ( arg(4, J, N5),
 7653                                                      (   var(N5)
 7654                                                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7655                                                                    O5),
 7656                                                          O5=[_|P5],
 7657                                                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7658                                                                   P5),
 7659                                                          (   P5=[Q5|_]
 7660                                                          ->  setarg(4,
 7661                                                                     Q5,
 7662                                                                     _)
 7663                                                          ;   true
 7664                                                          )
 7665                                                      ;   N5=[_, _|P5],
 7666                                                          setarg(2,
 7667                                                                 N5,
 7668                                                                 P5),
 7669                                                          (   P5=[Q5|_]
 7670                                                          ->  setarg(4,
 7671                                                                     Q5,
 7672                                                                     N5)
 7673                                                          ;   true
 7674                                                          )
 7675                                                      )
 7676                                                    ),
 7677                                                    'detach_known/1_1_$special_;/2___2'(M5,
 7678                                                                                        J)
 7679                                                )
 7680                                            ),
 7681                                            known(S)
 7682                                        )
 7683                                    ;   C=(\+R5),
 7684                                        (   'chr newvia_1'(R5, S5)
 7685                                        ->  get_attr(S5,
 7686                                                     guard_entailment,
 7687                                                     T5),
 7688                                            T5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, U5, _, _, _, _, _, _, _)
 7689                                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 7690                                                      U5)
 7691                                        ),
 7692                                        member(V5, U5),
 7693                                        V5=suspension(_, active, _, _, W5),
 7694                                        W5==R5,
 7695                                        !,
 7696                                        (   var(J)
 7697                                        ->  true
 7698                                        ;   J=suspension(_, X5, _, _, Y5, Z5),
 7699                                            setarg(2, J, removed),
 7700                                            (   X5==not_stored_yet
 7701                                            ->  A6=[]
 7702                                            ;   term_variables(term(Y5,
 7703                                                                    Z5),
 7704                                                               A6),
 7705                                                ( arg(4, J, B6),
 7706                                                  (   var(B6)
 7707                                                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7708                                                                C6),
 7709                                                      C6=[_|D6],
 7710                                                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7711                                                               D6),
 7712                                                      (   D6=[E6|_]
 7713                                                      ->  setarg(4,
 7714                                                                 E6,
 7715                                                                 _)
 7716                                                      ;   true
 7717                                                      )
 7718                                                  ;   B6=[_, _|D6],
 7719                                                      setarg(2,
 7720                                                             B6,
 7721                                                             D6),
 7722                                                      (   D6=[E6|_]
 7723                                                      ->  setarg(4,
 7724                                                                 E6,
 7725                                                                 B6)
 7726                                                      ;   true
 7727                                                      )
 7728                                                  )
 7729                                                ),
 7730                                                'detach_known/1_1_$special_;/2___2'(A6,
 7731                                                                                    J)
 7732                                            )
 7733                                        ),
 7734                                        known(S)
 7735                                    )
 7736                                ;   C=functor(F6, G6, H6),
 7737                                    (   'chr newvia'(
 7738                                                     [ F6,
 7739                                                       G6,
 7740                                                       H6
 7741                                                     ],
 7742                                                     I6)
 7743                                    ->  get_attr(I6,
 7744                                                 guard_entailment,
 7745                                                 J6),
 7746                                        J6=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, K6, _, _, _, _, _, _)
 7747                                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 7748                                                  K6)
 7749                                    ),
 7750                                    member(L6, K6),
 7751                                    L6=suspension(_, active, _, _, M6, N6, O6),
 7752                                    M6==F6,
 7753                                    N6==G6,
 7754                                    O6==H6,
 7755                                    !,
 7756                                    (   var(J)
 7757                                    ->  true
 7758                                    ;   J=suspension(_, P6, _, _, Q6, R6),
 7759                                        setarg(2, J, removed),
 7760                                        (   P6==not_stored_yet
 7761                                        ->  S6=[]
 7762                                        ;   term_variables(term(Q6,
 7763                                                                R6),
 7764                                                           S6),
 7765                                            ( arg(4, J, T6),
 7766                                              (   var(T6)
 7767                                              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7768                                                            U6),
 7769                                                  U6=[_|V6],
 7770                                                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7771                                                           V6),
 7772                                                  (   V6=[W6|_]
 7773                                                  ->  setarg(4,
 7774                                                             W6,
 7775                                                             _)
 7776                                                  ;   true
 7777                                                  )
 7778                                              ;   T6=[_, _|V6],
 7779                                                  setarg(2,
 7780                                                         T6,
 7781                                                         V6),
 7782                                                  (   V6=[W6|_]
 7783                                                  ->  setarg(4,
 7784                                                             W6,
 7785                                                             T6)
 7786                                                  ;   true
 7787                                                  )
 7788                                              )
 7789                                            ),
 7790                                            'detach_known/1_1_$special_;/2___2'(S6,
 7791                                                                                J)
 7792                                        )
 7793                                    ),
 7794                                    known(S)
 7795                                )
 7796                            ;   C=(X6\=Y6),
 7797                                (   'chr newvia_2'(X6,
 7798                                                   Y6,
 7799                                                   Z6)
 7800                                ->  get_attr(Z6,
 7801                                             guard_entailment,
 7802                                             A7),
 7803                                    A7=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, B7, _, _, _, _, _)
 7804                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 7805                                              B7)
 7806                                ),
 7807                                member(C7, B7),
 7808                                C7=suspension(_, active, _, _, _, D7, E7),
 7809                                D7==X6,
 7810                                E7==Y6,
 7811                                !,
 7812                                (   var(J)
 7813                                ->  true
 7814                                ;   J=suspension(_, F7, _, _, G7, H7),
 7815                                    setarg(2, J, removed),
 7816                                    (   F7==not_stored_yet
 7817                                    ->  I7=[]
 7818                                    ;   term_variables(term(G7,
 7819                                                            H7),
 7820                                                       I7),
 7821                                        ( arg(4, J, J7),
 7822                                          (   var(J7)
 7823                                          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7824                                                        K7),
 7825                                              K7=[_|L7],
 7826                                              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7827                                                       L7),
 7828                                              (   L7=[M7|_]
 7829                                              ->  setarg(4, M7, _)
 7830                                              ;   true
 7831                                              )
 7832                                          ;   J7=[_, _|L7],
 7833                                              setarg(2, J7, L7),
 7834                                              (   L7=[M7|_]
 7835                                              ->  setarg(4,
 7836                                                         M7,
 7837                                                         J7)
 7838                                              ;   true
 7839                                              )
 7840                                          )
 7841                                        ),
 7842                                        'detach_known/1_1_$special_;/2___2'(I7,
 7843                                                                            J)
 7844                                    )
 7845                                ),
 7846                                known(S)
 7847                            )
 7848                        ;   C=(N7=O7),
 7849                            (   'chr newvia_2'(N7, O7, P7)
 7850                            ->  get_attr(P7, guard_entailment, Q7),
 7851                                Q7=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, R7, _, _, _, _)
 7852                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 7853                                          R7)
 7854                            ),
 7855                            member(S7, R7),
 7856                            S7=suspension(_, active, _, _, T7, U7),
 7857                            T7==N7,
 7858                            U7==O7,
 7859                            !,
 7860                            (   var(J)
 7861                            ->  true
 7862                            ;   J=suspension(_, V7, _, _, W7, X7),
 7863                                setarg(2, J, removed),
 7864                                (   V7==not_stored_yet
 7865                                ->  Y7=[]
 7866                                ;   term_variables(term(W7, X7),
 7867                                                   Y7),
 7868                                    ( arg(4, J, Z7),
 7869                                      (   var(Z7)
 7870                                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7871                                                    A8),
 7872                                          A8=[_|B8],
 7873                                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7874                                                   B8),
 7875                                          (   B8=[C8|_]
 7876                                          ->  setarg(4, C8, _)
 7877                                          ;   true
 7878                                          )
 7879                                      ;   Z7=[_, _|B8],
 7880                                          setarg(2, Z7, B8),
 7881                                          (   B8=[C8|_]
 7882                                          ->  setarg(4, C8, Z7)
 7883                                          ;   true
 7884                                          )
 7885                                      )
 7886                                    ),
 7887                                    'detach_known/1_1_$special_;/2___2'(Y7,
 7888                                                                        J)
 7889                                )
 7890                            ),
 7891                            known(S)
 7892                        )
 7893                    ;   C=(D8\==E8),
 7894                        (   'chr newvia_2'(D8, E8, F8)
 7895                        ->  get_attr(F8, guard_entailment, G8),
 7896                            G8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, H8, _, _, _)
 7897                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 7898                                      H8)
 7899                        ),
 7900                        member(I8, H8),
 7901                        I8=suspension(_, active, _, _, _, J8, K8),
 7902                        J8==D8,
 7903                        K8==E8,
 7904                        !,
 7905                        (   var(J)
 7906                        ->  true
 7907                        ;   J=suspension(_, L8, _, _, M8, N8),
 7908                            setarg(2, J, removed),
 7909                            (   L8==not_stored_yet
 7910                            ->  O8=[]
 7911                            ;   term_variables(term(M8, N8),
 7912                                               O8),
 7913                                ( arg(4, J, P8),
 7914                                  (   var(P8)
 7915                                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7916                                                Q8),
 7917                                      Q8=[_|R8],
 7918                                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7919                                               R8),
 7920                                      (   R8=[S8|_]
 7921                                      ->  setarg(4, S8, _)
 7922                                      ;   true
 7923                                      )
 7924                                  ;   P8=[_, _|R8],
 7925                                      setarg(2, P8, R8),
 7926                                      (   R8=[S8|_]
 7927                                      ->  setarg(4, S8, P8)
 7928                                      ;   true
 7929                                      )
 7930                                  )
 7931                                ),
 7932                                'detach_known/1_1_$special_;/2___2'(O8,
 7933                                                                    J)
 7934                            )
 7935                        ),
 7936                        known(S)
 7937                    )
 7938                ;   C=(T8==U8),
 7939                    (   'chr newvia_2'(T8, U8, V8)
 7940                    ->  get_attr(V8, guard_entailment, W8),
 7941                        W8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X8, _, _)
 7942                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 7943                                  X8)
 7944                    ),
 7945                    member(Y8, X8),
 7946                    Y8=suspension(_, active, _, _, _, Z8, A9),
 7947                    Z8==T8,
 7948                    A9==U8,
 7949                    !,
 7950                    (   var(J)
 7951                    ->  true
 7952                    ;   J=suspension(_, B9, _, _, C9, D9),
 7953                        setarg(2, J, removed),
 7954                        (   B9==not_stored_yet
 7955                        ->  E9=[]
 7956                        ;   term_variables(term(C9, D9),
 7957                                           E9),
 7958                            ( arg(4, J, F9),
 7959                              (   var(F9)
 7960                              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7961                                            G9),
 7962                                  G9=[_|H9],
 7963                                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7964                                           H9),
 7965                                  (   H9=[I9|_]
 7966                                  ->  setarg(4, I9, _)
 7967                                  ;   true
 7968                                  )
 7969                              ;   F9=[_, _|H9],
 7970                                  setarg(2, F9, H9),
 7971                                  (   H9=[I9|_]
 7972                                  ->  setarg(4, I9, F9)
 7973                                  ;   true
 7974                                  )
 7975                              )
 7976                            ),
 7977                            'detach_known/1_1_$special_;/2___2'(E9,
 7978                                                                J)
 7979                        )
 7980                    ),
 7981                    known(S)
 7982                )
 7983            ;   C=(J9=<K9),
 7984                (   'chr newvia_2'(J9, K9, L9)
 7985                ->  get_attr(L9, guard_entailment, M9),
 7986                    M9=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, N9, _)
 7987                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 7988                              N9)
 7989                ),
 7990                member(O9, N9),
 7991                O9=suspension(_, active, _, _, _, P9, Q9),
 7992                P9==J9,
 7993                Q9==K9,
 7994                !,
 7995                (   var(J)
 7996                ->  true
 7997                ;   J=suspension(_, R9, _, _, S9, T9),
 7998                    setarg(2, J, removed),
 7999                    (   R9==not_stored_yet
 8000                    ->  U9=[]
 8001                    ;   term_variables(term(S9, T9), U9),
 8002                        ( arg(4, J, V9),
 8003                          (   var(V9)
 8004                          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8005                                        W9),
 8006                              W9=[_|X9],
 8007                              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8008                                       X9),
 8009                              (   X9=[Y9|_]
 8010                              ->  setarg(4, Y9, _)
 8011                              ;   true
 8012                              )
 8013                          ;   V9=[_, _|X9],
 8014                              setarg(2, V9, X9),
 8015                              (   X9=[Y9|_]
 8016                              ->  setarg(4, Y9, V9)
 8017                              ;   true
 8018                              )
 8019                          )
 8020                        ),
 8021                        'detach_known/1_1_$special_;/2___2'(U9, J)
 8022                    )
 8023                ),
 8024                known(S)
 8025            )
 8026        ;   C=(Z9=:=A10),
 8027            (   'chr newvia_2'(Z9, A10, B10)
 8028            ->  get_attr(B10, guard_entailment, C10),
 8029                C10=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D10)
 8030            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 8031                          D10)
 8032            ),
 8033            member(E10, D10),
 8034            E10=suspension(_, active, _, _, _, F10, G10),
 8035            F10==Z9,
 8036            G10==A10,
 8037            !,
 8038            (   var(J)
 8039            ->  true
 8040            ;   J=suspension(_, H10, _, _, I10, J10),
 8041                setarg(2, J, removed),
 8042                (   H10==not_stored_yet
 8043                ->  K10=[]
 8044                ;   term_variables(term(I10, J10), K10),
 8045                    ( arg(4, J, L10),
 8046                      (   var(L10)
 8047                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8048                                    M10),
 8049                          M10=[_|N10],
 8050                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8051                                   N10),
 8052                          (   N10=[O10|_]
 8053                          ->  setarg(4, O10, _)
 8054                          ;   true
 8055                          )
 8056                      ;   L10=[_, _|N10],
 8057                          setarg(2, L10, N10),
 8058                          (   N10=[O10|_]
 8059                          ->  setarg(4, O10, L10)
 8060                          ;   true
 8061                          )
 8062                      )
 8063                    ),
 8064                    'detach_known/1_1_$special_;/2___2'(K10, J)
 8065                )
 8066            ),
 8067            known(S)
 8068        )
 8069    ;   (   'chr newvia_1'(C, P10)
 8070        ->  get_attr(P10, guard_entailment, Q10),
 8071            Q10=v(_, _, R10, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8072        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 8073                      R10)
 8074        ),
 8075        member(S10, R10),
 8076        S10=suspension(_, active, _, _, T10),
 8077        T10==C,
 8078        !,
 8079        (   var(J)
 8080        ->  true
 8081        ;   J=suspension(_, U10, _, _, V10, W10),
 8082            setarg(2, J, removed),
 8083            (   U10==not_stored_yet
 8084            ->  X10=[]
 8085            ;   term_variables(term(V10, W10), X10),
 8086                ( arg(4, J, Y10),
 8087                  (   var(Y10)
 8088                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8089                                Z10),
 8090                      Z10=[_|A11],
 8091                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8092                               A11),
 8093                      (   A11=[B11|_]
 8094                      ->  setarg(4, B11, _)
 8095                      ;   true
 8096                      )
 8097                  ;   Y10=[_, _|A11],
 8098                      setarg(2, Y10, A11),
 8099                      (   A11=[B11|_]
 8100                      ->  setarg(4, B11, Y10)
 8101                      ;   true
 8102                      )
 8103                  )
 8104                ),
 8105                'detach_known/1_1_$special_;/2___2'(X10, J)
 8106            )
 8107        ),
 8108        known(S)
 8109    ).
 8110'known/1_1_$special_;/2___2__2'(A, P, G) :-
 8111    (   'chr newvia_1'(A, B)
 8112    ->  get_attr(B, guard_entailment, C),
 8113        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
 8114    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8115                  D)
 8116    ),
 8117    member(E, D),
 8118    E=suspension(_, active, _, _, F),
 8119    F==A,
 8120    !,
 8121    (   var(G)
 8122    ->  true
 8123    ;   G=suspension(_, H, _, _, I, J),
 8124        setarg(2, G, removed),
 8125        (   H==not_stored_yet
 8126        ->  K=[]
 8127        ;   term_variables(term(I, J), K),
 8128            ( arg(4, G, L),
 8129              (   var(L)
 8130              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8131                            M),
 8132                  M=[_|N],
 8133                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8134                           N),
 8135                  (   N=[O|_]
 8136                  ->  setarg(4, O, _)
 8137                  ;   true
 8138                  )
 8139              ;   L=[_, _|N],
 8140                  setarg(2, L, N),
 8141                  (   N=[O|_]
 8142                  ->  setarg(4, O, L)
 8143                  ;   true
 8144                  )
 8145              )
 8146            ),
 8147            'detach_known/1_1_$special_;/2___2'(K, G)
 8148        )
 8149    ),
 8150    known(P).
 8151'known/1_1_$special_;/2___2__2'(A, Q, H) :-
 8152    nonvar(A),
 8153    A=(B, _),
 8154    (   'chr newvia_1'(B, C)
 8155    ->  get_attr(C, guard_entailment, D),
 8156        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
 8157    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8158                  E)
 8159    ),
 8160    member(F, E),
 8161    F=suspension(_, active, _, _, G),
 8162    G==B,
 8163    !,
 8164    (   var(H)
 8165    ->  true
 8166    ;   H=suspension(_, I, _, _, J, K),
 8167        setarg(2, H, removed),
 8168        (   I==not_stored_yet
 8169        ->  L=[]
 8170        ;   term_variables(term(J, K), L),
 8171            ( arg(4, H, M),
 8172              (   var(M)
 8173              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8174                            N),
 8175                  N=[_|O],
 8176                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8177                           O),
 8178                  (   O=[P|_]
 8179                  ->  setarg(4, P, _)
 8180                  ;   true
 8181                  )
 8182              ;   M=[_, _|O],
 8183                  setarg(2, M, O),
 8184                  (   O=[P|_]
 8185                  ->  setarg(4, P, M)
 8186                  ;   true
 8187                  )
 8188              )
 8189            ),
 8190            'detach_known/1_1_$special_;/2___2'(L, H)
 8191        )
 8192    ),
 8193    known(Q).
 8194'known/1_1_$special_;/2___2__2'(A, K, B) :-
 8195    A==fail,
 8196    !,
 8197    (   var(B)
 8198    ->  true
 8199    ;   B=suspension(_, C, _, _, D, E),
 8200        setarg(2, B, removed),
 8201        (   C==not_stored_yet
 8202        ->  F=[]
 8203        ;   term_variables(term(D, E), F),
 8204            ( arg(4, B, G),
 8205              (   var(G)
 8206              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8207                            H),
 8208                  H=[_|I],
 8209                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8210                           I),
 8211                  (   I=[J|_]
 8212                  ->  setarg(4, J, _)
 8213                  ;   true
 8214                  )
 8215              ;   G=[_, _|I],
 8216                  setarg(2, G, I),
 8217                  (   I=[J|_]
 8218                  ->  setarg(4, J, G)
 8219                  ;   true
 8220                  )
 8221              )
 8222            ),
 8223            'detach_known/1_1_$special_;/2___2'(F, B)
 8224        )
 8225    ),
 8226    known(K).
 8227'known/1_1_$special_;/2___2__2'(K, A, B) :-
 8228    A==fail,
 8229    !,
 8230    (   var(B)
 8231    ->  true
 8232    ;   B=suspension(_, C, _, _, D, E),
 8233        setarg(2, B, removed),
 8234        (   C==not_stored_yet
 8235        ->  F=[]
 8236        ;   term_variables(term(D, E), F),
 8237            ( arg(4, B, G),
 8238              (   var(G)
 8239              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8240                            H),
 8241                  H=[_|I],
 8242                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8243                           I),
 8244                  (   I=[J|_]
 8245                  ->  setarg(4, J, _)
 8246                  ;   true
 8247                  )
 8248              ;   G=[_, _|I],
 8249                  setarg(2, G, I),
 8250                  (   I=[J|_]
 8251                  ->  setarg(4, J, G)
 8252                  ;   true
 8253                  )
 8254              )
 8255            ),
 8256            'detach_known/1_1_$special_;/2___2'(F, B)
 8257        )
 8258    ),
 8259    known(K).
 8260'known/1_1_$special_;/2___2__2'(A, _, B) :-
 8261    A==true,
 8262    !,
 8263    (   var(B)
 8264    ->  true
 8265    ;   B=suspension(_, C, _, _, D, E),
 8266        setarg(2, B, removed),
 8267        (   C==not_stored_yet
 8268        ->  F=[]
 8269        ;   term_variables(term(D, E), F),
 8270            ( arg(4, B, G),
 8271              (   var(G)
 8272              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8273                            H),
 8274                  H=[_|I],
 8275                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8276                           I),
 8277                  (   I=[J|_]
 8278                  ->  setarg(4, J, _)
 8279                  ;   true
 8280                  )
 8281              ;   G=[_, _|I],
 8282                  setarg(2, G, I),
 8283                  (   I=[J|_]
 8284                  ->  setarg(4, J, G)
 8285                  ;   true
 8286                  )
 8287              )
 8288            ),
 8289            'detach_known/1_1_$special_;/2___2'(F, B)
 8290        )
 8291    ).
 8292'known/1_1_$special_;/2___2__2'(_, A, B) :-
 8293    A==true,
 8294    !,
 8295    (   var(B)
 8296    ->  true
 8297    ;   B=suspension(_, C, _, _, D, E),
 8298        setarg(2, B, removed),
 8299        (   C==not_stored_yet
 8300        ->  F=[]
 8301        ;   term_variables(term(D, E), F),
 8302            ( arg(4, B, G),
 8303              (   var(G)
 8304              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8305                            H),
 8306                  H=[_|I],
 8307                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8308                           I),
 8309                  (   I=[J|_]
 8310                  ->  setarg(4, J, _)
 8311                  ;   true
 8312                  )
 8313              ;   G=[_, _|I],
 8314                  setarg(2, G, I),
 8315                  (   I=[J|_]
 8316                  ->  setarg(4, J, G)
 8317                  ;   true
 8318                  )
 8319              )
 8320            ),
 8321            'detach_known/1_1_$special_;/2___2'(F, B)
 8322        )
 8323    ).
 8324'known/1_1_$special_;/2___2__2'(A, B1, I) :-
 8325    ( nonvar(A),
 8326      A=(\+B),
 8327      nonvar(B),
 8328      B=functor(C, R, S)
 8329    ),
 8330    (   (   (   'chr newvia_1'(C, D)
 8331            ->  get_attr(D, guard_entailment, E),
 8332                E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _)
 8333            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 8334                          F)
 8335            ),
 8336            member(G, F),
 8337            G=suspension(_, active, _, _, H, _, _),
 8338            H==C,
 8339            !,
 8340            (   var(I)
 8341            ->  true
 8342            ;   I=suspension(_, J, _, _, K, L),
 8343                setarg(2, I, removed),
 8344                (   J==not_stored_yet
 8345                ->  M=[]
 8346                ;   term_variables(term(K, L), M),
 8347                    ( arg(4, I, N),
 8348                      (   var(N)
 8349                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8350                                    O),
 8351                          O=[_|P],
 8352                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8353                                   P),
 8354                          (   P=[Q|_]
 8355                          ->  setarg(4, Q, _)
 8356                          ;   true
 8357                          )
 8358                      ;   N=[_, _|P],
 8359                          setarg(2, N, P),
 8360                          (   P=[Q|_]
 8361                          ->  setarg(4, Q, N)
 8362                          ;   true
 8363                          )
 8364                      )
 8365                    ),
 8366                    'detach_known/1_1_$special_;/2___2'(M, I)
 8367                )
 8368            )
 8369        ;   nonvar(C),
 8370            'chr lock'(C),
 8371            'chr lock'(R),
 8372            'chr lock'(S),
 8373            functor(C, R, S),
 8374            'chr unlock'(C),
 8375            'chr unlock'(R),
 8376            'chr unlock'(S),
 8377            !,
 8378            (   var(I)
 8379            ->  true
 8380            ;   I=suspension(_, T, _, _, U, V),
 8381                setarg(2, I, removed),
 8382                (   T==not_stored_yet
 8383                ->  W=[]
 8384                ;   term_variables(term(U, V), W),
 8385                    ( arg(4, I, X),
 8386                      (   var(X)
 8387                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8388                                    Y),
 8389                          Y=[_|Z],
 8390                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8391                                   Z),
 8392                          (   Z=[A1|_]
 8393                          ->  setarg(4, A1, _)
 8394                          ;   true
 8395                          )
 8396                      ;   X=[_, _|Z],
 8397                          setarg(2, X, Z),
 8398                          (   Z=[A1|_]
 8399                          ->  setarg(4, A1, X)
 8400                          ;   true
 8401                          )
 8402                      )
 8403                    ),
 8404                    'detach_known/1_1_$special_;/2___2'(W, I)
 8405                )
 8406            ),
 8407            known(B1)
 8408        )
 8409    ;   nonvar(C),
 8410        'chr lock'(C),
 8411        'chr lock'(R),
 8412        'chr lock'(S),
 8413        \+ functor(C, R, S),
 8414        'chr unlock'(C),
 8415        'chr unlock'(R),
 8416        'chr unlock'(S),
 8417        !,
 8418        (   var(I)
 8419        ->  true
 8420        ;   I=suspension(_, C1, _, _, D1, E1),
 8421            setarg(2, I, removed),
 8422            (   C1==not_stored_yet
 8423            ->  F1=[]
 8424            ;   term_variables(term(D1, E1), F1),
 8425                ( arg(4, I, G1),
 8426                  (   var(G1)
 8427                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8428                                H1),
 8429                      H1=[_|I1],
 8430                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8431                               I1),
 8432                      (   I1=[J1|_]
 8433                      ->  setarg(4, J1, _)
 8434                      ;   true
 8435                      )
 8436                  ;   G1=[_, _|I1],
 8437                      setarg(2, G1, I1),
 8438                      (   I1=[J1|_]
 8439                      ->  setarg(4, J1, G1)
 8440                      ;   true
 8441                      )
 8442                  )
 8443                ),
 8444                'detach_known/1_1_$special_;/2___2'(F1, I)
 8445            )
 8446        )
 8447    ).
 8448'known/1_1_$special_;/2___2__2'(_, _, A) :-
 8449    arg(2, A, D),
 8450    setarg(2, A, active),
 8451    arg(3, A, B),
 8452    C is B+1,
 8453    setarg(3, A, C),
 8454    (   D==not_stored_yet
 8455    ->  A=suspension(_, _, _, _, E, F),
 8456        term_variables(term(E, F), G),
 8457        'chr none_locked'(G),
 8458        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8459                    H),
 8460          I=[A|H],
 8461          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8462                   I),
 8463          (   H=[J|_]
 8464          ->  setarg(4, J, I)
 8465          ;   true
 8466          )
 8467        ),
 8468        'attach_known/1_1_$special_;/2___2'(G, A)
 8469    ;   true
 8470    ).
 8471'known/1_1_$special_nonvar/1'(A) :-
 8472    'known/1_1_$special_nonvar/1___1__0'(A, _).
 8473'known/1_1_$special_nonvar/1___1__0'(A, G) :-
 8474    (   'chr newvia_1'(A, B)
 8475    ->  get_attr(B, guard_entailment, C),
 8476        C=v(_, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8477    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8478                  D)
 8479    ),
 8480    member(E, D),
 8481    E=suspension(_, active, _, _, F),
 8482    F==A,
 8483    !,
 8484    (   var(G)
 8485    ->  true
 8486    ;   G=suspension(_, H, _, _, I),
 8487        setarg(2, G, removed),
 8488        (   H==not_stored_yet
 8489        ->  J=[]
 8490        ;   term_variables(I, J),
 8491            ( arg(4, G, K),
 8492              (   var(K)
 8493              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8494                            L),
 8495                  L=[_|M],
 8496                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8497                           M),
 8498                  (   M=[N|_]
 8499                  ->  setarg(4, N, _)
 8500                  ;   true
 8501                  )
 8502              ;   K=[_, _|M],
 8503                  setarg(2, K, M),
 8504                  (   M=[N|_]
 8505                  ->  setarg(4, N, K)
 8506                  ;   true
 8507                  )
 8508              )
 8509            ),
 8510            'detach_known/1_1_$special_nonvar/1___1'(J, G)
 8511        )
 8512    ).
 8513'known/1_1_$special_nonvar/1___1__0'(_, C) :-
 8514    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 8515              A),
 8516    member(B, A),
 8517    B=suspension(_, active, _),
 8518    !,
 8519    (   var(C)
 8520    ->  true
 8521    ;   C=suspension(_, D, _, _, E),
 8522        setarg(2, C, removed),
 8523        (   D==not_stored_yet
 8524        ->  F=[]
 8525        ;   term_variables(E, F),
 8526            ( arg(4, C, G),
 8527              (   var(G)
 8528              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8529                            H),
 8530                  H=[_|I],
 8531                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8532                           I),
 8533                  (   I=[J|_]
 8534                  ->  setarg(4, J, _)
 8535                  ;   true
 8536                  )
 8537              ;   G=[_, _|I],
 8538                  setarg(2, G, I),
 8539                  (   I=[J|_]
 8540                  ->  setarg(4, J, G)
 8541                  ;   true
 8542                  )
 8543              )
 8544            ),
 8545            'detach_known/1_1_$special_nonvar/1___1'(F, C)
 8546        )
 8547    ).
 8548'known/1_1_$special_nonvar/1___1__0'(A, N) :-
 8549    (   'chr newvia_1'(A, B)
 8550    ->  get_attr(B, guard_entailment, C),
 8551        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
 8552    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8553                  D)
 8554    ),
 8555    member(E, D),
 8556    E=suspension(_, active, _, _, F),
 8557    nonvar(F),
 8558    F=nonvar(G),
 8559    G==A,
 8560    !,
 8561    E=suspension(_, _, _, _, H),
 8562    setarg(2, E, removed),
 8563    term_variables(H, M),
 8564    arg(4, E, I),
 8565    (   var(I)
 8566    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8567                  J),
 8568        J=[_|K],
 8569        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8570                 K),
 8571        (   K=[L|_]
 8572        ->  setarg(4, L, _)
 8573        ;   true
 8574        )
 8575    ;   I=[_, _|K],
 8576        setarg(2, I, K),
 8577        (   K=[L|_]
 8578        ->  setarg(4, L, I)
 8579        ;   true
 8580        )
 8581    ),
 8582    'detach_known/1_1_$special_\\+/1___1'(M, E),
 8583    (   var(N)
 8584    ->  true
 8585    ;   N=suspension(_, O, _, _, P),
 8586        setarg(2, N, removed),
 8587        (   O==not_stored_yet
 8588        ->  Q=[]
 8589        ;   term_variables(P, Q),
 8590            ( arg(4, N, R),
 8591              (   var(R)
 8592              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8593                            S),
 8594                  S=[_|T],
 8595                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8596                           T),
 8597                  (   T=[U|_]
 8598                  ->  setarg(4, U, _)
 8599                  ;   true
 8600                  )
 8601              ;   R=[_, _|T],
 8602                  setarg(2, R, T),
 8603                  (   T=[U|_]
 8604                  ->  setarg(4, U, R)
 8605                  ;   true
 8606                  )
 8607              )
 8608            ),
 8609            'detach_known/1_1_$special_nonvar/1___1'(Q, N)
 8610        )
 8611    ),
 8612    'known/1_1_$special_fail/0'.
 8613'known/1_1_$special_nonvar/1___1__0'(A, M) :-
 8614    (   'chr newvia_1'(A, B)
 8615    ->  get_attr(B, guard_entailment, C),
 8616        C=v(_, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8617    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8618                  D)
 8619    ),
 8620    member(E, D),
 8621    E=suspension(_, active, _, _, F),
 8622    F==A,
 8623    !,
 8624    E=suspension(_, _, _, _, G),
 8625    setarg(2, E, removed),
 8626    term_variables(G, L),
 8627    arg(4, E, H),
 8628    (   var(H)
 8629    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8630                  I),
 8631        I=[_|J],
 8632        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8633                 J),
 8634        (   J=[K|_]
 8635        ->  setarg(4, K, _)
 8636        ;   true
 8637        )
 8638    ;   H=[_, _|J],
 8639        setarg(2, H, J),
 8640        (   J=[K|_]
 8641        ->  setarg(4, K, H)
 8642        ;   true
 8643        )
 8644    ),
 8645    'detach_known/1_1_$special_var/1___1'(L, E),
 8646    (   var(M)
 8647    ->  true
 8648    ;   M=suspension(_, N, _, _, O),
 8649        setarg(2, M, removed),
 8650        (   N==not_stored_yet
 8651        ->  P=[]
 8652        ;   term_variables(O, P),
 8653            ( arg(4, M, Q),
 8654              (   var(Q)
 8655              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8656                            R),
 8657                  R=[_|S],
 8658                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8659                           S),
 8660                  (   S=[T|_]
 8661                  ->  setarg(4, T, _)
 8662                  ;   true
 8663                  )
 8664              ;   Q=[_, _|S],
 8665                  setarg(2, Q, S),
 8666                  (   S=[T|_]
 8667                  ->  setarg(4, T, Q)
 8668                  ;   true
 8669                  )
 8670              )
 8671            ),
 8672            'detach_known/1_1_$special_nonvar/1___1'(P, M)
 8673        )
 8674    ),
 8675    'known/1_1_$special_fail/0'.
 8676'known/1_1_$special_nonvar/1___1__0'(A, E) :-
 8677    (   'chr newvia_1'(A, B)
 8678    ->  get_attr(B, guard_entailment, C),
 8679        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8680    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8681                  D)
 8682    ),
 8683    !,
 8684    (   var(E)
 8685    ->  E=suspension(F, not_stored_yet, 0, _, A),
 8686        'chr gen_id'(F)
 8687    ;   true
 8688    ),
 8689    'known/1_1_$special_nonvar/1___1__0__0__7'(D, A, E).
 8690'known/1_1_$special_nonvar/1___1__0__0__7'([], A, B) :-
 8691    'known/1_1_$special_nonvar/1___1__1'(A, B).
 8692'known/1_1_$special_nonvar/1___1__0__0__7'([A|W], E, M) :-
 8693    (   A=suspension(_, active, _, _, B, V),
 8694        nonvar(B),
 8695        B=(\+C),
 8696        nonvar(C),
 8697        C=nonvar(D),
 8698        D==E
 8699    ->  ( A=suspension(_, _, _, _, F, G),
 8700          setarg(2, A, removed),
 8701          term_variables(term(F, G), L),
 8702          ( arg(4, A, H),
 8703            (   var(H)
 8704            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8705                          I),
 8706                I=[_|J],
 8707                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8708                         J),
 8709                (   J=[K|_]
 8710                ->  setarg(4, K, _)
 8711                ;   true
 8712                )
 8713            ;   H=[_, _|J],
 8714                setarg(2, H, J),
 8715                (   J=[K|_]
 8716                ->  setarg(4, K, H)
 8717                ;   true
 8718                )
 8719            )
 8720          ),
 8721          'detach_known/1_1_$special_;/2___2'(L, A)
 8722        ),
 8723        ( arg(2, M, P),
 8724          setarg(2, M, active),
 8725          ( arg(3, M, N),
 8726            O is N+1,
 8727            setarg(3, M, O)
 8728          ),
 8729          (   P==not_stored_yet
 8730          ->  M=suspension(_, _, _, _, Q),
 8731              term_variables(Q, R),
 8732              'chr none_locked'(R),
 8733              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8734                          S),
 8735                T=[M|S],
 8736                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8737                         T),
 8738                (   S=[U|_]
 8739                ->  setarg(4, U, T)
 8740                ;   true
 8741                )
 8742              ),
 8743              'attach_known/1_1_$special_nonvar/1___1'(R, M)
 8744          ;   true
 8745          )
 8746        ),
 8747        known(V),
 8748        (   M=suspension(_, active, O, _, _)
 8749        ->  setarg(2, M, inactive),
 8750            'known/1_1_$special_nonvar/1___1__0__0__7'(W,
 8751                                                       E,
 8752                                                       M)
 8753        ;   true
 8754        )
 8755    ;   'known/1_1_$special_nonvar/1___1__0__0__7'(W, E, M)
 8756    ).
 8757'known/1_1_$special_nonvar/1___1__0'(B, A) :-
 8758    (   var(A)
 8759    ->  A=suspension(C, not_stored_yet, 0, _, B),
 8760        'chr gen_id'(C)
 8761    ;   true
 8762    ),
 8763    'known/1_1_$special_nonvar/1___1__1'(B, A).
 8764'known/1_1_$special_nonvar/1___1__1'(A, E) :-
 8765    (   'chr newvia_1'(A, B)
 8766    ->  get_attr(B, guard_entailment, C),
 8767        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8768    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8769                  D)
 8770    ),
 8771    !,
 8772    'known/1_1_$special_nonvar/1___1__1__0__8'(D, A, E).
 8773'known/1_1_$special_nonvar/1___1__1__0__8'([], A, B) :-
 8774    'known/1_1_$special_nonvar/1___1__2'(A, B).
 8775'known/1_1_$special_nonvar/1___1__1__0__8'([A|X], F, N) :-
 8776    (   A=suspension(_, active, _, _, B, W),
 8777        nonvar(B),
 8778        B=(C, _),
 8779        nonvar(C),
 8780        C=(\+D),
 8781        nonvar(D),
 8782        D=nonvar(E),
 8783        E==F
 8784    ->  ( A=suspension(_, _, _, _, G, H),
 8785          setarg(2, A, removed),
 8786          term_variables(term(G, H), M),
 8787          ( arg(4, A, I),
 8788            (   var(I)
 8789            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8790                          J),
 8791                J=[_|K],
 8792                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8793                         K),
 8794                (   K=[L|_]
 8795                ->  setarg(4, L, _)
 8796                ;   true
 8797                )
 8798            ;   I=[_, _|K],
 8799                setarg(2, I, K),
 8800                (   K=[L|_]
 8801                ->  setarg(4, L, I)
 8802                ;   true
 8803                )
 8804            )
 8805          ),
 8806          'detach_known/1_1_$special_;/2___2'(M, A)
 8807        ),
 8808        ( arg(2, N, Q),
 8809          setarg(2, N, active),
 8810          ( arg(3, N, O),
 8811            P is O+1,
 8812            setarg(3, N, P)
 8813          ),
 8814          (   Q==not_stored_yet
 8815          ->  N=suspension(_, _, _, _, R),
 8816              term_variables(R, S),
 8817              'chr none_locked'(S),
 8818              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8819                          T),
 8820                U=[N|T],
 8821                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8822                         U),
 8823                (   T=[V|_]
 8824                ->  setarg(4, V, U)
 8825                ;   true
 8826                )
 8827              ),
 8828              'attach_known/1_1_$special_nonvar/1___1'(S, N)
 8829          ;   true
 8830          )
 8831        ),
 8832        known(W),
 8833        (   N=suspension(_, active, P, _, _)
 8834        ->  setarg(2, N, inactive),
 8835            'known/1_1_$special_nonvar/1___1__1__0__8'(X,
 8836                                                       F,
 8837                                                       N)
 8838        ;   true
 8839        )
 8840    ;   'known/1_1_$special_nonvar/1___1__1__0__8'(X, F, N)
 8841    ).
 8842'known/1_1_$special_nonvar/1___1__1'(A, B) :-
 8843    'known/1_1_$special_nonvar/1___1__2'(A, B).
 8844'known/1_1_$special_nonvar/1___1__2'(_, A) :-
 8845    arg(2, A, D),
 8846    setarg(2, A, active),
 8847    arg(3, A, B),
 8848    C is B+1,
 8849    setarg(3, A, C),
 8850    (   D==not_stored_yet
 8851    ->  A=suspension(_, _, _, _, E),
 8852        term_variables(E, F),
 8853        'chr none_locked'(F),
 8854        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8855                    G),
 8856          H=[A|G],
 8857          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8858                   H),
 8859          (   G=[I|_]
 8860          ->  setarg(4, I, H)
 8861          ;   true
 8862          )
 8863        ),
 8864        'attach_known/1_1_$special_nonvar/1___1'(F, A)
 8865    ;   true
 8866    ).
 8867'known/1_1_$special_var/1'(A) :-
 8868    'known/1_1_$special_var/1___1__0'(A, _).
 8869'known/1_1_$special_var/1___1__0'(A, G) :-
 8870    (   'chr newvia_1'(A, B)
 8871    ->  get_attr(B, guard_entailment, C),
 8872        C=v(_, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8873    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8874                  D)
 8875    ),
 8876    member(E, D),
 8877    E=suspension(_, active, _, _, F),
 8878    F==A,
 8879    !,
 8880    (   var(G)
 8881    ->  true
 8882    ;   G=suspension(_, H, _, _, I),
 8883        setarg(2, G, removed),
 8884        (   H==not_stored_yet
 8885        ->  J=[]
 8886        ;   term_variables(I, J),
 8887            ( arg(4, G, K),
 8888              (   var(K)
 8889              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8890                            L),
 8891                  L=[_|M],
 8892                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8893                           M),
 8894                  (   M=[N|_]
 8895                  ->  setarg(4, N, _)
 8896                  ;   true
 8897                  )
 8898              ;   K=[_, _|M],
 8899                  setarg(2, K, M),
 8900                  (   M=[N|_]
 8901                  ->  setarg(4, N, K)
 8902                  ;   true
 8903                  )
 8904              )
 8905            ),
 8906            'detach_known/1_1_$special_var/1___1'(J, G)
 8907        )
 8908    ).
 8909'known/1_1_$special_var/1___1__0'(_, C) :-
 8910    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 8911              A),
 8912    member(B, A),
 8913    B=suspension(_, active, _),
 8914    !,
 8915    (   var(C)
 8916    ->  true
 8917    ;   C=suspension(_, D, _, _, E),
 8918        setarg(2, C, removed),
 8919        (   D==not_stored_yet
 8920        ->  F=[]
 8921        ;   term_variables(E, F),
 8922            ( arg(4, C, G),
 8923              (   var(G)
 8924              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8925                            H),
 8926                  H=[_|I],
 8927                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8928                           I),
 8929                  (   I=[J|_]
 8930                  ->  setarg(4, J, _)
 8931                  ;   true
 8932                  )
 8933              ;   G=[_, _|I],
 8934                  setarg(2, G, I),
 8935                  (   I=[J|_]
 8936                  ->  setarg(4, J, G)
 8937                  ;   true
 8938                  )
 8939              )
 8940            ),
 8941            'detach_known/1_1_$special_var/1___1'(F, C)
 8942        )
 8943    ).
 8944'known/1_1_$special_var/1___1__0'(A, N) :-
 8945    (   'chr newvia_1'(A, B)
 8946    ->  get_attr(B, guard_entailment, C),
 8947        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
 8948    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8949                  D)
 8950    ),
 8951    member(E, D),
 8952    E=suspension(_, active, _, _, F),
 8953    nonvar(F),
 8954    F=var(G),
 8955    G==A,
 8956    !,
 8957    E=suspension(_, _, _, _, H),
 8958    setarg(2, E, removed),
 8959    term_variables(H, M),
 8960    arg(4, E, I),
 8961    (   var(I)
 8962    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8963                  J),
 8964        J=[_|K],
 8965        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8966                 K),
 8967        (   K=[L|_]
 8968        ->  setarg(4, L, _)
 8969        ;   true
 8970        )
 8971    ;   I=[_, _|K],
 8972        setarg(2, I, K),
 8973        (   K=[L|_]
 8974        ->  setarg(4, L, I)
 8975        ;   true
 8976        )
 8977    ),
 8978    'detach_known/1_1_$special_\\+/1___1'(M, E),
 8979    (   var(N)
 8980    ->  true
 8981    ;   N=suspension(_, O, _, _, P),
 8982        setarg(2, N, removed),
 8983        (   O==not_stored_yet
 8984        ->  Q=[]
 8985        ;   term_variables(P, Q),
 8986            ( arg(4, N, R),
 8987              (   var(R)
 8988              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8989                            S),
 8990                  S=[_|T],
 8991                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8992                           T),
 8993                  (   T=[U|_]
 8994                  ->  setarg(4, U, _)
 8995                  ;   true
 8996                  )
 8997              ;   R=[_, _|T],
 8998                  setarg(2, R, T),
 8999                  (   T=[U|_]
 9000                  ->  setarg(4, U, R)
 9001                  ;   true
 9002                  )
 9003              )
 9004            ),
 9005            'detach_known/1_1_$special_var/1___1'(Q, N)
 9006        )
 9007    ),
 9008    'known/1_1_$special_fail/0'.
 9009'known/1_1_$special_var/1___1__0'(A, M) :-
 9010    (   'chr newvia_1'(A, B)
 9011    ->  get_attr(B, guard_entailment, C),
 9012        C=v(_, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9013    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 9014                  D)
 9015    ),
 9016    member(E, D),
 9017    E=suspension(_, active, _, _, F),
 9018    F==A,
 9019    !,
 9020    E=suspension(_, _, _, _, G),
 9021    setarg(2, E, removed),
 9022    term_variables(G, L),
 9023    arg(4, E, H),
 9024    (   var(H)
 9025    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 9026                  I),
 9027        I=[_|J],
 9028        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 9029                 J),
 9030        (   J=[K|_]
 9031        ->  setarg(4, K, _)
 9032        ;   true
 9033        )
 9034    ;   H=[_, _|J],
 9035        setarg(2, H, J),
 9036        (   J=[K|_]
 9037        ->  setarg(4, K, H)
 9038        ;   true
 9039        )
 9040    ),
 9041    'detach_known/1_1_$special_nonvar/1___1'(L, E),
 9042    (   var(M)
 9043    ->  true
 9044    ;   M=suspension(_, N, _, _, O),
 9045        setarg(2, M, removed),
 9046        (   N==not_stored_yet
 9047        ->  P=[]
 9048        ;   term_variables(O, P),
 9049            ( arg(4, M, Q),
 9050              (   var(Q)
 9051              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 9052                            R),
 9053                  R=[_|S],
 9054                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 9055                           S),
 9056                  (   S=[T|_]
 9057                  ->  setarg(4, T, _)
 9058                  ;   true
 9059                  )
 9060              ;   Q=[_, _|S],
 9061                  setarg(2, Q, S),
 9062                  (   S=[T|_]
 9063                  ->  setarg(4, T, Q)
 9064                  ;   true
 9065                  )
 9066              )
 9067            ),
 9068            'detach_known/1_1_$special_var/1___1'(P, M)
 9069        )
 9070    ),
 9071    'known/1_1_$special_fail/0'.
 9072'known/1_1_$special_var/1___1__0'(A, E) :-
 9073    (   'chr newvia_1'(A, B)
 9074    ->  get_attr(B, guard_entailment, C),
 9075        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9076    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9077                  D)
 9078    ),
 9079    !,
 9080    (   var(E)
 9081    ->  E=suspension(F, not_stored_yet, 0, _, A),
 9082        'chr gen_id'(F)
 9083    ;   true
 9084    ),
 9085    'known/1_1_$special_var/1___1__0__0__7'(D, A, E).
 9086'known/1_1_$special_var/1___1__0__0__7'([], A, B) :-
 9087    'known/1_1_$special_var/1___1__1'(A, B).
 9088'known/1_1_$special_var/1___1__0__0__7'([A|W], E, M) :-
 9089    (   A=suspension(_, active, _, _, B, V),
 9090        nonvar(B),
 9091        B=(\+C),
 9092        nonvar(C),
 9093        C=var(D),
 9094        D==E
 9095    ->  ( A=suspension(_, _, _, _, F, G),
 9096          setarg(2, A, removed),
 9097          term_variables(term(F, G), L),
 9098          ( arg(4, A, H),
 9099            (   var(H)
 9100            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9101                          I),
 9102                I=[_|J],
 9103                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9104                         J),
 9105                (   J=[K|_]
 9106                ->  setarg(4, K, _)
 9107                ;   true
 9108                )
 9109            ;   H=[_, _|J],
 9110                setarg(2, H, J),
 9111                (   J=[K|_]
 9112                ->  setarg(4, K, H)
 9113                ;   true
 9114                )
 9115            )
 9116          ),
 9117          'detach_known/1_1_$special_;/2___2'(L, A)
 9118        ),
 9119        ( arg(2, M, P),
 9120          setarg(2, M, active),
 9121          ( arg(3, M, N),
 9122            O is N+1,
 9123            setarg(3, M, O)
 9124          ),
 9125          (   P==not_stored_yet
 9126          ->  M=suspension(_, _, _, _, Q),
 9127              term_variables(Q, R),
 9128              'chr none_locked'(R),
 9129              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 9130                          S),
 9131                T=[M|S],
 9132                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 9133                         T),
 9134                (   S=[U|_]
 9135                ->  setarg(4, U, T)
 9136                ;   true
 9137                )
 9138              ),
 9139              'attach_known/1_1_$special_var/1___1'(R, M)
 9140          ;   true
 9141          )
 9142        ),
 9143        known(V),
 9144        (   M=suspension(_, active, O, _, _)
 9145        ->  setarg(2, M, inactive),
 9146            'known/1_1_$special_var/1___1__0__0__7'(W, E, M)
 9147        ;   true
 9148        )
 9149    ;   'known/1_1_$special_var/1___1__0__0__7'(W, E, M)
 9150    ).
 9151'known/1_1_$special_var/1___1__0'(B, A) :-
 9152    (   var(A)
 9153    ->  A=suspension(C, not_stored_yet, 0, _, B),
 9154        'chr gen_id'(C)
 9155    ;   true
 9156    ),
 9157    'known/1_1_$special_var/1___1__1'(B, A).
 9158'known/1_1_$special_var/1___1__1'(A, E) :-
 9159    (   'chr newvia_1'(A, B)
 9160    ->  get_attr(B, guard_entailment, C),
 9161        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9162    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9163                  D)
 9164    ),
 9165    !,
 9166    'known/1_1_$special_var/1___1__1__0__8'(D, A, E).
 9167'known/1_1_$special_var/1___1__1__0__8'([], A, B) :-
 9168    'known/1_1_$special_var/1___1__2'(A, B).
 9169'known/1_1_$special_var/1___1__1__0__8'([A|X], F, N) :-
 9170    (   A=suspension(_, active, _, _, B, W),
 9171        nonvar(B),
 9172        B=(C, _),
 9173        nonvar(C),
 9174        C=(\+D),
 9175        nonvar(D),
 9176        D=var(E),
 9177        E==F
 9178    ->  ( A=suspension(_, _, _, _, G, H),
 9179          setarg(2, A, removed),
 9180          term_variables(term(G, H), M),
 9181          ( arg(4, A, I),
 9182            (   var(I)
 9183            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9184                          J),
 9185                J=[_|K],
 9186                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9187                         K),
 9188                (   K=[L|_]
 9189                ->  setarg(4, L, _)
 9190                ;   true
 9191                )
 9192            ;   I=[_, _|K],
 9193                setarg(2, I, K),
 9194                (   K=[L|_]
 9195                ->  setarg(4, L, I)
 9196                ;   true
 9197                )
 9198            )
 9199          ),
 9200          'detach_known/1_1_$special_;/2___2'(M, A)
 9201        ),
 9202        ( arg(2, N, Q),
 9203          setarg(2, N, active),
 9204          ( arg(3, N, O),
 9205            P is O+1,
 9206            setarg(3, N, P)
 9207          ),
 9208          (   Q==not_stored_yet
 9209          ->  N=suspension(_, _, _, _, R),
 9210              term_variables(R, S),
 9211              'chr none_locked'(S),
 9212              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 9213                          T),
 9214                U=[N|T],
 9215                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 9216                         U),
 9217                (   T=[V|_]
 9218                ->  setarg(4, V, U)
 9219                ;   true
 9220                )
 9221              ),
 9222              'attach_known/1_1_$special_var/1___1'(S, N)
 9223          ;   true
 9224          )
 9225        ),
 9226        known(W),
 9227        (   N=suspension(_, active, P, _, _)
 9228        ->  setarg(2, N, inactive),
 9229            'known/1_1_$special_var/1___1__1__0__8'(X, F, N)
 9230        ;   true
 9231        )
 9232    ;   'known/1_1_$special_var/1___1__1__0__8'(X, F, N)
 9233    ).
 9234'known/1_1_$special_var/1___1__1'(A, B) :-
 9235    'known/1_1_$special_var/1___1__2'(A, B).
 9236'known/1_1_$special_var/1___1__2'(_, A) :-
 9237    arg(2, A, D),
 9238    setarg(2, A, active),
 9239    arg(3, A, B),
 9240    C is B+1,
 9241    setarg(3, A, C),
 9242    (   D==not_stored_yet
 9243    ->  A=suspension(_, _, _, _, E),
 9244        term_variables(E, F),
 9245        'chr none_locked'(F),
 9246        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 9247                    G),
 9248          H=[A|G],
 9249          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 9250                   H),
 9251          (   G=[I|_]
 9252          ->  setarg(4, I, H)
 9253          ;   true
 9254          )
 9255        ),
 9256        'attach_known/1_1_$special_var/1___1'(F, A)
 9257    ;   true
 9258    ).
 9259'known/1_1_$special_atom/1'(A) :-
 9260    'known/1_1_$special_atom/1___1__0'(A, _).
 9261'known/1_1_$special_atom/1___1__0'(A, G) :-
 9262    (   'chr newvia_1'(A, B)
 9263    ->  get_attr(B, guard_entailment, C),
 9264        C=v(_, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9265    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9266                  D)
 9267    ),
 9268    member(E, D),
 9269    E=suspension(_, active, _, _, _, F),
 9270    F==A,
 9271    !,
 9272    (   var(G)
 9273    ->  true
 9274    ;   G=suspension(_, H, _, _, _, I),
 9275        setarg(2, G, removed),
 9276        (   H==not_stored_yet
 9277        ->  J=[]
 9278        ;   term_variables(I, J),
 9279            ( arg(5, G, K),
 9280              (   var(K)
 9281              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9282                            L),
 9283                  L=[_|M],
 9284                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9285                           M),
 9286                  (   M=[N|_]
 9287                  ->  setarg(5, N, _)
 9288                  ;   true
 9289                  )
 9290              ;   K=[_, _|M],
 9291                  setarg(2, K, M),
 9292                  (   M=[N|_]
 9293                  ->  setarg(5, N, K)
 9294                  ;   true
 9295                  )
 9296              )
 9297            ),
 9298            'detach_known/1_1_$special_atom/1___1'(J, G)
 9299        )
 9300    ).
 9301'known/1_1_$special_atom/1___1__0'(_, C) :-
 9302    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 9303              A),
 9304    member(B, A),
 9305    B=suspension(_, active, _),
 9306    !,
 9307    (   var(C)
 9308    ->  true
 9309    ;   C=suspension(_, D, _, _, _, E),
 9310        setarg(2, C, removed),
 9311        (   D==not_stored_yet
 9312        ->  F=[]
 9313        ;   term_variables(E, F),
 9314            ( arg(5, C, G),
 9315              (   var(G)
 9316              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9317                            H),
 9318                  H=[_|I],
 9319                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9320                           I),
 9321                  (   I=[J|_]
 9322                  ->  setarg(5, J, _)
 9323                  ;   true
 9324                  )
 9325              ;   G=[_, _|I],
 9326                  setarg(2, G, I),
 9327                  (   I=[J|_]
 9328                  ->  setarg(5, J, G)
 9329                  ;   true
 9330                  )
 9331              )
 9332            ),
 9333            'detach_known/1_1_$special_atom/1___1'(F, C)
 9334        )
 9335    ).
 9336'known/1_1_$special_atom/1___1__0'(A, N) :-
 9337    (   'chr newvia_1'(A, B)
 9338    ->  get_attr(B, guard_entailment, C),
 9339        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
 9340    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9341                  D)
 9342    ),
 9343    member(E, D),
 9344    E=suspension(_, active, _, _, F),
 9345    nonvar(F),
 9346    F=atom(G),
 9347    G==A,
 9348    !,
 9349    E=suspension(_, _, _, _, H),
 9350    setarg(2, E, removed),
 9351    term_variables(H, M),
 9352    arg(4, E, I),
 9353    (   var(I)
 9354    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9355                  J),
 9356        J=[_|K],
 9357        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9358                 K),
 9359        (   K=[L|_]
 9360        ->  setarg(4, L, _)
 9361        ;   true
 9362        )
 9363    ;   I=[_, _|K],
 9364        setarg(2, I, K),
 9365        (   K=[L|_]
 9366        ->  setarg(4, L, I)
 9367        ;   true
 9368        )
 9369    ),
 9370    'detach_known/1_1_$special_\\+/1___1'(M, E),
 9371    (   var(N)
 9372    ->  true
 9373    ;   N=suspension(_, O, _, _, _, P),
 9374        setarg(2, N, removed),
 9375        (   O==not_stored_yet
 9376        ->  Q=[]
 9377        ;   term_variables(P, Q),
 9378            ( arg(5, N, R),
 9379              (   var(R)
 9380              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9381                            S),
 9382                  S=[_|T],
 9383                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9384                           T),
 9385                  (   T=[U|_]
 9386                  ->  setarg(5, U, _)
 9387                  ;   true
 9388                  )
 9389              ;   R=[_, _|T],
 9390                  setarg(2, R, T),
 9391                  (   T=[U|_]
 9392                  ->  setarg(5, U, R)
 9393                  ;   true
 9394                  )
 9395              )
 9396            ),
 9397            'detach_known/1_1_$special_atom/1___1'(Q, N)
 9398        )
 9399    ),
 9400    'known/1_1_$special_fail/0'.
 9401'known/1_1_$special_atom/1___1__0'(B, A) :-
 9402    (   var(A)
 9403    ->  A=suspension(C, not_stored_yet, t, 0, _, B),
 9404        'chr gen_id'(C)
 9405    ;   true
 9406    ),
 9407    (   '$novel_production'(A, 239),
 9408        !,
 9409        '$extend_history'(A, 239),
 9410        arg(2, A, F),
 9411        setarg(2, A, active),
 9412        arg(4, A, D),
 9413        E is D+1,
 9414        setarg(4, A, E),
 9415        (   F==not_stored_yet
 9416        ->  A=suspension(_, _, _, _, _, G),
 9417            term_variables(G, H),
 9418            'chr none_locked'(H),
 9419            ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9420                        I),
 9421              J=[A|I],
 9422              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9423                       J),
 9424              (   I=[K|_]
 9425              ->  setarg(5, K, J)
 9426              ;   true
 9427              )
 9428            ),
 9429            'attach_known/1_1_$special_atom/1___1'(H, A)
 9430        ;   true
 9431        ),
 9432        'known/1_1_$special_nonvar/1'(B),
 9433        (   A=suspension(_, active, _, E, _, _)
 9434        ->  setarg(2, A, inactive),
 9435            'known/1_1_$special_atom/1___1__1'(B, A)
 9436        ;   true
 9437        )
 9438    ;   'known/1_1_$special_atom/1___1__1'(B, A)
 9439    ).
 9440'known/1_1_$special_atom/1___1__1'(A, E) :-
 9441    (   'chr newvia_1'(A, B)
 9442    ->  get_attr(B, guard_entailment, C),
 9443        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9444    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9445                  D)
 9446    ),
 9447    !,
 9448    'known/1_1_$special_atom/1___1__1__0__7'(D, A, E).
 9449'known/1_1_$special_atom/1___1__1__0__7'([], A, B) :-
 9450    'known/1_1_$special_atom/1___1__2'(A, B).
 9451'known/1_1_$special_atom/1___1__1__0__7'([A|W], E, M) :-
 9452    (   A=suspension(_, active, _, _, B, V),
 9453        nonvar(B),
 9454        B=(\+C),
 9455        nonvar(C),
 9456        C=atom(D),
 9457        D==E
 9458    ->  ( A=suspension(_, _, _, _, F, G),
 9459          setarg(2, A, removed),
 9460          term_variables(term(F, G), L),
 9461          ( arg(4, A, H),
 9462            (   var(H)
 9463            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9464                          I),
 9465                I=[_|J],
 9466                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9467                         J),
 9468                (   J=[K|_]
 9469                ->  setarg(4, K, _)
 9470                ;   true
 9471                )
 9472            ;   H=[_, _|J],
 9473                setarg(2, H, J),
 9474                (   J=[K|_]
 9475                ->  setarg(4, K, H)
 9476                ;   true
 9477                )
 9478            )
 9479          ),
 9480          'detach_known/1_1_$special_;/2___2'(L, A)
 9481        ),
 9482        ( arg(2, M, P),
 9483          setarg(2, M, active),
 9484          ( arg(4, M, N),
 9485            O is N+1,
 9486            setarg(4, M, O)
 9487          ),
 9488          (   P==not_stored_yet
 9489          ->  M=suspension(_, _, _, _, _, Q),
 9490              term_variables(Q, R),
 9491              'chr none_locked'(R),
 9492              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9493                          S),
 9494                T=[M|S],
 9495                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9496                         T),
 9497                (   S=[U|_]
 9498                ->  setarg(5, U, T)
 9499                ;   true
 9500                )
 9501              ),
 9502              'attach_known/1_1_$special_atom/1___1'(R, M)
 9503          ;   true
 9504          )
 9505        ),
 9506        known(V),
 9507        (   M=suspension(_, active, _, O, _, _)
 9508        ->  setarg(2, M, inactive),
 9509            'known/1_1_$special_atom/1___1__1__0__7'(W, E, M)
 9510        ;   true
 9511        )
 9512    ;   'known/1_1_$special_atom/1___1__1__0__7'(W, E, M)
 9513    ).
 9514'known/1_1_$special_atom/1___1__1'(A, B) :-
 9515    'known/1_1_$special_atom/1___1__2'(A, B).
 9516'known/1_1_$special_atom/1___1__2'(A, E) :-
 9517    (   'chr newvia_1'(A, B)
 9518    ->  get_attr(B, guard_entailment, C),
 9519        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9520    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9521                  D)
 9522    ),
 9523    !,
 9524    'known/1_1_$special_atom/1___1__2__0__8'(D, A, E).
 9525'known/1_1_$special_atom/1___1__2__0__8'([], A, B) :-
 9526    'known/1_1_$special_atom/1___1__3'(A, B).
 9527'known/1_1_$special_atom/1___1__2__0__8'([A|X], F, N) :-
 9528    (   A=suspension(_, active, _, _, B, W),
 9529        nonvar(B),
 9530        B=(C, _),
 9531        nonvar(C),
 9532        C=(\+D),
 9533        nonvar(D),
 9534        D=atom(E),
 9535        E==F
 9536    ->  ( A=suspension(_, _, _, _, G, H),
 9537          setarg(2, A, removed),
 9538          term_variables(term(G, H), M),
 9539          ( arg(4, A, I),
 9540            (   var(I)
 9541            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9542                          J),
 9543                J=[_|K],
 9544                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9545                         K),
 9546                (   K=[L|_]
 9547                ->  setarg(4, L, _)
 9548                ;   true
 9549                )
 9550            ;   I=[_, _|K],
 9551                setarg(2, I, K),
 9552                (   K=[L|_]
 9553                ->  setarg(4, L, I)
 9554                ;   true
 9555                )
 9556            )
 9557          ),
 9558          'detach_known/1_1_$special_;/2___2'(M, A)
 9559        ),
 9560        ( arg(2, N, Q),
 9561          setarg(2, N, active),
 9562          ( arg(4, N, O),
 9563            P is O+1,
 9564            setarg(4, N, P)
 9565          ),
 9566          (   Q==not_stored_yet
 9567          ->  N=suspension(_, _, _, _, _, R),
 9568              term_variables(R, S),
 9569              'chr none_locked'(S),
 9570              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9571                          T),
 9572                U=[N|T],
 9573                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9574                         U),
 9575                (   T=[V|_]
 9576                ->  setarg(5, V, U)
 9577                ;   true
 9578                )
 9579              ),
 9580              'attach_known/1_1_$special_atom/1___1'(S, N)
 9581          ;   true
 9582          )
 9583        ),
 9584        known(W),
 9585        (   N=suspension(_, active, _, P, _, _)
 9586        ->  setarg(2, N, inactive),
 9587            'known/1_1_$special_atom/1___1__2__0__8'(X, F, N)
 9588        ;   true
 9589        )
 9590    ;   'known/1_1_$special_atom/1___1__2__0__8'(X, F, N)
 9591    ).
 9592'known/1_1_$special_atom/1___1__2'(A, B) :-
 9593    'known/1_1_$special_atom/1___1__3'(A, B).
 9594'known/1_1_$special_atom/1___1__3'(_, A) :-
 9595    arg(2, A, D),
 9596    setarg(2, A, active),
 9597    arg(4, A, B),
 9598    C is B+1,
 9599    setarg(4, A, C),
 9600    (   D==not_stored_yet
 9601    ->  A=suspension(_, _, _, _, _, E),
 9602        term_variables(E, F),
 9603        'chr none_locked'(F),
 9604        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9605                    G),
 9606          H=[A|G],
 9607          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9608                   H),
 9609          (   G=[I|_]
 9610          ->  setarg(5, I, H)
 9611          ;   true
 9612          )
 9613        ),
 9614        'attach_known/1_1_$special_atom/1___1'(F, A)
 9615    ;   true
 9616    ).
 9617'known/1_1_$special_atomic/1'(A) :-
 9618    'known/1_1_$special_atomic/1___1__0'(A, _).
 9619'known/1_1_$special_atomic/1___1__0'(A, G) :-
 9620    (   'chr newvia_1'(A, B)
 9621    ->  get_attr(B, guard_entailment, C),
 9622        C=v(_, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9623    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9624                  D)
 9625    ),
 9626    member(E, D),
 9627    E=suspension(_, active, _, _, _, F),
 9628    F==A,
 9629    !,
 9630    (   var(G)
 9631    ->  true
 9632    ;   G=suspension(_, H, _, _, _, I),
 9633        setarg(2, G, removed),
 9634        (   H==not_stored_yet
 9635        ->  J=[]
 9636        ;   term_variables(I, J),
 9637            ( arg(5, G, K),
 9638              (   var(K)
 9639              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9640                            L),
 9641                  L=[_|M],
 9642                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9643                           M),
 9644                  (   M=[N|_]
 9645                  ->  setarg(5, N, _)
 9646                  ;   true
 9647                  )
 9648              ;   K=[_, _|M],
 9649                  setarg(2, K, M),
 9650                  (   M=[N|_]
 9651                  ->  setarg(5, N, K)
 9652                  ;   true
 9653                  )
 9654              )
 9655            ),
 9656            'detach_known/1_1_$special_atomic/1___1'(J, G)
 9657        )
 9658    ).
 9659'known/1_1_$special_atomic/1___1__0'(_, C) :-
 9660    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 9661              A),
 9662    member(B, A),
 9663    B=suspension(_, active, _),
 9664    !,
 9665    (   var(C)
 9666    ->  true
 9667    ;   C=suspension(_, D, _, _, _, E),
 9668        setarg(2, C, removed),
 9669        (   D==not_stored_yet
 9670        ->  F=[]
 9671        ;   term_variables(E, F),
 9672            ( arg(5, C, G),
 9673              (   var(G)
 9674              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9675                            H),
 9676                  H=[_|I],
 9677                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9678                           I),
 9679                  (   I=[J|_]
 9680                  ->  setarg(5, J, _)
 9681                  ;   true
 9682                  )
 9683              ;   G=[_, _|I],
 9684                  setarg(2, G, I),
 9685                  (   I=[J|_]
 9686                  ->  setarg(5, J, G)
 9687                  ;   true
 9688                  )
 9689              )
 9690            ),
 9691            'detach_known/1_1_$special_atomic/1___1'(F, C)
 9692        )
 9693    ).
 9694'known/1_1_$special_atomic/1___1__0'(A, N) :-
 9695    (   'chr newvia_1'(A, B)
 9696    ->  get_attr(B, guard_entailment, C),
 9697        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
 9698    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9699                  D)
 9700    ),
 9701    member(E, D),
 9702    E=suspension(_, active, _, _, F),
 9703    nonvar(F),
 9704    F=atomic(G),
 9705    G==A,
 9706    !,
 9707    E=suspension(_, _, _, _, H),
 9708    setarg(2, E, removed),
 9709    term_variables(H, M),
 9710    arg(4, E, I),
 9711    (   var(I)
 9712    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9713                  J),
 9714        J=[_|K],
 9715        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9716                 K),
 9717        (   K=[L|_]
 9718        ->  setarg(4, L, _)
 9719        ;   true
 9720        )
 9721    ;   I=[_, _|K],
 9722        setarg(2, I, K),
 9723        (   K=[L|_]
 9724        ->  setarg(4, L, I)
 9725        ;   true
 9726        )
 9727    ),
 9728    'detach_known/1_1_$special_\\+/1___1'(M, E),
 9729    (   var(N)
 9730    ->  true
 9731    ;   N=suspension(_, O, _, _, _, P),
 9732        setarg(2, N, removed),
 9733        (   O==not_stored_yet
 9734        ->  Q=[]
 9735        ;   term_variables(P, Q),
 9736            ( arg(5, N, R),
 9737              (   var(R)
 9738              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9739                            S),
 9740                  S=[_|T],
 9741                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9742                           T),
 9743                  (   T=[U|_]
 9744                  ->  setarg(5, U, _)
 9745                  ;   true
 9746                  )
 9747              ;   R=[_, _|T],
 9748                  setarg(2, R, T),
 9749                  (   T=[U|_]
 9750                  ->  setarg(5, U, R)
 9751                  ;   true
 9752                  )
 9753              )
 9754            ),
 9755            'detach_known/1_1_$special_atomic/1___1'(Q, N)
 9756        )
 9757    ),
 9758    'known/1_1_$special_fail/0'.
 9759'known/1_1_$special_atomic/1___1__0'(B, A) :-
 9760    (   var(A)
 9761    ->  A=suspension(C, not_stored_yet, t, 0, _, B),
 9762        'chr gen_id'(C)
 9763    ;   true
 9764    ),
 9765    (   '$novel_production'(A, 237),
 9766        !,
 9767        '$extend_history'(A, 237),
 9768        arg(2, A, F),
 9769        setarg(2, A, active),
 9770        arg(4, A, D),
 9771        E is D+1,
 9772        setarg(4, A, E),
 9773        (   F==not_stored_yet
 9774        ->  A=suspension(_, _, _, _, _, G),
 9775            term_variables(G, H),
 9776            'chr none_locked'(H),
 9777            ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9778                        I),
 9779              J=[A|I],
 9780              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9781                       J),
 9782              (   I=[K|_]
 9783              ->  setarg(5, K, J)
 9784              ;   true
 9785              )
 9786            ),
 9787            'attach_known/1_1_$special_atomic/1___1'(H, A)
 9788        ;   true
 9789        ),
 9790        'known/1_1_$special_nonvar/1'(B),
 9791        (   A=suspension(_, active, _, E, _, _)
 9792        ->  setarg(2, A, inactive),
 9793            'known/1_1_$special_atomic/1___1__1'(B, A)
 9794        ;   true
 9795        )
 9796    ;   'known/1_1_$special_atomic/1___1__1'(B, A)
 9797    ).
 9798'known/1_1_$special_atomic/1___1__1'(A, E) :-
 9799    (   'chr newvia_1'(A, B)
 9800    ->  get_attr(B, guard_entailment, C),
 9801        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9802    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9803                  D)
 9804    ),
 9805    !,
 9806    'known/1_1_$special_atomic/1___1__1__0__7'(D, A, E).
 9807'known/1_1_$special_atomic/1___1__1__0__7'([], A, B) :-
 9808    'known/1_1_$special_atomic/1___1__2'(A, B).
 9809'known/1_1_$special_atomic/1___1__1__0__7'([A|W], E, M) :-
 9810    (   A=suspension(_, active, _, _, B, V),
 9811        nonvar(B),
 9812        B=(\+C),
 9813        nonvar(C),
 9814        C=atomic(D),
 9815        D==E
 9816    ->  ( A=suspension(_, _, _, _, F, G),
 9817          setarg(2, A, removed),
 9818          term_variables(term(F, G), L),
 9819          ( arg(4, A, H),
 9820            (   var(H)
 9821            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9822                          I),
 9823                I=[_|J],
 9824                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9825                         J),
 9826                (   J=[K|_]
 9827                ->  setarg(4, K, _)
 9828                ;   true
 9829                )
 9830            ;   H=[_, _|J],
 9831                setarg(2, H, J),
 9832                (   J=[K|_]
 9833                ->  setarg(4, K, H)
 9834                ;   true
 9835                )
 9836            )
 9837          ),
 9838          'detach_known/1_1_$special_;/2___2'(L, A)
 9839        ),
 9840        ( arg(2, M, P),
 9841          setarg(2, M, active),
 9842          ( arg(4, M, N),
 9843            O is N+1,
 9844            setarg(4, M, O)
 9845          ),
 9846          (   P==not_stored_yet
 9847          ->  M=suspension(_, _, _, _, _, Q),
 9848              term_variables(Q, R),
 9849              'chr none_locked'(R),
 9850              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9851                          S),
 9852                T=[M|S],
 9853                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9854                         T),
 9855                (   S=[U|_]
 9856                ->  setarg(5, U, T)
 9857                ;   true
 9858                )
 9859              ),
 9860              'attach_known/1_1_$special_atomic/1___1'(R, M)
 9861          ;   true
 9862          )
 9863        ),
 9864        known(V),
 9865        (   M=suspension(_, active, _, O, _, _)
 9866        ->  setarg(2, M, inactive),
 9867            'known/1_1_$special_atomic/1___1__1__0__7'(W,
 9868                                                       E,
 9869                                                       M)
 9870        ;   true
 9871        )
 9872    ;   'known/1_1_$special_atomic/1___1__1__0__7'(W, E, M)
 9873    ).
 9874'known/1_1_$special_atomic/1___1__1'(A, B) :-
 9875    'known/1_1_$special_atomic/1___1__2'(A, B).
 9876'known/1_1_$special_atomic/1___1__2'(A, E) :-
 9877    (   'chr newvia_1'(A, B)
 9878    ->  get_attr(B, guard_entailment, C),
 9879        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9880    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9881                  D)
 9882    ),
 9883    !,
 9884    'known/1_1_$special_atomic/1___1__2__0__8'(D, A, E).
 9885'known/1_1_$special_atomic/1___1__2__0__8'([], A, B) :-
 9886    'known/1_1_$special_atomic/1___1__3'(A, B).
 9887'known/1_1_$special_atomic/1___1__2__0__8'([A|X], F, N) :-
 9888    (   A=suspension(_, active, _, _, B, W),
 9889        nonvar(B),
 9890        B=(C, _),
 9891        nonvar(C),
 9892        C=(\+D),
 9893        nonvar(D),
 9894        D=atomic(E),
 9895        E==F
 9896    ->  ( A=suspension(_, _, _, _, G, H),
 9897          setarg(2, A, removed),
 9898          term_variables(term(G, H), M),
 9899          ( arg(4, A, I),
 9900            (   var(I)
 9901            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9902                          J),
 9903                J=[_|K],
 9904                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9905                         K),
 9906                (   K=[L|_]
 9907                ->  setarg(4, L, _)
 9908                ;   true
 9909                )
 9910            ;   I=[_, _|K],
 9911                setarg(2, I, K),
 9912                (   K=[L|_]
 9913                ->  setarg(4, L, I)
 9914                ;   true
 9915                )
 9916            )
 9917          ),
 9918          'detach_known/1_1_$special_;/2___2'(M, A)
 9919        ),
 9920        ( arg(2, N, Q),
 9921          setarg(2, N, active),
 9922          ( arg(4, N, O),
 9923            P is O+1,
 9924            setarg(4, N, P)
 9925          ),
 9926          (   Q==not_stored_yet
 9927          ->  N=suspension(_, _, _, _, _, R),
 9928              term_variables(R, S),
 9929              'chr none_locked'(S),
 9930              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9931                          T),
 9932                U=[N|T],
 9933                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9934                         U),
 9935                (   T=[V|_]
 9936                ->  setarg(5, V, U)
 9937                ;   true
 9938                )
 9939              ),
 9940              'attach_known/1_1_$special_atomic/1___1'(S, N)
 9941          ;   true
 9942          )
 9943        ),
 9944        known(W),
 9945        (   N=suspension(_, active, _, P, _, _)
 9946        ->  setarg(2, N, inactive),
 9947            'known/1_1_$special_atomic/1___1__2__0__8'(X,
 9948                                                       F,
 9949                                                       N)
 9950        ;   true
 9951        )
 9952    ;   'known/1_1_$special_atomic/1___1__2__0__8'(X, F, N)
 9953    ).
 9954'known/1_1_$special_atomic/1___1__2'(A, B) :-
 9955    'known/1_1_$special_atomic/1___1__3'(A, B).
 9956'known/1_1_$special_atomic/1___1__3'(_, A) :-
 9957    arg(2, A, D),
 9958    setarg(2, A, active),
 9959    arg(4, A, B),
 9960    C is B+1,
 9961    setarg(4, A, C),
 9962    (   D==not_stored_yet
 9963    ->  A=suspension(_, _, _, _, _, E),
 9964        term_variables(E, F),
 9965        'chr none_locked'(F),
 9966        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9967                    G),
 9968          H=[A|G],
 9969          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9970                   H),
 9971          (   G=[I|_]
 9972          ->  setarg(5, I, H)
 9973          ;   true
 9974          )
 9975        ),
 9976        'attach_known/1_1_$special_atomic/1___1'(F, A)
 9977    ;   true
 9978    ).
 9979'known/1_1_$special_compound/1'(A) :-
 9980    'known/1_1_$special_compound/1___1__0'(A, _).
 9981'known/1_1_$special_compound/1___1__0'(A, G) :-
 9982    (   'chr newvia_1'(A, B)
 9983    ->  get_attr(B, guard_entailment, C),
 9984        C=v(_, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9985    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9986                  D)
 9987    ),
 9988    member(E, D),
 9989    E=suspension(_, active, _, _, _, F),
 9990    F==A,
 9991    !,
 9992    (   var(G)
 9993    ->  true
 9994    ;   G=suspension(_, H, _, _, _, I),
 9995        setarg(2, G, removed),
 9996        (   H==not_stored_yet
 9997        ->  J=[]
 9998        ;   term_variables(I, J),
 9999            ( arg(5, G, K),
10000              (   var(K)
10001              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10002                            L),
10003                  L=[_|M],
10004                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10005                           M),
10006                  (   M=[N|_]
10007                  ->  setarg(5, N, _)
10008                  ;   true
10009                  )
10010              ;   K=[_, _|M],
10011                  setarg(2, K, M),
10012                  (   M=[N|_]
10013                  ->  setarg(5, N, K)
10014                  ;   true
10015                  )
10016              )
10017            ),
10018            'detach_known/1_1_$special_compound/1___1'(J, G)
10019        )
10020    ).
10021'known/1_1_$special_compound/1___1__0'(_, C) :-
10022    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
10023              A),
10024    member(B, A),
10025    B=suspension(_, active, _),
10026    !,
10027    (   var(C)
10028    ->  true
10029    ;   C=suspension(_, D, _, _, _, E),
10030        setarg(2, C, removed),
10031        (   D==not_stored_yet
10032        ->  F=[]
10033        ;   term_variables(E, F),
10034            ( arg(5, C, G),
10035              (   var(G)
10036              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10037                            H),
10038                  H=[_|I],
10039                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10040                           I),
10041                  (   I=[J|_]
10042                  ->  setarg(5, J, _)
10043                  ;   true
10044                  )
10045              ;   G=[_, _|I],
10046                  setarg(2, G, I),
10047                  (   I=[J|_]
10048                  ->  setarg(5, J, G)
10049                  ;   true
10050                  )
10051              )
10052            ),
10053            'detach_known/1_1_$special_compound/1___1'(F, C)
10054        )
10055    ).
10056'known/1_1_$special_compound/1___1__0'(A, N) :-
10057    (   'chr newvia_1'(A, B)
10058    ->  get_attr(B, guard_entailment, C),
10059        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
10060    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10061                  D)
10062    ),
10063    member(E, D),
10064    E=suspension(_, active, _, _, F),
10065    nonvar(F),
10066    F=compound(G),
10067    G==A,
10068    !,
10069    E=suspension(_, _, _, _, H),
10070    setarg(2, E, removed),
10071    term_variables(H, M),
10072    arg(4, E, I),
10073    (   var(I)
10074    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10075                  J),
10076        J=[_|K],
10077        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10078                 K),
10079        (   K=[L|_]
10080        ->  setarg(4, L, _)
10081        ;   true
10082        )
10083    ;   I=[_, _|K],
10084        setarg(2, I, K),
10085        (   K=[L|_]
10086        ->  setarg(4, L, I)
10087        ;   true
10088        )
10089    ),
10090    'detach_known/1_1_$special_\\+/1___1'(M, E),
10091    (   var(N)
10092    ->  true
10093    ;   N=suspension(_, O, _, _, _, P),
10094        setarg(2, N, removed),
10095        (   O==not_stored_yet
10096        ->  Q=[]
10097        ;   term_variables(P, Q),
10098            ( arg(5, N, R),
10099              (   var(R)
10100              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10101                            S),
10102                  S=[_|T],
10103                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10104                           T),
10105                  (   T=[U|_]
10106                  ->  setarg(5, U, _)
10107                  ;   true
10108                  )
10109              ;   R=[_, _|T],
10110                  setarg(2, R, T),
10111                  (   T=[U|_]
10112                  ->  setarg(5, U, R)
10113                  ;   true
10114                  )
10115              )
10116            ),
10117            'detach_known/1_1_$special_compound/1___1'(Q, N)
10118        )
10119    ),
10120    'known/1_1_$special_fail/0'.
10121'known/1_1_$special_compound/1___1__0'(B, A) :-
10122    (   var(A)
10123    ->  A=suspension(C, not_stored_yet, t, 0, _, B),
10124        'chr gen_id'(C)
10125    ;   true
10126    ),
10127    (   '$novel_production'(A, 236),
10128        !,
10129        '$extend_history'(A, 236),
10130        arg(2, A, F),
10131        setarg(2, A, active),
10132        arg(4, A, D),
10133        E is D+1,
10134        setarg(4, A, E),
10135        (   F==not_stored_yet
10136        ->  A=suspension(_, _, _, _, _, G),
10137            term_variables(G, H),
10138            'chr none_locked'(H),
10139            ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10140                        I),
10141              J=[A|I],
10142              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10143                       J),
10144              (   I=[K|_]
10145              ->  setarg(5, K, J)
10146              ;   true
10147              )
10148            ),
10149            'attach_known/1_1_$special_compound/1___1'(H, A)
10150        ;   true
10151        ),
10152        'known/1_1_$special_nonvar/1'(B),
10153        (   A=suspension(_, active, _, E, _, _)
10154        ->  setarg(2, A, inactive),
10155            'known/1_1_$special_compound/1___1__1'(B, A)
10156        ;   true
10157        )
10158    ;   'known/1_1_$special_compound/1___1__1'(B, A)
10159    ).
10160'known/1_1_$special_compound/1___1__1'(A, E) :-
10161    (   'chr newvia_1'(A, B)
10162    ->  get_attr(B, guard_entailment, C),
10163        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
10164    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10165                  D)
10166    ),
10167    !,
10168    'known/1_1_$special_compound/1___1__1__0__7'(D, A, E).
10169'known/1_1_$special_compound/1___1__1__0__7'([], A, B) :-
10170    'known/1_1_$special_compound/1___1__2'(A, B).
10171'known/1_1_$special_compound/1___1__1__0__7'([A|W], E, M) :-
10172    (   A=suspension(_, active, _, _, B, V),
10173        nonvar(B),
10174        B=(\+C),
10175        nonvar(C),
10176        C=compound(D),
10177        D==E
10178    ->  ( A=suspension(_, _, _, _, F, G),
10179          setarg(2, A, removed),
10180          term_variables(term(F, G), L),
10181          ( arg(4, A, H),
10182            (   var(H)
10183            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10184                          I),
10185                I=[_|J],
10186                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10187                         J),
10188                (   J=[K|_]
10189                ->  setarg(4, K, _)
10190                ;   true
10191                )
10192            ;   H=[_, _|J],
10193                setarg(2, H, J),
10194                (   J=[K|_]
10195                ->  setarg(4, K, H)
10196                ;   true
10197                )
10198            )
10199          ),
10200          'detach_known/1_1_$special_;/2___2'(L, A)
10201        ),
10202        ( arg(2, M, P),
10203          setarg(2, M, active),
10204          ( arg(4, M, N),
10205            O is N+1,
10206            setarg(4, M, O)
10207          ),
10208          (   P==not_stored_yet
10209          ->  M=suspension(_, _, _, _, _, Q),
10210              term_variables(Q, R),
10211              'chr none_locked'(R),
10212              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10213                          S),
10214                T=[M|S],
10215                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10216                         T),
10217                (   S=[U|_]
10218                ->  setarg(5, U, T)
10219                ;   true
10220                )
10221              ),
10222              'attach_known/1_1_$special_compound/1___1'(R, M)
10223          ;   true
10224          )
10225        ),
10226        known(V),
10227        (   M=suspension(_, active, _, O, _, _)
10228        ->  setarg(2, M, inactive),
10229            'known/1_1_$special_compound/1___1__1__0__7'(W,
10230                                                         E,
10231                                                         M)
10232        ;   true
10233        )
10234    ;   'known/1_1_$special_compound/1___1__1__0__7'(W, E, M)
10235    ).
10236'known/1_1_$special_compound/1___1__1'(A, B) :-
10237    'known/1_1_$special_compound/1___1__2'(A, B).
10238'known/1_1_$special_compound/1___1__2'(A, E) :-
10239    (   'chr newvia_1'(A, B)
10240    ->  get_attr(B, guard_entailment, C),
10241        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
10242    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10243                  D)
10244    ),
10245    !,
10246    'known/1_1_$special_compound/1___1__2__0__8'(D, A, E).
10247'known/1_1_$special_compound/1___1__2__0__8'([], A, B) :-
10248    'known/1_1_$special_compound/1___1__3'(A, B).
10249'known/1_1_$special_compound/1___1__2__0__8'([A|X], F, N) :-
10250    (   A=suspension(_, active, _, _, B, W),
10251        nonvar(B),
10252        B=(C, _),
10253        nonvar(C),
10254        C=(\+D),
10255        nonvar(D),
10256        D=compound(E),
10257        E==F
10258    ->  ( A=suspension(_, _, _, _, G, H),
10259          setarg(2, A, removed),
10260          term_variables(term(G, H), M),
10261          ( arg(4, A, I),
10262            (   var(I)
10263            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10264                          J),
10265                J=[_|K],
10266                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10267                         K),
10268                (   K=[L|_]
10269                ->  setarg(4, L, _)
10270                ;   true
10271                )
10272            ;   I=[_, _|K],
10273                setarg(2, I, K),
10274                (   K=[L|_]
10275                ->  setarg(4, L, I)
10276                ;   true
10277                )
10278            )
10279          ),
10280          'detach_known/1_1_$special_;/2___2'(M, A)
10281        ),
10282        ( arg(2, N, Q),
10283          setarg(2, N, active),
10284          ( arg(4, N, O),
10285            P is O+1,
10286            setarg(4, N, P)
10287          ),
10288          (   Q==not_stored_yet
10289          ->  N=suspension(_, _, _, _, _, R),
10290              term_variables(R, S),
10291              'chr none_locked'(S),
10292              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10293                          T),
10294                U=[N|T],
10295                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10296                         U),
10297                (   T=[V|_]
10298                ->  setarg(5, V, U)
10299                ;   true
10300                )
10301              ),
10302              'attach_known/1_1_$special_compound/1___1'(S, N)
10303          ;   true
10304          )
10305        ),
10306        known(W),
10307        (   N=suspension(_, active, _, P, _, _)
10308        ->  setarg(2, N, inactive),
10309            'known/1_1_$special_compound/1___1__2__0__8'(X,
10310                                                         F,
10311                                                         N)
10312        ;   true
10313        )
10314    ;   'known/1_1_$special_compound/1___1__2__0__8'(X, F, N)
10315    ).
10316'known/1_1_$special_compound/1___1__2'(A, B) :-
10317    'known/1_1_$special_compound/1___1__3'(A, B).
10318'known/1_1_$special_compound/1___1__3'(_, A) :-
10319    arg(2, A, D),
10320    setarg(2, A, active),
10321    arg(4, A, B),
10322    C is B+1,
10323    setarg(4, A, C),
10324    (   D==not_stored_yet
10325    ->  A=suspension(_, _, _, _, _, E),
10326        term_variables(E, F),
10327        'chr none_locked'(F),
10328        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10329                    G),
10330          H=[A|G],
10331          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10332                   H),
10333          (   G=[I|_]
10334          ->  setarg(5, I, H)
10335          ;   true
10336          )
10337        ),
10338        'attach_known/1_1_$special_compound/1___1'(F, A)
10339    ;   true
10340    ).
10341'known/1_1_$special_ground/1'(A) :-
10342    'known/1_1_$special_ground/1___1__0'(A, _).
10343'known/1_1_$special_ground/1___1__0'(A, G) :-
10344    (   'chr newvia_1'(A, B)
10345    ->  get_attr(B, guard_entailment, C),
10346        C=v(_, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _)
10347    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10348                  D)
10349    ),
10350    member(E, D),
10351    E=suspension(_, active, _, _, _, F),
10352    F==A,
10353    !,
10354    (   var(G)
10355    ->  true
10356    ;   G=suspension(_, H, _, _, _, I),
10357        setarg(2, G, removed),
10358        (   H==not_stored_yet
10359        ->  J=[]
10360        ;   term_variables(I, J),
10361            ( arg(5, G, K),
10362              (   var(K)
10363              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10364                            L),
10365                  L=[_|M],
10366                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10367                           M),
10368                  (   M=[N|_]
10369                  ->  setarg(5, N, _)
10370                  ;   true
10371                  )
10372              ;   K=[_, _|M],
10373                  setarg(2, K, M),
10374                  (   M=[N|_]
10375                  ->  setarg(5, N, K)
10376                  ;   true
10377                  )
10378              )
10379            ),
10380            'detach_known/1_1_$special_ground/1___1'(J, G)
10381        )
10382    ).
10383'known/1_1_$special_ground/1___1__0'(_, C) :-
10384    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
10385              A),
10386    member(B, A),
10387    B=suspension(_, active, _),
10388    !,
10389    (   var(C)
10390    ->  true
10391    ;   C=suspension(_, D, _, _, _, E),
10392        setarg(2, C, removed),
10393        (   D==not_stored_yet
10394        ->  F=[]
10395        ;   term_variables(E, F),
10396            ( arg(5, C, G),
10397              (   var(G)
10398              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10399                            H),
10400                  H=[_|I],
10401                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10402                           I),
10403                  (   I=[J|_]
10404                  ->  setarg(5, J, _)
10405                  ;   true
10406                  )
10407              ;   G=[_, _|I],
10408                  setarg(2, G, I),
10409                  (   I=[J|_]
10410                  ->  setarg(5, J, G)
10411                  ;   true
10412                  )
10413              )
10414            ),
10415            'detach_known/1_1_$special_ground/1___1'(F, C)
10416        )
10417    ).
10418'known/1_1_$special_ground/1___1__0'(A, N) :-
10419    (   'chr newvia_1'(A, B)
10420    ->  get_attr(B, guard_entailment, C),
10421        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
10422    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10423                  D)
10424    ),
10425    member(E, D),
10426    E=suspension(_, active, _, _, F),
10427    nonvar(F),
10428    F=ground(G),
10429    G==A,
10430    !,
10431    E=suspension(_, _, _, _, H),
10432    setarg(2, E, removed),
10433    term_variables(H, M),
10434    arg(4, E, I),
10435    (   var(I)
10436    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10437                  J),
10438        J=[_|K],
10439        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10440                 K),
10441        (   K=[L|_]
10442        ->  setarg(4, L, _)
10443        ;   true
10444        )
10445    ;   I=[_, _|K],
10446        setarg(2, I, K),
10447        (   K=[L|_]
10448        ->  setarg(4, L, I)
10449        ;   true
10450        )
10451    ),
10452    'detach_known/1_1_$special_\\+/1___1'(M, E),
10453    (   var(N)
10454    ->  true
10455    ;   N=suspension(_, O, _, _, _, P),
10456        setarg(2, N, removed),
10457        (   O==not_stored_yet
10458        ->  Q=[]
10459        ;   term_variables(P, Q),
10460            ( arg(5, N, R),
10461              (   var(R)
10462              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10463                            S),
10464                  S=[_|T],
10465                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10466                           T),
10467                  (   T=[U|_]
10468                  ->  setarg(5, U, _)
10469                  ;   true
10470                  )
10471              ;   R=[_, _|T],
10472                  setarg(2, R, T),
10473                  (   T=[U|_]
10474                  ->  setarg(5, U, R)
10475                  ;   true
10476                  )
10477              )
10478            ),
10479            'detach_known/1_1_$special_ground/1___1'(Q, N)
10480        )
10481    ),
10482    'known/1_1_$special_fail/0'.
10483'known/1_1_$special_ground/1___1__0'(B, A) :-
10484    (   var(A)
10485    ->  A=suspension(C, not_stored_yet, t, 0, _, B),
10486        'chr gen_id'(C)
10487    ;   true
10488    ),
10489    (   '$novel_production'(A, 235),
10490        !,
10491        '$extend_history'(A, 235),
10492        arg(2, A, F),
10493        setarg(2, A, active),
10494        arg(4, A, D),
10495        E is D+1,
10496        setarg(4, A, E),
10497        (   F==not_stored_yet
10498        ->  A=suspension(_, _, _, _, _, G),
10499            term_variables(G, H),
10500            'chr none_locked'(H),
10501            ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10502                        I),
10503              J=[A|I],
10504              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10505                       J),
10506              (   I=[K|_]
10507              ->  setarg(5, K, J)
10508              ;   true
10509              )
10510            ),
10511            'attach_known/1_1_$special_ground/1___1'(H, A)
10512        ;   true
10513        ),
10514        'known/1_1_$special_nonvar/1'(B),
10515        (   A=suspension(_, active, _, E, _, _)
10516        ->  setarg(2, A, inactive),
10517            'known/1_1_$special_ground/1___1__1'(B, A)
10518        ;   true
10519        )
10520    ;   'known/1_1_$special_ground/1___1__1'(B, A)
10521    ).
10522'known/1_1_$special_ground/1___1__1'(A, E) :-
10523    (   'chr newvia_1'(A, B)
10524    ->  get_attr(B, guard_entailment, C),
10525        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
10526    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10527                  D)
10528    ),
10529    !,
10530    'known/1_1_$special_ground/1___1__1__0__7'(D, A, E).
10531'known/1_1_$special_ground/1___1__1__0__7'([], A, B) :-
10532    'known/1_1_$special_ground/1___1__2'(A, B).
10533'known/1_1_$special_ground/1___1__1__0__7'([A|W], E, M) :-
10534    (   A=suspension(_, active, _, _, B, V),
10535        nonvar(B),
10536        B=(\+C),
10537        nonvar(C),
10538        C=ground(D),
10539        D==E
10540    ->  ( A=suspension(_, _, _, _, F, G),
10541          setarg(2, A, removed),
10542          term_variables(term(F, G), L),
10543          ( arg(4, A, H),
10544            (   var(H)
10545            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10546                          I),
10547                I=[_|J],
10548                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10549                         J),
10550                (   J=[K|_]
10551                ->  setarg(4, K, _)
10552                ;   true
10553                )
10554            ;   H=[_, _|J],
10555                setarg(2, H, J),
10556                (   J=[K|_]
10557                ->  setarg(4, K, H)
10558                ;   true
10559                )
10560            )
10561          ),
10562          'detach_known/1_1_$special_;/2___2'(L, A)
10563        ),
10564        ( arg(2, M, P),
10565          setarg(2, M, active),
10566          ( arg(4, M, N),
10567            O is N+1,
10568            setarg(4, M, O)
10569          ),
10570          (   P==not_stored_yet
10571          ->  M=suspension(_, _, _, _, _, Q),
10572              term_variables(Q, R),
10573              'chr none_locked'(R),
10574              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10575                          S),
10576                T=[M|S],
10577                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10578                         T),
10579                (   S=[U|_]
10580                ->  setarg(5, U, T)
10581                ;   true
10582                )
10583              ),
10584              'attach_known/1_1_$special_ground/1___1'(R, M)
10585          ;   true
10586          )
10587        ),
10588        known(V),
10589        (   M=suspension(_, active, _, O, _, _)
10590        ->  setarg(2, M, inactive),
10591            'known/1_1_$special_ground/1___1__1__0__7'(W,
10592                                                       E,
10593                                                       M)
10594        ;   true
10595        )
10596    ;   'known/1_1_$special_ground/1___1__1__0__7'(W, E, M)
10597    ).
10598'known/1_1_$special_ground/1___1__1'(A, B) :-
10599    'known/1_1_$special_ground/1___1__2'(A, B).
10600'known/1_1_$special_ground/1___1__2'(A, E) :-
10601    (   'chr newvia_1'(A, B)
10602    ->  get_attr(B, guard_entailment, C),
10603        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
10604    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10605                  D)
10606    ),
10607    !,
10608    'known/1_1_$special_ground/1___1__2__0__8'(D, A, E).
10609'known/1_1_$special_ground/1___1__2__0__8'([], A, B) :-
10610    'known/1_1_$special_ground/1___1__3'(A, B).
10611'known/1_1_$special_ground/1___1__2__0__8'([A|X], F, N) :-
10612    (   A=suspension(_, active, _, _, B, W),
10613        nonvar(B),
10614        B=(C, _),
10615        nonvar(C),
10616        C=(\+D),
10617        nonvar(D),
10618        D=ground(E),
10619        E==F
10620    ->  ( A=suspension(_, _, _, _, G, H),
10621          setarg(2, A, removed),
10622          term_variables(term(G, H), M),
10623          ( arg(4, A, I),
10624            (   var(I)
10625            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10626                          J),
10627                J=[_|K],
10628                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10629                         K),
10630                (   K=[L|_]
10631                ->  setarg(4, L, _)
10632                ;   true
10633                )
10634            ;   I=[_, _|K],
10635                setarg(2, I, K),
10636                (   K=[L|_]
10637                ->  setarg(4, L, I)
10638                ;   true
10639                )
10640            )
10641          ),
10642          'detach_known/1_1_$special_;/2___2'(M, A)
10643        ),
10644        ( arg(2, N, Q),
10645          setarg(2, N, active),
10646          ( arg(4, N, O),
10647            P is O+1,
10648            setarg(4, N, P)
10649          ),
10650          (   Q==not_stored_yet
10651          ->  N=suspension(_, _, _, _, _, R),
10652              term_variables(R, S),
10653              'chr none_locked'(S),
10654              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10655                          T),
10656                U=[N|T],
10657                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10658                         U),
10659                (   T=[V|_]
10660                ->  setarg(5, V, U)
10661                ;   true
10662                )
10663              ),
10664              'attach_known/1_1_$special_ground/1___1'(S, N)
10665          ;   true
10666          )
10667        ),
10668        known(W),
10669        (   N=suspension(_, active, _, P, _, _)
10670        ->  setarg(2, N, inactive),
10671            'known/1_1_$special_ground/1___1__2__0__8'(X,
10672                                                       F,
10673                                                       N)
10674        ;   true
10675        )
10676    ;   'known/1_1_$special_ground/1___1__2__0__8'(X, F, N)
10677    ).
10678'known/1_1_$special_ground/1___1__2'(A, B) :-
10679    'known/1_1_$special_ground/1___1__3'(A, B).
10680'known/1_1_$special_ground/1___1__3'(_, A) :-
10681    arg(2, A, D),
10682    setarg(2, A, active),
10683    arg(4, A, B),
10684    C is B+1,
10685    setarg(4, A, C),
10686    (   D==not_stored_yet
10687    ->  A=suspension(_, _, _, _, _, E),
10688        term_variables(E, F),
10689        'chr none_locked'(F),
10690        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10691                    G),
10692          H=[A|G],
10693          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10694                   H),
10695          (   G=[I|_]
10696          ->  setarg(5, I, H)
10697          ;   true
10698          )
10699        ),
10700        'attach_known/1_1_$special_ground/1___1'(F, A)
10701    ;   true
10702    ).
10703'known/1_1_$special_integer/1'(A) :-
10704    'known/1_1_$special_integer/1___1__0'(A, _).
10705'known/1_1_$special_integer/1___1__0'(A, G) :-
10706    (   'chr newvia_1'(A, B)
10707    ->  get_attr(B, guard_entailment, C),
10708        C=v(_, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _)
10709    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10710                  D)
10711    ),
10712    member(E, D),
10713    E=suspension(_, active, _, _, _, F),
10714    F==A,
10715    !,
10716    (   var(G)
10717    ->  true
10718    ;   G=suspension(_, H, _, _, _, I),
10719        setarg(2, G, removed),
10720        (   H==not_stored_yet
10721        ->  J=[]
10722        ;   term_variables(I, J),
10723            ( arg(5, G, K),
10724              (   var(K)
10725              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10726                            L),
10727                  L=[_|M],
10728                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10729                           M),
10730                  (   M=[N|_]
10731                  ->  setarg(5, N, _)
10732                  ;   true
10733                  )
10734              ;   K=[_, _|M],
10735                  setarg(2, K, M),
10736                  (   M=[N|_]
10737                  ->  setarg(5, N, K)
10738                  ;   true
10739                  )
10740              )
10741            ),
10742            'detach_known/1_1_$special_integer/1___1'(J, G)
10743        )
10744    ).
10745'known/1_1_$special_integer/1___1__0'(_, C) :-
10746    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
10747              A),
10748    member(B, A),
10749    B=suspension(_, active, _),
10750    !,
10751    (   var(C)
10752    ->  true
10753    ;   C=suspension(_, D, _, _, _, E),
10754        setarg(2, C, removed),
10755        (   D==not_stored_yet
10756        ->  F=[]
10757        ;   term_variables(E, F),
10758            ( arg(5, C, G),
10759              (   var(G)
10760              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10761                            H),
10762                  H=[_|I],
10763                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10764                           I),
10765                  (   I=[J|_]
10766                  ->  setarg(5, J, _)
10767                  ;   true
10768                  )
10769              ;   G=[_, _|I],
10770                  setarg(2, G, I),
10771                  (   I=[J|_]
10772                  ->  setarg(5, J, G)
10773                  ;   true
10774                  )
10775              )
10776            ),
10777            'detach_known/1_1_$special_integer/1___1'(F, C)
10778        )
10779    ).
10780'known/1_1_$special_integer/1___1__0'(A, B) :-
10781    nonvar(A),
10782    \+ integer(A),
10783    !,
10784    (   var(B)
10785    ->  true
10786    ;   B=suspension(_, C, _, _, _, D),
10787        setarg(2, B, removed),
10788        (   C==not_stored_yet
10789        ->  E=[]
10790        ;   term_variables(D, E),
10791            ( arg(5, B, F),
10792              (   var(F)
10793              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10794                            G),
10795                  G=[_|H],
10796                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10797                           H),
10798                  (   H=[I|_]
10799                  ->  setarg(5, I, _)
10800                  ;   true
10801                  )
10802              ;   F=[_, _|H],
10803                  setarg(2, F, H),
10804                  (   H=[I|_]
10805                  ->  setarg(5, I, F)
10806                  ;   true
10807                  )
10808              )
10809            ),
10810            'detach_known/1_1_$special_integer/1___1'(E, B)
10811        )
10812    ),
10813    'known/1_1_$special_fail/0'.
10814'known/1_1_$special_integer/1___1__0'(B, A) :-
10815    (   var(A)
10816    ->  A=suspension(C, not_stored_yet, t, 0, _, B),
10817        'chr gen_id'(C)
10818    ;   true
10819    ),
10820    (   '$novel_production'(A, 199),
10821        !,
10822        '$extend_history'(A, 199),
10823        arg(2, A, F),
10824        setarg(2, A, active),
10825        arg(4, A, D),
10826        E is D+1,
10827        setarg(4, A, E),
10828        (   F==not_stored_yet
10829        ->  A=suspension(_, _, _, _, _, G),
10830            term_variables(G, H),
10831            'chr none_locked'(H),
10832            ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10833                        I),
10834              J=[A|I],
10835              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10836                       J),
10837              (   I=[K|_]
10838              ->  setarg(5, K, J)
10839              ;   true
10840              )
10841            ),
10842            'attach_known/1_1_$special_integer/1___1'(H, A)
10843        ;   true
10844        ),
10845        'known/1_1_$special_number/1'(B),
10846        (   A=suspension(_, active, _, E, _, _)
10847        ->  setarg(2, A, inactive),
10848            'known/1_1_$special_integer/1___1__1'(B, A)
10849        ;   true
10850        )
10851    ;   'known/1_1_$special_integer/1___1__1'(B, A)
10852    ).
10853'known/1_1_$special_integer/1___1__1'(A, N) :-
10854    (   'chr newvia_1'(A, B)
10855    ->  get_attr(B, guard_entailment, C),
10856        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
10857    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10858                  D)
10859    ),
10860    member(E, D),
10861    E=suspension(_, active, _, _, F),
10862    nonvar(F),
10863    F=integer(G),
10864    G==A,
10865    !,
10866    E=suspension(_, _, _, _, H),
10867    setarg(2, E, removed),
10868    term_variables(H, M),
10869    arg(4, E, I),
10870    (   var(I)
10871    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10872                  J),
10873        J=[_|K],
10874        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10875                 K),
10876        (   K=[L|_]
10877        ->  setarg(4, L, _)
10878        ;   true
10879        )
10880    ;   I=[_, _|K],
10881        setarg(2, I, K),
10882        (   K=[L|_]
10883        ->  setarg(4, L, I)
10884        ;   true
10885        )
10886    ),
10887    'detach_known/1_1_$special_\\+/1___1'(M, E),
10888    (   var(N)
10889    ->  true
10890    ;   N=suspension(_, O, _, _, _, P),
10891        setarg(2, N, removed),
10892        (   O==not_stored_yet
10893        ->  Q=[]
10894        ;   term_variables(P, Q),
10895            ( arg(5, N, R),
10896              (   var(R)
10897              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10898                            S),
10899                  S=[_|T],
10900                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10901                           T),
10902                  (   T=[U|_]
10903                  ->  setarg(5, U, _)
10904                  ;   true
10905                  )
10906              ;   R=[_, _|T],
10907                  setarg(2, R, T),
10908                  (   T=[U|_]
10909                  ->  setarg(5, U, R)
10910                  ;   true
10911                  )
10912              )
10913            ),
10914            'detach_known/1_1_$special_integer/1___1'(Q, N)
10915        )
10916    ),
10917    'known/1_1_$special_fail/0'.
10918'known/1_1_$special_integer/1___1__1'(A, E) :-
10919    (   'chr newvia_1'(A, B)
10920    ->  get_attr(B, guard_entailment, C),
10921        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
10922    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10923                  D)
10924    ),
10925    !,
10926    'known/1_1_$special_integer/1___1__1__0__8'(D, A, E).
10927'known/1_1_$special_integer/1___1__1__0__8'([], A, B) :-
10928    'known/1_1_$special_integer/1___1__2'(A, B).
10929'known/1_1_$special_integer/1___1__1__0__8'([A|W], E, M) :-
10930    (   A=suspension(_, active, _, _, B, V),
10931        nonvar(B),
10932        B=(\+C),
10933        nonvar(C),
10934        C=integer(D),
10935        D==E
10936    ->  ( A=suspension(_, _, _, _, F, G),
10937          setarg(2, A, removed),
10938          term_variables(term(F, G), L),
10939          ( arg(4, A, H),
10940            (   var(H)
10941            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10942                          I),
10943                I=[_|J],
10944                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10945                         J),
10946                (   J=[K|_]
10947                ->  setarg(4, K, _)
10948                ;   true
10949                )
10950            ;   H=[_, _|J],
10951                setarg(2, H, J),
10952                (   J=[K|_]
10953                ->  setarg(4, K, H)
10954                ;   true
10955                )
10956            )
10957          ),
10958          'detach_known/1_1_$special_;/2___2'(L, A)
10959        ),
10960        ( arg(2, M, P),
10961          setarg(2, M, active),
10962          ( arg(4, M, N),
10963            O is N+1,
10964            setarg(4, M, O)
10965          ),
10966          (   P==not_stored_yet
10967          ->  M=suspension(_, _, _, _, _, Q),
10968              term_variables(Q, R),
10969              'chr none_locked'(R),
10970              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10971                          S),
10972                T=[M|S],
10973                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10974                         T),
10975                (   S=[U|_]
10976                ->  setarg(5, U, T)
10977                ;   true
10978                )
10979              ),
10980              'attach_known/1_1_$special_integer/1___1'(R, M)
10981          ;   true
10982          )
10983        ),
10984        known(V),
10985        (   M=suspension(_, active, _, O, _, _)
10986        ->  setarg(2, M, inactive),
10987            'known/1_1_$special_integer/1___1__1__0__8'(W,
10988                                                        E,
10989                                                        M)
10990        ;   true
10991        )
10992    ;   'known/1_1_$special_integer/1___1__1__0__8'(W, E, M)
10993    ).
10994'known/1_1_$special_integer/1___1__1'(A, B) :-
10995    'known/1_1_$special_integer/1___1__2'(A, B).
10996'known/1_1_$special_integer/1___1__2'(A, E) :-
10997    (   'chr newvia_1'(A, B)
10998    ->  get_attr(B, guard_entailment, C),
10999        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
11000    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11001                  D)
11002    ),
11003    !,
11004    'known/1_1_$special_integer/1___1__2__0__9'(D, A, E).
11005'known/1_1_$special_integer/1___1__2__0__9'([], A, B) :-
11006    'known/1_1_$special_integer/1___1__3'(A, B).
11007'known/1_1_$special_integer/1___1__2__0__9'([A|X], F, N) :-
11008    (   A=suspension(_, active, _, _, B, W),
11009        nonvar(B),
11010        B=(C, _),
11011        nonvar(C),
11012        C=(\+D),
11013        nonvar(D),
11014        D=integer(E),
11015        E==F
11016    ->  ( A=suspension(_, _, _, _, G, H),
11017          setarg(2, A, removed),
11018          term_variables(term(G, H), M),
11019          ( arg(4, A, I),
11020            (   var(I)
11021            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11022                          J),
11023                J=[_|K],
11024                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11025                         K),
11026                (   K=[L|_]
11027                ->  setarg(4, L, _)
11028                ;   true
11029                )
11030            ;   I=[_, _|K],
11031                setarg(2, I, K),
11032                (   K=[L|_]
11033                ->  setarg(4, L, I)
11034                ;   true
11035                )
11036            )
11037          ),
11038          'detach_known/1_1_$special_;/2___2'(M, A)
11039        ),
11040        ( arg(2, N, Q),
11041          setarg(2, N, active),
11042          ( arg(4, N, O),
11043            P is O+1,
11044            setarg(4, N, P)
11045          ),
11046          (   Q==not_stored_yet
11047          ->  N=suspension(_, _, _, _, _, R),
11048              term_variables(R, S),
11049              'chr none_locked'(S),
11050              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
11051                          T),
11052                U=[N|T],
11053                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
11054                         U),
11055                (   T=[V|_]
11056                ->  setarg(5, V, U)
11057                ;   true
11058                )
11059              ),
11060              'attach_known/1_1_$special_integer/1___1'(S, N)
11061          ;   true
11062          )
11063        ),
11064        known(W),
11065        (   N=suspension(_, active, _, P, _, _)
11066        ->  setarg(2, N, inactive),
11067            'known/1_1_$special_integer/1___1__2__0__9'(X,
11068                                                        F,
11069                                                        N)
11070        ;   true
11071        )
11072    ;   'known/1_1_$special_integer/1___1__2__0__9'(X, F, N)
11073    ).
11074'known/1_1_$special_integer/1___1__2'(A, B) :-
11075    'known/1_1_$special_integer/1___1__3'(A, B).
11076'known/1_1_$special_integer/1___1__3'(_, A) :-
11077    arg(2, A, D),
11078    setarg(2, A, active),
11079    arg(4, A, B),
11080    C is B+1,
11081    setarg(4, A, C),
11082    (   D==not_stored_yet
11083    ->  A=suspension(_, _, _, _, _, E),
11084        term_variables(E, F),
11085        'chr none_locked'(F),
11086        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
11087                    G),
11088          H=[A|G],
11089          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
11090                   H),
11091          (   G=[I|_]
11092          ->  setarg(5, I, H)
11093          ;   true
11094          )
11095        ),
11096        'attach_known/1_1_$special_integer/1___1'(F, A)
11097    ;   true
11098    ).
11099'known/1_1_$special_float/1'(A) :-
11100    'known/1_1_$special_float/1___1__0'(A, _).
11101'known/1_1_$special_float/1___1__0'(A, G) :-
11102    (   'chr newvia_1'(A, B)
11103    ->  get_attr(B, guard_entailment, C),
11104        C=v(_, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _)
11105    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11106                  D)
11107    ),
11108    member(E, D),
11109    E=suspension(_, active, _, _, _, F),
11110    F==A,
11111    !,
11112    (   var(G)
11113    ->  true
11114    ;   G=suspension(_, H, _, _, _, I),
11115        setarg(2, G, removed),
11116        (   H==not_stored_yet
11117        ->  J=[]
11118        ;   term_variables(I, J),
11119            ( arg(5, G, K),
11120              (   var(K)
11121              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11122                            L),
11123                  L=[_|M],
11124                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11125                           M),
11126                  (   M=[N|_]
11127                  ->  setarg(5, N, _)
11128                  ;   true
11129                  )
11130              ;   K=[_, _|M],
11131                  setarg(2, K, M),
11132                  (   M=[N|_]
11133                  ->  setarg(5, N, K)
11134                  ;   true
11135                  )
11136              )
11137            ),
11138            'detach_known/1_1_$special_float/1___1'(J, G)
11139        )
11140    ).
11141'known/1_1_$special_float/1___1__0'(_, C) :-
11142    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
11143              A),
11144    member(B, A),
11145    B=suspension(_, active, _),
11146    !,
11147    (   var(C)
11148    ->  true
11149    ;   C=suspension(_, D, _, _, _, E),
11150        setarg(2, C, removed),
11151        (   D==not_stored_yet
11152        ->  F=[]
11153        ;   term_variables(E, F),
11154            ( arg(5, C, G),
11155              (   var(G)
11156              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11157                            H),
11158                  H=[_|I],
11159                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11160                           I),
11161                  (   I=[J|_]
11162                  ->  setarg(5, J, _)
11163                  ;   true
11164                  )
11165              ;   G=[_, _|I],
11166                  setarg(2, G, I),
11167                  (   I=[J|_]
11168                  ->  setarg(5, J, G)
11169                  ;   true
11170                  )
11171              )
11172            ),
11173            'detach_known/1_1_$special_float/1___1'(F, C)
11174        )
11175    ).
11176'known/1_1_$special_float/1___1__0'(A, B) :-
11177    nonvar(A),
11178    \+ float(A),
11179    !,
11180    (   var(B)
11181    ->  true
11182    ;   B=suspension(_, C, _, _, _, D),
11183        setarg(2, B, removed),
11184        (   C==not_stored_yet
11185        ->  E=[]
11186        ;   term_variables(D, E),
11187            ( arg(5, B, F),
11188              (   var(F)
11189              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11190                            G),
11191                  G=[_|H],
11192                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11193                           H),
11194                  (   H=[I|_]
11195                  ->  setarg(5, I, _)
11196                  ;   true
11197                  )
11198              ;   F=[_, _|H],
11199                  setarg(2, F, H),
11200                  (   H=[I|_]
11201                  ->  setarg(5, I, F)
11202                  ;   true
11203                  )
11204              )
11205            ),
11206            'detach_known/1_1_$special_float/1___1'(E, B)
11207        )
11208    ),
11209    'known/1_1_$special_fail/0'.
11210'known/1_1_$special_float/1___1__0'(B, A) :-
11211    (   var(A)
11212    ->  A=suspension(C, not_stored_yet, t, 0, _, B),
11213        'chr gen_id'(C)
11214    ;   true
11215    ),
11216    (   '$novel_production'(A, 200),
11217        !,
11218        '$extend_history'(A, 200),
11219        arg(2, A, F),
11220        setarg(2, A, active),
11221        arg(4, A, D),
11222        E is D+1,
11223        setarg(4, A, E),
11224        (   F==not_stored_yet
11225        ->  A=suspension(_, _, _, _, _, G),
11226            term_variables(G, H),
11227            'chr none_locked'(H),
11228            ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11229                        I),
11230              J=[A|I],
11231              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11232                       J),
11233              (   I=[K|_]
11234              ->  setarg(5, K, J)
11235              ;   true
11236              )
11237            ),
11238            'attach_known/1_1_$special_float/1___1'(H, A)
11239        ;   true
11240        ),
11241        'known/1_1_$special_number/1'(B),
11242        (   A=suspension(_, active, _, E, _, _)
11243        ->  setarg(2, A, inactive),
11244            'known/1_1_$special_float/1___1__1'(B, A)
11245        ;   true
11246        )
11247    ;   'known/1_1_$special_float/1___1__1'(B, A)
11248    ).
11249'known/1_1_$special_float/1___1__1'(A, N) :-
11250    (   'chr newvia_1'(A, B)
11251    ->  get_attr(B, guard_entailment, C),
11252        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
11253    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
11254                  D)
11255    ),
11256    member(E, D),
11257    E=suspension(_, active, _, _, F),
11258    nonvar(F),
11259    F=float(G),
11260    G==A,
11261    !,
11262    E=suspension(_, _, _, _, H),
11263    setarg(2, E, removed),
11264    term_variables(H, M),
11265    arg(4, E, I),
11266    (   var(I)
11267    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
11268                  J),
11269        J=[_|K],
11270        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
11271                 K),
11272        (   K=[L|_]
11273        ->  setarg(4, L, _)
11274        ;   true
11275        )
11276    ;   I=[_, _|K],
11277        setarg(2, I, K),
11278        (   K=[L|_]
11279        ->  setarg(4, L, I)
11280        ;   true
11281        )
11282    ),
11283    'detach_known/1_1_$special_\\+/1___1'(M, E),
11284    (   var(N)
11285    ->  true
11286    ;   N=suspension(_, O, _, _, _, P),
11287        setarg(2, N, removed),
11288        (   O==not_stored_yet
11289        ->  Q=[]
11290        ;   term_variables(P, Q),
11291            ( arg(5, N, R),
11292              (   var(R)
11293              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11294                            S),
11295                  S=[_|T],
11296                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11297                           T),
11298                  (   T=[U|_]
11299                  ->  setarg(5, U, _)
11300                  ;   true
11301                  )
11302              ;   R=[_, _|T],
11303                  setarg(2, R, T),
11304                  (   T=[U|_]
11305                  ->  setarg(5, U, R)
11306                  ;   true
11307                  )
11308              )
11309            ),
11310            'detach_known/1_1_$special_float/1___1'(Q, N)
11311        )
11312    ),
11313    'known/1_1_$special_fail/0'.
11314'known/1_1_$special_float/1___1__1'(A, E) :-
11315    (   'chr newvia_1'(A, B)
11316    ->  get_attr(B, guard_entailment, C),
11317        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
11318    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11319                  D)
11320    ),
11321    !,
11322    'known/1_1_$special_float/1___1__1__0__8'(D, A, E).
11323'known/1_1_$special_float/1___1__1__0__8'([], A, B) :-
11324    'known/1_1_$special_float/1___1__2'(A, B).
11325'known/1_1_$special_float/1___1__1__0__8'([A|W], E, M) :-
11326    (   A=suspension(_, active, _, _, B, V),
11327        nonvar(B),
11328        B=(\+C),
11329        nonvar(C),
11330        C=float(D),
11331        D==E
11332    ->  ( A=suspension(_, _, _, _, F, G),
11333          setarg(2, A, removed),
11334          term_variables(term(F, G), L),
11335          ( arg(4, A, H),
11336            (   var(H)
11337            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11338                          I),
11339                I=[_|J],
11340                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11341                         J),
11342                (   J=[K|_]
11343                ->  setarg(4, K, _)
11344                ;   true
11345                )
11346            ;   H=[_, _|J],
11347                setarg(2, H, J),
11348                (   J=[K|_]
11349                ->  setarg(4, K, H)
11350                ;   true
11351                )
11352            )
11353          ),
11354          'detach_known/1_1_$special_;/2___2'(L, A)
11355        ),
11356        ( arg(2, M, P),
11357          setarg(2, M, active),
11358          ( arg(4, M, N),
11359            O is N+1,
11360            setarg(4, M, O)
11361          ),
11362          (   P==not_stored_yet
11363          ->  M=suspension(_, _, _, _, _, Q),
11364              term_variables(Q, R),
11365              'chr none_locked'(R),
11366              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11367                          S),
11368                T=[M|S],
11369                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11370                         T),
11371                (   S=[U|_]
11372                ->  setarg(5, U, T)
11373                ;   true
11374                )
11375              ),
11376              'attach_known/1_1_$special_float/1___1'(R, M)
11377          ;   true
11378          )
11379        ),
11380        known(V),
11381        (   M=suspension(_, active, _, O, _, _)
11382        ->  setarg(2, M, inactive),
11383            'known/1_1_$special_float/1___1__1__0__8'(W, E, M)
11384        ;   true
11385        )
11386    ;   'known/1_1_$special_float/1___1__1__0__8'(W, E, M)
11387    ).
11388'known/1_1_$special_float/1___1__1'(A, B) :-
11389    'known/1_1_$special_float/1___1__2'(A, B).
11390'known/1_1_$special_float/1___1__2'(A, E) :-
11391    (   'chr newvia_1'(A, B)
11392    ->  get_attr(B, guard_entailment, C),
11393        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
11394    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11395                  D)
11396    ),
11397    !,
11398    'known/1_1_$special_float/1___1__2__0__9'(D, A, E).
11399'known/1_1_$special_float/1___1__2__0__9'([], A, B) :-
11400    'known/1_1_$special_float/1___1__3'(A, B).
11401'known/1_1_$special_float/1___1__2__0__9'([A|X], F, N) :-
11402    (   A=suspension(_, active, _, _, B, W),
11403        nonvar(B),
11404        B=(C, _),
11405        nonvar(C),
11406        C=(\+D),
11407        nonvar(D),
11408        D=float(E),
11409        E==F
11410    ->  ( A=suspension(_, _, _, _, G, H),
11411          setarg(2, A, removed),
11412          term_variables(term(G, H), M),
11413          ( arg(4, A, I),
11414            (   var(I)
11415            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11416                          J),
11417                J=[_|K],
11418                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11419                         K),
11420                (   K=[L|_]
11421                ->  setarg(4, L, _)
11422                ;   true
11423                )
11424            ;   I=[_, _|K],
11425                setarg(2, I, K),
11426                (   K=[L|_]
11427                ->  setarg(4, L, I)
11428                ;   true
11429                )
11430            )
11431          ),
11432          'detach_known/1_1_$special_;/2___2'(M, A)
11433        ),
11434        ( arg(2, N, Q),
11435          setarg(2, N, active),
11436          ( arg(4, N, O),
11437            P is O+1,
11438            setarg(4, N, P)
11439          ),
11440          (   Q==not_stored_yet
11441          ->  N=suspension(_, _, _, _, _, R),
11442              term_variables(R, S),
11443              'chr none_locked'(S),
11444              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11445                          T),
11446                U=[N|T],
11447                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11448                         U),
11449                (   T=[V|_]
11450                ->  setarg(5, V, U)
11451                ;   true
11452                )
11453              ),
11454              'attach_known/1_1_$special_float/1___1'(S, N)
11455          ;   true
11456          )
11457        ),
11458        known(W),
11459        (   N=suspension(_, active, _, P, _, _)
11460        ->  setarg(2, N, inactive),
11461            'known/1_1_$special_float/1___1__2__0__9'(X, F, N)
11462        ;   true
11463        )
11464    ;   'known/1_1_$special_float/1___1__2__0__9'(X, F, N)
11465    ).
11466'known/1_1_$special_float/1___1__2'(A, B) :-
11467    'known/1_1_$special_float/1___1__3'(A, B).
11468'known/1_1_$special_float/1___1__3'(_, A) :-
11469    arg(2, A, D),
11470    setarg(2, A, active),
11471    arg(4, A, B),
11472    C is B+1,
11473    setarg(4, A, C),
11474    (   D==not_stored_yet
11475    ->  A=suspension(_, _, _, _, _, E),
11476        term_variables(E, F),
11477        'chr none_locked'(F),
11478        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11479                    G),
11480          H=[A|G],
11481          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11482                   H),
11483          (   G=[I|_]
11484          ->  setarg(5, I, H)
11485          ;   true
11486          )
11487        ),
11488        'attach_known/1_1_$special_float/1___1'(F, A)
11489    ;   true
11490    ).
11491'known/1_1_$special_number/1'(A) :-
11492    'known/1_1_$special_number/1___1__0'(A, _).
11493'known/1_1_$special_number/1___1__0'(A, G) :-
11494    (   'chr newvia_1'(A, B)
11495    ->  get_attr(B, guard_entailment, C),
11496        C=v(_, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _)
11497    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11498                  D)
11499    ),
11500    member(E, D),
11501    E=suspension(_, active, _, _, _, F),
11502    F==A,
11503    !,
11504    (   var(G)
11505    ->  true
11506    ;   G=suspension(_, H, _, _, _, I),
11507        setarg(2, G, removed),
11508        (   H==not_stored_yet
11509        ->  J=[]
11510        ;   term_variables(I, J),
11511            ( arg(5, G, K),
11512              (   var(K)
11513              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11514                            L),
11515                  L=[_|M],
11516                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11517                           M),
11518                  (   M=[N|_]
11519                  ->  setarg(5, N, _)
11520                  ;   true
11521                  )
11522              ;   K=[_, _|M],
11523                  setarg(2, K, M),
11524                  (   M=[N|_]
11525                  ->  setarg(5, N, K)
11526                  ;   true
11527                  )
11528              )
11529            ),
11530            'detach_known/1_1_$special_number/1___1'(J, G)
11531        )
11532    ).
11533'known/1_1_$special_number/1___1__0'(_, C) :-
11534    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
11535              A),
11536    member(B, A),
11537    B=suspension(_, active, _),
11538    !,
11539    (   var(C)
11540    ->  true
11541    ;   C=suspension(_, D, _, _, _, E),
11542        setarg(2, C, removed),
11543        (   D==not_stored_yet
11544        ->  F=[]
11545        ;   term_variables(E, F),
11546            ( arg(5, C, G),
11547              (   var(G)
11548              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11549                            H),
11550                  H=[_|I],
11551                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11552                           I),
11553                  (   I=[J|_]
11554                  ->  setarg(5, J, _)
11555                  ;   true
11556                  )
11557              ;   G=[_, _|I],
11558                  setarg(2, G, I),
11559                  (   I=[J|_]
11560                  ->  setarg(5, J, G)
11561                  ;   true
11562                  )
11563              )
11564            ),
11565            'detach_known/1_1_$special_number/1___1'(F, C)
11566        )
11567    ).
11568'known/1_1_$special_number/1___1__0'(A, B) :-
11569    nonvar(A),
11570    \+ number(A),
11571    !,
11572    (   var(B)
11573    ->  true
11574    ;   B=suspension(_, C, _, _, _, D),
11575        setarg(2, B, removed),
11576        (   C==not_stored_yet
11577        ->  E=[]
11578        ;   term_variables(D, E),
11579            ( arg(5, B, F),
11580              (   var(F)
11581              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11582                            G),
11583                  G=[_|H],
11584                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11585                           H),
11586                  (   H=[I|_]
11587                  ->  setarg(5, I, _)
11588                  ;   true
11589                  )
11590              ;   F=[_, _|H],
11591                  setarg(2, F, H),
11592                  (   H=[I|_]
11593                  ->  setarg(5, I, F)
11594                  ;   true
11595                  )
11596              )
11597            ),
11598            'detach_known/1_1_$special_number/1___1'(E, B)
11599        )
11600    ),
11601    'known/1_1_$special_fail/0'.
11602'known/1_1_$special_number/1___1__0'(A, N) :-
11603    (   'chr newvia_1'(A, B)
11604    ->  get_attr(B, guard_entailment, C),
11605        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
11606    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
11607                  D)
11608    ),
11609    member(E, D),
11610    E=suspension(_, active, _, _, F),
11611    nonvar(F),
11612    F=number(G),
11613    G==A,
11614    !,
11615    E=suspension(_, _, _, _, H),
11616    setarg(2, E, removed),
11617    term_variables(H, M),
11618    arg(4, E, I),
11619    (   var(I)
11620    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
11621                  J),
11622        J=[_|K],
11623        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
11624                 K),
11625        (   K=[L|_]
11626        ->  setarg(4, L, _)
11627        ;   true
11628        )
11629    ;   I=[_, _|K],
11630        setarg(2, I, K),
11631        (   K=[L|_]
11632        ->  setarg(4, L, I)
11633        ;   true
11634        )
11635    ),
11636    'detach_known/1_1_$special_\\+/1___1'(M, E),
11637    (   var(N)
11638    ->  true
11639    ;   N=suspension(_, O, _, _, _, P),
11640        setarg(2, N, removed),
11641        (   O==not_stored_yet
11642        ->  Q=[]
11643        ;   term_variables(P, Q),
11644            ( arg(5, N, R),
11645              (   var(R)
11646              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11647                            S),
11648                  S=[_|T],
11649                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11650                           T),
11651                  (   T=[U|_]
11652                  ->  setarg(5, U, _)
11653                  ;   true
11654                  )
11655              ;   R=[_, _|T],
11656                  setarg(2, R, T),
11657                  (   T=[U|_]
11658                  ->  setarg(5, U, R)
11659                  ;   true
11660                  )
11661              )
11662            ),
11663            'detach_known/1_1_$special_number/1___1'(Q, N)
11664        )
11665    ),
11666    'known/1_1_$special_fail/0'.
11667'known/1_1_$special_number/1___1__0'(B, A) :-
11668    (   var(A)
11669    ->  A=suspension(C, not_stored_yet, t, 0, _, B),
11670        'chr gen_id'(C)
11671    ;   true
11672    ),
11673    (   '$novel_production'(A, 238),
11674        !,
11675        '$extend_history'(A, 238),
11676        arg(2, A, F),
11677        setarg(2, A, active),
11678        arg(4, A, D),
11679        E is D+1,
11680        setarg(4, A, E),
11681        (   F==not_stored_yet
11682        ->  A=suspension(_, _, _, _, _, G),
11683            term_variables(G, H),
11684            'chr none_locked'(H),
11685            ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11686                        I),
11687              J=[A|I],
11688              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11689                       J),
11690              (   I=[K|_]
11691              ->  setarg(5, K, J)
11692              ;   true
11693              )
11694            ),
11695            'attach_known/1_1_$special_number/1___1'(H, A)
11696        ;   true
11697        ),
11698        'known/1_1_$special_nonvar/1'(B),
11699        (   A=suspension(_, active, _, E, _, _)
11700        ->  setarg(2, A, inactive),
11701            'known/1_1_$special_number/1___1__1'(B, A)
11702        ;   true
11703        )
11704    ;   'known/1_1_$special_number/1___1__1'(B, A)
11705    ).
11706'known/1_1_$special_number/1___1__1'(A, E) :-
11707    (   'chr newvia_1'(A, B)
11708    ->  get_attr(B, guard_entailment, C),
11709        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
11710    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11711                  D)
11712    ),
11713    !,
11714    'known/1_1_$special_number/1___1__1__0__8'(D, A, E).
11715'known/1_1_$special_number/1___1__1__0__8'([], A, B) :-
11716    'known/1_1_$special_number/1___1__2'(A, B).
11717'known/1_1_$special_number/1___1__1__0__8'([A|W], E, M) :-
11718    (   A=suspension(_, active, _, _, B, V),
11719        nonvar(B),
11720        B=(\+C),
11721        nonvar(C),
11722        C=number(D),
11723        D==E
11724    ->  ( A=suspension(_, _, _, _, F, G),
11725          setarg(2, A, removed),
11726          term_variables(term(F, G), L),
11727          ( arg(4, A, H),
11728            (   var(H)
11729            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11730                          I),
11731                I=[_|J],
11732                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11733                         J),
11734                (   J=[K|_]
11735                ->  setarg(4, K, _)
11736                ;   true
11737                )
11738            ;   H=[_, _|J],
11739                setarg(2, H, J),
11740                (   J=[K|_]
11741                ->  setarg(4, K, H)
11742                ;   true
11743                )
11744            )
11745          ),
11746          'detach_known/1_1_$special_;/2___2'(L, A)
11747        ),
11748        ( arg(2, M, P),
11749          setarg(2, M, active),
11750          ( arg(4, M, N),
11751            O is N+1,
11752            setarg(4, M, O)
11753          ),
11754          (   P==not_stored_yet
11755          ->  M=suspension(_, _, _, _, _, Q),
11756              term_variables(Q, R),
11757              'chr none_locked'(R),
11758              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11759                          S),
11760                T=[M|S],
11761                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11762                         T),
11763                (   S=[U|_]
11764                ->  setarg(5, U, T)
11765                ;   true
11766                )
11767              ),
11768              'attach_known/1_1_$special_number/1___1'(R, M)
11769          ;   true
11770          )
11771        ),
11772        known(V),
11773        (   M=suspension(_, active, _, O, _, _)
11774        ->  setarg(2, M, inactive),
11775            'known/1_1_$special_number/1___1__1__0__8'(W,
11776                                                       E,
11777                                                       M)
11778        ;   true
11779        )
11780    ;   'known/1_1_$special_number/1___1__1__0__8'(W, E, M)
11781    ).
11782'known/1_1_$special_number/1___1__1'(A, B) :-
11783    'known/1_1_$special_number/1___1__2'(A, B).
11784'known/1_1_$special_number/1___1__2'(A, E) :-
11785    (   'chr newvia_1'(A, B)
11786    ->  get_attr(B, guard_entailment, C),
11787        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
11788    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11789                  D)
11790    ),
11791    !,
11792    'known/1_1_$special_number/1___1__2__0__9'(D, A, E).
11793'known/1_1_$special_number/1___1__2__0__9'([], A, B) :-
11794    'known/1_1_$special_number/1___1__3'(A, B).
11795'known/1_1_$special_number/1___1__2__0__9'([A|X], F, N) :-
11796    (   A=suspension(_, active, _, _, B, W),
11797        nonvar(B),
11798        B=(C, _),
11799        nonvar(C),
11800        C=(\+D),
11801        nonvar(D),
11802        D=number(E),
11803        E==F
11804    ->  ( A=suspension(_, _, _, _, G, H),
11805          setarg(2, A, removed),
11806          term_variables(term(G, H), M),
11807          ( arg(4, A, I),
11808            (   var(I)
11809            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11810                          J),
11811                J=[_|K],
11812                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11813                         K),
11814                (   K=[L|_]
11815                ->  setarg(4, L, _)
11816                ;   true
11817                )
11818            ;   I=[_, _|K],
11819                setarg(2, I, K),
11820                (   K=[L|_]
11821                ->  setarg(4, L, I)
11822                ;   true
11823                )
11824            )
11825          ),
11826          'detach_known/1_1_$special_;/2___2'(M, A)
11827        ),
11828        ( arg(2, N, Q),
11829          setarg(2, N, active),
11830          ( arg(4, N, O),
11831            P is O+1,
11832            setarg(4, N, P)
11833          ),
11834          (   Q==not_stored_yet
11835          ->  N=suspension(_, _, _, _, _, R),
11836              term_variables(R, S),
11837              'chr none_locked'(S),
11838              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11839                          T),
11840                U=[N|T],
11841                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11842                         U),
11843                (   T=[V|_]
11844                ->  setarg(5, V, U)
11845                ;   true
11846                )
11847              ),
11848              'attach_known/1_1_$special_number/1___1'(S, N)
11849          ;   true
11850          )
11851        ),
11852        known(W),
11853        (   N=suspension(_, active, _, P, _, _)
11854        ->  setarg(2, N, inactive),
11855            'known/1_1_$special_number/1___1__2__0__9'(X,
11856                                                       F,
11857                                                       N)
11858        ;   true
11859        )
11860    ;   'known/1_1_$special_number/1___1__2__0__9'(X, F, N)
11861    ).
11862'known/1_1_$special_number/1___1__2'(A, B) :-
11863    'known/1_1_$special_number/1___1__3'(A, B).
11864'known/1_1_$special_number/1___1__3'(_, A) :-
11865    arg(2, A, D),
11866    setarg(2, A, active),
11867    arg(4, A, B),
11868    C is B+1,
11869    setarg(4, A, C),
11870    (   D==not_stored_yet
11871    ->  A=suspension(_, _, _, _, _, E),
11872        term_variables(E, F),
11873        'chr none_locked'(F),
11874        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11875                    G),
11876          H=[A|G],
11877          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11878                   H),
11879          (   G=[I|_]
11880          ->  setarg(5, I, H)
11881          ;   true
11882          )
11883        ),
11884        'attach_known/1_1_$special_number/1___1'(F, A)
11885    ;   true
11886    ).
11887'known/1_1_$special_=\\=/2'(A, B) :-
11888    'known/1_1_$special_=\\=/2___2__0'(A, B, _).
11889'known/1_1_$special_=\\=/2___2__0'(A, B, I) :-
11890    (   'chr newvia_2'(A, B, C)
11891    ->  get_attr(C, guard_entailment, D),
11892        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _, _)
11893    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11894                  E)
11895    ),
11896    member(F, E),
11897    F=suspension(_, active, _, _, _, G, H),
11898    G==A,
11899    H==B,
11900    !,
11901    (   var(I)
11902    ->  true
11903    ;   I=suspension(_, J, _, _, _, K, L),
11904        setarg(2, I, removed),
11905        (   J==not_stored_yet
11906        ->  M=[]
11907        ;   term_variables(term(K, L), M),
11908            ( arg(5, I, N),
11909              (   var(N)
11910              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11911                            O),
11912                  O=[_|P],
11913                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11914                           P),
11915                  (   P=[Q|_]
11916                  ->  setarg(5, Q, _)
11917                  ;   true
11918                  )
11919              ;   N=[_, _|P],
11920                  setarg(2, N, P),
11921                  (   P=[Q|_]
11922                  ->  setarg(5, Q, N)
11923                  ;   true
11924                  )
11925              )
11926            ),
11927            'detach_known/1_1_$special_=\\=/2___2'(M, I)
11928        )
11929    ).
11930'known/1_1_$special_=\\=/2___2__0'(_, _, C) :-
11931    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
11932              A),
11933    member(B, A),
11934    B=suspension(_, active, _),
11935    !,
11936    (   var(C)
11937    ->  true
11938    ;   C=suspension(_, D, _, _, _, E, F),
11939        setarg(2, C, removed),
11940        (   D==not_stored_yet
11941        ->  G=[]
11942        ;   term_variables(term(E, F), G),
11943            ( arg(5, C, H),
11944              (   var(H)
11945              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11946                            I),
11947                  I=[_|J],
11948                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11949                           J),
11950                  (   J=[K|_]
11951                  ->  setarg(5, K, _)
11952                  ;   true
11953                  )
11954              ;   H=[_, _|J],
11955                  setarg(2, H, J),
11956                  (   J=[K|_]
11957                  ->  setarg(5, K, H)
11958                  ;   true
11959                  )
11960              )
11961            ),
11962            'detach_known/1_1_$special_=\\=/2___2'(G, C)
11963        )
11964    ).
11965'known/1_1_$special_=\\=/2___2__0'(F, A, E) :-
11966    (   'chr newvia_1'(A, B)
11967    ->  get_attr(B, guard_entailment, C),
11968        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _)
11969    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11970                  D)
11971    ),
11972    !,
11973    (   var(E)
11974    ->  E=suspension(G, not_stored_yet, t, 0, _, F, A),
11975        'chr gen_id'(G)
11976    ;   true
11977    ),
11978    'known/1_1_$special_=\\=/2___2__0__0__5'(D, F, A, E).
11979'known/1_1_$special_=\\=/2___2__0__0__5'([], A, B, C) :-
11980    'known/1_1_$special_=\\=/2___2__1'(A, B, C).
11981'known/1_1_$special_=\\=/2___2__0__0__5'([A|H], I, C, J) :-
11982    (   ( A=suspension(_, active, _, _, _, B, D),
11983          B==C
11984        ),
11985        (   'chr newvia_2'(C, D, E)
11986        ->  get_attr(E, guard_entailment, F),
11987            F=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, G, _)
11988        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
11989                      G)
11990        )
11991    ->  'known/1_1_$special_=\\=/2___2__0__1__5'(G,
11992                                                 D,
11993                                                 A,
11994                                                 H,
11995                                                 I,
11996                                                 C,
11997                                                 J)
11998    ;   'known/1_1_$special_=\\=/2___2__0__0__5'(H, I, C, J)
11999    ).
12000'known/1_1_$special_=\\=/2___2__0__1__5'([], _, _, A, B, C, D) :-
12001    'known/1_1_$special_=\\=/2___2__0__0__5'(A, B, C, D).
12002'known/1_1_$special_=\\=/2___2__0__1__5'([A|J], E, K, L, F, C, M) :-
12003    (   ( A=suspension(_, active, _, _, _, B, D),
12004          B==C,
12005          D==E
12006        ),
12007        (   'chr newvia_2'(F, C, G)
12008        ->  get_attr(G, guard_entailment, H),
12009            H=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, I, _)
12010        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
12011                      I)
12012        )
12013    ->  'known/1_1_$special_=\\=/2___2__0__2__5'(I,
12014                                                 A,
12015                                                 J,
12016                                                 E,
12017                                                 K,
12018                                                 L,
12019                                                 F,
12020                                                 C,
12021                                                 M)
12022    ;   'known/1_1_$special_=\\=/2___2__0__1__5'(J,
12023                                                 E,
12024                                                 K,
12025                                                 L,
12026                                                 F,
12027                                                 C,
12028                                                 M)
12029    ).
12030'known/1_1_$special_=\\=/2___2__0__2__5'([], _, A, B, C, D, E, F, G) :-
12031    'known/1_1_$special_=\\=/2___2__0__1__5'(A,
12032                                             B,
12033                                             C,
12034                                             D,
12035                                             E,
12036                                             F,
12037                                             G).
12038'known/1_1_$special_=\\=/2___2__0__2__5'([A|T], B, U, S, H, V, D, F, G) :-
12039    (   A=suspension(_, active, _, _, _, C, E),
12040        A\==B,
12041        ( C==D,
12042          E==F
12043        ),
12044        I=t(188, A, G, B, H),
12045        '$novel_production'(A, I),
12046        '$novel_production'(G, I),
12047        '$novel_production'(B, I),
12048        '$novel_production'(H, I)
12049    ->  '$extend_history'(G, I),
12050        ( arg(2, G, L),
12051          setarg(2, G, active),
12052          ( arg(4, G, J),
12053            K is J+1,
12054            setarg(4, G, K)
12055          ),
12056          (   L==not_stored_yet
12057          ->  G=suspension(_, _, _, _, _, M, N),
12058              term_variables(term(M, N), O),
12059              'chr none_locked'(O),
12060              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12061                          P),
12062                Q=[G|P],
12063                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12064                         Q),
12065                (   P=[R|_]
12066                ->  setarg(5, R, Q)
12067                ;   true
12068                )
12069              ),
12070              'attach_known/1_1_$special_=\\=/2___2'(O, G)
12071          ;   true
12072          )
12073        ),
12074        'known/1_1_$special_=\\=/2'(D, S),
12075        (   G=suspension(_, active, _, K, _, _, _)
12076        ->  setarg(2, G, inactive),
12077            'known/1_1_$special_=\\=/2___2__0__2__5'(T,
12078                                                     B,
12079                                                     U,
12080                                                     S,
12081                                                     H,
12082                                                     V,
12083                                                     D,
12084                                                     F,
12085                                                     G)
12086        ;   true
12087        )
12088    ;   'known/1_1_$special_=\\=/2___2__0__2__5'(T,
12089                                                 B,
12090                                                 U,
12091                                                 S,
12092                                                 H,
12093                                                 V,
12094                                                 D,
12095                                                 F,
12096                                                 G)
12097    ).
12098'known/1_1_$special_=\\=/2___2__0'(B, C, A) :-
12099    (   var(A)
12100    ->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
12101        'chr gen_id'(D)
12102    ;   true
12103    ),
12104    'known/1_1_$special_=\\=/2___2__1'(B, C, A).
12105'known/1_1_$special_=\\=/2___2__1'(A, E, F) :-
12106    (   'chr newvia_1'(A, B)
12107    ->  get_attr(B, guard_entailment, C),
12108        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
12109    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
12110                  D)
12111    ),
12112    !,
12113    'known/1_1_$special_=\\=/2___2__1__0__6'(D, A, E, F).
12114'known/1_1_$special_=\\=/2___2__1__0__6'([], A, B, C) :-
12115    'known/1_1_$special_=\\=/2___2__2'(A, B, C).
12116'known/1_1_$special_=\\=/2___2__1__0__6'([A|I], C, D, J) :-
12117    (   ( A=suspension(_, active, _, _, _, H, B),
12118          B==C
12119        ),
12120        (   'chr newvia_2'(C, D, E)
12121        ->  get_attr(E, guard_entailment, F),
12122            F=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, G, _)
12123        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
12124                      G)
12125        )
12126    ->  'known/1_1_$special_=\\=/2___2__1__1__6'(G,
12127                                                 H,
12128                                                 A,
12129                                                 I,
12130                                                 C,
12131                                                 D,
12132                                                 J)
12133    ;   'known/1_1_$special_=\\=/2___2__1__0__6'(I, C, D, J)
12134    ).
12135'known/1_1_$special_=\\=/2___2__1__1__6'([], _, _, A, B, C, D) :-
12136    'known/1_1_$special_=\\=/2___2__1__0__6'(A, B, C, D).
12137'known/1_1_$special_=\\=/2___2__1__1__6'([A|K], G, B, L, D, F, M) :-
12138    (   ( A=suspension(_, active, _, _, _, C, E),
12139          A\==B,
12140          C==D,
12141          E==F
12142        ),
12143        (   'chr newvia_2'(G, D, H)
12144        ->  get_attr(H, guard_entailment, I),
12145            I=v(_, _, _, _, _, _, _, _, _, _, _, _, _, J, _, _, _, _, _, _, _, _)
12146        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12147                      J)
12148        )
12149    ->  'known/1_1_$special_=\\=/2___2__1__2__6'(J,
12150                                                 A,
12151                                                 K,
12152                                                 G,
12153                                                 B,
12154                                                 L,
12155                                                 D,
12156                                                 F,
12157                                                 M)
12158    ;   'known/1_1_$special_=\\=/2___2__1__1__6'(K,
12159                                                 G,
12160                                                 B,
12161                                                 L,
12162                                                 D,
12163                                                 F,
12164                                                 M)
12165    ).
12166'known/1_1_$special_=\\=/2___2__1__2__6'([], _, A, B, C, D, E, F, G) :-
12167    'known/1_1_$special_=\\=/2___2__1__1__6'(A,
12168                                             B,
12169                                             C,
12170                                             D,
12171                                             E,
12172                                             F,
12173                                             G).
12174'known/1_1_$special_=\\=/2___2__1__2__6'([A|T], G, U, C, F, V, E, S, H) :-
12175    (   A=suspension(_, active, _, _, _, B, D),
12176        ( B==C,
12177          D==E
12178        ),
12179        I=t(188, F, A, G, H),
12180        '$novel_production'(F, I),
12181        '$novel_production'(A, I),
12182        '$novel_production'(G, I),
12183        '$novel_production'(H, I)
12184    ->  '$extend_history'(H, I),
12185        ( arg(2, H, L),
12186          setarg(2, H, active),
12187          ( arg(4, H, J),
12188            K is J+1,
12189            setarg(4, H, K)
12190          ),
12191          (   L==not_stored_yet
12192          ->  H=suspension(_, _, _, _, _, M, N),
12193              term_variables(term(M, N), O),
12194              'chr none_locked'(O),
12195              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12196                          P),
12197                Q=[H|P],
12198                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12199                         Q),
12200                (   P=[R|_]
12201                ->  setarg(5, R, Q)
12202                ;   true
12203                )
12204              ),
12205              'attach_known/1_1_$special_=\\=/2___2'(O, H)
12206          ;   true
12207          )
12208        ),
12209        'known/1_1_$special_=\\=/2'(C, S),
12210        (   H=suspension(_, active, _, K, _, _, _)
12211        ->  setarg(2, H, inactive),
12212            'known/1_1_$special_=\\=/2___2__1__2__6'(T,
12213                                                     G,
12214                                                     U,
12215                                                     C,
12216                                                     F,
12217                                                     V,
12218                                                     E,
12219                                                     S,
12220                                                     H)
12221        ;   true
12222        )
12223    ;   'known/1_1_$special_=\\=/2___2__1__2__6'(T,
12224                                                 G,
12225                                                 U,
12226                                                 C,
12227                                                 F,
12228                                                 V,
12229                                                 E,
12230                                                 S,
12231                                                 H)
12232    ).
12233'known/1_1_$special_=\\=/2___2__1'(A, B, C) :-
12234    'known/1_1_$special_=\\=/2___2__2'(A, B, C).
12235'known/1_1_$special_=\\=/2___2__2'(B, A, C) :-
12236    number(A),
12237    number(B),
12238    B=:=A,
12239    !,
12240    (   var(C)
12241    ->  true
12242    ;   C=suspension(_, D, _, _, _, E, F),
12243        setarg(2, C, removed),
12244        (   D==not_stored_yet
12245        ->  G=[]
12246        ;   term_variables(term(E, F), G),
12247            ( arg(5, C, H),
12248              (   var(H)
12249              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12250                            I),
12251                  I=[_|J],
12252                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12253                           J),
12254                  (   J=[K|_]
12255                  ->  setarg(5, K, _)
12256                  ;   true
12257                  )
12258              ;   H=[_, _|J],
12259                  setarg(2, H, J),
12260                  (   J=[K|_]
12261                  ->  setarg(5, K, H)
12262                  ;   true
12263                  )
12264              )
12265            ),
12266            'detach_known/1_1_$special_=\\=/2___2'(G, C)
12267        )
12268    ),
12269    'known/1_1_$special_fail/0'.
12270'known/1_1_$special_=\\=/2___2__2'(B, A, C) :-
12271    A==B,
12272    !,
12273    (   var(C)
12274    ->  true
12275    ;   C=suspension(_, D, _, _, _, E, F),
12276        setarg(2, C, removed),
12277        (   D==not_stored_yet
12278        ->  G=[]
12279        ;   term_variables(term(E, F), G),
12280            ( arg(5, C, H),
12281              (   var(H)
12282              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12283                            I),
12284                  I=[_|J],
12285                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12286                           J),
12287                  (   J=[K|_]
12288                  ->  setarg(5, K, _)
12289                  ;   true
12290                  )
12291              ;   H=[_, _|J],
12292                  setarg(2, H, J),
12293                  (   J=[K|_]
12294                  ->  setarg(5, K, H)
12295                  ;   true
12296                  )
12297              )
12298            ),
12299            'detach_known/1_1_$special_=\\=/2___2'(G, C)
12300        )
12301    ),
12302    'known/1_1_$special_fail/0'.
12303'known/1_1_$special_=\\=/2___2__2'(A, B, P) :-
12304    (   'chr newvia_2'(A, B, C)
12305    ->  get_attr(C, guard_entailment, D),
12306        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
12307    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
12308                  E)
12309    ),
12310    member(F, E),
12311    F=suspension(_, active, _, _, _, G, H),
12312    G==A,
12313    H==B,
12314    !,
12315    F=suspension(_, _, _, _, _, I, J),
12316    setarg(2, F, removed),
12317    term_variables(term(I, J), O),
12318    arg(5, F, K),
12319    (   var(K)
12320    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
12321                  L),
12322        L=[_|M],
12323        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
12324                 M),
12325        (   M=[N|_]
12326        ->  setarg(5, N, _)
12327        ;   true
12328        )
12329    ;   K=[_, _|M],
12330        setarg(2, K, M),
12331        (   M=[N|_]
12332        ->  setarg(5, N, K)
12333        ;   true
12334        )
12335    ),
12336    'detach_known/1_1_$special_=:=/2___2'(O, F),
12337    (   var(P)
12338    ->  true
12339    ;   P=suspension(_, Q, _, _, _, R, S),
12340        setarg(2, P, removed),
12341        (   Q==not_stored_yet
12342        ->  T=[]
12343        ;   term_variables(term(R, S), T),
12344            ( arg(5, P, U),
12345              (   var(U)
12346              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12347                            V),
12348                  V=[_|W],
12349                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12350                           W),
12351                  (   W=[X|_]
12352                  ->  setarg(5, X, _)
12353                  ;   true
12354                  )
12355              ;   U=[_, _|W],
12356                  setarg(2, U, W),
12357                  (   W=[X|_]
12358                  ->  setarg(5, X, U)
12359                  ;   true
12360                  )
12361              )
12362            ),
12363            'detach_known/1_1_$special_=\\=/2___2'(T, P)
12364        )
12365    ),
12366    'known/1_1_$special_fail/0'.
12367'known/1_1_$special_=\\=/2___2__2'(L, K, A) :-
12368    '$novel_production'(A, 195),
12369    !,
12370    '$extend_history'(A, 195),
12371    arg(2, A, D),
12372    setarg(2, A, active),
12373    arg(4, A, B),
12374    C is B+1,
12375    setarg(4, A, C),
12376    (   D==not_stored_yet
12377    ->  A=suspension(_, _, _, _, _, E, F),
12378        term_variables(term(E, F), G),
12379        'chr none_locked'(G),
12380        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12381                    H),
12382          I=[A|H],
12383          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12384                   I),
12385          (   H=[J|_]
12386          ->  setarg(5, J, I)
12387          ;   true
12388          )
12389        ),
12390        'attach_known/1_1_$special_=\\=/2___2'(G, A)
12391    ;   true
12392    ),
12393    'known/1_1_$special_=\\=/2'(K, L),
12394    (   A=suspension(_, active, _, C, _, _, _)
12395    ->  setarg(2, A, inactive),
12396        'known/1_1_$special_=\\=/2___2__3'(L, K, A)
12397    ;   true
12398    ).
12399'known/1_1_$special_=\\=/2___2__2'(A, B, C) :-
12400    'known/1_1_$special_=\\=/2___2__3'(A, B, C).
12401'known/1_1_$special_=\\=/2___2__3'(A, B, P) :-
12402    (   'chr newvia_2'(A, B, C)
12403    ->  get_attr(C, guard_entailment, D),
12404        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
12405    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12406                  E)
12407    ),
12408    member(F, E),
12409    F=suspension(_, active, _, _, G),
12410    nonvar(G),
12411    G=(H=\=I),
12412    H==A,
12413    I==B,
12414    !,
12415    F=suspension(_, _, _, _, J),
12416    setarg(2, F, removed),
12417    term_variables(J, O),
12418    arg(4, F, K),
12419    (   var(K)
12420    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12421                  L),
12422        L=[_|M],
12423        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12424                 M),
12425        (   M=[N|_]
12426        ->  setarg(4, N, _)
12427        ;   true
12428        )
12429    ;   K=[_, _|M],
12430        setarg(2, K, M),
12431        (   M=[N|_]
12432        ->  setarg(4, N, K)
12433        ;   true
12434        )
12435    ),
12436    'detach_known/1_1_$special_\\+/1___1'(O, F),
12437    (   var(P)
12438    ->  true
12439    ;   P=suspension(_, Q, _, _, _, R, S),
12440        setarg(2, P, removed),
12441        (   Q==not_stored_yet
12442        ->  T=[]
12443        ;   term_variables(term(R, S), T),
12444            ( arg(5, P, U),
12445              (   var(U)
12446              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12447                            V),
12448                  V=[_|W],
12449                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12450                           W),
12451                  (   W=[X|_]
12452                  ->  setarg(5, X, _)
12453                  ;   true
12454                  )
12455              ;   U=[_, _|W],
12456                  setarg(2, U, W),
12457                  (   W=[X|_]
12458                  ->  setarg(5, X, U)
12459                  ;   true
12460                  )
12461              )
12462            ),
12463            'detach_known/1_1_$special_=\\=/2___2'(T, P)
12464        )
12465    ),
12466    'known/1_1_$special_fail/0'.
12467'known/1_1_$special_=\\=/2___2__3'(A, B, F) :-
12468    (   'chr newvia_2'(A, B, C)
12469    ->  get_attr(C, guard_entailment, D),
12470        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12471    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12472                  E)
12473    ),
12474    !,
12475    'known/1_1_$special_=\\=/2___2__3__0__12'(E, A, B, F).
12476'known/1_1_$special_=\\=/2___2__3__0__12'([], A, B, C) :-
12477    'known/1_1_$special_=\\=/2___2__4'(A, B, C).
12478'known/1_1_$special_=\\=/2___2__3__0__12'([A|Z], E, G, O) :-
12479    (   A=suspension(_, active, _, _, B, Y),
12480        nonvar(B),
12481        B=(\+C),
12482        nonvar(C),
12483        C=(D=\=F),
12484        D==E,
12485        F==G
12486    ->  ( A=suspension(_, _, _, _, H, I),
12487          setarg(2, A, removed),
12488          term_variables(term(H, I), N),
12489          ( arg(4, A, J),
12490            (   var(J)
12491            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12492                          K),
12493                K=[_|L],
12494                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12495                         L),
12496                (   L=[M|_]
12497                ->  setarg(4, M, _)
12498                ;   true
12499                )
12500            ;   J=[_, _|L],
12501                setarg(2, J, L),
12502                (   L=[M|_]
12503                ->  setarg(4, M, J)
12504                ;   true
12505                )
12506            )
12507          ),
12508          'detach_known/1_1_$special_;/2___2'(N, A)
12509        ),
12510        ( arg(2, O, R),
12511          setarg(2, O, active),
12512          ( arg(4, O, P),
12513            Q is P+1,
12514            setarg(4, O, Q)
12515          ),
12516          (   R==not_stored_yet
12517          ->  O=suspension(_, _, _, _, _, S, T),
12518              term_variables(term(S, T), U),
12519              'chr none_locked'(U),
12520              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12521                          V),
12522                W=[O|V],
12523                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12524                         W),
12525                (   V=[X|_]
12526                ->  setarg(5, X, W)
12527                ;   true
12528                )
12529              ),
12530              'attach_known/1_1_$special_=\\=/2___2'(U, O)
12531          ;   true
12532          )
12533        ),
12534        known(Y),
12535        (   O=suspension(_, active, _, Q, _, _, _)
12536        ->  setarg(2, O, inactive),
12537            'known/1_1_$special_=\\=/2___2__3__0__12'(Z,
12538                                                      E,
12539                                                      G,
12540                                                      O)
12541        ;   true
12542        )
12543    ;   'known/1_1_$special_=\\=/2___2__3__0__12'(Z,
12544                                                  E,
12545                                                  G,
12546                                                  O)
12547    ).
12548'known/1_1_$special_=\\=/2___2__3'(A, B, C) :-
12549    'known/1_1_$special_=\\=/2___2__4'(A, B, C).
12550'known/1_1_$special_=\\=/2___2__4'(A, B, F) :-
12551    (   'chr newvia_2'(A, B, C)
12552    ->  get_attr(C, guard_entailment, D),
12553        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12554    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12555                  E)
12556    ),
12557    !,
12558    'known/1_1_$special_=\\=/2___2__4__0__13'(E, A, B, F).
12559'known/1_1_$special_=\\=/2___2__4__0__13'([], A, B, C) :-
12560    'known/1_1_$special_=\\=/2___2__5'(A, B, C).
12561'known/1_1_$special_=\\=/2___2__4__0__13'([A|A1], F, H, P) :-
12562    (   A=suspension(_, active, _, _, B, Z),
12563        nonvar(B),
12564        B=(C, _),
12565        nonvar(C),
12566        C=(\+D),
12567        nonvar(D),
12568        D=(E=\=G),
12569        E==F,
12570        G==H
12571    ->  ( A=suspension(_, _, _, _, I, J),
12572          setarg(2, A, removed),
12573          term_variables(term(I, J), O),
12574          ( arg(4, A, K),
12575            (   var(K)
12576            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12577                          L),
12578                L=[_|M],
12579                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12580                         M),
12581                (   M=[N|_]
12582                ->  setarg(4, N, _)
12583                ;   true
12584                )
12585            ;   K=[_, _|M],
12586                setarg(2, K, M),
12587                (   M=[N|_]
12588                ->  setarg(4, N, K)
12589                ;   true
12590                )
12591            )
12592          ),
12593          'detach_known/1_1_$special_;/2___2'(O, A)
12594        ),
12595        ( arg(2, P, S),
12596          setarg(2, P, active),
12597          ( arg(4, P, Q),
12598            R is Q+1,
12599            setarg(4, P, R)
12600          ),
12601          (   S==not_stored_yet
12602          ->  P=suspension(_, _, _, _, _, T, U),
12603              term_variables(term(T, U), V),
12604              'chr none_locked'(V),
12605              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12606                          W),
12607                X=[P|W],
12608                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12609                         X),
12610                (   W=[Y|_]
12611                ->  setarg(5, Y, X)
12612                ;   true
12613                )
12614              ),
12615              'attach_known/1_1_$special_=\\=/2___2'(V, P)
12616          ;   true
12617          )
12618        ),
12619        known(Z),
12620        (   P=suspension(_, active, _, R, _, _, _)
12621        ->  setarg(2, P, inactive),
12622            'known/1_1_$special_=\\=/2___2__4__0__13'(A1,
12623                                                      F,
12624                                                      H,
12625                                                      P)
12626        ;   true
12627        )
12628    ;   'known/1_1_$special_=\\=/2___2__4__0__13'(A1,
12629                                                  F,
12630                                                  H,
12631                                                  P)
12632    ).
12633'known/1_1_$special_=\\=/2___2__4'(A, B, C) :-
12634    'known/1_1_$special_=\\=/2___2__5'(A, B, C).
12635'known/1_1_$special_=\\=/2___2__5'(_, _, A) :-
12636    arg(2, A, D),
12637    setarg(2, A, active),
12638    arg(4, A, B),
12639    C is B+1,
12640    setarg(4, A, C),
12641    (   D==not_stored_yet
12642    ->  A=suspension(_, _, _, _, _, E, F),
12643        term_variables(term(E, F), G),
12644        'chr none_locked'(G),
12645        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12646                    H),
12647          I=[A|H],
12648          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12649                   I),
12650          (   H=[J|_]
12651          ->  setarg(5, J, I)
12652          ;   true
12653          )
12654        ),
12655        'attach_known/1_1_$special_=\\=/2___2'(G, A)
12656    ;   true
12657    ).
12658'known/1_1_$special_\\+/1'(A) :-
12659    'known/1_1_$special_\\+/1___1__0'(A, _).
12660'known/1_1_$special_\\+/1___1__0'(A, G) :-
12661    (   'chr newvia_1'(A, B)
12662    ->  get_attr(B, guard_entailment, C),
12663        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
12664    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12665                  D)
12666    ),
12667    member(E, D),
12668    E=suspension(_, active, _, _, F),
12669    F==A,
12670    !,
12671    (   var(G)
12672    ->  true
12673    ;   G=suspension(_, H, _, _, I),
12674        setarg(2, G, removed),
12675        (   H==not_stored_yet
12676        ->  J=[]
12677        ;   term_variables(I, J),
12678            ( arg(4, G, K),
12679              (   var(K)
12680              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12681                            L),
12682                  L=[_|M],
12683                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12684                           M),
12685                  (   M=[N|_]
12686                  ->  setarg(4, N, _)
12687                  ;   true
12688                  )
12689              ;   K=[_, _|M],
12690                  setarg(2, K, M),
12691                  (   M=[N|_]
12692                  ->  setarg(4, N, K)
12693                  ;   true
12694                  )
12695              )
12696            ),
12697            'detach_known/1_1_$special_\\+/1___1'(J, G)
12698        )
12699    ).
12700'known/1_1_$special_\\+/1___1__0'(_, C) :-
12701    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
12702              A),
12703    member(B, A),
12704    B=suspension(_, active, _),
12705    !,
12706    (   var(C)
12707    ->  true
12708    ;   C=suspension(_, D, _, _, E),
12709        setarg(2, C, removed),
12710        (   D==not_stored_yet
12711        ->  F=[]
12712        ;   term_variables(E, F),
12713            ( arg(4, C, G),
12714              (   var(G)
12715              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12716                            H),
12717                  H=[_|I],
12718                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12719                           I),
12720                  (   I=[J|_]
12721                  ->  setarg(4, J, _)
12722                  ;   true
12723                  )
12724              ;   G=[_, _|I],
12725                  setarg(2, G, I),
12726                  (   I=[J|_]
12727                  ->  setarg(4, J, G)
12728                  ;   true
12729                  )
12730              )
12731            ),
12732            'detach_known/1_1_$special_\\+/1___1'(F, C)
12733        )
12734    ).
12735'known/1_1_$special_\\+/1___1__0'(A, E) :-
12736    nonvar(A),
12737    (   (   (   (   (   (   (   (   (   (   (   A=functor(B, C, D),
12738                                                nonvar(B),
12739                                                'chr lock'(B),
12740                                                'chr lock'(C),
12741                                                'chr lock'(D),
12742                                                functor(B,
12743                                                        C,
12744                                                        D),
12745                                                'chr unlock'(B),
12746                                                'chr unlock'(C),
12747                                                'chr unlock'(D),
12748                                                !,
12749                                                (   var(E)
12750                                                ->  true
12751                                                ;   E=suspension(_, F, _, _, G),
12752                                                    setarg(2, E, removed),
12753                                                    (   F==not_stored_yet
12754                                                    ->  H=[]
12755                                                    ;   term_variables(G,
12756                                                                       H),
12757                                                        ( arg(4,
12758                                                              E,
12759                                                              I),
12760                                                          (   var(I)
12761                                                          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12762                                                                        J),
12763                                                              J=[_|K],
12764                                                              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12765                                                                       K),
12766                                                              (   K=[L|_]
12767                                                              ->  setarg(4,
12768                                                                         L,
12769                                                                         _)
12770                                                              ;   true
12771                                                              )
12772                                                          ;   I=[_, _|K],
12773                                                              setarg(2,
12774                                                                     I,
12775                                                                     K),
12776                                                              (   K=[L|_]
12777                                                              ->  setarg(4,
12778                                                                         L,
12779                                                                         I)
12780                                                              ;   true
12781                                                              )
12782                                                          )
12783                                                        ),
12784                                                        'detach_known/1_1_$special_\\+/1___1'(H,
12785                                                                                              E)
12786                                                    )
12787                                                ),
12788                                                'known/1_1_$special_fail/0'
12789                                            ;   A=(M;N),
12790                                                (   'chr newvia_2'(M,
12791                                                                   N,
12792                                                                   O)
12793                                                ->  get_attr(O,
12794                                                             guard_entailment,
12795                                                             P),
12796                                                    P=v(_, _, _, Q, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12797                                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12798                                                              Q)
12799                                                ),
12800                                                member(R, Q),
12801                                                R=suspension(_, active, _, _, S, T),
12802                                                S==M,
12803                                                T==N,
12804                                                !,
12805                                                R=suspension(_, _, _, _, U, V),
12806                                                setarg(2, R, removed),
12807                                                term_variables(term(U,
12808                                                                    V),
12809                                                               A1),
12810                                                arg(4, R, W),
12811                                                (   var(W)
12812                                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12813                                                              X),
12814                                                    X=[_|Y],
12815                                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12816                                                             Y),
12817                                                    (   Y=[Z|_]
12818                                                    ->  setarg(4,
12819                                                               Z,
12820                                                               _)
12821                                                    ;   true
12822                                                    )
12823                                                ;   W=[_, _|Y],
12824                                                    setarg(2,
12825                                                           W,
12826                                                           Y),
12827                                                    (   Y=[Z|_]
12828                                                    ->  setarg(4,
12829                                                               Z,
12830                                                               W)
12831                                                    ;   true
12832                                                    )
12833                                                ),
12834                                                'detach_known/1_1_$special_;/2___2'(A1,
12835                                                                                    R),
12836                                                (   var(E)
12837                                                ->  true
12838                                                ;   E=suspension(_, B1, _, _, C1),
12839                                                    setarg(2, E, removed),
12840                                                    (   B1==not_stored_yet
12841                                                    ->  D1=[]
12842                                                    ;   term_variables(C1,
12843                                                                       D1),
12844                                                        ( arg(4,
12845                                                              E,
12846                                                              E1),
12847                                                          (   var(E1)
12848                                                          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12849                                                                        F1),
12850                                                              F1=[_|G1],
12851                                                              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12852                                                                       G1),
12853                                                              (   G1=[H1|_]
12854                                                              ->  setarg(4,
12855                                                                         H1,
12856                                                                         _)
12857                                                              ;   true
12858                                                              )
12859                                                          ;   E1=[_, _|G1],
12860                                                              setarg(2,
12861                                                                     E1,
12862                                                                     G1),
12863                                                              (   G1=[H1|_]
12864                                                              ->  setarg(4,
12865                                                                         H1,
12866                                                                         E1)
12867                                                              ;   true
12868                                                              )
12869                                                          )
12870                                                        ),
12871                                                        'detach_known/1_1_$special_\\+/1___1'(D1,
12872                                                                                              E)
12873                                                    )
12874                                                ),
12875                                                'known/1_1_$special_fail/0'
12876                                            )
12877                                        ;   A=nonvar(I1),
12878                                            (   'chr newvia_1'(I1,
12879                                                               J1)
12880                                            ->  get_attr(J1,
12881                                                         guard_entailment,
12882                                                         K1),
12883                                                K1=v(_, _, _, _, L1, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12884                                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
12885                                                          L1)
12886                                            ),
12887                                            member(M1, L1),
12888                                            M1=suspension(_, active, _, _, N1),
12889                                            N1==I1,
12890                                            !,
12891                                            M1=suspension(_, _, _, _, O1),
12892                                            setarg(2, M1, removed),
12893                                            term_variables(O1, T1),
12894                                            arg(4, M1, P1),
12895                                            (   var(P1)
12896                                            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
12897                                                          Q1),
12898                                                Q1=[_|R1],
12899                                                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
12900                                                         R1),
12901                                                (   R1=[S1|_]
12902                                                ->  setarg(4, S1, _)
12903                                                ;   true
12904                                                )
12905                                            ;   P1=[_, _|R1],
12906                                                setarg(2, P1, R1),
12907                                                (   R1=[S1|_]
12908                                                ->  setarg(4,
12909                                                           S1,
12910                                                           P1)
12911                                                ;   true
12912                                                )
12913                                            ),
12914                                            'detach_known/1_1_$special_nonvar/1___1'(T1,
12915                                                                                     M1),
12916                                            (   var(E)
12917                                            ->  true
12918                                            ;   E=suspension(_, U1, _, _, V1),
12919                                                setarg(2, E, removed),
12920                                                (   U1==not_stored_yet
12921                                                ->  W1=[]
12922                                                ;   term_variables(V1,
12923                                                                   W1),
12924                                                    ( arg(4, E, X1),
12925                                                      (   var(X1)
12926                                                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12927                                                                    Y1),
12928                                                          Y1=[_|Z1],
12929                                                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12930                                                                   Z1),
12931                                                          (   Z1=[A2|_]
12932                                                          ->  setarg(4,
12933                                                                     A2,
12934                                                                     _)
12935                                                          ;   true
12936                                                          )
12937                                                      ;   X1=[_, _|Z1],
12938                                                          setarg(2,
12939                                                                 X1,
12940                                                                 Z1),
12941                                                          (   Z1=[A2|_]
12942                                                          ->  setarg(4,
12943                                                                     A2,
12944                                                                     X1)
12945                                                          ;   true
12946                                                          )
12947                                                      )
12948                                                    ),
12949                                                    'detach_known/1_1_$special_\\+/1___1'(W1,
12950                                                                                          E)
12951                                                )
12952                                            ),
12953                                            'known/1_1_$special_fail/0'
12954                                        )
12955                                    ;   A=var(B2),
12956                                        (   'chr newvia_1'(B2, C2)
12957                                        ->  get_attr(C2,
12958                                                     guard_entailment,
12959                                                     D2),
12960                                            D2=v(_, _, _, _, _, E2, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12961                                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
12962                                                      E2)
12963                                        ),
12964                                        member(F2, E2),
12965                                        F2=suspension(_, active, _, _, G2),
12966                                        G2==B2,
12967                                        !,
12968                                        F2=suspension(_, _, _, _, H2),
12969                                        setarg(2, F2, removed),
12970                                        term_variables(H2, M2),
12971                                        arg(4, F2, I2),
12972                                        (   var(I2)
12973                                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
12974                                                      J2),
12975                                            J2=[_|K2],
12976                                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
12977                                                     K2),
12978                                            (   K2=[L2|_]
12979                                            ->  setarg(4, L2, _)
12980                                            ;   true
12981                                            )
12982                                        ;   I2=[_, _|K2],
12983                                            setarg(2, I2, K2),
12984                                            (   K2=[L2|_]
12985                                            ->  setarg(4, L2, I2)
12986                                            ;   true
12987                                            )
12988                                        ),
12989                                        'detach_known/1_1_$special_var/1___1'(M2,
12990                                                                              F2),
12991                                        (   var(E)
12992                                        ->  true
12993                                        ;   E=suspension(_, N2, _, _, O2),
12994                                            setarg(2, E, removed),
12995                                            (   N2==not_stored_yet
12996                                            ->  P2=[]
12997                                            ;   term_variables(O2,
12998                                                               P2),
12999                                                ( arg(4, E, Q2),
13000                                                  (   var(Q2)
13001                                                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13002                                                                R2),
13003                                                      R2=[_|S2],
13004                                                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13005                                                               S2),
13006                                                      (   S2=[T2|_]
13007                                                      ->  setarg(4,
13008                                                                 T2,
13009                                                                 _)
13010                                                      ;   true
13011                                                      )
13012                                                  ;   Q2=[_, _|S2],
13013                                                      setarg(2,
13014                                                             Q2,
13015                                                             S2),
13016                                                      (   S2=[T2|_]
13017                                                      ->  setarg(4,
13018                                                                 T2,
13019                                                                 Q2)
13020                                                      ;   true
13021                                                      )
13022                                                  )
13023                                                ),
13024                                                'detach_known/1_1_$special_\\+/1___1'(P2,
13025                                                                                      E)
13026                                            )
13027                                        ),
13028                                        'known/1_1_$special_fail/0'
13029                                    )
13030                                ;   A=atom(U2),
13031                                    (   'chr newvia_1'(U2, V2)
13032                                    ->  get_attr(V2,
13033                                                 guard_entailment,
13034                                                 W2),
13035                                        W2=v(_, _, _, _, _, _, X2, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
13036                                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
13037                                                  X2)
13038                                    ),
13039                                    member(Y2, X2),
13040                                    Y2=suspension(_, active, _, _, _, Z2),
13041                                    Z2==U2,
13042                                    !,
13043                                    Y2=suspension(_, _, _, _, _, A3),
13044                                    setarg(2, Y2, removed),
13045                                    term_variables(A3, F3),
13046                                    arg(5, Y2, B3),
13047                                    (   var(B3)
13048                                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
13049                                                  C3),
13050                                        C3=[_|D3],
13051                                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
13052                                                 D3),
13053                                        (   D3=[E3|_]
13054                                        ->  setarg(5, E3, _)
13055                                        ;   true
13056                                        )
13057                                    ;   B3=[_, _|D3],
13058                                        setarg(2, B3, D3),
13059                                        (   D3=[E3|_]
13060                                        ->  setarg(5, E3, B3)
13061                                        ;   true
13062                                        )
13063                                    ),
13064                                    'detach_known/1_1_$special_atom/1___1'(F3,
13065                                                                           Y2),
13066                                    (   var(E)
13067                                    ->  true
13068                                    ;   E=suspension(_, G3, _, _, H3),
13069                                        setarg(2, E, removed),
13070                                        (   G3==not_stored_yet
13071                                        ->  I3=[]
13072                                        ;   term_variables(H3, I3),
13073                                            ( arg(4, E, J3),
13074                                              (   var(J3)
13075                                              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13076                                                            K3),
13077                                                  K3=[_|L3],
13078                                                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13079                                                           L3),
13080                                                  (   L3=[M3|_]
13081                                                  ->  setarg(4,
13082                                                             M3,
13083                                                             _)
13084                                                  ;   true
13085                                                  )
13086                                              ;   J3=[_, _|L3],
13087                                                  setarg(2, J3, L3),
13088                                                  (   L3=[M3|_]
13089                                                  ->  setarg(4,
13090                                                             M3,
13091                                                             J3)
13092                                                  ;   true
13093                                                  )
13094                                              )
13095                                            ),
13096                                            'detach_known/1_1_$special_\\+/1___1'(I3,
13097                                                                                  E)
13098                                        )
13099                                    ),
13100                                    'known/1_1_$special_fail/0'
13101                                )
13102                            ;   A=atomic(N3),
13103                                (   'chr newvia_1'(N3, O3)
13104                                ->  get_attr(O3,
13105                                             guard_entailment,
13106                                             P3),
13107                                    P3=v(_, _, _, _, _, _, _, Q3, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
13108                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
13109                                              Q3)
13110                                ),
13111                                member(R3, Q3),
13112                                R3=suspension(_, active, _, _, _, S3),
13113                                S3==N3,
13114                                !,
13115                                R3=suspension(_, _, _, _, _, T3),
13116                                setarg(2, R3, removed),
13117                                term_variables(T3, Y3),
13118                                arg(5, R3, U3),
13119                                (   var(U3)
13120                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
13121                                              V3),
13122                                    V3=[_|W3],
13123                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
13124                                             W3),
13125                                    (   W3=[X3|_]
13126                                    ->  setarg(5, X3, _)
13127                                    ;   true
13128                                    )
13129                                ;   U3=[_, _|W3],
13130                                    setarg(2, U3, W3),
13131                                    (   W3=[X3|_]
13132                                    ->  setarg(5, X3, U3)
13133                                    ;   true
13134                                    )
13135                                ),
13136                                'detach_known/1_1_$special_atomic/1___1'(Y3,
13137                                                                         R3),
13138                                (   var(E)
13139                                ->  true
13140                                ;   E=suspension(_, Z3, _, _, A4),
13141                                    setarg(2, E, removed),
13142                                    (   Z3==not_stored_yet
13143                                    ->  B4=[]
13144                                    ;   term_variables(A4, B4),
13145                                        ( arg(4, E, C4),
13146                                          (   var(C4)
13147                                          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13148                                                        D4),
13149                                              D4=[_|E4],
13150                                              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13151                                                       E4),
13152                                              (   E4=[F4|_]
13153                                              ->  setarg(4, F4, _)
13154                                              ;   true
13155                                              )
13156                                          ;   C4=[_, _|E4],
13157                                              setarg(2, C4, E4),
13158                                              (   E4=[F4|_]
13159                                              ->  setarg(4,
13160                                                         F4,
13161                                                         C4)
13162                                              ;   true
13163                                              )
13164                                          )
13165                                        ),
13166                                        'detach_known/1_1_$special_\\+/1___1'(B4,
13167                                                                              E)
13168                                    )
13169                                ),
13170                                'known/1_1_$special_fail/0'
13171                            )
13172                        ;   A=compound(G4),
13173                            (   'chr newvia_1'(G4, H4)
13174                            ->  get_attr(H4, guard_entailment, I4),
13175                                I4=v(_, _, _, _, _, _, _, _, J4, _, _, _, _, _, _, _, _, _, _, _, _, _)
13176                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
13177                                          J4)
13178                            ),
13179                            member(K4, J4),
13180                            K4=suspension(_, active, _, _, _, L4),
13181                            L4==G4,
13182                            !,
13183                            K4=suspension(_, _, _, _, _, M4),
13184                            setarg(2, K4, removed),
13185                            term_variables(M4, R4),
13186                            arg(5, K4, N4),
13187                            (   var(N4)
13188                            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
13189                                          O4),
13190                                O4=[_|P4],
13191                                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
13192                                         P4),
13193                                (   P4=[Q4|_]
13194                                ->  setarg(5, Q4, _)
13195                                ;   true
13196                                )
13197                            ;   N4=[_, _|P4],
13198                                setarg(2, N4, P4),
13199                                (   P4=[Q4|_]
13200                                ->  setarg(5, Q4, N4)
13201                                ;   true
13202                                )
13203                            ),
13204                            'detach_known/1_1_$special_compound/1___1'(R4,
13205                                                                       K4),
13206                            (   var(E)
13207                            ->  true
13208                            ;   E=suspension(_, S4, _, _, T4),
13209                                setarg(2, E, removed),
13210                                (   S4==not_stored_yet
13211                                ->  U4=[]
13212                                ;   term_variables(T4, U4),
13213                                    ( arg(4, E, V4),
13214                                      (   var(V4)
13215                                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13216                                                    W4),
13217                                          W4=[_|X4],
13218                                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13219                                                   X4),
13220                                          (   X4=[Y4|_]
13221                                          ->  setarg(4, Y4, _)
13222                                          ;   true
13223                                          )
13224                                      ;   V4=[_, _|X4],
13225                                          setarg(2, V4, X4),
13226                                          (   X4=[Y4|_]
13227                                          ->  setarg(4, Y4, V4)
13228                                          ;   true
13229                                          )
13230                                      )
13231                                    ),
13232                                    'detach_known/1_1_$special_\\+/1___1'(U4,
13233                                                                          E)
13234                                )
13235                            ),
13236                            'known/1_1_$special_fail/0'
13237                        )
13238                    ;   A=ground(Z4),
13239                        (   'chr newvia_1'(Z4, A5)
13240                        ->  get_attr(A5, guard_entailment, B5),
13241                            B5=v(_, _, _, _, _, _, _, _, _, C5, _, _, _, _, _, _, _, _, _, _, _, _)
13242                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
13243                                      C5)
13244                        ),
13245                        member(D5, C5),
13246                        D5=suspension(_, active, _, _, _, E5),
13247                        E5==Z4,
13248                        !,
13249                        D5=suspension(_, _, _, _, _, F5),
13250                        setarg(2, D5, removed),
13251                        term_variables(F5, K5),
13252                        arg(5, D5, G5),
13253                        (   var(G5)
13254                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
13255                                      H5),
13256                            H5=[_|I5],
13257                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
13258                                     I5),
13259                            (   I5=[J5|_]
13260                            ->  setarg(5, J5, _)
13261                            ;   true
13262                            )
13263                        ;   G5=[_, _|I5],
13264                            setarg(2, G5, I5),
13265                            (   I5=[J5|_]
13266                            ->  setarg(5, J5, G5)
13267                            ;   true
13268                            )
13269                        ),
13270                        'detach_known/1_1_$special_ground/1___1'(K5,
13271                                                                 D5),
13272                        (   var(E)
13273                        ->  true
13274                        ;   E=suspension(_, L5, _, _, M5),
13275                            setarg(2, E, removed),
13276                            (   L5==not_stored_yet
13277                            ->  N5=[]
13278                            ;   term_variables(M5, N5),
13279                                ( arg(4, E, O5),
13280                                  (   var(O5)
13281                                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13282                                                P5),
13283                                      P5=[_|Q5],
13284                                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13285                                               Q5),
13286                                      (   Q5=[R5|_]
13287                                      ->  setarg(4, R5, _)
13288                                      ;   true
13289                                      )
13290                                  ;   O5=[_, _|Q5],
13291                                      setarg(2, O5, Q5),
13292                                      (   Q5=[R5|_]
13293                                      ->  setarg(4, R5, O5)
13294                                      ;   true
13295                                      )
13296                                  )
13297                                ),
13298                                'detach_known/1_1_$special_\\+/1___1'(N5,
13299                                                                      E)
13300                            )
13301                        ),
13302                        'known/1_1_$special_fail/0'
13303                    )
13304                ;   A=integer(S5),
13305                    (   'chr newvia_1'(S5, T5)
13306                    ->  get_attr(T5, guard_entailment, U5),
13307                        U5=v(_, _, _, _, _, _, _, _, _, _, V5, _, _, _, _, _, _, _, _, _, _, _)
13308                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
13309                                  V5)
13310                    ),
13311                    member(W5, V5),
13312                    W5=suspension(_, active, _, _, _, X5),
13313                    X5==S5,
13314                    !,
13315                    W5=suspension(_, _, _, _, _, Y5),
13316                    setarg(2, W5, removed),
13317                    term_variables(Y5, D6),
13318                    arg(5, W5, Z5),
13319                    (   var(Z5)
13320                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
13321                                  A6),
13322                        A6=[_|B6],
13323                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
13324                                 B6),
13325                        (   B6=[C6|_]
13326                        ->  setarg(5, C6, _)
13327                        ;   true
13328                        )
13329                    ;   Z5=[_, _|B6],
13330                        setarg(2, Z5, B6),
13331                        (   B6=[C6|_]
13332                        ->  setarg(5, C6, Z5)
13333                        ;   true
13334                        )
13335                    ),
13336                    'detach_known/1_1_$special_integer/1___1'(D6,
13337                                                              W5),
13338                    (   var(E)
13339                    ->  true
13340                    ;   E=suspension(_, E6, _, _, F6),
13341                        setarg(2, E, removed),
13342                        (   E6==not_stored_yet
13343                        ->  G6=[]
13344                        ;   term_variables(F6, G6),
13345                            ( arg(4, E, H6),
13346                              (   var(H6)
13347                              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13348                                            I6),
13349                                  I6=[_|J6],
13350                                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13351                                           J6),
13352                                  (   J6=[K6|_]
13353                                  ->  setarg(4, K6, _)
13354                                  ;   true
13355                                  )
13356                              ;   H6=[_, _|J6],
13357                                  setarg(2, H6, J6),
13358                                  (   J6=[K6|_]
13359                                  ->  setarg(4, K6, H6)
13360                                  ;   true
13361                                  )
13362                              )
13363                            ),
13364                            'detach_known/1_1_$special_\\+/1___1'(G6,
13365                                                                  E)
13366                        )
13367                    ),
13368                    'known/1_1_$special_fail/0'
13369                )
13370            ;   A=float(L6),
13371                (   'chr newvia_1'(L6, M6)
13372                ->  get_attr(M6, guard_entailment, N6),
13373                    N6=v(_, _, _, _, _, _, _, _, _, _, _, O6, _, _, _, _, _, _, _, _, _, _)
13374                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
13375                              O6)
13376                ),
13377                member(P6, O6),
13378                P6=suspension(_, active, _, _, _, Q6),
13379                Q6==L6,
13380                !,
13381                P6=suspension(_, _, _, _, _, R6),
13382                setarg(2, P6, removed),
13383                term_variables(R6, W6),
13384                arg(5, P6, S6),
13385                (   var(S6)
13386                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
13387                              T6),
13388                    T6=[_|U6],
13389                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
13390                             U6),
13391                    (   U6=[V6|_]
13392                    ->  setarg(5, V6, _)
13393                    ;   true
13394                    )
13395                ;   S6=[_, _|U6],
13396                    setarg(2, S6, U6),
13397                    (   U6=[V6|_]
13398                    ->  setarg(5, V6, S6)
13399                    ;   true
13400                    )
13401                ),
13402                'detach_known/1_1_$special_float/1___1'(W6, P6),
13403                (   var(E)
13404                ->  true
13405                ;   E=suspension(_, X6, _, _, Y6),
13406                    setarg(2, E, removed),
13407                    (   X6==not_stored_yet
13408                    ->  Z6=[]
13409                    ;   term_variables(Y6, Z6),
13410                        ( arg(4, E, A7),
13411                          (   var(A7)
13412                          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13413                                        B7),
13414                              B7=[_|C7],
13415                              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13416                                       C7),
13417                              (   C7=[D7|_]
13418                              ->  setarg(4, D7, _)
13419                              ;   true
13420                              )
13421                          ;   A7=[_, _|C7],
13422                              setarg(2, A7, C7),
13423                              (   C7=[D7|_]
13424                              ->  setarg(4, D7, A7)
13425                              ;   true
13426                              )
13427                          )
13428                        ),
13429                        'detach_known/1_1_$special_\\+/1___1'(Z6, E)
13430                    )
13431                ),
13432                'known/1_1_$special_fail/0'
13433            )
13434        ;   A=number(E7),
13435            (   'chr newvia_1'(E7, F7)
13436            ->  get_attr(F7, guard_entailment, G7),
13437                G7=v(_, _, _, _, _, _, _, _, _, _, _, _, H7, _, _, _, _, _, _, _, _, _)
13438            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
13439                          H7)
13440            ),
13441            member(I7, H7),
13442            I7=suspension(_, active, _, _, _, J7),
13443            J7==E7,
13444            !,
13445            I7=suspension(_, _, _, _, _, K7),
13446            setarg(2, I7, removed),
13447            term_variables(K7, P7),
13448            arg(5, I7, L7),
13449            (   var(L7)
13450            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
13451                          M7),
13452                M7=[_|N7],
13453                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
13454                         N7),
13455                (   N7=[O7|_]
13456                ->  setarg(5, O7, _)
13457                ;   true
13458                )
13459            ;   L7=[_, _|N7],
13460                setarg(2, L7, N7),
13461                (   N7=[O7|_]
13462                ->  setarg(5, O7, L7)
13463                ;   true
13464                )
13465            ),
13466            'detach_known/1_1_$special_number/1___1'(P7, I7),
13467            (   var(E)
13468            ->  true
13469            ;   E=suspension(_, Q7, _, _, R7),
13470                setarg(2, E, removed),
13471                (   Q7==not_stored_yet
13472                ->  S7=[]
13473                ;   term_variables(R7, S7),
13474                    ( arg(4, E, T7),
13475                      (   var(T7)
13476                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13477                                    U7),
13478                          U7=[_|V7],
13479                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13480                                   V7),
13481                          (   V7=[W7|_]
13482                          ->  setarg(4, W7, _)
13483                          ;   true
13484                          )
13485                      ;   T7=[_, _|V7],
13486                          setarg(2, T7, V7),
13487                          (   V7=[W7|_]
13488                          ->  setarg(4, W7, T7)
13489                          ;   true
13490                          )
13491                      )
13492                    ),
13493                    'detach_known/1_1_$special_\\+/1___1'(S7, E)
13494                )
13495            ),
13496            'known/1_1_$special_fail/0'
13497        )
13498    ;   A=(X7=\=Y7),
13499        (   'chr newvia_2'(X7, Y7, Z7)
13500        ->  get_attr(Z7, guard_entailment, A8),
13501            A8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, B8, _, _, _, _, _, _, _, _)
13502        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
13503                      B8)
13504        ),
13505        member(C8, B8),
13506        C8=suspension(_, active, _, _, _, D8, E8),
13507        D8==X7,
13508        E8==Y7,
13509        !,
13510        C8=suspension(_, _, _, _, _, F8, G8),
13511        setarg(2, C8, removed),
13512        term_variables(term(F8, G8), L8),
13513        arg(5, C8, H8),
13514        (   var(H8)
13515        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
13516                      I8),
13517            I8=[_|J8],
13518            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
13519                     J8),
13520            (   J8=[K8|_]
13521            ->  setarg(5, K8, _)
13522            ;   true
13523            )
13524        ;   H8=[_, _|J8],
13525            setarg(2, H8, J8),
13526            (   J8=[K8|_]
13527            ->  setarg(5, K8, H8)
13528            ;   true
13529            )
13530        ),
13531        'detach_known/1_1_$special_=\\=/2___2'(L8, C8),
13532        (   var(E)
13533        ->  true
13534        ;   E=suspension(_, M8, _, _, N8),
13535            setarg(2, E, removed),
13536            (   M8==not_stored_yet
13537            ->  O8=[]
13538            ;   term_variables(N8, O8),
13539                ( arg(4, E, P8),
13540                  (   var(P8)
13541                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13542                                Q8),
13543                      Q8=[_|R8],
13544                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13545                               R8),
13546                      (   R8=[S8|_]
13547                      ->  setarg(4, S8, _)
13548                      ;   true
13549                      )
13550                  ;   P8=[_, _|R8],
13551                      setarg(2, P8, R8),
13552                      (   R8=[S8|_]
13553                      ->  setarg(4, S8, P8)
13554                      ;   true
13555                      )
13556                  )
13557                ),
13558                'detach_known/1_1_$special_\\+/1___1'(O8, E)
13559            )
13560        ),
13561        'known/1_1_$special_fail/0'
13562    ).
13563'known/1_1_$special_\\+/1___1__0'(A, N) :-
13564    (   'chr newvia_1'(A, B)
13565    ->  get_attr(B, guard_entailment, C),
13566        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
13567    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13568                  D)
13569    ),
13570    member(E, D),
13571    E=suspension(_, active, _, _, F),
13572    nonvar(F),
13573    F=(\+G),
13574    G==A,
13575    !,
13576    E=suspension(_, _, _, _, H),
13577    setarg(2, E, removed),
13578    term_variables(H, M),
13579    arg(4, E, I),
13580    (   var(I)
13581    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13582                  J),
13583        J=[_|K],
13584        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13585                 K),
13586        (   K=[L|_]
13587        ->  setarg(4, L, _)
13588        ;   true
13589        )
13590    ;   I=[_, _|K],
13591        setarg(2, I, K),
13592        (   K=[L|_]
13593        ->  setarg(4, L, I)
13594        ;   true
13595        )
13596    ),
13597    'detach_known/1_1_$special_\\+/1___1'(M, E),
13598    (   var(N)
13599    ->  true
13600    ;   N=suspension(_, O, _, _, P),
13601        setarg(2, N, removed),
13602        (   O==not_stored_yet
13603        ->  Q=[]
13604        ;   term_variables(P, Q),
13605            ( arg(4, N, R),
13606              (   var(R)
13607              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13608                            S),
13609                  S=[_|T],
13610                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13611                           T),
13612                  (   T=[U|_]
13613                  ->  setarg(4, U, _)
13614                  ;   true
13615                  )
13616              ;   R=[_, _|T],
13617                  setarg(2, R, T),
13618                  (   T=[U|_]
13619                  ->  setarg(4, U, R)
13620                  ;   true
13621                  )
13622              )
13623            ),
13624            'detach_known/1_1_$special_\\+/1___1'(Q, N)
13625        )
13626    ),
13627    'known/1_1_$special_fail/0'.
13628'known/1_1_$special_\\+/1___1__0'(A, N) :-
13629    nonvar(A),
13630    (   (   (   (   (   (   (   A=(\+B),
13631                                (   'chr newvia_1'(B, C)
13632                                ->  get_attr(C, guard_entailment, D),
13633                                    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
13634                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13635                                              E)
13636                                ),
13637                                member(F, E),
13638                                F=suspension(_, active, _, _, G),
13639                                G==B,
13640                                !,
13641                                F=suspension(_, _, _, _, H),
13642                                setarg(2, F, removed),
13643                                term_variables(H, M),
13644                                arg(4, F, I),
13645                                (   var(I)
13646                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13647                                              J),
13648                                    J=[_|K],
13649                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13650                                             K),
13651                                    (   K=[L|_]
13652                                    ->  setarg(4, L, _)
13653                                    ;   true
13654                                    )
13655                                ;   I=[_, _|K],
13656                                    setarg(2, I, K),
13657                                    (   K=[L|_]
13658                                    ->  setarg(4, L, I)
13659                                    ;   true
13660                                    )
13661                                ),
13662                                'detach_known/1_1_$special_\\+/1___1'(M,
13663                                                                      F),
13664                                (   var(N)
13665                                ->  true
13666                                ;   N=suspension(_, O, _, _, P),
13667                                    setarg(2, N, removed),
13668                                    (   O==not_stored_yet
13669                                    ->  Q=[]
13670                                    ;   term_variables(P, Q),
13671                                        ( arg(4, N, R),
13672                                          (   var(R)
13673                                          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13674                                                        S),
13675                                              S=[_|T],
13676                                              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13677                                                       T),
13678                                              (   T=[U|_]
13679                                              ->  setarg(4, U, _)
13680                                              ;   true
13681                                              )
13682                                          ;   R=[_, _|T],
13683                                              setarg(2, R, T),
13684                                              (   T=[U|_]
13685                                              ->  setarg(4, U, R)
13686                                              ;   true
13687                                              )
13688                                          )
13689                                        ),
13690                                        'detach_known/1_1_$special_\\+/1___1'(Q,
13691                                                                              N)
13692                                    )
13693                                ),
13694                                'known/1_1_$special_fail/0'
13695                            ;   A=functor(V, W, X),
13696                                (   'chr newvia'([V, W, X],
13697                                                 Y)
13698                                ->  get_attr(Y,
13699                                             guard_entailment,
13700                                             Z),
13701                                    Z=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, A1, _, _, _, _, _, _)
13702                                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
13703                                              A1)
13704                                ),
13705                                member(B1, A1),
13706                                B1=suspension(_, active, _, _, C1, D1, E1),
13707                                C1==V,
13708                                D1==W,
13709                                E1==X,
13710                                !,
13711                                B1=suspension(_, _, _, _, F1, G1, H1),
13712                                setarg(2, B1, removed),
13713                                term_variables(term(F1,
13714                                                    G1,
13715                                                    H1),
13716                                               M1),
13717                                arg(4, B1, I1),
13718                                (   var(I1)
13719                                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
13720                                              J1),
13721                                    J1=[_|K1],
13722                                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
13723                                             K1),
13724                                    (   K1=[L1|_]
13725                                    ->  setarg(4, L1, _)
13726                                    ;   true
13727                                    )
13728                                ;   I1=[_, _|K1],
13729                                    setarg(2, I1, K1),
13730                                    (   K1=[L1|_]
13731                                    ->  setarg(4, L1, I1)
13732                                    ;   true
13733                                    )
13734                                ),
13735                                'detach_known/1_1_$special_functor/3___3'(M1,
13736                                                                          B1),
13737                                (   var(N)
13738                                ->  true
13739                                ;   N=suspension(_, N1, _, _, O1),
13740                                    setarg(2, N, removed),
13741                                    (   N1==not_stored_yet
13742                                    ->  P1=[]
13743                                    ;   term_variables(O1, P1),
13744                                        ( arg(4, N, Q1),
13745                                          (   var(Q1)
13746                                          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13747                                                        R1),
13748                                              R1=[_|S1],
13749                                              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13750                                                       S1),
13751                                              (   S1=[T1|_]
13752                                              ->  setarg(4, T1, _)
13753                                              ;   true
13754                                              )
13755                                          ;   Q1=[_, _|S1],
13756                                              setarg(2, Q1, S1),
13757                                              (   S1=[T1|_]
13758                                              ->  setarg(4, T1, Q1)
13759                                              ;   true
13760                                              )
13761                                          )
13762                                        ),
13763                                        'detach_known/1_1_$special_\\+/1___1'(P1,
13764                                                                              N)
13765                                    )
13766                                ),
13767                                'known/1_1_$special_fail/0'
13768                            )
13769                        ;   A=(U1\=V1),
13770                            (   'chr newvia_2'(U1, V1, W1)
13771                            ->  get_attr(W1, guard_entailment, X1),
13772                                X1=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, Y1, _, _, _, _, _)
13773                            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
13774                                          Y1)
13775                            ),
13776                            member(Z1, Y1),
13777                            Z1=suspension(_, active, _, _, _, A2, B2),
13778                            A2==U1,
13779                            B2==V1,
13780                            !,
13781                            Z1=suspension(_, _, _, _, _, C2, D2),
13782                            setarg(2, Z1, removed),
13783                            term_variables(term(C2, D2), I2),
13784                            arg(5, Z1, E2),
13785                            (   var(E2)
13786                            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
13787                                          F2),
13788                                F2=[_|G2],
13789                                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
13790                                         G2),
13791                                (   G2=[H2|_]
13792                                ->  setarg(5, H2, _)
13793                                ;   true
13794                                )
13795                            ;   E2=[_, _|G2],
13796                                setarg(2, E2, G2),
13797                                (   G2=[H2|_]
13798                                ->  setarg(5, H2, E2)
13799                                ;   true
13800                                )
13801                            ),
13802                            'detach_known/1_1_$special_\\=/2___2'(I2,
13803                                                                  Z1),
13804                            (   var(N)
13805                            ->  true
13806                            ;   N=suspension(_, J2, _, _, K2),
13807                                setarg(2, N, removed),
13808                                (   J2==not_stored_yet
13809                                ->  L2=[]
13810                                ;   term_variables(K2, L2),
13811                                    ( arg(4, N, M2),
13812                                      (   var(M2)
13813                                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13814                                                    N2),
13815                                          N2=[_|O2],
13816                                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13817                                                   O2),
13818                                          (   O2=[P2|_]
13819                                          ->  setarg(4, P2, _)
13820                                          ;   true
13821                                          )
13822                                      ;   M2=[_, _|O2],
13823                                          setarg(2, M2, O2),
13824                                          (   O2=[P2|_]
13825                                          ->  setarg(4, P2, M2)
13826                                          ;   true
13827                                          )
13828                                      )
13829                                    ),
13830                                    'detach_known/1_1_$special_\\+/1___1'(L2,
13831                                                                          N)
13832                                )
13833                            ),
13834                            'known/1_1_$special_fail/0'
13835                        )
13836                    ;   A=(Q2=R2),
13837                        (   'chr newvia_2'(Q2, R2, S2)
13838                        ->  get_attr(S2, guard_entailment, T2),
13839                            T2=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, U2, _, _, _, _)
13840                        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
13841                                      U2)
13842                        ),
13843                        member(V2, U2),
13844                        V2=suspension(_, active, _, _, W2, X2),
13845                        W2==Q2,
13846                        X2==R2,
13847                        !,
13848                        V2=suspension(_, _, _, _, Y2, Z2),
13849                        setarg(2, V2, removed),
13850                        term_variables(term(Y2, Z2), E3),
13851                        arg(4, V2, A3),
13852                        (   var(A3)
13853                        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
13854                                      B3),
13855                            B3=[_|C3],
13856                            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
13857                                     C3),
13858                            (   C3=[D3|_]
13859                            ->  setarg(4, D3, _)
13860                            ;   true
13861                            )
13862                        ;   A3=[_, _|C3],
13863                            setarg(2, A3, C3),
13864                            (   C3=[D3|_]
13865                            ->  setarg(4, D3, A3)
13866                            ;   true
13867                            )
13868                        ),
13869                        'detach_known/1_1_$special_=/2___2'(E3, V2),
13870                        (   var(N)
13871                        ->  true
13872                        ;   N=suspension(_, F3, _, _, G3),
13873                            setarg(2, N, removed),
13874                            (   F3==not_stored_yet
13875                            ->  H3=[]
13876                            ;   term_variables(G3, H3),
13877                                ( arg(4, N, I3),
13878                                  (   var(I3)
13879                                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13880                                                J3),
13881                                      J3=[_|K3],
13882                                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13883                                               K3),
13884                                      (   K3=[L3|_]
13885                                      ->  setarg(4, L3, _)
13886                                      ;   true
13887                                      )
13888                                  ;   I3=[_, _|K3],
13889                                      setarg(2, I3, K3),
13890                                      (   K3=[L3|_]
13891                                      ->  setarg(4, L3, I3)
13892                                      ;   true
13893                                      )
13894                                  )
13895                                ),
13896                                'detach_known/1_1_$special_\\+/1___1'(H3,
13897                                                                      N)
13898                            )
13899                        ),
13900                        'known/1_1_$special_fail/0'
13901                    )
13902                ;   A=(M3\==N3),
13903                    (   'chr newvia_2'(M3, N3, O3)
13904                    ->  get_attr(O3, guard_entailment, P3),
13905                        P3=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, Q3, _, _, _)
13906                    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
13907                                  Q3)
13908                    ),
13909                    member(R3, Q3),
13910                    R3=suspension(_, active, _, _, _, S3, T3),
13911                    S3==M3,
13912                    T3==N3,
13913                    !,
13914                    R3=suspension(_, _, _, _, _, U3, V3),
13915                    setarg(2, R3, removed),
13916                    term_variables(term(U3, V3), A4),
13917                    arg(5, R3, W3),
13918                    (   var(W3)
13919                    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
13920                                  X3),
13921                        X3=[_|Y3],
13922                        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
13923                                 Y3),
13924                        (   Y3=[Z3|_]
13925                        ->  setarg(5, Z3, _)
13926                        ;   true
13927                        )
13928                    ;   W3=[_, _|Y3],
13929                        setarg(2, W3, Y3),
13930                        (   Y3=[Z3|_]
13931                        ->  setarg(5, Z3, W3)
13932                        ;   true
13933                        )
13934                    ),
13935                    'detach_known/1_1_$special_\\==/2___2'(A4, R3),
13936                    (   var(N)
13937                    ->  true
13938                    ;   N=suspension(_, B4, _, _, C4),
13939                        setarg(2, N, removed),
13940                        (   B4==not_stored_yet
13941                        ->  D4=[]
13942                        ;   term_variables(C4, D4),
13943                            ( arg(4, N, E4),
13944                              (   var(E4)
13945                              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13946                                            F4),
13947                                  F4=[_|G4],
13948                                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13949                                           G4),
13950                                  (   G4=[H4|_]
13951                                  ->  setarg(4, H4, _)
13952                                  ;   true
13953                                  )
13954                              ;   E4=[_, _|G4],
13955                                  setarg(2, E4, G4),
13956                                  (   G4=[H4|_]
13957                                  ->  setarg(4, H4, E4)
13958                                  ;   true
13959                                  )
13960                              )
13961                            ),
13962                            'detach_known/1_1_$special_\\+/1___1'(D4,
13963                                                                  N)
13964                        )
13965                    ),
13966                    'known/1_1_$special_fail/0'
13967                )
13968            ;   A=(I4==J4),
13969                (   'chr newvia_2'(I4, J4, K4)
13970                ->  get_attr(K4, guard_entailment, L4),
13971                    L4=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, M4, _, _)
13972                ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
13973                              M4)
13974                ),
13975                member(N4, M4),
13976                N4=suspension(_, active, _, _, _, O4, P4),
13977                O4==I4,
13978                P4==J4,
13979                !,
13980                N4=suspension(_, _, _, _, _, Q4, R4),
13981                setarg(2, N4, removed),
13982                term_variables(term(Q4, R4), W4),
13983                arg(5, N4, S4),
13984                (   var(S4)
13985                ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
13986                              T4),
13987                    T4=[_|U4],
13988                    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
13989                             U4),
13990                    (   U4=[V4|_]
13991                    ->  setarg(5, V4, _)
13992                    ;   true
13993                    )
13994                ;   S4=[_, _|U4],
13995                    setarg(2, S4, U4),
13996                    (   U4=[V4|_]
13997                    ->  setarg(5, V4, S4)
13998                    ;   true
13999                    )
14000                ),
14001                'detach_known/1_1_$special_==/2___2'(W4, N4),
14002                (   var(N)
14003                ->  true
14004                ;   N=suspension(_, X4, _, _, Y4),
14005                    setarg(2, N, removed),
14006                    (   X4==not_stored_yet
14007                    ->  Z4=[]
14008                    ;   term_variables(Y4, Z4),
14009                        ( arg(4, N, A5),
14010                          (   var(A5)
14011                          ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14012                                        B5),
14013                              B5=[_|C5],
14014                              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14015                                       C5),
14016                              (   C5=[D5|_]
14017                              ->  setarg(4, D5, _)
14018                              ;   true
14019                              )
14020                          ;   A5=[_, _|C5],
14021                              setarg(2, A5, C5),
14022                              (   C5=[D5|_]
14023                              ->  setarg(4, D5, A5)
14024                              ;   true
14025                              )
14026                          )
14027                        ),
14028                        'detach_known/1_1_$special_\\+/1___1'(Z4, N)
14029                    )
14030                ),
14031                'known/1_1_$special_fail/0'
14032            )
14033        ;   A=(E5=<F5),
14034            (   'chr newvia_2'(E5, F5, G5)
14035            ->  get_attr(G5, guard_entailment, H5),
14036                H5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, I5, _)
14037            ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
14038                          I5)
14039            ),
14040            member(J5, I5),
14041            J5=suspension(_, active, _, _, _, K5, L5),
14042            K5==E5,
14043            L5==F5,
14044            !,
14045            J5=suspension(_, _, _, _, _, M5, N5),
14046            setarg(2, J5, removed),
14047            term_variables(term(M5, N5), S5),
14048            arg(5, J5, O5),
14049            (   var(O5)
14050            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
14051                          P5),
14052                P5=[_|Q5],
14053                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
14054                         Q5),
14055                (   Q5=[R5|_]
14056                ->  setarg(5, R5, _)
14057                ;   true
14058                )
14059            ;   O5=[_, _|Q5],
14060                setarg(2, O5, Q5),
14061                (   Q5=[R5|_]
14062                ->  setarg(5, R5, O5)
14063                ;   true
14064                )
14065            ),
14066            'detach_known/1_1_$special_=</2___2'(S5, J5),
14067            (   var(N)
14068            ->  true
14069            ;   N=suspension(_, T5, _, _, U5),
14070                setarg(2, N, removed),
14071                (   T5==not_stored_yet
14072                ->  V5=[]
14073                ;   term_variables(U5, V5),
14074                    ( arg(4, N, W5),
14075                      (   var(W5)
14076                      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14077                                    X5),
14078                          X5=[_|Y5],
14079                          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14080                                   Y5),
14081                          (   Y5=[Z5|_]
14082                          ->  setarg(4, Z5, _)
14083                          ;   true
14084                          )
14085                      ;   W5=[_, _|Y5],
14086                          setarg(2, W5, Y5),
14087                          (   Y5=[Z5|_]
14088                          ->  setarg(4, Z5, W5)
14089                          ;   true
14090                          )
14091                      )
14092                    ),
14093                    'detach_known/1_1_$special_\\+/1___1'(V5, N)
14094                )
14095            ),
14096            'known/1_1_$special_fail/0'
14097        )
14098    ;   A=(A6=:=B6),
14099        (   'chr newvia_2'(A6, B6, C6)
14100        ->  get_attr(C6, guard_entailment, D6),
14101            D6=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E6)
14102        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
14103                      E6)
14104        ),
14105        member(F6, E6),
14106        F6=suspension(_, active, _, _, _, G6, H6),
14107        G6==A6,
14108        H6==B6,
14109        !,
14110        F6=suspension(_, _, _, _, _, I6, J6),
14111        setarg(2, F6, removed),
14112        term_variables(term(I6, J6), O6),
14113        arg(5, F6, K6),
14114        (   var(K6)
14115        ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
14116                      L6),
14117            L6=[_|M6],
14118            b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
14119                     M6),
14120            (   M6=[N6|_]
14121            ->  setarg(5, N6, _)
14122            ;   true
14123            )
14124        ;   K6=[_, _|M6],
14125            setarg(2, K6, M6),
14126            (   M6=[N6|_]
14127            ->  setarg(5, N6, K6)
14128            ;   true
14129            )
14130        ),
14131        'detach_known/1_1_$special_=:=/2___2'(O6, F6),
14132        (   var(N)
14133        ->  true
14134        ;   N=suspension(_, P6, _, _, Q6),
14135            setarg(2, N, removed),
14136            (   P6==not_stored_yet
14137            ->  R6=[]
14138            ;   term_variables(Q6, R6),
14139                ( arg(4, N, S6),
14140                  (   var(S6)
14141                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14142                                T6),
14143                      T6=[_|U6],
14144                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14145                               U6),
14146                      (   U6=[V6|_]
14147                      ->  setarg(4, V6, _)
14148                      ;   true
14149                      )
14150                  ;   S6=[_, _|U6],
14151                      setarg(2, S6, U6),
14152                      (   U6=[V6|_]
14153                      ->  setarg(4, V6, S6)
14154                      ;   true
14155                      )
14156                  )
14157                ),
14158                'detach_known/1_1_$special_\\+/1___1'(R6, N)
14159            )
14160        ),
14161        'known/1_1_$special_fail/0'
14162    ).
14163'known/1_1_$special_\\+/1___1__0'(A, M) :-
14164    (   'chr newvia_1'(A, B)
14165    ->  get_attr(B, guard_entailment, C),
14166        C=v(_, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14167    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
14168                  D)
14169    ),
14170    member(E, D),
14171    E=suspension(_, active, _, _, F),
14172    F==A,
14173    !,
14174    E=suspension(_, _, _, _, G),
14175    setarg(2, E, removed),
14176    term_variables(G, L),
14177    arg(4, E, H),
14178    (   var(H)
14179    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
14180                  I),
14181        I=[_|J],
14182        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
14183                 J),
14184        (   J=[K|_]
14185        ->  setarg(4, K, _)
14186        ;   true
14187        )
14188    ;   H=[_, _|J],
14189        setarg(2, H, J),
14190        (   J=[K|_]
14191        ->  setarg(4, K, H)
14192        ;   true
14193        )
14194    ),
14195    'detach_known/1_1_$default___1'(L, E),
14196    (   var(M)
14197    ->  true
14198    ;   M=suspension(_, N, _, _, O),
14199        setarg(2, M, removed),
14200        (   N==not_stored_yet
14201        ->  P=[]
14202        ;   term_variables(O, P),
14203            ( arg(4, M, Q),
14204              (   var(Q)
14205              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14206                            R),
14207                  R=[_|S],
14208                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14209                           S),
14210                  (   S=[T|_]
14211                  ->  setarg(4, T, _)
14212                  ;   true
14213                  )
14214              ;   Q=[_, _|S],
14215                  setarg(2, Q, S),
14216                  (   S=[T|_]
14217                  ->  setarg(4, T, Q)
14218                  ;   true
14219                  )
14220              )
14221            ),
14222            'detach_known/1_1_$special_\\+/1___1'(P, M)
14223        )
14224    ),
14225    'known/1_1_$special_fail/0'.
14226'known/1_1_$special_\\+/1___1__0'(A, E) :-
14227    (   'chr newvia_1'(A, B)
14228    ->  get_attr(B, guard_entailment, C),
14229        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14230    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14231                  D)
14232    ),
14233    !,
14234    (   var(E)
14235    ->  E=suspension(F, not_stored_yet, 0, _, A),
14236        'chr gen_id'(F)
14237    ;   true
14238    ),
14239    'known/1_1_$special_\\+/1___1__0__0__33'(D, A, E).
14240'known/1_1_$special_\\+/1___1__0__0__33'([], A, B) :-
14241    'known/1_1_$special_\\+/1___1__1'(A, B).
14242'known/1_1_$special_\\+/1___1__0__0__33'([A|W], E, M) :-
14243    (   A=suspension(_, active, _, _, B, V),
14244        nonvar(B),
14245        B=(\+C),
14246        nonvar(C),
14247        C=(\+D),
14248        D==E
14249    ->  ( A=suspension(_, _, _, _, F, G),
14250          setarg(2, A, removed),
14251          term_variables(term(F, G), L),
14252          ( arg(4, A, H),
14253            (   var(H)
14254            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14255                          I),
14256                I=[_|J],
14257                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14258                         J),
14259                (   J=[K|_]
14260                ->  setarg(4, K, _)
14261                ;   true
14262                )
14263            ;   H=[_, _|J],
14264                setarg(2, H, J),
14265                (   J=[K|_]
14266                ->  setarg(4, K, H)
14267                ;   true
14268                )
14269            )
14270          ),
14271          'detach_known/1_1_$special_;/2___2'(L, A)
14272        ),
14273        ( arg(2, M, P),
14274          setarg(2, M, active),
14275          ( arg(3, M, N),
14276            O is N+1,
14277            setarg(3, M, O)
14278          ),
14279          (   P==not_stored_yet
14280          ->  M=suspension(_, _, _, _, Q),
14281              term_variables(Q, R),
14282              'chr none_locked'(R),
14283              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14284                          S),
14285                T=[M|S],
14286                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14287                         T),
14288                (   S=[U|_]
14289                ->  setarg(4, U, T)
14290                ;   true
14291                )
14292              ),
14293              'attach_known/1_1_$special_\\+/1___1'(R, M)
14294          ;   true
14295          )
14296        ),
14297        known(V),
14298        (   M=suspension(_, active, O, _, _)
14299        ->  setarg(2, M, inactive),
14300            'known/1_1_$special_\\+/1___1__0__0__33'(W, E, M)
14301        ;   true
14302        )
14303    ;   'known/1_1_$special_\\+/1___1__0__0__33'(W, E, M)
14304    ).
14305'known/1_1_$special_\\+/1___1__0'(B, A) :-
14306    (   var(A)
14307    ->  A=suspension(C, not_stored_yet, 0, _, B),
14308        'chr gen_id'(C)
14309    ;   true
14310    ),
14311    'known/1_1_$special_\\+/1___1__1'(B, A).
14312'known/1_1_$special_\\+/1___1__1'(A, E) :-
14313    (   'chr newvia_1'(A, B)
14314    ->  get_attr(B, guard_entailment, C),
14315        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14316    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14317                  D)
14318    ),
14319    !,
14320    'known/1_1_$special_\\+/1___1__1__0__34'(D, A, E).
14321'known/1_1_$special_\\+/1___1__1__0__34'([], A, B) :-
14322    'known/1_1_$special_\\+/1___1__2'(A, B).
14323'known/1_1_$special_\\+/1___1__1__0__34'([A|X], F, N) :-
14324    (   A=suspension(_, active, _, _, B, W),
14325        nonvar(B),
14326        B=(C, _),
14327        nonvar(C),
14328        C=(\+D),
14329        nonvar(D),
14330        D=(\+E),
14331        E==F
14332    ->  ( A=suspension(_, _, _, _, G, H),
14333          setarg(2, A, removed),
14334          term_variables(term(G, H), M),
14335          ( arg(4, A, I),
14336            (   var(I)
14337            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14338                          J),
14339                J=[_|K],
14340                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14341                         K),
14342                (   K=[L|_]
14343                ->  setarg(4, L, _)
14344                ;   true
14345                )
14346            ;   I=[_, _|K],
14347                setarg(2, I, K),
14348                (   K=[L|_]
14349                ->  setarg(4, L, I)
14350                ;   true
14351                )
14352            )
14353          ),
14354          'detach_known/1_1_$special_;/2___2'(M, A)
14355        ),
14356        ( arg(2, N, Q),
14357          setarg(2, N, active),
14358          ( arg(3, N, O),
14359            P is O+1,
14360            setarg(3, N, P)
14361          ),
14362          (   Q==not_stored_yet
14363          ->  N=suspension(_, _, _, _, R),
14364              term_variables(R, S),
14365              'chr none_locked'(S),
14366              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14367                          T),
14368                U=[N|T],
14369                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14370                         U),
14371                (   T=[V|_]
14372                ->  setarg(4, V, U)
14373                ;   true
14374                )
14375              ),
14376              'attach_known/1_1_$special_\\+/1___1'(S, N)
14377          ;   true
14378          )
14379        ),
14380        known(W),
14381        (   N=suspension(_, active, P, _, _)
14382        ->  setarg(2, N, inactive),
14383            'known/1_1_$special_\\+/1___1__1__0__34'(X, F, N)
14384        ;   true
14385        )
14386    ;   'known/1_1_$special_\\+/1___1__1__0__34'(X, F, N)
14387    ).
14388'known/1_1_$special_\\+/1___1__1'(A, B) :-
14389    'known/1_1_$special_\\+/1___1__2'(A, B).
14390'known/1_1_$special_\\+/1___1__2'(A, E) :-
14391    (   'chr newvia_1'(A, B)
14392    ->  get_attr(B, guard_entailment, C),
14393        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14394    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14395                  D)
14396    ),
14397    !,
14398    'known/1_1_$special_\\+/1___1__2__0__35'(D, A, E).
14399'known/1_1_$special_\\+/1___1__2__0__35'([], A, B) :-
14400    'known/1_1_$special_\\+/1___1__3'(A, B).
14401'known/1_1_$special_\\+/1___1__2__0__35'([A|U], C, K) :-
14402    (   A=suspension(_, active, _, _, B, T),
14403        B==C
14404    ->  ( A=suspension(_, _, _, _, D, E),
14405          setarg(2, A, removed),
14406          term_variables(term(D, E), J),
14407          ( arg(4, A, F),
14408            (   var(F)
14409            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14410                          G),
14411                G=[_|H],
14412                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14413                         H),
14414                (   H=[I|_]
14415                ->  setarg(4, I, _)
14416                ;   true
14417                )
14418            ;   F=[_, _|H],
14419                setarg(2, F, H),
14420                (   H=[I|_]
14421                ->  setarg(4, I, F)
14422                ;   true
14423                )
14424            )
14425          ),
14426          'detach_known/1_1_$special_;/2___2'(J, A)
14427        ),
14428        ( arg(2, K, N),
14429          setarg(2, K, active),
14430          ( arg(3, K, L),
14431            M is L+1,
14432            setarg(3, K, M)
14433          ),
14434          (   N==not_stored_yet
14435          ->  K=suspension(_, _, _, _, O),
14436              term_variables(O, P),
14437              'chr none_locked'(P),
14438              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14439                          Q),
14440                R=[K|Q],
14441                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14442                         R),
14443                (   Q=[S|_]
14444                ->  setarg(4, S, R)
14445                ;   true
14446                )
14447              ),
14448              'attach_known/1_1_$special_\\+/1___1'(P, K)
14449          ;   true
14450          )
14451        ),
14452        known(T),
14453        (   K=suspension(_, active, M, _, _)
14454        ->  setarg(2, K, inactive),
14455            'known/1_1_$special_\\+/1___1__2__0__35'(U, C, K)
14456        ;   true
14457        )
14458    ;   'known/1_1_$special_\\+/1___1__2__0__35'(U, C, K)
14459    ).
14460'known/1_1_$special_\\+/1___1__2'(A, B) :-
14461    'known/1_1_$special_\\+/1___1__3'(A, B).
14462'known/1_1_$special_\\+/1___1__3'(A, E) :-
14463    (   'chr newvia_1'(A, B)
14464    ->  get_attr(B, guard_entailment, C),
14465        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14466    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14467                  D)
14468    ),
14469    !,
14470    'known/1_1_$special_\\+/1___1__3__0__36'(D, A, E).
14471'known/1_1_$special_\\+/1___1__3__0__36'([], A, B) :-
14472    'known/1_1_$special_\\+/1___1__4'(A, B).
14473'known/1_1_$special_\\+/1___1__3__0__36'([A|V], D, L) :-
14474    (   A=suspension(_, active, _, _, B, U),
14475        nonvar(B),
14476        B=(C, _),
14477        C==D
14478    ->  ( A=suspension(_, _, _, _, E, F),
14479          setarg(2, A, removed),
14480          term_variables(term(E, F), K),
14481          ( arg(4, A, G),
14482            (   var(G)
14483            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14484                          H),
14485                H=[_|I],
14486                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14487                         I),
14488                (   I=[J|_]
14489                ->  setarg(4, J, _)
14490                ;   true
14491                )
14492            ;   G=[_, _|I],
14493                setarg(2, G, I),
14494                (   I=[J|_]
14495                ->  setarg(4, J, G)
14496                ;   true
14497                )
14498            )
14499          ),
14500          'detach_known/1_1_$special_;/2___2'(K, A)
14501        ),
14502        ( arg(2, L, O),
14503          setarg(2, L, active),
14504          ( arg(3, L, M),
14505            N is M+1,
14506            setarg(3, L, N)
14507          ),
14508          (   O==not_stored_yet
14509          ->  L=suspension(_, _, _, _, P),
14510              term_variables(P, Q),
14511              'chr none_locked'(Q),
14512              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14513                          R),
14514                S=[L|R],
14515                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14516                         S),
14517                (   R=[T|_]
14518                ->  setarg(4, T, S)
14519                ;   true
14520                )
14521              ),
14522              'attach_known/1_1_$special_\\+/1___1'(Q, L)
14523          ;   true
14524          )
14525        ),
14526        known(U),
14527        (   L=suspension(_, active, N, _, _)
14528        ->  setarg(2, L, inactive),
14529            'known/1_1_$special_\\+/1___1__3__0__36'(V, D, L)
14530        ;   true
14531        )
14532    ;   'known/1_1_$special_\\+/1___1__3__0__36'(V, D, L)
14533    ).
14534'known/1_1_$special_\\+/1___1__3'(A, B) :-
14535    'known/1_1_$special_\\+/1___1__4'(A, B).
14536'known/1_1_$special_\\+/1___1__4'(_, A) :-
14537    arg(2, A, D),
14538    setarg(2, A, active),
14539    arg(3, A, B),
14540    C is B+1,
14541    setarg(3, A, C),
14542    (   D==not_stored_yet
14543    ->  A=suspension(_, _, _, _, E),
14544        term_variables(E, F),
14545        'chr none_locked'(F),
14546        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14547                    G),
14548          H=[A|G],
14549          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14550                   H),
14551          (   G=[I|_]
14552          ->  setarg(4, I, H)
14553          ;   true
14554          )
14555        ),
14556        'attach_known/1_1_$special_\\+/1___1'(F, A)
14557    ;   true
14558    ).
14559'known/1_1_$special_functor/3'(A, B, C) :-
14560    'known/1_1_$special_functor/3___3__0'(A, B, C, _).
14561'known/1_1_$special_functor/3___3__0'(A, B, C, K) :-
14562    (   'chr newvia'([A, B, C], D)
14563    ->  get_attr(D, guard_entailment, E),
14564        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _)
14565    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14566                  F)
14567    ),
14568    member(G, F),
14569    G=suspension(_, active, _, _, H, I, J),
14570    H==A,
14571    I==B,
14572    J==C,
14573    !,
14574    (   var(K)
14575    ->  true
14576    ;   K=suspension(_, L, _, _, M, N, O),
14577        setarg(2, K, removed),
14578        (   L==not_stored_yet
14579        ->  P=[]
14580        ;   term_variables(term(M, N, O), P),
14581            ( arg(4, K, Q),
14582              (   var(Q)
14583              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14584                            R),
14585                  R=[_|S],
14586                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14587                           S),
14588                  (   S=[T|_]
14589                  ->  setarg(4, T, _)
14590                  ;   true
14591                  )
14592              ;   Q=[_, _|S],
14593                  setarg(2, Q, S),
14594                  (   S=[T|_]
14595                  ->  setarg(4, T, Q)
14596                  ;   true
14597                  )
14598              )
14599            ),
14600            'detach_known/1_1_$special_functor/3___3'(P, K)
14601        )
14602    ).
14603'known/1_1_$special_functor/3___3__0'(_, _, _, C) :-
14604    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
14605              A),
14606    member(B, A),
14607    B=suspension(_, active, _),
14608    !,
14609    (   var(C)
14610    ->  true
14611    ;   C=suspension(_, D, _, _, E, F, G),
14612        setarg(2, C, removed),
14613        (   D==not_stored_yet
14614        ->  H=[]
14615        ;   term_variables(term(E, F, G), H),
14616            ( arg(4, C, I),
14617              (   var(I)
14618              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14619                            J),
14620                  J=[_|K],
14621                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14622                           K),
14623                  (   K=[L|_]
14624                  ->  setarg(4, L, _)
14625                  ;   true
14626                  )
14627              ;   I=[_, _|K],
14628                  setarg(2, I, K),
14629                  (   K=[L|_]
14630                  ->  setarg(4, L, I)
14631                  ;   true
14632                  )
14633              )
14634            ),
14635            'detach_known/1_1_$special_functor/3___3'(H, C)
14636        )
14637    ).
14638'known/1_1_$special_functor/3___3__0'(C, B, A, L) :-
14639    ground(A),
14640    ground(B),
14641    var(C),
14642    nb_getval('$chr_store_global_list_guard_entailment____variables___1',
14643              D),
14644    member(E, D),
14645    E=suspension(_, active, _, W),
14646    !,
14647    E=suspension(_, _, _, F),
14648    setarg(2, E, removed),
14649    term_variables(F, K),
14650    arg(3, E, G),
14651    (   var(G)
14652    ->  nb_getval('$chr_store_global_list_guard_entailment____variables___1',
14653                  H),
14654        H=[_|I],
14655        b_setval('$chr_store_global_list_guard_entailment____variables___1',
14656                 I),
14657        (   I=[J|_]
14658        ->  setarg(3, J, _)
14659        ;   true
14660        )
14661    ;   G=[_, _|I],
14662        setarg(2, G, I),
14663        (   I=[J|_]
14664        ->  setarg(3, J, G)
14665        ;   true
14666        )
14667    ),
14668    detach_variables___1(K, E),
14669    (   var(L)
14670    ->  true
14671    ;   L=suspension(_, M, _, _, N, O, P),
14672        setarg(2, L, removed),
14673        (   M==not_stored_yet
14674        ->  Q=[]
14675        ;   term_variables(term(N, O, P), Q),
14676            ( arg(4, L, R),
14677              (   var(R)
14678              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14679                            S),
14680                  S=[_|T],
14681                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14682                           T),
14683                  (   T=[U|_]
14684                  ->  setarg(4, U, _)
14685                  ;   true
14686                  )
14687              ;   R=[_, _|T],
14688                  setarg(2, R, T),
14689                  (   T=[U|_]
14690                  ->  setarg(4, U, R)
14691                  ;   true
14692                  )
14693              )
14694            ),
14695            'detach_known/1_1_$special_functor/3___3'(Q, L)
14696        )
14697    ),
14698    functor(C, B, A),
14699    C=..[_|V],
14700    append(V, W, X),
14701    variables(X).
14702'known/1_1_$special_functor/3___3__0'(A, B, C, D) :-
14703    nonvar(A),
14704    'chr lock'(A),
14705    'chr lock'(B),
14706    'chr lock'(C),
14707    \+ functor(A, B, C),
14708    'chr unlock'(A),
14709    'chr unlock'(B),
14710    'chr unlock'(C),
14711    !,
14712    (   var(D)
14713    ->  true
14714    ;   D=suspension(_, E, _, _, F, G, H),
14715        setarg(2, D, removed),
14716        (   E==not_stored_yet
14717        ->  I=[]
14718        ;   term_variables(term(F, G, H), I),
14719            ( arg(4, D, J),
14720              (   var(J)
14721              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14722                            K),
14723                  K=[_|L],
14724                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14725                           L),
14726                  (   L=[M|_]
14727                  ->  setarg(4, M, _)
14728                  ;   true
14729                  )
14730              ;   J=[_, _|L],
14731                  setarg(2, J, L),
14732                  (   L=[M|_]
14733                  ->  setarg(4, M, J)
14734                  ;   true
14735                  )
14736              )
14737            ),
14738            'detach_known/1_1_$special_functor/3___3'(I, D)
14739        )
14740    ),
14741    'known/1_1_$special_fail/0'.
14742'known/1_1_$special_functor/3___3__0'(C, B, A, S) :-
14743    nonvar(A),
14744    nonvar(B),
14745    (   'chr newvia_1'(C, D)
14746    ->  get_attr(D, guard_entailment, E),
14747        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _)
14748    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14749                  F)
14750    ),
14751    member(G, F),
14752    G=suspension(_, active, _, _, H, J, I),
14753    H==C,
14754    nonvar(I),
14755    nonvar(J),
14756    !,
14757    G=suspension(_, _, _, _, K, L, M),
14758    setarg(2, G, removed),
14759    term_variables(term(K, L, M), R),
14760    arg(4, G, N),
14761    (   var(N)
14762    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14763                  O),
14764        O=[_|P],
14765        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14766                 P),
14767        (   P=[Q|_]
14768        ->  setarg(4, Q, _)
14769        ;   true
14770        )
14771    ;   N=[_, _|P],
14772        setarg(2, N, P),
14773        (   P=[Q|_]
14774        ->  setarg(4, Q, N)
14775        ;   true
14776        )
14777    ),
14778    'detach_known/1_1_$special_functor/3___3'(R, G),
14779    (   var(S)
14780    ->  true
14781    ;   S=suspension(_, T, _, _, U, V, W),
14782        setarg(2, S, removed),
14783        (   T==not_stored_yet
14784        ->  X=[]
14785        ;   term_variables(term(U, V, W), X),
14786            ( arg(4, S, Y),
14787              (   var(Y)
14788              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14789                            Z),
14790                  Z=[_|A1],
14791                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14792                           A1),
14793                  (   A1=[B1|_]
14794                  ->  setarg(4, B1, _)
14795                  ;   true
14796                  )
14797              ;   Y=[_, _|A1],
14798                  setarg(2, Y, A1),
14799                  (   A1=[B1|_]
14800                  ->  setarg(4, B1, Y)
14801                  ;   true
14802                  )
14803              )
14804            ),
14805            'detach_known/1_1_$special_functor/3___3'(X, S)
14806        )
14807    ),
14808    'known/1_1_$special_fail/0'.
14809'known/1_1_$special_functor/3___3__0'(A, B, C, R) :-
14810    (   'chr newvia'([A, B, C], D)
14811    ->  get_attr(D, guard_entailment, E),
14812        E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _, _)
14813    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14814                  F)
14815    ),
14816    member(G, F),
14817    G=suspension(_, active, _, _, H),
14818    nonvar(H),
14819    H=functor(I, J, K),
14820    I==A,
14821    J==B,
14822    K==C,
14823    !,
14824    G=suspension(_, _, _, _, L),
14825    setarg(2, G, removed),
14826    term_variables(L, Q),
14827    arg(4, G, M),
14828    (   var(M)
14829    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14830                  N),
14831        N=[_|O],
14832        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14833                 O),
14834        (   O=[P|_]
14835        ->  setarg(4, P, _)
14836        ;   true
14837        )
14838    ;   M=[_, _|O],
14839        setarg(2, M, O),
14840        (   O=[P|_]
14841        ->  setarg(4, P, M)
14842        ;   true
14843        )
14844    ),
14845    'detach_known/1_1_$special_\\+/1___1'(Q, G),
14846    (   var(R)
14847    ->  true
14848    ;   R=suspension(_, S, _, _, T, U, V),
14849        setarg(2, R, removed),
14850        (   S==not_stored_yet
14851        ->  W=[]
14852        ;   term_variables(term(T, U, V), W),
14853            ( arg(4, R, X),
14854              (   var(X)
14855              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14856                            Y),
14857                  Y=[_|Z],
14858                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14859                           Z),
14860                  (   Z=[A1|_]
14861                  ->  setarg(4, A1, _)
14862                  ;   true
14863                  )
14864              ;   X=[_, _|Z],
14865                  setarg(2, X, Z),
14866                  (   Z=[A1|_]
14867                  ->  setarg(4, A1, X)
14868                  ;   true
14869                  )
14870              )
14871            ),
14872            'detach_known/1_1_$special_functor/3___3'(W, R)
14873        )
14874    ),
14875    'known/1_1_$special_fail/0'.
14876'known/1_1_$special_functor/3___3__0'(A, B, C, G) :-
14877    (   'chr newvia'([A, B, C], D)
14878    ->  get_attr(D, guard_entailment, E),
14879        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14880    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14881                  F)
14882    ),
14883    !,
14884    (   var(G)
14885    ->  G=suspension(H, not_stored_yet, 0, _, A, B, C),
14886        'chr gen_id'(H)
14887    ;   true
14888    ),
14889    'known/1_1_$special_functor/3___3__0__0__10'(F,
14890                                                 A,
14891                                                 B,
14892                                                 C,
14893                                                 G).
14894'known/1_1_$special_functor/3___3__0__0__10'([], A, B, C, D) :-
14895    'known/1_1_$special_functor/3___3__1'(A, B, C, D).
14896'known/1_1_$special_functor/3___3__0__0__10'([A|C1], E, G, I, Q) :-
14897    (   A=suspension(_, active, _, _, B, B1),
14898        nonvar(B),
14899        B=(\+C),
14900        nonvar(C),
14901        C=functor(D, F, H),
14902        D==E,
14903        F==G,
14904        H==I
14905    ->  ( A=suspension(_, _, _, _, J, K),
14906          setarg(2, A, removed),
14907          term_variables(term(J, K), P),
14908          ( arg(4, A, L),
14909            (   var(L)
14910            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14911                          M),
14912                M=[_|N],
14913                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14914                         N),
14915                (   N=[O|_]
14916                ->  setarg(4, O, _)
14917                ;   true
14918                )
14919            ;   L=[_, _|N],
14920                setarg(2, L, N),
14921                (   N=[O|_]
14922                ->  setarg(4, O, L)
14923                ;   true
14924                )
14925            )
14926          ),
14927          'detach_known/1_1_$special_;/2___2'(P, A)
14928        ),
14929        ( arg(2, Q, T),
14930          setarg(2, Q, active),
14931          ( arg(3, Q, R),
14932            S is R+1,
14933            setarg(3, Q, S)
14934          ),
14935          (   T==not_stored_yet
14936          ->  Q=suspension(_, _, _, _, U, V, W),
14937              term_variables(term(U, V, W), X),
14938              'chr none_locked'(X),
14939              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14940                          Y),
14941                Z=[Q|Y],
14942                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14943                         Z),
14944                (   Y=[A1|_]
14945                ->  setarg(4, A1, Z)
14946                ;   true
14947                )
14948              ),
14949              'attach_known/1_1_$special_functor/3___3'(X, Q)
14950          ;   true
14951          )
14952        ),
14953        known(B1),
14954        (   Q=suspension(_, active, S, _, _, _, _)
14955        ->  setarg(2, Q, inactive),
14956            'known/1_1_$special_functor/3___3__0__0__10'(C1,
14957                                                         E,
14958                                                         G,
14959                                                         I,
14960                                                         Q)
14961        ;   true
14962        )
14963    ;   'known/1_1_$special_functor/3___3__0__0__10'(C1,
14964                                                     E,
14965                                                     G,
14966                                                     I,
14967                                                     Q)
14968    ).
14969'known/1_1_$special_functor/3___3__0'(B, C, D, A) :-
14970    (   var(A)
14971    ->  A=suspension(E, not_stored_yet, 0, _, B, C, D),
14972        'chr gen_id'(E)
14973    ;   true
14974    ),
14975    'known/1_1_$special_functor/3___3__1'(B, C, D, A).
14976'known/1_1_$special_functor/3___3__1'(A, B, C, G) :-
14977    (   'chr newvia'([A, B, C], D)
14978    ->  get_attr(D, guard_entailment, E),
14979        E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14980    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14981                  F)
14982    ),
14983    !,
14984    'known/1_1_$special_functor/3___3__1__0__11'(F,
14985                                                 A,
14986                                                 B,
14987                                                 C,
14988                                                 G).
14989'known/1_1_$special_functor/3___3__1__0__11'([], A, B, C, D) :-
14990    'known/1_1_$special_functor/3___3__2'(A, B, C, D).
14991'known/1_1_$special_functor/3___3__1__0__11'([A|D1], F, H, J, R) :-
14992    (   A=suspension(_, active, _, _, B, C1),
14993        nonvar(B),
14994        B=(C, _),
14995        nonvar(C),
14996        C=(\+D),
14997        nonvar(D),
14998        D=functor(E, G, I),
14999        E==F,
15000        G==H,
15001        I==J
15002    ->  ( A=suspension(_, _, _, _, K, L),
15003          setarg(2, A, removed),
15004          term_variables(term(K, L), Q),
15005          ( arg(4, A, M),
15006            (   var(M)
15007            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15008                          N),
15009                N=[_|O],
15010                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15011                         O),
15012                (   O=[P|_]
15013                ->  setarg(4, P, _)
15014                ;   true
15015                )
15016            ;   M=[_, _|O],
15017                setarg(2, M, O),
15018                (   O=[P|_]
15019                ->  setarg(4, P, M)
15020                ;   true
15021                )
15022            )
15023          ),
15024          'detach_known/1_1_$special_;/2___2'(Q, A)
15025        ),
15026        ( arg(2, R, U),
15027          setarg(2, R, active),
15028          ( arg(3, R, S),
15029            T is S+1,
15030            setarg(3, R, T)
15031          ),
15032          (   U==not_stored_yet
15033          ->  R=suspension(_, _, _, _, V, W, X),
15034              term_variables(term(V, W, X), Y),
15035              'chr none_locked'(Y),
15036              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
15037                          Z),
15038                A1=[R|Z],
15039                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
15040                         A1),
15041                (   Z=[B1|_]
15042                ->  setarg(4, B1, A1)
15043                ;   true
15044                )
15045              ),
15046              'attach_known/1_1_$special_functor/3___3'(Y, R)
15047          ;   true
15048          )
15049        ),
15050        known(C1),
15051        (   R=suspension(_, active, T, _, _, _, _)
15052        ->  setarg(2, R, inactive),
15053            'known/1_1_$special_functor/3___3__1__0__11'(D1,
15054                                                         F,
15055                                                         H,
15056                                                         J,
15057                                                         R)
15058        ;   true
15059        )
15060    ;   'known/1_1_$special_functor/3___3__1__0__11'(D1,
15061                                                     F,
15062                                                     H,
15063                                                     J,
15064                                                     R)
15065    ).
15066'known/1_1_$special_functor/3___3__1'(A, B, C, D) :-
15067    'known/1_1_$special_functor/3___3__2'(A, B, C, D).
15068'known/1_1_$special_functor/3___3__2'(A, E, F, G) :-
15069    (   'chr newvia_1'(A, B)
15070    ->  get_attr(B, guard_entailment, C),
15071        C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
15072    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15073                  D)
15074    ),
15075    !,
15076    'known/1_1_$special_functor/3___3__2__0__12'(D,
15077                                                 A,
15078                                                 E,
15079                                                 F,
15080                                                 G).
15081'known/1_1_$special_functor/3___3__2__0__12'([], A, B, C, D) :-
15082    'known/1_1_$special_functor/3___3__3'(A, B, C, D).
15083'known/1_1_$special_functor/3___3__2__0__12'([A|M], E, N, O, P) :-
15084    (   A=suspension(_, active, _, _, B, _),
15085        nonvar(B),
15086        B=(\+C),
15087        nonvar(C),
15088        C=functor(D, _, _),
15089        D==E
15090    ->  ( A=suspension(_, _, _, _, F, G),
15091          setarg(2, A, removed),
15092          term_variables(term(F, G), L),
15093          ( arg(4, A, H),
15094            (   var(H)
15095            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15096                          I),
15097                I=[_|J],
15098                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15099                         J),
15100                (   J=[K|_]
15101                ->  setarg(4, K, _)
15102                ;   true
15103                )
15104            ;   H=[_, _|J],
15105                setarg(2, H, J),
15106                (   J=[K|_]
15107                ->  setarg(4, K, H)
15108                ;   true
15109                )
15110            )
15111          ),
15112          'detach_known/1_1_$special_;/2___2'(L, A)
15113        ),
15114        'known/1_1_$special_functor/3___3__2__0__12'(M,
15115                                                     E,
15116                                                     N,
15117                                                     O,
15118                                                     P)
15119    ;   'known/1_1_$special_functor/3___3__2__0__12'(M,
15120                                                     E,
15121                                                     N,
15122                                                     O,
15123                                                     P)
15124    ).
15125'known/1_1_$special_functor/3___3__2'(A, B, C, D) :-
15126    'known/1_1_$special_functor/3___3__3'(A, B, C, D).
15127'known/1_1_$special_functor/3___3__3'(_, _, _, A) :-
15128    arg(2, A, D),
15129    setarg(2, A, active),
15130    arg(3, A, B),
15131    C is B+1,
15132    setarg(3, A, C),
15133    (   D==not_stored_yet
15134    ->  A=suspension(_, _, _, _, E, F, G),
15135        term_variables(term(E, F, G), H),
15136        'chr none_locked'(H),
15137        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
15138                    I),
15139          J=[A|I],
15140          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
15141                   J),
15142          (   I=[K|_]
15143          ->  setarg(4, K, J)
15144          ;   true
15145          )
15146        ),
15147        'attach_known/1_1_$special_functor/3___3'(H, A)
15148    ;   true
15149    ).
15150'known/1_1_$special_\\=/2'(A, B) :-
15151    'known/1_1_$special_\\=/2___2__0'(A, B, _).
15152'known/1_1_$special_\\=/2___2__0'(A, B, I) :-
15153    (   'chr newvia_2'(A, B, C)
15154    ->  get_attr(C, guard_entailment, D),
15155        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _)
15156    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15157                  E)
15158    ),
15159    member(F, E),
15160    F=suspension(_, active, _, _, _, G, H),
15161    G==A,
15162    H==B,
15163    !,
15164    (   var(I)
15165    ->  true
15166    ;   I=suspension(_, J, _, _, _, K, L),
15167        setarg(2, I, removed),
15168        (   J==not_stored_yet
15169        ->  M=[]
15170        ;   term_variables(term(K, L), M),
15171            ( arg(5, I, N),
15172              (   var(N)
15173              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15174                            O),
15175                  O=[_|P],
15176                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15177                           P),
15178                  (   P=[Q|_]
15179                  ->  setarg(5, Q, _)
15180                  ;   true
15181                  )
15182              ;   N=[_, _|P],
15183                  setarg(2, N, P),
15184                  (   P=[Q|_]
15185                  ->  setarg(5, Q, N)
15186                  ;   true
15187                  )
15188              )
15189            ),
15190            'detach_known/1_1_$special_\\=/2___2'(M, I)
15191        )
15192    ).
15193'known/1_1_$special_\\=/2___2__0'(_, _, C) :-
15194    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
15195              A),
15196    member(B, A),
15197    B=suspension(_, active, _),
15198    !,
15199    (   var(C)
15200    ->  true
15201    ;   C=suspension(_, D, _, _, _, E, F),
15202        setarg(2, C, removed),
15203        (   D==not_stored_yet
15204        ->  G=[]
15205        ;   term_variables(term(E, F), G),
15206            ( arg(5, C, H),
15207              (   var(H)
15208              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15209                            I),
15210                  I=[_|J],
15211                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15212                           J),
15213                  (   J=[K|_]
15214                  ->  setarg(5, K, _)
15215                  ;   true
15216                  )
15217              ;   H=[_, _|J],
15218                  setarg(2, H, J),
15219                  (   J=[K|_]
15220                  ->  setarg(5, K, H)
15221                  ;   true
15222                  )
15223              )
15224            ),
15225            'detach_known/1_1_$special_\\=/2___2'(G, C)
15226        )
15227    ).
15228'known/1_1_$special_\\=/2___2__0'(B, A, C) :-
15229    ground(A),
15230    ground(B),
15231    'chr lock'(B),
15232    'chr lock'(A),
15233    B=A,
15234    'chr unlock'(B),
15235    'chr unlock'(A),
15236    !,
15237    (   var(C)
15238    ->  true
15239    ;   C=suspension(_, D, _, _, _, E, F),
15240        setarg(2, C, removed),
15241        (   D==not_stored_yet
15242        ->  G=[]
15243        ;   term_variables(term(E, F), G),
15244            ( arg(5, C, H),
15245              (   var(H)
15246              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15247                            I),
15248                  I=[_|J],
15249                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15250                           J),
15251                  (   J=[K|_]
15252                  ->  setarg(5, K, _)
15253                  ;   true
15254                  )
15255              ;   H=[_, _|J],
15256                  setarg(2, H, J),
15257                  (   J=[K|_]
15258                  ->  setarg(5, K, H)
15259                  ;   true
15260                  )
15261              )
15262            ),
15263            'detach_known/1_1_$special_\\=/2___2'(G, C)
15264        )
15265    ),
15266    'known/1_1_$special_fail/0'.
15267'known/1_1_$special_\\=/2___2__0'(B, A, C) :-
15268    A==B,
15269    !,
15270    (   var(C)
15271    ->  true
15272    ;   C=suspension(_, D, _, _, _, E, F),
15273        setarg(2, C, removed),
15274        (   D==not_stored_yet
15275        ->  G=[]
15276        ;   term_variables(term(E, F), G),
15277            ( arg(5, C, H),
15278              (   var(H)
15279              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15280                            I),
15281                  I=[_|J],
15282                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15283                           J),
15284                  (   J=[K|_]
15285                  ->  setarg(5, K, _)
15286                  ;   true
15287                  )
15288              ;   H=[_, _|J],
15289                  setarg(2, H, J),
15290                  (   J=[K|_]
15291                  ->  setarg(5, K, H)
15292                  ;   true
15293                  )
15294              )
15295            ),
15296            'detach_known/1_1_$special_\\=/2___2'(G, C)
15297        )
15298    ),
15299    'known/1_1_$special_fail/0'.
15300'known/1_1_$special_\\=/2___2__0'(B, A, D) :-
15301    nonvar(A),
15302    (   var(B),
15303        'chr lock'(A),
15304        functor(A, M, C),
15305        C>0,
15306        'chr unlock'(A),
15307        !,
15308        (   var(D)
15309        ->  true
15310        ;   D=suspension(_, E, _, _, _, F, G),
15311            setarg(2, D, removed),
15312            (   E==not_stored_yet
15313            ->  H=[]
15314            ;   term_variables(term(F, G), H),
15315                ( arg(5, D, I),
15316                  (   var(I)
15317                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15318                                J),
15319                      J=[_|K],
15320                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15321                               K),
15322                      (   K=[L|_]
15323                      ->  setarg(5, L, _)
15324                      ;   true
15325                      )
15326                  ;   I=[_, _|K],
15327                      setarg(2, I, K),
15328                      (   K=[L|_]
15329                      ->  setarg(5, L, I)
15330                      ;   true
15331                      )
15332                  )
15333                ),
15334                'detach_known/1_1_$special_\\=/2___2'(H, D)
15335            )
15336        ),
15337        length(N, C),
15338        A=..[M|O],
15339        P=..[M|N],
15340        add_args_nunif(O, N, Q),
15341        R=(\+functor(B, M, C);B=P, Q),
15342        known(R)
15343    ;   nonvar(B),
15344        'chr lock'(B),
15345        functor(B, A1, B1),
15346        'chr unlock'(B),
15347        !,
15348        (   var(D)
15349        ->  true
15350        ;   D=suspension(_, S, _, _, _, T, U),
15351            setarg(2, D, removed),
15352            (   S==not_stored_yet
15353            ->  V=[]
15354            ;   term_variables(term(T, U), V),
15355                ( arg(5, D, W),
15356                  (   var(W)
15357                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15358                                X),
15359                      X=[_|Y],
15360                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15361                               Y),
15362                      (   Y=[Z|_]
15363                      ->  setarg(5, Z, _)
15364                      ;   true
15365                      )
15366                  ;   W=[_, _|Y],
15367                      setarg(2, W, Y),
15368                      (   Y=[Z|_]
15369                      ->  setarg(5, Z, W)
15370                      ;   true
15371                      )
15372                  )
15373                ),
15374                'detach_known/1_1_$special_\\=/2___2'(V, D)
15375            )
15376        ),
15377        (   functor(A, A1, B1)
15378        ->  B=..[A1|C1],
15379            A=..[A1|D1],
15380            add_args_nunif(C1, D1, E1),
15381            known(E1)
15382        ;   true
15383        )
15384    ).
15385'known/1_1_$special_\\=/2___2__0'(B, C, A) :-
15386    (   var(A)
15387    ->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
15388        'chr gen_id'(D)
15389    ;   true
15390    ),
15391    (   '$novel_production'(A, 182),
15392        !,
15393        '$extend_history'(A, 182),
15394        arg(2, A, G),
15395        setarg(2, A, active),
15396        arg(4, A, E),
15397        F is E+1,
15398        setarg(4, A, F),
15399        (   G==not_stored_yet
15400        ->  A=suspension(_, _, _, _, _, H, I),
15401            term_variables(term(H, I), J),
15402            'chr none_locked'(J),
15403            ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15404                        K),
15405              L=[A|K],
15406              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15407                       L),
15408              (   K=[M|_]
15409              ->  setarg(5, M, L)
15410              ;   true
15411              )
15412            ),
15413            'attach_known/1_1_$special_\\=/2___2'(J, A)
15414        ;   true
15415        ),
15416        'known/1_1_$special_\\=/2'(C, B),
15417        (   A=suspension(_, active, _, F, _, _, _)
15418        ->  setarg(2, A, inactive),
15419            'known/1_1_$special_\\=/2___2__1'(B, C, A)
15420        ;   true
15421        )
15422    ;   'known/1_1_$special_\\=/2___2__1'(B, C, A)
15423    ).
15424'known/1_1_$special_\\=/2___2__1'(A, B, P) :-
15425    (   'chr newvia_2'(A, B, C)
15426    ->  get_attr(C, guard_entailment, D),
15427        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
15428    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15429                  E)
15430    ),
15431    member(F, E),
15432    F=suspension(_, active, _, _, G),
15433    nonvar(G),
15434    G=(H\=I),
15435    H==A,
15436    I==B,
15437    !,
15438    F=suspension(_, _, _, _, J),
15439    setarg(2, F, removed),
15440    term_variables(J, O),
15441    arg(4, F, K),
15442    (   var(K)
15443    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15444                  L),
15445        L=[_|M],
15446        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15447                 M),
15448        (   M=[N|_]
15449        ->  setarg(4, N, _)
15450        ;   true
15451        )
15452    ;   K=[_, _|M],
15453        setarg(2, K, M),
15454        (   M=[N|_]
15455        ->  setarg(4, N, K)
15456        ;   true
15457        )
15458    ),
15459    'detach_known/1_1_$special_\\+/1___1'(O, F),
15460    (   var(P)
15461    ->  true
15462    ;   P=suspension(_, Q, _, _, _, R, S),
15463        setarg(2, P, removed),
15464        (   Q==not_stored_yet
15465        ->  T=[]
15466        ;   term_variables(term(R, S), T),
15467            ( arg(5, P, U),
15468              (   var(U)
15469              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15470                            V),
15471                  V=[_|W],
15472                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15473                           W),
15474                  (   W=[X|_]
15475                  ->  setarg(5, X, _)
15476                  ;   true
15477                  )
15478              ;   U=[_, _|W],
15479                  setarg(2, U, W),
15480                  (   W=[X|_]
15481                  ->  setarg(5, X, U)
15482                  ;   true
15483                  )
15484              )
15485            ),
15486            'detach_known/1_1_$special_\\=/2___2'(T, P)
15487        )
15488    ),
15489    'known/1_1_$special_fail/0'.
15490'known/1_1_$special_\\=/2___2__1'(A, B, F) :-
15491    (   'chr newvia_2'(A, B, C)
15492    ->  get_attr(C, guard_entailment, D),
15493        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
15494    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15495                  E)
15496    ),
15497    !,
15498    'known/1_1_$special_\\=/2___2__1__0__11'(E, A, B, F).
15499'known/1_1_$special_\\=/2___2__1__0__11'([], A, B, C) :-
15500    'known/1_1_$special_\\=/2___2__2'(A, B, C).
15501'known/1_1_$special_\\=/2___2__1__0__11'([A|Z], E, G, O) :-
15502    (   A=suspension(_, active, _, _, B, Y),
15503        nonvar(B),
15504        B=(\+C),
15505        nonvar(C),
15506        C=(D\=F),
15507        D==E,
15508        F==G
15509    ->  ( A=suspension(_, _, _, _, H, I),
15510          setarg(2, A, removed),
15511          term_variables(term(H, I), N),
15512          ( arg(4, A, J),
15513            (   var(J)
15514            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15515                          K),
15516                K=[_|L],
15517                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15518                         L),
15519                (   L=[M|_]
15520                ->  setarg(4, M, _)
15521                ;   true
15522                )
15523            ;   J=[_, _|L],
15524                setarg(2, J, L),
15525                (   L=[M|_]
15526                ->  setarg(4, M, J)
15527                ;   true
15528                )
15529            )
15530          ),
15531          'detach_known/1_1_$special_;/2___2'(N, A)
15532        ),
15533        ( arg(2, O, R),
15534          setarg(2, O, active),
15535          ( arg(4, O, P),
15536            Q is P+1,
15537            setarg(4, O, Q)
15538          ),
15539          (   R==not_stored_yet
15540          ->  O=suspension(_, _, _, _, _, S, T),
15541              term_variables(term(S, T), U),
15542              'chr none_locked'(U),
15543              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15544                          V),
15545                W=[O|V],
15546                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15547                         W),
15548                (   V=[X|_]
15549                ->  setarg(5, X, W)
15550                ;   true
15551                )
15552              ),
15553              'attach_known/1_1_$special_\\=/2___2'(U, O)
15554          ;   true
15555          )
15556        ),
15557        known(Y),
15558        (   O=suspension(_, active, _, Q, _, _, _)
15559        ->  setarg(2, O, inactive),
15560            'known/1_1_$special_\\=/2___2__1__0__11'(Z,
15561                                                     E,
15562                                                     G,
15563                                                     O)
15564        ;   true
15565        )
15566    ;   'known/1_1_$special_\\=/2___2__1__0__11'(Z,
15567                                                 E,
15568                                                 G,
15569                                                 O)
15570    ).
15571'known/1_1_$special_\\=/2___2__1'(A, B, C) :-
15572    'known/1_1_$special_\\=/2___2__2'(A, B, C).
15573'known/1_1_$special_\\=/2___2__2'(A, B, F) :-
15574    (   'chr newvia_2'(A, B, C)
15575    ->  get_attr(C, guard_entailment, D),
15576        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
15577    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15578                  E)
15579    ),
15580    !,
15581    'known/1_1_$special_\\=/2___2__2__0__12'(E, A, B, F).
15582'known/1_1_$special_\\=/2___2__2__0__12'([], A, B, C) :-
15583    'known/1_1_$special_\\=/2___2__3'(A, B, C).
15584'known/1_1_$special_\\=/2___2__2__0__12'([A|A1], F, H, P) :-
15585    (   A=suspension(_, active, _, _, B, Z),
15586        nonvar(B),
15587        B=(C, _),
15588        nonvar(C),
15589        C=(\+D),
15590        nonvar(D),
15591        D=(E\=G),
15592        E==F,
15593        G==H
15594    ->  ( A=suspension(_, _, _, _, I, J),
15595          setarg(2, A, removed),
15596          term_variables(term(I, J), O),
15597          ( arg(4, A, K),
15598            (   var(K)
15599            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15600                          L),
15601                L=[_|M],
15602                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15603                         M),
15604                (   M=[N|_]
15605                ->  setarg(4, N, _)
15606                ;   true
15607                )
15608            ;   K=[_, _|M],
15609                setarg(2, K, M),
15610                (   M=[N|_]
15611                ->  setarg(4, N, K)
15612                ;   true
15613                )
15614            )
15615          ),
15616          'detach_known/1_1_$special_;/2___2'(O, A)
15617        ),
15618        ( arg(2, P, S),
15619          setarg(2, P, active),
15620          ( arg(4, P, Q),
15621            R is Q+1,
15622            setarg(4, P, R)
15623          ),
15624          (   S==not_stored_yet
15625          ->  P=suspension(_, _, _, _, _, T, U),
15626              term_variables(term(T, U), V),
15627              'chr none_locked'(V),
15628              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15629                          W),
15630                X=[P|W],
15631                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15632                         X),
15633                (   W=[Y|_]
15634                ->  setarg(5, Y, X)
15635                ;   true
15636                )
15637              ),
15638              'attach_known/1_1_$special_\\=/2___2'(V, P)
15639          ;   true
15640          )
15641        ),
15642        known(Z),
15643        (   P=suspension(_, active, _, R, _, _, _)
15644        ->  setarg(2, P, inactive),
15645            'known/1_1_$special_\\=/2___2__2__0__12'(A1,
15646                                                     F,
15647                                                     H,
15648                                                     P)
15649        ;   true
15650        )
15651    ;   'known/1_1_$special_\\=/2___2__2__0__12'(A1,
15652                                                 F,
15653                                                 H,
15654                                                 P)
15655    ).
15656'known/1_1_$special_\\=/2___2__2'(A, B, C) :-
15657    'known/1_1_$special_\\=/2___2__3'(A, B, C).
15658'known/1_1_$special_\\=/2___2__3'(_, _, A) :-
15659    arg(2, A, D),
15660    setarg(2, A, active),
15661    arg(4, A, B),
15662    C is B+1,
15663    setarg(4, A, C),
15664    (   D==not_stored_yet
15665    ->  A=suspension(_, _, _, _, _, E, F),
15666        term_variables(term(E, F), G),
15667        'chr none_locked'(G),
15668        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15669                    H),
15670          I=[A|H],
15671          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15672                   I),
15673          (   H=[J|_]
15674          ->  setarg(5, J, I)
15675          ;   true
15676          )
15677        ),
15678        'attach_known/1_1_$special_\\=/2___2'(G, A)
15679    ;   true
15680    ).
15681'known/1_1_$special_=/2'(A, B) :-
15682    'known/1_1_$special_=/2___2__0'(A, B, _).
15683'known/1_1_$special_=/2___2__0'(A, B, I) :-
15684    (   'chr newvia_2'(A, B, C)
15685    ->  get_attr(C, guard_entailment, D),
15686        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _)
15687    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15688                  E)
15689    ),
15690    member(F, E),
15691    F=suspension(_, active, _, _, G, H),
15692    G==A,
15693    H==B,
15694    !,
15695    (   var(I)
15696    ->  true
15697    ;   I=suspension(_, J, _, _, K, L),
15698        setarg(2, I, removed),
15699        (   J==not_stored_yet
15700        ->  M=[]
15701        ;   term_variables(term(K, L), M),
15702            ( arg(4, I, N),
15703              (   var(N)
15704              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15705                            O),
15706                  O=[_|P],
15707                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15708                           P),
15709                  (   P=[Q|_]
15710                  ->  setarg(4, Q, _)
15711                  ;   true
15712                  )
15713              ;   N=[_, _|P],
15714                  setarg(2, N, P),
15715                  (   P=[Q|_]
15716                  ->  setarg(4, Q, N)
15717                  ;   true
15718                  )
15719              )
15720            ),
15721            'detach_known/1_1_$special_=/2___2'(M, I)
15722        )
15723    ).
15724'known/1_1_$special_=/2___2__0'(_, _, C) :-
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    (   var(C)
15731    ->  true
15732    ;   C=suspension(_, D, _, _, E, F),
15733        setarg(2, C, removed),
15734        (   D==not_stored_yet
15735        ->  G=[]
15736        ;   term_variables(term(E, F), G),
15737            ( arg(4, C, H),
15738              (   var(H)
15739              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15740                            I),
15741                  I=[_|J],
15742                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15743                           J),
15744                  (   J=[K|_]
15745                  ->  setarg(4, K, _)
15746                  ;   true
15747                  )
15748              ;   H=[_, _|J],
15749                  setarg(2, H, J),
15750                  (   J=[K|_]
15751                  ->  setarg(4, K, H)
15752                  ;   true
15753                  )
15754              )
15755            ),
15756            'detach_known/1_1_$special_=/2___2'(G, C)
15757        )
15758    ).
15759'known/1_1_$special_=/2___2__0'(B, A, C) :-
15760    A==B,
15761    !,
15762    (   var(C)
15763    ->  true
15764    ;   C=suspension(_, D, _, _, E, F),
15765        setarg(2, C, removed),
15766        (   D==not_stored_yet
15767        ->  G=[]
15768        ;   term_variables(term(E, F), G),
15769            ( arg(4, C, H),
15770              (   var(H)
15771              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15772                            I),
15773                  I=[_|J],
15774                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15775                           J),
15776                  (   J=[K|_]
15777                  ->  setarg(4, K, _)
15778                  ;   true
15779                  )
15780              ;   H=[_, _|J],
15781                  setarg(2, H, J),
15782                  (   J=[K|_]
15783                  ->  setarg(4, K, H)
15784                  ;   true
15785                  )
15786              )
15787            ),
15788            'detach_known/1_1_$special_=/2___2'(G, C)
15789        )
15790    ).
15791'known/1_1_$special_=/2___2__0'(A, K, B) :-
15792    var(A),
15793    !,
15794    (   var(B)
15795    ->  true
15796    ;   B=suspension(_, C, _, _, D, E),
15797        setarg(2, B, removed),
15798        (   C==not_stored_yet
15799        ->  F=[]
15800        ;   term_variables(term(D, E), F),
15801            ( arg(4, B, G),
15802              (   var(G)
15803              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15804                            H),
15805                  H=[_|I],
15806                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15807                           I),
15808                  (   I=[J|_]
15809                  ->  setarg(4, J, _)
15810                  ;   true
15811                  )
15812              ;   G=[_, _|I],
15813                  setarg(2, G, I),
15814                  (   I=[J|_]
15815                  ->  setarg(4, J, G)
15816                  ;   true
15817                  )
15818              )
15819            ),
15820            'detach_known/1_1_$special_=/2___2'(F, B)
15821        )
15822    ),
15823    A=K.
15824'known/1_1_$special_=/2___2__0'(K, A, B) :-
15825    var(A),
15826    !,
15827    (   var(B)
15828    ->  true
15829    ;   B=suspension(_, C, _, _, D, E),
15830        setarg(2, B, removed),
15831        (   C==not_stored_yet
15832        ->  F=[]
15833        ;   term_variables(term(D, E), F),
15834            ( arg(4, B, G),
15835              (   var(G)
15836              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15837                            H),
15838                  H=[_|I],
15839                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15840                           I),
15841                  (   I=[J|_]
15842                  ->  setarg(4, J, _)
15843                  ;   true
15844                  )
15845              ;   G=[_, _|I],
15846                  setarg(2, G, I),
15847                  (   I=[J|_]
15848                  ->  setarg(4, J, G)
15849                  ;   true
15850                  )
15851              )
15852            ),
15853            'detach_known/1_1_$special_=/2___2'(F, B)
15854        )
15855    ),
15856    K=A.
15857'known/1_1_$special_=/2___2__0'(A, K, B) :-
15858    'chr lock'(A),
15859    functor(A, L, M),
15860    'chr unlock'(A),
15861    !,
15862    (   var(B)
15863    ->  true
15864    ;   B=suspension(_, C, _, _, D, E),
15865        setarg(2, B, removed),
15866        (   C==not_stored_yet
15867        ->  F=[]
15868        ;   term_variables(term(D, E), F),
15869            ( arg(4, B, G),
15870              (   var(G)
15871              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15872                            H),
15873                  H=[_|I],
15874                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15875                           I),
15876                  (   I=[J|_]
15877                  ->  setarg(4, J, _)
15878                  ;   true
15879                  )
15880              ;   G=[_, _|I],
15881                  setarg(2, G, I),
15882                  (   I=[J|_]
15883                  ->  setarg(4, J, G)
15884                  ;   true
15885                  )
15886              )
15887            ),
15888            'detach_known/1_1_$special_=/2___2'(F, B)
15889        )
15890    ),
15891    (   functor(K, L, M),
15892        A=K
15893    ->  true
15894    ;   'known/1_1_$special_fail/0'
15895    ).
15896'known/1_1_$special_=/2___2__0'(A, B, P) :-
15897    (   'chr newvia_2'(A, B, C)
15898    ->  get_attr(C, guard_entailment, D),
15899        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
15900    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15901                  E)
15902    ),
15903    member(F, E),
15904    F=suspension(_, active, _, _, G),
15905    nonvar(G),
15906    G=(H=I),
15907    H==A,
15908    I==B,
15909    !,
15910    F=suspension(_, _, _, _, J),
15911    setarg(2, F, removed),
15912    term_variables(J, O),
15913    arg(4, F, K),
15914    (   var(K)
15915    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15916                  L),
15917        L=[_|M],
15918        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15919                 M),
15920        (   M=[N|_]
15921        ->  setarg(4, N, _)
15922        ;   true
15923        )
15924    ;   K=[_, _|M],
15925        setarg(2, K, M),
15926        (   M=[N|_]
15927        ->  setarg(4, N, K)
15928        ;   true
15929        )
15930    ),
15931    'detach_known/1_1_$special_\\+/1___1'(O, F),
15932    (   var(P)
15933    ->  true
15934    ;   P=suspension(_, Q, _, _, R, S),
15935        setarg(2, P, removed),
15936        (   Q==not_stored_yet
15937        ->  T=[]
15938        ;   term_variables(term(R, S), T),
15939            ( arg(4, P, U),
15940              (   var(U)
15941              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15942                            V),
15943                  V=[_|W],
15944                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15945                           W),
15946                  (   W=[X|_]
15947                  ->  setarg(4, X, _)
15948                  ;   true
15949                  )
15950              ;   U=[_, _|W],
15951                  setarg(2, U, W),
15952                  (   W=[X|_]
15953                  ->  setarg(4, X, U)
15954                  ;   true
15955                  )
15956              )
15957            ),
15958            'detach_known/1_1_$special_=/2___2'(T, P)
15959        )
15960    ),
15961    'known/1_1_$special_fail/0'.
15962'known/1_1_$special_=/2___2__0'(A, B, F) :-
15963    (   'chr newvia_2'(A, B, C)
15964    ->  get_attr(C, guard_entailment, D),
15965        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
15966    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15967                  E)
15968    ),
15969    !,
15970    (   var(F)
15971    ->  F=suspension(G, not_stored_yet, 0, _, A, B),
15972        'chr gen_id'(G)
15973    ;   true
15974    ),
15975    'known/1_1_$special_=/2___2__0__0__10'(E, A, B, F).
15976'known/1_1_$special_=/2___2__0__0__10'([], A, B, C) :-
15977    'known/1_1_$special_=/2___2__1'(A, B, C).
15978'known/1_1_$special_=/2___2__0__0__10'([A|Z], E, G, O) :-
15979    (   A=suspension(_, active, _, _, B, Y),
15980        nonvar(B),
15981        B=(\+C),
15982        nonvar(C),
15983        C=(D=F),
15984        D==E,
15985        F==G
15986    ->  ( A=suspension(_, _, _, _, H, I),
15987          setarg(2, A, removed),
15988          term_variables(term(H, I), N),
15989          ( arg(4, A, J),
15990            (   var(J)
15991            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15992                          K),
15993                K=[_|L],
15994                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15995                         L),
15996                (   L=[M|_]
15997                ->  setarg(4, M, _)
15998                ;   true
15999                )
16000            ;   J=[_, _|L],
16001                setarg(2, J, L),
16002                (   L=[M|_]
16003                ->  setarg(4, M, J)
16004                ;   true
16005                )
16006            )
16007          ),
16008          'detach_known/1_1_$special_;/2___2'(N, A)
16009        ),
16010        ( arg(2, O, R),
16011          setarg(2, O, active),
16012          ( arg(3, O, P),
16013            Q is P+1,
16014            setarg(3, O, Q)
16015          ),
16016          (   R==not_stored_yet
16017          ->  O=suspension(_, _, _, _, S, T),
16018              term_variables(term(S, T), U),
16019              'chr none_locked'(U),
16020              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
16021                          V),
16022                W=[O|V],
16023                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
16024                         W),
16025                (   V=[X|_]
16026                ->  setarg(4, X, W)
16027                ;   true
16028                )
16029              ),
16030              'attach_known/1_1_$special_=/2___2'(U, O)
16031          ;   true
16032          )
16033        ),
16034        known(Y),
16035        (   O=suspension(_, active, Q, _, _, _)
16036        ->  setarg(2, O, inactive),
16037            'known/1_1_$special_=/2___2__0__0__10'(Z,
16038                                                   E,
16039                                                   G,
16040                                                   O)
16041        ;   true
16042        )
16043    ;   'known/1_1_$special_=/2___2__0__0__10'(Z,
16044                                               E,
16045                                               G,
16046                                               O)
16047    ).
16048'known/1_1_$special_=/2___2__0'(B, C, A) :-
16049    (   var(A)
16050    ->  A=suspension(D, not_stored_yet, 0, _, B, C),
16051        'chr gen_id'(D)
16052    ;   true
16053    ),
16054    'known/1_1_$special_=/2___2__1'(B, C, A).
16055'known/1_1_$special_=/2___2__1'(A, B, F) :-
16056    (   'chr newvia_2'(A, B, C)
16057    ->  get_attr(C, guard_entailment, D),
16058        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
16059    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16060                  E)
16061    ),
16062    !,
16063    'known/1_1_$special_=/2___2__1__0__11'(E, A, B, F).
16064'known/1_1_$special_=/2___2__1__0__11'([], A, B, C) :-
16065    'known/1_1_$special_=/2___2__2'(A, B, C).
16066'known/1_1_$special_=/2___2__1__0__11'([A|A1], F, H, P) :-
16067    (   A=suspension(_, active, _, _, B, Z),
16068        nonvar(B),
16069        B=(C, _),
16070        nonvar(C),
16071        C=(\+D),
16072        nonvar(D),
16073        D=(E=G),
16074        E==F,
16075        G==H
16076    ->  ( A=suspension(_, _, _, _, I, J),
16077          setarg(2, A, removed),
16078          term_variables(term(I, J), O),
16079          ( arg(4, A, K),
16080            (   var(K)
16081            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16082                          L),
16083                L=[_|M],
16084                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16085                         M),
16086                (   M=[N|_]
16087                ->  setarg(4, N, _)
16088                ;   true
16089                )
16090            ;   K=[_, _|M],
16091                setarg(2, K, M),
16092                (   M=[N|_]
16093                ->  setarg(4, N, K)
16094                ;   true
16095                )
16096            )
16097          ),
16098          'detach_known/1_1_$special_;/2___2'(O, A)
16099        ),
16100        ( arg(2, P, S),
16101          setarg(2, P, active),
16102          ( arg(3, P, Q),
16103            R is Q+1,
16104            setarg(3, P, R)
16105          ),
16106          (   S==not_stored_yet
16107          ->  P=suspension(_, _, _, _, T, U),
16108              term_variables(term(T, U), V),
16109              'chr none_locked'(V),
16110              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
16111                          W),
16112                X=[P|W],
16113                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
16114                         X),
16115                (   W=[Y|_]
16116                ->  setarg(4, Y, X)
16117                ;   true
16118                )
16119              ),
16120              'attach_known/1_1_$special_=/2___2'(V, P)
16121          ;   true
16122          )
16123        ),
16124        known(Z),
16125        (   P=suspension(_, active, R, _, _, _)
16126        ->  setarg(2, P, inactive),
16127            'known/1_1_$special_=/2___2__1__0__11'(A1,
16128                                                   F,
16129                                                   H,
16130                                                   P)
16131        ;   true
16132        )
16133    ;   'known/1_1_$special_=/2___2__1__0__11'(A1,
16134                                               F,
16135                                               H,
16136                                               P)
16137    ).
16138'known/1_1_$special_=/2___2__1'(A, B, C) :-
16139    'known/1_1_$special_=/2___2__2'(A, B, C).
16140'known/1_1_$special_=/2___2__2'(_, _, A) :-
16141    arg(2, A, D),
16142    setarg(2, A, active),
16143    arg(3, A, B),
16144    C is B+1,
16145    setarg(3, A, C),
16146    (   D==not_stored_yet
16147    ->  A=suspension(_, _, _, _, E, F),
16148        term_variables(term(E, F), G),
16149        'chr none_locked'(G),
16150        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
16151                    H),
16152          I=[A|H],
16153          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
16154                   I),
16155          (   H=[J|_]
16156          ->  setarg(4, J, I)
16157          ;   true
16158          )
16159        ),
16160        'attach_known/1_1_$special_=/2___2'(G, A)
16161    ;   true
16162    ).
16163'known/1_1_$special_,/2'(_, _) :-
16164    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
16165              A),
16166    member(B, A),
16167    B=suspension(_, active, _),
16168    !.
16169'known/1_1_$special_,/2'(A, B) :-
16170    known(A),
16171    known(B).
16172'known/1_1_$special_\\==/2'(A, B) :-
16173    'known/1_1_$special_\\==/2___2__0'(A, B, _).
16174'known/1_1_$special_\\==/2___2__0'(A, B, I) :-
16175    (   'chr newvia_2'(A, B, C)
16176    ->  get_attr(C, guard_entailment, D),
16177        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _)
16178    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16179                  E)
16180    ),
16181    member(F, E),
16182    F=suspension(_, active, _, _, _, G, H),
16183    G==A,
16184    H==B,
16185    !,
16186    (   var(I)
16187    ->  true
16188    ;   I=suspension(_, J, _, _, _, K, L),
16189        setarg(2, I, removed),
16190        (   J==not_stored_yet
16191        ->  M=[]
16192        ;   term_variables(term(K, L), M),
16193            ( arg(5, I, N),
16194              (   var(N)
16195              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16196                            O),
16197                  O=[_|P],
16198                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16199                           P),
16200                  (   P=[Q|_]
16201                  ->  setarg(5, Q, _)
16202                  ;   true
16203                  )
16204              ;   N=[_, _|P],
16205                  setarg(2, N, P),
16206                  (   P=[Q|_]
16207                  ->  setarg(5, Q, N)
16208                  ;   true
16209                  )
16210              )
16211            ),
16212            'detach_known/1_1_$special_\\==/2___2'(M, I)
16213        )
16214    ).
16215'known/1_1_$special_\\==/2___2__0'(B, C, A) :-
16216    (   var(A)
16217    ->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
16218        'chr gen_id'(D)
16219    ;   true
16220    ),
16221    (   '$novel_production'(A, 138),
16222        number(B),
16223        !,
16224        '$extend_history'(A, 138),
16225        arg(2, A, G),
16226        setarg(2, A, active),
16227        arg(4, A, E),
16228        F is E+1,
16229        setarg(4, A, F),
16230        (   G==not_stored_yet
16231        ->  A=suspension(_, _, _, _, _, H, I),
16232            term_variables(term(H, I), J),
16233            'chr none_locked'(J),
16234            ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16235                        K),
16236              L=[A|K],
16237              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16238                       L),
16239              (   K=[M|_]
16240              ->  setarg(5, M, L)
16241              ;   true
16242              )
16243            ),
16244            'attach_known/1_1_$special_\\==/2___2'(J, A)
16245        ;   true
16246        ),
16247        'known/1_1_$special_=\\=/2'(B, C),
16248        (   A=suspension(_, active, _, F, _, _, _)
16249        ->  setarg(2, A, inactive),
16250            'known/1_1_$special_\\==/2___2__1'(B, C, A)
16251        ;   true
16252        )
16253    ;   'known/1_1_$special_\\==/2___2__1'(B, C, A)
16254    ).
16255'known/1_1_$special_\\==/2___2__1'(L, B, A) :-
16256    '$novel_production'(A, 139),
16257    number(B),
16258    !,
16259    '$extend_history'(A, 139),
16260    arg(2, A, E),
16261    setarg(2, A, active),
16262    arg(4, A, C),
16263    D is C+1,
16264    setarg(4, A, D),
16265    (   E==not_stored_yet
16266    ->  A=suspension(_, _, _, _, _, F, G),
16267        term_variables(term(F, G), H),
16268        'chr none_locked'(H),
16269        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16270                    I),
16271          J=[A|I],
16272          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16273                   J),
16274          (   I=[K|_]
16275          ->  setarg(5, K, J)
16276          ;   true
16277          )
16278        ),
16279        'attach_known/1_1_$special_\\==/2___2'(H, A)
16280    ;   true
16281    ),
16282    'known/1_1_$special_=\\=/2'(L, B),
16283    (   A=suspension(_, active, _, D, _, _, _)
16284    ->  setarg(2, A, inactive),
16285        'known/1_1_$special_\\==/2___2__2'(L, B, A)
16286    ;   true
16287    ).
16288'known/1_1_$special_\\==/2___2__1'(A, B, C) :-
16289    'known/1_1_$special_\\==/2___2__2'(A, B, C).
16290'known/1_1_$special_\\==/2___2__2'(_, _, C) :-
16291    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
16292              A),
16293    member(B, A),
16294    B=suspension(_, active, _),
16295    !,
16296    (   var(C)
16297    ->  true
16298    ;   C=suspension(_, D, _, _, _, E, F),
16299        setarg(2, C, removed),
16300        (   D==not_stored_yet
16301        ->  G=[]
16302        ;   term_variables(term(E, F), G),
16303            ( arg(5, C, H),
16304              (   var(H)
16305              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16306                            I),
16307                  I=[_|J],
16308                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16309                           J),
16310                  (   J=[K|_]
16311                  ->  setarg(5, K, _)
16312                  ;   true
16313                  )
16314              ;   H=[_, _|J],
16315                  setarg(2, H, J),
16316                  (   J=[K|_]
16317                  ->  setarg(5, K, H)
16318                  ;   true
16319                  )
16320              )
16321            ),
16322            'detach_known/1_1_$special_\\==/2___2'(G, C)
16323        )
16324    ).
16325'known/1_1_$special_\\==/2___2__2'(A, B, P) :-
16326    (   'chr newvia_2'(A, B, C)
16327    ->  get_attr(C, guard_entailment, D),
16328        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
16329    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
16330                  E)
16331    ),
16332    member(F, E),
16333    F=suspension(_, active, _, _, G),
16334    nonvar(G),
16335    G=(H\==I),
16336    H==A,
16337    I==B,
16338    !,
16339    F=suspension(_, _, _, _, J),
16340    setarg(2, F, removed),
16341    term_variables(J, O),
16342    arg(4, F, K),
16343    (   var(K)
16344    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
16345                  L),
16346        L=[_|M],
16347        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
16348                 M),
16349        (   M=[N|_]
16350        ->  setarg(4, N, _)
16351        ;   true
16352        )
16353    ;   K=[_, _|M],
16354        setarg(2, K, M),
16355        (   M=[N|_]
16356        ->  setarg(4, N, K)
16357        ;   true
16358        )
16359    ),
16360    'detach_known/1_1_$special_\\+/1___1'(O, F),
16361    (   var(P)
16362    ->  true
16363    ;   P=suspension(_, Q, _, _, _, R, S),
16364        setarg(2, P, removed),
16365        (   Q==not_stored_yet
16366        ->  T=[]
16367        ;   term_variables(term(R, S), T),
16368            ( arg(5, P, U),
16369              (   var(U)
16370              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16371                            V),
16372                  V=[_|W],
16373                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16374                           W),
16375                  (   W=[X|_]
16376                  ->  setarg(5, X, _)
16377                  ;   true
16378                  )
16379              ;   U=[_, _|W],
16380                  setarg(2, U, W),
16381                  (   W=[X|_]
16382                  ->  setarg(5, X, U)
16383                  ;   true
16384                  )
16385              )
16386            ),
16387            'detach_known/1_1_$special_\\==/2___2'(T, P)
16388        )
16389    ),
16390    'known/1_1_$special_fail/0'.
16391'known/1_1_$special_\\==/2___2__2'(A, B, P) :-
16392    (   'chr newvia_2'(A, B, C)
16393    ->  get_attr(C, guard_entailment, D),
16394        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _)
16395    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16396                  E)
16397    ),
16398    member(F, E),
16399    F=suspension(_, active, _, _, _, G, H),
16400    G==A,
16401    H==B,
16402    !,
16403    F=suspension(_, _, _, _, _, I, J),
16404    setarg(2, F, removed),
16405    term_variables(term(I, J), O),
16406    arg(5, F, K),
16407    (   var(K)
16408    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16409                  L),
16410        L=[_|M],
16411        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16412                 M),
16413        (   M=[N|_]
16414        ->  setarg(5, N, _)
16415        ;   true
16416        )
16417    ;   K=[_, _|M],
16418        setarg(2, K, M),
16419        (   M=[N|_]
16420        ->  setarg(5, N, K)
16421        ;   true
16422        )
16423    ),
16424    'detach_known/1_1_$special_==/2___2'(O, F),
16425    (   var(P)
16426    ->  true
16427    ;   P=suspension(_, Q, _, _, _, R, S),
16428        setarg(2, P, removed),
16429        (   Q==not_stored_yet
16430        ->  T=[]
16431        ;   term_variables(term(R, S), T),
16432            ( arg(5, P, U),
16433              (   var(U)
16434              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16435                            V),
16436                  V=[_|W],
16437                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16438                           W),
16439                  (   W=[X|_]
16440                  ->  setarg(5, X, _)
16441                  ;   true
16442                  )
16443              ;   U=[_, _|W],
16444                  setarg(2, U, W),
16445                  (   W=[X|_]
16446                  ->  setarg(5, X, U)
16447                  ;   true
16448                  )
16449              )
16450            ),
16451            'detach_known/1_1_$special_\\==/2___2'(T, P)
16452        )
16453    ),
16454    'known/1_1_$special_fail/0'.
16455'known/1_1_$special_\\==/2___2__2'(A, E, F) :-
16456    (   'chr newvia_1'(A, B)
16457    ->  get_attr(B, guard_entailment, C),
16458        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _)
16459    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16460                  D)
16461    ),
16462    !,
16463    'known/1_1_$special_\\==/2___2__2__0__9'(D, A, E, F).
16464'known/1_1_$special_\\==/2___2__2__0__9'([], A, B, C) :-
16465    'known/1_1_$special_\\==/2___2__3'(A, B, C).
16466'known/1_1_$special_\\==/2___2__2__0__9'([A|Q], C, P, D) :-
16467    (   A=suspension(_, active, _, _, _, O, B),
16468        B==C,
16469        E=t(229, A, D),
16470        '$novel_production'(A, E),
16471        '$novel_production'(D, E)
16472    ->  '$extend_history'(D, E),
16473        ( arg(2, D, H),
16474          setarg(2, D, active),
16475          ( arg(4, D, F),
16476            G is F+1,
16477            setarg(4, D, G)
16478          ),
16479          (   H==not_stored_yet
16480          ->  D=suspension(_, _, _, _, _, I, J),
16481              term_variables(term(I, J), K),
16482              'chr none_locked'(K),
16483              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16484                          L),
16485                M=[D|L],
16486                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16487                         M),
16488                (   L=[N|_]
16489                ->  setarg(5, N, M)
16490                ;   true
16491                )
16492              ),
16493              'attach_known/1_1_$special_\\==/2___2'(K, D)
16494          ;   true
16495          )
16496        ),
16497        'known/1_1_$special_\\==/2'(O, P),
16498        (   D=suspension(_, active, _, G, _, _, _)
16499        ->  setarg(2, D, inactive),
16500            'known/1_1_$special_\\==/2___2__2__0__9'(Q,
16501                                                     C,
16502                                                     P,
16503                                                     D)
16504        ;   true
16505        )
16506    ;   'known/1_1_$special_\\==/2___2__2__0__9'(Q,
16507                                                 C,
16508                                                 P,
16509                                                 D)
16510    ).
16511'known/1_1_$special_\\==/2___2__2'(A, B, C) :-
16512    'known/1_1_$special_\\==/2___2__3'(A, B, C).
16513'known/1_1_$special_\\==/2___2__3'(L, K, A) :-
16514    '$novel_production'(A, 231),
16515    !,
16516    '$extend_history'(A, 231),
16517    arg(2, A, D),
16518    setarg(2, A, active),
16519    arg(4, A, B),
16520    C is B+1,
16521    setarg(4, A, C),
16522    (   D==not_stored_yet
16523    ->  A=suspension(_, _, _, _, _, E, F),
16524        term_variables(term(E, F), G),
16525        'chr none_locked'(G),
16526        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16527                    H),
16528          I=[A|H],
16529          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16530                   I),
16531          (   H=[J|_]
16532          ->  setarg(5, J, I)
16533          ;   true
16534          )
16535        ),
16536        'attach_known/1_1_$special_\\==/2___2'(G, A)
16537    ;   true
16538    ),
16539    'known/1_1_$special_\\==/2'(K, L),
16540    (   A=suspension(_, active, _, C, _, _, _)
16541    ->  setarg(2, A, inactive),
16542        'known/1_1_$special_\\==/2___2__4'(L, K, A)
16543    ;   true
16544    ).
16545'known/1_1_$special_\\==/2___2__3'(A, B, C) :-
16546    'known/1_1_$special_\\==/2___2__4'(A, B, C).
16547'known/1_1_$special_\\==/2___2__4'(B, A, C) :-
16548    A==B,
16549    '$novel_production'(C, 232),
16550    !,
16551    '$extend_history'(C, 232),
16552    arg(2, C, F),
16553    setarg(2, C, active),
16554    arg(4, C, D),
16555    E is D+1,
16556    setarg(4, C, E),
16557    (   F==not_stored_yet
16558    ->  C=suspension(_, _, _, _, _, G, H),
16559        term_variables(term(G, H), I),
16560        'chr none_locked'(I),
16561        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16562                    J),
16563          K=[C|J],
16564          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16565                   K),
16566          (   J=[L|_]
16567          ->  setarg(5, L, K)
16568          ;   true
16569          )
16570        ),
16571        'attach_known/1_1_$special_\\==/2___2'(I, C)
16572    ;   true
16573    ),
16574    'known/1_1_$special_fail/0',
16575    (   C=suspension(_, active, _, E, _, _, _)
16576    ->  setarg(2, C, inactive),
16577        'known/1_1_$special_\\==/2___2__5'(B, A, C)
16578    ;   true
16579    ).
16580'known/1_1_$special_\\==/2___2__4'(A, B, C) :-
16581    'known/1_1_$special_\\==/2___2__5'(A, B, C).
16582'known/1_1_$special_\\==/2___2__5'(B, A, C) :-
16583    nonvar(A),
16584    nonvar(B),
16585    'chr lock'(B),
16586    functor(B, L, M),
16587    'chr unlock'(B),
16588    !,
16589    (   var(C)
16590    ->  true
16591    ;   C=suspension(_, D, _, _, _, E, F),
16592        setarg(2, C, removed),
16593        (   D==not_stored_yet
16594        ->  G=[]
16595        ;   term_variables(term(E, F), G),
16596            ( arg(5, C, H),
16597              (   var(H)
16598              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16599                            I),
16600                  I=[_|J],
16601                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16602                           J),
16603                  (   J=[K|_]
16604                  ->  setarg(5, K, _)
16605                  ;   true
16606                  )
16607              ;   H=[_, _|J],
16608                  setarg(2, H, J),
16609                  (   J=[K|_]
16610                  ->  setarg(5, K, H)
16611                  ;   true
16612                  )
16613              )
16614            ),
16615            'detach_known/1_1_$special_\\==/2___2'(G, C)
16616        )
16617    ),
16618    (   functor(A, L, M)
16619    ->  B=..[L|N],
16620        A=..[L|O],
16621        add_args_nmatch(N, O, P),
16622        known(P)
16623    ;   true
16624    ).
16625'known/1_1_$special_\\==/2___2__5'(A, B, F) :-
16626    (   'chr newvia_2'(A, B, C)
16627    ->  get_attr(C, guard_entailment, D),
16628        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
16629    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16630                  E)
16631    ),
16632    !,
16633    'known/1_1_$special_\\==/2___2__5__0__13'(E, A, B, F).
16634'known/1_1_$special_\\==/2___2__5__0__13'([], A, B, C) :-
16635    'known/1_1_$special_\\==/2___2__6'(A, B, C).
16636'known/1_1_$special_\\==/2___2__5__0__13'([A|Z], E, G, O) :-
16637    (   A=suspension(_, active, _, _, B, Y),
16638        nonvar(B),
16639        B=(\+C),
16640        nonvar(C),
16641        C=(D\==F),
16642        D==E,
16643        F==G
16644    ->  ( A=suspension(_, _, _, _, H, I),
16645          setarg(2, A, removed),
16646          term_variables(term(H, I), N),
16647          ( arg(4, A, J),
16648            (   var(J)
16649            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16650                          K),
16651                K=[_|L],
16652                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16653                         L),
16654                (   L=[M|_]
16655                ->  setarg(4, M, _)
16656                ;   true
16657                )
16658            ;   J=[_, _|L],
16659                setarg(2, J, L),
16660                (   L=[M|_]
16661                ->  setarg(4, M, J)
16662                ;   true
16663                )
16664            )
16665          ),
16666          'detach_known/1_1_$special_;/2___2'(N, A)
16667        ),
16668        ( arg(2, O, R),
16669          setarg(2, O, active),
16670          ( arg(4, O, P),
16671            Q is P+1,
16672            setarg(4, O, Q)
16673          ),
16674          (   R==not_stored_yet
16675          ->  O=suspension(_, _, _, _, _, S, T),
16676              term_variables(term(S, T), U),
16677              'chr none_locked'(U),
16678              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16679                          V),
16680                W=[O|V],
16681                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16682                         W),
16683                (   V=[X|_]
16684                ->  setarg(5, X, W)
16685                ;   true
16686                )
16687              ),
16688              'attach_known/1_1_$special_\\==/2___2'(U, O)
16689          ;   true
16690          )
16691        ),
16692        known(Y),
16693        (   O=suspension(_, active, _, Q, _, _, _)
16694        ->  setarg(2, O, inactive),
16695            'known/1_1_$special_\\==/2___2__5__0__13'(Z,
16696                                                      E,
16697                                                      G,
16698                                                      O)
16699        ;   true
16700        )
16701    ;   'known/1_1_$special_\\==/2___2__5__0__13'(Z,
16702                                                  E,
16703                                                  G,
16704                                                  O)
16705    ).
16706'known/1_1_$special_\\==/2___2__5'(A, B, C) :-
16707    'known/1_1_$special_\\==/2___2__6'(A, B, C).
16708'known/1_1_$special_\\==/2___2__6'(A, B, F) :-
16709    (   'chr newvia_2'(A, B, C)
16710    ->  get_attr(C, guard_entailment, D),
16711        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
16712    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16713                  E)
16714    ),
16715    !,
16716    'known/1_1_$special_\\==/2___2__6__0__14'(E, A, B, F).
16717'known/1_1_$special_\\==/2___2__6__0__14'([], A, B, C) :-
16718    'known/1_1_$special_\\==/2___2__7'(A, B, C).
16719'known/1_1_$special_\\==/2___2__6__0__14'([A|A1], F, H, P) :-
16720    (   A=suspension(_, active, _, _, B, Z),
16721        nonvar(B),
16722        B=(C, _),
16723        nonvar(C),
16724        C=(\+D),
16725        nonvar(D),
16726        D=(E\==G),
16727        E==F,
16728        G==H
16729    ->  ( A=suspension(_, _, _, _, I, J),
16730          setarg(2, A, removed),
16731          term_variables(term(I, J), O),
16732          ( arg(4, A, K),
16733            (   var(K)
16734            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16735                          L),
16736                L=[_|M],
16737                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16738                         M),
16739                (   M=[N|_]
16740                ->  setarg(4, N, _)
16741                ;   true
16742                )
16743            ;   K=[_, _|M],
16744                setarg(2, K, M),
16745                (   M=[N|_]
16746                ->  setarg(4, N, K)
16747                ;   true
16748                )
16749            )
16750          ),
16751          'detach_known/1_1_$special_;/2___2'(O, A)
16752        ),
16753        ( arg(2, P, S),
16754          setarg(2, P, active),
16755          ( arg(4, P, Q),
16756            R is Q+1,
16757            setarg(4, P, R)
16758          ),
16759          (   S==not_stored_yet
16760          ->  P=suspension(_, _, _, _, _, T, U),
16761              term_variables(term(T, U), V),
16762              'chr none_locked'(V),
16763              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16764                          W),
16765                X=[P|W],
16766                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16767                         X),
16768                (   W=[Y|_]
16769                ->  setarg(5, Y, X)
16770                ;   true
16771                )
16772              ),
16773              'attach_known/1_1_$special_\\==/2___2'(V, P)
16774          ;   true
16775          )
16776        ),
16777        known(Z),
16778        (   P=suspension(_, active, _, R, _, _, _)
16779        ->  setarg(2, P, inactive),
16780            'known/1_1_$special_\\==/2___2__6__0__14'(A1,
16781                                                      F,
16782                                                      H,
16783                                                      P)
16784        ;   true
16785        )
16786    ;   'known/1_1_$special_\\==/2___2__6__0__14'(A1,
16787                                                  F,
16788                                                  H,
16789                                                  P)
16790    ).
16791'known/1_1_$special_\\==/2___2__6'(A, B, C) :-
16792    'known/1_1_$special_\\==/2___2__7'(A, B, C).
16793'known/1_1_$special_\\==/2___2__7'(_, _, A) :-
16794    arg(2, A, D),
16795    setarg(2, A, active),
16796    arg(4, A, B),
16797    C is B+1,
16798    setarg(4, A, C),
16799    (   D==not_stored_yet
16800    ->  A=suspension(_, _, _, _, _, E, F),
16801        term_variables(term(E, F), G),
16802        'chr none_locked'(G),
16803        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16804                    H),
16805          I=[A|H],
16806          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16807                   I),
16808          (   H=[J|_]
16809          ->  setarg(5, J, I)
16810          ;   true
16811          )
16812        ),
16813        'attach_known/1_1_$special_\\==/2___2'(G, A)
16814    ;   true
16815    ).
16816'known/1_1_$special_==/2'(A, B) :-
16817    'known/1_1_$special_==/2___2__0'(A, B, _).
16818'known/1_1_$special_==/2___2__0'(A, B, I) :-
16819    (   'chr newvia_2'(A, B, C)
16820    ->  get_attr(C, guard_entailment, D),
16821        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _)
16822    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16823                  E)
16824    ),
16825    member(F, E),
16826    F=suspension(_, active, _, _, _, G, H),
16827    G==A,
16828    H==B,
16829    !,
16830    (   var(I)
16831    ->  true
16832    ;   I=suspension(_, J, _, _, _, K, L),
16833        setarg(2, I, removed),
16834        (   J==not_stored_yet
16835        ->  M=[]
16836        ;   term_variables(term(K, L), M),
16837            ( arg(5, I, N),
16838              (   var(N)
16839              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16840                            O),
16841                  O=[_|P],
16842                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16843                           P),
16844                  (   P=[Q|_]
16845                  ->  setarg(5, Q, _)
16846                  ;   true
16847                  )
16848              ;   N=[_, _|P],
16849                  setarg(2, N, P),
16850                  (   P=[Q|_]
16851                  ->  setarg(5, Q, N)
16852                  ;   true
16853                  )
16854              )
16855            ),
16856            'detach_known/1_1_$special_==/2___2'(M, I)
16857        )
16858    ).
16859'known/1_1_$special_==/2___2__0'(B, C, A) :-
16860    (   var(A)
16861    ->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
16862        'chr gen_id'(D)
16863    ;   true
16864    ),
16865    (   '$novel_production'(A, 136),
16866        number(B),
16867        !,
16868        '$extend_history'(A, 136),
16869        arg(2, A, G),
16870        setarg(2, A, active),
16871        arg(4, A, E),
16872        F is E+1,
16873        setarg(4, A, F),
16874        (   G==not_stored_yet
16875        ->  A=suspension(_, _, _, _, _, H, I),
16876            term_variables(term(H, I), J),
16877            'chr none_locked'(J),
16878            ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16879                        K),
16880              L=[A|K],
16881              b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16882                       L),
16883              (   K=[M|_]
16884              ->  setarg(5, M, L)
16885              ;   true
16886              )
16887            ),
16888            'attach_known/1_1_$special_==/2___2'(J, A)
16889        ;   true
16890        ),
16891        'known/1_1_$special_=:=/2'(B, C),
16892        (   A=suspension(_, active, _, F, _, _, _)
16893        ->  setarg(2, A, inactive),
16894            'known/1_1_$special_==/2___2__1'(B, C, A)
16895        ;   true
16896        )
16897    ;   'known/1_1_$special_==/2___2__1'(B, C, A)
16898    ).
16899'known/1_1_$special_==/2___2__1'(L, B, A) :-
16900    '$novel_production'(A, 137),
16901    number(B),
16902    !,
16903    '$extend_history'(A, 137),
16904    arg(2, A, E),
16905    setarg(2, A, active),
16906    arg(4, A, C),
16907    D is C+1,
16908    setarg(4, A, D),
16909    (   E==not_stored_yet
16910    ->  A=suspension(_, _, _, _, _, F, G),
16911        term_variables(term(F, G), H),
16912        'chr none_locked'(H),
16913        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16914                    I),
16915          J=[A|I],
16916          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16917                   J),
16918          (   I=[K|_]
16919          ->  setarg(5, K, J)
16920          ;   true
16921          )
16922        ),
16923        'attach_known/1_1_$special_==/2___2'(H, A)
16924    ;   true
16925    ),
16926    'known/1_1_$special_=:=/2'(L, B),
16927    (   A=suspension(_, active, _, D, _, _, _)
16928    ->  setarg(2, A, inactive),
16929        'known/1_1_$special_==/2___2__2'(L, B, A)
16930    ;   true
16931    ).
16932'known/1_1_$special_==/2___2__1'(A, B, C) :-
16933    'known/1_1_$special_==/2___2__2'(A, B, C).
16934'known/1_1_$special_==/2___2__2'(_, _, C) :-
16935    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
16936              A),
16937    member(B, A),
16938    B=suspension(_, active, _),
16939    !,
16940    (   var(C)
16941    ->  true
16942    ;   C=suspension(_, D, _, _, _, E, F),
16943        setarg(2, C, removed),
16944        (   D==not_stored_yet
16945        ->  G=[]
16946        ;   term_variables(term(E, F), G),
16947            ( arg(5, C, H),
16948              (   var(H)
16949              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16950                            I),
16951                  I=[_|J],
16952                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16953                           J),
16954                  (   J=[K|_]
16955                  ->  setarg(5, K, _)
16956                  ;   true
16957                  )
16958              ;   H=[_, _|J],
16959                  setarg(2, H, J),
16960                  (   J=[K|_]
16961                  ->  setarg(5, K, H)
16962                  ;   true
16963                  )
16964              )
16965            ),
16966            'detach_known/1_1_$special_==/2___2'(G, C)
16967        )
16968    ).
16969'known/1_1_$special_==/2___2__2'(B, A, C) :-
16970    A==B,
16971    !,
16972    (   var(C)
16973    ->  true
16974    ;   C=suspension(_, D, _, _, _, E, F),
16975        setarg(2, C, removed),
16976        (   D==not_stored_yet
16977        ->  G=[]
16978        ;   term_variables(term(E, F), G),
16979            ( arg(5, C, H),
16980              (   var(H)
16981              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16982                            I),
16983                  I=[_|J],
16984                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16985                           J),
16986                  (   J=[K|_]
16987                  ->  setarg(5, K, _)
16988                  ;   true
16989                  )
16990              ;   H=[_, _|J],
16991                  setarg(2, H, J),
16992                  (   J=[K|_]
16993                  ->  setarg(5, K, H)
16994                  ;   true
16995                  )
16996              )
16997            ),
16998            'detach_known/1_1_$special_==/2___2'(G, C)
16999        )
17000    ).
17001'known/1_1_$special_==/2___2__2'(A, B, P) :-
17002    (   'chr newvia_2'(A, B, C)
17003    ->  get_attr(C, guard_entailment, D),
17004        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
17005    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
17006                  E)
17007    ),
17008    member(F, E),
17009    F=suspension(_, active, _, _, G),
17010    nonvar(G),
17011    G=(H==I),
17012    H==A,
17013    I==B,
17014    !,
17015    F=suspension(_, _, _, _, J),
17016    setarg(2, F, removed),
17017    term_variables(J, O),
17018    arg(4, F, K),
17019    (   var(K)
17020    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
17021                  L),
17022        L=[_|M],
17023        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
17024                 M),
17025        (   M=[N|_]
17026        ->  setarg(4, N, _)
17027        ;   true
17028        )
17029    ;   K=[_, _|M],
17030        setarg(2, K, M),
17031        (   M=[N|_]
17032        ->  setarg(4, N, K)
17033        ;   true
17034        )
17035    ),
17036    'detach_known/1_1_$special_\\+/1___1'(O, F),
17037    (   var(P)
17038    ->  true
17039    ;   P=suspension(_, Q, _, _, _, R, S),
17040        setarg(2, P, removed),
17041        (   Q==not_stored_yet
17042        ->  T=[]
17043        ;   term_variables(term(R, S), T),
17044            ( arg(5, P, U),
17045              (   var(U)
17046              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17047                            V),
17048                  V=[_|W],
17049                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17050                           W),
17051                  (   W=[X|_]
17052                  ->  setarg(5, X, _)
17053                  ;   true
17054                  )
17055              ;   U=[_, _|W],
17056                  setarg(2, U, W),
17057                  (   W=[X|_]
17058                  ->  setarg(5, X, U)
17059                  ;   true
17060                  )
17061              )
17062            ),
17063            'detach_known/1_1_$special_==/2___2'(T, P)
17064        )
17065    ),
17066    'known/1_1_$special_fail/0'.
17067'known/1_1_$special_==/2___2__2'(A, B, P) :-
17068    (   'chr newvia_2'(A, B, C)
17069    ->  get_attr(C, guard_entailment, D),
17070        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _)
17071    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
17072                  E)
17073    ),
17074    member(F, E),
17075    F=suspension(_, active, _, _, _, G, H),
17076    G==A,
17077    H==B,
17078    !,
17079    F=suspension(_, _, _, _, _, I, J),
17080    setarg(2, F, removed),
17081    term_variables(term(I, J), O),
17082    arg(5, F, K),
17083    (   var(K)
17084    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
17085                  L),
17086        L=[_|M],
17087        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
17088                 M),
17089        (   M=[N|_]
17090        ->  setarg(5, N, _)
17091        ;   true
17092        )
17093    ;   K=[_, _|M],
17094        setarg(2, K, M),
17095        (   M=[N|_]
17096        ->  setarg(5, N, K)
17097        ;   true
17098        )
17099    ),
17100    'detach_known/1_1_$special_\\==/2___2'(O, F),
17101    (   var(P)
17102    ->  true
17103    ;   P=suspension(_, Q, _, _, _, R, S),
17104        setarg(2, P, removed),
17105        (   Q==not_stored_yet
17106        ->  T=[]
17107        ;   term_variables(term(R, S), T),
17108            ( arg(5, P, U),
17109              (   var(U)
17110              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17111                            V),
17112                  V=[_|W],
17113                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17114                           W),
17115                  (   W=[X|_]
17116                  ->  setarg(5, X, _)
17117                  ;   true
17118                  )
17119              ;   U=[_, _|W],
17120                  setarg(2, U, W),
17121                  (   W=[X|_]
17122                  ->  setarg(5, X, U)
17123                  ;   true
17124                  )
17125              )
17126            ),
17127            'detach_known/1_1_$special_==/2___2'(T, P)
17128        )
17129    ),
17130    'known/1_1_$special_fail/0'.
17131'known/1_1_$special_==/2___2__2'(E, A, F) :-
17132    (   'chr newvia_1'(A, B)
17133    ->  get_attr(B, guard_entailment, C),
17134        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _)
17135    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17136                  D)
17137    ),
17138    !,
17139    'known/1_1_$special_==/2___2__2__0__10'(D, E, A, F).
17140'known/1_1_$special_==/2___2__2__0__10'([], A, B, C) :-
17141    'known/1_1_$special_==/2___2__3'(A, B, C).
17142'known/1_1_$special_==/2___2__2__0__10'([A|Q], O, C, D) :-
17143    (   A=suspension(_, active, _, _, _, B, P),
17144        B==C,
17145        E=t(228, D, A),
17146        '$novel_production'(D, E),
17147        '$novel_production'(A, E)
17148    ->  '$extend_history'(D, E),
17149        ( arg(2, D, H),
17150          setarg(2, D, active),
17151          ( arg(4, D, F),
17152            G is F+1,
17153            setarg(4, D, G)
17154          ),
17155          (   H==not_stored_yet
17156          ->  D=suspension(_, _, _, _, _, I, J),
17157              term_variables(term(I, J), K),
17158              'chr none_locked'(K),
17159              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17160                          L),
17161                M=[D|L],
17162                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17163                         M),
17164                (   L=[N|_]
17165                ->  setarg(5, N, M)
17166                ;   true
17167                )
17168              ),
17169              'attach_known/1_1_$special_==/2___2'(K, D)
17170          ;   true
17171          )
17172        ),
17173        'known/1_1_$special_==/2'(O, P),
17174        (   D=suspension(_, active, _, G, _, _, _)
17175        ->  setarg(2, D, inactive),
17176            'known/1_1_$special_==/2___2__2__0__10'(Q,
17177                                                    O,
17178                                                    C,
17179                                                    D)
17180        ;   true
17181        )
17182    ;   'known/1_1_$special_==/2___2__2__0__10'(Q,
17183                                                O,
17184                                                C,
17185                                                D)
17186    ).
17187'known/1_1_$special_==/2___2__2'(A, B, C) :-
17188    'known/1_1_$special_==/2___2__3'(A, B, C).
17189'known/1_1_$special_==/2___2__3'(A, E, F) :-
17190    (   'chr newvia_1'(A, B)
17191    ->  get_attr(B, guard_entailment, C),
17192        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _)
17193    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17194                  D)
17195    ),
17196    !,
17197    'known/1_1_$special_==/2___2__3__0__11'(D, A, E, F).
17198'known/1_1_$special_==/2___2__3__0__11'([], A, B, C) :-
17199    'known/1_1_$special_==/2___2__4'(A, B, C).
17200'known/1_1_$special_==/2___2__3__0__11'([A|Q], C, P, D) :-
17201    (   A=suspension(_, active, _, _, _, O, B),
17202        B==C,
17203        E=t(228, A, D),
17204        '$novel_production'(A, E),
17205        '$novel_production'(D, E)
17206    ->  '$extend_history'(D, E),
17207        ( arg(2, D, H),
17208          setarg(2, D, active),
17209          ( arg(4, D, F),
17210            G is F+1,
17211            setarg(4, D, G)
17212          ),
17213          (   H==not_stored_yet
17214          ->  D=suspension(_, _, _, _, _, I, J),
17215              term_variables(term(I, J), K),
17216              'chr none_locked'(K),
17217              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17218                          L),
17219                M=[D|L],
17220                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17221                         M),
17222                (   L=[N|_]
17223                ->  setarg(5, N, M)
17224                ;   true
17225                )
17226              ),
17227              'attach_known/1_1_$special_==/2___2'(K, D)
17228          ;   true
17229          )
17230        ),
17231        'known/1_1_$special_==/2'(O, P),
17232        (   D=suspension(_, active, _, G, _, _, _)
17233        ->  setarg(2, D, inactive),
17234            'known/1_1_$special_==/2___2__3__0__11'(Q,
17235                                                    C,
17236                                                    P,
17237                                                    D)
17238        ;   true
17239        )
17240    ;   'known/1_1_$special_==/2___2__3__0__11'(Q,
17241                                                C,
17242                                                P,
17243                                                D)
17244    ).
17245'known/1_1_$special_==/2___2__3'(A, B, C) :-
17246    'known/1_1_$special_==/2___2__4'(A, B, C).
17247'known/1_1_$special_==/2___2__4'(E, A, F) :-
17248    (   'chr newvia_1'(A, B)
17249    ->  get_attr(B, guard_entailment, C),
17250        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _)
17251    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
17252                  D)
17253    ),
17254    !,
17255    'known/1_1_$special_==/2___2__4__0__12'(D, E, A, F).
17256'known/1_1_$special_==/2___2__4__0__12'([], A, B, C) :-
17257    'known/1_1_$special_==/2___2__5'(A, B, C).
17258'known/1_1_$special_==/2___2__4__0__12'([A|Q], O, C, D) :-
17259    (   A=suspension(_, active, _, _, _, B, P),
17260        B==C,
17261        E=t(229, D, A),
17262        '$novel_production'(D, E),
17263        '$novel_production'(A, E)
17264    ->  '$extend_history'(D, E),
17265        ( arg(2, D, H),
17266          setarg(2, D, active),
17267          ( arg(4, D, F),
17268            G is F+1,
17269            setarg(4, D, G)
17270          ),
17271          (   H==not_stored_yet
17272          ->  D=suspension(_, _, _, _, _, I, J),
17273              term_variables(term(I, J), K),
17274              'chr none_locked'(K),
17275              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17276                          L),
17277                M=[D|L],
17278                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17279                         M),
17280                (   L=[N|_]
17281                ->  setarg(5, N, M)
17282                ;   true
17283                )
17284              ),
17285              'attach_known/1_1_$special_==/2___2'(K, D)
17286          ;   true
17287          )
17288        ),
17289        'known/1_1_$special_\\==/2'(O, P),
17290        (   D=suspension(_, active, _, G, _, _, _)
17291        ->  setarg(2, D, inactive),
17292            'known/1_1_$special_==/2___2__4__0__12'(Q,
17293                                                    O,
17294                                                    C,
17295                                                    D)
17296        ;   true
17297        )
17298    ;   'known/1_1_$special_==/2___2__4__0__12'(Q,
17299                                                O,
17300                                                C,
17301                                                D)
17302    ).
17303'known/1_1_$special_==/2___2__4'(A, B, C) :-
17304    'known/1_1_$special_==/2___2__5'(A, B, C).
17305'known/1_1_$special_==/2___2__5'(L, K, A) :-
17306    '$novel_production'(A, 230),
17307    !,
17308    '$extend_history'(A, 230),
17309    arg(2, A, D),
17310    setarg(2, A, active),
17311    arg(4, A, B),
17312    C is B+1,
17313    setarg(4, A, C),
17314    (   D==not_stored_yet
17315    ->  A=suspension(_, _, _, _, _, E, F),
17316        term_variables(term(E, F), G),
17317        'chr none_locked'(G),
17318        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17319                    H),
17320          I=[A|H],
17321          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17322                   I),
17323          (   H=[J|_]
17324          ->  setarg(5, J, I)
17325          ;   true
17326          )
17327        ),
17328        'attach_known/1_1_$special_==/2___2'(G, A)
17329    ;   true
17330    ),
17331    'known/1_1_$special_==/2'(K, L),
17332    (   A=suspension(_, active, _, C, _, _, _)
17333    ->  setarg(2, A, inactive),
17334        'known/1_1_$special_==/2___2__6'(L, K, A)
17335    ;   true
17336    ).
17337'known/1_1_$special_==/2___2__5'(A, B, C) :-
17338    'known/1_1_$special_==/2___2__6'(A, B, C).
17339'known/1_1_$special_==/2___2__6'(K, L, A) :-
17340    '$novel_production'(A, 234),
17341    !,
17342    '$extend_history'(A, 234),
17343    arg(2, A, D),
17344    setarg(2, A, active),
17345    arg(4, A, B),
17346    C is B+1,
17347    setarg(4, A, C),
17348    (   D==not_stored_yet
17349    ->  A=suspension(_, _, _, _, _, E, F),
17350        term_variables(term(E, F), G),
17351        'chr none_locked'(G),
17352        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17353                    H),
17354          I=[A|H],
17355          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17356                   I),
17357          (   H=[J|_]
17358          ->  setarg(5, J, I)
17359          ;   true
17360          )
17361        ),
17362        'attach_known/1_1_$special_==/2___2'(G, A)
17363    ;   true
17364    ),
17365    'known/1_1_$special_=/2'(K, L),
17366    (   A=suspension(_, active, _, C, _, _, _)
17367    ->  setarg(2, A, inactive),
17368        'known/1_1_$special_==/2___2__7'(K, L, A)
17369    ;   true
17370    ).
17371'known/1_1_$special_==/2___2__6'(A, B, C) :-
17372    'known/1_1_$special_==/2___2__7'(A, B, C).
17373'known/1_1_$special_==/2___2__7'(A, B, F) :-
17374    (   'chr newvia_2'(A, B, C)
17375    ->  get_attr(C, guard_entailment, D),
17376        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
17377    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17378                  E)
17379    ),
17380    !,
17381    'known/1_1_$special_==/2___2__7__0__15'(E, A, B, F).
17382'known/1_1_$special_==/2___2__7__0__15'([], A, B, C) :-
17383    'known/1_1_$special_==/2___2__8'(A, B, C).
17384'known/1_1_$special_==/2___2__7__0__15'([A|Z], E, G, O) :-
17385    (   A=suspension(_, active, _, _, B, Y),
17386        nonvar(B),
17387        B=(\+C),
17388        nonvar(C),
17389        C=(D==F),
17390        D==E,
17391        F==G
17392    ->  ( A=suspension(_, _, _, _, H, I),
17393          setarg(2, A, removed),
17394          term_variables(term(H, I), N),
17395          ( arg(4, A, J),
17396            (   var(J)
17397            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17398                          K),
17399                K=[_|L],
17400                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17401                         L),
17402                (   L=[M|_]
17403                ->  setarg(4, M, _)
17404                ;   true
17405                )
17406            ;   J=[_, _|L],
17407                setarg(2, J, L),
17408                (   L=[M|_]
17409                ->  setarg(4, M, J)
17410                ;   true
17411                )
17412            )
17413          ),
17414          'detach_known/1_1_$special_;/2___2'(N, A)
17415        ),
17416        ( arg(2, O, R),
17417          setarg(2, O, active),
17418          ( arg(4, O, P),
17419            Q is P+1,
17420            setarg(4, O, Q)
17421          ),
17422          (   R==not_stored_yet
17423          ->  O=suspension(_, _, _, _, _, S, T),
17424              term_variables(term(S, T), U),
17425              'chr none_locked'(U),
17426              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17427                          V),
17428                W=[O|V],
17429                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17430                         W),
17431                (   V=[X|_]
17432                ->  setarg(5, X, W)
17433                ;   true
17434                )
17435              ),
17436              'attach_known/1_1_$special_==/2___2'(U, O)
17437          ;   true
17438          )
17439        ),
17440        known(Y),
17441        (   O=suspension(_, active, _, Q, _, _, _)
17442        ->  setarg(2, O, inactive),
17443            'known/1_1_$special_==/2___2__7__0__15'(Z,
17444                                                    E,
17445                                                    G,
17446                                                    O)
17447        ;   true
17448        )
17449    ;   'known/1_1_$special_==/2___2__7__0__15'(Z,
17450                                                E,
17451                                                G,
17452                                                O)
17453    ).
17454'known/1_1_$special_==/2___2__7'(A, B, C) :-
17455    'known/1_1_$special_==/2___2__8'(A, B, C).
17456'known/1_1_$special_==/2___2__8'(A, B, F) :-
17457    (   'chr newvia_2'(A, B, C)
17458    ->  get_attr(C, guard_entailment, D),
17459        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
17460    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17461                  E)
17462    ),
17463    !,
17464    'known/1_1_$special_==/2___2__8__0__16'(E, A, B, F).
17465'known/1_1_$special_==/2___2__8__0__16'([], A, B, C) :-
17466    'known/1_1_$special_==/2___2__9'(A, B, C).
17467'known/1_1_$special_==/2___2__8__0__16'([A|A1], F, H, P) :-
17468    (   A=suspension(_, active, _, _, B, Z),
17469        nonvar(B),
17470        B=(C, _),
17471        nonvar(C),
17472        C=(\+D),
17473        nonvar(D),
17474        D=(E==G),
17475        E==F,
17476        G==H
17477    ->  ( A=suspension(_, _, _, _, I, J),
17478          setarg(2, A, removed),
17479          term_variables(term(I, J), O),
17480          ( arg(4, A, K),
17481            (   var(K)
17482            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17483                          L),
17484                L=[_|M],
17485                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17486                         M),
17487                (   M=[N|_]
17488                ->  setarg(4, N, _)
17489                ;   true
17490                )
17491            ;   K=[_, _|M],
17492                setarg(2, K, M),
17493                (   M=[N|_]
17494                ->  setarg(4, N, K)
17495                ;   true
17496                )
17497            )
17498          ),
17499          'detach_known/1_1_$special_;/2___2'(O, A)
17500        ),
17501        ( arg(2, P, S),
17502          setarg(2, P, active),
17503          ( arg(4, P, Q),
17504            R is Q+1,
17505            setarg(4, P, R)
17506          ),
17507          (   S==not_stored_yet
17508          ->  P=suspension(_, _, _, _, _, T, U),
17509              term_variables(term(T, U), V),
17510              'chr none_locked'(V),
17511              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17512                          W),
17513                X=[P|W],
17514                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17515                         X),
17516                (   W=[Y|_]
17517                ->  setarg(5, Y, X)
17518                ;   true
17519                )
17520              ),
17521              'attach_known/1_1_$special_==/2___2'(V, P)
17522          ;   true
17523          )
17524        ),
17525        known(Z),
17526        (   P=suspension(_, active, _, R, _, _, _)
17527        ->  setarg(2, P, inactive),
17528            'known/1_1_$special_==/2___2__8__0__16'(A1,
17529                                                    F,
17530                                                    H,
17531                                                    P)
17532        ;   true
17533        )
17534    ;   'known/1_1_$special_==/2___2__8__0__16'(A1,
17535                                                F,
17536                                                H,
17537                                                P)
17538    ).
17539'known/1_1_$special_==/2___2__8'(A, B, C) :-
17540    'known/1_1_$special_==/2___2__9'(A, B, C).
17541'known/1_1_$special_==/2___2__9'(_, _, A) :-
17542    arg(2, A, D),
17543    setarg(2, A, active),
17544    arg(4, A, B),
17545    C is B+1,
17546    setarg(4, A, C),
17547    (   D==not_stored_yet
17548    ->  A=suspension(_, _, _, _, _, E, F),
17549        term_variables(term(E, F), G),
17550        'chr none_locked'(G),
17551        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17552                    H),
17553          I=[A|H],
17554          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17555                   I),
17556          (   H=[J|_]
17557          ->  setarg(5, J, I)
17558          ;   true
17559          )
17560        ),
17561        'attach_known/1_1_$special_==/2___2'(G, A)
17562    ;   true
17563    ).
17564'known/1_1_$special_is/2'(A, B) :-
17565    'known/1_1_$special_=:=/2'(A, B).
17566'known/1_1_$special_</2'(A, B) :-
17567    'known/1_1_$special_=</2'(A, B),
17568    'known/1_1_$special_=\\=/2'(A, B).
17569'known/1_1_$special_>=/2'(B, A) :-
17570    'known/1_1_$special_=</2'(A, B).
17571'known/1_1_$special_>/2'(B, A) :-
17572    'known/1_1_$special_</2'(A, B).
17573'known/1_1_$special_=</2'(A, B) :-
17574    'known/1_1_$special_=</2___2__0'(A, B, _).
17575'known/1_1_$special_=</2___2__0'(A, B, I) :-
17576    (   'chr newvia_2'(A, B, C)
17577    ->  get_attr(C, guard_entailment, D),
17578        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
17579    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17580                  E)
17581    ),
17582    member(F, E),
17583    F=suspension(_, active, _, _, _, G, H),
17584    G==A,
17585    H==B,
17586    !,
17587    (   var(I)
17588    ->  true
17589    ;   I=suspension(_, J, _, _, _, K, L),
17590        setarg(2, I, removed),
17591        (   J==not_stored_yet
17592        ->  M=[]
17593        ;   term_variables(term(K, L), M),
17594            ( arg(5, I, N),
17595              (   var(N)
17596              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17597                            O),
17598                  O=[_|P],
17599                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17600                           P),
17601                  (   P=[Q|_]
17602                  ->  setarg(5, Q, _)
17603                  ;   true
17604                  )
17605              ;   N=[_, _|P],
17606                  setarg(2, N, P),
17607                  (   P=[Q|_]
17608                  ->  setarg(5, Q, N)
17609                  ;   true
17610                  )
17611              )
17612            ),
17613            'detach_known/1_1_$special_=</2___2'(M, I)
17614        )
17615    ).
17616'known/1_1_$special_=</2___2__0'(_, _, C) :-
17617    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
17618              A),
17619    member(B, A),
17620    B=suspension(_, active, _),
17621    !,
17622    (   var(C)
17623    ->  true
17624    ;   C=suspension(_, D, _, _, _, E, F),
17625        setarg(2, C, removed),
17626        (   D==not_stored_yet
17627        ->  G=[]
17628        ;   term_variables(term(E, F), G),
17629            ( arg(5, C, H),
17630              (   var(H)
17631              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17632                            I),
17633                  I=[_|J],
17634                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17635                           J),
17636                  (   J=[K|_]
17637                  ->  setarg(5, K, _)
17638                  ;   true
17639                  )
17640              ;   H=[_, _|J],
17641                  setarg(2, H, J),
17642                  (   J=[K|_]
17643                  ->  setarg(5, K, H)
17644                  ;   true
17645                  )
17646              )
17647            ),
17648            'detach_known/1_1_$special_=</2___2'(G, C)
17649        )
17650    ).
17651'known/1_1_$special_=</2___2__0'(B, A, C) :-
17652    A==B,
17653    !,
17654    (   var(C)
17655    ->  true
17656    ;   C=suspension(_, D, _, _, _, E, F),
17657        setarg(2, C, removed),
17658        (   D==not_stored_yet
17659        ->  G=[]
17660        ;   term_variables(term(E, F), G),
17661            ( arg(5, C, H),
17662              (   var(H)
17663              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17664                            I),
17665                  I=[_|J],
17666                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17667                           J),
17668                  (   J=[K|_]
17669                  ->  setarg(5, K, _)
17670                  ;   true
17671                  )
17672              ;   H=[_, _|J],
17673                  setarg(2, H, J),
17674                  (   J=[K|_]
17675                  ->  setarg(5, K, H)
17676                  ;   true
17677                  )
17678              )
17679            ),
17680            'detach_known/1_1_$special_=</2___2'(G, C)
17681        )
17682    ).
17683'known/1_1_$special_=</2___2__0'(B, A, C) :-
17684    number(A),
17685    (   number(B),
17686        B>A,
17687        !,
17688        (   var(C)
17689        ->  true
17690        ;   C=suspension(_, D, _, _, _, E, F),
17691            setarg(2, C, removed),
17692            (   D==not_stored_yet
17693            ->  G=[]
17694            ;   term_variables(term(E, F), G),
17695                ( arg(5, C, H),
17696                  (   var(H)
17697                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17698                                I),
17699                      I=[_|J],
17700                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17701                               J),
17702                      (   J=[K|_]
17703                      ->  setarg(5, K, _)
17704                      ;   true
17705                      )
17706                  ;   H=[_, _|J],
17707                      setarg(2, H, J),
17708                      (   J=[K|_]
17709                      ->  setarg(5, K, H)
17710                      ;   true
17711                      )
17712                  )
17713                ),
17714                'detach_known/1_1_$special_=</2___2'(G, C)
17715            )
17716        ),
17717        'known/1_1_$special_fail/0'
17718    ;   (   'chr newvia_1'(B, L)
17719        ->  get_attr(L, guard_entailment, M),
17720            M=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, N, _)
17721        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17722                      N)
17723        ),
17724        member(O, N),
17725        O=suspension(_, active, _, _, _, P, Q),
17726        P==B,
17727        number(Q),
17728        Q=<A,
17729        !,
17730        (   var(C)
17731        ->  true
17732        ;   C=suspension(_, R, _, _, _, S, T),
17733            setarg(2, C, removed),
17734            (   R==not_stored_yet
17735            ->  U=[]
17736            ;   term_variables(term(S, T), U),
17737                ( arg(5, C, V),
17738                  (   var(V)
17739                  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17740                                W),
17741                      W=[_|X],
17742                      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17743                               X),
17744                      (   X=[Y|_]
17745                      ->  setarg(5, Y, _)
17746                      ;   true
17747                      )
17748                  ;   V=[_, _|X],
17749                      setarg(2, V, X),
17750                      (   X=[Y|_]
17751                      ->  setarg(5, Y, V)
17752                      ;   true
17753                      )
17754                  )
17755                ),
17756                'detach_known/1_1_$special_=</2___2'(U, C)
17757            )
17758        )
17759    ).
17760'known/1_1_$special_=</2___2__0'(A, E, F) :-
17761    (   'chr newvia_1'(A, B)
17762    ->  get_attr(B, guard_entailment, C),
17763        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
17764    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17765                  D)
17766    ),
17767    !,
17768    'known/1_1_$special_=</2___2__0__0__12'(D, A, E, F).
17769'known/1_1_$special_=</2___2__0__0__12'([], A, B, C) :-
17770    'known/1_1_$special_=</2___2__1'(A, B, C).
17771'known/1_1_$special_=</2___2__0__0__12'([A|M], C, E, N) :-
17772    (   ( A=suspension(_, active, _, _, _, B, D),
17773          B==C
17774        ),
17775        number(D),
17776        number(E),
17777        E=<D
17778    ->  ( A=suspension(_, _, _, _, _, F, G),
17779          setarg(2, A, removed),
17780          term_variables(term(F, G), L),
17781          ( arg(5, A, H),
17782            (   var(H)
17783            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17784                          I),
17785                I=[_|J],
17786                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17787                         J),
17788                (   J=[K|_]
17789                ->  setarg(5, K, _)
17790                ;   true
17791                )
17792            ;   H=[_, _|J],
17793                setarg(2, H, J),
17794                (   J=[K|_]
17795                ->  setarg(5, K, H)
17796                ;   true
17797                )
17798            )
17799          ),
17800          'detach_known/1_1_$special_=</2___2'(L, A)
17801        ),
17802        'known/1_1_$special_=</2___2__0__0__12'(M,
17803                                                C,
17804                                                E,
17805                                                N)
17806    ;   'known/1_1_$special_=</2___2__0__0__12'(M,
17807                                                C,
17808                                                E,
17809                                                N)
17810    ).
17811'known/1_1_$special_=</2___2__0'(A, B, C) :-
17812    'known/1_1_$special_=</2___2__1'(A, B, C).
17813'known/1_1_$special_=</2___2__1'(A, B, I) :-
17814    number(A),
17815    (   'chr newvia_1'(B, C)
17816    ->  get_attr(C, guard_entailment, D),
17817        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
17818    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17819                  E)
17820    ),
17821    member(F, E),
17822    F=suspension(_, active, _, _, _, H, G),
17823    G==B,
17824    number(H),
17825    A=<H,
17826    !,
17827    (   var(I)
17828    ->  true
17829    ;   I=suspension(_, J, _, _, _, K, L),
17830        setarg(2, I, removed),
17831        (   J==not_stored_yet
17832        ->  M=[]
17833        ;   term_variables(term(K, L), M),
17834            ( arg(5, I, N),
17835              (   var(N)
17836              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17837                            O),
17838                  O=[_|P],
17839                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17840                           P),
17841                  (   P=[Q|_]
17842                  ->  setarg(5, Q, _)
17843                  ;   true
17844                  )
17845              ;   N=[_, _|P],
17846                  setarg(2, N, P),
17847                  (   P=[Q|_]
17848                  ->  setarg(5, Q, N)
17849                  ;   true
17850                  )
17851              )
17852            ),
17853            'detach_known/1_1_$special_=</2___2'(M, I)
17854        )
17855    ).
17856'known/1_1_$special_=</2___2__1'(E, A, F) :-
17857    (   'chr newvia_1'(A, B)
17858    ->  get_attr(B, guard_entailment, C),
17859        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
17860    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17861                  D)
17862    ),
17863    !,
17864    'known/1_1_$special_=</2___2__1__0__14'(D, E, A, F).
17865'known/1_1_$special_=</2___2__1__0__14'([], A, B, C) :-
17866    'known/1_1_$special_=</2___2__2'(A, B, C).
17867'known/1_1_$special_=</2___2__1__0__14'([A|M], D, C, N) :-
17868    (   ( A=suspension(_, active, _, _, _, E, B),
17869          B==C
17870        ),
17871        number(D),
17872        number(E),
17873        E=<D
17874    ->  ( A=suspension(_, _, _, _, _, F, G),
17875          setarg(2, A, removed),
17876          term_variables(term(F, G), L),
17877          ( arg(5, A, H),
17878            (   var(H)
17879            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17880                          I),
17881                I=[_|J],
17882                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17883                         J),
17884                (   J=[K|_]
17885                ->  setarg(5, K, _)
17886                ;   true
17887                )
17888            ;   H=[_, _|J],
17889                setarg(2, H, J),
17890                (   J=[K|_]
17891                ->  setarg(5, K, H)
17892                ;   true
17893                )
17894            )
17895          ),
17896          'detach_known/1_1_$special_=</2___2'(L, A)
17897        ),
17898        'known/1_1_$special_=</2___2__1__0__14'(M,
17899                                                D,
17900                                                C,
17901                                                N)
17902    ;   'known/1_1_$special_=</2___2__1__0__14'(M,
17903                                                D,
17904                                                C,
17905                                                N)
17906    ).
17907'known/1_1_$special_=</2___2__1'(A, B, C) :-
17908    'known/1_1_$special_=</2___2__2'(A, B, C).
17909'known/1_1_$special_=</2___2__2'(B, A, P) :-
17910    (   'chr newvia_2'(A, B, C)
17911    ->  get_attr(C, guard_entailment, D),
17912        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
17913    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17914                  E)
17915    ),
17916    member(F, E),
17917    F=suspension(_, active, _, _, _, G, H),
17918    G==A,
17919    H==B,
17920    !,
17921    F=suspension(_, _, _, _, _, I, J),
17922    setarg(2, F, removed),
17923    term_variables(term(I, J), O),
17924    arg(5, F, K),
17925    (   var(K)
17926    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17927                  L),
17928        L=[_|M],
17929        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17930                 M),
17931        (   M=[N|_]
17932        ->  setarg(5, N, _)
17933        ;   true
17934        )
17935    ;   K=[_, _|M],
17936        setarg(2, K, M),
17937        (   M=[N|_]
17938        ->  setarg(5, N, K)
17939        ;   true
17940        )
17941    ),
17942    'detach_known/1_1_$special_=</2___2'(O, F),
17943    (   var(P)
17944    ->  true
17945    ;   P=suspension(_, Q, _, _, _, R, S),
17946        setarg(2, P, removed),
17947        (   Q==not_stored_yet
17948        ->  T=[]
17949        ;   term_variables(term(R, S), T),
17950            ( arg(5, P, U),
17951              (   var(U)
17952              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17953                            V),
17954                  V=[_|W],
17955                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17956                           W),
17957                  (   W=[X|_]
17958                  ->  setarg(5, X, _)
17959                  ;   true
17960                  )
17961              ;   U=[_, _|W],
17962                  setarg(2, U, W),
17963                  (   W=[X|_]
17964                  ->  setarg(5, X, U)
17965                  ;   true
17966                  )
17967              )
17968            ),
17969            'detach_known/1_1_$special_=</2___2'(T, P)
17970        )
17971    ),
17972    'known/1_1_$special_=:=/2'(B, A).
17973'known/1_1_$special_=</2___2__2'(F, A, E) :-
17974    (   'chr newvia_1'(A, B)
17975    ->  get_attr(B, guard_entailment, C),
17976        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
17977    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17978                  D)
17979    ),
17980    !,
17981    (   var(E)
17982    ->  E=suspension(G, not_stored_yet, t, 0, _, F, A),
17983        'chr gen_id'(G)
17984    ;   true
17985    ),
17986    'known/1_1_$special_=</2___2__2__0__17'(D, F, A, E).
17987'known/1_1_$special_=</2___2__2__0__17'([], A, B, C) :-
17988    'known/1_1_$special_=</2___2__3'(A, B, C).
17989'known/1_1_$special_=</2___2__2__0__17'([A|Q], O, C, D) :-
17990    (   A=suspension(_, active, _, _, _, B, P),
17991        B==C,
17992        E=t(187, D, A),
17993        '$novel_production'(D, E),
17994        '$novel_production'(A, E)
17995    ->  '$extend_history'(D, E),
17996        ( arg(2, D, H),
17997          setarg(2, D, active),
17998          ( arg(4, D, F),
17999            G is F+1,
18000            setarg(4, D, G)
18001          ),
18002          (   H==not_stored_yet
18003          ->  D=suspension(_, _, _, _, _, I, J),
18004              term_variables(term(I, J), K),
18005              'chr none_locked'(K),
18006              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18007                          L),
18008                M=[D|L],
18009                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18010                         M),
18011                (   L=[N|_]
18012                ->  setarg(5, N, M)
18013                ;   true
18014                )
18015              ),
18016              'attach_known/1_1_$special_=</2___2'(K, D)
18017          ;   true
18018          )
18019        ),
18020        'known/1_1_$special_=</2'(O, P),
18021        (   D=suspension(_, active, _, G, _, _, _)
18022        ->  setarg(2, D, inactive),
18023            'known/1_1_$special_=</2___2__2__0__17'(Q,
18024                                                    O,
18025                                                    C,
18026                                                    D)
18027        ;   true
18028        )
18029    ;   'known/1_1_$special_=</2___2__2__0__17'(Q,
18030                                                O,
18031                                                C,
18032                                                D)
18033    ).
18034'known/1_1_$special_=</2___2__2'(B, C, A) :-
18035    (   var(A)
18036    ->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
18037        'chr gen_id'(D)
18038    ;   true
18039    ),
18040    'known/1_1_$special_=</2___2__3'(B, C, A).
18041'known/1_1_$special_=</2___2__3'(A, E, F) :-
18042    (   'chr newvia_1'(A, B)
18043    ->  get_attr(B, guard_entailment, C),
18044        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
18045    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18046                  D)
18047    ),
18048    !,
18049    'known/1_1_$special_=</2___2__3__0__18'(D, A, E, F).
18050'known/1_1_$special_=</2___2__3__0__18'([], A, B, C) :-
18051    'known/1_1_$special_=</2___2__4'(A, B, C).
18052'known/1_1_$special_=</2___2__3__0__18'([A|Q], C, P, D) :-
18053    (   A=suspension(_, active, _, _, _, O, B),
18054        B==C,
18055        E=t(187, A, D),
18056        '$novel_production'(A, E),
18057        '$novel_production'(D, E)
18058    ->  '$extend_history'(D, E),
18059        ( arg(2, D, H),
18060          setarg(2, D, active),
18061          ( arg(4, D, F),
18062            G is F+1,
18063            setarg(4, D, G)
18064          ),
18065          (   H==not_stored_yet
18066          ->  D=suspension(_, _, _, _, _, I, J),
18067              term_variables(term(I, J), K),
18068              'chr none_locked'(K),
18069              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18070                          L),
18071                M=[D|L],
18072                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18073                         M),
18074                (   L=[N|_]
18075                ->  setarg(5, N, M)
18076                ;   true
18077                )
18078              ),
18079              'attach_known/1_1_$special_=</2___2'(K, D)
18080          ;   true
18081          )
18082        ),
18083        'known/1_1_$special_=</2'(O, P),
18084        (   D=suspension(_, active, _, G, _, _, _)
18085        ->  setarg(2, D, inactive),
18086            'known/1_1_$special_=</2___2__3__0__18'(Q,
18087                                                    C,
18088                                                    P,
18089                                                    D)
18090        ;   true
18091        )
18092    ;   'known/1_1_$special_=</2___2__3__0__18'(Q,
18093                                                C,
18094                                                P,
18095                                                D)
18096    ).
18097'known/1_1_$special_=</2___2__3'(A, B, C) :-
18098    'known/1_1_$special_=</2___2__4'(A, B, C).
18099'known/1_1_$special_=</2___2__4'(E, A, F) :-
18100    (   'chr newvia_1'(A, B)
18101    ->  get_attr(B, guard_entailment, C),
18102        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _)
18103    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
18104                  D)
18105    ),
18106    !,
18107    'known/1_1_$special_=</2___2__4__0__19'(D, E, A, F).
18108'known/1_1_$special_=</2___2__4__0__19'([], A, B, C) :-
18109    'known/1_1_$special_=</2___2__5'(A, B, C).
18110'known/1_1_$special_=</2___2__4__0__19'([A|H], I, C, J) :-
18111    (   ( A=suspension(_, active, _, _, _, B, D),
18112          B==C
18113        ),
18114        (   'chr newvia_2'(C, D, E)
18115        ->  get_attr(E, guard_entailment, F),
18116            F=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, G, _)
18117        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18118                      G)
18119        )
18120    ->  'known/1_1_$special_=</2___2__4__1__19'(G,
18121                                                D,
18122                                                A,
18123                                                H,
18124                                                I,
18125                                                C,
18126                                                J)
18127    ;   'known/1_1_$special_=</2___2__4__0__19'(H, I, C, J)
18128    ).
18129'known/1_1_$special_=</2___2__4__1__19'([], _, _, A, B, C, D) :-
18130    'known/1_1_$special_=</2___2__4__0__19'(A, B, C, D).
18131'known/1_1_$special_=</2___2__4__1__19'([A|J], E, K, L, F, C, M) :-
18132    (   ( A=suspension(_, active, _, _, _, B, D),
18133          B==C,
18134          D==E
18135        ),
18136        (   'chr newvia_2'(F, C, G)
18137        ->  get_attr(G, guard_entailment, H),
18138            H=v(_, _, _, _, _, _, _, _, _, _, _, _, _, I, _, _, _, _, _, _, _, _)
18139        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
18140                      I)
18141        )
18142    ->  'known/1_1_$special_=</2___2__4__2__19'(I,
18143                                                A,
18144                                                J,
18145                                                E,
18146                                                K,
18147                                                L,
18148                                                F,
18149                                                C,
18150                                                M)
18151    ;   'known/1_1_$special_=</2___2__4__1__19'(J,
18152                                                E,
18153                                                K,
18154                                                L,
18155                                                F,
18156                                                C,
18157                                                M)
18158    ).
18159'known/1_1_$special_=</2___2__4__2__19'([], _, A, B, C, D, E, F, G) :-
18160    'known/1_1_$special_=</2___2__4__1__19'(A,
18161                                            B,
18162                                            C,
18163                                            D,
18164                                            E,
18165                                            F,
18166                                            G).
18167'known/1_1_$special_=</2___2__4__2__19'([A|T], H, U, S, B, V, D, F, G) :-
18168    (   A=suspension(_, active, _, _, _, C, E),
18169        A\==B,
18170        ( C==D,
18171          E==F
18172        ),
18173        I=t(188, G, A, H, B),
18174        '$novel_production'(G, I),
18175        '$novel_production'(A, I),
18176        '$novel_production'(H, I),
18177        '$novel_production'(B, I)
18178    ->  '$extend_history'(G, I),
18179        ( arg(2, G, L),
18180          setarg(2, G, active),
18181          ( arg(4, G, J),
18182            K is J+1,
18183            setarg(4, G, K)
18184          ),
18185          (   L==not_stored_yet
18186          ->  G=suspension(_, _, _, _, _, M, N),
18187              term_variables(term(M, N), O),
18188              'chr none_locked'(O),
18189              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18190                          P),
18191                Q=[G|P],
18192                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18193                         Q),
18194                (   P=[R|_]
18195                ->  setarg(5, R, Q)
18196                ;   true
18197                )
18198              ),
18199              'attach_known/1_1_$special_=</2___2'(O, G)
18200          ;   true
18201          )
18202        ),
18203        'known/1_1_$special_=\\=/2'(D, S),
18204        (   G=suspension(_, active, _, K, _, _, _)
18205        ->  setarg(2, G, inactive),
18206            'known/1_1_$special_=</2___2__4__2__19'(T,
18207                                                    H,
18208                                                    U,
18209                                                    S,
18210                                                    B,
18211                                                    V,
18212                                                    D,
18213                                                    F,
18214                                                    G)
18215        ;   true
18216        )
18217    ;   'known/1_1_$special_=</2___2__4__2__19'(T,
18218                                                H,
18219                                                U,
18220                                                S,
18221                                                B,
18222                                                V,
18223                                                D,
18224                                                F,
18225                                                G)
18226    ).
18227'known/1_1_$special_=</2___2__4'(A, B, C) :-
18228    'known/1_1_$special_=</2___2__5'(A, B, C).
18229'known/1_1_$special_=</2___2__5'(A, E, F) :-
18230    (   'chr newvia_1'(A, B)
18231    ->  get_attr(B, guard_entailment, C),
18232        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
18233    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18234                  D)
18235    ),
18236    !,
18237    'known/1_1_$special_=</2___2__5__0__20'(D, A, E, F).
18238'known/1_1_$special_=</2___2__5__0__20'([], A, B, C) :-
18239    'known/1_1_$special_=</2___2__6'(A, B, C).
18240'known/1_1_$special_=</2___2__5__0__20'([A|I], C, D, J) :-
18241    (   ( A=suspension(_, active, _, _, _, H, B),
18242          B==C
18243        ),
18244        (   'chr newvia_2'(C, D, E)
18245        ->  get_attr(E, guard_entailment, F),
18246            F=v(_, _, _, _, _, _, _, _, _, _, _, _, _, G, _, _, _, _, _, _, _, _)
18247        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
18248                      G)
18249        )
18250    ->  'known/1_1_$special_=</2___2__5__1__20'(G,
18251                                                H,
18252                                                A,
18253                                                I,
18254                                                C,
18255                                                D,
18256                                                J)
18257    ;   'known/1_1_$special_=</2___2__5__0__20'(I, C, D, J)
18258    ).
18259'known/1_1_$special_=</2___2__5__1__20'([], _, _, A, B, C, D) :-
18260    'known/1_1_$special_=</2___2__5__0__20'(A, B, C, D).
18261'known/1_1_$special_=</2___2__5__1__20'([A|J], F, K, L, C, E, M) :-
18262    (   ( A=suspension(_, active, _, _, _, B, D),
18263          B==C,
18264          D==E
18265        ),
18266        (   'chr newvia_2'(F, C, G)
18267        ->  get_attr(G, guard_entailment, H),
18268            H=v(_, _, _, _, _, _, _, _, _, _, _, _, _, I, _, _, _, _, _, _, _, _)
18269        ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
18270                      I)
18271        )
18272    ->  'known/1_1_$special_=</2___2__5__2__20'(I,
18273                                                A,
18274                                                J,
18275                                                F,
18276                                                K,
18277                                                L,
18278                                                C,
18279                                                E,
18280                                                M)
18281    ;   'known/1_1_$special_=</2___2__5__1__20'(J,
18282                                                F,
18283                                                K,
18284                                                L,
18285                                                C,
18286                                                E,
18287                                                M)
18288    ).
18289'known/1_1_$special_=</2___2__5__2__20'([], _, A, B, C, D, E, F, G) :-
18290    'known/1_1_$special_=</2___2__5__1__20'(A,
18291                                            B,
18292                                            C,
18293                                            D,
18294                                            E,
18295                                            F,
18296                                            G).
18297'known/1_1_$special_=</2___2__5__2__20'([A|T], B, U, D, G, V, F, S, H) :-
18298    (   A=suspension(_, active, _, _, _, C, E),
18299        A\==B,
18300        ( C==D,
18301          E==F
18302        ),
18303        I=t(188, G, A, H, B),
18304        '$novel_production'(G, I),
18305        '$novel_production'(A, I),
18306        '$novel_production'(H, I),
18307        '$novel_production'(B, I)
18308    ->  '$extend_history'(H, I),
18309        ( arg(2, H, L),
18310          setarg(2, H, active),
18311          ( arg(4, H, J),
18312            K is J+1,
18313            setarg(4, H, K)
18314          ),
18315          (   L==not_stored_yet
18316          ->  H=suspension(_, _, _, _, _, M, N),
18317              term_variables(term(M, N), O),
18318              'chr none_locked'(O),
18319              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18320                          P),
18321                Q=[H|P],
18322                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18323                         Q),
18324                (   P=[R|_]
18325                ->  setarg(5, R, Q)
18326                ;   true
18327                )
18328              ),
18329              'attach_known/1_1_$special_=</2___2'(O, H)
18330          ;   true
18331          )
18332        ),
18333        'known/1_1_$special_=\\=/2'(D, S),
18334        (   H=suspension(_, active, _, K, _, _, _)
18335        ->  setarg(2, H, inactive),
18336            'known/1_1_$special_=</2___2__5__2__20'(T,
18337                                                    B,
18338                                                    U,
18339                                                    D,
18340                                                    G,
18341                                                    V,
18342                                                    F,
18343                                                    S,
18344                                                    H)
18345        ;   true
18346        )
18347    ;   'known/1_1_$special_=</2___2__5__2__20'(T,
18348                                                B,
18349                                                U,
18350                                                D,
18351                                                G,
18352                                                V,
18353                                                F,
18354                                                S,
18355                                                H)
18356    ).
18357'known/1_1_$special_=</2___2__5'(A, B, C) :-
18358    'known/1_1_$special_=</2___2__6'(A, B, C).
18359'known/1_1_$special_=</2___2__6'(A, B, P) :-
18360    (   'chr newvia_2'(A, B, C)
18361    ->  get_attr(C, guard_entailment, D),
18362        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
18363    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
18364                  E)
18365    ),
18366    member(F, E),
18367    F=suspension(_, active, _, _, G),
18368    nonvar(G),
18369    G=(H=<I),
18370    H==A,
18371    I==B,
18372    !,
18373    F=suspension(_, _, _, _, J),
18374    setarg(2, F, removed),
18375    term_variables(J, O),
18376    arg(4, F, K),
18377    (   var(K)
18378    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
18379                  L),
18380        L=[_|M],
18381        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
18382                 M),
18383        (   M=[N|_]
18384        ->  setarg(4, N, _)
18385        ;   true
18386        )
18387    ;   K=[_, _|M],
18388        setarg(2, K, M),
18389        (   M=[N|_]
18390        ->  setarg(4, N, K)
18391        ;   true
18392        )
18393    ),
18394    'detach_known/1_1_$special_\\+/1___1'(O, F),
18395    (   var(P)
18396    ->  true
18397    ;   P=suspension(_, Q, _, _, _, R, S),
18398        setarg(2, P, removed),
18399        (   Q==not_stored_yet
18400        ->  T=[]
18401        ;   term_variables(term(R, S), T),
18402            ( arg(5, P, U),
18403              (   var(U)
18404              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18405                            V),
18406                  V=[_|W],
18407                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18408                           W),
18409                  (   W=[X|_]
18410                  ->  setarg(5, X, _)
18411                  ;   true
18412                  )
18413              ;   U=[_, _|W],
18414                  setarg(2, U, W),
18415                  (   W=[X|_]
18416                  ->  setarg(5, X, U)
18417                  ;   true
18418                  )
18419              )
18420            ),
18421            'detach_known/1_1_$special_=</2___2'(T, P)
18422        )
18423    ),
18424    'known/1_1_$special_fail/0'.
18425'known/1_1_$special_=</2___2__6'(A, B, F) :-
18426    (   'chr newvia_2'(A, B, C)
18427    ->  get_attr(C, guard_entailment, D),
18428        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
18429    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18430                  E)
18431    ),
18432    !,
18433    'known/1_1_$special_=</2___2__6__0__22'(E, A, B, F).
18434'known/1_1_$special_=</2___2__6__0__22'([], A, B, C) :-
18435    'known/1_1_$special_=</2___2__7'(A, B, C).
18436'known/1_1_$special_=</2___2__6__0__22'([A|Z], E, G, O) :-
18437    (   A=suspension(_, active, _, _, B, Y),
18438        nonvar(B),
18439        B=(\+C),
18440        nonvar(C),
18441        C=(D=<F),
18442        D==E,
18443        F==G
18444    ->  ( A=suspension(_, _, _, _, H, I),
18445          setarg(2, A, removed),
18446          term_variables(term(H, I), N),
18447          ( arg(4, A, J),
18448            (   var(J)
18449            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18450                          K),
18451                K=[_|L],
18452                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18453                         L),
18454                (   L=[M|_]
18455                ->  setarg(4, M, _)
18456                ;   true
18457                )
18458            ;   J=[_, _|L],
18459                setarg(2, J, L),
18460                (   L=[M|_]
18461                ->  setarg(4, M, J)
18462                ;   true
18463                )
18464            )
18465          ),
18466          'detach_known/1_1_$special_;/2___2'(N, A)
18467        ),
18468        ( arg(2, O, R),
18469          setarg(2, O, active),
18470          ( arg(4, O, P),
18471            Q is P+1,
18472            setarg(4, O, Q)
18473          ),
18474          (   R==not_stored_yet
18475          ->  O=suspension(_, _, _, _, _, S, T),
18476              term_variables(term(S, T), U),
18477              'chr none_locked'(U),
18478              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18479                          V),
18480                W=[O|V],
18481                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18482                         W),
18483                (   V=[X|_]
18484                ->  setarg(5, X, W)
18485                ;   true
18486                )
18487              ),
18488              'attach_known/1_1_$special_=</2___2'(U, O)
18489          ;   true
18490          )
18491        ),
18492        known(Y),
18493        (   O=suspension(_, active, _, Q, _, _, _)
18494        ->  setarg(2, O, inactive),
18495            'known/1_1_$special_=</2___2__6__0__22'(Z,
18496                                                    E,
18497                                                    G,
18498                                                    O)
18499        ;   true
18500        )
18501    ;   'known/1_1_$special_=</2___2__6__0__22'(Z,
18502                                                E,
18503                                                G,
18504                                                O)
18505    ).
18506'known/1_1_$special_=</2___2__6'(A, B, C) :-
18507    'known/1_1_$special_=</2___2__7'(A, B, C).
18508'known/1_1_$special_=</2___2__7'(A, B, F) :-
18509    (   'chr newvia_2'(A, B, C)
18510    ->  get_attr(C, guard_entailment, D),
18511        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
18512    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18513                  E)
18514    ),
18515    !,
18516    'known/1_1_$special_=</2___2__7__0__23'(E, A, B, F).
18517'known/1_1_$special_=</2___2__7__0__23'([], A, B, C) :-
18518    'known/1_1_$special_=</2___2__8'(A, B, C).
18519'known/1_1_$special_=</2___2__7__0__23'([A|A1], F, H, P) :-
18520    (   A=suspension(_, active, _, _, B, Z),
18521        nonvar(B),
18522        B=(C, _),
18523        nonvar(C),
18524        C=(\+D),
18525        nonvar(D),
18526        D=(E=<G),
18527        E==F,
18528        G==H
18529    ->  ( A=suspension(_, _, _, _, I, J),
18530          setarg(2, A, removed),
18531          term_variables(term(I, J), O),
18532          ( arg(4, A, K),
18533            (   var(K)
18534            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18535                          L),
18536                L=[_|M],
18537                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18538                         M),
18539                (   M=[N|_]
18540                ->  setarg(4, N, _)
18541                ;   true
18542                )
18543            ;   K=[_, _|M],
18544                setarg(2, K, M),
18545                (   M=[N|_]
18546                ->  setarg(4, N, K)
18547                ;   true
18548                )
18549            )
18550          ),
18551          'detach_known/1_1_$special_;/2___2'(O, A)
18552        ),
18553        ( arg(2, P, S),
18554          setarg(2, P, active),
18555          ( arg(4, P, Q),
18556            R is Q+1,
18557            setarg(4, P, R)
18558          ),
18559          (   S==not_stored_yet
18560          ->  P=suspension(_, _, _, _, _, T, U),
18561              term_variables(term(T, U), V),
18562              'chr none_locked'(V),
18563              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18564                          W),
18565                X=[P|W],
18566                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18567                         X),
18568                (   W=[Y|_]
18569                ->  setarg(5, Y, X)
18570                ;   true
18571                )
18572              ),
18573              'attach_known/1_1_$special_=</2___2'(V, P)
18574          ;   true
18575          )
18576        ),
18577        known(Z),
18578        (   P=suspension(_, active, _, R, _, _, _)
18579        ->  setarg(2, P, inactive),
18580            'known/1_1_$special_=</2___2__7__0__23'(A1,
18581                                                    F,
18582                                                    H,
18583                                                    P)
18584        ;   true
18585        )
18586    ;   'known/1_1_$special_=</2___2__7__0__23'(A1,
18587                                                F,
18588                                                H,
18589                                                P)
18590    ).
18591'known/1_1_$special_=</2___2__7'(A, B, C) :-
18592    'known/1_1_$special_=</2___2__8'(A, B, C).
18593'known/1_1_$special_=</2___2__8'(_, _, A) :-
18594    arg(2, A, D),
18595    setarg(2, A, active),
18596    arg(4, A, B),
18597    C is B+1,
18598    setarg(4, A, C),
18599    (   D==not_stored_yet
18600    ->  A=suspension(_, _, _, _, _, E, F),
18601        term_variables(term(E, F), G),
18602        'chr none_locked'(G),
18603        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18604                    H),
18605          I=[A|H],
18606          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18607                   I),
18608          (   H=[J|_]
18609          ->  setarg(5, J, I)
18610          ;   true
18611          )
18612        ),
18613        'attach_known/1_1_$special_=</2___2'(G, A)
18614    ;   true
18615    ).
18616'known/1_1_$special_=:=/2'(A, B) :-
18617    'known/1_1_$special_=:=/2___2__0'(A, B, _).
18618'known/1_1_$special_=:=/2___2__0'(A, B, I) :-
18619    (   'chr newvia_2'(A, B, C)
18620    ->  get_attr(C, guard_entailment, D),
18621        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
18622    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18623                  E)
18624    ),
18625    member(F, E),
18626    F=suspension(_, active, _, _, _, G, H),
18627    G==A,
18628    H==B,
18629    !,
18630    (   var(I)
18631    ->  true
18632    ;   I=suspension(_, J, _, _, _, K, L),
18633        setarg(2, I, removed),
18634        (   J==not_stored_yet
18635        ->  M=[]
18636        ;   term_variables(term(K, L), M),
18637            ( arg(5, I, N),
18638              (   var(N)
18639              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18640                            O),
18641                  O=[_|P],
18642                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18643                           P),
18644                  (   P=[Q|_]
18645                  ->  setarg(5, Q, _)
18646                  ;   true
18647                  )
18648              ;   N=[_, _|P],
18649                  setarg(2, N, P),
18650                  (   P=[Q|_]
18651                  ->  setarg(5, Q, N)
18652                  ;   true
18653                  )
18654              )
18655            ),
18656            'detach_known/1_1_$special_=:=/2___2'(M, I)
18657        )
18658    ).
18659'known/1_1_$special_=:=/2___2__0'(_, _, C) :-
18660    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
18661              A),
18662    member(B, A),
18663    B=suspension(_, active, _),
18664    !,
18665    (   var(C)
18666    ->  true
18667    ;   C=suspension(_, D, _, _, _, E, F),
18668        setarg(2, C, removed),
18669        (   D==not_stored_yet
18670        ->  G=[]
18671        ;   term_variables(term(E, F), G),
18672            ( arg(5, C, H),
18673              (   var(H)
18674              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18675                            I),
18676                  I=[_|J],
18677                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18678                           J),
18679                  (   J=[K|_]
18680                  ->  setarg(5, K, _)
18681                  ;   true
18682                  )
18683              ;   H=[_, _|J],
18684                  setarg(2, H, J),
18685                  (   J=[K|_]
18686                  ->  setarg(5, K, H)
18687                  ;   true
18688                  )
18689              )
18690            ),
18691            'detach_known/1_1_$special_=:=/2___2'(G, C)
18692        )
18693    ).
18694'known/1_1_$special_=:=/2___2__0'(B, A, C) :-
18695    A==B,
18696    !,
18697    (   var(C)
18698    ->  true
18699    ;   C=suspension(_, D, _, _, _, E, F),
18700        setarg(2, C, removed),
18701        (   D==not_stored_yet
18702        ->  G=[]
18703        ;   term_variables(term(E, F), G),
18704            ( arg(5, C, H),
18705              (   var(H)
18706              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18707                            I),
18708                  I=[_|J],
18709                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18710                           J),
18711                  (   J=[K|_]
18712                  ->  setarg(5, K, _)
18713                  ;   true
18714                  )
18715              ;   H=[_, _|J],
18716                  setarg(2, H, J),
18717                  (   J=[K|_]
18718                  ->  setarg(5, K, H)
18719                  ;   true
18720                  )
18721              )
18722            ),
18723            'detach_known/1_1_$special_=:=/2___2'(G, C)
18724        )
18725    ).
18726'known/1_1_$special_=:=/2___2__0'(B, A, C) :-
18727    number(A),
18728    number(B),
18729    B=\=A,
18730    !,
18731    (   var(C)
18732    ->  true
18733    ;   C=suspension(_, D, _, _, _, E, F),
18734        setarg(2, C, removed),
18735        (   D==not_stored_yet
18736        ->  G=[]
18737        ;   term_variables(term(E, F), G),
18738            ( arg(5, C, H),
18739              (   var(H)
18740              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18741                            I),
18742                  I=[_|J],
18743                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18744                           J),
18745                  (   J=[K|_]
18746                  ->  setarg(5, K, _)
18747                  ;   true
18748                  )
18749              ;   H=[_, _|J],
18750                  setarg(2, H, J),
18751                  (   J=[K|_]
18752                  ->  setarg(5, K, H)
18753                  ;   true
18754                  )
18755              )
18756            ),
18757            'detach_known/1_1_$special_=:=/2___2'(G, C)
18758        )
18759    ),
18760    'known/1_1_$special_fail/0'.
18761'known/1_1_$special_=:=/2___2__0'(A, B, P) :-
18762    (   'chr newvia_2'(A, B, C)
18763    ->  get_attr(C, guard_entailment, D),
18764        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _, _)
18765    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
18766                  E)
18767    ),
18768    member(F, E),
18769    F=suspension(_, active, _, _, _, G, H),
18770    G==A,
18771    H==B,
18772    !,
18773    F=suspension(_, _, _, _, _, I, J),
18774    setarg(2, F, removed),
18775    term_variables(term(I, J), O),
18776    arg(5, F, K),
18777    (   var(K)
18778    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
18779                  L),
18780        L=[_|M],
18781        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
18782                 M),
18783        (   M=[N|_]
18784        ->  setarg(5, N, _)
18785        ;   true
18786        )
18787    ;   K=[_, _|M],
18788        setarg(2, K, M),
18789        (   M=[N|_]
18790        ->  setarg(5, N, K)
18791        ;   true
18792        )
18793    ),
18794    'detach_known/1_1_$special_=\\=/2___2'(O, F),
18795    (   var(P)
18796    ->  true
18797    ;   P=suspension(_, Q, _, _, _, R, S),
18798        setarg(2, P, removed),
18799        (   Q==not_stored_yet
18800        ->  T=[]
18801        ;   term_variables(term(R, S), T),
18802            ( arg(5, P, U),
18803              (   var(U)
18804              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18805                            V),
18806                  V=[_|W],
18807                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18808                           W),
18809                  (   W=[X|_]
18810                  ->  setarg(5, X, _)
18811                  ;   true
18812                  )
18813              ;   U=[_, _|W],
18814                  setarg(2, U, W),
18815                  (   W=[X|_]
18816                  ->  setarg(5, X, U)
18817                  ;   true
18818                  )
18819              )
18820            ),
18821            'detach_known/1_1_$special_=:=/2___2'(T, P)
18822        )
18823    ),
18824    'known/1_1_$special_fail/0'.
18825'known/1_1_$special_=:=/2___2__0'(F, A, E) :-
18826    (   'chr newvia_1'(A, B)
18827    ->  get_attr(B, guard_entailment, C),
18828        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D)
18829    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18830                  D)
18831    ),
18832    !,
18833    (   var(E)
18834    ->  E=suspension(G, not_stored_yet, t, 0, _, F, A),
18835        'chr gen_id'(G)
18836    ;   true
18837    ),
18838    'known/1_1_$special_=:=/2___2__0__0__11'(D, F, A, E).
18839'known/1_1_$special_=:=/2___2__0__0__11'([], A, B, C) :-
18840    'known/1_1_$special_=:=/2___2__1'(A, B, C).
18841'known/1_1_$special_=:=/2___2__0__0__11'([A|Q], F, C, D) :-
18842    (   A=suspension(_, active, _, _, _, B, G),
18843        B==C,
18844        ( E=t(193, D, A),
18845          '$novel_production'(D, E),
18846          '$novel_production'(A, E)
18847        ),
18848        F\==G
18849    ->  '$extend_history'(D, E),
18850        ( arg(2, D, J),
18851          setarg(2, D, active),
18852          ( arg(4, D, H),
18853            I is H+1,
18854            setarg(4, D, I)
18855          ),
18856          (   J==not_stored_yet
18857          ->  D=suspension(_, _, _, _, _, K, L),
18858              term_variables(term(K, L), M),
18859              'chr none_locked'(M),
18860              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18861                          N),
18862                O=[D|N],
18863                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18864                         O),
18865                (   N=[P|_]
18866                ->  setarg(5, P, O)
18867                ;   true
18868                )
18869              ),
18870              'attach_known/1_1_$special_=:=/2___2'(M, D)
18871          ;   true
18872          )
18873        ),
18874        'known/1_1_$special_=:=/2'(F, G),
18875        (   D=suspension(_, active, _, I, _, _, _)
18876        ->  setarg(2, D, inactive),
18877            'known/1_1_$special_=:=/2___2__0__0__11'(Q,
18878                                                     F,
18879                                                     C,
18880                                                     D)
18881        ;   true
18882        )
18883    ;   'known/1_1_$special_=:=/2___2__0__0__11'(Q,
18884                                                 F,
18885                                                 C,
18886                                                 D)
18887    ).
18888'known/1_1_$special_=:=/2___2__0'(B, C, A) :-
18889    (   var(A)
18890    ->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
18891        'chr gen_id'(D)
18892    ;   true
18893    ),
18894    'known/1_1_$special_=:=/2___2__1'(B, C, A).
18895'known/1_1_$special_=:=/2___2__1'(A, E, F) :-
18896    (   'chr newvia_1'(A, B)
18897    ->  get_attr(B, guard_entailment, C),
18898        C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D)
18899    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18900                  D)
18901    ),
18902    !,
18903    'known/1_1_$special_=:=/2___2__1__0__12'(D, A, E, F).
18904'known/1_1_$special_=:=/2___2__1__0__12'([], A, B, C) :-
18905    'known/1_1_$special_=:=/2___2__2'(A, B, C).
18906'known/1_1_$special_=:=/2___2__1__0__12'([A|Q], C, G, D) :-
18907    (   A=suspension(_, active, _, _, _, F, B),
18908        B==C,
18909        ( E=t(193, A, D),
18910          '$novel_production'(A, E),
18911          '$novel_production'(D, E)
18912        ),
18913        F\==G
18914    ->  '$extend_history'(D, E),
18915        ( arg(2, D, J),
18916          setarg(2, D, active),
18917          ( arg(4, D, H),
18918            I is H+1,
18919            setarg(4, D, I)
18920          ),
18921          (   J==not_stored_yet
18922          ->  D=suspension(_, _, _, _, _, K, L),
18923              term_variables(term(K, L), M),
18924              'chr none_locked'(M),
18925              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18926                          N),
18927                O=[D|N],
18928                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18929                         O),
18930                (   N=[P|_]
18931                ->  setarg(5, P, O)
18932                ;   true
18933                )
18934              ),
18935              'attach_known/1_1_$special_=:=/2___2'(M, D)
18936          ;   true
18937          )
18938        ),
18939        'known/1_1_$special_=:=/2'(F, G),
18940        (   D=suspension(_, active, _, I, _, _, _)
18941        ->  setarg(2, D, inactive),
18942            'known/1_1_$special_=:=/2___2__1__0__12'(Q,
18943                                                     C,
18944                                                     G,
18945                                                     D)
18946        ;   true
18947        )
18948    ;   'known/1_1_$special_=:=/2___2__1__0__12'(Q,
18949                                                 C,
18950                                                 G,
18951                                                 D)
18952    ).
18953'known/1_1_$special_=:=/2___2__1'(A, B, C) :-
18954    'known/1_1_$special_=:=/2___2__2'(A, B, C).
18955'known/1_1_$special_=:=/2___2__2'(L, K, A) :-
18956    '$novel_production'(A, 194),
18957    !,
18958    '$extend_history'(A, 194),
18959    arg(2, A, D),
18960    setarg(2, A, active),
18961    arg(4, A, B),
18962    C is B+1,
18963    setarg(4, A, C),
18964    (   D==not_stored_yet
18965    ->  A=suspension(_, _, _, _, _, E, F),
18966        term_variables(term(E, F), G),
18967        'chr none_locked'(G),
18968        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18969                    H),
18970          I=[A|H],
18971          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18972                   I),
18973          (   H=[J|_]
18974          ->  setarg(5, J, I)
18975          ;   true
18976          )
18977        ),
18978        'attach_known/1_1_$special_=:=/2___2'(G, A)
18979    ;   true
18980    ),
18981    'known/1_1_$special_=:=/2'(K, L),
18982    (   A=suspension(_, active, _, C, _, _, _)
18983    ->  setarg(2, A, inactive),
18984        'known/1_1_$special_=:=/2___2__3'(L, K, A)
18985    ;   true
18986    ).
18987'known/1_1_$special_=:=/2___2__2'(A, B, C) :-
18988    'known/1_1_$special_=:=/2___2__3'(A, B, C).
18989'known/1_1_$special_=:=/2___2__3'(A, B, P) :-
18990    (   'chr newvia_2'(A, B, C)
18991    ->  get_attr(C, guard_entailment, D),
18992        D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
18993    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
18994                  E)
18995    ),
18996    member(F, E),
18997    F=suspension(_, active, _, _, G),
18998    nonvar(G),
18999    G=(H=:=I),
19000    H==A,
19001    I==B,
19002    !,
19003    F=suspension(_, _, _, _, J),
19004    setarg(2, F, removed),
19005    term_variables(J, O),
19006    arg(4, F, K),
19007    (   var(K)
19008    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
19009                  L),
19010        L=[_|M],
19011        b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
19012                 M),
19013        (   M=[N|_]
19014        ->  setarg(4, N, _)
19015        ;   true
19016        )
19017    ;   K=[_, _|M],
19018        setarg(2, K, M),
19019        (   M=[N|_]
19020        ->  setarg(4, N, K)
19021        ;   true
19022        )
19023    ),
19024    'detach_known/1_1_$special_\\+/1___1'(O, F),
19025    (   var(P)
19026    ->  true
19027    ;   P=suspension(_, Q, _, _, _, R, S),
19028        setarg(2, P, removed),
19029        (   Q==not_stored_yet
19030        ->  T=[]
19031        ;   term_variables(term(R, S), T),
19032            ( arg(5, P, U),
19033              (   var(U)
19034              ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
19035                            V),
19036                  V=[_|W],
19037                  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
19038                           W),
19039                  (   W=[X|_]
19040                  ->  setarg(5, X, _)
19041                  ;   true
19042                  )
19043              ;   U=[_, _|W],
19044                  setarg(2, U, W),
19045                  (   W=[X|_]
19046                  ->  setarg(5, X, U)
19047                  ;   true
19048                  )
19049              )
19050            ),
19051            'detach_known/1_1_$special_=:=/2___2'(T, P)
19052        )
19053    ),
19054    'known/1_1_$special_fail/0'.
19055'known/1_1_$special_=:=/2___2__3'(A, B, F) :-
19056    (   'chr newvia_2'(A, B, C)
19057    ->  get_attr(C, guard_entailment, D),
19058        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
19059    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
19060                  E)
19061    ),
19062    !,
19063    'known/1_1_$special_=:=/2___2__3__0__15'(E, A, B, F).
19064'known/1_1_$special_=:=/2___2__3__0__15'([], A, B, C) :-
19065    'known/1_1_$special_=:=/2___2__4'(A, B, C).
19066'known/1_1_$special_=:=/2___2__3__0__15'([A|Z], E, G, O) :-
19067    (   A=suspension(_, active, _, _, B, Y),
19068        nonvar(B),
19069        B=(\+C),
19070        nonvar(C),
19071        C=(D=:=F),
19072        D==E,
19073        F==G
19074    ->  ( A=suspension(_, _, _, _, H, I),
19075          setarg(2, A, removed),
19076          term_variables(term(H, I), N),
19077          ( arg(4, A, J),
19078            (   var(J)
19079            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
19080                          K),
19081                K=[_|L],
19082                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
19083                         L),
19084                (   L=[M|_]
19085                ->  setarg(4, M, _)
19086                ;   true
19087                )
19088            ;   J=[_, _|L],
19089                setarg(2, J, L),
19090                (   L=[M|_]
19091                ->  setarg(4, M, J)
19092                ;   true
19093                )
19094            )
19095          ),
19096          'detach_known/1_1_$special_;/2___2'(N, A)
19097        ),
19098        ( arg(2, O, R),
19099          setarg(2, O, active),
19100          ( arg(4, O, P),
19101            Q is P+1,
19102            setarg(4, O, Q)
19103          ),
19104          (   R==not_stored_yet
19105          ->  O=suspension(_, _, _, _, _, S, T),
19106              term_variables(term(S, T), U),
19107              'chr none_locked'(U),
19108              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
19109                          V),
19110                W=[O|V],
19111                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
19112                         W),
19113                (   V=[X|_]
19114                ->  setarg(5, X, W)
19115                ;   true
19116                )
19117              ),
19118              'attach_known/1_1_$special_=:=/2___2'(U, O)
19119          ;   true
19120          )
19121        ),
19122        known(Y),
19123        (   O=suspension(_, active, _, Q, _, _, _)
19124        ->  setarg(2, O, inactive),
19125            'known/1_1_$special_=:=/2___2__3__0__15'(Z,
19126                                                     E,
19127                                                     G,
19128                                                     O)
19129        ;   true
19130        )
19131    ;   'known/1_1_$special_=:=/2___2__3__0__15'(Z,
19132                                                 E,
19133                                                 G,
19134                                                 O)
19135    ).
19136'known/1_1_$special_=:=/2___2__3'(A, B, C) :-
19137    'known/1_1_$special_=:=/2___2__4'(A, B, C).
19138'known/1_1_$special_=:=/2___2__4'(A, B, F) :-
19139    (   'chr newvia_2'(A, B, C)
19140    ->  get_attr(C, guard_entailment, D),
19141        D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
19142    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
19143                  E)
19144    ),
19145    !,
19146    'known/1_1_$special_=:=/2___2__4__0__16'(E, A, B, F).
19147'known/1_1_$special_=:=/2___2__4__0__16'([], A, B, C) :-
19148    'known/1_1_$special_=:=/2___2__5'(A, B, C).
19149'known/1_1_$special_=:=/2___2__4__0__16'([A|A1], F, H, P) :-
19150    (   A=suspension(_, active, _, _, B, Z),
19151        nonvar(B),
19152        B=(C, _),
19153        nonvar(C),
19154        C=(\+D),
19155        nonvar(D),
19156        D=(E=:=G),
19157        E==F,
19158        G==H
19159    ->  ( A=suspension(_, _, _, _, I, J),
19160          setarg(2, A, removed),
19161          term_variables(term(I, J), O),
19162          ( arg(4, A, K),
19163            (   var(K)
19164            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
19165                          L),
19166                L=[_|M],
19167                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
19168                         M),
19169                (   M=[N|_]
19170                ->  setarg(4, N, _)
19171                ;   true
19172                )
19173            ;   K=[_, _|M],
19174                setarg(2, K, M),
19175                (   M=[N|_]
19176                ->  setarg(4, N, K)
19177                ;   true
19178                )
19179            )
19180          ),
19181          'detach_known/1_1_$special_;/2___2'(O, A)
19182        ),
19183        ( arg(2, P, S),
19184          setarg(2, P, active),
19185          ( arg(4, P, Q),
19186            R is Q+1,
19187            setarg(4, P, R)
19188          ),
19189          (   S==not_stored_yet
19190          ->  P=suspension(_, _, _, _, _, T, U),
19191              term_variables(term(T, U), V),
19192              'chr none_locked'(V),
19193              ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
19194                          W),
19195                X=[P|W],
19196                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
19197                         X),
19198                (   W=[Y|_]
19199                ->  setarg(5, Y, X)
19200                ;   true
19201                )
19202              ),
19203              'attach_known/1_1_$special_=:=/2___2'(V, P)
19204          ;   true
19205          )
19206        ),
19207        known(Z),
19208        (   P=suspension(_, active, _, R, _, _, _)
19209        ->  setarg(2, P, inactive),
19210            'known/1_1_$special_=:=/2___2__4__0__16'(A1,
19211                                                     F,
19212                                                     H,
19213                                                     P)
19214        ;   true
19215        )
19216    ;   'known/1_1_$special_=:=/2___2__4__0__16'(A1,
19217                                                 F,
19218                                                 H,
19219                                                 P)
19220    ).
19221'known/1_1_$special_=:=/2___2__4'(A, B, C) :-
19222    'known/1_1_$special_=:=/2___2__5'(A, B, C).
19223'known/1_1_$special_=:=/2___2__5'(_, _, A) :-
19224    arg(2, A, D),
19225    setarg(2, A, active),
19226    arg(4, A, B),
19227    C is B+1,
19228    setarg(4, A, C),
19229    (   D==not_stored_yet
19230    ->  A=suspension(_, _, _, _, _, E, F),
19231        term_variables(term(E, F), G),
19232        'chr none_locked'(G),
19233        ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
19234                    H),
19235          I=[A|H],
19236          b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
19237                   I),
19238          (   H=[J|_]
19239          ->  setarg(5, J, I)
19240          ;   true
19241          )
19242        ),
19243        'attach_known/1_1_$special_=:=/2___2'(G, A)
19244    ;   true
19245    ).
19246'known/1_1_$special_fail/0' :-
19247    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
19248              A),
19249    member(B, A),
19250    B=suspension(_, active, _),
19251    !.
19252'known/1_1_$special_fail/0' :-
19253    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
19254              A),
19255    !,
19256    'known/1_1_$special_fail/0___0__0__0__24'(A).
19257'known/1_1_$special_fail/0___0__0__0__24'([]) :-
19258    'known/1_1_$special_fail/0___0__1'.
19259'known/1_1_$special_fail/0___0__0__0__24'([A|I]) :-
19260    (   A=suspension(_, active, _, _, _, _)
19261    ->  ( A=suspension(_, _, _, _, B, C),
19262          setarg(2, A, removed),
19263          term_variables(term(B, C), H),
19264          ( arg(4, A, D),
19265            (   var(D)
19266            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
19267                          E),
19268                E=[_|F],
19269                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
19270                         F),
19271                (   F=[G|_]
19272                ->  setarg(4, G, _)
19273                ;   true
19274                )
19275            ;   D=[_, _|F],
19276                setarg(2, D, F),
19277                (   F=[G|_]
19278                ->  setarg(4, G, D)
19279                ;   true
19280                )
19281            )
19282          ),
19283          'detach_known/1_1_$special_;/2___2'(H, A)
19284        ),
19285        'known/1_1_$special_fail/0___0__0__0__24'(I)
19286    ;   'known/1_1_$special_fail/0___0__0__0__24'(I)
19287    ).
19288'known/1_1_$special_fail/0' :-
19289    'known/1_1_$special_fail/0___0__1'.
19290'known/1_1_$special_fail/0___0__1' :-
19291    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
19292              A),
19293    !,
19294    'known/1_1_$special_fail/0___0__1__0__25'(A).
19295'known/1_1_$special_fail/0___0__1__0__25'([]) :-
19296    'known/1_1_$special_fail/0___0__2'.
19297'known/1_1_$special_fail/0___0__1__0__25'([A|H]) :-
19298    (   A=suspension(_, active, _, _, _)
19299    ->  ( A=suspension(_, _, _, _, B),
19300          setarg(2, A, removed),
19301          term_variables(B, G),
19302          ( arg(4, A, C),
19303            (   var(C)
19304            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
19305                          D),
19306                D=[_|E],
19307                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
19308                         E),
19309                (   E=[F|_]
19310                ->  setarg(4, F, _)
19311                ;   true
19312                )
19313            ;   C=[_, _|E],
19314                setarg(2, C, E),
19315                (   E=[F|_]
19316                ->  setarg(4, F, C)
19317                ;   true
19318                )
19319            )
19320          ),
19321          'detach_known/1_1_$special_nonvar/1___1'(G, A)
19322        ),
19323        'known/1_1_$special_fail/0___0__1__0__25'(H)
19324    ;   'known/1_1_$special_fail/0___0__1__0__25'(H)
19325    ).
19326'known/1_1_$special_fail/0___0__1' :-
19327    'known/1_1_$special_fail/0___0__2'.
19328'known/1_1_$special_fail/0___0__2' :-
19329    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
19330              A),
19331    !,
19332    'known/1_1_$special_fail/0___0__2__0__26'(A).
19333'known/1_1_$special_fail/0___0__2__0__26'([]) :-
19334    'known/1_1_$special_fail/0___0__3'.
19335'known/1_1_$special_fail/0___0__2__0__26'([A|H]) :-
19336    (   A=suspension(_, active, _, _, _)
19337    ->  ( A=suspension(_, _, _, _, B),
19338          setarg(2, A, removed),
19339          term_variables(B, G),
19340          ( arg(4, A, C),
19341            (   var(C)
19342            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
19343                          D),
19344                D=[_|E],
19345                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
19346                         E),
19347                (   E=[F|_]
19348                ->  setarg(4, F, _)
19349                ;   true
19350                )
19351            ;   C=[_, _|E],
19352                setarg(2, C, E),
19353                (   E=[F|_]
19354                ->  setarg(4, F, C)
19355                ;   true
19356                )
19357            )
19358          ),
19359          'detach_known/1_1_$special_var/1___1'(G, A)
19360        ),
19361        'known/1_1_$special_fail/0___0__2__0__26'(H)
19362    ;   'known/1_1_$special_fail/0___0__2__0__26'(H)
19363    ).
19364'known/1_1_$special_fail/0___0__2' :-
19365    'known/1_1_$special_fail/0___0__3'.
19366'known/1_1_$special_fail/0___0__3' :-
19367    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
19368              A),
19369    !,
19370    'known/1_1_$special_fail/0___0__3__0__27'(A).
19371'known/1_1_$special_fail/0___0__3__0__27'([]) :-
19372    'known/1_1_$special_fail/0___0__4'.
19373'known/1_1_$special_fail/0___0__3__0__27'([A|H]) :-
19374    (   A=suspension(_, active, _, _, _, _)
19375    ->  ( A=suspension(_, _, _, _, _, B),
19376          setarg(2, A, removed),
19377          term_variables(B, G),
19378          ( arg(5, A, C),
19379            (   var(C)
19380            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
19381                          D),
19382                D=[_|E],
19383                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
19384                         E),
19385                (   E=[F|_]
19386                ->  setarg(5, F, _)
19387                ;   true
19388                )
19389            ;   C=[_, _|E],
19390                setarg(2, C, E),
19391                (   E=[F|_]
19392                ->  setarg(5, F, C)
19393                ;   true
19394                )
19395            )
19396          ),
19397          'detach_known/1_1_$special_atom/1___1'(G, A)
19398        ),
19399        'known/1_1_$special_fail/0___0__3__0__27'(H)
19400    ;   'known/1_1_$special_fail/0___0__3__0__27'(H)
19401    ).
19402'known/1_1_$special_fail/0___0__3' :-
19403    'known/1_1_$special_fail/0___0__4'.
19404'known/1_1_$special_fail/0___0__4' :-
19405    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
19406              A),
19407    !,
19408    'known/1_1_$special_fail/0___0__4__0__28'(A).
19409'known/1_1_$special_fail/0___0__4__0__28'([]) :-
19410    'known/1_1_$special_fail/0___0__5'.
19411'known/1_1_$special_fail/0___0__4__0__28'([A|H]) :-
19412    (   A=suspension(_, active, _, _, _, _)
19413    ->  ( A=suspension(_, _, _, _, _, B),
19414          setarg(2, A, removed),
19415          term_variables(B, G),
19416          ( arg(5, A, C),
19417            (   var(C)
19418            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
19419                          D),
19420                D=[_|E],
19421                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
19422                         E),
19423                (   E=[F|_]
19424                ->  setarg(5, F, _)
19425                ;   true
19426                )
19427            ;   C=[_, _|E],
19428                setarg(2, C, E),
19429                (   E=[F|_]
19430                ->  setarg(5, F, C)
19431                ;   true
19432                )
19433            )
19434          ),
19435          'detach_known/1_1_$special_atomic/1___1'(G, A)
19436        ),
19437        'known/1_1_$special_fail/0___0__4__0__28'(H)
19438    ;   'known/1_1_$special_fail/0___0__4__0__28'(H)
19439    ).
19440'known/1_1_$special_fail/0___0__4' :-
19441    'known/1_1_$special_fail/0___0__5'.
19442'known/1_1_$special_fail/0___0__5' :-
19443    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
19444              A),
19445    !,
19446    'known/1_1_$special_fail/0___0__5__0__29'(A).
19447'known/1_1_$special_fail/0___0__5__0__29'([]) :-
19448    'known/1_1_$special_fail/0___0__6'.
19449'known/1_1_$special_fail/0___0__5__0__29'([A|H]) :-
19450    (   A=suspension(_, active, _, _, _, _)
19451    ->  ( A=suspension(_, _, _, _, _, B),
19452          setarg(2, A, removed),
19453          term_variables(B, G),
19454          ( arg(5, A, C),
19455            (   var(C)
19456            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
19457                          D),
19458                D=[_|E],
19459                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
19460                         E),
19461                (   E=[F|_]
19462                ->  setarg(5, F, _)
19463                ;   true
19464                )
19465            ;   C=[_, _|E],
19466                setarg(2, C, E),
19467                (   E=[F|_]
19468                ->  setarg(5, F, C)
19469                ;   true
19470                )
19471            )
19472          ),
19473          'detach_known/1_1_$special_compound/1___1'(G, A)
19474        ),
19475        'known/1_1_$special_fail/0___0__5__0__29'(H)
19476    ;   'known/1_1_$special_fail/0___0__5__0__29'(H)
19477    ).
19478'known/1_1_$special_fail/0___0__5' :-
19479    'known/1_1_$special_fail/0___0__6'.
19480'known/1_1_$special_fail/0___0__6' :-
19481    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
19482              A),
19483    !,
19484    'known/1_1_$special_fail/0___0__6__0__30'(A).
19485'known/1_1_$special_fail/0___0__6__0__30'([]) :-
19486    'known/1_1_$special_fail/0___0__7'.
19487'known/1_1_$special_fail/0___0__6__0__30'([A|H]) :-
19488    (   A=suspension(_, active, _, _, _, _)
19489    ->  ( A=suspension(_, _, _, _, _, B),
19490          setarg(2, A, removed),
19491          term_variables(B, G),
19492          ( arg(5, A, C),
19493            (   var(C)
19494            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
19495                          D),
19496                D=[_|E],
19497                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
19498                         E),
19499                (   E=[F|_]
19500                ->  setarg(5, F, _)
19501                ;   true
19502                )
19503            ;   C=[_, _|E],
19504                setarg(2, C, E),
19505                (   E=[F|_]
19506                ->  setarg(5, F, C)
19507                ;   true
19508                )
19509            )
19510          ),
19511          'detach_known/1_1_$special_ground/1___1'(G, A)
19512        ),
19513        'known/1_1_$special_fail/0___0__6__0__30'(H)
19514    ;   'known/1_1_$special_fail/0___0__6__0__30'(H)
19515    ).
19516'known/1_1_$special_fail/0___0__6' :-
19517    'known/1_1_$special_fail/0___0__7'.
19518'known/1_1_$special_fail/0___0__7' :-
19519    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
19520              A),
19521    !,
19522    'known/1_1_$special_fail/0___0__7__0__31'(A).
19523'known/1_1_$special_fail/0___0__7__0__31'([]) :-
19524    'known/1_1_$special_fail/0___0__8'.
19525'known/1_1_$special_fail/0___0__7__0__31'([A|H]) :-
19526    (   A=suspension(_, active, _, _, _, _)
19527    ->  ( A=suspension(_, _, _, _, _, B),
19528          setarg(2, A, removed),
19529          term_variables(B, G),
19530          ( arg(5, A, C),
19531            (   var(C)
19532            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
19533                          D),
19534                D=[_|E],
19535                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
19536                         E),
19537                (   E=[F|_]
19538                ->  setarg(5, F, _)
19539                ;   true
19540                )
19541            ;   C=[_, _|E],
19542                setarg(2, C, E),
19543                (   E=[F|_]
19544                ->  setarg(5, F, C)
19545                ;   true
19546                )
19547            )
19548          ),
19549          'detach_known/1_1_$special_integer/1___1'(G, A)
19550        ),
19551        'known/1_1_$special_fail/0___0__7__0__31'(H)
19552    ;   'known/1_1_$special_fail/0___0__7__0__31'(H)
19553    ).
19554'known/1_1_$special_fail/0___0__7' :-
19555    'known/1_1_$special_fail/0___0__8'.
19556'known/1_1_$special_fail/0___0__8' :-
19557    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
19558              A),
19559    !,
19560    'known/1_1_$special_fail/0___0__8__0__32'(A).
19561'known/1_1_$special_fail/0___0__8__0__32'([]) :-
19562    'known/1_1_$special_fail/0___0__9'.
19563'known/1_1_$special_fail/0___0__8__0__32'([A|H]) :-
19564    (   A=suspension(_, active, _, _, _, _)
19565    ->  ( A=suspension(_, _, _, _, _, B),
19566          setarg(2, A, removed),
19567          term_variables(B, G),
19568          ( arg(5, A, C),
19569            (   var(C)
19570            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
19571                          D),
19572                D=[_|E],
19573                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
19574                         E),
19575                (   E=[F|_]
19576                ->  setarg(5, F, _)
19577                ;   true
19578                )
19579            ;   C=[_, _|E],
19580                setarg(2, C, E),
19581                (   E=[F|_]
19582                ->  setarg(5, F, C)
19583                ;   true
19584                )
19585            )
19586          ),
19587          'detach_known/1_1_$special_float/1___1'(G, A)
19588        ),
19589        'known/1_1_$special_fail/0___0__8__0__32'(H)
19590    ;   'known/1_1_$special_fail/0___0__8__0__32'(H)
19591    ).
19592'known/1_1_$special_fail/0___0__8' :-
19593    'known/1_1_$special_fail/0___0__9'.
19594'known/1_1_$special_fail/0___0__9' :-
19595    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
19596              A),
19597    !,
19598    'known/1_1_$special_fail/0___0__9__0__33'(A).
19599'known/1_1_$special_fail/0___0__9__0__33'([]) :-
19600    'known/1_1_$special_fail/0___0__10'.
19601'known/1_1_$special_fail/0___0__9__0__33'([A|H]) :-
19602    (   A=suspension(_, active, _, _, _, _)
19603    ->  ( A=suspension(_, _, _, _, _, B),
19604          setarg(2, A, removed),
19605          term_variables(B, G),
19606          ( arg(5, A, C),
19607            (   var(C)
19608            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
19609                          D),
19610                D=[_|E],
19611                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
19612                         E),
19613                (   E=[F|_]
19614                ->  setarg(5, F, _)
19615                ;   true
19616                )
19617            ;   C=[_, _|E],
19618                setarg(2, C, E),
19619                (   E=[F|_]
19620                ->  setarg(5, F, C)
19621                ;   true
19622                )
19623            )
19624          ),
19625          'detach_known/1_1_$special_number/1___1'(G, A)
19626        ),
19627        'known/1_1_$special_fail/0___0__9__0__33'(H)
19628    ;   'known/1_1_$special_fail/0___0__9__0__33'(H)
19629    ).
19630'known/1_1_$special_fail/0___0__9' :-
19631    'known/1_1_$special_fail/0___0__10'.
19632'known/1_1_$special_fail/0___0__10' :-
19633    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
19634              A),
19635    !,
19636    'known/1_1_$special_fail/0___0__10__0__34'(A).
19637'known/1_1_$special_fail/0___0__10__0__34'([]) :-
19638    'known/1_1_$special_fail/0___0__11'.
19639'known/1_1_$special_fail/0___0__10__0__34'([A|I]) :-
19640    (   A=suspension(_, active, _, _, _, _, _)
19641    ->  ( A=suspension(_, _, _, _, _, B, C),
19642          setarg(2, A, removed),
19643          term_variables(term(B, C), H),
19644          ( arg(5, A, D),
19645            (   var(D)
19646            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
19647                          E),
19648                E=[_|F],
19649                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
19650                         F),
19651                (   F=[G|_]
19652                ->  setarg(5, G, _)
19653                ;   true
19654                )
19655            ;   D=[_, _|F],
19656                setarg(2, D, F),
19657                (   F=[G|_]
19658                ->  setarg(5, G, D)
19659                ;   true
19660                )
19661            )
19662          ),
19663          'detach_known/1_1_$special_=\\=/2___2'(H, A)
19664        ),
19665        'known/1_1_$special_fail/0___0__10__0__34'(I)
19666    ;   'known/1_1_$special_fail/0___0__10__0__34'(I)
19667    ).
19668'known/1_1_$special_fail/0___0__10' :-
19669    'known/1_1_$special_fail/0___0__11'.
19670'known/1_1_$special_fail/0___0__11' :-
19671    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
19672              A),
19673    !,
19674    'known/1_1_$special_fail/0___0__11__0__35'(A).
19675'known/1_1_$special_fail/0___0__11__0__35'([]) :-
19676    'known/1_1_$special_fail/0___0__12'.
19677'known/1_1_$special_fail/0___0__11__0__35'([A|H]) :-
19678    (   A=suspension(_, active, _, _, _)
19679    ->  ( A=suspension(_, _, _, _, B),
19680          setarg(2, A, removed),
19681          term_variables(B, G),
19682          ( arg(4, A, C),
19683            (   var(C)
19684            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
19685                          D),
19686                D=[_|E],
19687                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
19688                         E),
19689                (   E=[F|_]
19690                ->  setarg(4, F, _)
19691                ;   true
19692                )
19693            ;   C=[_, _|E],
19694                setarg(2, C, E),
19695                (   E=[F|_]
19696                ->  setarg(4, F, C)
19697                ;   true
19698                )
19699            )
19700          ),
19701          'detach_known/1_1_$special_\\+/1___1'(G, A)
19702        ),
19703        'known/1_1_$special_fail/0___0__11__0__35'(H)
19704    ;   'known/1_1_$special_fail/0___0__11__0__35'(H)
19705    ).
19706'known/1_1_$special_fail/0___0__11' :-
19707    'known/1_1_$special_fail/0___0__12'.
19708'known/1_1_$special_fail/0___0__12' :-
19709    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
19710              A),
19711    !,
19712    'known/1_1_$special_fail/0___0__12__0__36'(A).
19713'known/1_1_$special_fail/0___0__12__0__36'([]) :-
19714    'known/1_1_$special_fail/0___0__13'.
19715'known/1_1_$special_fail/0___0__12__0__36'([A|J]) :-
19716    (   A=suspension(_, active, _, _, _, _, _)
19717    ->  ( A=suspension(_, _, _, _, B, C, D),
19718          setarg(2, A, removed),
19719          term_variables(term(B, C, D), I),
19720          ( arg(4, A, E),
19721            (   var(E)
19722            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
19723                          F),
19724                F=[_|G],
19725                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
19726                         G),
19727                (   G=[H|_]
19728                ->  setarg(4, H, _)
19729                ;   true
19730                )
19731            ;   E=[_, _|G],
19732                setarg(2, E, G),
19733                (   G=[H|_]
19734                ->  setarg(4, H, E)
19735                ;   true
19736                )
19737            )
19738          ),
19739          'detach_known/1_1_$special_functor/3___3'(I, A)
19740        ),
19741        'known/1_1_$special_fail/0___0__12__0__36'(J)
19742    ;   'known/1_1_$special_fail/0___0__12__0__36'(J)
19743    ).
19744'known/1_1_$special_fail/0___0__12' :-
19745    'known/1_1_$special_fail/0___0__13'.
19746'known/1_1_$special_fail/0___0__13' :-
19747    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
19748              A),
19749    !,
19750    'known/1_1_$special_fail/0___0__13__0__37'(A).
19751'known/1_1_$special_fail/0___0__13__0__37'([]) :-
19752    'known/1_1_$special_fail/0___0__14'.
19753'known/1_1_$special_fail/0___0__13__0__37'([A|I]) :-
19754    (   A=suspension(_, active, _, _, _, _, _)
19755    ->  ( A=suspension(_, _, _, _, _, B, C),
19756          setarg(2, A, removed),
19757          term_variables(term(B, C), H),
19758          ( arg(5, A, D),
19759            (   var(D)
19760            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
19761                          E),
19762                E=[_|F],
19763                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
19764                         F),
19765                (   F=[G|_]
19766                ->  setarg(5, G, _)
19767                ;   true
19768                )
19769            ;   D=[_, _|F],
19770                setarg(2, D, F),
19771                (   F=[G|_]
19772                ->  setarg(5, G, D)
19773                ;   true
19774                )
19775            )
19776          ),
19777          'detach_known/1_1_$special_\\=/2___2'(H, A)
19778        ),
19779        'known/1_1_$special_fail/0___0__13__0__37'(I)
19780    ;   'known/1_1_$special_fail/0___0__13__0__37'(I)
19781    ).
19782'known/1_1_$special_fail/0___0__13' :-
19783    'known/1_1_$special_fail/0___0__14'.
19784'known/1_1_$special_fail/0___0__14' :-
19785    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
19786              A),
19787    !,
19788    'known/1_1_$special_fail/0___0__14__0__38'(A).
19789'known/1_1_$special_fail/0___0__14__0__38'([]) :-
19790    'known/1_1_$special_fail/0___0__15'.
19791'known/1_1_$special_fail/0___0__14__0__38'([A|I]) :-
19792    (   A=suspension(_, active, _, _, _, _)
19793    ->  ( A=suspension(_, _, _, _, B, C),
19794          setarg(2, A, removed),
19795          term_variables(term(B, C), H),
19796          ( arg(4, A, D),
19797            (   var(D)
19798            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
19799                          E),
19800                E=[_|F],
19801                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
19802                         F),
19803                (   F=[G|_]
19804                ->  setarg(4, G, _)
19805                ;   true
19806                )
19807            ;   D=[_, _|F],
19808                setarg(2, D, F),
19809                (   F=[G|_]
19810                ->  setarg(4, G, D)
19811                ;   true
19812                )
19813            )
19814          ),
19815          'detach_known/1_1_$special_=/2___2'(H, A)
19816        ),
19817        'known/1_1_$special_fail/0___0__14__0__38'(I)
19818    ;   'known/1_1_$special_fail/0___0__14__0__38'(I)
19819    ).
19820'known/1_1_$special_fail/0___0__14' :-
19821    'known/1_1_$special_fail/0___0__15'.
19822'known/1_1_$special_fail/0___0__15' :-
19823    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
19824              A),
19825    !,
19826    'known/1_1_$special_fail/0___0__15__0__40'(A).
19827'known/1_1_$special_fail/0___0__15__0__40'([]) :-
19828    'known/1_1_$special_fail/0___0__16'.
19829'known/1_1_$special_fail/0___0__15__0__40'([A|I]) :-
19830    (   A=suspension(_, active, _, _, _, _, _)
19831    ->  ( A=suspension(_, _, _, _, _, B, C),
19832          setarg(2, A, removed),
19833          term_variables(term(B, C), H),
19834          ( arg(5, A, D),
19835            (   var(D)
19836            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
19837                          E),
19838                E=[_|F],
19839                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
19840                         F),
19841                (   F=[G|_]
19842                ->  setarg(5, G, _)
19843                ;   true
19844                )
19845            ;   D=[_, _|F],
19846                setarg(2, D, F),
19847                (   F=[G|_]
19848                ->  setarg(5, G, D)
19849                ;   true
19850                )
19851            )
19852          ),
19853          'detach_known/1_1_$special_\\==/2___2'(H, A)
19854        ),
19855        'known/1_1_$special_fail/0___0__15__0__40'(I)
19856    ;   'known/1_1_$special_fail/0___0__15__0__40'(I)
19857    ).
19858'known/1_1_$special_fail/0___0__15' :-
19859    'known/1_1_$special_fail/0___0__16'.
19860'known/1_1_$special_fail/0___0__16' :-
19861    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
19862              A),
19863    !,
19864    'known/1_1_$special_fail/0___0__16__0__41'(A).
19865'known/1_1_$special_fail/0___0__16__0__41'([]) :-
19866    'known/1_1_$special_fail/0___0__17'.
19867'known/1_1_$special_fail/0___0__16__0__41'([A|I]) :-
19868    (   A=suspension(_, active, _, _, _, _, _)
19869    ->  ( A=suspension(_, _, _, _, _, B, C),
19870          setarg(2, A, removed),
19871          term_variables(term(B, C), H),
19872          ( arg(5, A, D),
19873            (   var(D)
19874            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
19875                          E),
19876                E=[_|F],
19877                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
19878                         F),
19879                (   F=[G|_]
19880                ->  setarg(5, G, _)
19881                ;   true
19882                )
19883            ;   D=[_, _|F],
19884                setarg(2, D, F),
19885                (   F=[G|_]
19886                ->  setarg(5, G, D)
19887                ;   true
19888                )
19889            )
19890          ),
19891          'detach_known/1_1_$special_==/2___2'(H, A)
19892        ),
19893        'known/1_1_$special_fail/0___0__16__0__41'(I)
19894    ;   'known/1_1_$special_fail/0___0__16__0__41'(I)
19895    ).
19896'known/1_1_$special_fail/0___0__16' :-
19897    'known/1_1_$special_fail/0___0__17'.
19898'known/1_1_$special_fail/0___0__17' :-
19899    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
19900              A),
19901    !,
19902    'known/1_1_$special_fail/0___0__17__0__46'(A).
19903'known/1_1_$special_fail/0___0__17__0__46'([]) :-
19904    'known/1_1_$special_fail/0___0__18'.
19905'known/1_1_$special_fail/0___0__17__0__46'([A|I]) :-
19906    (   A=suspension(_, active, _, _, _, _, _)
19907    ->  ( A=suspension(_, _, _, _, _, B, C),
19908          setarg(2, A, removed),
19909          term_variables(term(B, C), H),
19910          ( arg(5, A, D),
19911            (   var(D)
19912            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
19913                          E),
19914                E=[_|F],
19915                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
19916                         F),
19917                (   F=[G|_]
19918                ->  setarg(5, G, _)
19919                ;   true
19920                )
19921            ;   D=[_, _|F],
19922                setarg(2, D, F),
19923                (   F=[G|_]
19924                ->  setarg(5, G, D)
19925                ;   true
19926                )
19927            )
19928          ),
19929          'detach_known/1_1_$special_=</2___2'(H, A)
19930        ),
19931        'known/1_1_$special_fail/0___0__17__0__46'(I)
19932    ;   'known/1_1_$special_fail/0___0__17__0__46'(I)
19933    ).
19934'known/1_1_$special_fail/0___0__17' :-
19935    'known/1_1_$special_fail/0___0__18'.
19936'known/1_1_$special_fail/0___0__18' :-
19937    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
19938              A),
19939    !,
19940    'known/1_1_$special_fail/0___0__18__0__47'(A).
19941'known/1_1_$special_fail/0___0__18__0__47'([]) :-
19942    'known/1_1_$special_fail/0___0__19'.
19943'known/1_1_$special_fail/0___0__18__0__47'([A|I]) :-
19944    (   A=suspension(_, active, _, _, _, _, _)
19945    ->  ( A=suspension(_, _, _, _, _, B, C),
19946          setarg(2, A, removed),
19947          term_variables(term(B, C), H),
19948          ( arg(5, A, D),
19949            (   var(D)
19950            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
19951                          E),
19952                E=[_|F],
19953                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
19954                         F),
19955                (   F=[G|_]
19956                ->  setarg(5, G, _)
19957                ;   true
19958                )
19959            ;   D=[_, _|F],
19960                setarg(2, D, F),
19961                (   F=[G|_]
19962                ->  setarg(5, G, D)
19963                ;   true
19964                )
19965            )
19966          ),
19967          'detach_known/1_1_$special_=:=/2___2'(H, A)
19968        ),
19969        'known/1_1_$special_fail/0___0__18__0__47'(I)
19970    ;   'known/1_1_$special_fail/0___0__18__0__47'(I)
19971    ).
19972'known/1_1_$special_fail/0___0__18' :-
19973    'known/1_1_$special_fail/0___0__19'.
19974'known/1_1_$special_fail/0___0__19' :-
19975    nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
19976              A),
19977    !,
19978    'known/1_1_$special_fail/0___0__19__0__50'(A).
19979'known/1_1_$special_fail/0___0__19__0__50'([]) :-
19980    'known/1_1_$special_fail/0___0__20'.
19981'known/1_1_$special_fail/0___0__19__0__50'([A|H]) :-
19982    (   A=suspension(_, active, _, _, _)
19983    ->  ( A=suspension(_, _, _, _, B),
19984          setarg(2, A, removed),
19985          term_variables(B, G),
19986          ( arg(4, A, C),
19987            (   var(C)
19988            ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
19989                          D),
19990                D=[_|E],
19991                b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
19992                         E),
19993                (   E=[F|_]
19994                ->  setarg(4, F, _)
19995                ;   true
19996                )
19997            ;   C=[_, _|E],
19998                setarg(2, C, E),
19999                (   E=[F|_]
20000                ->  setarg(4, F, C)
20001                ;   true
20002                )
20003            )
20004          ),
20005          'detach_known/1_1_$default___1'(G, A)
20006        ),
20007        'known/1_1_$special_fail/0___0__19__0__50'(H)
20008    ;   'known/1_1_$special_fail/0___0__19__0__50'(H)
20009    ).
20010'known/1_1_$special_fail/0___0__19' :-
20011    'known/1_1_$special_fail/0___0__20'.
20012'known/1_1_$special_fail/0___0__20' :-
20013    B=suspension(A, active, _),
20014    'chr gen_id'(A),
20015    nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
20016              C),
20017    D=[B|C],
20018    b_setval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
20019             D),
20020    (   C=[E|_]
20021    ->  setarg(3, E, D)
20022    ;   true
20023    ).
20024:- (multifile chr:'$chr_module'/1).20025chr:'$chr_module'(guard_entailment)