View source with raw comments or as raw
    1/*  Generated by CHR bootstrap compiler
    2    From: guard_entailment.chr
    3    Date: Fri Oct  6 13:59:31 2017
    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_runtime).   13:- style_check(- (discontiguous)).   14:- style_check(-singleton).   15:- style_check(-no_effect).   16:- include(chr_op).   17:- use_module(library(dialect/hprolog)).   18:- use_module(builtins).   19:- use_module(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	test(F), !,
   27	cleanup.
   28entails_guard2([]).
   29entails_guard2([A|B]) :-
   30	known(A),
   31	entails_guard2(B).
   32simplify_guards(A, I, B, H, J) :-
   33	copy_term_nat((A, B),  (C, F)),
   34	term_variables(C, D),
   35	variables(D),
   36	sort(C, E),
   37	entails_guard2(E), !,
   38	simplify(F, G),
   39	simplified(B, G, H, I, J), !,
   40	cleanup.
   41simplified([], [], [], A, A).
   42simplified([A|B], [keep|C], [A|D], E, F) :-
   43	simplified(B, C, D, E, F).
   44simplified([_|_], [fail|_], fail, A, A).
   45simplified([A|B], [true|L], [I|M], F, J) :-
   46	builtins:binds_b(A, C),
   47	term_variables(B, D),
   48	intersect_eq(C, D, E), !,
   49	(   E=[]
   50	->  term_variables(F, G),
   51	    intersect_eq(C, G, H), !,
   52	    (   H=[]
   53	    ->  I=true,
   54		J=K
   55	    ;   I=true,
   56		J=(A, K)
   57	    )
   58	;   I=A,
   59	    J=K
   60	),
   61	simplified(B, L, M, F, K).
   62simplify([], []).
   63simplify([A|D], [B|E]) :-
   64	(   \+ try(true, A)
   65	->  B=true
   66	;   builtins:negate_b(A, C),
   67	    (   \+ try(true, C)
   68	    ->  B=fail
   69	    ;   B=keep
   70	    )
   71	),
   72	known(A),
   73	simplify(D, E).
   74try(A, B) :-
   75	(   known(A)
   76	->  true
   77	;   chr_error(internal, 'Entailment Checker: try/2.\n', [])
   78	),
   79	(   test(B)
   80	->  fail
   81	;   true
   82	).
   83add_args_unif([], [], true).
   84add_args_unif([A|C], [B|D],  (A=B, E)) :-
   85	add_args_unif(C, D, E).
   86add_args_nunif([], [], fail).
   87add_args_nunif([A|C], [B|D],  (A\=B;E)) :-
   88	add_args_nunif(C, D, E).
   89add_args_nmatch([], [], fail).
   90add_args_nmatch([A|C], [B|D],  (A\==B;E)) :-
   91	add_args_nmatch(C, D, E).
   92all_unique_vars(A, B) :-
   93	all_unique_vars(A, B, []).
   94all_unique_vars([], _, _).
   95all_unique_vars([A|D], B, C) :-
   96	var(A),
   97	\+ memberchk_eq(A, B),
   98	\+ memberchk_eq(A, C),
   99	all_unique_vars(D, [A|C]).
  100:- use_module(chr(chr_runtime)).  101attach_variables___1([], _).
  102attach_variables___1([A|B1], D) :-
  103	(   get_attr(A, guard_entailment, B)
  104	->  ( B=v(C, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  105	      (   C/\1=:=1
  106	      ->  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)
  107	      ;   A1 is C\/1,
  108		  Z=v(A1, [D], F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  109	      )
  110	    ),
  111	    put_attr(A, guard_entailment, Z)
  112	;   put_attr(A,
  113		     guard_entailment,
  114		     v(1,
  115		       [D],
  116		       [],
  117		       [],
  118		       [],
  119		       [],
  120		       [],
  121		       [],
  122		       [],
  123		       [],
  124		       [],
  125		       [],
  126		       [],
  127		       [],
  128		       [],
  129		       [],
  130		       [],
  131		       [],
  132		       [],
  133		       [],
  134		       [],
  135		       []))
  136	),
  137	attach_variables___1(B1, D).
  138detach_variables___1([], _).
  139detach_variables___1([A|B1], E) :-
  140	(   get_attr(A, guard_entailment, B)
  141	->  B=v(C, D, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  142	    (   C/\1=:=1
  143	    ->  'chr sbag_del_element'(D, E, F),
  144		(   F==[]
  145		->  G is C/\ -2,
  146		    (   G==0
  147		    ->  del_attr(A, guard_entailment)
  148		    ;   put_attr(A,
  149				 guard_entailment,
  150				 v(G,
  151				   [],
  152				   H,
  153				   I,
  154				   J,
  155				   K,
  156				   L,
  157				   M,
  158				   N,
  159				   O,
  160				   P,
  161				   Q,
  162				   R,
  163				   S,
  164				   T,
  165				   U,
  166				   V,
  167				   W,
  168				   X,
  169				   Y,
  170				   Z,
  171				   A1))
  172		    )
  173		;   put_attr(A,
  174			     guard_entailment,
  175			     v(C,
  176			       F,
  177			       H,
  178			       I,
  179			       J,
  180			       K,
  181			       L,
  182			       M,
  183			       N,
  184			       O,
  185			       P,
  186			       Q,
  187			       R,
  188			       S,
  189			       T,
  190			       U,
  191			       V,
  192			       W,
  193			       X,
  194			       Y,
  195			       Z,
  196			       A1))
  197		)
  198	    ;   true
  199	    )
  200	;   true
  201	),
  202	detach_variables___1(B1, E).
  203'attach_known/1_1_$default___1'([], _).
  204'attach_known/1_1_$default___1'([A|B1], E) :-
  205	(   get_attr(A, guard_entailment, B)
  206	->  ( B=v(C, D, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  207	      (   C/\2=:=2
  208	      ->  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)
  209	      ;   A1 is C\/2,
  210		  Z=v(A1, D, [E], G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  211	      )
  212	    ),
  213	    put_attr(A, guard_entailment, Z)
  214	;   put_attr(A,
  215		     guard_entailment,
  216		     v(2,
  217		       [],
  218		       [E],
  219		       [],
  220		       [],
  221		       [],
  222		       [],
  223		       [],
  224		       [],
  225		       [],
  226		       [],
  227		       [],
  228		       [],
  229		       [],
  230		       [],
  231		       [],
  232		       [],
  233		       [],
  234		       [],
  235		       [],
  236		       [],
  237		       []))
  238	),
  239	'attach_known/1_1_$default___1'(B1, E).
  240'detach_known/1_1_$default___1'([], _).
  241'detach_known/1_1_$default___1'([A|B1], E) :-
  242	(   get_attr(A, guard_entailment, B)
  243	->  B=v(C, H, D, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  244	    (   C/\2=:=2
  245	    ->  'chr sbag_del_element'(D, E, F),
  246		(   F==[]
  247		->  G is C/\ -3,
  248		    (   G==0
  249		    ->  del_attr(A, guard_entailment)
  250		    ;   put_attr(A,
  251				 guard_entailment,
  252				 v(G,
  253				   H,
  254				   [],
  255				   I,
  256				   J,
  257				   K,
  258				   L,
  259				   M,
  260				   N,
  261				   O,
  262				   P,
  263				   Q,
  264				   R,
  265				   S,
  266				   T,
  267				   U,
  268				   V,
  269				   W,
  270				   X,
  271				   Y,
  272				   Z,
  273				   A1))
  274		    )
  275		;   put_attr(A,
  276			     guard_entailment,
  277			     v(C,
  278			       H,
  279			       F,
  280			       I,
  281			       J,
  282			       K,
  283			       L,
  284			       M,
  285			       N,
  286			       O,
  287			       P,
  288			       Q,
  289			       R,
  290			       S,
  291			       T,
  292			       U,
  293			       V,
  294			       W,
  295			       X,
  296			       Y,
  297			       Z,
  298			       A1))
  299		)
  300	    ;   true
  301	    )
  302	;   true
  303	),
  304	'detach_known/1_1_$default___1'(B1, E).
  305'attach_known/1_1_$special_;/2___2'([], _).
  306'attach_known/1_1_$special_;/2___2'([A|B1], F) :-
  307	(   get_attr(A, guard_entailment, B)
  308	->  ( B=v(C, D, E, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  309	      (   C/\4=:=4
  310	      ->  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)
  311	      ;   A1 is C\/4,
  312		  Z=v(A1, D, E, [F], H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  313	      )
  314	    ),
  315	    put_attr(A, guard_entailment, Z)
  316	;   put_attr(A,
  317		     guard_entailment,
  318		     v(4,
  319		       [],
  320		       [],
  321		       [F],
  322		       [],
  323		       [],
  324		       [],
  325		       [],
  326		       [],
  327		       [],
  328		       [],
  329		       [],
  330		       [],
  331		       [],
  332		       [],
  333		       [],
  334		       [],
  335		       [],
  336		       [],
  337		       [],
  338		       [],
  339		       []))
  340	),
  341	'attach_known/1_1_$special_;/2___2'(B1, F).
  342'detach_known/1_1_$special_;/2___2'([], _).
  343'detach_known/1_1_$special_;/2___2'([A|B1], E) :-
  344	(   get_attr(A, guard_entailment, B)
  345	->  B=v(C, H, I, D, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  346	    (   C/\4=:=4
  347	    ->  'chr sbag_del_element'(D, E, F),
  348		(   F==[]
  349		->  G is C/\ -5,
  350		    (   G==0
  351		    ->  del_attr(A, guard_entailment)
  352		    ;   put_attr(A,
  353				 guard_entailment,
  354				 v(G,
  355				   H,
  356				   I,
  357				   [],
  358				   J,
  359				   K,
  360				   L,
  361				   M,
  362				   N,
  363				   O,
  364				   P,
  365				   Q,
  366				   R,
  367				   S,
  368				   T,
  369				   U,
  370				   V,
  371				   W,
  372				   X,
  373				   Y,
  374				   Z,
  375				   A1))
  376		    )
  377		;   put_attr(A,
  378			     guard_entailment,
  379			     v(C,
  380			       H,
  381			       I,
  382			       F,
  383			       J,
  384			       K,
  385			       L,
  386			       M,
  387			       N,
  388			       O,
  389			       P,
  390			       Q,
  391			       R,
  392			       S,
  393			       T,
  394			       U,
  395			       V,
  396			       W,
  397			       X,
  398			       Y,
  399			       Z,
  400			       A1))
  401		)
  402	    ;   true
  403	    )
  404	;   true
  405	),
  406	'detach_known/1_1_$special_;/2___2'(B1, E).
  407'attach_known/1_1_$special_nonvar/1___1'([], _).
  408'attach_known/1_1_$special_nonvar/1___1'([A|B1], G) :-
  409	(   get_attr(A, guard_entailment, B)
  410	->  ( B=v(C, D, E, F, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  411	      (   C/\8=:=8
  412	      ->  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)
  413	      ;   A1 is C\/8,
  414		  Z=v(A1, D, E, F, [G], I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  415	      )
  416	    ),
  417	    put_attr(A, guard_entailment, Z)
  418	;   put_attr(A,
  419		     guard_entailment,
  420		     v(8,
  421		       [],
  422		       [],
  423		       [],
  424		       [G],
  425		       [],
  426		       [],
  427		       [],
  428		       [],
  429		       [],
  430		       [],
  431		       [],
  432		       [],
  433		       [],
  434		       [],
  435		       [],
  436		       [],
  437		       [],
  438		       [],
  439		       [],
  440		       [],
  441		       []))
  442	),
  443	'attach_known/1_1_$special_nonvar/1___1'(B1, G).
  444'detach_known/1_1_$special_nonvar/1___1'([], _).
  445'detach_known/1_1_$special_nonvar/1___1'([A|B1], E) :-
  446	(   get_attr(A, guard_entailment, B)
  447	->  B=v(C, H, I, J, D, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  448	    (   C/\8=:=8
  449	    ->  'chr sbag_del_element'(D, E, F),
  450		(   F==[]
  451		->  G is C/\ -9,
  452		    (   G==0
  453		    ->  del_attr(A, guard_entailment)
  454		    ;   put_attr(A,
  455				 guard_entailment,
  456				 v(G,
  457				   H,
  458				   I,
  459				   J,
  460				   [],
  461				   K,
  462				   L,
  463				   M,
  464				   N,
  465				   O,
  466				   P,
  467				   Q,
  468				   R,
  469				   S,
  470				   T,
  471				   U,
  472				   V,
  473				   W,
  474				   X,
  475				   Y,
  476				   Z,
  477				   A1))
  478		    )
  479		;   put_attr(A,
  480			     guard_entailment,
  481			     v(C,
  482			       H,
  483			       I,
  484			       J,
  485			       F,
  486			       K,
  487			       L,
  488			       M,
  489			       N,
  490			       O,
  491			       P,
  492			       Q,
  493			       R,
  494			       S,
  495			       T,
  496			       U,
  497			       V,
  498			       W,
  499			       X,
  500			       Y,
  501			       Z,
  502			       A1))
  503		)
  504	    ;   true
  505	    )
  506	;   true
  507	),
  508	'detach_known/1_1_$special_nonvar/1___1'(B1, E).
  509'attach_known/1_1_$special_var/1___1'([], _).
  510'attach_known/1_1_$special_var/1___1'([A|B1], H) :-
  511	(   get_attr(A, guard_entailment, B)
  512	->  ( B=v(C, D, E, F, G, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  513	      (   C/\16=:=16
  514	      ->  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)
  515	      ;   A1 is C\/16,
  516		  Z=v(A1, D, E, F, G, [H], J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  517	      )
  518	    ),
  519	    put_attr(A, guard_entailment, Z)
  520	;   put_attr(A,
  521		     guard_entailment,
  522		     v(16,
  523		       [],
  524		       [],
  525		       [],
  526		       [],
  527		       [H],
  528		       [],
  529		       [],
  530		       [],
  531		       [],
  532		       [],
  533		       [],
  534		       [],
  535		       [],
  536		       [],
  537		       [],
  538		       [],
  539		       [],
  540		       [],
  541		       [],
  542		       [],
  543		       []))
  544	),
  545	'attach_known/1_1_$special_var/1___1'(B1, H).
  546'detach_known/1_1_$special_var/1___1'([], _).
  547'detach_known/1_1_$special_var/1___1'([A|B1], E) :-
  548	(   get_attr(A, guard_entailment, B)
  549	->  B=v(C, H, I, J, K, D, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  550	    (   C/\16=:=16
  551	    ->  'chr sbag_del_element'(D, E, F),
  552		(   F==[]
  553		->  G is C/\ -17,
  554		    (   G==0
  555		    ->  del_attr(A, guard_entailment)
  556		    ;   put_attr(A,
  557				 guard_entailment,
  558				 v(G,
  559				   H,
  560				   I,
  561				   J,
  562				   K,
  563				   [],
  564				   L,
  565				   M,
  566				   N,
  567				   O,
  568				   P,
  569				   Q,
  570				   R,
  571				   S,
  572				   T,
  573				   U,
  574				   V,
  575				   W,
  576				   X,
  577				   Y,
  578				   Z,
  579				   A1))
  580		    )
  581		;   put_attr(A,
  582			     guard_entailment,
  583			     v(C,
  584			       H,
  585			       I,
  586			       J,
  587			       K,
  588			       F,
  589			       L,
  590			       M,
  591			       N,
  592			       O,
  593			       P,
  594			       Q,
  595			       R,
  596			       S,
  597			       T,
  598			       U,
  599			       V,
  600			       W,
  601			       X,
  602			       Y,
  603			       Z,
  604			       A1))
  605		)
  606	    ;   true
  607	    )
  608	;   true
  609	),
  610	'detach_known/1_1_$special_var/1___1'(B1, E).
  611'attach_known/1_1_$special_atom/1___1'([], _).
  612'attach_known/1_1_$special_atom/1___1'([A|B1], I) :-
  613	(   get_attr(A, guard_entailment, B)
  614	->  ( B=v(C, D, E, F, G, H, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  615	      (   C/\32=:=32
  616	      ->  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)
  617	      ;   A1 is C\/32,
  618		  Z=v(A1, D, E, F, G, H, [I], K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  619	      )
  620	    ),
  621	    put_attr(A, guard_entailment, Z)
  622	;   put_attr(A,
  623		     guard_entailment,
  624		     v(32,
  625		       [],
  626		       [],
  627		       [],
  628		       [],
  629		       [],
  630		       [I],
  631		       [],
  632		       [],
  633		       [],
  634		       [],
  635		       [],
  636		       [],
  637		       [],
  638		       [],
  639		       [],
  640		       [],
  641		       [],
  642		       [],
  643		       [],
  644		       [],
  645		       []))
  646	),
  647	'attach_known/1_1_$special_atom/1___1'(B1, I).
  648'detach_known/1_1_$special_atom/1___1'([], _).
  649'detach_known/1_1_$special_atom/1___1'([A|B1], E) :-
  650	(   get_attr(A, guard_entailment, B)
  651	->  B=v(C, H, I, J, K, L, D, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  652	    (   C/\32=:=32
  653	    ->  'chr sbag_del_element'(D, E, F),
  654		(   F==[]
  655		->  G is C/\ -33,
  656		    (   G==0
  657		    ->  del_attr(A, guard_entailment)
  658		    ;   put_attr(A,
  659				 guard_entailment,
  660				 v(G,
  661				   H,
  662				   I,
  663				   J,
  664				   K,
  665				   L,
  666				   [],
  667				   M,
  668				   N,
  669				   O,
  670				   P,
  671				   Q,
  672				   R,
  673				   S,
  674				   T,
  675				   U,
  676				   V,
  677				   W,
  678				   X,
  679				   Y,
  680				   Z,
  681				   A1))
  682		    )
  683		;   put_attr(A,
  684			     guard_entailment,
  685			     v(C,
  686			       H,
  687			       I,
  688			       J,
  689			       K,
  690			       L,
  691			       F,
  692			       M,
  693			       N,
  694			       O,
  695			       P,
  696			       Q,
  697			       R,
  698			       S,
  699			       T,
  700			       U,
  701			       V,
  702			       W,
  703			       X,
  704			       Y,
  705			       Z,
  706			       A1))
  707		)
  708	    ;   true
  709	    )
  710	;   true
  711	),
  712	'detach_known/1_1_$special_atom/1___1'(B1, E).
  713'attach_known/1_1_$special_atomic/1___1'([], _).
  714'attach_known/1_1_$special_atomic/1___1'([A|B1], J) :-
  715	(   get_attr(A, guard_entailment, B)
  716	->  ( B=v(C, D, E, F, G, H, I, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  717	      (   C/\64=:=64
  718	      ->  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)
  719	      ;   A1 is C\/64,
  720		  Z=v(A1, D, E, F, G, H, I, [J], L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  721	      )
  722	    ),
  723	    put_attr(A, guard_entailment, Z)
  724	;   put_attr(A,
  725		     guard_entailment,
  726		     v(64,
  727		       [],
  728		       [],
  729		       [],
  730		       [],
  731		       [],
  732		       [],
  733		       [J],
  734		       [],
  735		       [],
  736		       [],
  737		       [],
  738		       [],
  739		       [],
  740		       [],
  741		       [],
  742		       [],
  743		       [],
  744		       [],
  745		       [],
  746		       [],
  747		       []))
  748	),
  749	'attach_known/1_1_$special_atomic/1___1'(B1, J).
  750'detach_known/1_1_$special_atomic/1___1'([], _).
  751'detach_known/1_1_$special_atomic/1___1'([A|B1], E) :-
  752	(   get_attr(A, guard_entailment, B)
  753	->  B=v(C, H, I, J, K, L, M, D, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  754	    (   C/\64=:=64
  755	    ->  'chr sbag_del_element'(D, E, F),
  756		(   F==[]
  757		->  G is C/\ -65,
  758		    (   G==0
  759		    ->  del_attr(A, guard_entailment)
  760		    ;   put_attr(A,
  761				 guard_entailment,
  762				 v(G,
  763				   H,
  764				   I,
  765				   J,
  766				   K,
  767				   L,
  768				   M,
  769				   [],
  770				   N,
  771				   O,
  772				   P,
  773				   Q,
  774				   R,
  775				   S,
  776				   T,
  777				   U,
  778				   V,
  779				   W,
  780				   X,
  781				   Y,
  782				   Z,
  783				   A1))
  784		    )
  785		;   put_attr(A,
  786			     guard_entailment,
  787			     v(C,
  788			       H,
  789			       I,
  790			       J,
  791			       K,
  792			       L,
  793			       M,
  794			       F,
  795			       N,
  796			       O,
  797			       P,
  798			       Q,
  799			       R,
  800			       S,
  801			       T,
  802			       U,
  803			       V,
  804			       W,
  805			       X,
  806			       Y,
  807			       Z,
  808			       A1))
  809		)
  810	    ;   true
  811	    )
  812	;   true
  813	),
  814	'detach_known/1_1_$special_atomic/1___1'(B1, E).
  815'attach_known/1_1_$special_compound/1___1'([], _).
  816'attach_known/1_1_$special_compound/1___1'([A|B1], K) :-
  817	(   get_attr(A, guard_entailment, B)
  818	->  ( B=v(C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  819	      (   C/\128=:=128
  820	      ->  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)
  821	      ;   A1 is C\/128,
  822		  Z=v(A1, D, E, F, G, H, I, J, [K], M, N, O, P, Q, R, S, T, U, V, W, X, Y)
  823	      )
  824	    ),
  825	    put_attr(A, guard_entailment, Z)
  826	;   put_attr(A,
  827		     guard_entailment,
  828		     v(128,
  829		       [],
  830		       [],
  831		       [],
  832		       [],
  833		       [],
  834		       [],
  835		       [],
  836		       [K],
  837		       [],
  838		       [],
  839		       [],
  840		       [],
  841		       [],
  842		       [],
  843		       [],
  844		       [],
  845		       [],
  846		       [],
  847		       [],
  848		       [],
  849		       []))
  850	),
  851	'attach_known/1_1_$special_compound/1___1'(B1, K).
  852'detach_known/1_1_$special_compound/1___1'([], _).
  853'detach_known/1_1_$special_compound/1___1'([A|B1], E) :-
  854	(   get_attr(A, guard_entailment, B)
  855	->  B=v(C, H, I, J, K, L, M, N, D, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  856	    (   C/\128=:=128
  857	    ->  'chr sbag_del_element'(D, E, F),
  858		(   F==[]
  859		->  G is C/\ -129,
  860		    (   G==0
  861		    ->  del_attr(A, guard_entailment)
  862		    ;   put_attr(A,
  863				 guard_entailment,
  864				 v(G,
  865				   H,
  866				   I,
  867				   J,
  868				   K,
  869				   L,
  870				   M,
  871				   N,
  872				   [],
  873				   O,
  874				   P,
  875				   Q,
  876				   R,
  877				   S,
  878				   T,
  879				   U,
  880				   V,
  881				   W,
  882				   X,
  883				   Y,
  884				   Z,
  885				   A1))
  886		    )
  887		;   put_attr(A,
  888			     guard_entailment,
  889			     v(C,
  890			       H,
  891			       I,
  892			       J,
  893			       K,
  894			       L,
  895			       M,
  896			       N,
  897			       F,
  898			       O,
  899			       P,
  900			       Q,
  901			       R,
  902			       S,
  903			       T,
  904			       U,
  905			       V,
  906			       W,
  907			       X,
  908			       Y,
  909			       Z,
  910			       A1))
  911		)
  912	    ;   true
  913	    )
  914	;   true
  915	),
  916	'detach_known/1_1_$special_compound/1___1'(B1, E).
  917'attach_known/1_1_$special_ground/1___1'([], _).
  918'attach_known/1_1_$special_ground/1___1'([A|B1], L) :-
  919	(   get_attr(A, guard_entailment, B)
  920	->  ( B=v(C, D, E, F, G, H, I, J, K, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
  921	      (   C/\256=:=256
  922	      ->  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)
  923	      ;   A1 is C\/256,
  924		  Z=v(A1, D, E, F, G, H, I, J, K, [L], N, O, P, Q, R, S, T, U, V, W, X, Y)
  925	      )
  926	    ),
  927	    put_attr(A, guard_entailment, Z)
  928	;   put_attr(A,
  929		     guard_entailment,
  930		     v(256,
  931		       [],
  932		       [],
  933		       [],
  934		       [],
  935		       [],
  936		       [],
  937		       [],
  938		       [],
  939		       [L],
  940		       [],
  941		       [],
  942		       [],
  943		       [],
  944		       [],
  945		       [],
  946		       [],
  947		       [],
  948		       [],
  949		       [],
  950		       [],
  951		       []))
  952	),
  953	'attach_known/1_1_$special_ground/1___1'(B1, L).
  954'detach_known/1_1_$special_ground/1___1'([], _).
  955'detach_known/1_1_$special_ground/1___1'([A|B1], E) :-
  956	(   get_attr(A, guard_entailment, B)
  957	->  B=v(C, H, I, J, K, L, M, N, O, D, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
  958	    (   C/\256=:=256
  959	    ->  'chr sbag_del_element'(D, E, F),
  960		(   F==[]
  961		->  G is C/\ -257,
  962		    (   G==0
  963		    ->  del_attr(A, guard_entailment)
  964		    ;   put_attr(A,
  965				 guard_entailment,
  966				 v(G,
  967				   H,
  968				   I,
  969				   J,
  970				   K,
  971				   L,
  972				   M,
  973				   N,
  974				   O,
  975				   [],
  976				   P,
  977				   Q,
  978				   R,
  979				   S,
  980				   T,
  981				   U,
  982				   V,
  983				   W,
  984				   X,
  985				   Y,
  986				   Z,
  987				   A1))
  988		    )
  989		;   put_attr(A,
  990			     guard_entailment,
  991			     v(C,
  992			       H,
  993			       I,
  994			       J,
  995			       K,
  996			       L,
  997			       M,
  998			       N,
  999			       O,
 1000			       F,
 1001			       P,
 1002			       Q,
 1003			       R,
 1004			       S,
 1005			       T,
 1006			       U,
 1007			       V,
 1008			       W,
 1009			       X,
 1010			       Y,
 1011			       Z,
 1012			       A1))
 1013		)
 1014	    ;   true
 1015	    )
 1016	;   true
 1017	),
 1018	'detach_known/1_1_$special_ground/1___1'(B1, E).
 1019'attach_known/1_1_$special_integer/1___1'([], _).
 1020'attach_known/1_1_$special_integer/1___1'([A|B1], M) :-
 1021	(   get_attr(A, guard_entailment, B)
 1022	->  ( B=v(C, D, E, F, G, H, I, J, K, L, N, O, P, Q, R, S, T, U, V, W, X, Y),
 1023	      (   C/\512=:=512
 1024	      ->  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)
 1025	      ;   A1 is C\/512,
 1026		  Z=v(A1, D, E, F, G, H, I, J, K, L, [M], O, P, Q, R, S, T, U, V, W, X, Y)
 1027	      )
 1028	    ),
 1029	    put_attr(A, guard_entailment, Z)
 1030	;   put_attr(A,
 1031		     guard_entailment,
 1032		     v(512,
 1033		       [],
 1034		       [],
 1035		       [],
 1036		       [],
 1037		       [],
 1038		       [],
 1039		       [],
 1040		       [],
 1041		       [],
 1042		       [M],
 1043		       [],
 1044		       [],
 1045		       [],
 1046		       [],
 1047		       [],
 1048		       [],
 1049		       [],
 1050		       [],
 1051		       [],
 1052		       [],
 1053		       []))
 1054	),
 1055	'attach_known/1_1_$special_integer/1___1'(B1, M).
 1056'detach_known/1_1_$special_integer/1___1'([], _).
 1057'detach_known/1_1_$special_integer/1___1'([A|B1], E) :-
 1058	(   get_attr(A, guard_entailment, B)
 1059	->  B=v(C, H, I, J, K, L, M, N, O, P, D, Q, R, S, T, U, V, W, X, Y, Z, A1),
 1060	    (   C/\512=:=512
 1061	    ->  'chr sbag_del_element'(D, E, F),
 1062		(   F==[]
 1063		->  G is C/\ -513,
 1064		    (   G==0
 1065		    ->  del_attr(A, guard_entailment)
 1066		    ;   put_attr(A,
 1067				 guard_entailment,
 1068				 v(G,
 1069				   H,
 1070				   I,
 1071				   J,
 1072				   K,
 1073				   L,
 1074				   M,
 1075				   N,
 1076				   O,
 1077				   P,
 1078				   [],
 1079				   Q,
 1080				   R,
 1081				   S,
 1082				   T,
 1083				   U,
 1084				   V,
 1085				   W,
 1086				   X,
 1087				   Y,
 1088				   Z,
 1089				   A1))
 1090		    )
 1091		;   put_attr(A,
 1092			     guard_entailment,
 1093			     v(C,
 1094			       H,
 1095			       I,
 1096			       J,
 1097			       K,
 1098			       L,
 1099			       M,
 1100			       N,
 1101			       O,
 1102			       P,
 1103			       F,
 1104			       Q,
 1105			       R,
 1106			       S,
 1107			       T,
 1108			       U,
 1109			       V,
 1110			       W,
 1111			       X,
 1112			       Y,
 1113			       Z,
 1114			       A1))
 1115		)
 1116	    ;   true
 1117	    )
 1118	;   true
 1119	),
 1120	'detach_known/1_1_$special_integer/1___1'(B1, E).
 1121'attach_known/1_1_$special_float/1___1'([], _).
 1122'attach_known/1_1_$special_float/1___1'([A|B1], N) :-
 1123	(   get_attr(A, guard_entailment, B)
 1124	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, O, P, Q, R, S, T, U, V, W, X, Y),
 1125	      (   C/\1024=:=1024
 1126	      ->  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)
 1127	      ;   A1 is C\/1024,
 1128		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, [N], P, Q, R, S, T, U, V, W, X, Y)
 1129	      )
 1130	    ),
 1131	    put_attr(A, guard_entailment, Z)
 1132	;   put_attr(A,
 1133		     guard_entailment,
 1134		     v(1024,
 1135		       [],
 1136		       [],
 1137		       [],
 1138		       [],
 1139		       [],
 1140		       [],
 1141		       [],
 1142		       [],
 1143		       [],
 1144		       [],
 1145		       [N],
 1146		       [],
 1147		       [],
 1148		       [],
 1149		       [],
 1150		       [],
 1151		       [],
 1152		       [],
 1153		       [],
 1154		       [],
 1155		       []))
 1156	),
 1157	'attach_known/1_1_$special_float/1___1'(B1, N).
 1158'detach_known/1_1_$special_float/1___1'([], _).
 1159'detach_known/1_1_$special_float/1___1'([A|B1], E) :-
 1160	(   get_attr(A, guard_entailment, B)
 1161	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, D, R, S, T, U, V, W, X, Y, Z, A1),
 1162	    (   C/\1024=:=1024
 1163	    ->  'chr sbag_del_element'(D, E, F),
 1164		(   F==[]
 1165		->  G is C/\ -1025,
 1166		    (   G==0
 1167		    ->  del_attr(A, guard_entailment)
 1168		    ;   put_attr(A,
 1169				 guard_entailment,
 1170				 v(G,
 1171				   H,
 1172				   I,
 1173				   J,
 1174				   K,
 1175				   L,
 1176				   M,
 1177				   N,
 1178				   O,
 1179				   P,
 1180				   Q,
 1181				   [],
 1182				   R,
 1183				   S,
 1184				   T,
 1185				   U,
 1186				   V,
 1187				   W,
 1188				   X,
 1189				   Y,
 1190				   Z,
 1191				   A1))
 1192		    )
 1193		;   put_attr(A,
 1194			     guard_entailment,
 1195			     v(C,
 1196			       H,
 1197			       I,
 1198			       J,
 1199			       K,
 1200			       L,
 1201			       M,
 1202			       N,
 1203			       O,
 1204			       P,
 1205			       Q,
 1206			       F,
 1207			       R,
 1208			       S,
 1209			       T,
 1210			       U,
 1211			       V,
 1212			       W,
 1213			       X,
 1214			       Y,
 1215			       Z,
 1216			       A1))
 1217		)
 1218	    ;   true
 1219	    )
 1220	;   true
 1221	),
 1222	'detach_known/1_1_$special_float/1___1'(B1, E).
 1223'attach_known/1_1_$special_number/1___1'([], _).
 1224'attach_known/1_1_$special_number/1___1'([A|B1], O) :-
 1225	(   get_attr(A, guard_entailment, B)
 1226	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, P, Q, R, S, T, U, V, W, X, Y),
 1227	      (   C/\2048=:=2048
 1228	      ->  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)
 1229	      ;   A1 is C\/2048,
 1230		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, [O], Q, R, S, T, U, V, W, X, Y)
 1231	      )
 1232	    ),
 1233	    put_attr(A, guard_entailment, Z)
 1234	;   put_attr(A,
 1235		     guard_entailment,
 1236		     v(2048,
 1237		       [],
 1238		       [],
 1239		       [],
 1240		       [],
 1241		       [],
 1242		       [],
 1243		       [],
 1244		       [],
 1245		       [],
 1246		       [],
 1247		       [],
 1248		       [O],
 1249		       [],
 1250		       [],
 1251		       [],
 1252		       [],
 1253		       [],
 1254		       [],
 1255		       [],
 1256		       [],
 1257		       []))
 1258	),
 1259	'attach_known/1_1_$special_number/1___1'(B1, O).
 1260'detach_known/1_1_$special_number/1___1'([], _).
 1261'detach_known/1_1_$special_number/1___1'([A|B1], E) :-
 1262	(   get_attr(A, guard_entailment, B)
 1263	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, D, S, T, U, V, W, X, Y, Z, A1),
 1264	    (   C/\2048=:=2048
 1265	    ->  'chr sbag_del_element'(D, E, F),
 1266		(   F==[]
 1267		->  G is C/\ -2049,
 1268		    (   G==0
 1269		    ->  del_attr(A, guard_entailment)
 1270		    ;   put_attr(A,
 1271				 guard_entailment,
 1272				 v(G,
 1273				   H,
 1274				   I,
 1275				   J,
 1276				   K,
 1277				   L,
 1278				   M,
 1279				   N,
 1280				   O,
 1281				   P,
 1282				   Q,
 1283				   R,
 1284				   [],
 1285				   S,
 1286				   T,
 1287				   U,
 1288				   V,
 1289				   W,
 1290				   X,
 1291				   Y,
 1292				   Z,
 1293				   A1))
 1294		    )
 1295		;   put_attr(A,
 1296			     guard_entailment,
 1297			     v(C,
 1298			       H,
 1299			       I,
 1300			       J,
 1301			       K,
 1302			       L,
 1303			       M,
 1304			       N,
 1305			       O,
 1306			       P,
 1307			       Q,
 1308			       R,
 1309			       F,
 1310			       S,
 1311			       T,
 1312			       U,
 1313			       V,
 1314			       W,
 1315			       X,
 1316			       Y,
 1317			       Z,
 1318			       A1))
 1319		)
 1320	    ;   true
 1321	    )
 1322	;   true
 1323	),
 1324	'detach_known/1_1_$special_number/1___1'(B1, E).
 1325'attach_known/1_1_$special_=\\=/2___2'([], _).
 1326'attach_known/1_1_$special_=\\=/2___2'([A|B1], P) :-
 1327	(   get_attr(A, guard_entailment, B)
 1328	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, Q, R, S, T, U, V, W, X, Y),
 1329	      (   C/\4096=:=4096
 1330	      ->  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)
 1331	      ;   A1 is C\/4096,
 1332		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, [P], R, S, T, U, V, W, X, Y)
 1333	      )
 1334	    ),
 1335	    put_attr(A, guard_entailment, Z)
 1336	;   put_attr(A,
 1337		     guard_entailment,
 1338		     v(4096,
 1339		       [],
 1340		       [],
 1341		       [],
 1342		       [],
 1343		       [],
 1344		       [],
 1345		       [],
 1346		       [],
 1347		       [],
 1348		       [],
 1349		       [],
 1350		       [],
 1351		       [P],
 1352		       [],
 1353		       [],
 1354		       [],
 1355		       [],
 1356		       [],
 1357		       [],
 1358		       [],
 1359		       []))
 1360	),
 1361	'attach_known/1_1_$special_=\\=/2___2'(B1, P).
 1362'detach_known/1_1_$special_=\\=/2___2'([], _).
 1363'detach_known/1_1_$special_=\\=/2___2'([A|B1], E) :-
 1364	(   get_attr(A, guard_entailment, B)
 1365	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, D, T, U, V, W, X, Y, Z, A1),
 1366	    (   C/\4096=:=4096
 1367	    ->  'chr sbag_del_element'(D, E, F),
 1368		(   F==[]
 1369		->  G is C/\ -4097,
 1370		    (   G==0
 1371		    ->  del_attr(A, guard_entailment)
 1372		    ;   put_attr(A,
 1373				 guard_entailment,
 1374				 v(G,
 1375				   H,
 1376				   I,
 1377				   J,
 1378				   K,
 1379				   L,
 1380				   M,
 1381				   N,
 1382				   O,
 1383				   P,
 1384				   Q,
 1385				   R,
 1386				   S,
 1387				   [],
 1388				   T,
 1389				   U,
 1390				   V,
 1391				   W,
 1392				   X,
 1393				   Y,
 1394				   Z,
 1395				   A1))
 1396		    )
 1397		;   put_attr(A,
 1398			     guard_entailment,
 1399			     v(C,
 1400			       H,
 1401			       I,
 1402			       J,
 1403			       K,
 1404			       L,
 1405			       M,
 1406			       N,
 1407			       O,
 1408			       P,
 1409			       Q,
 1410			       R,
 1411			       S,
 1412			       F,
 1413			       T,
 1414			       U,
 1415			       V,
 1416			       W,
 1417			       X,
 1418			       Y,
 1419			       Z,
 1420			       A1))
 1421		)
 1422	    ;   true
 1423	    )
 1424	;   true
 1425	),
 1426	'detach_known/1_1_$special_=\\=/2___2'(B1, E).
 1427'attach_known/1_1_$special_\\+/1___1'([], _).
 1428'attach_known/1_1_$special_\\+/1___1'([A|B1], Q) :-
 1429	(   get_attr(A, guard_entailment, B)
 1430	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, R, S, T, U, V, W, X, Y),
 1431	      (   C/\8192=:=8192
 1432	      ->  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)
 1433	      ;   A1 is C\/8192,
 1434		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, [Q], S, T, U, V, W, X, Y)
 1435	      )
 1436	    ),
 1437	    put_attr(A, guard_entailment, Z)
 1438	;   put_attr(A,
 1439		     guard_entailment,
 1440		     v(8192,
 1441		       [],
 1442		       [],
 1443		       [],
 1444		       [],
 1445		       [],
 1446		       [],
 1447		       [],
 1448		       [],
 1449		       [],
 1450		       [],
 1451		       [],
 1452		       [],
 1453		       [],
 1454		       [Q],
 1455		       [],
 1456		       [],
 1457		       [],
 1458		       [],
 1459		       [],
 1460		       [],
 1461		       []))
 1462	),
 1463	'attach_known/1_1_$special_\\+/1___1'(B1, Q).
 1464'detach_known/1_1_$special_\\+/1___1'([], _).
 1465'detach_known/1_1_$special_\\+/1___1'([A|B1], E) :-
 1466	(   get_attr(A, guard_entailment, B)
 1467	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, D, U, V, W, X, Y, Z, A1),
 1468	    (   C/\8192=:=8192
 1469	    ->  'chr sbag_del_element'(D, E, F),
 1470		(   F==[]
 1471		->  G is C/\ -8193,
 1472		    (   G==0
 1473		    ->  del_attr(A, guard_entailment)
 1474		    ;   put_attr(A,
 1475				 guard_entailment,
 1476				 v(G,
 1477				   H,
 1478				   I,
 1479				   J,
 1480				   K,
 1481				   L,
 1482				   M,
 1483				   N,
 1484				   O,
 1485				   P,
 1486				   Q,
 1487				   R,
 1488				   S,
 1489				   T,
 1490				   [],
 1491				   U,
 1492				   V,
 1493				   W,
 1494				   X,
 1495				   Y,
 1496				   Z,
 1497				   A1))
 1498		    )
 1499		;   put_attr(A,
 1500			     guard_entailment,
 1501			     v(C,
 1502			       H,
 1503			       I,
 1504			       J,
 1505			       K,
 1506			       L,
 1507			       M,
 1508			       N,
 1509			       O,
 1510			       P,
 1511			       Q,
 1512			       R,
 1513			       S,
 1514			       T,
 1515			       F,
 1516			       U,
 1517			       V,
 1518			       W,
 1519			       X,
 1520			       Y,
 1521			       Z,
 1522			       A1))
 1523		)
 1524	    ;   true
 1525	    )
 1526	;   true
 1527	),
 1528	'detach_known/1_1_$special_\\+/1___1'(B1, E).
 1529'attach_known/1_1_$special_functor/3___3'([], _).
 1530'attach_known/1_1_$special_functor/3___3'([A|B1], R) :-
 1531	(   get_attr(A, guard_entailment, B)
 1532	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, S, T, U, V, W, X, Y),
 1533	      (   C/\16384=:=16384
 1534	      ->  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)
 1535	      ;   A1 is C\/16384,
 1536		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, [R], T, U, V, W, X, Y)
 1537	      )
 1538	    ),
 1539	    put_attr(A, guard_entailment, Z)
 1540	;   put_attr(A,
 1541		     guard_entailment,
 1542		     v(16384,
 1543		       [],
 1544		       [],
 1545		       [],
 1546		       [],
 1547		       [],
 1548		       [],
 1549		       [],
 1550		       [],
 1551		       [],
 1552		       [],
 1553		       [],
 1554		       [],
 1555		       [],
 1556		       [],
 1557		       [R],
 1558		       [],
 1559		       [],
 1560		       [],
 1561		       [],
 1562		       [],
 1563		       []))
 1564	),
 1565	'attach_known/1_1_$special_functor/3___3'(B1, R).
 1566'detach_known/1_1_$special_functor/3___3'([], _).
 1567'detach_known/1_1_$special_functor/3___3'([A|B1], E) :-
 1568	(   get_attr(A, guard_entailment, B)
 1569	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, D, V, W, X, Y, Z, A1),
 1570	    (   C/\16384=:=16384
 1571	    ->  'chr sbag_del_element'(D, E, F),
 1572		(   F==[]
 1573		->  G is C/\ -16385,
 1574		    (   G==0
 1575		    ->  del_attr(A, guard_entailment)
 1576		    ;   put_attr(A,
 1577				 guard_entailment,
 1578				 v(G,
 1579				   H,
 1580				   I,
 1581				   J,
 1582				   K,
 1583				   L,
 1584				   M,
 1585				   N,
 1586				   O,
 1587				   P,
 1588				   Q,
 1589				   R,
 1590				   S,
 1591				   T,
 1592				   U,
 1593				   [],
 1594				   V,
 1595				   W,
 1596				   X,
 1597				   Y,
 1598				   Z,
 1599				   A1))
 1600		    )
 1601		;   put_attr(A,
 1602			     guard_entailment,
 1603			     v(C,
 1604			       H,
 1605			       I,
 1606			       J,
 1607			       K,
 1608			       L,
 1609			       M,
 1610			       N,
 1611			       O,
 1612			       P,
 1613			       Q,
 1614			       R,
 1615			       S,
 1616			       T,
 1617			       U,
 1618			       F,
 1619			       V,
 1620			       W,
 1621			       X,
 1622			       Y,
 1623			       Z,
 1624			       A1))
 1625		)
 1626	    ;   true
 1627	    )
 1628	;   true
 1629	),
 1630	'detach_known/1_1_$special_functor/3___3'(B1, E).
 1631'attach_known/1_1_$special_\\=/2___2'([], _).
 1632'attach_known/1_1_$special_\\=/2___2'([A|B1], S) :-
 1633	(   get_attr(A, guard_entailment, B)
 1634	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, T, U, V, W, X, Y),
 1635	      (   C/\32768=:=32768
 1636	      ->  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)
 1637	      ;   A1 is C\/32768,
 1638		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, [S], U, V, W, X, Y)
 1639	      )
 1640	    ),
 1641	    put_attr(A, guard_entailment, Z)
 1642	;   put_attr(A,
 1643		     guard_entailment,
 1644		     v(32768,
 1645		       [],
 1646		       [],
 1647		       [],
 1648		       [],
 1649		       [],
 1650		       [],
 1651		       [],
 1652		       [],
 1653		       [],
 1654		       [],
 1655		       [],
 1656		       [],
 1657		       [],
 1658		       [],
 1659		       [],
 1660		       [S],
 1661		       [],
 1662		       [],
 1663		       [],
 1664		       [],
 1665		       []))
 1666	),
 1667	'attach_known/1_1_$special_\\=/2___2'(B1, S).
 1668'detach_known/1_1_$special_\\=/2___2'([], _).
 1669'detach_known/1_1_$special_\\=/2___2'([A|B1], E) :-
 1670	(   get_attr(A, guard_entailment, B)
 1671	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, D, W, X, Y, Z, A1),
 1672	    (   C/\32768=:=32768
 1673	    ->  'chr sbag_del_element'(D, E, F),
 1674		(   F==[]
 1675		->  G is C/\ -32769,
 1676		    (   G==0
 1677		    ->  del_attr(A, guard_entailment)
 1678		    ;   put_attr(A,
 1679				 guard_entailment,
 1680				 v(G,
 1681				   H,
 1682				   I,
 1683				   J,
 1684				   K,
 1685				   L,
 1686				   M,
 1687				   N,
 1688				   O,
 1689				   P,
 1690				   Q,
 1691				   R,
 1692				   S,
 1693				   T,
 1694				   U,
 1695				   V,
 1696				   [],
 1697				   W,
 1698				   X,
 1699				   Y,
 1700				   Z,
 1701				   A1))
 1702		    )
 1703		;   put_attr(A,
 1704			     guard_entailment,
 1705			     v(C,
 1706			       H,
 1707			       I,
 1708			       J,
 1709			       K,
 1710			       L,
 1711			       M,
 1712			       N,
 1713			       O,
 1714			       P,
 1715			       Q,
 1716			       R,
 1717			       S,
 1718			       T,
 1719			       U,
 1720			       V,
 1721			       F,
 1722			       W,
 1723			       X,
 1724			       Y,
 1725			       Z,
 1726			       A1))
 1727		)
 1728	    ;   true
 1729	    )
 1730	;   true
 1731	),
 1732	'detach_known/1_1_$special_\\=/2___2'(B1, E).
 1733'attach_known/1_1_$special_=/2___2'([], _).
 1734'attach_known/1_1_$special_=/2___2'([A|B1], T) :-
 1735	(   get_attr(A, guard_entailment, B)
 1736	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, U, V, W, X, Y),
 1737	      (   C/\65536=:=65536
 1738	      ->  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)
 1739	      ;   A1 is C\/65536,
 1740		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, [T], V, W, X, Y)
 1741	      )
 1742	    ),
 1743	    put_attr(A, guard_entailment, Z)
 1744	;   put_attr(A,
 1745		     guard_entailment,
 1746		     v(65536,
 1747		       [],
 1748		       [],
 1749		       [],
 1750		       [],
 1751		       [],
 1752		       [],
 1753		       [],
 1754		       [],
 1755		       [],
 1756		       [],
 1757		       [],
 1758		       [],
 1759		       [],
 1760		       [],
 1761		       [],
 1762		       [],
 1763		       [T],
 1764		       [],
 1765		       [],
 1766		       [],
 1767		       []))
 1768	),
 1769	'attach_known/1_1_$special_=/2___2'(B1, T).
 1770'detach_known/1_1_$special_=/2___2'([], _).
 1771'detach_known/1_1_$special_=/2___2'([A|B1], E) :-
 1772	(   get_attr(A, guard_entailment, B)
 1773	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, D, X, Y, Z, A1),
 1774	    (   C/\65536=:=65536
 1775	    ->  'chr sbag_del_element'(D, E, F),
 1776		(   F==[]
 1777		->  G is C/\ -65537,
 1778		    (   G==0
 1779		    ->  del_attr(A, guard_entailment)
 1780		    ;   put_attr(A,
 1781				 guard_entailment,
 1782				 v(G,
 1783				   H,
 1784				   I,
 1785				   J,
 1786				   K,
 1787				   L,
 1788				   M,
 1789				   N,
 1790				   O,
 1791				   P,
 1792				   Q,
 1793				   R,
 1794				   S,
 1795				   T,
 1796				   U,
 1797				   V,
 1798				   W,
 1799				   [],
 1800				   X,
 1801				   Y,
 1802				   Z,
 1803				   A1))
 1804		    )
 1805		;   put_attr(A,
 1806			     guard_entailment,
 1807			     v(C,
 1808			       H,
 1809			       I,
 1810			       J,
 1811			       K,
 1812			       L,
 1813			       M,
 1814			       N,
 1815			       O,
 1816			       P,
 1817			       Q,
 1818			       R,
 1819			       S,
 1820			       T,
 1821			       U,
 1822			       V,
 1823			       W,
 1824			       F,
 1825			       X,
 1826			       Y,
 1827			       Z,
 1828			       A1))
 1829		)
 1830	    ;   true
 1831	    )
 1832	;   true
 1833	),
 1834	'detach_known/1_1_$special_=/2___2'(B1, E).
 1835'attach_known/1_1_$special_\\==/2___2'([], _).
 1836'attach_known/1_1_$special_\\==/2___2'([A|B1], U) :-
 1837	(   get_attr(A, guard_entailment, B)
 1838	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, V, W, X, Y),
 1839	      (   C/\131072=:=131072
 1840	      ->  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)
 1841	      ;   A1 is C\/131072,
 1842		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, [U], W, X, Y)
 1843	      )
 1844	    ),
 1845	    put_attr(A, guard_entailment, Z)
 1846	;   put_attr(A,
 1847		     guard_entailment,
 1848		     v(131072,
 1849		       [],
 1850		       [],
 1851		       [],
 1852		       [],
 1853		       [],
 1854		       [],
 1855		       [],
 1856		       [],
 1857		       [],
 1858		       [],
 1859		       [],
 1860		       [],
 1861		       [],
 1862		       [],
 1863		       [],
 1864		       [],
 1865		       [],
 1866		       [U],
 1867		       [],
 1868		       [],
 1869		       []))
 1870	),
 1871	'attach_known/1_1_$special_\\==/2___2'(B1, U).
 1872'detach_known/1_1_$special_\\==/2___2'([], _).
 1873'detach_known/1_1_$special_\\==/2___2'([A|B1], E) :-
 1874	(   get_attr(A, guard_entailment, B)
 1875	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, D, Y, Z, A1),
 1876	    (   C/\131072=:=131072
 1877	    ->  'chr sbag_del_element'(D, E, F),
 1878		(   F==[]
 1879		->  G is C/\ -131073,
 1880		    (   G==0
 1881		    ->  del_attr(A, guard_entailment)
 1882		    ;   put_attr(A,
 1883				 guard_entailment,
 1884				 v(G,
 1885				   H,
 1886				   I,
 1887				   J,
 1888				   K,
 1889				   L,
 1890				   M,
 1891				   N,
 1892				   O,
 1893				   P,
 1894				   Q,
 1895				   R,
 1896				   S,
 1897				   T,
 1898				   U,
 1899				   V,
 1900				   W,
 1901				   X,
 1902				   [],
 1903				   Y,
 1904				   Z,
 1905				   A1))
 1906		    )
 1907		;   put_attr(A,
 1908			     guard_entailment,
 1909			     v(C,
 1910			       H,
 1911			       I,
 1912			       J,
 1913			       K,
 1914			       L,
 1915			       M,
 1916			       N,
 1917			       O,
 1918			       P,
 1919			       Q,
 1920			       R,
 1921			       S,
 1922			       T,
 1923			       U,
 1924			       V,
 1925			       W,
 1926			       X,
 1927			       F,
 1928			       Y,
 1929			       Z,
 1930			       A1))
 1931		)
 1932	    ;   true
 1933	    )
 1934	;   true
 1935	),
 1936	'detach_known/1_1_$special_\\==/2___2'(B1, E).
 1937'attach_known/1_1_$special_==/2___2'([], _).
 1938'attach_known/1_1_$special_==/2___2'([A|B1], V) :-
 1939	(   get_attr(A, guard_entailment, B)
 1940	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, W, X, Y),
 1941	      (   C/\262144=:=262144
 1942	      ->  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)
 1943	      ;   A1 is C\/262144,
 1944		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, [V], X, Y)
 1945	      )
 1946	    ),
 1947	    put_attr(A, guard_entailment, Z)
 1948	;   put_attr(A,
 1949		     guard_entailment,
 1950		     v(262144,
 1951		       [],
 1952		       [],
 1953		       [],
 1954		       [],
 1955		       [],
 1956		       [],
 1957		       [],
 1958		       [],
 1959		       [],
 1960		       [],
 1961		       [],
 1962		       [],
 1963		       [],
 1964		       [],
 1965		       [],
 1966		       [],
 1967		       [],
 1968		       [],
 1969		       [V],
 1970		       [],
 1971		       []))
 1972	),
 1973	'attach_known/1_1_$special_==/2___2'(B1, V).
 1974'detach_known/1_1_$special_==/2___2'([], _).
 1975'detach_known/1_1_$special_==/2___2'([A|B1], E) :-
 1976	(   get_attr(A, guard_entailment, B)
 1977	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, D, Z, A1),
 1978	    (   C/\262144=:=262144
 1979	    ->  'chr sbag_del_element'(D, E, F),
 1980		(   F==[]
 1981		->  G is C/\ -262145,
 1982		    (   G==0
 1983		    ->  del_attr(A, guard_entailment)
 1984		    ;   put_attr(A,
 1985				 guard_entailment,
 1986				 v(G,
 1987				   H,
 1988				   I,
 1989				   J,
 1990				   K,
 1991				   L,
 1992				   M,
 1993				   N,
 1994				   O,
 1995				   P,
 1996				   Q,
 1997				   R,
 1998				   S,
 1999				   T,
 2000				   U,
 2001				   V,
 2002				   W,
 2003				   X,
 2004				   Y,
 2005				   [],
 2006				   Z,
 2007				   A1))
 2008		    )
 2009		;   put_attr(A,
 2010			     guard_entailment,
 2011			     v(C,
 2012			       H,
 2013			       I,
 2014			       J,
 2015			       K,
 2016			       L,
 2017			       M,
 2018			       N,
 2019			       O,
 2020			       P,
 2021			       Q,
 2022			       R,
 2023			       S,
 2024			       T,
 2025			       U,
 2026			       V,
 2027			       W,
 2028			       X,
 2029			       Y,
 2030			       F,
 2031			       Z,
 2032			       A1))
 2033		)
 2034	    ;   true
 2035	    )
 2036	;   true
 2037	),
 2038	'detach_known/1_1_$special_==/2___2'(B1, E).
 2039'attach_known/1_1_$special_=</2___2'([], _).
 2040'attach_known/1_1_$special_=</2___2'([A|B1], W) :-
 2041	(   get_attr(A, guard_entailment, B)
 2042	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, X, Y),
 2043	      (   C/\524288=:=524288
 2044	      ->  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)
 2045	      ;   A1 is C\/524288,
 2046		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, [W], Y)
 2047	      )
 2048	    ),
 2049	    put_attr(A, guard_entailment, Z)
 2050	;   put_attr(A,
 2051		     guard_entailment,
 2052		     v(524288,
 2053		       [],
 2054		       [],
 2055		       [],
 2056		       [],
 2057		       [],
 2058		       [],
 2059		       [],
 2060		       [],
 2061		       [],
 2062		       [],
 2063		       [],
 2064		       [],
 2065		       [],
 2066		       [],
 2067		       [],
 2068		       [],
 2069		       [],
 2070		       [],
 2071		       [],
 2072		       [W],
 2073		       []))
 2074	),
 2075	'attach_known/1_1_$special_=</2___2'(B1, W).
 2076'detach_known/1_1_$special_=</2___2'([], _).
 2077'detach_known/1_1_$special_=</2___2'([A|B1], E) :-
 2078	(   get_attr(A, guard_entailment, B)
 2079	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, D, A1),
 2080	    (   C/\524288=:=524288
 2081	    ->  'chr sbag_del_element'(D, E, F),
 2082		(   F==[]
 2083		->  G is C/\ -524289,
 2084		    (   G==0
 2085		    ->  del_attr(A, guard_entailment)
 2086		    ;   put_attr(A,
 2087				 guard_entailment,
 2088				 v(G,
 2089				   H,
 2090				   I,
 2091				   J,
 2092				   K,
 2093				   L,
 2094				   M,
 2095				   N,
 2096				   O,
 2097				   P,
 2098				   Q,
 2099				   R,
 2100				   S,
 2101				   T,
 2102				   U,
 2103				   V,
 2104				   W,
 2105				   X,
 2106				   Y,
 2107				   Z,
 2108				   [],
 2109				   A1))
 2110		    )
 2111		;   put_attr(A,
 2112			     guard_entailment,
 2113			     v(C,
 2114			       H,
 2115			       I,
 2116			       J,
 2117			       K,
 2118			       L,
 2119			       M,
 2120			       N,
 2121			       O,
 2122			       P,
 2123			       Q,
 2124			       R,
 2125			       S,
 2126			       T,
 2127			       U,
 2128			       V,
 2129			       W,
 2130			       X,
 2131			       Y,
 2132			       Z,
 2133			       F,
 2134			       A1))
 2135		)
 2136	    ;   true
 2137	    )
 2138	;   true
 2139	),
 2140	'detach_known/1_1_$special_=</2___2'(B1, E).
 2141'attach_known/1_1_$special_=:=/2___2'([], _).
 2142'attach_known/1_1_$special_=:=/2___2'([A|B1], X) :-
 2143	(   get_attr(A, guard_entailment, B)
 2144	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, Y),
 2145	      (   C/\1048576=:=1048576
 2146	      ->  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])
 2147	      ;   A1 is C\/1048576,
 2148		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, [X])
 2149	      )
 2150	    ),
 2151	    put_attr(A, guard_entailment, Z)
 2152	;   put_attr(A,
 2153		     guard_entailment,
 2154		     v(1048576,
 2155		       [],
 2156		       [],
 2157		       [],
 2158		       [],
 2159		       [],
 2160		       [],
 2161		       [],
 2162		       [],
 2163		       [],
 2164		       [],
 2165		       [],
 2166		       [],
 2167		       [],
 2168		       [],
 2169		       [],
 2170		       [],
 2171		       [],
 2172		       [],
 2173		       [],
 2174		       [],
 2175		       [X]))
 2176	),
 2177	'attach_known/1_1_$special_=:=/2___2'(B1, X).
 2178'detach_known/1_1_$special_=:=/2___2'([], _).
 2179'detach_known/1_1_$special_=:=/2___2'([A|B1], E) :-
 2180	(   get_attr(A, guard_entailment, B)
 2181	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1, D),
 2182	    (   C/\1048576=:=1048576
 2183	    ->  'chr sbag_del_element'(D, E, F),
 2184		(   F==[]
 2185		->  G is C/\ -1048577,
 2186		    (   G==0
 2187		    ->  del_attr(A, guard_entailment)
 2188		    ;   put_attr(A,
 2189				 guard_entailment,
 2190				 v(G,
 2191				   H,
 2192				   I,
 2193				   J,
 2194				   K,
 2195				   L,
 2196				   M,
 2197				   N,
 2198				   O,
 2199				   P,
 2200				   Q,
 2201				   R,
 2202				   S,
 2203				   T,
 2204				   U,
 2205				   V,
 2206				   W,
 2207				   X,
 2208				   Y,
 2209				   Z,
 2210				   A1,
 2211				   []))
 2212		    )
 2213		;   put_attr(A,
 2214			     guard_entailment,
 2215			     v(C,
 2216			       H,
 2217			       I,
 2218			       J,
 2219			       K,
 2220			       L,
 2221			       M,
 2222			       N,
 2223			       O,
 2224			       P,
 2225			       Q,
 2226			       R,
 2227			       S,
 2228			       T,
 2229			       U,
 2230			       V,
 2231			       W,
 2232			       X,
 2233			       Y,
 2234			       Z,
 2235			       A1,
 2236			       F))
 2237		)
 2238	    ;   true
 2239	    )
 2240	;   true
 2241	),
 2242	'detach_known/1_1_$special_=:=/2___2'(B1, E).
 2243attach_increment([], _).
 2244attach_increment([A|M3], B) :-
 2245	'chr not_locked'(A),
 2246	(   get_attr(A, guard_entailment, C)
 2247	->  ( B=v(O2, E, H, K, N, Q, T, W, Z, C1, F1, I1, L1, O1, R1, U1, X1, A2, D2, G2, J2, M2),
 2248	      C=v(P2, D, G, J, M, P, S, V, Y, B1, E1, H1, K1, N1, Q1, T1, W1, Z1, C2, F2, I2, L2),
 2249	      ( ( sort(D, F),
 2250		  'chr merge_attributes'(E, F, R2)
 2251		),
 2252		( sort(G, I),
 2253		  'chr merge_attributes'(H, I, S2)
 2254		),
 2255		( sort(J, L),
 2256		  'chr merge_attributes'(K, L, T2)
 2257		),
 2258		( sort(M, O),
 2259		  'chr merge_attributes'(N, O, U2)
 2260		),
 2261		( sort(P, R),
 2262		  'chr merge_attributes'(Q, R, V2)
 2263		),
 2264		( sort(S, U),
 2265		  'chr merge_attributes'(T, U, W2)
 2266		),
 2267		( sort(V, X),
 2268		  'chr merge_attributes'(W, X, X2)
 2269		),
 2270		( sort(Y, A1),
 2271		  'chr merge_attributes'(Z, A1, Y2)
 2272		),
 2273		( sort(B1, D1),
 2274		  'chr merge_attributes'(C1, D1, Z2)
 2275		),
 2276		( sort(E1, G1),
 2277		  'chr merge_attributes'(F1, G1, A3)
 2278		),
 2279		( sort(H1, J1),
 2280		  'chr merge_attributes'(I1, J1, B3)
 2281		),
 2282		( sort(K1, M1),
 2283		  'chr merge_attributes'(L1, M1, C3)
 2284		),
 2285		( sort(N1, P1),
 2286		  'chr merge_attributes'(O1, P1, D3)
 2287		),
 2288		( sort(Q1, S1),
 2289		  'chr merge_attributes'(R1, S1, E3)
 2290		),
 2291		( sort(T1, V1),
 2292		  'chr merge_attributes'(U1, V1, F3)
 2293		),
 2294		( sort(W1, Y1),
 2295		  'chr merge_attributes'(X1, Y1, G3)
 2296		),
 2297		( sort(Z1, B2),
 2298		  'chr merge_attributes'(A2, B2, H3)
 2299		),
 2300		( sort(C2, E2),
 2301		  'chr merge_attributes'(D2, E2, I3)
 2302		),
 2303		( sort(F2, H2),
 2304		  'chr merge_attributes'(G2, H2, J3)
 2305		),
 2306		( sort(I2, K2),
 2307		  'chr merge_attributes'(J2, K2, K3)
 2308		),
 2309		sort(L2, N2),
 2310		'chr merge_attributes'(M2, N2, L3)
 2311	      ),
 2312	      Q2 is O2\/P2
 2313	    ),
 2314	    put_attr(A,
 2315		     guard_entailment,
 2316		     v(Q2,
 2317		       R2,
 2318		       S2,
 2319		       T2,
 2320		       U2,
 2321		       V2,
 2322		       W2,
 2323		       X2,
 2324		       Y2,
 2325		       Z2,
 2326		       A3,
 2327		       B3,
 2328		       C3,
 2329		       D3,
 2330		       E3,
 2331		       F3,
 2332		       G3,
 2333		       H3,
 2334		       I3,
 2335		       J3,
 2336		       K3,
 2337		       L3))
 2338	;   put_attr(A, guard_entailment, B)
 2339	),
 2340	attach_increment(M3, B).
 2341attribute_goals(_, A, A).
 2342attr_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) :-
 2343	sort(A, Y),
 2344	sort(B, B1),
 2345	sort(C, E1),
 2346	sort(D, H1),
 2347	sort(E, K1),
 2348	sort(F, N1),
 2349	sort(G, Q1),
 2350	sort(H, T1),
 2351	sort(I, W1),
 2352	sort(J, Z1),
 2353	sort(K, C2),
 2354	sort(L, F2),
 2355	sort(M, I2),
 2356	sort(N, L2),
 2357	sort(O, O2),
 2358	sort(P, R2),
 2359	sort(Q, U2),
 2360	sort(R, X2),
 2361	sort(S, A3),
 2362	sort(T, D3),
 2363	sort(U, G3),
 2364	(   var(V)
 2365	->  (   get_attr(V, guard_entailment, W)
 2366	    ->  ( W=v(J3, X, A1, D1, G1, J1, M1, P1, S1, V1, Y1, B2, E2, H2, K2, N2, Q2, T2, W2, Z2, C3, F3),
 2367		  ( ( sort(X, Z),
 2368		      'chr merge_attributes'(Y, Z, L3)
 2369		    ),
 2370		    ( sort(A1, C1),
 2371		      'chr merge_attributes'(B1, C1, M3)
 2372		    ),
 2373		    ( sort(D1, F1),
 2374		      'chr merge_attributes'(E1, F1, N3)
 2375		    ),
 2376		    ( sort(G1, I1),
 2377		      'chr merge_attributes'(H1, I1, O3)
 2378		    ),
 2379		    ( sort(J1, L1),
 2380		      'chr merge_attributes'(K1, L1, P3)
 2381		    ),
 2382		    ( sort(M1, O1),
 2383		      'chr merge_attributes'(N1, O1, Q3)
 2384		    ),
 2385		    ( sort(P1, R1),
 2386		      'chr merge_attributes'(Q1, R1, R3)
 2387		    ),
 2388		    ( sort(S1, U1),
 2389		      'chr merge_attributes'(T1, U1, S3)
 2390		    ),
 2391		    ( sort(V1, X1),
 2392		      'chr merge_attributes'(W1, X1, T3)
 2393		    ),
 2394		    ( sort(Y1, A2),
 2395		      'chr merge_attributes'(Z1, A2, U3)
 2396		    ),
 2397		    ( sort(B2, D2),
 2398		      'chr merge_attributes'(C2, D2, V3)
 2399		    ),
 2400		    ( sort(E2, G2),
 2401		      'chr merge_attributes'(F2, G2, W3)
 2402		    ),
 2403		    ( sort(H2, J2),
 2404		      'chr merge_attributes'(I2, J2, X3)
 2405		    ),
 2406		    ( sort(K2, M2),
 2407		      'chr merge_attributes'(L2, M2, Y3)
 2408		    ),
 2409		    ( sort(N2, P2),
 2410		      'chr merge_attributes'(O2, P2, Z3)
 2411		    ),
 2412		    ( sort(Q2, S2),
 2413		      'chr merge_attributes'(R2, S2, A4)
 2414		    ),
 2415		    ( sort(T2, V2),
 2416		      'chr merge_attributes'(U2, V2, B4)
 2417		    ),
 2418		    ( sort(W2, Y2),
 2419		      'chr merge_attributes'(X2, Y2, C4)
 2420		    ),
 2421		    ( sort(Z2, B3),
 2422		      'chr merge_attributes'(A3, B3, D4)
 2423		    ),
 2424		    ( sort(C3, E3),
 2425		      'chr merge_attributes'(D3, E3, E4)
 2426		    ),
 2427		    sort(F3, H3),
 2428		    'chr merge_attributes'(G3, H3, F4)
 2429		  ),
 2430		  K3 is I3\/J3
 2431		),
 2432		put_attr(V,
 2433			 guard_entailment,
 2434			 v(K3,
 2435			   L3,
 2436			   M3,
 2437			   N3,
 2438			   O3,
 2439			   P3,
 2440			   Q3,
 2441			   R3,
 2442			   S3,
 2443			   T3,
 2444			   U3,
 2445			   V3,
 2446			   W3,
 2447			   X3,
 2448			   Y3,
 2449			   Z3,
 2450			   A4,
 2451			   B4,
 2452			   C4,
 2453			   D4,
 2454			   E4,
 2455			   F4)),
 2456		'$run_suspensions_variables___1'(Y),
 2457		'$run_suspensions_known/1_1_$default___1'(B1),
 2458		'$run_suspensions_known/1_1_$special_;/2___2'(N3),
 2459		'$run_suspensions_known/1_1_$special_nonvar/1___1'(H1),
 2460		'$run_suspensions_known/1_1_$special_var/1___1'(K1),
 2461		'$run_suspensions_known/1_1_$special_atom/1___1'(N1),
 2462		'$run_suspensions_known/1_1_$special_atomic/1___1'(Q1),
 2463		'$run_suspensions_known/1_1_$special_compound/1___1'(T1),
 2464		'$run_suspensions_known/1_1_$special_ground/1___1'(W1),
 2465		'$run_suspensions_known/1_1_$special_integer/1___1'(U3),
 2466		'$run_suspensions_known/1_1_$special_float/1___1'(V3),
 2467		'$run_suspensions_known/1_1_$special_number/1___1'(W3),
 2468		'$run_suspensions_known/1_1_$special_=\\=/2___2'(X3),
 2469		'$run_suspensions_known/1_1_$special_\\+/1___1'(Y3),
 2470		'$run_suspensions_known/1_1_$special_functor/3___3'(Z3),
 2471		'$run_suspensions_known/1_1_$special_\\=/2___2'(A4),
 2472		'$run_suspensions_known/1_1_$special_=/2___2'(B4),
 2473		'$run_suspensions_known/1_1_$special_\\==/2___2'(C4),
 2474		'$run_suspensions_known/1_1_$special_==/2___2'(D4),
 2475		'$run_suspensions_known/1_1_$special_=</2___2'(E4),
 2476		'$run_suspensions_known/1_1_$special_=:=/2___2'(F4)
 2477	    ;   put_attr(V,
 2478			 guard_entailment,
 2479			 v(I3,
 2480			   Y,
 2481			   B1,
 2482			   E1,
 2483			   H1,
 2484			   K1,
 2485			   N1,
 2486			   Q1,
 2487			   T1,
 2488			   W1,
 2489			   Z1,
 2490			   C2,
 2491			   F2,
 2492			   I2,
 2493			   L2,
 2494			   O2,
 2495			   R2,
 2496			   U2,
 2497			   X2,
 2498			   A3,
 2499			   D3,
 2500			   G3)),
 2501		'$run_suspensions_variables___1'(Y),
 2502		'$run_suspensions_known/1_1_$default___1'(B1),
 2503		'$run_suspensions_known/1_1_$special_;/2___2'(E1),
 2504		'$run_suspensions_known/1_1_$special_nonvar/1___1'(H1),
 2505		'$run_suspensions_known/1_1_$special_var/1___1'(K1),
 2506		'$run_suspensions_known/1_1_$special_atom/1___1'(N1),
 2507		'$run_suspensions_known/1_1_$special_atomic/1___1'(Q1),
 2508		'$run_suspensions_known/1_1_$special_compound/1___1'(T1),
 2509		'$run_suspensions_known/1_1_$special_ground/1___1'(W1),
 2510		'$run_suspensions_known/1_1_$special_integer/1___1'(Z1),
 2511		'$run_suspensions_known/1_1_$special_float/1___1'(C2),
 2512		'$run_suspensions_known/1_1_$special_number/1___1'(F2),
 2513		'$run_suspensions_known/1_1_$special_=\\=/2___2'(I2),
 2514		'$run_suspensions_known/1_1_$special_\\+/1___1'(L2),
 2515		'$run_suspensions_known/1_1_$special_functor/3___3'(O2),
 2516		'$run_suspensions_known/1_1_$special_\\=/2___2'(R2),
 2517		'$run_suspensions_known/1_1_$special_=/2___2'(U2),
 2518		'$run_suspensions_known/1_1_$special_\\==/2___2'(X2),
 2519		'$run_suspensions_known/1_1_$special_==/2___2'(A3),
 2520		'$run_suspensions_known/1_1_$special_=</2___2'(D3),
 2521		'$run_suspensions_known/1_1_$special_=:=/2___2'(G3)
 2522	    )
 2523	;   (   compound(V)
 2524	    ->  term_variables(V, G4),
 2525		attach_increment(G4,
 2526				 v(I3,
 2527				   Y,
 2528				   B1,
 2529				   E1,
 2530				   H1,
 2531				   K1,
 2532				   N1,
 2533				   Q1,
 2534				   T1,
 2535				   W1,
 2536				   Z1,
 2537				   C2,
 2538				   F2,
 2539				   I2,
 2540				   L2,
 2541				   O2,
 2542				   R2,
 2543				   U2,
 2544				   X2,
 2545				   A3,
 2546				   D3,
 2547				   G3))
 2548	    ;   true
 2549	    ),
 2550	    '$run_suspensions_variables___1'(Y),
 2551	    '$run_suspensions_known/1_1_$default___1'(B1),
 2552	    '$run_suspensions_known/1_1_$special_;/2___2'(E1),
 2553	    '$run_suspensions_known/1_1_$special_nonvar/1___1'(H1),
 2554	    '$run_suspensions_known/1_1_$special_var/1___1'(K1),
 2555	    '$run_suspensions_known/1_1_$special_atom/1___1'(N1),
 2556	    '$run_suspensions_known/1_1_$special_atomic/1___1'(Q1),
 2557	    '$run_suspensions_known/1_1_$special_compound/1___1'(T1),
 2558	    '$run_suspensions_known/1_1_$special_ground/1___1'(W1),
 2559	    '$run_suspensions_known/1_1_$special_integer/1___1'(Z1),
 2560	    '$run_suspensions_known/1_1_$special_float/1___1'(C2),
 2561	    '$run_suspensions_known/1_1_$special_number/1___1'(F2),
 2562	    '$run_suspensions_known/1_1_$special_=\\=/2___2'(I2),
 2563	    '$run_suspensions_known/1_1_$special_\\+/1___1'(L2),
 2564	    '$run_suspensions_known/1_1_$special_functor/3___3'(O2),
 2565	    '$run_suspensions_known/1_1_$special_\\=/2___2'(R2),
 2566	    '$run_suspensions_known/1_1_$special_=/2___2'(U2),
 2567	    '$run_suspensions_known/1_1_$special_\\==/2___2'(X2),
 2568	    '$run_suspensions_known/1_1_$special_==/2___2'(A3),
 2569	    '$run_suspensions_known/1_1_$special_=</2___2'(D3),
 2570	    '$run_suspensions_known/1_1_$special_=:=/2___2'(G3)
 2571	).
 2572'$novel_production'(A, B) :-
 2573	arg(3, A, C),
 2574	(   hprolog:get_ds(B, C, _)
 2575	->  fail
 2576	;   true
 2577	).
 2578'$extend_history'(A, B) :-
 2579	arg(3, A, C),
 2580	hprolog:put_ds(B, C, x, D),
 2581	setarg(3, A, D).
 2582'$run_suspensions_variables___1'([]).
 2583'$run_suspensions_variables___1'([A|D]) :-
 2584	A=suspension(_, B, _, C),
 2585	(   B==active
 2586	->  setarg(2, A, triggered),
 2587	    variables___1__0(C, A),
 2588	    (   B==triggered
 2589	    ->  setarg(2, A, active)
 2590	    ;   true
 2591	    )
 2592	;   true
 2593	),
 2594	'$run_suspensions_variables___1'(D).
 2595'$run_suspensions_known/1_1_$default___1'([]).
 2596'$run_suspensions_known/1_1_$default___1'([A|F]) :-
 2597	A=suspension(_, B, C, _, E),
 2598	(   B==active
 2599	->  setarg(2, A, triggered),
 2600	    ( D is C+1,
 2601	      setarg(3, A, D)
 2602	    ),
 2603	    'known/1_1_$default___1__0'(E, A),
 2604	    (   B==triggered
 2605	    ->  setarg(2, A, active)
 2606	    ;   true
 2607	    )
 2608	;   true
 2609	),
 2610	'$run_suspensions_known/1_1_$default___1'(F).
 2611'$run_suspensions_known/1_1_$special_;/2___2'([]).
 2612'$run_suspensions_known/1_1_$special_;/2___2'([A|G]) :-
 2613	A=suspension(_, B, C, _, E, F),
 2614	(   B==active
 2615	->  setarg(2, A, triggered),
 2616	    ( D is C+1,
 2617	      setarg(3, A, D)
 2618	    ),
 2619	    'known/1_1_$special_;/2___2__0'(E, F, A),
 2620	    (   B==triggered
 2621	    ->  setarg(2, A, active)
 2622	    ;   true
 2623	    )
 2624	;   true
 2625	),
 2626	'$run_suspensions_known/1_1_$special_;/2___2'(G).
 2627'$run_suspensions_known/1_1_$special_nonvar/1___1'([]).
 2628'$run_suspensions_known/1_1_$special_nonvar/1___1'([A|F]) :-
 2629	A=suspension(_, B, C, _, E),
 2630	(   B==active
 2631	->  setarg(2, A, triggered),
 2632	    ( D is C+1,
 2633	      setarg(3, A, D)
 2634	    ),
 2635	    'known/1_1_$special_nonvar/1___1__0'(E, A),
 2636	    (   B==triggered
 2637	    ->  setarg(2, A, active)
 2638	    ;   true
 2639	    )
 2640	;   true
 2641	),
 2642	'$run_suspensions_known/1_1_$special_nonvar/1___1'(F).
 2643'$run_suspensions_known/1_1_$special_var/1___1'([]).
 2644'$run_suspensions_known/1_1_$special_var/1___1'([A|F]) :-
 2645	A=suspension(_, B, C, _, E),
 2646	(   B==active
 2647	->  setarg(2, A, triggered),
 2648	    ( D is C+1,
 2649	      setarg(3, A, D)
 2650	    ),
 2651	    'known/1_1_$special_var/1___1__0'(E, A),
 2652	    (   B==triggered
 2653	    ->  setarg(2, A, active)
 2654	    ;   true
 2655	    )
 2656	;   true
 2657	),
 2658	'$run_suspensions_known/1_1_$special_var/1___1'(F).
 2659'$run_suspensions_known/1_1_$special_atom/1___1'([]).
 2660'$run_suspensions_known/1_1_$special_atom/1___1'([A|F]) :-
 2661	A=suspension(_, B, _, C, _, E),
 2662	(   B==active
 2663	->  setarg(2, A, triggered),
 2664	    ( D is C+1,
 2665	      setarg(4, A, D)
 2666	    ),
 2667	    'known/1_1_$special_atom/1___1__0'(E, A),
 2668	    (   B==triggered
 2669	    ->  setarg(2, A, active)
 2670	    ;   true
 2671	    )
 2672	;   true
 2673	),
 2674	'$run_suspensions_known/1_1_$special_atom/1___1'(F).
 2675'$run_suspensions_known/1_1_$special_atomic/1___1'([]).
 2676'$run_suspensions_known/1_1_$special_atomic/1___1'([A|F]) :-
 2677	A=suspension(_, B, _, C, _, E),
 2678	(   B==active
 2679	->  setarg(2, A, triggered),
 2680	    ( D is C+1,
 2681	      setarg(4, A, D)
 2682	    ),
 2683	    'known/1_1_$special_atomic/1___1__0'(E, A),
 2684	    (   B==triggered
 2685	    ->  setarg(2, A, active)
 2686	    ;   true
 2687	    )
 2688	;   true
 2689	),
 2690	'$run_suspensions_known/1_1_$special_atomic/1___1'(F).
 2691'$run_suspensions_known/1_1_$special_compound/1___1'([]).
 2692'$run_suspensions_known/1_1_$special_compound/1___1'([A|F]) :-
 2693	A=suspension(_, B, _, C, _, E),
 2694	(   B==active
 2695	->  setarg(2, A, triggered),
 2696	    ( D is C+1,
 2697	      setarg(4, A, D)
 2698	    ),
 2699	    'known/1_1_$special_compound/1___1__0'(E, A),
 2700	    (   B==triggered
 2701	    ->  setarg(2, A, active)
 2702	    ;   true
 2703	    )
 2704	;   true
 2705	),
 2706	'$run_suspensions_known/1_1_$special_compound/1___1'(F).
 2707'$run_suspensions_known/1_1_$special_ground/1___1'([]).
 2708'$run_suspensions_known/1_1_$special_ground/1___1'([A|F]) :-
 2709	A=suspension(_, B, _, C, _, E),
 2710	(   B==active
 2711	->  setarg(2, A, triggered),
 2712	    ( D is C+1,
 2713	      setarg(4, A, D)
 2714	    ),
 2715	    'known/1_1_$special_ground/1___1__0'(E, A),
 2716	    (   B==triggered
 2717	    ->  setarg(2, A, active)
 2718	    ;   true
 2719	    )
 2720	;   true
 2721	),
 2722	'$run_suspensions_known/1_1_$special_ground/1___1'(F).
 2723'$run_suspensions_known/1_1_$special_integer/1___1'([]).
 2724'$run_suspensions_known/1_1_$special_integer/1___1'([A|F]) :-
 2725	A=suspension(_, B, _, C, _, E),
 2726	(   B==active
 2727	->  setarg(2, A, triggered),
 2728	    ( D is C+1,
 2729	      setarg(4, A, D)
 2730	    ),
 2731	    'known/1_1_$special_integer/1___1__0'(E, A),
 2732	    (   B==triggered
 2733	    ->  setarg(2, A, active)
 2734	    ;   true
 2735	    )
 2736	;   true
 2737	),
 2738	'$run_suspensions_known/1_1_$special_integer/1___1'(F).
 2739'$run_suspensions_known/1_1_$special_float/1___1'([]).
 2740'$run_suspensions_known/1_1_$special_float/1___1'([A|F]) :-
 2741	A=suspension(_, B, _, C, _, E),
 2742	(   B==active
 2743	->  setarg(2, A, triggered),
 2744	    ( D is C+1,
 2745	      setarg(4, A, D)
 2746	    ),
 2747	    'known/1_1_$special_float/1___1__0'(E, A),
 2748	    (   B==triggered
 2749	    ->  setarg(2, A, active)
 2750	    ;   true
 2751	    )
 2752	;   true
 2753	),
 2754	'$run_suspensions_known/1_1_$special_float/1___1'(F).
 2755'$run_suspensions_known/1_1_$special_number/1___1'([]).
 2756'$run_suspensions_known/1_1_$special_number/1___1'([A|F]) :-
 2757	A=suspension(_, B, _, C, _, E),
 2758	(   B==active
 2759	->  setarg(2, A, triggered),
 2760	    ( D is C+1,
 2761	      setarg(4, A, D)
 2762	    ),
 2763	    'known/1_1_$special_number/1___1__0'(E, A),
 2764	    (   B==triggered
 2765	    ->  setarg(2, A, active)
 2766	    ;   true
 2767	    )
 2768	;   true
 2769	),
 2770	'$run_suspensions_known/1_1_$special_number/1___1'(F).
 2771'$run_suspensions_known/1_1_$special_=\\=/2___2'([]).
 2772'$run_suspensions_known/1_1_$special_=\\=/2___2'([A|G]) :-
 2773	A=suspension(_, B, _, C, _, E, F),
 2774	(   B==active
 2775	->  setarg(2, A, triggered),
 2776	    ( D is C+1,
 2777	      setarg(4, A, D)
 2778	    ),
 2779	    'known/1_1_$special_=\\=/2___2__0'(E, F, A),
 2780	    (   B==triggered
 2781	    ->  setarg(2, A, active)
 2782	    ;   true
 2783	    )
 2784	;   true
 2785	),
 2786	'$run_suspensions_known/1_1_$special_=\\=/2___2'(G).
 2787'$run_suspensions_known/1_1_$special_\\+/1___1'([]).
 2788'$run_suspensions_known/1_1_$special_\\+/1___1'([A|F]) :-
 2789	A=suspension(_, B, C, _, E),
 2790	(   B==active
 2791	->  setarg(2, A, triggered),
 2792	    ( D is C+1,
 2793	      setarg(3, A, D)
 2794	    ),
 2795	    'known/1_1_$special_\\+/1___1__0'(E, A),
 2796	    (   B==triggered
 2797	    ->  setarg(2, A, active)
 2798	    ;   true
 2799	    )
 2800	;   true
 2801	),
 2802	'$run_suspensions_known/1_1_$special_\\+/1___1'(F).
 2803'$run_suspensions_known/1_1_$special_functor/3___3'([]).
 2804'$run_suspensions_known/1_1_$special_functor/3___3'([A|H]) :-
 2805	A=suspension(_, B, C, _, E, F, G),
 2806	(   B==active
 2807	->  setarg(2, A, triggered),
 2808	    ( D is C+1,
 2809	      setarg(3, A, D)
 2810	    ),
 2811	    'known/1_1_$special_functor/3___3__0'(E,
 2812						  F,
 2813						  G,
 2814						  A),
 2815	    (   B==triggered
 2816	    ->  setarg(2, A, active)
 2817	    ;   true
 2818	    )
 2819	;   true
 2820	),
 2821	'$run_suspensions_known/1_1_$special_functor/3___3'(H).
 2822'$run_suspensions_known/1_1_$special_\\=/2___2'([]).
 2823'$run_suspensions_known/1_1_$special_\\=/2___2'([A|G]) :-
 2824	A=suspension(_, B, _, C, _, E, F),
 2825	(   B==active
 2826	->  setarg(2, A, triggered),
 2827	    ( D is C+1,
 2828	      setarg(4, A, D)
 2829	    ),
 2830	    'known/1_1_$special_\\=/2___2__0'(E, F, A),
 2831	    (   B==triggered
 2832	    ->  setarg(2, A, active)
 2833	    ;   true
 2834	    )
 2835	;   true
 2836	),
 2837	'$run_suspensions_known/1_1_$special_\\=/2___2'(G).
 2838'$run_suspensions_known/1_1_$special_=/2___2'([]).
 2839'$run_suspensions_known/1_1_$special_=/2___2'([A|G]) :-
 2840	A=suspension(_, B, C, _, E, F),
 2841	(   B==active
 2842	->  setarg(2, A, triggered),
 2843	    ( D is C+1,
 2844	      setarg(3, A, D)
 2845	    ),
 2846	    'known/1_1_$special_=/2___2__0'(E, F, A),
 2847	    (   B==triggered
 2848	    ->  setarg(2, A, active)
 2849	    ;   true
 2850	    )
 2851	;   true
 2852	),
 2853	'$run_suspensions_known/1_1_$special_=/2___2'(G).
 2854'$run_suspensions_known/1_1_$special_\\==/2___2'([]).
 2855'$run_suspensions_known/1_1_$special_\\==/2___2'([A|G]) :-
 2856	A=suspension(_, B, _, C, _, E, F),
 2857	(   B==active
 2858	->  setarg(2, A, triggered),
 2859	    ( D is C+1,
 2860	      setarg(4, A, D)
 2861	    ),
 2862	    'known/1_1_$special_\\==/2___2__0'(E, F, A),
 2863	    (   B==triggered
 2864	    ->  setarg(2, A, active)
 2865	    ;   true
 2866	    )
 2867	;   true
 2868	),
 2869	'$run_suspensions_known/1_1_$special_\\==/2___2'(G).
 2870'$run_suspensions_known/1_1_$special_==/2___2'([]).
 2871'$run_suspensions_known/1_1_$special_==/2___2'([A|G]) :-
 2872	A=suspension(_, B, _, C, _, E, F),
 2873	(   B==active
 2874	->  setarg(2, A, triggered),
 2875	    ( D is C+1,
 2876	      setarg(4, A, D)
 2877	    ),
 2878	    'known/1_1_$special_==/2___2__0'(E, F, A),
 2879	    (   B==triggered
 2880	    ->  setarg(2, A, active)
 2881	    ;   true
 2882	    )
 2883	;   true
 2884	),
 2885	'$run_suspensions_known/1_1_$special_==/2___2'(G).
 2886'$run_suspensions_known/1_1_$special_=</2___2'([]).
 2887'$run_suspensions_known/1_1_$special_=</2___2'([A|G]) :-
 2888	A=suspension(_, B, _, C, _, E, F),
 2889	(   B==active
 2890	->  setarg(2, A, triggered),
 2891	    ( D is C+1,
 2892	      setarg(4, A, D)
 2893	    ),
 2894	    'known/1_1_$special_=</2___2__0'(E, F, A),
 2895	    (   B==triggered
 2896	    ->  setarg(2, A, active)
 2897	    ;   true
 2898	    )
 2899	;   true
 2900	),
 2901	'$run_suspensions_known/1_1_$special_=</2___2'(G).
 2902'$run_suspensions_known/1_1_$special_=:=/2___2'([]).
 2903'$run_suspensions_known/1_1_$special_=:=/2___2'([A|G]) :-
 2904	A=suspension(_, B, _, C, _, E, F),
 2905	(   B==active
 2906	->  setarg(2, A, triggered),
 2907	    ( D is C+1,
 2908	      setarg(4, A, D)
 2909	    ),
 2910	    'known/1_1_$special_=:=/2___2__0'(E, F, A),
 2911	    (   B==triggered
 2912	    ->  setarg(2, A, active)
 2913	    ;   true
 2914	    )
 2915	;   true
 2916	),
 2917	'$run_suspensions_known/1_1_$special_=:=/2___2'(G).
 2918'$enumerate_constraints'(A) :-
 2919	(   nonvar(A)
 2920	->  functor(A, B, _),
 2921	    '$enumerate_constraints'(B, A)
 2922	;   '$enumerate_constraints'(_, A)
 2923	).
 2924'$enumerate_constraints'(variables, C) :-
 2925	nb_current('$chr_store_global_list_guard_entailment____variables___1',
 2926		   A),
 2927	member(B, A),
 2928	B=suspension(_, _, _, D),
 2929	C=variables(D).
 2930'$enumerate_constraints'('known/1_1_$default', C) :-
 2931	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 2932		   A),
 2933	member(B, A),
 2934	B=suspension(_, _, _, _, D),
 2935	C='known/1_1_$default'(D).
 2936'$enumerate_constraints'('known/1_1_$special_;/2', C) :-
 2937	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 2938		   A),
 2939	member(B, A),
 2940	B=suspension(_, _, _, _, D, E),
 2941	C='known/1_1_$special_;/2'(D, E).
 2942'$enumerate_constraints'('known/1_1_$special_nonvar/1', C) :-
 2943	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 2944		   A),
 2945	member(B, A),
 2946	B=suspension(_, _, _, _, D),
 2947	C='known/1_1_$special_nonvar/1'(D).
 2948'$enumerate_constraints'('known/1_1_$special_var/1', C) :-
 2949	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 2950		   A),
 2951	member(B, A),
 2952	B=suspension(_, _, _, _, D),
 2953	C='known/1_1_$special_var/1'(D).
 2954'$enumerate_constraints'('known/1_1_$special_atom/1', C) :-
 2955	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 2956		   A),
 2957	member(B, A),
 2958	B=suspension(_, _, _, _, _, D),
 2959	C='known/1_1_$special_atom/1'(D).
 2960'$enumerate_constraints'('known/1_1_$special_atomic/1', C) :-
 2961	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 2962		   A),
 2963	member(B, A),
 2964	B=suspension(_, _, _, _, _, D),
 2965	C='known/1_1_$special_atomic/1'(D).
 2966'$enumerate_constraints'('known/1_1_$special_compound/1', C) :-
 2967	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 2968		   A),
 2969	member(B, A),
 2970	B=suspension(_, _, _, _, _, D),
 2971	C='known/1_1_$special_compound/1'(D).
 2972'$enumerate_constraints'('known/1_1_$special_ground/1', C) :-
 2973	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 2974		   A),
 2975	member(B, A),
 2976	B=suspension(_, _, _, _, _, D),
 2977	C='known/1_1_$special_ground/1'(D).
 2978'$enumerate_constraints'('known/1_1_$special_integer/1', C) :-
 2979	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 2980		   A),
 2981	member(B, A),
 2982	B=suspension(_, _, _, _, _, D),
 2983	C='known/1_1_$special_integer/1'(D).
 2984'$enumerate_constraints'('known/1_1_$special_float/1', C) :-
 2985	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 2986		   A),
 2987	member(B, A),
 2988	B=suspension(_, _, _, _, _, D),
 2989	C='known/1_1_$special_float/1'(D).
 2990'$enumerate_constraints'('known/1_1_$special_number/1', C) :-
 2991	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 2992		   A),
 2993	member(B, A),
 2994	B=suspension(_, _, _, _, _, D),
 2995	C='known/1_1_$special_number/1'(D).
 2996'$enumerate_constraints'('known/1_1_$special_=\\=/2', C) :-
 2997	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 2998		   A),
 2999	member(B, A),
 3000	B=suspension(_, _, _, _, _, D, E),
 3001	C='known/1_1_$special_=\\=/2'(D, E).
 3002'$enumerate_constraints'('known/1_1_$special_\\+/1', C) :-
 3003	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 3004		   A),
 3005	member(B, A),
 3006	B=suspension(_, _, _, _, D),
 3007	C='known/1_1_$special_\\+/1'(D).
 3008'$enumerate_constraints'('known/1_1_$special_functor/3', C) :-
 3009	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 3010		   A),
 3011	member(B, A),
 3012	B=suspension(_, _, _, _, D, E, F),
 3013	C='known/1_1_$special_functor/3'(D, E, F).
 3014'$enumerate_constraints'('known/1_1_$special_\\=/2', C) :-
 3015	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 3016		   A),
 3017	member(B, A),
 3018	B=suspension(_, _, _, _, _, D, E),
 3019	C='known/1_1_$special_\\=/2'(D, E).
 3020'$enumerate_constraints'('known/1_1_$special_=/2', C) :-
 3021	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 3022		   A),
 3023	member(B, A),
 3024	B=suspension(_, _, _, _, D, E),
 3025	C='known/1_1_$special_=/2'(D, E).
 3026'$enumerate_constraints'('known/1_1_$special_\\==/2', C) :-
 3027	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 3028		   A),
 3029	member(B, A),
 3030	B=suspension(_, _, _, _, _, D, E),
 3031	C='known/1_1_$special_\\==/2'(D, E).
 3032'$enumerate_constraints'('known/1_1_$special_==/2', C) :-
 3033	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 3034		   A),
 3035	member(B, A),
 3036	B=suspension(_, _, _, _, _, D, E),
 3037	C='known/1_1_$special_==/2'(D, E).
 3038'$enumerate_constraints'('known/1_1_$special_=</2', C) :-
 3039	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 3040		   A),
 3041	member(B, A),
 3042	B=suspension(_, _, _, _, _, D, E),
 3043	C='known/1_1_$special_=</2'(D, E).
 3044'$enumerate_constraints'('known/1_1_$special_=:=/2', C) :-
 3045	nb_current('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 3046		   A),
 3047	member(B, A),
 3048	B=suspension(_, _, _, _, _, D, E),
 3049	C='known/1_1_$special_=:=/2'(D, E).
 3050'$enumerate_constraints'('known/1_1_$special_fail/0', C) :-
 3051	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 3052		  A),
 3053	member(B, A),
 3054	B=suspension(_, _, _),
 3055	C='known/1_1_$special_fail/0'.
 3056'$chr_initialization' :-
 3057	nb_setval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 3058		  []),
 3059	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 3060		  []),
 3061	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 3062		  []),
 3063	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 3064		  []),
 3065	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 3066		  []),
 3067	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 3068		  []),
 3069	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 3070		  []),
 3071	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 3072		  []),
 3073	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 3074		  []),
 3075	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 3076		  []),
 3077	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 3078		  []),
 3079	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 3080		  []),
 3081	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 3082		  []),
 3083	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 3084		  []),
 3085	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 3086		  []),
 3087	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 3088		  []),
 3089	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 3090		  []),
 3091	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 3092		  []),
 3093	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 3094		  []),
 3095	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 3096		  []),
 3097	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 3098		  []),
 3099	nb_setval('$chr_store_global_list_guard_entailment____variables___1', []).
 3100:- (initialization'$chr_initialization'). 3101:- (dynamic user:exception/3). 3102:- (multifile user:exception/3). 3103user:exception(undefined_global_variable, A, retry) :-
 3104	'$chr_prolog_global_variable'(A),
 3105	'$chr_initialization'.
 3106'$chr_prolog_global_variable'('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0').
 3107'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2').
 3108'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2').
 3109'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2').
 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_functor/3___3').
 3114'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1').
 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_number/1___1').
 3117'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1').
 3118'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1').
 3119'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1').
 3120'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1').
 3121'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1').
 3122'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1').
 3123'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1').
 3124'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1').
 3125'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2').
 3126'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$default___1').
 3127'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____variables___1').
 3128known(A) :-
 3129	nonvar(A),
 3130	(   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   A=(B;C), !,
 3131												    'known/1_1_$special_;/2'(B,
 3132															     C)
 3133												;   A=nonvar(D), !,
 3134												    'known/1_1_$special_nonvar/1'(D)
 3135												)
 3136											    ;   A=var(E), !,
 3137												'known/1_1_$special_var/1'(E)
 3138											    )
 3139											;   A=atom(F), !,
 3140											    'known/1_1_$special_atom/1'(F)
 3141											)
 3142										    ;   A=atomic(G), !,
 3143											'known/1_1_$special_atomic/1'(G)
 3144										    )
 3145										;   A=compound(H), !,
 3146										    'known/1_1_$special_compound/1'(H)
 3147										)
 3148									    ;   A=ground(I), !,
 3149										'known/1_1_$special_ground/1'(I)
 3150									    )
 3151									;   A=integer(J), !,
 3152									    'known/1_1_$special_integer/1'(J)
 3153									)
 3154								    ;   A=float(K), !,
 3155									'known/1_1_$special_float/1'(K)
 3156								    )
 3157								;   A=number(L), !,
 3158								    'known/1_1_$special_number/1'(L)
 3159								)
 3160							    ;   A=(M=\=N), !,
 3161								'known/1_1_$special_=\\=/2'(M,
 3162											    N)
 3163							    )
 3164							;   A=(\+O), !,
 3165							    'known/1_1_$special_\\+/1'(O)
 3166							)
 3167						    ;   A=functor(P, Q, R), !,
 3168							'known/1_1_$special_functor/3'(P,
 3169										       Q,
 3170										       R)
 3171						    )
 3172						;   A=(S\=T), !,
 3173						    'known/1_1_$special_\\=/2'(S,
 3174									       T)
 3175						)
 3176					    ;   A=(U=V), !,
 3177						'known/1_1_$special_=/2'(U,
 3178									 V)
 3179					    )
 3180					;   A=(W, X), !,
 3181					    'known/1_1_$special_,/2'(W,
 3182								     X)
 3183					)
 3184				    ;   A=(Y\==Z), !,
 3185					'known/1_1_$special_\\==/2'(Y,
 3186								    Z)
 3187				    )
 3188				;   A=(A1==B1), !,
 3189				    'known/1_1_$special_==/2'(A1, B1)
 3190				)
 3191			    ;   A=(C1 is D1), !,
 3192				'known/1_1_$special_is/2'(C1, D1)
 3193			    )
 3194			;   A=(E1<F1), !,
 3195			    'known/1_1_$special_</2'(E1, F1)
 3196			)
 3197		    ;   A=(G1>=H1), !,
 3198			'known/1_1_$special_>=/2'(G1, H1)
 3199		    )
 3200		;   A=(I1>J1), !,
 3201		    'known/1_1_$special_>/2'(I1, J1)
 3202		)
 3203	    ;   A=(K1=<L1), !,
 3204		'known/1_1_$special_=</2'(K1, L1)
 3205	    )
 3206	;   A=(M1=:=N1), !,
 3207	    'known/1_1_$special_=:=/2'(M1, N1)
 3208	).
 3209known(A) :-
 3210	A==fail, !,
 3211	'known/1_1_$special_fail/0'.
 3212known(A) :-
 3213	'known/1_1_$default'(A).
 3214test(A) :-
 3215	nonvar(A),
 3216	(   (   (   (   (   (   (   A=(B, C), !,
 3217				    'test/1_1_$special_,/2'(B, C)
 3218				;   A=(\+D), !,
 3219				    'test/1_1_$special_\\+/1'(D)
 3220				)
 3221			    ;   A=integer(E), !,
 3222				'test/1_1_$special_integer/1'(E)
 3223			    )
 3224			;   A=float(F), !,
 3225			    'test/1_1_$special_float/1'(F)
 3226			)
 3227		    ;   A=number(G), !,
 3228			'test/1_1_$special_number/1'(G)
 3229		    )
 3230		;   A=ground(H), !,
 3231		    'test/1_1_$special_ground/1'(H)
 3232		)
 3233	    ;   A=(I=:=J), !,
 3234		'test/1_1_$special_=:=/2'(I, J)
 3235	    )
 3236	;   A=(K==L), !,
 3237	    'test/1_1_$special_==/2'(K, L)
 3238	).
 3239test(A) :-
 3240	A==true, !,
 3241	'test/1_1_$special_true/0'.
 3242test(A) :-
 3243	nonvar(A),
 3244	(   (   (   (   (   (   (   (   (   A=functor(B, C, D), !,
 3245					    'test/1_1_$special_functor/3'(B,
 3246									  C,
 3247									  D)
 3248					;   A=(E=F), !,
 3249					    'test/1_1_$special_=/2'(E,
 3250								    F)
 3251					)
 3252				    ;   A=(G;H), !,
 3253					'test/1_1_$special_;/2'(G, H)
 3254				    )
 3255				;   A=(I is J), !,
 3256				    'test/1_1_$special_is/2'(I, J)
 3257				)
 3258			    ;   A=(K<L), !,
 3259				'test/1_1_$special_</2'(K, L)
 3260			    )
 3261			;   A=(M>=N), !,
 3262			    'test/1_1_$special_>=/2'(M, N)
 3263			)
 3264		    ;   A=(O>P), !,
 3265			'test/1_1_$special_>/2'(O, P)
 3266		    )
 3267		;   A=(Q=\=R), !,
 3268		    'test/1_1_$special_=\\=/2'(Q, R)
 3269		)
 3270	    ;   A=(S=<T), !,
 3271		'test/1_1_$special_=</2'(S, T)
 3272	    )
 3273	;   A=(U\==V), !,
 3274	    'test/1_1_$special_\\==/2'(U, V)
 3275	).
 3276test(A) :-
 3277	'test/1_1_$default'(A).
 3278cleanup :-
 3279	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 3280		  A), !,
 3281	cleanup___0__0__0__1(A).
 3282cleanup___0__0__0__1([]) :-
 3283	cleanup___0__1.
 3284cleanup___0__0__0__1([A|I]) :-
 3285	(   A=suspension(_, active, _, _, _, _)
 3286	->  ( A=suspension(_, _, _, _, B, C),
 3287	      setarg(2, A, removed),
 3288	      term_variables(term(B, C), H),
 3289	      ( arg(4, A, D),
 3290		(   var(D)
 3291		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 3292			      E),
 3293		    E=[_|F],
 3294		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 3295			     F),
 3296		    (   F=[G|_]
 3297		    ->  setarg(4, G, _)
 3298		    ;   true
 3299		    )
 3300		;   D=[_, _|F],
 3301		    setarg(2, D, F),
 3302		    (   F=[G|_]
 3303		    ->  setarg(4, G, D)
 3304		    ;   true
 3305		    )
 3306		)
 3307	      ),
 3308	      'detach_known/1_1_$special_;/2___2'(H, A)
 3309	    ),
 3310	    cleanup___0__0__0__1(I)
 3311	;   cleanup___0__0__0__1(I)
 3312	).
 3313cleanup :-
 3314	cleanup___0__1.
 3315cleanup___0__1 :-
 3316	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 3317		  A), !,
 3318	cleanup___0__1__0__2(A).
 3319cleanup___0__1__0__2([]) :-
 3320	cleanup___0__2.
 3321cleanup___0__1__0__2([A|H]) :-
 3322	(   A=suspension(_, active, _, _, _)
 3323	->  ( A=suspension(_, _, _, _, B),
 3324	      setarg(2, A, removed),
 3325	      term_variables(B, G),
 3326	      ( arg(4, A, C),
 3327		(   var(C)
 3328		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 3329			      D),
 3330		    D=[_|E],
 3331		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 3332			     E),
 3333		    (   E=[F|_]
 3334		    ->  setarg(4, F, _)
 3335		    ;   true
 3336		    )
 3337		;   C=[_, _|E],
 3338		    setarg(2, C, E),
 3339		    (   E=[F|_]
 3340		    ->  setarg(4, F, C)
 3341		    ;   true
 3342		    )
 3343		)
 3344	      ),
 3345	      'detach_known/1_1_$special_nonvar/1___1'(G, A)
 3346	    ),
 3347	    cleanup___0__1__0__2(H)
 3348	;   cleanup___0__1__0__2(H)
 3349	).
 3350cleanup___0__1 :-
 3351	cleanup___0__2.
 3352cleanup___0__2 :-
 3353	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 3354		  A), !,
 3355	cleanup___0__2__0__3(A).
 3356cleanup___0__2__0__3([]) :-
 3357	cleanup___0__3.
 3358cleanup___0__2__0__3([A|H]) :-
 3359	(   A=suspension(_, active, _, _, _)
 3360	->  ( A=suspension(_, _, _, _, B),
 3361	      setarg(2, A, removed),
 3362	      term_variables(B, G),
 3363	      ( arg(4, A, C),
 3364		(   var(C)
 3365		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 3366			      D),
 3367		    D=[_|E],
 3368		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 3369			     E),
 3370		    (   E=[F|_]
 3371		    ->  setarg(4, F, _)
 3372		    ;   true
 3373		    )
 3374		;   C=[_, _|E],
 3375		    setarg(2, C, E),
 3376		    (   E=[F|_]
 3377		    ->  setarg(4, F, C)
 3378		    ;   true
 3379		    )
 3380		)
 3381	      ),
 3382	      'detach_known/1_1_$special_var/1___1'(G, A)
 3383	    ),
 3384	    cleanup___0__2__0__3(H)
 3385	;   cleanup___0__2__0__3(H)
 3386	).
 3387cleanup___0__2 :-
 3388	cleanup___0__3.
 3389cleanup___0__3 :-
 3390	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 3391		  A), !,
 3392	cleanup___0__3__0__4(A).
 3393cleanup___0__3__0__4([]) :-
 3394	cleanup___0__4.
 3395cleanup___0__3__0__4([A|H]) :-
 3396	(   A=suspension(_, active, _, _, _, _)
 3397	->  ( A=suspension(_, _, _, _, _, B),
 3398	      setarg(2, A, removed),
 3399	      term_variables(B, G),
 3400	      ( arg(5, A, C),
 3401		(   var(C)
 3402		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 3403			      D),
 3404		    D=[_|E],
 3405		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 3406			     E),
 3407		    (   E=[F|_]
 3408		    ->  setarg(5, F, _)
 3409		    ;   true
 3410		    )
 3411		;   C=[_, _|E],
 3412		    setarg(2, C, E),
 3413		    (   E=[F|_]
 3414		    ->  setarg(5, F, C)
 3415		    ;   true
 3416		    )
 3417		)
 3418	      ),
 3419	      'detach_known/1_1_$special_atom/1___1'(G, A)
 3420	    ),
 3421	    cleanup___0__3__0__4(H)
 3422	;   cleanup___0__3__0__4(H)
 3423	).
 3424cleanup___0__3 :-
 3425	cleanup___0__4.
 3426cleanup___0__4 :-
 3427	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 3428		  A), !,
 3429	cleanup___0__4__0__5(A).
 3430cleanup___0__4__0__5([]) :-
 3431	cleanup___0__5.
 3432cleanup___0__4__0__5([A|H]) :-
 3433	(   A=suspension(_, active, _, _, _, _)
 3434	->  ( A=suspension(_, _, _, _, _, B),
 3435	      setarg(2, A, removed),
 3436	      term_variables(B, G),
 3437	      ( arg(5, A, C),
 3438		(   var(C)
 3439		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 3440			      D),
 3441		    D=[_|E],
 3442		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 3443			     E),
 3444		    (   E=[F|_]
 3445		    ->  setarg(5, F, _)
 3446		    ;   true
 3447		    )
 3448		;   C=[_, _|E],
 3449		    setarg(2, C, E),
 3450		    (   E=[F|_]
 3451		    ->  setarg(5, F, C)
 3452		    ;   true
 3453		    )
 3454		)
 3455	      ),
 3456	      'detach_known/1_1_$special_atomic/1___1'(G, A)
 3457	    ),
 3458	    cleanup___0__4__0__5(H)
 3459	;   cleanup___0__4__0__5(H)
 3460	).
 3461cleanup___0__4 :-
 3462	cleanup___0__5.
 3463cleanup___0__5 :-
 3464	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 3465		  A), !,
 3466	cleanup___0__5__0__6(A).
 3467cleanup___0__5__0__6([]) :-
 3468	cleanup___0__6.
 3469cleanup___0__5__0__6([A|H]) :-
 3470	(   A=suspension(_, active, _, _, _, _)
 3471	->  ( A=suspension(_, _, _, _, _, B),
 3472	      setarg(2, A, removed),
 3473	      term_variables(B, G),
 3474	      ( arg(5, A, C),
 3475		(   var(C)
 3476		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 3477			      D),
 3478		    D=[_|E],
 3479		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 3480			     E),
 3481		    (   E=[F|_]
 3482		    ->  setarg(5, F, _)
 3483		    ;   true
 3484		    )
 3485		;   C=[_, _|E],
 3486		    setarg(2, C, E),
 3487		    (   E=[F|_]
 3488		    ->  setarg(5, F, C)
 3489		    ;   true
 3490		    )
 3491		)
 3492	      ),
 3493	      'detach_known/1_1_$special_compound/1___1'(G, A)
 3494	    ),
 3495	    cleanup___0__5__0__6(H)
 3496	;   cleanup___0__5__0__6(H)
 3497	).
 3498cleanup___0__5 :-
 3499	cleanup___0__6.
 3500cleanup___0__6 :-
 3501	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 3502		  A), !,
 3503	cleanup___0__6__0__7(A).
 3504cleanup___0__6__0__7([]) :-
 3505	cleanup___0__7.
 3506cleanup___0__6__0__7([A|H]) :-
 3507	(   A=suspension(_, active, _, _, _, _)
 3508	->  ( A=suspension(_, _, _, _, _, B),
 3509	      setarg(2, A, removed),
 3510	      term_variables(B, G),
 3511	      ( arg(5, A, C),
 3512		(   var(C)
 3513		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 3514			      D),
 3515		    D=[_|E],
 3516		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 3517			     E),
 3518		    (   E=[F|_]
 3519		    ->  setarg(5, F, _)
 3520		    ;   true
 3521		    )
 3522		;   C=[_, _|E],
 3523		    setarg(2, C, E),
 3524		    (   E=[F|_]
 3525		    ->  setarg(5, F, C)
 3526		    ;   true
 3527		    )
 3528		)
 3529	      ),
 3530	      'detach_known/1_1_$special_ground/1___1'(G, A)
 3531	    ),
 3532	    cleanup___0__6__0__7(H)
 3533	;   cleanup___0__6__0__7(H)
 3534	).
 3535cleanup___0__6 :-
 3536	cleanup___0__7.
 3537cleanup___0__7 :-
 3538	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 3539		  A), !,
 3540	cleanup___0__7__0__8(A).
 3541cleanup___0__7__0__8([]) :-
 3542	cleanup___0__8.
 3543cleanup___0__7__0__8([A|H]) :-
 3544	(   A=suspension(_, active, _, _, _, _)
 3545	->  ( A=suspension(_, _, _, _, _, B),
 3546	      setarg(2, A, removed),
 3547	      term_variables(B, G),
 3548	      ( arg(5, A, C),
 3549		(   var(C)
 3550		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 3551			      D),
 3552		    D=[_|E],
 3553		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 3554			     E),
 3555		    (   E=[F|_]
 3556		    ->  setarg(5, F, _)
 3557		    ;   true
 3558		    )
 3559		;   C=[_, _|E],
 3560		    setarg(2, C, E),
 3561		    (   E=[F|_]
 3562		    ->  setarg(5, F, C)
 3563		    ;   true
 3564		    )
 3565		)
 3566	      ),
 3567	      'detach_known/1_1_$special_integer/1___1'(G, A)
 3568	    ),
 3569	    cleanup___0__7__0__8(H)
 3570	;   cleanup___0__7__0__8(H)
 3571	).
 3572cleanup___0__7 :-
 3573	cleanup___0__8.
 3574cleanup___0__8 :-
 3575	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 3576		  A), !,
 3577	cleanup___0__8__0__9(A).
 3578cleanup___0__8__0__9([]) :-
 3579	cleanup___0__9.
 3580cleanup___0__8__0__9([A|H]) :-
 3581	(   A=suspension(_, active, _, _, _, _)
 3582	->  ( A=suspension(_, _, _, _, _, B),
 3583	      setarg(2, A, removed),
 3584	      term_variables(B, G),
 3585	      ( arg(5, A, C),
 3586		(   var(C)
 3587		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 3588			      D),
 3589		    D=[_|E],
 3590		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 3591			     E),
 3592		    (   E=[F|_]
 3593		    ->  setarg(5, F, _)
 3594		    ;   true
 3595		    )
 3596		;   C=[_, _|E],
 3597		    setarg(2, C, E),
 3598		    (   E=[F|_]
 3599		    ->  setarg(5, F, C)
 3600		    ;   true
 3601		    )
 3602		)
 3603	      ),
 3604	      'detach_known/1_1_$special_float/1___1'(G, A)
 3605	    ),
 3606	    cleanup___0__8__0__9(H)
 3607	;   cleanup___0__8__0__9(H)
 3608	).
 3609cleanup___0__8 :-
 3610	cleanup___0__9.
 3611cleanup___0__9 :-
 3612	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 3613		  A), !,
 3614	cleanup___0__9__0__10(A).
 3615cleanup___0__9__0__10([]) :-
 3616	cleanup___0__10.
 3617cleanup___0__9__0__10([A|H]) :-
 3618	(   A=suspension(_, active, _, _, _, _)
 3619	->  ( A=suspension(_, _, _, _, _, B),
 3620	      setarg(2, A, removed),
 3621	      term_variables(B, G),
 3622	      ( arg(5, A, C),
 3623		(   var(C)
 3624		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 3625			      D),
 3626		    D=[_|E],
 3627		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 3628			     E),
 3629		    (   E=[F|_]
 3630		    ->  setarg(5, F, _)
 3631		    ;   true
 3632		    )
 3633		;   C=[_, _|E],
 3634		    setarg(2, C, E),
 3635		    (   E=[F|_]
 3636		    ->  setarg(5, F, C)
 3637		    ;   true
 3638		    )
 3639		)
 3640	      ),
 3641	      'detach_known/1_1_$special_number/1___1'(G, A)
 3642	    ),
 3643	    cleanup___0__9__0__10(H)
 3644	;   cleanup___0__9__0__10(H)
 3645	).
 3646cleanup___0__9 :-
 3647	cleanup___0__10.
 3648cleanup___0__10 :-
 3649	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 3650		  A), !,
 3651	cleanup___0__10__0__11(A).
 3652cleanup___0__10__0__11([]) :-
 3653	cleanup___0__11.
 3654cleanup___0__10__0__11([A|I]) :-
 3655	(   A=suspension(_, active, _, _, _, _, _)
 3656	->  ( A=suspension(_, _, _, _, _, B, C),
 3657	      setarg(2, A, removed),
 3658	      term_variables(term(B, C), H),
 3659	      ( arg(5, A, D),
 3660		(   var(D)
 3661		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 3662			      E),
 3663		    E=[_|F],
 3664		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 3665			     F),
 3666		    (   F=[G|_]
 3667		    ->  setarg(5, G, _)
 3668		    ;   true
 3669		    )
 3670		;   D=[_, _|F],
 3671		    setarg(2, D, F),
 3672		    (   F=[G|_]
 3673		    ->  setarg(5, G, D)
 3674		    ;   true
 3675		    )
 3676		)
 3677	      ),
 3678	      'detach_known/1_1_$special_=\\=/2___2'(H, A)
 3679	    ),
 3680	    cleanup___0__10__0__11(I)
 3681	;   cleanup___0__10__0__11(I)
 3682	).
 3683cleanup___0__10 :-
 3684	cleanup___0__11.
 3685cleanup___0__11 :-
 3686	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 3687		  A), !,
 3688	cleanup___0__11__0__12(A).
 3689cleanup___0__11__0__12([]) :-
 3690	cleanup___0__12.
 3691cleanup___0__11__0__12([A|H]) :-
 3692	(   A=suspension(_, active, _, _, _)
 3693	->  ( A=suspension(_, _, _, _, B),
 3694	      setarg(2, A, removed),
 3695	      term_variables(B, G),
 3696	      ( arg(4, A, C),
 3697		(   var(C)
 3698		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 3699			      D),
 3700		    D=[_|E],
 3701		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 3702			     E),
 3703		    (   E=[F|_]
 3704		    ->  setarg(4, F, _)
 3705		    ;   true
 3706		    )
 3707		;   C=[_, _|E],
 3708		    setarg(2, C, E),
 3709		    (   E=[F|_]
 3710		    ->  setarg(4, F, C)
 3711		    ;   true
 3712		    )
 3713		)
 3714	      ),
 3715	      'detach_known/1_1_$special_\\+/1___1'(G, A)
 3716	    ),
 3717	    cleanup___0__11__0__12(H)
 3718	;   cleanup___0__11__0__12(H)
 3719	).
 3720cleanup___0__11 :-
 3721	cleanup___0__12.
 3722cleanup___0__12 :-
 3723	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 3724		  A), !,
 3725	cleanup___0__12__0__13(A).
 3726cleanup___0__12__0__13([]) :-
 3727	cleanup___0__13.
 3728cleanup___0__12__0__13([A|J]) :-
 3729	(   A=suspension(_, active, _, _, _, _, _)
 3730	->  ( A=suspension(_, _, _, _, B, C, D),
 3731	      setarg(2, A, removed),
 3732	      term_variables(term(B, C, D), I),
 3733	      ( arg(4, A, E),
 3734		(   var(E)
 3735		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 3736			      F),
 3737		    F=[_|G],
 3738		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 3739			     G),
 3740		    (   G=[H|_]
 3741		    ->  setarg(4, H, _)
 3742		    ;   true
 3743		    )
 3744		;   E=[_, _|G],
 3745		    setarg(2, E, G),
 3746		    (   G=[H|_]
 3747		    ->  setarg(4, H, E)
 3748		    ;   true
 3749		    )
 3750		)
 3751	      ),
 3752	      'detach_known/1_1_$special_functor/3___3'(I, A)
 3753	    ),
 3754	    cleanup___0__12__0__13(J)
 3755	;   cleanup___0__12__0__13(J)
 3756	).
 3757cleanup___0__12 :-
 3758	cleanup___0__13.
 3759cleanup___0__13 :-
 3760	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 3761		  A), !,
 3762	cleanup___0__13__0__14(A).
 3763cleanup___0__13__0__14([]) :-
 3764	cleanup___0__14.
 3765cleanup___0__13__0__14([A|I]) :-
 3766	(   A=suspension(_, active, _, _, _, _, _)
 3767	->  ( A=suspension(_, _, _, _, _, B, C),
 3768	      setarg(2, A, removed),
 3769	      term_variables(term(B, C), H),
 3770	      ( arg(5, A, D),
 3771		(   var(D)
 3772		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 3773			      E),
 3774		    E=[_|F],
 3775		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 3776			     F),
 3777		    (   F=[G|_]
 3778		    ->  setarg(5, G, _)
 3779		    ;   true
 3780		    )
 3781		;   D=[_, _|F],
 3782		    setarg(2, D, F),
 3783		    (   F=[G|_]
 3784		    ->  setarg(5, G, D)
 3785		    ;   true
 3786		    )
 3787		)
 3788	      ),
 3789	      'detach_known/1_1_$special_\\=/2___2'(H, A)
 3790	    ),
 3791	    cleanup___0__13__0__14(I)
 3792	;   cleanup___0__13__0__14(I)
 3793	).
 3794cleanup___0__13 :-
 3795	cleanup___0__14.
 3796cleanup___0__14 :-
 3797	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 3798		  A), !,
 3799	cleanup___0__14__0__15(A).
 3800cleanup___0__14__0__15([]) :-
 3801	cleanup___0__15.
 3802cleanup___0__14__0__15([A|I]) :-
 3803	(   A=suspension(_, active, _, _, _, _)
 3804	->  ( A=suspension(_, _, _, _, B, C),
 3805	      setarg(2, A, removed),
 3806	      term_variables(term(B, C), H),
 3807	      ( arg(4, A, D),
 3808		(   var(D)
 3809		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 3810			      E),
 3811		    E=[_|F],
 3812		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 3813			     F),
 3814		    (   F=[G|_]
 3815		    ->  setarg(4, G, _)
 3816		    ;   true
 3817		    )
 3818		;   D=[_, _|F],
 3819		    setarg(2, D, F),
 3820		    (   F=[G|_]
 3821		    ->  setarg(4, G, D)
 3822		    ;   true
 3823		    )
 3824		)
 3825	      ),
 3826	      'detach_known/1_1_$special_=/2___2'(H, A)
 3827	    ),
 3828	    cleanup___0__14__0__15(I)
 3829	;   cleanup___0__14__0__15(I)
 3830	).
 3831cleanup___0__14 :-
 3832	cleanup___0__15.
 3833cleanup___0__15 :-
 3834	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 3835		  A), !,
 3836	cleanup___0__15__0__17(A).
 3837cleanup___0__15__0__17([]) :-
 3838	cleanup___0__16.
 3839cleanup___0__15__0__17([A|I]) :-
 3840	(   A=suspension(_, active, _, _, _, _, _)
 3841	->  ( A=suspension(_, _, _, _, _, B, C),
 3842	      setarg(2, A, removed),
 3843	      term_variables(term(B, C), H),
 3844	      ( arg(5, A, D),
 3845		(   var(D)
 3846		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 3847			      E),
 3848		    E=[_|F],
 3849		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 3850			     F),
 3851		    (   F=[G|_]
 3852		    ->  setarg(5, G, _)
 3853		    ;   true
 3854		    )
 3855		;   D=[_, _|F],
 3856		    setarg(2, D, F),
 3857		    (   F=[G|_]
 3858		    ->  setarg(5, G, D)
 3859		    ;   true
 3860		    )
 3861		)
 3862	      ),
 3863	      'detach_known/1_1_$special_\\==/2___2'(H, A)
 3864	    ),
 3865	    cleanup___0__15__0__17(I)
 3866	;   cleanup___0__15__0__17(I)
 3867	).
 3868cleanup___0__15 :-
 3869	cleanup___0__16.
 3870cleanup___0__16 :-
 3871	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 3872		  A), !,
 3873	cleanup___0__16__0__18(A).
 3874cleanup___0__16__0__18([]) :-
 3875	cleanup___0__17.
 3876cleanup___0__16__0__18([A|I]) :-
 3877	(   A=suspension(_, active, _, _, _, _, _)
 3878	->  ( A=suspension(_, _, _, _, _, B, C),
 3879	      setarg(2, A, removed),
 3880	      term_variables(term(B, C), H),
 3881	      ( arg(5, A, D),
 3882		(   var(D)
 3883		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 3884			      E),
 3885		    E=[_|F],
 3886		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 3887			     F),
 3888		    (   F=[G|_]
 3889		    ->  setarg(5, G, _)
 3890		    ;   true
 3891		    )
 3892		;   D=[_, _|F],
 3893		    setarg(2, D, F),
 3894		    (   F=[G|_]
 3895		    ->  setarg(5, G, D)
 3896		    ;   true
 3897		    )
 3898		)
 3899	      ),
 3900	      'detach_known/1_1_$special_==/2___2'(H, A)
 3901	    ),
 3902	    cleanup___0__16__0__18(I)
 3903	;   cleanup___0__16__0__18(I)
 3904	).
 3905cleanup___0__16 :-
 3906	cleanup___0__17.
 3907cleanup___0__17 :-
 3908	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 3909		  A), !,
 3910	cleanup___0__17__0__23(A).
 3911cleanup___0__17__0__23([]) :-
 3912	cleanup___0__18.
 3913cleanup___0__17__0__23([A|I]) :-
 3914	(   A=suspension(_, active, _, _, _, _, _)
 3915	->  ( A=suspension(_, _, _, _, _, B, C),
 3916	      setarg(2, A, removed),
 3917	      term_variables(term(B, C), H),
 3918	      ( arg(5, A, D),
 3919		(   var(D)
 3920		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 3921			      E),
 3922		    E=[_|F],
 3923		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 3924			     F),
 3925		    (   F=[G|_]
 3926		    ->  setarg(5, G, _)
 3927		    ;   true
 3928		    )
 3929		;   D=[_, _|F],
 3930		    setarg(2, D, F),
 3931		    (   F=[G|_]
 3932		    ->  setarg(5, G, D)
 3933		    ;   true
 3934		    )
 3935		)
 3936	      ),
 3937	      'detach_known/1_1_$special_=</2___2'(H, A)
 3938	    ),
 3939	    cleanup___0__17__0__23(I)
 3940	;   cleanup___0__17__0__23(I)
 3941	).
 3942cleanup___0__17 :-
 3943	cleanup___0__18.
 3944cleanup___0__18 :-
 3945	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 3946		  A), !,
 3947	cleanup___0__18__0__24(A).
 3948cleanup___0__18__0__24([]) :-
 3949	cleanup___0__19.
 3950cleanup___0__18__0__24([A|I]) :-
 3951	(   A=suspension(_, active, _, _, _, _, _)
 3952	->  ( A=suspension(_, _, _, _, _, B, C),
 3953	      setarg(2, A, removed),
 3954	      term_variables(term(B, C), H),
 3955	      ( arg(5, A, D),
 3956		(   var(D)
 3957		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 3958			      E),
 3959		    E=[_|F],
 3960		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 3961			     F),
 3962		    (   F=[G|_]
 3963		    ->  setarg(5, G, _)
 3964		    ;   true
 3965		    )
 3966		;   D=[_, _|F],
 3967		    setarg(2, D, F),
 3968		    (   F=[G|_]
 3969		    ->  setarg(5, G, D)
 3970		    ;   true
 3971		    )
 3972		)
 3973	      ),
 3974	      'detach_known/1_1_$special_=:=/2___2'(H, A)
 3975	    ),
 3976	    cleanup___0__18__0__24(I)
 3977	;   cleanup___0__18__0__24(I)
 3978	).
 3979cleanup___0__18 :-
 3980	cleanup___0__19.
 3981cleanup___0__19 :-
 3982	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 3983		  A), !,
 3984	cleanup___0__19__0__25(A).
 3985cleanup___0__19__0__25([]) :-
 3986	cleanup___0__20.
 3987cleanup___0__19__0__25([A|F]) :-
 3988	(   A=suspension(_, active, _)
 3989	->  ( setarg(2, A, removed),
 3990	      arg(3, A, B),
 3991	      (   var(B)
 3992	      ->  nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 3993			    C),
 3994		  C=[_|D],
 3995		  b_setval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 3996			   D),
 3997		  (   D=[E|_]
 3998		  ->  setarg(3, E, _)
 3999		  ;   true
 4000		  )
 4001	      ;   B=[_, _|D],
 4002		  setarg(2, B, D),
 4003		  (   D=[E|_]
 4004		  ->  setarg(3, E, B)
 4005		  ;   true
 4006		  )
 4007	      )
 4008	    ),
 4009	    cleanup___0__19__0__25(F)
 4010	;   cleanup___0__19__0__25(F)
 4011	).
 4012cleanup___0__19 :-
 4013	cleanup___0__20.
 4014cleanup___0__20 :-
 4015	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 4016		  A), !,
 4017	cleanup___0__20__0__26(A).
 4018cleanup___0__20__0__26([]) :-
 4019	cleanup___0__21.
 4020cleanup___0__20__0__26([A|H]) :-
 4021	(   A=suspension(_, active, _, _, _)
 4022	->  ( A=suspension(_, _, _, _, B),
 4023	      setarg(2, A, removed),
 4024	      term_variables(B, G),
 4025	      ( arg(4, A, C),
 4026		(   var(C)
 4027		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 4028			      D),
 4029		    D=[_|E],
 4030		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 4031			     E),
 4032		    (   E=[F|_]
 4033		    ->  setarg(4, F, _)
 4034		    ;   true
 4035		    )
 4036		;   C=[_, _|E],
 4037		    setarg(2, C, E),
 4038		    (   E=[F|_]
 4039		    ->  setarg(4, F, C)
 4040		    ;   true
 4041		    )
 4042		)
 4043	      ),
 4044	      'detach_known/1_1_$default___1'(G, A)
 4045	    ),
 4046	    cleanup___0__20__0__26(H)
 4047	;   cleanup___0__20__0__26(H)
 4048	).
 4049cleanup___0__20 :-
 4050	cleanup___0__21.
 4051cleanup___0__21 :-
 4052	nb_getval('$chr_store_global_list_guard_entailment____variables___1',
 4053		  A), !,
 4054	cleanup___0__21__0__27(A).
 4055cleanup___0__21__0__27([]) :-
 4056	cleanup___0__22.
 4057cleanup___0__21__0__27([A|H]) :-
 4058	(   A=suspension(_, active, _, _)
 4059	->  ( A=suspension(_, _, _, B),
 4060	      setarg(2, A, removed),
 4061	      term_variables(B, G),
 4062	      ( arg(3, A, C),
 4063		(   var(C)
 4064		->  nb_getval('$chr_store_global_list_guard_entailment____variables___1',
 4065			      D),
 4066		    D=[_|E],
 4067		    b_setval('$chr_store_global_list_guard_entailment____variables___1',
 4068			     E),
 4069		    (   E=[F|_]
 4070		    ->  setarg(3, F, _)
 4071		    ;   true
 4072		    )
 4073		;   C=[_, _|E],
 4074		    setarg(2, C, E),
 4075		    (   E=[F|_]
 4076		    ->  setarg(3, F, C)
 4077		    ;   true
 4078		    )
 4079		)
 4080	      ),
 4081	      detach_variables___1(G, A)
 4082	    ),
 4083	    cleanup___0__21__0__27(H)
 4084	;   cleanup___0__21__0__27(H)
 4085	).
 4086cleanup___0__21 :-
 4087	cleanup___0__22.
 4088cleanup___0__22.
 4089variables(A) :-
 4090	variables___1__0(A, _).
 4091variables___1__0(V, N) :-
 4092	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 4093		  A),
 4094	member(B, A),
 4095	B=suspension(_, active, _, _, E, D, C),
 4096	ground(C),
 4097	ground(D),
 4098	var(E), !,
 4099	B=suspension(_, _, _, _, F, G, H),
 4100	setarg(2, B, removed),
 4101	term_variables(term(F, G, H), M),
 4102	arg(4, B, I),
 4103	(   var(I)
 4104	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 4105		      J),
 4106	    J=[_|K],
 4107	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 4108		     K),
 4109	    (   K=[L|_]
 4110	    ->  setarg(4, L, _)
 4111	    ;   true
 4112	    )
 4113	;   I=[_, _|K],
 4114	    setarg(2, I, K),
 4115	    (   K=[L|_]
 4116	    ->  setarg(4, L, I)
 4117	    ;   true
 4118	    )
 4119	),
 4120	'detach_known/1_1_$special_functor/3___3'(M, B),
 4121	(   var(N)
 4122	->  true
 4123	;   N=suspension(_, _, _, O),
 4124	    setarg(2, N, removed),
 4125	    term_variables(O, T),
 4126	    ( arg(3, N, P),
 4127	      (   var(P)
 4128	      ->  nb_getval('$chr_store_global_list_guard_entailment____variables___1',
 4129			    Q),
 4130		  Q=[_|R],
 4131		  b_setval('$chr_store_global_list_guard_entailment____variables___1',
 4132			   R),
 4133		  (   R=[S|_]
 4134		  ->  setarg(3, S, _)
 4135		  ;   true
 4136		  )
 4137	      ;   P=[_, _|R],
 4138		  setarg(2, P, R),
 4139		  (   R=[S|_]
 4140		  ->  setarg(3, S, P)
 4141		  ;   true
 4142		  )
 4143	      )
 4144	    ),
 4145	    detach_variables___1(T, N)
 4146	),
 4147	functor(E, D, C),
 4148	E=..[_|U],
 4149	append(U, V, W),
 4150	variables(W).
 4151variables___1__0(B, A) :-
 4152	(   var(A)
 4153	->  ( A=suspension(D, active, _, B),
 4154	      term_variables(B, C),
 4155	      'chr none_locked'(C),
 4156	      'chr gen_id'(D)
 4157	    ),
 4158	    ( nb_getval('$chr_store_global_list_guard_entailment____variables___1',
 4159			E),
 4160	      F=[A|E],
 4161	      b_setval('$chr_store_global_list_guard_entailment____variables___1',
 4162		       F),
 4163	      (   E=[G|_]
 4164	      ->  setarg(3, G, F)
 4165	      ;   true
 4166	      )
 4167	    ),
 4168	    attach_variables___1(C, A)
 4169	;   setarg(2, A, active)
 4170	).
 4171'test/1_1_$default'(_) :-
 4172	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4173		  A),
 4174	member(B, A),
 4175	B=suspension(_, active, _), !.
 4176'test/1_1_$default'(A) :-
 4177	nonvar(A),
 4178	(   (   (   (   (   A=nonvar(B),
 4179			    (   'chr newvia_1'(B, C)
 4180			    ->  get_attr(C, guard_entailment, D),
 4181				D=v(_, _, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4182			    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 4183					  E)
 4184			    ),
 4185			    member(F, E),
 4186			    F=suspension(_, active, _, _, G),
 4187			    G==B, !
 4188			;   A=var(H),
 4189			    (   'chr newvia_1'(H, I)
 4190			    ->  get_attr(I, guard_entailment, J),
 4191				J=v(_, _, _, _, _, K, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4192			    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 4193					  K)
 4194			    ),
 4195			    member(L, K),
 4196			    L=suspension(_, active, _, _, M),
 4197			    M==H, !
 4198			)
 4199		    ;   A=atom(N),
 4200			(   'chr newvia_1'(N, O)
 4201			->  get_attr(O, guard_entailment, P),
 4202			    P=v(_, _, _, _, _, _, Q, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4203			;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 4204				      Q)
 4205			),
 4206			member(R, Q),
 4207			R=suspension(_, active, _, _, _, S),
 4208			S==N, !
 4209		    )
 4210		;   A=atomic(T),
 4211		    (   'chr newvia_1'(T, U)
 4212		    ->  get_attr(U, guard_entailment, V),
 4213			V=v(_, _, _, _, _, _, _, W, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4214		    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 4215				  W)
 4216		    ),
 4217		    member(X, W),
 4218		    X=suspension(_, active, _, _, _, Y),
 4219		    Y==T, !
 4220		)
 4221	    ;   A=compound(Z),
 4222		(   'chr newvia_1'(Z, A1)
 4223		->  get_attr(A1, guard_entailment, B1),
 4224		    B1=v(_, _, _, _, _, _, _, _, C1, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4225		;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 4226			      C1)
 4227		),
 4228		member(D1, C1),
 4229		D1=suspension(_, active, _, _, _, E1),
 4230		E1==Z, !
 4231	    )
 4232	;   A=(F1\=G1),
 4233	    (   'chr newvia_2'(F1, G1, H1)
 4234	    ->  get_attr(H1, guard_entailment, I1),
 4235		I1=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, J1, _, _, _, _, _)
 4236	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 4237			  J1)
 4238	    ),
 4239	    member(K1, J1),
 4240	    K1=suspension(_, active, _, _, _, L1, M1),
 4241	    L1==F1,
 4242	    M1==G1, !
 4243	).
 4244'test/1_1_$default'(A) :-
 4245	(   'chr newvia_1'(A, B)
 4246	->  get_attr(B, guard_entailment, C),
 4247	    C=v(_, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4248	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 4249		      D)
 4250	),
 4251	member(E, D),
 4252	E=suspension(_, active, _, _, F),
 4253	F==A, !.
 4254'test/1_1_$default'(K) :-
 4255	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4256		  A),
 4257	member(B, A),
 4258	B=suspension(_, active, _, _, J, M), !,
 4259	B=suspension(_, _, _, _, C, D),
 4260	setarg(2, B, removed),
 4261	term_variables(term(C, D), I),
 4262	arg(4, B, E),
 4263	(   var(E)
 4264	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4265		      F),
 4266	    F=[_|G],
 4267	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4268		     G),
 4269	    (   G=[H|_]
 4270	    ->  setarg(4, H, _)
 4271	    ;   true
 4272	    )
 4273	;   E=[_, _|G],
 4274	    setarg(2, E, G),
 4275	    (   G=[H|_]
 4276	    ->  setarg(4, H, E)
 4277	    ;   true
 4278	    )
 4279	),
 4280	'detach_known/1_1_$special_;/2___2'(I, B),
 4281	\+ try(J, K), !,
 4282	negate_b(J, L),
 4283	known(L),
 4284	\+ try(M, K).
 4285'test/1_1_$default'(_) :-
 4286	fail.
 4287'test/1_1_$special_,/2'(_, _) :-
 4288	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4289		  A),
 4290	member(B, A),
 4291	B=suspension(_, active, _), !.
 4292'test/1_1_$special_,/2'(A, B) :-
 4293	test(A),
 4294	known(A),
 4295	test(B).
 4296'test/1_1_$special_\\+/1'(_) :-
 4297	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4298		  A),
 4299	member(B, A),
 4300	B=suspension(_, active, _), !.
 4301'test/1_1_$special_\\+/1'(A) :-
 4302	(   'chr newvia_1'(A, B)
 4303	->  get_attr(B, guard_entailment, C),
 4304	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
 4305	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 4306		      D)
 4307	),
 4308	member(E, D),
 4309	E=suspension(_, active, _, _, F),
 4310	F==A, !.
 4311'test/1_1_$special_\\+/1'(A) :-
 4312	nonvar(A),
 4313	(   (   (   (   (   (   (   A=functor(B, C, D),
 4314				    nonvar(B),
 4315				    (   'chr lock'(B),
 4316					'chr lock'(C),
 4317					'chr lock'(D),
 4318					functor(B, C, D),
 4319					'chr unlock'(B),
 4320					'chr unlock'(C),
 4321					'chr unlock'(D), !,
 4322					fail
 4323				    ;    !
 4324				    )
 4325				;   A=ground(E),
 4326				    ground(E), !,
 4327				    fail
 4328				)
 4329			    ;   A=number(F),
 4330				number(F), !,
 4331				fail
 4332			    )
 4333			;   A=float(G),
 4334			    float(G), !,
 4335			    fail
 4336			)
 4337		    ;   A=integer(H),
 4338			integer(H), !,
 4339			fail
 4340		    )
 4341		;   A=number(I),
 4342		    nonvar(I), !
 4343		)
 4344	    ;   A=float(J),
 4345		nonvar(J), !
 4346	    )
 4347	;   A=integer(K),
 4348	    nonvar(K), !
 4349	).
 4350'test/1_1_$special_\\+/1'(K) :-
 4351	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4352		  A),
 4353	member(B, A),
 4354	B=suspension(_, active, _, _, J, M), !,
 4355	B=suspension(_, _, _, _, C, D),
 4356	setarg(2, B, removed),
 4357	term_variables(term(C, D), I),
 4358	arg(4, B, E),
 4359	(   var(E)
 4360	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4361		      F),
 4362	    F=[_|G],
 4363	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4364		     G),
 4365	    (   G=[H|_]
 4366	    ->  setarg(4, H, _)
 4367	    ;   true
 4368	    )
 4369	;   E=[_, _|G],
 4370	    setarg(2, E, G),
 4371	    (   G=[H|_]
 4372	    ->  setarg(4, H, E)
 4373	    ;   true
 4374	    )
 4375	),
 4376	'detach_known/1_1_$special_;/2___2'(I, B),
 4377	\+ try(J, \+K), !,
 4378	negate_b(J, L),
 4379	known(L),
 4380	\+ try(M, \+K).
 4381'test/1_1_$special_\\+/1'(_) :-
 4382	fail.
 4383'test/1_1_$special_integer/1'(_) :-
 4384	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4385		  A),
 4386	member(B, A),
 4387	B=suspension(_, active, _), !.
 4388'test/1_1_$special_integer/1'(A) :-
 4389	(   'chr newvia_1'(A, B)
 4390	->  get_attr(B, guard_entailment, C),
 4391	    C=v(_, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _)
 4392	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 4393		      D)
 4394	),
 4395	member(E, D),
 4396	E=suspension(_, active, _, _, _, F),
 4397	F==A, !.
 4398'test/1_1_$special_integer/1'(A) :-
 4399	integer(A), !.
 4400'test/1_1_$special_integer/1'(A) :-
 4401	nonvar(A), !,
 4402	fail.
 4403'test/1_1_$special_integer/1'(K) :-
 4404	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4405		  A),
 4406	member(B, A),
 4407	B=suspension(_, active, _, _, J, M), !,
 4408	B=suspension(_, _, _, _, C, D),
 4409	setarg(2, B, removed),
 4410	term_variables(term(C, D), I),
 4411	arg(4, B, E),
 4412	(   var(E)
 4413	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4414		      F),
 4415	    F=[_|G],
 4416	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4417		     G),
 4418	    (   G=[H|_]
 4419	    ->  setarg(4, H, _)
 4420	    ;   true
 4421	    )
 4422	;   E=[_, _|G],
 4423	    setarg(2, E, G),
 4424	    (   G=[H|_]
 4425	    ->  setarg(4, H, E)
 4426	    ;   true
 4427	    )
 4428	),
 4429	'detach_known/1_1_$special_;/2___2'(I, B),
 4430	\+ try(J, integer(K)), !,
 4431	negate_b(J, L),
 4432	known(L),
 4433	\+ try(M, integer(K)).
 4434'test/1_1_$special_integer/1'(_) :-
 4435	fail.
 4436'test/1_1_$special_float/1'(_) :-
 4437	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4438		  A),
 4439	member(B, A),
 4440	B=suspension(_, active, _), !.
 4441'test/1_1_$special_float/1'(A) :-
 4442	(   'chr newvia_1'(A, B)
 4443	->  get_attr(B, guard_entailment, C),
 4444	    C=v(_, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _)
 4445	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 4446		      D)
 4447	),
 4448	member(E, D),
 4449	E=suspension(_, active, _, _, _, F),
 4450	F==A, !.
 4451'test/1_1_$special_float/1'(A) :-
 4452	float(A), !.
 4453'test/1_1_$special_float/1'(A) :-
 4454	nonvar(A), !,
 4455	fail.
 4456'test/1_1_$special_float/1'(K) :-
 4457	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4458		  A),
 4459	member(B, A),
 4460	B=suspension(_, active, _, _, J, M), !,
 4461	B=suspension(_, _, _, _, C, D),
 4462	setarg(2, B, removed),
 4463	term_variables(term(C, D), I),
 4464	arg(4, B, E),
 4465	(   var(E)
 4466	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4467		      F),
 4468	    F=[_|G],
 4469	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4470		     G),
 4471	    (   G=[H|_]
 4472	    ->  setarg(4, H, _)
 4473	    ;   true
 4474	    )
 4475	;   E=[_, _|G],
 4476	    setarg(2, E, G),
 4477	    (   G=[H|_]
 4478	    ->  setarg(4, H, E)
 4479	    ;   true
 4480	    )
 4481	),
 4482	'detach_known/1_1_$special_;/2___2'(I, B),
 4483	\+ try(J, float(K)), !,
 4484	negate_b(J, L),
 4485	known(L),
 4486	\+ try(M, float(K)).
 4487'test/1_1_$special_float/1'(_) :-
 4488	fail.
 4489'test/1_1_$special_number/1'(_) :-
 4490	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4491		  A),
 4492	member(B, A),
 4493	B=suspension(_, active, _), !.
 4494'test/1_1_$special_number/1'(A) :-
 4495	(   'chr newvia_1'(A, B)
 4496	->  get_attr(B, guard_entailment, C),
 4497	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _)
 4498	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 4499		      D)
 4500	),
 4501	member(E, D),
 4502	E=suspension(_, active, _, _, _, F),
 4503	F==A, !.
 4504'test/1_1_$special_number/1'(A) :-
 4505	number(A), !.
 4506'test/1_1_$special_number/1'(A) :-
 4507	nonvar(A), !,
 4508	fail.
 4509'test/1_1_$special_number/1'(K) :-
 4510	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4511		  A),
 4512	member(B, A),
 4513	B=suspension(_, active, _, _, J, M), !,
 4514	B=suspension(_, _, _, _, C, D),
 4515	setarg(2, B, removed),
 4516	term_variables(term(C, D), I),
 4517	arg(4, B, E),
 4518	(   var(E)
 4519	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4520		      F),
 4521	    F=[_|G],
 4522	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4523		     G),
 4524	    (   G=[H|_]
 4525	    ->  setarg(4, H, _)
 4526	    ;   true
 4527	    )
 4528	;   E=[_, _|G],
 4529	    setarg(2, E, G),
 4530	    (   G=[H|_]
 4531	    ->  setarg(4, H, E)
 4532	    ;   true
 4533	    )
 4534	),
 4535	'detach_known/1_1_$special_;/2___2'(I, B),
 4536	\+ try(J, number(K)), !,
 4537	negate_b(J, L),
 4538	known(L),
 4539	\+ try(M, number(K)).
 4540'test/1_1_$special_number/1'(_) :-
 4541	fail.
 4542'test/1_1_$special_ground/1'(_) :-
 4543	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4544		  A),
 4545	member(B, A),
 4546	B=suspension(_, active, _), !.
 4547'test/1_1_$special_ground/1'(A) :-
 4548	(   'chr newvia_1'(A, B)
 4549	->  get_attr(B, guard_entailment, C),
 4550	    C=v(_, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _)
 4551	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 4552		      D)
 4553	),
 4554	member(E, D),
 4555	E=suspension(_, active, _, _, _, F),
 4556	F==A, !.
 4557'test/1_1_$special_ground/1'(A) :-
 4558	ground(A), !.
 4559'test/1_1_$special_ground/1'(K) :-
 4560	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4561		  A),
 4562	member(B, A),
 4563	B=suspension(_, active, _, _, J, M), !,
 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, ground(K)), !,
 4587	negate_b(J, L),
 4588	known(L),
 4589	\+ try(M, ground(K)).
 4590'test/1_1_$special_ground/1'(_) :-
 4591	fail.
 4592'test/1_1_$special_=:=/2'(_, _) :-
 4593	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4594		  A),
 4595	member(B, A),
 4596	B=suspension(_, active, _), !.
 4597'test/1_1_$special_=:=/2'(A, B) :-
 4598	(   'chr newvia_2'(A, B, C)
 4599	->  get_attr(C, guard_entailment, D),
 4600	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
 4601	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 4602		      E)
 4603	),
 4604	member(F, E),
 4605	F=suspension(_, active, _, _, _, G, H),
 4606	G==A,
 4607	H==B, !.
 4608'test/1_1_$special_=:=/2'(A, B) :-
 4609	A==B, !.
 4610'test/1_1_$special_=:=/2'(B, A) :-
 4611	( ground(A),
 4612	  ground(B)
 4613	),
 4614	(   B=:=A, !
 4615	;    !,
 4616	    fail
 4617	).
 4618'test/1_1_$special_=:=/2'(K, L) :-
 4619	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4620		  A),
 4621	member(B, A),
 4622	B=suspension(_, active, _, _, J, N), !,
 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, K=:=L), !,
 4646	negate_b(J, M),
 4647	known(M),
 4648	\+ try(N, K=:=L).
 4649'test/1_1_$special_=:=/2'(_, _) :-
 4650	fail.
 4651'test/1_1_$special_==/2'(_, _) :-
 4652	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4653		  A),
 4654	member(B, A),
 4655	B=suspension(_, active, _), !.
 4656'test/1_1_$special_==/2'(A, B) :-
 4657	(   'chr newvia_2'(A, B, C)
 4658	->  get_attr(C, guard_entailment, D),
 4659	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _)
 4660	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 4661		      E)
 4662	),
 4663	member(F, E),
 4664	F=suspension(_, active, _, _, _, G, H),
 4665	G==A,
 4666	H==B, !.
 4667'test/1_1_$special_==/2'(A, B) :-
 4668	A==B, !.
 4669'test/1_1_$special_==/2'(K, L) :-
 4670	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4671		  A),
 4672	member(B, A),
 4673	B=suspension(_, active, _, _, J, N), !,
 4674	B=suspension(_, _, _, _, C, D),
 4675	setarg(2, B, removed),
 4676	term_variables(term(C, D), I),
 4677	arg(4, B, E),
 4678	(   var(E)
 4679	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4680		      F),
 4681	    F=[_|G],
 4682	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4683		     G),
 4684	    (   G=[H|_]
 4685	    ->  setarg(4, H, _)
 4686	    ;   true
 4687	    )
 4688	;   E=[_, _|G],
 4689	    setarg(2, E, G),
 4690	    (   G=[H|_]
 4691	    ->  setarg(4, H, E)
 4692	    ;   true
 4693	    )
 4694	),
 4695	'detach_known/1_1_$special_;/2___2'(I, B),
 4696	\+ try(J, K==L), !,
 4697	negate_b(J, M),
 4698	known(M),
 4699	\+ try(N, K==L).
 4700'test/1_1_$special_==/2'(_, _) :-
 4701	fail.
 4702'test/1_1_$special_true/0' :-
 4703	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4704		  A),
 4705	member(B, A),
 4706	B=suspension(_, active, _), !.
 4707'test/1_1_$special_true/0'.
 4708'test/1_1_$special_functor/3'(_, _, _) :-
 4709	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4710		  A),
 4711	member(B, A),
 4712	B=suspension(_, active, _), !.
 4713'test/1_1_$special_functor/3'(A, B, C) :-
 4714	(   'chr newvia'([A, B, C], D)
 4715	->  get_attr(D, guard_entailment, E),
 4716	    E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _)
 4717	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 4718		      F)
 4719	),
 4720	member(G, F),
 4721	G=suspension(_, active, _, _, H, I, J),
 4722	H==A,
 4723	I==B,
 4724	J==C, !.
 4725'test/1_1_$special_functor/3'(C, B, A) :-
 4726	ground(A),
 4727	ground(B),
 4728	var(C),
 4729	nb_getval('$chr_store_global_list_guard_entailment____variables___1',
 4730		  D),
 4731	member(E, D),
 4732	E=suspension(_, active, _, F),
 4733	'chr lock'(C),
 4734	'chr lock'(F),
 4735	\+ memberchk_eq(C, F),
 4736	'chr unlock'(C),
 4737	'chr unlock'(F), !,
 4738	functor(C, B, A).
 4739'test/1_1_$special_functor/3'(A, B, C) :-
 4740	nonvar(A),
 4741	(   'chr lock'(A),
 4742	    'chr lock'(B),
 4743	    'chr lock'(C),
 4744	    functor(A, B, C),
 4745	    'chr unlock'(A),
 4746	    'chr unlock'(B),
 4747	    'chr unlock'(C), !
 4748	;    !,
 4749	    fail
 4750	).
 4751'test/1_1_$special_functor/3'(K, L, M) :-
 4752	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4753		  A),
 4754	member(B, A),
 4755	B=suspension(_, active, _, _, J, O), !,
 4756	B=suspension(_, _, _, _, C, D),
 4757	setarg(2, B, removed),
 4758	term_variables(term(C, D), I),
 4759	arg(4, B, E),
 4760	(   var(E)
 4761	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4762		      F),
 4763	    F=[_|G],
 4764	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4765		     G),
 4766	    (   G=[H|_]
 4767	    ->  setarg(4, H, _)
 4768	    ;   true
 4769	    )
 4770	;   E=[_, _|G],
 4771	    setarg(2, E, G),
 4772	    (   G=[H|_]
 4773	    ->  setarg(4, H, E)
 4774	    ;   true
 4775	    )
 4776	),
 4777	'detach_known/1_1_$special_;/2___2'(I, B),
 4778	\+ try(J, functor(K, L, M)), !,
 4779	negate_b(J, N),
 4780	known(N),
 4781	\+ try(O, functor(K, L, M)).
 4782'test/1_1_$special_functor/3'(_, _, _) :-
 4783	fail.
 4784'test/1_1_$special_=/2'(_, _) :-
 4785	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4786		  A),
 4787	member(B, A),
 4788	B=suspension(_, active, _), !.
 4789'test/1_1_$special_=/2'(A, B) :-
 4790	(   'chr newvia_2'(A, B, C)
 4791	->  get_attr(C, guard_entailment, D),
 4792	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _)
 4793	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 4794		      E)
 4795	),
 4796	member(F, E),
 4797	F=suspension(_, active, _, _, G, H),
 4798	G==A,
 4799	H==B, !.
 4800'test/1_1_$special_=/2'(B, A) :-
 4801	ground(A),
 4802	ground(B), !,
 4803	B=A.
 4804'test/1_1_$special_=/2'(K, L) :-
 4805	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4806		  A),
 4807	member(B, A),
 4808	B=suspension(_, active, _, _, J, N), !,
 4809	B=suspension(_, _, _, _, C, D),
 4810	setarg(2, B, removed),
 4811	term_variables(term(C, D), I),
 4812	arg(4, B, E),
 4813	(   var(E)
 4814	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4815		      F),
 4816	    F=[_|G],
 4817	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4818		     G),
 4819	    (   G=[H|_]
 4820	    ->  setarg(4, H, _)
 4821	    ;   true
 4822	    )
 4823	;   E=[_, _|G],
 4824	    setarg(2, E, G),
 4825	    (   G=[H|_]
 4826	    ->  setarg(4, H, E)
 4827	    ;   true
 4828	    )
 4829	),
 4830	'detach_known/1_1_$special_;/2___2'(I, B),
 4831	\+ try(J, K=L), !,
 4832	negate_b(J, M),
 4833	known(M),
 4834	\+ try(N, K=L).
 4835'test/1_1_$special_=/2'(_, _) :-
 4836	fail.
 4837'test/1_1_$special_;/2'(_, _) :-
 4838	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4839		  A),
 4840	member(B, A),
 4841	B=suspension(_, active, _), !.
 4842'test/1_1_$special_;/2'(A, B) :-
 4843	(   'chr newvia_2'(A, B, C)
 4844	->  get_attr(C, guard_entailment, D),
 4845	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 4846	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4847		      E)
 4848	),
 4849	member(F, E),
 4850	F=suspension(_, active, _, _, G, H),
 4851	G==A,
 4852	H==B, !.
 4853'test/1_1_$special_;/2'(A, B) :-
 4854	A==fail, !,
 4855	test(B).
 4856'test/1_1_$special_;/2'(B, A) :-
 4857	A==fail, !,
 4858	test(B).
 4859'test/1_1_$special_;/2'(A, B) :-
 4860	negate_b(A, D),
 4861	negate_b(B, C),
 4862	(   known(C),
 4863	    test(A)
 4864	;   known(D),
 4865	    test(B)
 4866	).
 4867'test/1_1_$special_is/2'(_, _) :-
 4868	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4869		  A),
 4870	member(B, A),
 4871	B=suspension(_, active, _), !.
 4872'test/1_1_$special_is/2'(A, B) :-
 4873	'test/1_1_$special_=:=/2'(A, B).
 4874'test/1_1_$special_</2'(_, _) :-
 4875	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4876		  A),
 4877	member(B, A),
 4878	B=suspension(_, active, _), !.
 4879'test/1_1_$special_</2'(A, B) :-
 4880	'test/1_1_$special_,/2'(A=<B, A=\=B).
 4881'test/1_1_$special_>=/2'(_, _) :-
 4882	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4883		  A),
 4884	member(B, A),
 4885	B=suspension(_, active, _), !.
 4886'test/1_1_$special_>=/2'(B, A) :-
 4887	'test/1_1_$special_=</2'(A, B).
 4888'test/1_1_$special_>/2'(_, _) :-
 4889	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4890		  A),
 4891	member(B, A),
 4892	B=suspension(_, active, _), !.
 4893'test/1_1_$special_>/2'(B, A) :-
 4894	'test/1_1_$special_</2'(A, B).
 4895'test/1_1_$special_=\\=/2'(_, _) :-
 4896	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4897		  A),
 4898	member(B, A),
 4899	B=suspension(_, active, _), !.
 4900'test/1_1_$special_=\\=/2'(A, B) :-
 4901	(   'chr newvia_2'(A, B, C)
 4902	->  get_attr(C, guard_entailment, D),
 4903	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _, _)
 4904	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 4905		      E)
 4906	),
 4907	member(F, E),
 4908	F=suspension(_, active, _, _, _, G, H),
 4909	G==A,
 4910	H==B, !.
 4911'test/1_1_$special_=\\=/2'(B, A) :-
 4912	( number(A),
 4913	  (   'chr newvia_1'(B, C)
 4914	  ->  get_attr(C, guard_entailment, D),
 4915	      D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
 4916	  ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 4917			E)
 4918	  ),
 4919	  member(F, E),
 4920	  F=suspension(_, active, _, _, _, G, H)
 4921	),
 4922	(   G==B,
 4923	    number(H),
 4924	    A>H, !
 4925	;   H==B,
 4926	    number(G),
 4927	    A<G, !
 4928	).
 4929'test/1_1_$special_=\\=/2'(B, A) :-
 4930	( ground(A),
 4931	  ground(B)
 4932	),
 4933	(   B=\=A, !
 4934	;    !,
 4935	    fail
 4936	).
 4937'test/1_1_$special_=\\=/2'(K, L) :-
 4938	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4939		  A),
 4940	member(B, A),
 4941	B=suspension(_, active, _, _, J, N), !,
 4942	B=suspension(_, _, _, _, C, D),
 4943	setarg(2, B, removed),
 4944	term_variables(term(C, D), I),
 4945	arg(4, B, E),
 4946	(   var(E)
 4947	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4948		      F),
 4949	    F=[_|G],
 4950	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 4951		     G),
 4952	    (   G=[H|_]
 4953	    ->  setarg(4, H, _)
 4954	    ;   true
 4955	    )
 4956	;   E=[_, _|G],
 4957	    setarg(2, E, G),
 4958	    (   G=[H|_]
 4959	    ->  setarg(4, H, E)
 4960	    ;   true
 4961	    )
 4962	),
 4963	'detach_known/1_1_$special_;/2___2'(I, B),
 4964	\+ try(J, K=\=L), !,
 4965	negate_b(J, M),
 4966	known(M),
 4967	\+ try(N, K=\=L).
 4968'test/1_1_$special_=\\=/2'(_, _) :-
 4969	fail.
 4970'test/1_1_$special_=</2'(_, _) :-
 4971	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 4972		  A),
 4973	member(B, A),
 4974	B=suspension(_, active, _), !.
 4975'test/1_1_$special_=</2'(A, B) :-
 4976	(   'chr newvia_2'(A, B, C)
 4977	->  get_attr(C, guard_entailment, D),
 4978	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
 4979	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 4980		      E)
 4981	),
 4982	member(F, E),
 4983	F=suspension(_, active, _, _, _, G, H),
 4984	G==A,
 4985	H==B, !.
 4986'test/1_1_$special_=</2'(A, B) :-
 4987	(   'chr newvia_2'(A, B, C)
 4988	->  get_attr(C, guard_entailment, D),
 4989	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
 4990	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 4991		      E)
 4992	),
 4993	member(F, E),
 4994	F=suspension(_, active, _, _, _, G, H),
 4995	G==A,
 4996	H==B, !.
 4997'test/1_1_$special_=</2'(B, A) :-
 4998	number(A),
 4999	(   'chr newvia_1'(B, C)
 5000	->  get_attr(C, guard_entailment, D),
 5001	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
 5002	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 5003		      E)
 5004	),
 5005	member(F, E),
 5006	F=suspension(_, active, _, _, _, G, H),
 5007	G==B,
 5008	number(H),
 5009	H=<A, !.
 5010'test/1_1_$special_=</2'(A, B) :-
 5011	number(A),
 5012	(   'chr newvia_1'(B, C)
 5013	->  get_attr(C, guard_entailment, D),
 5014	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
 5015	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 5016		      E)
 5017	),
 5018	member(F, E),
 5019	F=suspension(_, active, _, _, _, G, H),
 5020	G==B,
 5021	number(H),
 5022	A=<H, !.
 5023'test/1_1_$special_=</2'(B, A) :-
 5024	number(A),
 5025	(   'chr newvia_1'(B, C)
 5026	->  get_attr(C, guard_entailment, D),
 5027	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
 5028	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 5029		      E)
 5030	),
 5031	member(F, E),
 5032	F=suspension(_, active, _, _, _, G, H),
 5033	G==B,
 5034	number(H),
 5035	H=<A, !.
 5036'test/1_1_$special_=</2'(A, B) :-
 5037	number(A),
 5038	(   'chr newvia_1'(B, C)
 5039	->  get_attr(C, guard_entailment, D),
 5040	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
 5041	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 5042		      E)
 5043	),
 5044	member(F, E),
 5045	F=suspension(_, active, _, _, _, H, G),
 5046	G==B,
 5047	number(H),
 5048	A=<H, !.
 5049'test/1_1_$special_=</2'(A, B) :-
 5050	A==B, !.
 5051'test/1_1_$special_=</2'(B, A) :-
 5052	( ground(A),
 5053	  ground(B)
 5054	),
 5055	(   B=<A, !
 5056	;    !,
 5057	    fail
 5058	).
 5059'test/1_1_$special_=</2'(K, L) :-
 5060	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5061		  A),
 5062	member(B, A),
 5063	B=suspension(_, active, _, _, J, N), !,
 5064	B=suspension(_, _, _, _, C, D),
 5065	setarg(2, B, removed),
 5066	term_variables(term(C, D), I),
 5067	arg(4, B, E),
 5068	(   var(E)
 5069	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5070		      F),
 5071	    F=[_|G],
 5072	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5073		     G),
 5074	    (   G=[H|_]
 5075	    ->  setarg(4, H, _)
 5076	    ;   true
 5077	    )
 5078	;   E=[_, _|G],
 5079	    setarg(2, E, G),
 5080	    (   G=[H|_]
 5081	    ->  setarg(4, H, E)
 5082	    ;   true
 5083	    )
 5084	),
 5085	'detach_known/1_1_$special_;/2___2'(I, B),
 5086	\+ try(J, K=<L), !,
 5087	negate_b(J, M),
 5088	known(M),
 5089	\+ try(N, K=<L).
 5090'test/1_1_$special_=</2'(_, _) :-
 5091	fail.
 5092'test/1_1_$special_\\==/2'(_, _) :-
 5093	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 5094		  A),
 5095	member(B, A),
 5096	B=suspension(_, active, _), !.
 5097'test/1_1_$special_\\==/2'(A, B) :-
 5098	(   'chr newvia_2'(A, B, C)
 5099	->  get_attr(C, guard_entailment, D),
 5100	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _)
 5101	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 5102		      E)
 5103	),
 5104	member(F, E),
 5105	F=suspension(_, active, _, _, _, G, H),
 5106	G==A,
 5107	H==B, !.
 5108'test/1_1_$special_\\==/2'(F, A) :-
 5109	nonvar(A),
 5110	'chr lock'(A),
 5111	functor(A, C, B),
 5112	'chr unlock'(A), !,
 5113	A=..[_|E],
 5114	length(D, B),
 5115	G=..[C|D],
 5116	add_args_nmatch(D, E, H),
 5117	I=(\+functor(F, C, B);functor(F, C, B), F=G, H),
 5118	test(I).
 5119'test/1_1_$special_\\==/2'(A, B) :-
 5120	nonvar(A), !,
 5121	'test/1_1_$special_\\==/2'(B, A).
 5122'test/1_1_$special_\\==/2'(K, L) :-
 5123	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5124		  A),
 5125	member(B, A),
 5126	B=suspension(_, active, _, _, J, N), !,
 5127	B=suspension(_, _, _, _, C, D),
 5128	setarg(2, B, removed),
 5129	term_variables(term(C, D), I),
 5130	arg(4, B, E),
 5131	(   var(E)
 5132	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5133		      F),
 5134	    F=[_|G],
 5135	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5136		     G),
 5137	    (   G=[H|_]
 5138	    ->  setarg(4, H, _)
 5139	    ;   true
 5140	    )
 5141	;   E=[_, _|G],
 5142	    setarg(2, E, G),
 5143	    (   G=[H|_]
 5144	    ->  setarg(4, H, E)
 5145	    ;   true
 5146	    )
 5147	),
 5148	'detach_known/1_1_$special_;/2___2'(I, B),
 5149	\+ try(J, K\==L), !,
 5150	negate_b(J, M),
 5151	known(M),
 5152	\+ try(N, K\==L).
 5153'test/1_1_$special_\\==/2'(_, _) :-
 5154	fail.
 5155'known/1_1_$default'(A) :-
 5156	'known/1_1_$default___1__0'(A, _).
 5157'known/1_1_$default___1__0'(A, G) :-
 5158	(   'chr newvia_1'(A, B)
 5159	->  get_attr(B, guard_entailment, C),
 5160	    C=v(_, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5161	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5162		      D)
 5163	),
 5164	member(E, D),
 5165	E=suspension(_, active, _, _, F),
 5166	F==A, !,
 5167	(   var(G)
 5168	->  true
 5169	;   G=suspension(_, H, _, _, I),
 5170	    setarg(2, G, removed),
 5171	    (   H==not_stored_yet
 5172	    ->  J=[]
 5173	    ;   term_variables(I, J),
 5174		( arg(4, G, K),
 5175		  (   var(K)
 5176		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5177				L),
 5178		      L=[_|M],
 5179		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5180			       M),
 5181		      (   M=[N|_]
 5182		      ->  setarg(4, N, _)
 5183		      ;   true
 5184		      )
 5185		  ;   K=[_, _|M],
 5186		      setarg(2, K, M),
 5187		      (   M=[N|_]
 5188		      ->  setarg(4, N, K)
 5189		      ;   true
 5190		      )
 5191		  )
 5192		),
 5193		'detach_known/1_1_$default___1'(J, G)
 5194	    )
 5195	).
 5196'known/1_1_$default___1__0'(_, C) :-
 5197	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 5198		  A),
 5199	member(B, A),
 5200	B=suspension(_, active, _), !,
 5201	(   var(C)
 5202	->  true
 5203	;   C=suspension(_, D, _, _, E),
 5204	    setarg(2, C, removed),
 5205	    (   D==not_stored_yet
 5206	    ->  F=[]
 5207	    ;   term_variables(E, F),
 5208		( arg(4, C, G),
 5209		  (   var(G)
 5210		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5211				H),
 5212		      H=[_|I],
 5213		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5214			       I),
 5215		      (   I=[J|_]
 5216		      ->  setarg(4, J, _)
 5217		      ;   true
 5218		      )
 5219		  ;   G=[_, _|I],
 5220		      setarg(2, G, I),
 5221		      (   I=[J|_]
 5222		      ->  setarg(4, J, G)
 5223		      ;   true
 5224		      )
 5225		  )
 5226		),
 5227		'detach_known/1_1_$default___1'(F, C)
 5228	    )
 5229	).
 5230'known/1_1_$default___1__0'(A, M) :-
 5231	(   'chr newvia_1'(A, B)
 5232	->  get_attr(B, guard_entailment, C),
 5233	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
 5234	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5235		      D)
 5236	),
 5237	member(E, D),
 5238	E=suspension(_, active, _, _, F),
 5239	F==A, !,
 5240	E=suspension(_, _, _, _, G),
 5241	setarg(2, E, removed),
 5242	term_variables(G, L),
 5243	arg(4, E, H),
 5244	(   var(H)
 5245	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5246		      I),
 5247	    I=[_|J],
 5248	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5249		     J),
 5250	    (   J=[K|_]
 5251	    ->  setarg(4, K, _)
 5252	    ;   true
 5253	    )
 5254	;   H=[_, _|J],
 5255	    setarg(2, H, J),
 5256	    (   J=[K|_]
 5257	    ->  setarg(4, K, H)
 5258	    ;   true
 5259	    )
 5260	),
 5261	'detach_known/1_1_$special_\\+/1___1'(L, E),
 5262	(   var(M)
 5263	->  true
 5264	;   M=suspension(_, N, _, _, O),
 5265	    setarg(2, M, removed),
 5266	    (   N==not_stored_yet
 5267	    ->  P=[]
 5268	    ;   term_variables(O, P),
 5269		( arg(4, M, Q),
 5270		  (   var(Q)
 5271		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5272				R),
 5273		      R=[_|S],
 5274		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5275			       S),
 5276		      (   S=[T|_]
 5277		      ->  setarg(4, T, _)
 5278		      ;   true
 5279		      )
 5280		  ;   Q=[_, _|S],
 5281		      setarg(2, Q, S),
 5282		      (   S=[T|_]
 5283		      ->  setarg(4, T, Q)
 5284		      ;   true
 5285		      )
 5286		  )
 5287		),
 5288		'detach_known/1_1_$default___1'(P, M)
 5289	    )
 5290	),
 5291	'known/1_1_$special_fail/0'.
 5292'known/1_1_$default___1__0'(A, E) :-
 5293	(   'chr newvia_1'(A, B)
 5294	->  get_attr(B, guard_entailment, C),
 5295	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5296	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5297		      D)
 5298	), !,
 5299	(   var(E)
 5300	->  E=suspension(F, not_stored_yet, 0, _, A),
 5301	    'chr gen_id'(F)
 5302	;   true
 5303	),
 5304	'known/1_1_$default___1__0__0__6'(D, A, E).
 5305'known/1_1_$default___1__0__0__6'([], A, B) :-
 5306	'known/1_1_$default___1__1'(A, B).
 5307'known/1_1_$default___1__0__0__6'([A|V], D, L) :-
 5308	(   A=suspension(_, active, _, _, B, U),
 5309	    nonvar(B),
 5310	    B=(\+C),
 5311	    C==D
 5312	->  ( A=suspension(_, _, _, _, E, F),
 5313	      setarg(2, A, removed),
 5314	      term_variables(term(E, F), K),
 5315	      ( arg(4, A, G),
 5316		(   var(G)
 5317		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5318			      H),
 5319		    H=[_|I],
 5320		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5321			     I),
 5322		    (   I=[J|_]
 5323		    ->  setarg(4, J, _)
 5324		    ;   true
 5325		    )
 5326		;   G=[_, _|I],
 5327		    setarg(2, G, I),
 5328		    (   I=[J|_]
 5329		    ->  setarg(4, J, G)
 5330		    ;   true
 5331		    )
 5332		)
 5333	      ),
 5334	      'detach_known/1_1_$special_;/2___2'(K, A)
 5335	    ),
 5336	    ( arg(2, L, O),
 5337	      setarg(2, L, active),
 5338	      ( arg(3, L, M),
 5339		N is M+1,
 5340		setarg(3, L, N)
 5341	      ),
 5342	      (   O==not_stored_yet
 5343	      ->  L=suspension(_, _, _, _, P),
 5344		  term_variables(P, Q),
 5345		  'chr none_locked'(Q),
 5346		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5347			      R),
 5348		    S=[L|R],
 5349		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5350			     S),
 5351		    (   R=[T|_]
 5352		    ->  setarg(4, T, S)
 5353		    ;   true
 5354		    )
 5355		  ),
 5356		  'attach_known/1_1_$default___1'(Q, L)
 5357	      ;   true
 5358	      )
 5359	    ),
 5360	    known(U),
 5361	    (   L=suspension(_, active, N, _, _)
 5362	    ->  setarg(2, L, inactive),
 5363		'known/1_1_$default___1__0__0__6'(V, D, L)
 5364	    ;   true
 5365	    )
 5366	;   'known/1_1_$default___1__0__0__6'(V, D, L)
 5367	).
 5368'known/1_1_$default___1__0'(B, A) :-
 5369	(   var(A)
 5370	->  A=suspension(C, not_stored_yet, 0, _, B),
 5371	    'chr gen_id'(C)
 5372	;   true
 5373	),
 5374	'known/1_1_$default___1__1'(B, A).
 5375'known/1_1_$default___1__1'(A, E) :-
 5376	(   'chr newvia_1'(A, B)
 5377	->  get_attr(B, guard_entailment, C),
 5378	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5379	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5380		      D)
 5381	), !,
 5382	'known/1_1_$default___1__1__0__7'(D, A, E).
 5383'known/1_1_$default___1__1__0__7'([], A, B) :-
 5384	'known/1_1_$default___1__2'(A, B).
 5385'known/1_1_$default___1__1__0__7'([A|W], E, M) :-
 5386	(   A=suspension(_, active, _, _, B, V),
 5387	    nonvar(B),
 5388	    B=(C, _),
 5389	    nonvar(C),
 5390	    C=(\+D),
 5391	    D==E
 5392	->  ( A=suspension(_, _, _, _, F, G),
 5393	      setarg(2, A, removed),
 5394	      term_variables(term(F, G), L),
 5395	      ( arg(4, A, H),
 5396		(   var(H)
 5397		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5398			      I),
 5399		    I=[_|J],
 5400		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5401			     J),
 5402		    (   J=[K|_]
 5403		    ->  setarg(4, K, _)
 5404		    ;   true
 5405		    )
 5406		;   H=[_, _|J],
 5407		    setarg(2, H, J),
 5408		    (   J=[K|_]
 5409		    ->  setarg(4, K, H)
 5410		    ;   true
 5411		    )
 5412		)
 5413	      ),
 5414	      'detach_known/1_1_$special_;/2___2'(L, A)
 5415	    ),
 5416	    ( arg(2, M, P),
 5417	      setarg(2, M, active),
 5418	      ( arg(3, M, N),
 5419		O is N+1,
 5420		setarg(3, M, O)
 5421	      ),
 5422	      (   P==not_stored_yet
 5423	      ->  M=suspension(_, _, _, _, Q),
 5424		  term_variables(Q, R),
 5425		  'chr none_locked'(R),
 5426		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5427			      S),
 5428		    T=[M|S],
 5429		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5430			     T),
 5431		    (   S=[U|_]
 5432		    ->  setarg(4, U, T)
 5433		    ;   true
 5434		    )
 5435		  ),
 5436		  'attach_known/1_1_$default___1'(R, M)
 5437	      ;   true
 5438	      )
 5439	    ),
 5440	    known(V),
 5441	    (   M=suspension(_, active, O, _, _)
 5442	    ->  setarg(2, M, inactive),
 5443		'known/1_1_$default___1__1__0__7'(W, E, M)
 5444	    ;   true
 5445	    )
 5446	;   'known/1_1_$default___1__1__0__7'(W, E, M)
 5447	).
 5448'known/1_1_$default___1__1'(A, B) :-
 5449	'known/1_1_$default___1__2'(A, B).
 5450'known/1_1_$default___1__2'(_, A) :-
 5451	arg(2, A, D),
 5452	setarg(2, A, active),
 5453	arg(3, A, B),
 5454	C is B+1,
 5455	setarg(3, A, C),
 5456	(   D==not_stored_yet
 5457	->  A=suspension(_, _, _, _, E),
 5458	    term_variables(E, F),
 5459	    'chr none_locked'(F),
 5460	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5461			G),
 5462	      H=[A|G],
 5463	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 5464		       H),
 5465	      (   G=[I|_]
 5466	      ->  setarg(4, I, H)
 5467	      ;   true
 5468	      )
 5469	    ),
 5470	    'attach_known/1_1_$default___1'(F, A)
 5471	;   true
 5472	).
 5473'known/1_1_$special_;/2'(A, B) :-
 5474	'known/1_1_$special_;/2___2__0'(A, B, _).
 5475'known/1_1_$special_;/2___2__0'(A, B, I) :-
 5476	(   'chr newvia_2'(A, B, C)
 5477	->  get_attr(C, guard_entailment, D),
 5478	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5479	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5480		      E)
 5481	),
 5482	member(F, E),
 5483	F=suspension(_, active, _, _, G, H),
 5484	G==A,
 5485	H==B, !,
 5486	(   var(I)
 5487	->  true
 5488	;   I=suspension(_, J, _, _, K, L),
 5489	    setarg(2, I, removed),
 5490	    (   J==not_stored_yet
 5491	    ->  M=[]
 5492	    ;   term_variables(term(K, L), M),
 5493		( arg(4, I, N),
 5494		  (   var(N)
 5495		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5496				O),
 5497		      O=[_|P],
 5498		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5499			       P),
 5500		      (   P=[Q|_]
 5501		      ->  setarg(4, Q, _)
 5502		      ;   true
 5503		      )
 5504		  ;   N=[_, _|P],
 5505		      setarg(2, N, P),
 5506		      (   P=[Q|_]
 5507		      ->  setarg(4, Q, N)
 5508		      ;   true
 5509		      )
 5510		  )
 5511		),
 5512		'detach_known/1_1_$special_;/2___2'(M, I)
 5513	    )
 5514	).
 5515'known/1_1_$special_;/2___2__0'(_, _, C) :-
 5516	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 5517		  A),
 5518	member(B, A),
 5519	B=suspension(_, active, _), !,
 5520	(   var(C)
 5521	->  true
 5522	;   C=suspension(_, D, _, _, E, F),
 5523	    setarg(2, C, removed),
 5524	    (   D==not_stored_yet
 5525	    ->  G=[]
 5526	    ;   term_variables(term(E, F), G),
 5527		( arg(4, C, H),
 5528		  (   var(H)
 5529		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5530				I),
 5531		      I=[_|J],
 5532		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5533			       J),
 5534		      (   J=[K|_]
 5535		      ->  setarg(4, K, _)
 5536		      ;   true
 5537		      )
 5538		  ;   H=[_, _|J],
 5539		      setarg(2, H, J),
 5540		      (   J=[K|_]
 5541		      ->  setarg(4, K, H)
 5542		      ;   true
 5543		      )
 5544		  )
 5545		),
 5546		'detach_known/1_1_$special_;/2___2'(G, C)
 5547	    )
 5548	).
 5549'known/1_1_$special_;/2___2__0'(A, B, P) :-
 5550	(   'chr newvia_2'(A, B, C)
 5551	->  get_attr(C, guard_entailment, D),
 5552	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
 5553	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5554		      E)
 5555	),
 5556	member(F, E),
 5557	F=suspension(_, active, _, _, G),
 5558	nonvar(G),
 5559	G=(H;I),
 5560	H==A,
 5561	I==B, !,
 5562	F=suspension(_, _, _, _, J),
 5563	setarg(2, F, removed),
 5564	term_variables(J, O),
 5565	arg(4, F, K),
 5566	(   var(K)
 5567	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5568		      L),
 5569	    L=[_|M],
 5570	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 5571		     M),
 5572	    (   M=[N|_]
 5573	    ->  setarg(4, N, _)
 5574	    ;   true
 5575	    )
 5576	;   K=[_, _|M],
 5577	    setarg(2, K, M),
 5578	    (   M=[N|_]
 5579	    ->  setarg(4, N, K)
 5580	    ;   true
 5581	    )
 5582	),
 5583	'detach_known/1_1_$special_\\+/1___1'(O, F),
 5584	(   var(P)
 5585	->  true
 5586	;   P=suspension(_, Q, _, _, R, S),
 5587	    setarg(2, P, removed),
 5588	    (   Q==not_stored_yet
 5589	    ->  T=[]
 5590	    ;   term_variables(term(R, S), T),
 5591		( arg(4, P, U),
 5592		  (   var(U)
 5593		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5594				V),
 5595		      V=[_|W],
 5596		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5597			       W),
 5598		      (   W=[X|_]
 5599		      ->  setarg(4, X, _)
 5600		      ;   true
 5601		      )
 5602		  ;   U=[_, _|W],
 5603		      setarg(2, U, W),
 5604		      (   W=[X|_]
 5605		      ->  setarg(4, X, U)
 5606		      ;   true
 5607		      )
 5608		  )
 5609		),
 5610		'detach_known/1_1_$special_;/2___2'(T, P)
 5611	    )
 5612	),
 5613	'known/1_1_$special_fail/0'.
 5614'known/1_1_$special_;/2___2__0'(A, T, K) :-
 5615	nonvar(A),
 5616	A=(\+B),
 5617	nonvar(B),
 5618	B=(C;D),
 5619	(   'chr newvia_2'(C, D, E)
 5620	->  get_attr(E, guard_entailment, F),
 5621	    F=v(_, _, _, G, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5622	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5623		      G)
 5624	),
 5625	member(H, G),
 5626	H=suspension(_, active, _, _, I, J),
 5627	I==C,
 5628	J==D, !,
 5629	(   var(K)
 5630	->  true
 5631	;   K=suspension(_, L, _, _, M, N),
 5632	    setarg(2, K, removed),
 5633	    (   L==not_stored_yet
 5634	    ->  O=[]
 5635	    ;   term_variables(term(M, N), O),
 5636		( arg(4, K, P),
 5637		  (   var(P)
 5638		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5639				Q),
 5640		      Q=[_|R],
 5641		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5642			       R),
 5643		      (   R=[S|_]
 5644		      ->  setarg(4, S, _)
 5645		      ;   true
 5646		      )
 5647		  ;   P=[_, _|R],
 5648		      setarg(2, P, R),
 5649		      (   R=[S|_]
 5650		      ->  setarg(4, S, P)
 5651		      ;   true
 5652		      )
 5653		  )
 5654		),
 5655		'detach_known/1_1_$special_;/2___2'(O, K)
 5656	    )
 5657	),
 5658	known(T).
 5659'known/1_1_$special_;/2___2__0'(A, B, F) :-
 5660	(   'chr newvia_2'(A, B, C)
 5661	->  get_attr(C, guard_entailment, D),
 5662	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5663	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5664		      E)
 5665	), !,
 5666	(   var(F)
 5667	->  F=suspension(G, not_stored_yet, 0, _, A, B),
 5668	    'chr gen_id'(G)
 5669	;   true
 5670	),
 5671	'known/1_1_$special_;/2___2__0__0__7'(E, A, B, F).
 5672'known/1_1_$special_;/2___2__0__0__7'([], A, B, C) :-
 5673	'known/1_1_$special_;/2___2__1'(A, B, C).
 5674'known/1_1_$special_;/2___2__0__0__7'([A|Z], E, G, O) :-
 5675	(   A=suspension(_, active, _, _, B, Y),
 5676	    nonvar(B),
 5677	    B=(\+C),
 5678	    nonvar(C),
 5679	    C=(D;F),
 5680	    D==E,
 5681	    F==G
 5682	->  ( A=suspension(_, _, _, _, H, I),
 5683	      setarg(2, A, removed),
 5684	      term_variables(term(H, I), N),
 5685	      ( arg(4, A, J),
 5686		(   var(J)
 5687		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5688			      K),
 5689		    K=[_|L],
 5690		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5691			     L),
 5692		    (   L=[M|_]
 5693		    ->  setarg(4, M, _)
 5694		    ;   true
 5695		    )
 5696		;   J=[_, _|L],
 5697		    setarg(2, J, L),
 5698		    (   L=[M|_]
 5699		    ->  setarg(4, M, J)
 5700		    ;   true
 5701		    )
 5702		)
 5703	      ),
 5704	      'detach_known/1_1_$special_;/2___2'(N, A)
 5705	    ),
 5706	    ( arg(2, O, R),
 5707	      setarg(2, O, active),
 5708	      ( arg(3, O, P),
 5709		Q is P+1,
 5710		setarg(3, O, Q)
 5711	      ),
 5712	      (   R==not_stored_yet
 5713	      ->  O=suspension(_, _, _, _, S, T),
 5714		  term_variables(term(S, T), U),
 5715		  'chr none_locked'(U),
 5716		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5717			      V),
 5718		    W=[O|V],
 5719		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5720			     W),
 5721		    (   V=[X|_]
 5722		    ->  setarg(4, X, W)
 5723		    ;   true
 5724		    )
 5725		  ),
 5726		  'attach_known/1_1_$special_;/2___2'(U, O)
 5727	      ;   true
 5728	      )
 5729	    ),
 5730	    known(Y),
 5731	    (   O=suspension(_, active, Q, _, _, _)
 5732	    ->  setarg(2, O, inactive),
 5733		'known/1_1_$special_;/2___2__0__0__7'(Z,
 5734						      E,
 5735						      G,
 5736						      O)
 5737	    ;   true
 5738	    )
 5739	;   'known/1_1_$special_;/2___2__0__0__7'(Z,
 5740						  E,
 5741						  G,
 5742						  O)
 5743	).
 5744'known/1_1_$special_;/2___2__0'(B, C, A) :-
 5745	(   var(A)
 5746	->  A=suspension(D, not_stored_yet, 0, _, B, C),
 5747	    'chr gen_id'(D)
 5748	;   true
 5749	),
 5750	'known/1_1_$special_;/2___2__1'(B, C, A).
 5751'known/1_1_$special_;/2___2__1'(A, R, I) :-
 5752	nonvar(A),
 5753	(   A=(\+B),
 5754	    (   nonvar(B),
 5755		(   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   B=nonvar(C),
 5756										    (   'chr newvia_1'(C,
 5757												       D)
 5758										    ->  get_attr(D,
 5759												 guard_entailment,
 5760												 E),
 5761											E=v(_, _, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5762										    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 5763												  F)
 5764										    ),
 5765										    member(G,
 5766											   F),
 5767										    G=suspension(_, active, _, _, H),
 5768										    H==C, !,
 5769										    (   var(I)
 5770										    ->  true
 5771										    ;   I=suspension(_, J, _, _, K, L),
 5772											setarg(2,
 5773											       I,
 5774											       removed),
 5775											(   J==not_stored_yet
 5776											->  M=[]
 5777											;   term_variables(term(K,
 5778														L),
 5779													   M),
 5780											    ( arg(4,
 5781												  I,
 5782												  N),
 5783											      (   var(N)
 5784											      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5785													    O),
 5786												  O=[_|P],
 5787												  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5788													   P),
 5789												  (   P=[Q|_]
 5790												  ->  setarg(4,
 5791													     Q,
 5792													     _)
 5793												  ;   true
 5794												  )
 5795											      ;   N=[_, _|P],
 5796												  setarg(2,
 5797													 N,
 5798													 P),
 5799												  (   P=[Q|_]
 5800												  ->  setarg(4,
 5801													     Q,
 5802													     N)
 5803												  ;   true
 5804												  )
 5805											      )
 5806											    ),
 5807											    'detach_known/1_1_$special_;/2___2'(M,
 5808																I)
 5809											)
 5810										    ),
 5811										    known(R)
 5812										;   B=var(S),
 5813										    (   'chr newvia_1'(S,
 5814												       T)
 5815										    ->  get_attr(T,
 5816												 guard_entailment,
 5817												 U),
 5818											U=v(_, _, _, _, _, V, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5819										    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 5820												  V)
 5821										    ),
 5822										    member(W,
 5823											   V),
 5824										    W=suspension(_, active, _, _, X),
 5825										    X==S, !,
 5826										    (   var(I)
 5827										    ->  true
 5828										    ;   I=suspension(_, Y, _, _, Z, A1),
 5829											setarg(2,
 5830											       I,
 5831											       removed),
 5832											(   Y==not_stored_yet
 5833											->  B1=[]
 5834											;   term_variables(term(Z,
 5835														A1),
 5836													   B1),
 5837											    ( arg(4,
 5838												  I,
 5839												  C1),
 5840											      (   var(C1)
 5841											      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5842													    D1),
 5843												  D1=[_|E1],
 5844												  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5845													   E1),
 5846												  (   E1=[F1|_]
 5847												  ->  setarg(4,
 5848													     F1,
 5849													     _)
 5850												  ;   true
 5851												  )
 5852											      ;   C1=[_, _|E1],
 5853												  setarg(2,
 5854													 C1,
 5855													 E1),
 5856												  (   E1=[F1|_]
 5857												  ->  setarg(4,
 5858													     F1,
 5859													     C1)
 5860												  ;   true
 5861												  )
 5862											      )
 5863											    ),
 5864											    'detach_known/1_1_$special_;/2___2'(B1,
 5865																I)
 5866											)
 5867										    ),
 5868										    known(R)
 5869										)
 5870									    ;   B=atom(G1),
 5871										(   'chr newvia_1'(G1,
 5872												   H1)
 5873										->  get_attr(H1,
 5874											     guard_entailment,
 5875											     I1),
 5876										    I1=v(_, _, _, _, _, _, J1, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5877										;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 5878											      J1)
 5879										),
 5880										member(K1,
 5881										       J1),
 5882										K1=suspension(_, active, _, _, _, L1),
 5883										L1==G1, !,
 5884										(   var(I)
 5885										->  true
 5886										;   I=suspension(_, M1, _, _, N1, O1),
 5887										    setarg(2,
 5888											   I,
 5889											   removed),
 5890										    (   M1==not_stored_yet
 5891										    ->  P1=[]
 5892										    ;   term_variables(term(N1,
 5893													    O1),
 5894												       P1),
 5895											( arg(4,
 5896											      I,
 5897											      Q1),
 5898											  (   var(Q1)
 5899											  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5900													R1),
 5901											      R1=[_|S1],
 5902											      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5903												       S1),
 5904											      (   S1=[T1|_]
 5905											      ->  setarg(4,
 5906													 T1,
 5907													 _)
 5908											      ;   true
 5909											      )
 5910											  ;   Q1=[_, _|S1],
 5911											      setarg(2,
 5912												     Q1,
 5913												     S1),
 5914											      (   S1=[T1|_]
 5915											      ->  setarg(4,
 5916													 T1,
 5917													 Q1)
 5918											      ;   true
 5919											      )
 5920											  )
 5921											),
 5922											'detach_known/1_1_$special_;/2___2'(P1,
 5923															    I)
 5924										    )
 5925										),
 5926										known(R)
 5927									    )
 5928									;   B=atomic(U1),
 5929									    (   'chr newvia_1'(U1,
 5930											       V1)
 5931									    ->  get_attr(V1,
 5932											 guard_entailment,
 5933											 W1),
 5934										W1=v(_, _, _, _, _, _, _, X1, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5935									    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 5936											  X1)
 5937									    ),
 5938									    member(Y1,
 5939										   X1),
 5940									    Y1=suspension(_, active, _, _, _, Z1),
 5941									    Z1==U1, !,
 5942									    (   var(I)
 5943									    ->  true
 5944									    ;   I=suspension(_, A2, _, _, B2, C2),
 5945										setarg(2,
 5946										       I,
 5947										       removed),
 5948										(   A2==not_stored_yet
 5949										->  D2=[]
 5950										;   term_variables(term(B2,
 5951													C2),
 5952												   D2),
 5953										    ( arg(4,
 5954											  I,
 5955											  E2),
 5956										      (   var(E2)
 5957										      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5958												    F2),
 5959											  F2=[_|G2],
 5960											  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 5961												   G2),
 5962											  (   G2=[H2|_]
 5963											  ->  setarg(4,
 5964												     H2,
 5965												     _)
 5966											  ;   true
 5967											  )
 5968										      ;   E2=[_, _|G2],
 5969											  setarg(2,
 5970												 E2,
 5971												 G2),
 5972											  (   G2=[H2|_]
 5973											  ->  setarg(4,
 5974												     H2,
 5975												     E2)
 5976											  ;   true
 5977											  )
 5978										      )
 5979										    ),
 5980										    'detach_known/1_1_$special_;/2___2'(D2,
 5981															I)
 5982										)
 5983									    ),
 5984									    known(R)
 5985									)
 5986								    ;   B=compound(I2),
 5987									(   'chr newvia_1'(I2,
 5988											   J2)
 5989									->  get_attr(J2,
 5990										     guard_entailment,
 5991										     K2),
 5992									    K2=v(_, _, _, _, _, _, _, _, L2, _, _, _, _, _, _, _, _, _, _, _, _, _)
 5993									;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 5994										      L2)
 5995									),
 5996									member(M2,
 5997									       L2),
 5998									M2=suspension(_, active, _, _, _, N2),
 5999									N2==I2, !,
 6000									(   var(I)
 6001									->  true
 6002									;   I=suspension(_, O2, _, _, P2, Q2),
 6003									    setarg(2,
 6004										   I,
 6005										   removed),
 6006									    (   O2==not_stored_yet
 6007									    ->  R2=[]
 6008									    ;   term_variables(term(P2,
 6009												    Q2),
 6010											       R2),
 6011										( arg(4,
 6012										      I,
 6013										      S2),
 6014										  (   var(S2)
 6015										  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6016												T2),
 6017										      T2=[_|U2],
 6018										      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6019											       U2),
 6020										      (   U2=[V2|_]
 6021										      ->  setarg(4,
 6022												 V2,
 6023												 _)
 6024										      ;   true
 6025										      )
 6026										  ;   S2=[_, _|U2],
 6027										      setarg(2,
 6028											     S2,
 6029											     U2),
 6030										      (   U2=[V2|_]
 6031										      ->  setarg(4,
 6032												 V2,
 6033												 S2)
 6034										      ;   true
 6035										      )
 6036										  )
 6037										),
 6038										'detach_known/1_1_$special_;/2___2'(R2,
 6039														    I)
 6040									    )
 6041									),
 6042									known(R)
 6043								    )
 6044								;   B=ground(W2),
 6045								    (   'chr newvia_1'(W2,
 6046										       X2)
 6047								    ->  get_attr(X2,
 6048										 guard_entailment,
 6049										 Y2),
 6050									Y2=v(_, _, _, _, _, _, _, _, _, Z2, _, _, _, _, _, _, _, _, _, _, _, _)
 6051								    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 6052										  Z2)
 6053								    ),
 6054								    member(A3,
 6055									   Z2),
 6056								    A3=suspension(_, active, _, _, _, B3),
 6057								    B3==W2, !,
 6058								    (   var(I)
 6059								    ->  true
 6060								    ;   I=suspension(_, C3, _, _, D3, E3),
 6061									setarg(2,
 6062									       I,
 6063									       removed),
 6064									(   C3==not_stored_yet
 6065									->  F3=[]
 6066									;   term_variables(term(D3,
 6067												E3),
 6068											   F3),
 6069									    ( arg(4,
 6070										  I,
 6071										  G3),
 6072									      (   var(G3)
 6073									      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6074											    H3),
 6075										  H3=[_|I3],
 6076										  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6077											   I3),
 6078										  (   I3=[J3|_]
 6079										  ->  setarg(4,
 6080											     J3,
 6081											     _)
 6082										  ;   true
 6083										  )
 6084									      ;   G3=[_, _|I3],
 6085										  setarg(2,
 6086											 G3,
 6087											 I3),
 6088										  (   I3=[J3|_]
 6089										  ->  setarg(4,
 6090											     J3,
 6091											     G3)
 6092										  ;   true
 6093										  )
 6094									      )
 6095									    ),
 6096									    'detach_known/1_1_$special_;/2___2'(F3,
 6097														I)
 6098									)
 6099								    ),
 6100								    known(R)
 6101								)
 6102							    ;   B=integer(K3),
 6103								(   'chr newvia_1'(K3,
 6104										   L3)
 6105								->  get_attr(L3,
 6106									     guard_entailment,
 6107									     M3),
 6108								    M3=v(_, _, _, _, _, _, _, _, _, _, N3, _, _, _, _, _, _, _, _, _, _, _)
 6109								;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 6110									      N3)
 6111								),
 6112								member(O3,
 6113								       N3),
 6114								O3=suspension(_, active, _, _, _, P3),
 6115								P3==K3, !,
 6116								(   var(I)
 6117								->  true
 6118								;   I=suspension(_, Q3, _, _, R3, S3),
 6119								    setarg(2,
 6120									   I,
 6121									   removed),
 6122								    (   Q3==not_stored_yet
 6123								    ->  T3=[]
 6124								    ;   term_variables(term(R3,
 6125											    S3),
 6126										       T3),
 6127									( arg(4,
 6128									      I,
 6129									      U3),
 6130									  (   var(U3)
 6131									  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6132											V3),
 6133									      V3=[_|W3],
 6134									      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6135										       W3),
 6136									      (   W3=[X3|_]
 6137									      ->  setarg(4,
 6138											 X3,
 6139											 _)
 6140									      ;   true
 6141									      )
 6142									  ;   U3=[_, _|W3],
 6143									      setarg(2,
 6144										     U3,
 6145										     W3),
 6146									      (   W3=[X3|_]
 6147									      ->  setarg(4,
 6148											 X3,
 6149											 U3)
 6150									      ;   true
 6151									      )
 6152									  )
 6153									),
 6154									'detach_known/1_1_$special_;/2___2'(T3,
 6155													    I)
 6156								    )
 6157								),
 6158								known(R)
 6159							    )
 6160							;   B=float(Y3),
 6161							    (   'chr newvia_1'(Y3,
 6162									       Z3)
 6163							    ->  get_attr(Z3,
 6164									 guard_entailment,
 6165									 A4),
 6166								A4=v(_, _, _, _, _, _, _, _, _, _, _, B4, _, _, _, _, _, _, _, _, _, _)
 6167							    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 6168									  B4)
 6169							    ),
 6170							    member(C4,
 6171								   B4),
 6172							    C4=suspension(_, active, _, _, _, D4),
 6173							    D4==Y3, !,
 6174							    (   var(I)
 6175							    ->  true
 6176							    ;   I=suspension(_, E4, _, _, F4, G4),
 6177								setarg(2,
 6178								       I,
 6179								       removed),
 6180								(   E4==not_stored_yet
 6181								->  H4=[]
 6182								;   term_variables(term(F4,
 6183											G4),
 6184										   H4),
 6185								    ( arg(4,
 6186									  I,
 6187									  I4),
 6188								      (   var(I4)
 6189								      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6190										    J4),
 6191									  J4=[_|K4],
 6192									  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6193										   K4),
 6194									  (   K4=[L4|_]
 6195									  ->  setarg(4,
 6196										     L4,
 6197										     _)
 6198									  ;   true
 6199									  )
 6200								      ;   I4=[_, _|K4],
 6201									  setarg(2,
 6202										 I4,
 6203										 K4),
 6204									  (   K4=[L4|_]
 6205									  ->  setarg(4,
 6206										     L4,
 6207										     I4)
 6208									  ;   true
 6209									  )
 6210								      )
 6211								    ),
 6212								    'detach_known/1_1_$special_;/2___2'(H4,
 6213													I)
 6214								)
 6215							    ),
 6216							    known(R)
 6217							)
 6218						    ;   B=number(M4),
 6219							(   'chr newvia_1'(M4,
 6220									   N4)
 6221							->  get_attr(N4,
 6222								     guard_entailment,
 6223								     O4),
 6224							    O4=v(_, _, _, _, _, _, _, _, _, _, _, _, P4, _, _, _, _, _, _, _, _, _)
 6225							;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 6226								      P4)
 6227							),
 6228							member(Q4,
 6229							       P4),
 6230							Q4=suspension(_, active, _, _, _, R4),
 6231							R4==M4, !,
 6232							(   var(I)
 6233							->  true
 6234							;   I=suspension(_, S4, _, _, T4, U4),
 6235							    setarg(2,
 6236								   I,
 6237								   removed),
 6238							    (   S4==not_stored_yet
 6239							    ->  V4=[]
 6240							    ;   term_variables(term(T4,
 6241										    U4),
 6242									       V4),
 6243								( arg(4,
 6244								      I,
 6245								      W4),
 6246								  (   var(W4)
 6247								  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6248										X4),
 6249								      X4=[_|Y4],
 6250								      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6251									       Y4),
 6252								      (   Y4=[Z4|_]
 6253								      ->  setarg(4,
 6254										 Z4,
 6255										 _)
 6256								      ;   true
 6257								      )
 6258								  ;   W4=[_, _|Y4],
 6259								      setarg(2,
 6260									     W4,
 6261									     Y4),
 6262								      (   Y4=[Z4|_]
 6263								      ->  setarg(4,
 6264										 Z4,
 6265										 W4)
 6266								      ;   true
 6267								      )
 6268								  )
 6269								),
 6270								'detach_known/1_1_$special_;/2___2'(V4,
 6271												    I)
 6272							    )
 6273							),
 6274							known(R)
 6275						    )
 6276						;   B=(A5=\=B5),
 6277						    (   'chr newvia_2'(A5,
 6278								       B5,
 6279								       C5)
 6280						    ->  get_attr(C5,
 6281								 guard_entailment,
 6282								 D5),
 6283							D5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, E5, _, _, _, _, _, _, _, _)
 6284						    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 6285								  E5)
 6286						    ),
 6287						    member(F5,
 6288							   E5),
 6289						    F5=suspension(_, active, _, _, _, G5, H5),
 6290						    G5==A5,
 6291						    H5==B5, !,
 6292						    (   var(I)
 6293						    ->  true
 6294						    ;   I=suspension(_, I5, _, _, J5, K5),
 6295							setarg(2,
 6296							       I,
 6297							       removed),
 6298							(   I5==not_stored_yet
 6299							->  L5=[]
 6300							;   term_variables(term(J5,
 6301										K5),
 6302									   L5),
 6303							    ( arg(4,
 6304								  I,
 6305								  M5),
 6306							      (   var(M5)
 6307							      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6308									    N5),
 6309								  N5=[_|O5],
 6310								  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6311									   O5),
 6312								  (   O5=[P5|_]
 6313								  ->  setarg(4,
 6314									     P5,
 6315									     _)
 6316								  ;   true
 6317								  )
 6318							      ;   M5=[_, _|O5],
 6319								  setarg(2,
 6320									 M5,
 6321									 O5),
 6322								  (   O5=[P5|_]
 6323								  ->  setarg(4,
 6324									     P5,
 6325									     M5)
 6326								  ;   true
 6327								  )
 6328							      )
 6329							    ),
 6330							    'detach_known/1_1_$special_;/2___2'(L5,
 6331												I)
 6332							)
 6333						    ),
 6334						    known(R)
 6335						)
 6336					    ;   B=(\+Q5),
 6337						(   'chr newvia_1'(Q5,
 6338								   R5)
 6339						->  get_attr(R5,
 6340							     guard_entailment,
 6341							     S5),
 6342						    S5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, T5, _, _, _, _, _, _, _)
 6343						;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 6344							      T5)
 6345						),
 6346						member(U5, T5),
 6347						U5=suspension(_, active, _, _, V5),
 6348						V5==Q5, !,
 6349						(   var(I)
 6350						->  true
 6351						;   I=suspension(_, W5, _, _, X5, Y5),
 6352						    setarg(2, I, removed),
 6353						    (   W5==not_stored_yet
 6354						    ->  Z5=[]
 6355						    ;   term_variables(term(X5,
 6356									    Y5),
 6357								       Z5),
 6358							( arg(4,
 6359							      I,
 6360							      A6),
 6361							  (   var(A6)
 6362							  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6363									B6),
 6364							      B6=[_|C6],
 6365							      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6366								       C6),
 6367							      (   C6=[D6|_]
 6368							      ->  setarg(4,
 6369									 D6,
 6370									 _)
 6371							      ;   true
 6372							      )
 6373							  ;   A6=[_, _|C6],
 6374							      setarg(2,
 6375								     A6,
 6376								     C6),
 6377							      (   C6=[D6|_]
 6378							      ->  setarg(4,
 6379									 D6,
 6380									 A6)
 6381							      ;   true
 6382							      )
 6383							  )
 6384							),
 6385							'detach_known/1_1_$special_;/2___2'(Z5,
 6386											    I)
 6387						    )
 6388						),
 6389						known(R)
 6390					    )
 6391					;   B=functor(E6, F6, G6),
 6392					    (   'chr newvia'(
 6393							     [ E6,
 6394							       F6,
 6395							       G6
 6396							     ],
 6397							     H6)
 6398					    ->  get_attr(H6,
 6399							 guard_entailment,
 6400							 I6),
 6401						I6=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, J6, _, _, _, _, _, _)
 6402					    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 6403							  J6)
 6404					    ),
 6405					    member(K6, J6),
 6406					    K6=suspension(_, active, _, _, L6, M6, N6),
 6407					    L6==E6,
 6408					    M6==F6,
 6409					    N6==G6, !,
 6410					    (   var(I)
 6411					    ->  true
 6412					    ;   I=suspension(_, O6, _, _, P6, Q6),
 6413						setarg(2, I, removed),
 6414						(   O6==not_stored_yet
 6415						->  R6=[]
 6416						;   term_variables(term(P6,
 6417									Q6),
 6418								   R6),
 6419						    ( arg(4, I, S6),
 6420						      (   var(S6)
 6421						      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6422								    T6),
 6423							  T6=[_|U6],
 6424							  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6425								   U6),
 6426							  (   U6=[V6|_]
 6427							  ->  setarg(4,
 6428								     V6,
 6429								     _)
 6430							  ;   true
 6431							  )
 6432						      ;   S6=[_, _|U6],
 6433							  setarg(2,
 6434								 S6,
 6435								 U6),
 6436							  (   U6=[V6|_]
 6437							  ->  setarg(4,
 6438								     V6,
 6439								     S6)
 6440							  ;   true
 6441							  )
 6442						      )
 6443						    ),
 6444						    'detach_known/1_1_$special_;/2___2'(R6,
 6445											I)
 6446						)
 6447					    ),
 6448					    known(R)
 6449					)
 6450				    ;   B=(W6\=X6),
 6451					(   'chr newvia_2'(W6,
 6452							   X6,
 6453							   Y6)
 6454					->  get_attr(Y6,
 6455						     guard_entailment,
 6456						     Z6),
 6457					    Z6=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, A7, _, _, _, _, _)
 6458					;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 6459						      A7)
 6460					),
 6461					member(B7, A7),
 6462					B7=suspension(_, active, _, _, _, C7, D7),
 6463					C7==W6,
 6464					D7==X6, !,
 6465					(   var(I)
 6466					->  true
 6467					;   I=suspension(_, E7, _, _, F7, G7),
 6468					    setarg(2, I, removed),
 6469					    (   E7==not_stored_yet
 6470					    ->  H7=[]
 6471					    ;   term_variables(term(F7,
 6472								    G7),
 6473							       H7),
 6474						( arg(4, I, I7),
 6475						  (   var(I7)
 6476						  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6477								J7),
 6478						      J7=[_|K7],
 6479						      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6480							       K7),
 6481						      (   K7=[L7|_]
 6482						      ->  setarg(4,
 6483								 L7,
 6484								 _)
 6485						      ;   true
 6486						      )
 6487						  ;   I7=[_, _|K7],
 6488						      setarg(2,
 6489							     I7,
 6490							     K7),
 6491						      (   K7=[L7|_]
 6492						      ->  setarg(4,
 6493								 L7,
 6494								 I7)
 6495						      ;   true
 6496						      )
 6497						  )
 6498						),
 6499						'detach_known/1_1_$special_;/2___2'(H7,
 6500										    I)
 6501					    )
 6502					),
 6503					known(R)
 6504				    )
 6505				;   B=(M7=N7),
 6506				    (   'chr newvia_2'(M7,
 6507						       N7,
 6508						       O7)
 6509				    ->  get_attr(O7,
 6510						 guard_entailment,
 6511						 P7),
 6512					P7=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, Q7, _, _, _, _)
 6513				    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 6514						  Q7)
 6515				    ),
 6516				    member(R7, Q7),
 6517				    R7=suspension(_, active, _, _, S7, T7),
 6518				    S7==M7,
 6519				    T7==N7, !,
 6520				    (   var(I)
 6521				    ->  true
 6522				    ;   I=suspension(_, U7, _, _, V7, W7),
 6523					setarg(2, I, removed),
 6524					(   U7==not_stored_yet
 6525					->  X7=[]
 6526					;   term_variables(term(V7,
 6527								W7),
 6528							   X7),
 6529					    ( arg(4, I, Y7),
 6530					      (   var(Y7)
 6531					      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6532							    Z7),
 6533						  Z7=[_|A8],
 6534						  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6535							   A8),
 6536						  (   A8=[B8|_]
 6537						  ->  setarg(4,
 6538							     B8,
 6539							     _)
 6540						  ;   true
 6541						  )
 6542					      ;   Y7=[_, _|A8],
 6543						  setarg(2,
 6544							 Y7,
 6545							 A8),
 6546						  (   A8=[B8|_]
 6547						  ->  setarg(4,
 6548							     B8,
 6549							     Y7)
 6550						  ;   true
 6551						  )
 6552					      )
 6553					    ),
 6554					    'detach_known/1_1_$special_;/2___2'(X7,
 6555										I)
 6556					)
 6557				    ),
 6558				    known(R)
 6559				)
 6560			    ;   B=(C8\==D8),
 6561				(   'chr newvia_2'(C8,
 6562						   D8,
 6563						   E8)
 6564				->  get_attr(E8,
 6565					     guard_entailment,
 6566					     F8),
 6567				    F8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, G8, _, _, _)
 6568				;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 6569					      G8)
 6570				),
 6571				member(H8, G8),
 6572				H8=suspension(_, active, _, _, _, I8, J8),
 6573				I8==C8,
 6574				J8==D8, !,
 6575				(   var(I)
 6576				->  true
 6577				;   I=suspension(_, K8, _, _, L8, M8),
 6578				    setarg(2, I, removed),
 6579				    (   K8==not_stored_yet
 6580				    ->  N8=[]
 6581				    ;   term_variables(term(L8,
 6582							    M8),
 6583						       N8),
 6584					( arg(4, I, O8),
 6585					  (   var(O8)
 6586					  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6587							P8),
 6588					      P8=[_|Q8],
 6589					      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6590						       Q8),
 6591					      (   Q8=[R8|_]
 6592					      ->  setarg(4, R8, _)
 6593					      ;   true
 6594					      )
 6595					  ;   O8=[_, _|Q8],
 6596					      setarg(2, O8, Q8),
 6597					      (   Q8=[R8|_]
 6598					      ->  setarg(4,
 6599							 R8,
 6600							 O8)
 6601					      ;   true
 6602					      )
 6603					  )
 6604					),
 6605					'detach_known/1_1_$special_;/2___2'(N8,
 6606									    I)
 6607				    )
 6608				),
 6609				known(R)
 6610			    )
 6611			;   B=(S8==T8),
 6612			    (   'chr newvia_2'(S8, T8, U8)
 6613			    ->  get_attr(U8, guard_entailment, V8),
 6614				V8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, W8, _, _)
 6615			    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 6616					  W8)
 6617			    ),
 6618			    member(X8, W8),
 6619			    X8=suspension(_, active, _, _, _, Y8, Z8),
 6620			    Y8==S8,
 6621			    Z8==T8, !,
 6622			    (   var(I)
 6623			    ->  true
 6624			    ;   I=suspension(_, A9, _, _, B9, C9),
 6625				setarg(2, I, removed),
 6626				(   A9==not_stored_yet
 6627				->  D9=[]
 6628				;   term_variables(term(B9, C9),
 6629						   D9),
 6630				    ( arg(4, I, E9),
 6631				      (   var(E9)
 6632				      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6633						    F9),
 6634					  F9=[_|G9],
 6635					  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6636						   G9),
 6637					  (   G9=[H9|_]
 6638					  ->  setarg(4, H9, _)
 6639					  ;   true
 6640					  )
 6641				      ;   E9=[_, _|G9],
 6642					  setarg(2, E9, G9),
 6643					  (   G9=[H9|_]
 6644					  ->  setarg(4, H9, E9)
 6645					  ;   true
 6646					  )
 6647				      )
 6648				    ),
 6649				    'detach_known/1_1_$special_;/2___2'(D9,
 6650									I)
 6651				)
 6652			    ),
 6653			    known(R)
 6654			)
 6655		    ;   B=(I9=<J9),
 6656			(   'chr newvia_2'(I9, J9, K9)
 6657			->  get_attr(K9, guard_entailment, L9),
 6658			    L9=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, M9, _)
 6659			;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 6660				      M9)
 6661			),
 6662			member(N9, M9),
 6663			N9=suspension(_, active, _, _, _, O9, P9),
 6664			O9==I9,
 6665			P9==J9, !,
 6666			(   var(I)
 6667			->  true
 6668			;   I=suspension(_, Q9, _, _, R9, S9),
 6669			    setarg(2, I, removed),
 6670			    (   Q9==not_stored_yet
 6671			    ->  T9=[]
 6672			    ;   term_variables(term(R9, S9),
 6673					       T9),
 6674				( arg(4, I, U9),
 6675				  (   var(U9)
 6676				  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6677						V9),
 6678				      V9=[_|W9],
 6679				      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6680					       W9),
 6681				      (   W9=[X9|_]
 6682				      ->  setarg(4, X9, _)
 6683				      ;   true
 6684				      )
 6685				  ;   U9=[_, _|W9],
 6686				      setarg(2, U9, W9),
 6687				      (   W9=[X9|_]
 6688				      ->  setarg(4, X9, U9)
 6689				      ;   true
 6690				      )
 6691				  )
 6692				),
 6693				'detach_known/1_1_$special_;/2___2'(T9,
 6694								    I)
 6695			    )
 6696			),
 6697			known(R)
 6698		    )
 6699		;   B=(Y9=:=Z9),
 6700		    (   'chr newvia_2'(Y9, Z9, A10)
 6701		    ->  get_attr(A10, guard_entailment, B10),
 6702			B10=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C10)
 6703		    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 6704				  C10)
 6705		    ),
 6706		    member(D10, C10),
 6707		    D10=suspension(_, active, _, _, _, E10, F10),
 6708		    E10==Y9,
 6709		    F10==Z9, !,
 6710		    (   var(I)
 6711		    ->  true
 6712		    ;   I=suspension(_, G10, _, _, H10, I10),
 6713			setarg(2, I, removed),
 6714			(   G10==not_stored_yet
 6715			->  J10=[]
 6716			;   term_variables(term(H10, I10),
 6717					   J10),
 6718			    ( arg(4, I, K10),
 6719			      (   var(K10)
 6720			      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6721					    L10),
 6722				  L10=[_|M10],
 6723				  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6724					   M10),
 6725				  (   M10=[N10|_]
 6726				  ->  setarg(4, N10, _)
 6727				  ;   true
 6728				  )
 6729			      ;   K10=[_, _|M10],
 6730				  setarg(2, K10, M10),
 6731				  (   M10=[N10|_]
 6732				  ->  setarg(4, N10, K10)
 6733				  ;   true
 6734				  )
 6735			      )
 6736			    ),
 6737			    'detach_known/1_1_$special_;/2___2'(J10,
 6738								I)
 6739			)
 6740		    ),
 6741		    known(R)
 6742		)
 6743	    ;   (   'chr newvia_1'(B, O10)
 6744		->  get_attr(O10, guard_entailment, P10),
 6745		    P10=v(_, _, Q10, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 6746		;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 6747			      Q10)
 6748		),
 6749		member(R10, Q10),
 6750		R10=suspension(_, active, _, _, S10),
 6751		S10==B, !,
 6752		(   var(I)
 6753		->  true
 6754		;   I=suspension(_, T10, _, _, U10, V10),
 6755		    setarg(2, I, removed),
 6756		    (   T10==not_stored_yet
 6757		    ->  W10=[]
 6758		    ;   term_variables(term(U10, V10), W10),
 6759			( arg(4, I, X10),
 6760			  (   var(X10)
 6761			  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6762					Y10),
 6763			      Y10=[_|Z10],
 6764			      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6765				       Z10),
 6766			      (   Z10=[A11|_]
 6767			      ->  setarg(4, A11, _)
 6768			      ;   true
 6769			      )
 6770			  ;   X10=[_, _|Z10],
 6771			      setarg(2, X10, Z10),
 6772			      (   Z10=[A11|_]
 6773			      ->  setarg(4, A11, X10)
 6774			      ;   true
 6775			      )
 6776			  )
 6777			),
 6778			'detach_known/1_1_$special_;/2___2'(W10, I)
 6779		    )
 6780		),
 6781		known(R)
 6782	    )
 6783	;   A=(B11, _),
 6784	    nonvar(B11),
 6785	    B11=(\+C11),
 6786	    nonvar(C11),
 6787	    C11=(D11;E11),
 6788	    (   'chr newvia_2'(D11, E11, F11)
 6789	    ->  get_attr(F11, guard_entailment, G11),
 6790		G11=v(_, _, _, H11, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 6791	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6792			  H11)
 6793	    ),
 6794	    member(I11, H11),
 6795	    I11=suspension(_, active, _, _, J11, K11),
 6796	    J11==D11,
 6797	    K11==E11, !,
 6798	    (   var(I)
 6799	    ->  true
 6800	    ;   I=suspension(_, L11, _, _, M11, N11),
 6801		setarg(2, I, removed),
 6802		(   L11==not_stored_yet
 6803		->  O11=[]
 6804		;   term_variables(term(M11, N11), O11),
 6805		    ( arg(4, I, P11),
 6806		      (   var(P11)
 6807		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6808				    Q11),
 6809			  Q11=[_|R11],
 6810			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6811				   R11),
 6812			  (   R11=[S11|_]
 6813			  ->  setarg(4, S11, _)
 6814			  ;   true
 6815			  )
 6816		      ;   P11=[_, _|R11],
 6817			  setarg(2, P11, R11),
 6818			  (   R11=[S11|_]
 6819			  ->  setarg(4, S11, P11)
 6820			  ;   true
 6821			  )
 6822		      )
 6823		    ),
 6824		    'detach_known/1_1_$special_;/2___2'(O11, I)
 6825		)
 6826	    ),
 6827	    known(R)
 6828	).
 6829'known/1_1_$special_;/2___2__1'(A, B, F) :-
 6830	(   'chr newvia_2'(A, B, C)
 6831	->  get_attr(C, guard_entailment, D),
 6832	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 6833	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6834		      E)
 6835	), !,
 6836	'known/1_1_$special_;/2___2__1__0__34'(E, A, B, F).
 6837'known/1_1_$special_;/2___2__1__0__34'([], A, B, C) :-
 6838	'known/1_1_$special_;/2___2__2'(A, B, C).
 6839'known/1_1_$special_;/2___2__1__0__34'([A|A1], F, H, P) :-
 6840	(   A=suspension(_, active, _, _, B, Z),
 6841	    nonvar(B),
 6842	    B=(C, _),
 6843	    nonvar(C),
 6844	    C=(\+D),
 6845	    nonvar(D),
 6846	    D=(E;G),
 6847	    E==F,
 6848	    G==H
 6849	->  ( A=suspension(_, _, _, _, I, J),
 6850	      setarg(2, A, removed),
 6851	      term_variables(term(I, J), O),
 6852	      ( arg(4, A, K),
 6853		(   var(K)
 6854		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6855			      L),
 6856		    L=[_|M],
 6857		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6858			     M),
 6859		    (   M=[N|_]
 6860		    ->  setarg(4, N, _)
 6861		    ;   true
 6862		    )
 6863		;   K=[_, _|M],
 6864		    setarg(2, K, M),
 6865		    (   M=[N|_]
 6866		    ->  setarg(4, N, K)
 6867		    ;   true
 6868		    )
 6869		)
 6870	      ),
 6871	      'detach_known/1_1_$special_;/2___2'(O, A)
 6872	    ),
 6873	    ( arg(2, P, S),
 6874	      setarg(2, P, active),
 6875	      ( arg(3, P, Q),
 6876		R is Q+1,
 6877		setarg(3, P, R)
 6878	      ),
 6879	      (   S==not_stored_yet
 6880	      ->  P=suspension(_, _, _, _, T, U),
 6881		  term_variables(term(T, U), V),
 6882		  'chr none_locked'(V),
 6883		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6884			      W),
 6885		    X=[P|W],
 6886		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6887			     X),
 6888		    (   W=[Y|_]
 6889		    ->  setarg(4, Y, X)
 6890		    ;   true
 6891		    )
 6892		  ),
 6893		  'attach_known/1_1_$special_;/2___2'(V, P)
 6894	      ;   true
 6895	      )
 6896	    ),
 6897	    known(Z),
 6898	    (   P=suspension(_, active, R, _, _, _)
 6899	    ->  setarg(2, P, inactive),
 6900		'known/1_1_$special_;/2___2__1__0__34'(A1,
 6901						       F,
 6902						       H,
 6903						       P)
 6904	    ;   true
 6905	    )
 6906	;   'known/1_1_$special_;/2___2__1__0__34'(A1,
 6907						   F,
 6908						   H,
 6909						   P)
 6910	).
 6911'known/1_1_$special_;/2___2__1'(A, B, C) :-
 6912	'known/1_1_$special_;/2___2__2'(A, B, C).
 6913'known/1_1_$special_;/2___2__2'(A, S, J) :-
 6914	( nonvar(A),
 6915	  A=(B, _),
 6916	  nonvar(B),
 6917	  B=(\+C)
 6918	),
 6919	(   nonvar(C),
 6920	    (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   C=nonvar(D),
 6921										(   'chr newvia_1'(D,
 6922												   E)
 6923										->  get_attr(E,
 6924											     guard_entailment,
 6925											     F),
 6926										    F=v(_, _, _, _, G, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 6927										;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 6928											      G)
 6929										),
 6930										member(H,
 6931										       G),
 6932										H=suspension(_, active, _, _, I),
 6933										I==D, !,
 6934										(   var(J)
 6935										->  true
 6936										;   J=suspension(_, K, _, _, L, M),
 6937										    setarg(2,
 6938											   J,
 6939											   removed),
 6940										    (   K==not_stored_yet
 6941										    ->  N=[]
 6942										    ;   term_variables(term(L,
 6943													    M),
 6944												       N),
 6945											( arg(4,
 6946											      J,
 6947											      O),
 6948											  (   var(O)
 6949											  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6950													P),
 6951											      P=[_|Q],
 6952											      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 6953												       Q),
 6954											      (   Q=[R|_]
 6955											      ->  setarg(4,
 6956													 R,
 6957													 _)
 6958											      ;   true
 6959											      )
 6960											  ;   O=[_, _|Q],
 6961											      setarg(2,
 6962												     O,
 6963												     Q),
 6964											      (   Q=[R|_]
 6965											      ->  setarg(4,
 6966													 R,
 6967													 O)
 6968											      ;   true
 6969											      )
 6970											  )
 6971											),
 6972											'detach_known/1_1_$special_;/2___2'(N,
 6973															    J)
 6974										    )
 6975										),
 6976										known(S)
 6977									    ;   C=var(T),
 6978										(   'chr newvia_1'(T,
 6979												   U)
 6980										->  get_attr(U,
 6981											     guard_entailment,
 6982											     V),
 6983										    V=v(_, _, _, _, _, W, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 6984										;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 6985											      W)
 6986										),
 6987										member(X,
 6988										       W),
 6989										X=suspension(_, active, _, _, Y),
 6990										Y==T, !,
 6991										(   var(J)
 6992										->  true
 6993										;   J=suspension(_, Z, _, _, A1, B1),
 6994										    setarg(2,
 6995											   J,
 6996											   removed),
 6997										    (   Z==not_stored_yet
 6998										    ->  C1=[]
 6999										    ;   term_variables(term(A1,
 7000													    B1),
 7001												       C1),
 7002											( arg(4,
 7003											      J,
 7004											      D1),
 7005											  (   var(D1)
 7006											  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7007													E1),
 7008											      E1=[_|F1],
 7009											      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7010												       F1),
 7011											      (   F1=[G1|_]
 7012											      ->  setarg(4,
 7013													 G1,
 7014													 _)
 7015											      ;   true
 7016											      )
 7017											  ;   D1=[_, _|F1],
 7018											      setarg(2,
 7019												     D1,
 7020												     F1),
 7021											      (   F1=[G1|_]
 7022											      ->  setarg(4,
 7023													 G1,
 7024													 D1)
 7025											      ;   true
 7026											      )
 7027											  )
 7028											),
 7029											'detach_known/1_1_$special_;/2___2'(C1,
 7030															    J)
 7031										    )
 7032										),
 7033										known(S)
 7034									    )
 7035									;   C=atom(H1),
 7036									    (   'chr newvia_1'(H1,
 7037											       I1)
 7038									    ->  get_attr(I1,
 7039											 guard_entailment,
 7040											 J1),
 7041										J1=v(_, _, _, _, _, _, K1, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 7042									    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 7043											  K1)
 7044									    ),
 7045									    member(L1,
 7046										   K1),
 7047									    L1=suspension(_, active, _, _, _, M1),
 7048									    M1==H1, !,
 7049									    (   var(J)
 7050									    ->  true
 7051									    ;   J=suspension(_, N1, _, _, O1, P1),
 7052										setarg(2,
 7053										       J,
 7054										       removed),
 7055										(   N1==not_stored_yet
 7056										->  Q1=[]
 7057										;   term_variables(term(O1,
 7058													P1),
 7059												   Q1),
 7060										    ( arg(4,
 7061											  J,
 7062											  R1),
 7063										      (   var(R1)
 7064										      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7065												    S1),
 7066											  S1=[_|T1],
 7067											  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7068												   T1),
 7069											  (   T1=[U1|_]
 7070											  ->  setarg(4,
 7071												     U1,
 7072												     _)
 7073											  ;   true
 7074											  )
 7075										      ;   R1=[_, _|T1],
 7076											  setarg(2,
 7077												 R1,
 7078												 T1),
 7079											  (   T1=[U1|_]
 7080											  ->  setarg(4,
 7081												     U1,
 7082												     R1)
 7083											  ;   true
 7084											  )
 7085										      )
 7086										    ),
 7087										    'detach_known/1_1_$special_;/2___2'(Q1,
 7088															J)
 7089										)
 7090									    ),
 7091									    known(S)
 7092									)
 7093								    ;   C=atomic(V1),
 7094									(   'chr newvia_1'(V1,
 7095											   W1)
 7096									->  get_attr(W1,
 7097										     guard_entailment,
 7098										     X1),
 7099									    X1=v(_, _, _, _, _, _, _, Y1, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 7100									;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 7101										      Y1)
 7102									),
 7103									member(Z1,
 7104									       Y1),
 7105									Z1=suspension(_, active, _, _, _, A2),
 7106									A2==V1, !,
 7107									(   var(J)
 7108									->  true
 7109									;   J=suspension(_, B2, _, _, C2, D2),
 7110									    setarg(2,
 7111										   J,
 7112										   removed),
 7113									    (   B2==not_stored_yet
 7114									    ->  E2=[]
 7115									    ;   term_variables(term(C2,
 7116												    D2),
 7117											       E2),
 7118										( arg(4,
 7119										      J,
 7120										      F2),
 7121										  (   var(F2)
 7122										  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7123												G2),
 7124										      G2=[_|H2],
 7125										      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7126											       H2),
 7127										      (   H2=[I2|_]
 7128										      ->  setarg(4,
 7129												 I2,
 7130												 _)
 7131										      ;   true
 7132										      )
 7133										  ;   F2=[_, _|H2],
 7134										      setarg(2,
 7135											     F2,
 7136											     H2),
 7137										      (   H2=[I2|_]
 7138										      ->  setarg(4,
 7139												 I2,
 7140												 F2)
 7141										      ;   true
 7142										      )
 7143										  )
 7144										),
 7145										'detach_known/1_1_$special_;/2___2'(E2,
 7146														    J)
 7147									    )
 7148									),
 7149									known(S)
 7150								    )
 7151								;   C=compound(J2),
 7152								    (   'chr newvia_1'(J2,
 7153										       K2)
 7154								    ->  get_attr(K2,
 7155										 guard_entailment,
 7156										 L2),
 7157									L2=v(_, _, _, _, _, _, _, _, M2, _, _, _, _, _, _, _, _, _, _, _, _, _)
 7158								    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 7159										  M2)
 7160								    ),
 7161								    member(N2,
 7162									   M2),
 7163								    N2=suspension(_, active, _, _, _, O2),
 7164								    O2==J2, !,
 7165								    (   var(J)
 7166								    ->  true
 7167								    ;   J=suspension(_, P2, _, _, Q2, R2),
 7168									setarg(2,
 7169									       J,
 7170									       removed),
 7171									(   P2==not_stored_yet
 7172									->  S2=[]
 7173									;   term_variables(term(Q2,
 7174												R2),
 7175											   S2),
 7176									    ( arg(4,
 7177										  J,
 7178										  T2),
 7179									      (   var(T2)
 7180									      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7181											    U2),
 7182										  U2=[_|V2],
 7183										  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7184											   V2),
 7185										  (   V2=[W2|_]
 7186										  ->  setarg(4,
 7187											     W2,
 7188											     _)
 7189										  ;   true
 7190										  )
 7191									      ;   T2=[_, _|V2],
 7192										  setarg(2,
 7193											 T2,
 7194											 V2),
 7195										  (   V2=[W2|_]
 7196										  ->  setarg(4,
 7197											     W2,
 7198											     T2)
 7199										  ;   true
 7200										  )
 7201									      )
 7202									    ),
 7203									    'detach_known/1_1_$special_;/2___2'(S2,
 7204														J)
 7205									)
 7206								    ),
 7207								    known(S)
 7208								)
 7209							    ;   C=ground(X2),
 7210								(   'chr newvia_1'(X2,
 7211										   Y2)
 7212								->  get_attr(Y2,
 7213									     guard_entailment,
 7214									     Z2),
 7215								    Z2=v(_, _, _, _, _, _, _, _, _, A3, _, _, _, _, _, _, _, _, _, _, _, _)
 7216								;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
 7217									      A3)
 7218								),
 7219								member(B3,
 7220								       A3),
 7221								B3=suspension(_, active, _, _, _, C3),
 7222								C3==X2, !,
 7223								(   var(J)
 7224								->  true
 7225								;   J=suspension(_, D3, _, _, E3, F3),
 7226								    setarg(2,
 7227									   J,
 7228									   removed),
 7229								    (   D3==not_stored_yet
 7230								    ->  G3=[]
 7231								    ;   term_variables(term(E3,
 7232											    F3),
 7233										       G3),
 7234									( arg(4,
 7235									      J,
 7236									      H3),
 7237									  (   var(H3)
 7238									  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7239											I3),
 7240									      I3=[_|J3],
 7241									      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7242										       J3),
 7243									      (   J3=[K3|_]
 7244									      ->  setarg(4,
 7245											 K3,
 7246											 _)
 7247									      ;   true
 7248									      )
 7249									  ;   H3=[_, _|J3],
 7250									      setarg(2,
 7251										     H3,
 7252										     J3),
 7253									      (   J3=[K3|_]
 7254									      ->  setarg(4,
 7255											 K3,
 7256											 H3)
 7257									      ;   true
 7258									      )
 7259									  )
 7260									),
 7261									'detach_known/1_1_$special_;/2___2'(G3,
 7262													    J)
 7263								    )
 7264								),
 7265								known(S)
 7266							    )
 7267							;   C=integer(L3),
 7268							    (   'chr newvia_1'(L3,
 7269									       M3)
 7270							    ->  get_attr(M3,
 7271									 guard_entailment,
 7272									 N3),
 7273								N3=v(_, _, _, _, _, _, _, _, _, _, O3, _, _, _, _, _, _, _, _, _, _, _)
 7274							    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
 7275									  O3)
 7276							    ),
 7277							    member(P3,
 7278								   O3),
 7279							    P3=suspension(_, active, _, _, _, Q3),
 7280							    Q3==L3, !,
 7281							    (   var(J)
 7282							    ->  true
 7283							    ;   J=suspension(_, R3, _, _, S3, T3),
 7284								setarg(2,
 7285								       J,
 7286								       removed),
 7287								(   R3==not_stored_yet
 7288								->  U3=[]
 7289								;   term_variables(term(S3,
 7290											T3),
 7291										   U3),
 7292								    ( arg(4,
 7293									  J,
 7294									  V3),
 7295								      (   var(V3)
 7296								      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7297										    W3),
 7298									  W3=[_|X3],
 7299									  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7300										   X3),
 7301									  (   X3=[Y3|_]
 7302									  ->  setarg(4,
 7303										     Y3,
 7304										     _)
 7305									  ;   true
 7306									  )
 7307								      ;   V3=[_, _|X3],
 7308									  setarg(2,
 7309										 V3,
 7310										 X3),
 7311									  (   X3=[Y3|_]
 7312									  ->  setarg(4,
 7313										     Y3,
 7314										     V3)
 7315									  ;   true
 7316									  )
 7317								      )
 7318								    ),
 7319								    'detach_known/1_1_$special_;/2___2'(U3,
 7320													J)
 7321								)
 7322							    ),
 7323							    known(S)
 7324							)
 7325						    ;   C=float(Z3),
 7326							(   'chr newvia_1'(Z3,
 7327									   A4)
 7328							->  get_attr(A4,
 7329								     guard_entailment,
 7330								     B4),
 7331							    B4=v(_, _, _, _, _, _, _, _, _, _, _, C4, _, _, _, _, _, _, _, _, _, _)
 7332							;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
 7333								      C4)
 7334							),
 7335							member(D4,
 7336							       C4),
 7337							D4=suspension(_, active, _, _, _, E4),
 7338							E4==Z3, !,
 7339							(   var(J)
 7340							->  true
 7341							;   J=suspension(_, F4, _, _, G4, H4),
 7342							    setarg(2,
 7343								   J,
 7344								   removed),
 7345							    (   F4==not_stored_yet
 7346							    ->  I4=[]
 7347							    ;   term_variables(term(G4,
 7348										    H4),
 7349									       I4),
 7350								( arg(4,
 7351								      J,
 7352								      J4),
 7353								  (   var(J4)
 7354								  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7355										K4),
 7356								      K4=[_|L4],
 7357								      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7358									       L4),
 7359								      (   L4=[M4|_]
 7360								      ->  setarg(4,
 7361										 M4,
 7362										 _)
 7363								      ;   true
 7364								      )
 7365								  ;   J4=[_, _|L4],
 7366								      setarg(2,
 7367									     J4,
 7368									     L4),
 7369								      (   L4=[M4|_]
 7370								      ->  setarg(4,
 7371										 M4,
 7372										 J4)
 7373								      ;   true
 7374								      )
 7375								  )
 7376								),
 7377								'detach_known/1_1_$special_;/2___2'(I4,
 7378												    J)
 7379							    )
 7380							),
 7381							known(S)
 7382						    )
 7383						;   C=number(N4),
 7384						    (   'chr newvia_1'(N4,
 7385								       O4)
 7386						    ->  get_attr(O4,
 7387								 guard_entailment,
 7388								 P4),
 7389							P4=v(_, _, _, _, _, _, _, _, _, _, _, _, Q4, _, _, _, _, _, _, _, _, _)
 7390						    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
 7391								  Q4)
 7392						    ),
 7393						    member(R4,
 7394							   Q4),
 7395						    R4=suspension(_, active, _, _, _, S4),
 7396						    S4==N4, !,
 7397						    (   var(J)
 7398						    ->  true
 7399						    ;   J=suspension(_, T4, _, _, U4, V4),
 7400							setarg(2,
 7401							       J,
 7402							       removed),
 7403							(   T4==not_stored_yet
 7404							->  W4=[]
 7405							;   term_variables(term(U4,
 7406										V4),
 7407									   W4),
 7408							    ( arg(4,
 7409								  J,
 7410								  X4),
 7411							      (   var(X4)
 7412							      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7413									    Y4),
 7414								  Y4=[_|Z4],
 7415								  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7416									   Z4),
 7417								  (   Z4=[A5|_]
 7418								  ->  setarg(4,
 7419									     A5,
 7420									     _)
 7421								  ;   true
 7422								  )
 7423							      ;   X4=[_, _|Z4],
 7424								  setarg(2,
 7425									 X4,
 7426									 Z4),
 7427								  (   Z4=[A5|_]
 7428								  ->  setarg(4,
 7429									     A5,
 7430									     X4)
 7431								  ;   true
 7432								  )
 7433							      )
 7434							    ),
 7435							    'detach_known/1_1_$special_;/2___2'(W4,
 7436												J)
 7437							)
 7438						    ),
 7439						    known(S)
 7440						)
 7441					    ;   C=(B5=\=C5),
 7442						(   'chr newvia_2'(B5,
 7443								   C5,
 7444								   D5)
 7445						->  get_attr(D5,
 7446							     guard_entailment,
 7447							     E5),
 7448						    E5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, F5, _, _, _, _, _, _, _, _)
 7449						;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
 7450							      F5)
 7451						),
 7452						member(G5, F5),
 7453						G5=suspension(_, active, _, _, _, H5, I5),
 7454						H5==B5,
 7455						I5==C5, !,
 7456						(   var(J)
 7457						->  true
 7458						;   J=suspension(_, J5, _, _, K5, L5),
 7459						    setarg(2, J, removed),
 7460						    (   J5==not_stored_yet
 7461						    ->  M5=[]
 7462						    ;   term_variables(term(K5,
 7463									    L5),
 7464								       M5),
 7465							( arg(4,
 7466							      J,
 7467							      N5),
 7468							  (   var(N5)
 7469							  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7470									O5),
 7471							      O5=[_|P5],
 7472							      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7473								       P5),
 7474							      (   P5=[Q5|_]
 7475							      ->  setarg(4,
 7476									 Q5,
 7477									 _)
 7478							      ;   true
 7479							      )
 7480							  ;   N5=[_, _|P5],
 7481							      setarg(2,
 7482								     N5,
 7483								     P5),
 7484							      (   P5=[Q5|_]
 7485							      ->  setarg(4,
 7486									 Q5,
 7487									 N5)
 7488							      ;   true
 7489							      )
 7490							  )
 7491							),
 7492							'detach_known/1_1_$special_;/2___2'(M5,
 7493											    J)
 7494						    )
 7495						),
 7496						known(S)
 7497					    )
 7498					;   C=(\+R5),
 7499					    (   'chr newvia_1'(R5,
 7500							       S5)
 7501					    ->  get_attr(S5,
 7502							 guard_entailment,
 7503							 T5),
 7504						T5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, U5, _, _, _, _, _, _, _)
 7505					    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 7506							  U5)
 7507					    ),
 7508					    member(V5, U5),
 7509					    V5=suspension(_, active, _, _, W5),
 7510					    W5==R5, !,
 7511					    (   var(J)
 7512					    ->  true
 7513					    ;   J=suspension(_, X5, _, _, Y5, Z5),
 7514						setarg(2, J, removed),
 7515						(   X5==not_stored_yet
 7516						->  A6=[]
 7517						;   term_variables(term(Y5,
 7518									Z5),
 7519								   A6),
 7520						    ( arg(4, J, B6),
 7521						      (   var(B6)
 7522						      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7523								    C6),
 7524							  C6=[_|D6],
 7525							  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7526								   D6),
 7527							  (   D6=[E6|_]
 7528							  ->  setarg(4,
 7529								     E6,
 7530								     _)
 7531							  ;   true
 7532							  )
 7533						      ;   B6=[_, _|D6],
 7534							  setarg(2,
 7535								 B6,
 7536								 D6),
 7537							  (   D6=[E6|_]
 7538							  ->  setarg(4,
 7539								     E6,
 7540								     B6)
 7541							  ;   true
 7542							  )
 7543						      )
 7544						    ),
 7545						    'detach_known/1_1_$special_;/2___2'(A6,
 7546											J)
 7547						)
 7548					    ),
 7549					    known(S)
 7550					)
 7551				    ;   C=functor(F6, G6, H6),
 7552					(   'chr newvia'(
 7553							 [ F6,
 7554							   G6,
 7555							   H6
 7556							 ],
 7557							 I6)
 7558					->  get_attr(I6,
 7559						     guard_entailment,
 7560						     J6),
 7561					    J6=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, K6, _, _, _, _, _, _)
 7562					;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 7563						      K6)
 7564					),
 7565					member(L6, K6),
 7566					L6=suspension(_, active, _, _, M6, N6, O6),
 7567					M6==F6,
 7568					N6==G6,
 7569					O6==H6, !,
 7570					(   var(J)
 7571					->  true
 7572					;   J=suspension(_, P6, _, _, Q6, R6),
 7573					    setarg(2, J, removed),
 7574					    (   P6==not_stored_yet
 7575					    ->  S6=[]
 7576					    ;   term_variables(term(Q6,
 7577								    R6),
 7578							       S6),
 7579						( arg(4, J, T6),
 7580						  (   var(T6)
 7581						  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7582								U6),
 7583						      U6=[_|V6],
 7584						      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7585							       V6),
 7586						      (   V6=[W6|_]
 7587						      ->  setarg(4,
 7588								 W6,
 7589								 _)
 7590						      ;   true
 7591						      )
 7592						  ;   T6=[_, _|V6],
 7593						      setarg(2,
 7594							     T6,
 7595							     V6),
 7596						      (   V6=[W6|_]
 7597						      ->  setarg(4,
 7598								 W6,
 7599								 T6)
 7600						      ;   true
 7601						      )
 7602						  )
 7603						),
 7604						'detach_known/1_1_$special_;/2___2'(S6,
 7605										    J)
 7606					    )
 7607					),
 7608					known(S)
 7609				    )
 7610				;   C=(X6\=Y6),
 7611				    (   'chr newvia_2'(X6,
 7612						       Y6,
 7613						       Z6)
 7614				    ->  get_attr(Z6,
 7615						 guard_entailment,
 7616						 A7),
 7617					A7=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, B7, _, _, _, _, _)
 7618				    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
 7619						  B7)
 7620				    ),
 7621				    member(C7, B7),
 7622				    C7=suspension(_, active, _, _, _, D7, E7),
 7623				    D7==X6,
 7624				    E7==Y6, !,
 7625				    (   var(J)
 7626				    ->  true
 7627				    ;   J=suspension(_, F7, _, _, G7, H7),
 7628					setarg(2, J, removed),
 7629					(   F7==not_stored_yet
 7630					->  I7=[]
 7631					;   term_variables(term(G7,
 7632								H7),
 7633							   I7),
 7634					    ( arg(4, J, J7),
 7635					      (   var(J7)
 7636					      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7637							    K7),
 7638						  K7=[_|L7],
 7639						  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7640							   L7),
 7641						  (   L7=[M7|_]
 7642						  ->  setarg(4,
 7643							     M7,
 7644							     _)
 7645						  ;   true
 7646						  )
 7647					      ;   J7=[_, _|L7],
 7648						  setarg(2,
 7649							 J7,
 7650							 L7),
 7651						  (   L7=[M7|_]
 7652						  ->  setarg(4,
 7653							     M7,
 7654							     J7)
 7655						  ;   true
 7656						  )
 7657					      )
 7658					    ),
 7659					    'detach_known/1_1_$special_;/2___2'(I7,
 7660										J)
 7661					)
 7662				    ),
 7663				    known(S)
 7664				)
 7665			    ;   C=(N7=O7),
 7666				(   'chr newvia_2'(N7,
 7667						   O7,
 7668						   P7)
 7669				->  get_attr(P7,
 7670					     guard_entailment,
 7671					     Q7),
 7672				    Q7=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, R7, _, _, _, _)
 7673				;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
 7674					      R7)
 7675				),
 7676				member(S7, R7),
 7677				S7=suspension(_, active, _, _, T7, U7),
 7678				T7==N7,
 7679				U7==O7, !,
 7680				(   var(J)
 7681				->  true
 7682				;   J=suspension(_, V7, _, _, W7, X7),
 7683				    setarg(2, J, removed),
 7684				    (   V7==not_stored_yet
 7685				    ->  Y7=[]
 7686				    ;   term_variables(term(W7,
 7687							    X7),
 7688						       Y7),
 7689					( arg(4, J, Z7),
 7690					  (   var(Z7)
 7691					  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7692							A8),
 7693					      A8=[_|B8],
 7694					      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7695						       B8),
 7696					      (   B8=[C8|_]
 7697					      ->  setarg(4, C8, _)
 7698					      ;   true
 7699					      )
 7700					  ;   Z7=[_, _|B8],
 7701					      setarg(2, Z7, B8),
 7702					      (   B8=[C8|_]
 7703					      ->  setarg(4,
 7704							 C8,
 7705							 Z7)
 7706					      ;   true
 7707					      )
 7708					  )
 7709					),
 7710					'detach_known/1_1_$special_;/2___2'(Y7,
 7711									    J)
 7712				    )
 7713				),
 7714				known(S)
 7715			    )
 7716			;   C=(D8\==E8),
 7717			    (   'chr newvia_2'(D8, E8, F8)
 7718			    ->  get_attr(F8, guard_entailment, G8),
 7719				G8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, H8, _, _, _)
 7720			    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
 7721					  H8)
 7722			    ),
 7723			    member(I8, H8),
 7724			    I8=suspension(_, active, _, _, _, J8, K8),
 7725			    J8==D8,
 7726			    K8==E8, !,
 7727			    (   var(J)
 7728			    ->  true
 7729			    ;   J=suspension(_, L8, _, _, M8, N8),
 7730				setarg(2, J, removed),
 7731				(   L8==not_stored_yet
 7732				->  O8=[]
 7733				;   term_variables(term(M8, N8),
 7734						   O8),
 7735				    ( arg(4, J, P8),
 7736				      (   var(P8)
 7737				      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7738						    Q8),
 7739					  Q8=[_|R8],
 7740					  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7741						   R8),
 7742					  (   R8=[S8|_]
 7743					  ->  setarg(4, S8, _)
 7744					  ;   true
 7745					  )
 7746				      ;   P8=[_, _|R8],
 7747					  setarg(2, P8, R8),
 7748					  (   R8=[S8|_]
 7749					  ->  setarg(4, S8, P8)
 7750					  ;   true
 7751					  )
 7752				      )
 7753				    ),
 7754				    'detach_known/1_1_$special_;/2___2'(O8,
 7755									J)
 7756				)
 7757			    ),
 7758			    known(S)
 7759			)
 7760		    ;   C=(T8==U8),
 7761			(   'chr newvia_2'(T8, U8, V8)
 7762			->  get_attr(V8, guard_entailment, W8),
 7763			    W8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X8, _, _)
 7764			;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
 7765				      X8)
 7766			),
 7767			member(Y8, X8),
 7768			Y8=suspension(_, active, _, _, _, Z8, A9),
 7769			Z8==T8,
 7770			A9==U8, !,
 7771			(   var(J)
 7772			->  true
 7773			;   J=suspension(_, B9, _, _, C9, D9),
 7774			    setarg(2, J, removed),
 7775			    (   B9==not_stored_yet
 7776			    ->  E9=[]
 7777			    ;   term_variables(term(C9, D9),
 7778					       E9),
 7779				( arg(4, J, F9),
 7780				  (   var(F9)
 7781				  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7782						G9),
 7783				      G9=[_|H9],
 7784				      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7785					       H9),
 7786				      (   H9=[I9|_]
 7787				      ->  setarg(4, I9, _)
 7788				      ;   true
 7789				      )
 7790				  ;   F9=[_, _|H9],
 7791				      setarg(2, F9, H9),
 7792				      (   H9=[I9|_]
 7793				      ->  setarg(4, I9, F9)
 7794				      ;   true
 7795				      )
 7796				  )
 7797				),
 7798				'detach_known/1_1_$special_;/2___2'(E9,
 7799								    J)
 7800			    )
 7801			),
 7802			known(S)
 7803		    )
 7804		;   C=(J9=<K9),
 7805		    (   'chr newvia_2'(J9, K9, L9)
 7806		    ->  get_attr(L9, guard_entailment, M9),
 7807			M9=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, N9, _)
 7808		    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
 7809				  N9)
 7810		    ),
 7811		    member(O9, N9),
 7812		    O9=suspension(_, active, _, _, _, P9, Q9),
 7813		    P9==J9,
 7814		    Q9==K9, !,
 7815		    (   var(J)
 7816		    ->  true
 7817		    ;   J=suspension(_, R9, _, _, S9, T9),
 7818			setarg(2, J, removed),
 7819			(   R9==not_stored_yet
 7820			->  U9=[]
 7821			;   term_variables(term(S9, T9),
 7822					   U9),
 7823			    ( arg(4, J, V9),
 7824			      (   var(V9)
 7825			      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7826					    W9),
 7827				  W9=[_|X9],
 7828				  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7829					   X9),
 7830				  (   X9=[Y9|_]
 7831				  ->  setarg(4, Y9, _)
 7832				  ;   true
 7833				  )
 7834			      ;   V9=[_, _|X9],
 7835				  setarg(2, V9, X9),
 7836				  (   X9=[Y9|_]
 7837				  ->  setarg(4, Y9, V9)
 7838				  ;   true
 7839				  )
 7840			      )
 7841			    ),
 7842			    'detach_known/1_1_$special_;/2___2'(U9,
 7843								J)
 7844			)
 7845		    ),
 7846		    known(S)
 7847		)
 7848	    ;   C=(Z9=:=A10),
 7849		(   'chr newvia_2'(Z9, A10, B10)
 7850		->  get_attr(B10, guard_entailment, C10),
 7851		    C10=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D10)
 7852		;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
 7853			      D10)
 7854		),
 7855		member(E10, D10),
 7856		E10=suspension(_, active, _, _, _, F10, G10),
 7857		F10==Z9,
 7858		G10==A10, !,
 7859		(   var(J)
 7860		->  true
 7861		;   J=suspension(_, H10, _, _, I10, J10),
 7862		    setarg(2, J, removed),
 7863		    (   H10==not_stored_yet
 7864		    ->  K10=[]
 7865		    ;   term_variables(term(I10, J10), K10),
 7866			( arg(4, J, L10),
 7867			  (   var(L10)
 7868			  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7869					M10),
 7870			      M10=[_|N10],
 7871			      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7872				       N10),
 7873			      (   N10=[O10|_]
 7874			      ->  setarg(4, O10, _)
 7875			      ;   true
 7876			      )
 7877			  ;   L10=[_, _|N10],
 7878			      setarg(2, L10, N10),
 7879			      (   N10=[O10|_]
 7880			      ->  setarg(4, O10, L10)
 7881			      ;   true
 7882			      )
 7883			  )
 7884			),
 7885			'detach_known/1_1_$special_;/2___2'(K10, J)
 7886		    )
 7887		),
 7888		known(S)
 7889	    )
 7890	;   (   'chr newvia_1'(C, P10)
 7891	    ->  get_attr(P10, guard_entailment, Q10),
 7892		Q10=v(_, _, R10, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 7893	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
 7894			  R10)
 7895	    ),
 7896	    member(S10, R10),
 7897	    S10=suspension(_, active, _, _, T10),
 7898	    T10==C, !,
 7899	    (   var(J)
 7900	    ->  true
 7901	    ;   J=suspension(_, U10, _, _, V10, W10),
 7902		setarg(2, J, removed),
 7903		(   U10==not_stored_yet
 7904		->  X10=[]
 7905		;   term_variables(term(V10, W10), X10),
 7906		    ( arg(4, J, Y10),
 7907		      (   var(Y10)
 7908		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7909				    Z10),
 7910			  Z10=[_|A11],
 7911			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7912				   A11),
 7913			  (   A11=[B11|_]
 7914			  ->  setarg(4, B11, _)
 7915			  ;   true
 7916			  )
 7917		      ;   Y10=[_, _|A11],
 7918			  setarg(2, Y10, A11),
 7919			  (   A11=[B11|_]
 7920			  ->  setarg(4, B11, Y10)
 7921			  ;   true
 7922			  )
 7923		      )
 7924		    ),
 7925		    'detach_known/1_1_$special_;/2___2'(X10, J)
 7926		)
 7927	    ),
 7928	    known(S)
 7929	).
 7930'known/1_1_$special_;/2___2__2'(A, P, G) :-
 7931	(   'chr newvia_1'(A, B)
 7932	->  get_attr(B, guard_entailment, C),
 7933	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
 7934	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 7935		      D)
 7936	),
 7937	member(E, D),
 7938	E=suspension(_, active, _, _, F),
 7939	F==A, !,
 7940	(   var(G)
 7941	->  true
 7942	;   G=suspension(_, H, _, _, I, J),
 7943	    setarg(2, G, removed),
 7944	    (   H==not_stored_yet
 7945	    ->  K=[]
 7946	    ;   term_variables(term(I, J), K),
 7947		( arg(4, G, L),
 7948		  (   var(L)
 7949		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7950				M),
 7951		      M=[_|N],
 7952		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7953			       N),
 7954		      (   N=[O|_]
 7955		      ->  setarg(4, O, _)
 7956		      ;   true
 7957		      )
 7958		  ;   L=[_, _|N],
 7959		      setarg(2, L, N),
 7960		      (   N=[O|_]
 7961		      ->  setarg(4, O, L)
 7962		      ;   true
 7963		      )
 7964		  )
 7965		),
 7966		'detach_known/1_1_$special_;/2___2'(K, G)
 7967	    )
 7968	),
 7969	known(P).
 7970'known/1_1_$special_;/2___2__2'(A, Q, H) :-
 7971	nonvar(A),
 7972	A=(B, _),
 7973	(   'chr newvia_1'(B, C)
 7974	->  get_attr(C, guard_entailment, D),
 7975	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
 7976	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 7977		      E)
 7978	),
 7979	member(F, E),
 7980	F=suspension(_, active, _, _, G),
 7981	G==B, !,
 7982	(   var(H)
 7983	->  true
 7984	;   H=suspension(_, I, _, _, J, K),
 7985	    setarg(2, H, removed),
 7986	    (   I==not_stored_yet
 7987	    ->  L=[]
 7988	    ;   term_variables(term(J, K), L),
 7989		( arg(4, H, M),
 7990		  (   var(M)
 7991		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7992				N),
 7993		      N=[_|O],
 7994		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 7995			       O),
 7996		      (   O=[P|_]
 7997		      ->  setarg(4, P, _)
 7998		      ;   true
 7999		      )
 8000		  ;   M=[_, _|O],
 8001		      setarg(2, M, O),
 8002		      (   O=[P|_]
 8003		      ->  setarg(4, P, M)
 8004		      ;   true
 8005		      )
 8006		  )
 8007		),
 8008		'detach_known/1_1_$special_;/2___2'(L, H)
 8009	    )
 8010	),
 8011	known(Q).
 8012'known/1_1_$special_;/2___2__2'(A, K, B) :-
 8013	A==fail, !,
 8014	(   var(B)
 8015	->  true
 8016	;   B=suspension(_, C, _, _, D, E),
 8017	    setarg(2, B, removed),
 8018	    (   C==not_stored_yet
 8019	    ->  F=[]
 8020	    ;   term_variables(term(D, E), F),
 8021		( arg(4, B, G),
 8022		  (   var(G)
 8023		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8024				H),
 8025		      H=[_|I],
 8026		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8027			       I),
 8028		      (   I=[J|_]
 8029		      ->  setarg(4, J, _)
 8030		      ;   true
 8031		      )
 8032		  ;   G=[_, _|I],
 8033		      setarg(2, G, I),
 8034		      (   I=[J|_]
 8035		      ->  setarg(4, J, G)
 8036		      ;   true
 8037		      )
 8038		  )
 8039		),
 8040		'detach_known/1_1_$special_;/2___2'(F, B)
 8041	    )
 8042	),
 8043	known(K).
 8044'known/1_1_$special_;/2___2__2'(K, A, B) :-
 8045	A==fail, !,
 8046	(   var(B)
 8047	->  true
 8048	;   B=suspension(_, C, _, _, D, E),
 8049	    setarg(2, B, removed),
 8050	    (   C==not_stored_yet
 8051	    ->  F=[]
 8052	    ;   term_variables(term(D, E), F),
 8053		( arg(4, B, G),
 8054		  (   var(G)
 8055		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8056				H),
 8057		      H=[_|I],
 8058		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8059			       I),
 8060		      (   I=[J|_]
 8061		      ->  setarg(4, J, _)
 8062		      ;   true
 8063		      )
 8064		  ;   G=[_, _|I],
 8065		      setarg(2, G, I),
 8066		      (   I=[J|_]
 8067		      ->  setarg(4, J, G)
 8068		      ;   true
 8069		      )
 8070		  )
 8071		),
 8072		'detach_known/1_1_$special_;/2___2'(F, B)
 8073	    )
 8074	),
 8075	known(K).
 8076'known/1_1_$special_;/2___2__2'(A, _, B) :-
 8077	A==true, !,
 8078	(   var(B)
 8079	->  true
 8080	;   B=suspension(_, C, _, _, D, E),
 8081	    setarg(2, B, removed),
 8082	    (   C==not_stored_yet
 8083	    ->  F=[]
 8084	    ;   term_variables(term(D, E), F),
 8085		( arg(4, B, G),
 8086		  (   var(G)
 8087		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8088				H),
 8089		      H=[_|I],
 8090		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8091			       I),
 8092		      (   I=[J|_]
 8093		      ->  setarg(4, J, _)
 8094		      ;   true
 8095		      )
 8096		  ;   G=[_, _|I],
 8097		      setarg(2, G, I),
 8098		      (   I=[J|_]
 8099		      ->  setarg(4, J, G)
 8100		      ;   true
 8101		      )
 8102		  )
 8103		),
 8104		'detach_known/1_1_$special_;/2___2'(F, B)
 8105	    )
 8106	).
 8107'known/1_1_$special_;/2___2__2'(_, A, B) :-
 8108	A==true, !,
 8109	(   var(B)
 8110	->  true
 8111	;   B=suspension(_, C, _, _, D, E),
 8112	    setarg(2, B, removed),
 8113	    (   C==not_stored_yet
 8114	    ->  F=[]
 8115	    ;   term_variables(term(D, E), F),
 8116		( arg(4, B, G),
 8117		  (   var(G)
 8118		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8119				H),
 8120		      H=[_|I],
 8121		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8122			       I),
 8123		      (   I=[J|_]
 8124		      ->  setarg(4, J, _)
 8125		      ;   true
 8126		      )
 8127		  ;   G=[_, _|I],
 8128		      setarg(2, G, I),
 8129		      (   I=[J|_]
 8130		      ->  setarg(4, J, G)
 8131		      ;   true
 8132		      )
 8133		  )
 8134		),
 8135		'detach_known/1_1_$special_;/2___2'(F, B)
 8136	    )
 8137	).
 8138'known/1_1_$special_;/2___2__2'(A, B1, I) :-
 8139	( nonvar(A),
 8140	  A=(\+B),
 8141	  nonvar(B),
 8142	  B=functor(C, R, S)
 8143	),
 8144	(   (   (   'chr newvia_1'(C, D)
 8145		->  get_attr(D, guard_entailment, E),
 8146		    E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _)
 8147		;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
 8148			      F)
 8149		),
 8150		member(G, F),
 8151		G=suspension(_, active, _, _, H, _, _),
 8152		H==C, !,
 8153		(   var(I)
 8154		->  true
 8155		;   I=suspension(_, J, _, _, K, L),
 8156		    setarg(2, I, removed),
 8157		    (   J==not_stored_yet
 8158		    ->  M=[]
 8159		    ;   term_variables(term(K, L), M),
 8160			( arg(4, I, N),
 8161			  (   var(N)
 8162			  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8163					O),
 8164			      O=[_|P],
 8165			      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8166				       P),
 8167			      (   P=[Q|_]
 8168			      ->  setarg(4, Q, _)
 8169			      ;   true
 8170			      )
 8171			  ;   N=[_, _|P],
 8172			      setarg(2, N, P),
 8173			      (   P=[Q|_]
 8174			      ->  setarg(4, Q, N)
 8175			      ;   true
 8176			      )
 8177			  )
 8178			),
 8179			'detach_known/1_1_$special_;/2___2'(M, I)
 8180		    )
 8181		)
 8182	    ;   nonvar(C),
 8183		'chr lock'(C),
 8184		'chr lock'(R),
 8185		'chr lock'(S),
 8186		functor(C, R, S),
 8187		'chr unlock'(C),
 8188		'chr unlock'(R),
 8189		'chr unlock'(S), !,
 8190		(   var(I)
 8191		->  true
 8192		;   I=suspension(_, T, _, _, U, V),
 8193		    setarg(2, I, removed),
 8194		    (   T==not_stored_yet
 8195		    ->  W=[]
 8196		    ;   term_variables(term(U, V), W),
 8197			( arg(4, I, X),
 8198			  (   var(X)
 8199			  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8200					Y),
 8201			      Y=[_|Z],
 8202			      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8203				       Z),
 8204			      (   Z=[A1|_]
 8205			      ->  setarg(4, A1, _)
 8206			      ;   true
 8207			      )
 8208			  ;   X=[_, _|Z],
 8209			      setarg(2, X, Z),
 8210			      (   Z=[A1|_]
 8211			      ->  setarg(4, A1, X)
 8212			      ;   true
 8213			      )
 8214			  )
 8215			),
 8216			'detach_known/1_1_$special_;/2___2'(W, I)
 8217		    )
 8218		),
 8219		known(B1)
 8220	    )
 8221	;   nonvar(C),
 8222	    'chr lock'(C),
 8223	    'chr lock'(R),
 8224	    'chr lock'(S),
 8225	    \+ functor(C, R, S),
 8226	    'chr unlock'(C),
 8227	    'chr unlock'(R),
 8228	    'chr unlock'(S), !,
 8229	    (   var(I)
 8230	    ->  true
 8231	    ;   I=suspension(_, C1, _, _, D1, E1),
 8232		setarg(2, I, removed),
 8233		(   C1==not_stored_yet
 8234		->  F1=[]
 8235		;   term_variables(term(D1, E1), F1),
 8236		    ( arg(4, I, G1),
 8237		      (   var(G1)
 8238		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8239				    H1),
 8240			  H1=[_|I1],
 8241			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8242				   I1),
 8243			  (   I1=[J1|_]
 8244			  ->  setarg(4, J1, _)
 8245			  ;   true
 8246			  )
 8247		      ;   G1=[_, _|I1],
 8248			  setarg(2, G1, I1),
 8249			  (   I1=[J1|_]
 8250			  ->  setarg(4, J1, G1)
 8251			  ;   true
 8252			  )
 8253		      )
 8254		    ),
 8255		    'detach_known/1_1_$special_;/2___2'(F1, I)
 8256		)
 8257	    )
 8258	).
 8259'known/1_1_$special_;/2___2__2'(_, _, A) :-
 8260	arg(2, A, D),
 8261	setarg(2, A, active),
 8262	arg(3, A, B),
 8263	C is B+1,
 8264	setarg(3, A, C),
 8265	(   D==not_stored_yet
 8266	->  A=suspension(_, _, _, _, E, F),
 8267	    term_variables(term(E, F), G),
 8268	    'chr none_locked'(G),
 8269	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8270			H),
 8271	      I=[A|H],
 8272	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8273		       I),
 8274	      (   H=[J|_]
 8275	      ->  setarg(4, J, I)
 8276	      ;   true
 8277	      )
 8278	    ),
 8279	    'attach_known/1_1_$special_;/2___2'(G, A)
 8280	;   true
 8281	).
 8282'known/1_1_$special_nonvar/1'(A) :-
 8283	'known/1_1_$special_nonvar/1___1__0'(A, _).
 8284'known/1_1_$special_nonvar/1___1__0'(A, G) :-
 8285	(   'chr newvia_1'(A, B)
 8286	->  get_attr(B, guard_entailment, C),
 8287	    C=v(_, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8288	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8289		      D)
 8290	),
 8291	member(E, D),
 8292	E=suspension(_, active, _, _, F),
 8293	F==A, !,
 8294	(   var(G)
 8295	->  true
 8296	;   G=suspension(_, H, _, _, I),
 8297	    setarg(2, G, removed),
 8298	    (   H==not_stored_yet
 8299	    ->  J=[]
 8300	    ;   term_variables(I, J),
 8301		( arg(4, G, K),
 8302		  (   var(K)
 8303		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8304				L),
 8305		      L=[_|M],
 8306		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8307			       M),
 8308		      (   M=[N|_]
 8309		      ->  setarg(4, N, _)
 8310		      ;   true
 8311		      )
 8312		  ;   K=[_, _|M],
 8313		      setarg(2, K, M),
 8314		      (   M=[N|_]
 8315		      ->  setarg(4, N, K)
 8316		      ;   true
 8317		      )
 8318		  )
 8319		),
 8320		'detach_known/1_1_$special_nonvar/1___1'(J, G)
 8321	    )
 8322	).
 8323'known/1_1_$special_nonvar/1___1__0'(_, C) :-
 8324	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 8325		  A),
 8326	member(B, A),
 8327	B=suspension(_, active, _), !,
 8328	(   var(C)
 8329	->  true
 8330	;   C=suspension(_, D, _, _, E),
 8331	    setarg(2, C, removed),
 8332	    (   D==not_stored_yet
 8333	    ->  F=[]
 8334	    ;   term_variables(E, F),
 8335		( arg(4, C, G),
 8336		  (   var(G)
 8337		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8338				H),
 8339		      H=[_|I],
 8340		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8341			       I),
 8342		      (   I=[J|_]
 8343		      ->  setarg(4, J, _)
 8344		      ;   true
 8345		      )
 8346		  ;   G=[_, _|I],
 8347		      setarg(2, G, I),
 8348		      (   I=[J|_]
 8349		      ->  setarg(4, J, G)
 8350		      ;   true
 8351		      )
 8352		  )
 8353		),
 8354		'detach_known/1_1_$special_nonvar/1___1'(F, C)
 8355	    )
 8356	).
 8357'known/1_1_$special_nonvar/1___1__0'(A, N) :-
 8358	(   'chr newvia_1'(A, B)
 8359	->  get_attr(B, guard_entailment, C),
 8360	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
 8361	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8362		      D)
 8363	),
 8364	member(E, D),
 8365	E=suspension(_, active, _, _, F),
 8366	nonvar(F),
 8367	F=nonvar(G),
 8368	G==A, !,
 8369	E=suspension(_, _, _, _, H),
 8370	setarg(2, E, removed),
 8371	term_variables(H, M),
 8372	arg(4, E, I),
 8373	(   var(I)
 8374	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8375		      J),
 8376	    J=[_|K],
 8377	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8378		     K),
 8379	    (   K=[L|_]
 8380	    ->  setarg(4, L, _)
 8381	    ;   true
 8382	    )
 8383	;   I=[_, _|K],
 8384	    setarg(2, I, K),
 8385	    (   K=[L|_]
 8386	    ->  setarg(4, L, I)
 8387	    ;   true
 8388	    )
 8389	),
 8390	'detach_known/1_1_$special_\\+/1___1'(M, E),
 8391	(   var(N)
 8392	->  true
 8393	;   N=suspension(_, O, _, _, P),
 8394	    setarg(2, N, removed),
 8395	    (   O==not_stored_yet
 8396	    ->  Q=[]
 8397	    ;   term_variables(P, Q),
 8398		( arg(4, N, R),
 8399		  (   var(R)
 8400		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8401				S),
 8402		      S=[_|T],
 8403		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8404			       T),
 8405		      (   T=[U|_]
 8406		      ->  setarg(4, U, _)
 8407		      ;   true
 8408		      )
 8409		  ;   R=[_, _|T],
 8410		      setarg(2, R, T),
 8411		      (   T=[U|_]
 8412		      ->  setarg(4, U, R)
 8413		      ;   true
 8414		      )
 8415		  )
 8416		),
 8417		'detach_known/1_1_$special_nonvar/1___1'(Q, N)
 8418	    )
 8419	),
 8420	'known/1_1_$special_fail/0'.
 8421'known/1_1_$special_nonvar/1___1__0'(A, M) :-
 8422	(   'chr newvia_1'(A, B)
 8423	->  get_attr(B, guard_entailment, C),
 8424	    C=v(_, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8425	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8426		      D)
 8427	),
 8428	member(E, D),
 8429	E=suspension(_, active, _, _, F),
 8430	F==A, !,
 8431	E=suspension(_, _, _, _, G),
 8432	setarg(2, E, removed),
 8433	term_variables(G, L),
 8434	arg(4, E, H),
 8435	(   var(H)
 8436	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8437		      I),
 8438	    I=[_|J],
 8439	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8440		     J),
 8441	    (   J=[K|_]
 8442	    ->  setarg(4, K, _)
 8443	    ;   true
 8444	    )
 8445	;   H=[_, _|J],
 8446	    setarg(2, H, J),
 8447	    (   J=[K|_]
 8448	    ->  setarg(4, K, H)
 8449	    ;   true
 8450	    )
 8451	),
 8452	'detach_known/1_1_$special_var/1___1'(L, E),
 8453	(   var(M)
 8454	->  true
 8455	;   M=suspension(_, N, _, _, O),
 8456	    setarg(2, M, removed),
 8457	    (   N==not_stored_yet
 8458	    ->  P=[]
 8459	    ;   term_variables(O, P),
 8460		( arg(4, M, Q),
 8461		  (   var(Q)
 8462		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8463				R),
 8464		      R=[_|S],
 8465		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8466			       S),
 8467		      (   S=[T|_]
 8468		      ->  setarg(4, T, _)
 8469		      ;   true
 8470		      )
 8471		  ;   Q=[_, _|S],
 8472		      setarg(2, Q, S),
 8473		      (   S=[T|_]
 8474		      ->  setarg(4, T, Q)
 8475		      ;   true
 8476		      )
 8477		  )
 8478		),
 8479		'detach_known/1_1_$special_nonvar/1___1'(P, M)
 8480	    )
 8481	),
 8482	'known/1_1_$special_fail/0'.
 8483'known/1_1_$special_nonvar/1___1__0'(A, E) :-
 8484	(   'chr newvia_1'(A, B)
 8485	->  get_attr(B, guard_entailment, C),
 8486	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8487	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8488		      D)
 8489	), !,
 8490	(   var(E)
 8491	->  E=suspension(F, not_stored_yet, 0, _, A),
 8492	    'chr gen_id'(F)
 8493	;   true
 8494	),
 8495	'known/1_1_$special_nonvar/1___1__0__0__7'(D, A, E).
 8496'known/1_1_$special_nonvar/1___1__0__0__7'([], A, B) :-
 8497	'known/1_1_$special_nonvar/1___1__1'(A, B).
 8498'known/1_1_$special_nonvar/1___1__0__0__7'([A|W], E, M) :-
 8499	(   A=suspension(_, active, _, _, B, V),
 8500	    nonvar(B),
 8501	    B=(\+C),
 8502	    nonvar(C),
 8503	    C=nonvar(D),
 8504	    D==E
 8505	->  ( A=suspension(_, _, _, _, F, G),
 8506	      setarg(2, A, removed),
 8507	      term_variables(term(F, G), L),
 8508	      ( arg(4, A, H),
 8509		(   var(H)
 8510		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8511			      I),
 8512		    I=[_|J],
 8513		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8514			     J),
 8515		    (   J=[K|_]
 8516		    ->  setarg(4, K, _)
 8517		    ;   true
 8518		    )
 8519		;   H=[_, _|J],
 8520		    setarg(2, H, J),
 8521		    (   J=[K|_]
 8522		    ->  setarg(4, K, H)
 8523		    ;   true
 8524		    )
 8525		)
 8526	      ),
 8527	      'detach_known/1_1_$special_;/2___2'(L, A)
 8528	    ),
 8529	    ( arg(2, M, P),
 8530	      setarg(2, M, active),
 8531	      ( arg(3, M, N),
 8532		O is N+1,
 8533		setarg(3, M, O)
 8534	      ),
 8535	      (   P==not_stored_yet
 8536	      ->  M=suspension(_, _, _, _, Q),
 8537		  term_variables(Q, R),
 8538		  'chr none_locked'(R),
 8539		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8540			      S),
 8541		    T=[M|S],
 8542		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8543			     T),
 8544		    (   S=[U|_]
 8545		    ->  setarg(4, U, T)
 8546		    ;   true
 8547		    )
 8548		  ),
 8549		  'attach_known/1_1_$special_nonvar/1___1'(R, M)
 8550	      ;   true
 8551	      )
 8552	    ),
 8553	    known(V),
 8554	    (   M=suspension(_, active, O, _, _)
 8555	    ->  setarg(2, M, inactive),
 8556		'known/1_1_$special_nonvar/1___1__0__0__7'(W,
 8557							   E,
 8558							   M)
 8559	    ;   true
 8560	    )
 8561	;   'known/1_1_$special_nonvar/1___1__0__0__7'(W,
 8562						       E,
 8563						       M)
 8564	).
 8565'known/1_1_$special_nonvar/1___1__0'(B, A) :-
 8566	(   var(A)
 8567	->  A=suspension(C, not_stored_yet, 0, _, B),
 8568	    'chr gen_id'(C)
 8569	;   true
 8570	),
 8571	'known/1_1_$special_nonvar/1___1__1'(B, A).
 8572'known/1_1_$special_nonvar/1___1__1'(A, E) :-
 8573	(   'chr newvia_1'(A, B)
 8574	->  get_attr(B, guard_entailment, C),
 8575	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8576	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8577		      D)
 8578	), !,
 8579	'known/1_1_$special_nonvar/1___1__1__0__8'(D, A, E).
 8580'known/1_1_$special_nonvar/1___1__1__0__8'([], A, B) :-
 8581	'known/1_1_$special_nonvar/1___1__2'(A, B).
 8582'known/1_1_$special_nonvar/1___1__1__0__8'([A|X], F, N) :-
 8583	(   A=suspension(_, active, _, _, B, W),
 8584	    nonvar(B),
 8585	    B=(C, _),
 8586	    nonvar(C),
 8587	    C=(\+D),
 8588	    nonvar(D),
 8589	    D=nonvar(E),
 8590	    E==F
 8591	->  ( A=suspension(_, _, _, _, G, H),
 8592	      setarg(2, A, removed),
 8593	      term_variables(term(G, H), M),
 8594	      ( arg(4, A, I),
 8595		(   var(I)
 8596		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8597			      J),
 8598		    J=[_|K],
 8599		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8600			     K),
 8601		    (   K=[L|_]
 8602		    ->  setarg(4, L, _)
 8603		    ;   true
 8604		    )
 8605		;   I=[_, _|K],
 8606		    setarg(2, I, K),
 8607		    (   K=[L|_]
 8608		    ->  setarg(4, L, I)
 8609		    ;   true
 8610		    )
 8611		)
 8612	      ),
 8613	      'detach_known/1_1_$special_;/2___2'(M, A)
 8614	    ),
 8615	    ( arg(2, N, Q),
 8616	      setarg(2, N, active),
 8617	      ( arg(3, N, O),
 8618		P is O+1,
 8619		setarg(3, N, P)
 8620	      ),
 8621	      (   Q==not_stored_yet
 8622	      ->  N=suspension(_, _, _, _, R),
 8623		  term_variables(R, S),
 8624		  'chr none_locked'(S),
 8625		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8626			      T),
 8627		    U=[N|T],
 8628		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8629			     U),
 8630		    (   T=[V|_]
 8631		    ->  setarg(4, V, U)
 8632		    ;   true
 8633		    )
 8634		  ),
 8635		  'attach_known/1_1_$special_nonvar/1___1'(S, N)
 8636	      ;   true
 8637	      )
 8638	    ),
 8639	    known(W),
 8640	    (   N=suspension(_, active, P, _, _)
 8641	    ->  setarg(2, N, inactive),
 8642		'known/1_1_$special_nonvar/1___1__1__0__8'(X,
 8643							   F,
 8644							   N)
 8645	    ;   true
 8646	    )
 8647	;   'known/1_1_$special_nonvar/1___1__1__0__8'(X,
 8648						       F,
 8649						       N)
 8650	).
 8651'known/1_1_$special_nonvar/1___1__1'(A, B) :-
 8652	'known/1_1_$special_nonvar/1___1__2'(A, B).
 8653'known/1_1_$special_nonvar/1___1__2'(_, A) :-
 8654	arg(2, A, D),
 8655	setarg(2, A, active),
 8656	arg(3, A, B),
 8657	C is B+1,
 8658	setarg(3, A, C),
 8659	(   D==not_stored_yet
 8660	->  A=suspension(_, _, _, _, E),
 8661	    term_variables(E, F),
 8662	    'chr none_locked'(F),
 8663	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8664			G),
 8665	      H=[A|G],
 8666	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8667		       H),
 8668	      (   G=[I|_]
 8669	      ->  setarg(4, I, H)
 8670	      ;   true
 8671	      )
 8672	    ),
 8673	    'attach_known/1_1_$special_nonvar/1___1'(F, A)
 8674	;   true
 8675	).
 8676'known/1_1_$special_var/1'(A) :-
 8677	'known/1_1_$special_var/1___1__0'(A, _).
 8678'known/1_1_$special_var/1___1__0'(A, G) :-
 8679	(   'chr newvia_1'(A, B)
 8680	->  get_attr(B, guard_entailment, C),
 8681	    C=v(_, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8682	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8683		      D)
 8684	),
 8685	member(E, D),
 8686	E=suspension(_, active, _, _, F),
 8687	F==A, !,
 8688	(   var(G)
 8689	->  true
 8690	;   G=suspension(_, H, _, _, I),
 8691	    setarg(2, G, removed),
 8692	    (   H==not_stored_yet
 8693	    ->  J=[]
 8694	    ;   term_variables(I, J),
 8695		( arg(4, G, K),
 8696		  (   var(K)
 8697		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8698				L),
 8699		      L=[_|M],
 8700		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8701			       M),
 8702		      (   M=[N|_]
 8703		      ->  setarg(4, N, _)
 8704		      ;   true
 8705		      )
 8706		  ;   K=[_, _|M],
 8707		      setarg(2, K, M),
 8708		      (   M=[N|_]
 8709		      ->  setarg(4, N, K)
 8710		      ;   true
 8711		      )
 8712		  )
 8713		),
 8714		'detach_known/1_1_$special_var/1___1'(J, G)
 8715	    )
 8716	).
 8717'known/1_1_$special_var/1___1__0'(_, C) :-
 8718	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 8719		  A),
 8720	member(B, A),
 8721	B=suspension(_, active, _), !,
 8722	(   var(C)
 8723	->  true
 8724	;   C=suspension(_, D, _, _, E),
 8725	    setarg(2, C, removed),
 8726	    (   D==not_stored_yet
 8727	    ->  F=[]
 8728	    ;   term_variables(E, F),
 8729		( arg(4, C, G),
 8730		  (   var(G)
 8731		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8732				H),
 8733		      H=[_|I],
 8734		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8735			       I),
 8736		      (   I=[J|_]
 8737		      ->  setarg(4, J, _)
 8738		      ;   true
 8739		      )
 8740		  ;   G=[_, _|I],
 8741		      setarg(2, G, I),
 8742		      (   I=[J|_]
 8743		      ->  setarg(4, J, G)
 8744		      ;   true
 8745		      )
 8746		  )
 8747		),
 8748		'detach_known/1_1_$special_var/1___1'(F, C)
 8749	    )
 8750	).
 8751'known/1_1_$special_var/1___1__0'(A, N) :-
 8752	(   'chr newvia_1'(A, B)
 8753	->  get_attr(B, guard_entailment, C),
 8754	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
 8755	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8756		      D)
 8757	),
 8758	member(E, D),
 8759	E=suspension(_, active, _, _, F),
 8760	nonvar(F),
 8761	F=var(G),
 8762	G==A, !,
 8763	E=suspension(_, _, _, _, H),
 8764	setarg(2, E, removed),
 8765	term_variables(H, M),
 8766	arg(4, E, I),
 8767	(   var(I)
 8768	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8769		      J),
 8770	    J=[_|K],
 8771	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 8772		     K),
 8773	    (   K=[L|_]
 8774	    ->  setarg(4, L, _)
 8775	    ;   true
 8776	    )
 8777	;   I=[_, _|K],
 8778	    setarg(2, I, K),
 8779	    (   K=[L|_]
 8780	    ->  setarg(4, L, I)
 8781	    ;   true
 8782	    )
 8783	),
 8784	'detach_known/1_1_$special_\\+/1___1'(M, E),
 8785	(   var(N)
 8786	->  true
 8787	;   N=suspension(_, O, _, _, P),
 8788	    setarg(2, N, removed),
 8789	    (   O==not_stored_yet
 8790	    ->  Q=[]
 8791	    ;   term_variables(P, Q),
 8792		( arg(4, N, R),
 8793		  (   var(R)
 8794		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8795				S),
 8796		      S=[_|T],
 8797		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8798			       T),
 8799		      (   T=[U|_]
 8800		      ->  setarg(4, U, _)
 8801		      ;   true
 8802		      )
 8803		  ;   R=[_, _|T],
 8804		      setarg(2, R, T),
 8805		      (   T=[U|_]
 8806		      ->  setarg(4, U, R)
 8807		      ;   true
 8808		      )
 8809		  )
 8810		),
 8811		'detach_known/1_1_$special_var/1___1'(Q, N)
 8812	    )
 8813	),
 8814	'known/1_1_$special_fail/0'.
 8815'known/1_1_$special_var/1___1__0'(A, M) :-
 8816	(   'chr newvia_1'(A, B)
 8817	->  get_attr(B, guard_entailment, C),
 8818	    C=v(_, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8819	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8820		      D)
 8821	),
 8822	member(E, D),
 8823	E=suspension(_, active, _, _, F),
 8824	F==A, !,
 8825	E=suspension(_, _, _, _, G),
 8826	setarg(2, E, removed),
 8827	term_variables(G, L),
 8828	arg(4, E, H),
 8829	(   var(H)
 8830	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8831		      I),
 8832	    I=[_|J],
 8833	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
 8834		     J),
 8835	    (   J=[K|_]
 8836	    ->  setarg(4, K, _)
 8837	    ;   true
 8838	    )
 8839	;   H=[_, _|J],
 8840	    setarg(2, H, J),
 8841	    (   J=[K|_]
 8842	    ->  setarg(4, K, H)
 8843	    ;   true
 8844	    )
 8845	),
 8846	'detach_known/1_1_$special_nonvar/1___1'(L, E),
 8847	(   var(M)
 8848	->  true
 8849	;   M=suspension(_, N, _, _, O),
 8850	    setarg(2, M, removed),
 8851	    (   N==not_stored_yet
 8852	    ->  P=[]
 8853	    ;   term_variables(O, P),
 8854		( arg(4, M, Q),
 8855		  (   var(Q)
 8856		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8857				R),
 8858		      R=[_|S],
 8859		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8860			       S),
 8861		      (   S=[T|_]
 8862		      ->  setarg(4, T, _)
 8863		      ;   true
 8864		      )
 8865		  ;   Q=[_, _|S],
 8866		      setarg(2, Q, S),
 8867		      (   S=[T|_]
 8868		      ->  setarg(4, T, Q)
 8869		      ;   true
 8870		      )
 8871		  )
 8872		),
 8873		'detach_known/1_1_$special_var/1___1'(P, M)
 8874	    )
 8875	),
 8876	'known/1_1_$special_fail/0'.
 8877'known/1_1_$special_var/1___1__0'(A, E) :-
 8878	(   'chr newvia_1'(A, B)
 8879	->  get_attr(B, guard_entailment, C),
 8880	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8881	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8882		      D)
 8883	), !,
 8884	(   var(E)
 8885	->  E=suspension(F, not_stored_yet, 0, _, A),
 8886	    'chr gen_id'(F)
 8887	;   true
 8888	),
 8889	'known/1_1_$special_var/1___1__0__0__7'(D, A, E).
 8890'known/1_1_$special_var/1___1__0__0__7'([], A, B) :-
 8891	'known/1_1_$special_var/1___1__1'(A, B).
 8892'known/1_1_$special_var/1___1__0__0__7'([A|W], E, M) :-
 8893	(   A=suspension(_, active, _, _, B, V),
 8894	    nonvar(B),
 8895	    B=(\+C),
 8896	    nonvar(C),
 8897	    C=var(D),
 8898	    D==E
 8899	->  ( A=suspension(_, _, _, _, F, G),
 8900	      setarg(2, A, removed),
 8901	      term_variables(term(F, G), L),
 8902	      ( arg(4, A, H),
 8903		(   var(H)
 8904		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8905			      I),
 8906		    I=[_|J],
 8907		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8908			     J),
 8909		    (   J=[K|_]
 8910		    ->  setarg(4, K, _)
 8911		    ;   true
 8912		    )
 8913		;   H=[_, _|J],
 8914		    setarg(2, H, J),
 8915		    (   J=[K|_]
 8916		    ->  setarg(4, K, H)
 8917		    ;   true
 8918		    )
 8919		)
 8920	      ),
 8921	      'detach_known/1_1_$special_;/2___2'(L, A)
 8922	    ),
 8923	    ( arg(2, M, P),
 8924	      setarg(2, M, active),
 8925	      ( arg(3, M, N),
 8926		O is N+1,
 8927		setarg(3, M, O)
 8928	      ),
 8929	      (   P==not_stored_yet
 8930	      ->  M=suspension(_, _, _, _, Q),
 8931		  term_variables(Q, R),
 8932		  'chr none_locked'(R),
 8933		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8934			      S),
 8935		    T=[M|S],
 8936		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 8937			     T),
 8938		    (   S=[U|_]
 8939		    ->  setarg(4, U, T)
 8940		    ;   true
 8941		    )
 8942		  ),
 8943		  'attach_known/1_1_$special_var/1___1'(R, M)
 8944	      ;   true
 8945	      )
 8946	    ),
 8947	    known(V),
 8948	    (   M=suspension(_, active, O, _, _)
 8949	    ->  setarg(2, M, inactive),
 8950		'known/1_1_$special_var/1___1__0__0__7'(W,
 8951							E,
 8952							M)
 8953	    ;   true
 8954	    )
 8955	;   'known/1_1_$special_var/1___1__0__0__7'(W, E, M)
 8956	).
 8957'known/1_1_$special_var/1___1__0'(B, A) :-
 8958	(   var(A)
 8959	->  A=suspension(C, not_stored_yet, 0, _, B),
 8960	    'chr gen_id'(C)
 8961	;   true
 8962	),
 8963	'known/1_1_$special_var/1___1__1'(B, A).
 8964'known/1_1_$special_var/1___1__1'(A, E) :-
 8965	(   'chr newvia_1'(A, B)
 8966	->  get_attr(B, guard_entailment, C),
 8967	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 8968	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8969		      D)
 8970	), !,
 8971	'known/1_1_$special_var/1___1__1__0__8'(D, A, E).
 8972'known/1_1_$special_var/1___1__1__0__8'([], A, B) :-
 8973	'known/1_1_$special_var/1___1__2'(A, B).
 8974'known/1_1_$special_var/1___1__1__0__8'([A|X], F, N) :-
 8975	(   A=suspension(_, active, _, _, B, W),
 8976	    nonvar(B),
 8977	    B=(C, _),
 8978	    nonvar(C),
 8979	    C=(\+D),
 8980	    nonvar(D),
 8981	    D=var(E),
 8982	    E==F
 8983	->  ( A=suspension(_, _, _, _, G, H),
 8984	      setarg(2, A, removed),
 8985	      term_variables(term(G, H), M),
 8986	      ( arg(4, A, I),
 8987		(   var(I)
 8988		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8989			      J),
 8990		    J=[_|K],
 8991		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 8992			     K),
 8993		    (   K=[L|_]
 8994		    ->  setarg(4, L, _)
 8995		    ;   true
 8996		    )
 8997		;   I=[_, _|K],
 8998		    setarg(2, I, K),
 8999		    (   K=[L|_]
 9000		    ->  setarg(4, L, I)
 9001		    ;   true
 9002		    )
 9003		)
 9004	      ),
 9005	      'detach_known/1_1_$special_;/2___2'(M, A)
 9006	    ),
 9007	    ( arg(2, N, Q),
 9008	      setarg(2, N, active),
 9009	      ( arg(3, N, O),
 9010		P is O+1,
 9011		setarg(3, N, P)
 9012	      ),
 9013	      (   Q==not_stored_yet
 9014	      ->  N=suspension(_, _, _, _, R),
 9015		  term_variables(R, S),
 9016		  'chr none_locked'(S),
 9017		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 9018			      T),
 9019		    U=[N|T],
 9020		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 9021			     U),
 9022		    (   T=[V|_]
 9023		    ->  setarg(4, V, U)
 9024		    ;   true
 9025		    )
 9026		  ),
 9027		  'attach_known/1_1_$special_var/1___1'(S, N)
 9028	      ;   true
 9029	      )
 9030	    ),
 9031	    known(W),
 9032	    (   N=suspension(_, active, P, _, _)
 9033	    ->  setarg(2, N, inactive),
 9034		'known/1_1_$special_var/1___1__1__0__8'(X,
 9035							F,
 9036							N)
 9037	    ;   true
 9038	    )
 9039	;   'known/1_1_$special_var/1___1__1__0__8'(X, F, N)
 9040	).
 9041'known/1_1_$special_var/1___1__1'(A, B) :-
 9042	'known/1_1_$special_var/1___1__2'(A, B).
 9043'known/1_1_$special_var/1___1__2'(_, A) :-
 9044	arg(2, A, D),
 9045	setarg(2, A, active),
 9046	arg(3, A, B),
 9047	C is B+1,
 9048	setarg(3, A, C),
 9049	(   D==not_stored_yet
 9050	->  A=suspension(_, _, _, _, E),
 9051	    term_variables(E, F),
 9052	    'chr none_locked'(F),
 9053	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 9054			G),
 9055	      H=[A|G],
 9056	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
 9057		       H),
 9058	      (   G=[I|_]
 9059	      ->  setarg(4, I, H)
 9060	      ;   true
 9061	      )
 9062	    ),
 9063	    'attach_known/1_1_$special_var/1___1'(F, A)
 9064	;   true
 9065	).
 9066'known/1_1_$special_atom/1'(A) :-
 9067	'known/1_1_$special_atom/1___1__0'(A, _).
 9068'known/1_1_$special_atom/1___1__0'(A, G) :-
 9069	(   'chr newvia_1'(A, B)
 9070	->  get_attr(B, guard_entailment, C),
 9071	    C=v(_, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9072	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9073		      D)
 9074	),
 9075	member(E, D),
 9076	E=suspension(_, active, _, _, _, F),
 9077	F==A, !,
 9078	(   var(G)
 9079	->  true
 9080	;   G=suspension(_, H, _, _, _, I),
 9081	    setarg(2, G, removed),
 9082	    (   H==not_stored_yet
 9083	    ->  J=[]
 9084	    ;   term_variables(I, J),
 9085		( arg(5, G, K),
 9086		  (   var(K)
 9087		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9088				L),
 9089		      L=[_|M],
 9090		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9091			       M),
 9092		      (   M=[N|_]
 9093		      ->  setarg(5, N, _)
 9094		      ;   true
 9095		      )
 9096		  ;   K=[_, _|M],
 9097		      setarg(2, K, M),
 9098		      (   M=[N|_]
 9099		      ->  setarg(5, N, K)
 9100		      ;   true
 9101		      )
 9102		  )
 9103		),
 9104		'detach_known/1_1_$special_atom/1___1'(J, G)
 9105	    )
 9106	).
 9107'known/1_1_$special_atom/1___1__0'(_, C) :-
 9108	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 9109		  A),
 9110	member(B, A),
 9111	B=suspension(_, active, _), !,
 9112	(   var(C)
 9113	->  true
 9114	;   C=suspension(_, D, _, _, _, E),
 9115	    setarg(2, C, removed),
 9116	    (   D==not_stored_yet
 9117	    ->  F=[]
 9118	    ;   term_variables(E, F),
 9119		( arg(5, C, G),
 9120		  (   var(G)
 9121		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9122				H),
 9123		      H=[_|I],
 9124		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9125			       I),
 9126		      (   I=[J|_]
 9127		      ->  setarg(5, J, _)
 9128		      ;   true
 9129		      )
 9130		  ;   G=[_, _|I],
 9131		      setarg(2, G, I),
 9132		      (   I=[J|_]
 9133		      ->  setarg(5, J, G)
 9134		      ;   true
 9135		      )
 9136		  )
 9137		),
 9138		'detach_known/1_1_$special_atom/1___1'(F, C)
 9139	    )
 9140	).
 9141'known/1_1_$special_atom/1___1__0'(A, N) :-
 9142	(   'chr newvia_1'(A, B)
 9143	->  get_attr(B, guard_entailment, C),
 9144	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
 9145	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9146		      D)
 9147	),
 9148	member(E, D),
 9149	E=suspension(_, active, _, _, F),
 9150	nonvar(F),
 9151	F=atom(G),
 9152	G==A, !,
 9153	E=suspension(_, _, _, _, H),
 9154	setarg(2, E, removed),
 9155	term_variables(H, M),
 9156	arg(4, E, I),
 9157	(   var(I)
 9158	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9159		      J),
 9160	    J=[_|K],
 9161	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9162		     K),
 9163	    (   K=[L|_]
 9164	    ->  setarg(4, L, _)
 9165	    ;   true
 9166	    )
 9167	;   I=[_, _|K],
 9168	    setarg(2, I, K),
 9169	    (   K=[L|_]
 9170	    ->  setarg(4, L, I)
 9171	    ;   true
 9172	    )
 9173	),
 9174	'detach_known/1_1_$special_\\+/1___1'(M, E),
 9175	(   var(N)
 9176	->  true
 9177	;   N=suspension(_, O, _, _, _, P),
 9178	    setarg(2, N, removed),
 9179	    (   O==not_stored_yet
 9180	    ->  Q=[]
 9181	    ;   term_variables(P, Q),
 9182		( arg(5, N, R),
 9183		  (   var(R)
 9184		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9185				S),
 9186		      S=[_|T],
 9187		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9188			       T),
 9189		      (   T=[U|_]
 9190		      ->  setarg(5, U, _)
 9191		      ;   true
 9192		      )
 9193		  ;   R=[_, _|T],
 9194		      setarg(2, R, T),
 9195		      (   T=[U|_]
 9196		      ->  setarg(5, U, R)
 9197		      ;   true
 9198		      )
 9199		  )
 9200		),
 9201		'detach_known/1_1_$special_atom/1___1'(Q, N)
 9202	    )
 9203	),
 9204	'known/1_1_$special_fail/0'.
 9205'known/1_1_$special_atom/1___1__0'(B, A) :-
 9206	(   var(A)
 9207	->  A=suspension(C, not_stored_yet, t, 0, _, B),
 9208	    'chr gen_id'(C)
 9209	;   true
 9210	),
 9211	(   '$novel_production'(A, 239), !,
 9212	    '$extend_history'(A, 239),
 9213	    arg(2, A, F),
 9214	    setarg(2, A, active),
 9215	    arg(4, A, D),
 9216	    E is D+1,
 9217	    setarg(4, A, E),
 9218	    (   F==not_stored_yet
 9219	    ->  A=suspension(_, _, _, _, _, G),
 9220		term_variables(G, H),
 9221		'chr none_locked'(H),
 9222		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9223			    I),
 9224		  J=[A|I],
 9225		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9226			   J),
 9227		  (   I=[K|_]
 9228		  ->  setarg(5, K, J)
 9229		  ;   true
 9230		  )
 9231		),
 9232		'attach_known/1_1_$special_atom/1___1'(H, A)
 9233	    ;   true
 9234	    ),
 9235	    'known/1_1_$special_nonvar/1'(B),
 9236	    (   A=suspension(_, active, _, E, _, _)
 9237	    ->  setarg(2, A, inactive),
 9238		'known/1_1_$special_atom/1___1__1'(B, A)
 9239	    ;   true
 9240	    )
 9241	;   'known/1_1_$special_atom/1___1__1'(B, A)
 9242	).
 9243'known/1_1_$special_atom/1___1__1'(A, E) :-
 9244	(   'chr newvia_1'(A, B)
 9245	->  get_attr(B, guard_entailment, C),
 9246	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9247	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9248		      D)
 9249	), !,
 9250	'known/1_1_$special_atom/1___1__1__0__7'(D, A, E).
 9251'known/1_1_$special_atom/1___1__1__0__7'([], A, B) :-
 9252	'known/1_1_$special_atom/1___1__2'(A, B).
 9253'known/1_1_$special_atom/1___1__1__0__7'([A|W], E, M) :-
 9254	(   A=suspension(_, active, _, _, B, V),
 9255	    nonvar(B),
 9256	    B=(\+C),
 9257	    nonvar(C),
 9258	    C=atom(D),
 9259	    D==E
 9260	->  ( A=suspension(_, _, _, _, F, G),
 9261	      setarg(2, A, removed),
 9262	      term_variables(term(F, G), L),
 9263	      ( arg(4, A, H),
 9264		(   var(H)
 9265		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9266			      I),
 9267		    I=[_|J],
 9268		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9269			     J),
 9270		    (   J=[K|_]
 9271		    ->  setarg(4, K, _)
 9272		    ;   true
 9273		    )
 9274		;   H=[_, _|J],
 9275		    setarg(2, H, J),
 9276		    (   J=[K|_]
 9277		    ->  setarg(4, K, H)
 9278		    ;   true
 9279		    )
 9280		)
 9281	      ),
 9282	      'detach_known/1_1_$special_;/2___2'(L, A)
 9283	    ),
 9284	    ( arg(2, M, P),
 9285	      setarg(2, M, active),
 9286	      ( arg(4, M, N),
 9287		O is N+1,
 9288		setarg(4, M, O)
 9289	      ),
 9290	      (   P==not_stored_yet
 9291	      ->  M=suspension(_, _, _, _, _, Q),
 9292		  term_variables(Q, R),
 9293		  'chr none_locked'(R),
 9294		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9295			      S),
 9296		    T=[M|S],
 9297		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9298			     T),
 9299		    (   S=[U|_]
 9300		    ->  setarg(5, U, T)
 9301		    ;   true
 9302		    )
 9303		  ),
 9304		  'attach_known/1_1_$special_atom/1___1'(R, M)
 9305	      ;   true
 9306	      )
 9307	    ),
 9308	    known(V),
 9309	    (   M=suspension(_, active, _, O, _, _)
 9310	    ->  setarg(2, M, inactive),
 9311		'known/1_1_$special_atom/1___1__1__0__7'(W,
 9312							 E,
 9313							 M)
 9314	    ;   true
 9315	    )
 9316	;   'known/1_1_$special_atom/1___1__1__0__7'(W, E, M)
 9317	).
 9318'known/1_1_$special_atom/1___1__1'(A, B) :-
 9319	'known/1_1_$special_atom/1___1__2'(A, B).
 9320'known/1_1_$special_atom/1___1__2'(A, E) :-
 9321	(   'chr newvia_1'(A, B)
 9322	->  get_attr(B, guard_entailment, C),
 9323	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9324	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9325		      D)
 9326	), !,
 9327	'known/1_1_$special_atom/1___1__2__0__8'(D, A, E).
 9328'known/1_1_$special_atom/1___1__2__0__8'([], A, B) :-
 9329	'known/1_1_$special_atom/1___1__3'(A, B).
 9330'known/1_1_$special_atom/1___1__2__0__8'([A|X], F, N) :-
 9331	(   A=suspension(_, active, _, _, B, W),
 9332	    nonvar(B),
 9333	    B=(C, _),
 9334	    nonvar(C),
 9335	    C=(\+D),
 9336	    nonvar(D),
 9337	    D=atom(E),
 9338	    E==F
 9339	->  ( A=suspension(_, _, _, _, G, H),
 9340	      setarg(2, A, removed),
 9341	      term_variables(term(G, H), M),
 9342	      ( arg(4, A, I),
 9343		(   var(I)
 9344		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9345			      J),
 9346		    J=[_|K],
 9347		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9348			     K),
 9349		    (   K=[L|_]
 9350		    ->  setarg(4, L, _)
 9351		    ;   true
 9352		    )
 9353		;   I=[_, _|K],
 9354		    setarg(2, I, K),
 9355		    (   K=[L|_]
 9356		    ->  setarg(4, L, I)
 9357		    ;   true
 9358		    )
 9359		)
 9360	      ),
 9361	      'detach_known/1_1_$special_;/2___2'(M, A)
 9362	    ),
 9363	    ( arg(2, N, Q),
 9364	      setarg(2, N, active),
 9365	      ( arg(4, N, O),
 9366		P is O+1,
 9367		setarg(4, N, P)
 9368	      ),
 9369	      (   Q==not_stored_yet
 9370	      ->  N=suspension(_, _, _, _, _, R),
 9371		  term_variables(R, S),
 9372		  'chr none_locked'(S),
 9373		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9374			      T),
 9375		    U=[N|T],
 9376		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9377			     U),
 9378		    (   T=[V|_]
 9379		    ->  setarg(5, V, U)
 9380		    ;   true
 9381		    )
 9382		  ),
 9383		  'attach_known/1_1_$special_atom/1___1'(S, N)
 9384	      ;   true
 9385	      )
 9386	    ),
 9387	    known(W),
 9388	    (   N=suspension(_, active, _, P, _, _)
 9389	    ->  setarg(2, N, inactive),
 9390		'known/1_1_$special_atom/1___1__2__0__8'(X,
 9391							 F,
 9392							 N)
 9393	    ;   true
 9394	    )
 9395	;   'known/1_1_$special_atom/1___1__2__0__8'(X, F, N)
 9396	).
 9397'known/1_1_$special_atom/1___1__2'(A, B) :-
 9398	'known/1_1_$special_atom/1___1__3'(A, B).
 9399'known/1_1_$special_atom/1___1__3'(_, A) :-
 9400	arg(2, A, D),
 9401	setarg(2, A, active),
 9402	arg(4, A, B),
 9403	C is B+1,
 9404	setarg(4, A, C),
 9405	(   D==not_stored_yet
 9406	->  A=suspension(_, _, _, _, _, E),
 9407	    term_variables(E, F),
 9408	    'chr none_locked'(F),
 9409	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9410			G),
 9411	      H=[A|G],
 9412	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
 9413		       H),
 9414	      (   G=[I|_]
 9415	      ->  setarg(5, I, H)
 9416	      ;   true
 9417	      )
 9418	    ),
 9419	    'attach_known/1_1_$special_atom/1___1'(F, A)
 9420	;   true
 9421	).
 9422'known/1_1_$special_atomic/1'(A) :-
 9423	'known/1_1_$special_atomic/1___1__0'(A, _).
 9424'known/1_1_$special_atomic/1___1__0'(A, G) :-
 9425	(   'chr newvia_1'(A, B)
 9426	->  get_attr(B, guard_entailment, C),
 9427	    C=v(_, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9428	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9429		      D)
 9430	),
 9431	member(E, D),
 9432	E=suspension(_, active, _, _, _, F),
 9433	F==A, !,
 9434	(   var(G)
 9435	->  true
 9436	;   G=suspension(_, H, _, _, _, I),
 9437	    setarg(2, G, removed),
 9438	    (   H==not_stored_yet
 9439	    ->  J=[]
 9440	    ;   term_variables(I, J),
 9441		( arg(5, G, K),
 9442		  (   var(K)
 9443		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9444				L),
 9445		      L=[_|M],
 9446		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9447			       M),
 9448		      (   M=[N|_]
 9449		      ->  setarg(5, N, _)
 9450		      ;   true
 9451		      )
 9452		  ;   K=[_, _|M],
 9453		      setarg(2, K, M),
 9454		      (   M=[N|_]
 9455		      ->  setarg(5, N, K)
 9456		      ;   true
 9457		      )
 9458		  )
 9459		),
 9460		'detach_known/1_1_$special_atomic/1___1'(J, G)
 9461	    )
 9462	).
 9463'known/1_1_$special_atomic/1___1__0'(_, C) :-
 9464	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 9465		  A),
 9466	member(B, A),
 9467	B=suspension(_, active, _), !,
 9468	(   var(C)
 9469	->  true
 9470	;   C=suspension(_, D, _, _, _, E),
 9471	    setarg(2, C, removed),
 9472	    (   D==not_stored_yet
 9473	    ->  F=[]
 9474	    ;   term_variables(E, F),
 9475		( arg(5, C, G),
 9476		  (   var(G)
 9477		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9478				H),
 9479		      H=[_|I],
 9480		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9481			       I),
 9482		      (   I=[J|_]
 9483		      ->  setarg(5, J, _)
 9484		      ;   true
 9485		      )
 9486		  ;   G=[_, _|I],
 9487		      setarg(2, G, I),
 9488		      (   I=[J|_]
 9489		      ->  setarg(5, J, G)
 9490		      ;   true
 9491		      )
 9492		  )
 9493		),
 9494		'detach_known/1_1_$special_atomic/1___1'(F, C)
 9495	    )
 9496	).
 9497'known/1_1_$special_atomic/1___1__0'(A, N) :-
 9498	(   'chr newvia_1'(A, B)
 9499	->  get_attr(B, guard_entailment, C),
 9500	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
 9501	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9502		      D)
 9503	),
 9504	member(E, D),
 9505	E=suspension(_, active, _, _, F),
 9506	nonvar(F),
 9507	F=atomic(G),
 9508	G==A, !,
 9509	E=suspension(_, _, _, _, H),
 9510	setarg(2, E, removed),
 9511	term_variables(H, M),
 9512	arg(4, E, I),
 9513	(   var(I)
 9514	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9515		      J),
 9516	    J=[_|K],
 9517	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9518		     K),
 9519	    (   K=[L|_]
 9520	    ->  setarg(4, L, _)
 9521	    ;   true
 9522	    )
 9523	;   I=[_, _|K],
 9524	    setarg(2, I, K),
 9525	    (   K=[L|_]
 9526	    ->  setarg(4, L, I)
 9527	    ;   true
 9528	    )
 9529	),
 9530	'detach_known/1_1_$special_\\+/1___1'(M, E),
 9531	(   var(N)
 9532	->  true
 9533	;   N=suspension(_, O, _, _, _, P),
 9534	    setarg(2, N, removed),
 9535	    (   O==not_stored_yet
 9536	    ->  Q=[]
 9537	    ;   term_variables(P, Q),
 9538		( arg(5, N, R),
 9539		  (   var(R)
 9540		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9541				S),
 9542		      S=[_|T],
 9543		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9544			       T),
 9545		      (   T=[U|_]
 9546		      ->  setarg(5, U, _)
 9547		      ;   true
 9548		      )
 9549		  ;   R=[_, _|T],
 9550		      setarg(2, R, T),
 9551		      (   T=[U|_]
 9552		      ->  setarg(5, U, R)
 9553		      ;   true
 9554		      )
 9555		  )
 9556		),
 9557		'detach_known/1_1_$special_atomic/1___1'(Q, N)
 9558	    )
 9559	),
 9560	'known/1_1_$special_fail/0'.
 9561'known/1_1_$special_atomic/1___1__0'(B, A) :-
 9562	(   var(A)
 9563	->  A=suspension(C, not_stored_yet, t, 0, _, B),
 9564	    'chr gen_id'(C)
 9565	;   true
 9566	),
 9567	(   '$novel_production'(A, 237), !,
 9568	    '$extend_history'(A, 237),
 9569	    arg(2, A, F),
 9570	    setarg(2, A, active),
 9571	    arg(4, A, D),
 9572	    E is D+1,
 9573	    setarg(4, A, E),
 9574	    (   F==not_stored_yet
 9575	    ->  A=suspension(_, _, _, _, _, G),
 9576		term_variables(G, H),
 9577		'chr none_locked'(H),
 9578		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9579			    I),
 9580		  J=[A|I],
 9581		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9582			   J),
 9583		  (   I=[K|_]
 9584		  ->  setarg(5, K, J)
 9585		  ;   true
 9586		  )
 9587		),
 9588		'attach_known/1_1_$special_atomic/1___1'(H, A)
 9589	    ;   true
 9590	    ),
 9591	    'known/1_1_$special_nonvar/1'(B),
 9592	    (   A=suspension(_, active, _, E, _, _)
 9593	    ->  setarg(2, A, inactive),
 9594		'known/1_1_$special_atomic/1___1__1'(B, A)
 9595	    ;   true
 9596	    )
 9597	;   'known/1_1_$special_atomic/1___1__1'(B, A)
 9598	).
 9599'known/1_1_$special_atomic/1___1__1'(A, E) :-
 9600	(   'chr newvia_1'(A, B)
 9601	->  get_attr(B, guard_entailment, C),
 9602	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9603	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9604		      D)
 9605	), !,
 9606	'known/1_1_$special_atomic/1___1__1__0__7'(D, A, E).
 9607'known/1_1_$special_atomic/1___1__1__0__7'([], A, B) :-
 9608	'known/1_1_$special_atomic/1___1__2'(A, B).
 9609'known/1_1_$special_atomic/1___1__1__0__7'([A|W], E, M) :-
 9610	(   A=suspension(_, active, _, _, B, V),
 9611	    nonvar(B),
 9612	    B=(\+C),
 9613	    nonvar(C),
 9614	    C=atomic(D),
 9615	    D==E
 9616	->  ( A=suspension(_, _, _, _, F, G),
 9617	      setarg(2, A, removed),
 9618	      term_variables(term(F, G), L),
 9619	      ( arg(4, A, H),
 9620		(   var(H)
 9621		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9622			      I),
 9623		    I=[_|J],
 9624		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9625			     J),
 9626		    (   J=[K|_]
 9627		    ->  setarg(4, K, _)
 9628		    ;   true
 9629		    )
 9630		;   H=[_, _|J],
 9631		    setarg(2, H, J),
 9632		    (   J=[K|_]
 9633		    ->  setarg(4, K, H)
 9634		    ;   true
 9635		    )
 9636		)
 9637	      ),
 9638	      'detach_known/1_1_$special_;/2___2'(L, A)
 9639	    ),
 9640	    ( arg(2, M, P),
 9641	      setarg(2, M, active),
 9642	      ( arg(4, M, N),
 9643		O is N+1,
 9644		setarg(4, M, O)
 9645	      ),
 9646	      (   P==not_stored_yet
 9647	      ->  M=suspension(_, _, _, _, _, Q),
 9648		  term_variables(Q, R),
 9649		  'chr none_locked'(R),
 9650		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9651			      S),
 9652		    T=[M|S],
 9653		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9654			     T),
 9655		    (   S=[U|_]
 9656		    ->  setarg(5, U, T)
 9657		    ;   true
 9658		    )
 9659		  ),
 9660		  'attach_known/1_1_$special_atomic/1___1'(R, M)
 9661	      ;   true
 9662	      )
 9663	    ),
 9664	    known(V),
 9665	    (   M=suspension(_, active, _, O, _, _)
 9666	    ->  setarg(2, M, inactive),
 9667		'known/1_1_$special_atomic/1___1__1__0__7'(W,
 9668							   E,
 9669							   M)
 9670	    ;   true
 9671	    )
 9672	;   'known/1_1_$special_atomic/1___1__1__0__7'(W,
 9673						       E,
 9674						       M)
 9675	).
 9676'known/1_1_$special_atomic/1___1__1'(A, B) :-
 9677	'known/1_1_$special_atomic/1___1__2'(A, B).
 9678'known/1_1_$special_atomic/1___1__2'(A, E) :-
 9679	(   'chr newvia_1'(A, B)
 9680	->  get_attr(B, guard_entailment, C),
 9681	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9682	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9683		      D)
 9684	), !,
 9685	'known/1_1_$special_atomic/1___1__2__0__8'(D, A, E).
 9686'known/1_1_$special_atomic/1___1__2__0__8'([], A, B) :-
 9687	'known/1_1_$special_atomic/1___1__3'(A, B).
 9688'known/1_1_$special_atomic/1___1__2__0__8'([A|X], F, N) :-
 9689	(   A=suspension(_, active, _, _, B, W),
 9690	    nonvar(B),
 9691	    B=(C, _),
 9692	    nonvar(C),
 9693	    C=(\+D),
 9694	    nonvar(D),
 9695	    D=atomic(E),
 9696	    E==F
 9697	->  ( A=suspension(_, _, _, _, G, H),
 9698	      setarg(2, A, removed),
 9699	      term_variables(term(G, H), M),
 9700	      ( arg(4, A, I),
 9701		(   var(I)
 9702		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9703			      J),
 9704		    J=[_|K],
 9705		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9706			     K),
 9707		    (   K=[L|_]
 9708		    ->  setarg(4, L, _)
 9709		    ;   true
 9710		    )
 9711		;   I=[_, _|K],
 9712		    setarg(2, I, K),
 9713		    (   K=[L|_]
 9714		    ->  setarg(4, L, I)
 9715		    ;   true
 9716		    )
 9717		)
 9718	      ),
 9719	      'detach_known/1_1_$special_;/2___2'(M, A)
 9720	    ),
 9721	    ( arg(2, N, Q),
 9722	      setarg(2, N, active),
 9723	      ( arg(4, N, O),
 9724		P is O+1,
 9725		setarg(4, N, P)
 9726	      ),
 9727	      (   Q==not_stored_yet
 9728	      ->  N=suspension(_, _, _, _, _, R),
 9729		  term_variables(R, S),
 9730		  'chr none_locked'(S),
 9731		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9732			      T),
 9733		    U=[N|T],
 9734		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9735			     U),
 9736		    (   T=[V|_]
 9737		    ->  setarg(5, V, U)
 9738		    ;   true
 9739		    )
 9740		  ),
 9741		  'attach_known/1_1_$special_atomic/1___1'(S, N)
 9742	      ;   true
 9743	      )
 9744	    ),
 9745	    known(W),
 9746	    (   N=suspension(_, active, _, P, _, _)
 9747	    ->  setarg(2, N, inactive),
 9748		'known/1_1_$special_atomic/1___1__2__0__8'(X,
 9749							   F,
 9750							   N)
 9751	    ;   true
 9752	    )
 9753	;   'known/1_1_$special_atomic/1___1__2__0__8'(X,
 9754						       F,
 9755						       N)
 9756	).
 9757'known/1_1_$special_atomic/1___1__2'(A, B) :-
 9758	'known/1_1_$special_atomic/1___1__3'(A, B).
 9759'known/1_1_$special_atomic/1___1__3'(_, A) :-
 9760	arg(2, A, D),
 9761	setarg(2, A, active),
 9762	arg(4, A, B),
 9763	C is B+1,
 9764	setarg(4, A, C),
 9765	(   D==not_stored_yet
 9766	->  A=suspension(_, _, _, _, _, E),
 9767	    term_variables(E, F),
 9768	    'chr none_locked'(F),
 9769	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9770			G),
 9771	      H=[A|G],
 9772	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
 9773		       H),
 9774	      (   G=[I|_]
 9775	      ->  setarg(5, I, H)
 9776	      ;   true
 9777	      )
 9778	    ),
 9779	    'attach_known/1_1_$special_atomic/1___1'(F, A)
 9780	;   true
 9781	).
 9782'known/1_1_$special_compound/1'(A) :-
 9783	'known/1_1_$special_compound/1___1__0'(A, _).
 9784'known/1_1_$special_compound/1___1__0'(A, G) :-
 9785	(   'chr newvia_1'(A, B)
 9786	->  get_attr(B, guard_entailment, C),
 9787	    C=v(_, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9788	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9789		      D)
 9790	),
 9791	member(E, D),
 9792	E=suspension(_, active, _, _, _, F),
 9793	F==A, !,
 9794	(   var(G)
 9795	->  true
 9796	;   G=suspension(_, H, _, _, _, I),
 9797	    setarg(2, G, removed),
 9798	    (   H==not_stored_yet
 9799	    ->  J=[]
 9800	    ;   term_variables(I, J),
 9801		( arg(5, G, K),
 9802		  (   var(K)
 9803		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9804				L),
 9805		      L=[_|M],
 9806		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9807			       M),
 9808		      (   M=[N|_]
 9809		      ->  setarg(5, N, _)
 9810		      ;   true
 9811		      )
 9812		  ;   K=[_, _|M],
 9813		      setarg(2, K, M),
 9814		      (   M=[N|_]
 9815		      ->  setarg(5, N, K)
 9816		      ;   true
 9817		      )
 9818		  )
 9819		),
 9820		'detach_known/1_1_$special_compound/1___1'(J, G)
 9821	    )
 9822	).
 9823'known/1_1_$special_compound/1___1__0'(_, C) :-
 9824	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
 9825		  A),
 9826	member(B, A),
 9827	B=suspension(_, active, _), !,
 9828	(   var(C)
 9829	->  true
 9830	;   C=suspension(_, D, _, _, _, E),
 9831	    setarg(2, C, removed),
 9832	    (   D==not_stored_yet
 9833	    ->  F=[]
 9834	    ;   term_variables(E, F),
 9835		( arg(5, C, G),
 9836		  (   var(G)
 9837		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9838				H),
 9839		      H=[_|I],
 9840		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9841			       I),
 9842		      (   I=[J|_]
 9843		      ->  setarg(5, J, _)
 9844		      ;   true
 9845		      )
 9846		  ;   G=[_, _|I],
 9847		      setarg(2, G, I),
 9848		      (   I=[J|_]
 9849		      ->  setarg(5, J, G)
 9850		      ;   true
 9851		      )
 9852		  )
 9853		),
 9854		'detach_known/1_1_$special_compound/1___1'(F, C)
 9855	    )
 9856	).
 9857'known/1_1_$special_compound/1___1__0'(A, N) :-
 9858	(   'chr newvia_1'(A, B)
 9859	->  get_attr(B, guard_entailment, C),
 9860	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
 9861	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9862		      D)
 9863	),
 9864	member(E, D),
 9865	E=suspension(_, active, _, _, F),
 9866	nonvar(F),
 9867	F=compound(G),
 9868	G==A, !,
 9869	E=suspension(_, _, _, _, H),
 9870	setarg(2, E, removed),
 9871	term_variables(H, M),
 9872	arg(4, E, I),
 9873	(   var(I)
 9874	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9875		      J),
 9876	    J=[_|K],
 9877	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
 9878		     K),
 9879	    (   K=[L|_]
 9880	    ->  setarg(4, L, _)
 9881	    ;   true
 9882	    )
 9883	;   I=[_, _|K],
 9884	    setarg(2, I, K),
 9885	    (   K=[L|_]
 9886	    ->  setarg(4, L, I)
 9887	    ;   true
 9888	    )
 9889	),
 9890	'detach_known/1_1_$special_\\+/1___1'(M, E),
 9891	(   var(N)
 9892	->  true
 9893	;   N=suspension(_, O, _, _, _, P),
 9894	    setarg(2, N, removed),
 9895	    (   O==not_stored_yet
 9896	    ->  Q=[]
 9897	    ;   term_variables(P, Q),
 9898		( arg(5, N, R),
 9899		  (   var(R)
 9900		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9901				S),
 9902		      S=[_|T],
 9903		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9904			       T),
 9905		      (   T=[U|_]
 9906		      ->  setarg(5, U, _)
 9907		      ;   true
 9908		      )
 9909		  ;   R=[_, _|T],
 9910		      setarg(2, R, T),
 9911		      (   T=[U|_]
 9912		      ->  setarg(5, U, R)
 9913		      ;   true
 9914		      )
 9915		  )
 9916		),
 9917		'detach_known/1_1_$special_compound/1___1'(Q, N)
 9918	    )
 9919	),
 9920	'known/1_1_$special_fail/0'.
 9921'known/1_1_$special_compound/1___1__0'(B, A) :-
 9922	(   var(A)
 9923	->  A=suspension(C, not_stored_yet, t, 0, _, B),
 9924	    'chr gen_id'(C)
 9925	;   true
 9926	),
 9927	(   '$novel_production'(A, 236), !,
 9928	    '$extend_history'(A, 236),
 9929	    arg(2, A, F),
 9930	    setarg(2, A, active),
 9931	    arg(4, A, D),
 9932	    E is D+1,
 9933	    setarg(4, A, E),
 9934	    (   F==not_stored_yet
 9935	    ->  A=suspension(_, _, _, _, _, G),
 9936		term_variables(G, H),
 9937		'chr none_locked'(H),
 9938		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9939			    I),
 9940		  J=[A|I],
 9941		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
 9942			   J),
 9943		  (   I=[K|_]
 9944		  ->  setarg(5, K, J)
 9945		  ;   true
 9946		  )
 9947		),
 9948		'attach_known/1_1_$special_compound/1___1'(H, A)
 9949	    ;   true
 9950	    ),
 9951	    'known/1_1_$special_nonvar/1'(B),
 9952	    (   A=suspension(_, active, _, E, _, _)
 9953	    ->  setarg(2, A, inactive),
 9954		'known/1_1_$special_compound/1___1__1'(B, A)
 9955	    ;   true
 9956	    )
 9957	;   'known/1_1_$special_compound/1___1__1'(B, A)
 9958	).
 9959'known/1_1_$special_compound/1___1__1'(A, E) :-
 9960	(   'chr newvia_1'(A, B)
 9961	->  get_attr(B, guard_entailment, C),
 9962	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
 9963	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9964		      D)
 9965	), !,
 9966	'known/1_1_$special_compound/1___1__1__0__7'(D, A, E).
 9967'known/1_1_$special_compound/1___1__1__0__7'([], A, B) :-
 9968	'known/1_1_$special_compound/1___1__2'(A, B).
 9969'known/1_1_$special_compound/1___1__1__0__7'([A|W], E, M) :-
 9970	(   A=suspension(_, active, _, _, B, V),
 9971	    nonvar(B),
 9972	    B=(\+C),
 9973	    nonvar(C),
 9974	    C=compound(D),
 9975	    D==E
 9976	->  ( A=suspension(_, _, _, _, F, G),
 9977	      setarg(2, A, removed),
 9978	      term_variables(term(F, G), L),
 9979	      ( arg(4, A, H),
 9980		(   var(H)
 9981		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9982			      I),
 9983		    I=[_|J],
 9984		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
 9985			     J),
 9986		    (   J=[K|_]
 9987		    ->  setarg(4, K, _)
 9988		    ;   true
 9989		    )
 9990		;   H=[_, _|J],
 9991		    setarg(2, H, J),
 9992		    (   J=[K|_]
 9993		    ->  setarg(4, K, H)
 9994		    ;   true
 9995		    )
 9996		)
 9997	      ),
 9998	      'detach_known/1_1_$special_;/2___2'(L, A)
 9999	    ),
10000	    ( arg(2, M, P),
10001	      setarg(2, M, active),
10002	      ( arg(4, M, N),
10003		O is N+1,
10004		setarg(4, M, O)
10005	      ),
10006	      (   P==not_stored_yet
10007	      ->  M=suspension(_, _, _, _, _, Q),
10008		  term_variables(Q, R),
10009		  'chr none_locked'(R),
10010		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10011			      S),
10012		    T=[M|S],
10013		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10014			     T),
10015		    (   S=[U|_]
10016		    ->  setarg(5, U, T)
10017		    ;   true
10018		    )
10019		  ),
10020		  'attach_known/1_1_$special_compound/1___1'(R, M)
10021	      ;   true
10022	      )
10023	    ),
10024	    known(V),
10025	    (   M=suspension(_, active, _, O, _, _)
10026	    ->  setarg(2, M, inactive),
10027		'known/1_1_$special_compound/1___1__1__0__7'(W,
10028							     E,
10029							     M)
10030	    ;   true
10031	    )
10032	;   'known/1_1_$special_compound/1___1__1__0__7'(W,
10033							 E,
10034							 M)
10035	).
10036'known/1_1_$special_compound/1___1__1'(A, B) :-
10037	'known/1_1_$special_compound/1___1__2'(A, B).
10038'known/1_1_$special_compound/1___1__2'(A, E) :-
10039	(   'chr newvia_1'(A, B)
10040	->  get_attr(B, guard_entailment, C),
10041	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
10042	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10043		      D)
10044	), !,
10045	'known/1_1_$special_compound/1___1__2__0__8'(D, A, E).
10046'known/1_1_$special_compound/1___1__2__0__8'([], A, B) :-
10047	'known/1_1_$special_compound/1___1__3'(A, B).
10048'known/1_1_$special_compound/1___1__2__0__8'([A|X], F, N) :-
10049	(   A=suspension(_, active, _, _, B, W),
10050	    nonvar(B),
10051	    B=(C, _),
10052	    nonvar(C),
10053	    C=(\+D),
10054	    nonvar(D),
10055	    D=compound(E),
10056	    E==F
10057	->  ( A=suspension(_, _, _, _, G, H),
10058	      setarg(2, A, removed),
10059	      term_variables(term(G, H), M),
10060	      ( arg(4, A, I),
10061		(   var(I)
10062		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10063			      J),
10064		    J=[_|K],
10065		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10066			     K),
10067		    (   K=[L|_]
10068		    ->  setarg(4, L, _)
10069		    ;   true
10070		    )
10071		;   I=[_, _|K],
10072		    setarg(2, I, K),
10073		    (   K=[L|_]
10074		    ->  setarg(4, L, I)
10075		    ;   true
10076		    )
10077		)
10078	      ),
10079	      'detach_known/1_1_$special_;/2___2'(M, A)
10080	    ),
10081	    ( arg(2, N, Q),
10082	      setarg(2, N, active),
10083	      ( arg(4, N, O),
10084		P is O+1,
10085		setarg(4, N, P)
10086	      ),
10087	      (   Q==not_stored_yet
10088	      ->  N=suspension(_, _, _, _, _, R),
10089		  term_variables(R, S),
10090		  'chr none_locked'(S),
10091		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10092			      T),
10093		    U=[N|T],
10094		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10095			     U),
10096		    (   T=[V|_]
10097		    ->  setarg(5, V, U)
10098		    ;   true
10099		    )
10100		  ),
10101		  'attach_known/1_1_$special_compound/1___1'(S, N)
10102	      ;   true
10103	      )
10104	    ),
10105	    known(W),
10106	    (   N=suspension(_, active, _, P, _, _)
10107	    ->  setarg(2, N, inactive),
10108		'known/1_1_$special_compound/1___1__2__0__8'(X,
10109							     F,
10110							     N)
10111	    ;   true
10112	    )
10113	;   'known/1_1_$special_compound/1___1__2__0__8'(X,
10114							 F,
10115							 N)
10116	).
10117'known/1_1_$special_compound/1___1__2'(A, B) :-
10118	'known/1_1_$special_compound/1___1__3'(A, B).
10119'known/1_1_$special_compound/1___1__3'(_, A) :-
10120	arg(2, A, D),
10121	setarg(2, A, active),
10122	arg(4, A, B),
10123	C is B+1,
10124	setarg(4, A, C),
10125	(   D==not_stored_yet
10126	->  A=suspension(_, _, _, _, _, E),
10127	    term_variables(E, F),
10128	    'chr none_locked'(F),
10129	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10130			G),
10131	      H=[A|G],
10132	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
10133		       H),
10134	      (   G=[I|_]
10135	      ->  setarg(5, I, H)
10136	      ;   true
10137	      )
10138	    ),
10139	    'attach_known/1_1_$special_compound/1___1'(F, A)
10140	;   true
10141	).
10142'known/1_1_$special_ground/1'(A) :-
10143	'known/1_1_$special_ground/1___1__0'(A, _).
10144'known/1_1_$special_ground/1___1__0'(A, G) :-
10145	(   'chr newvia_1'(A, B)
10146	->  get_attr(B, guard_entailment, C),
10147	    C=v(_, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _)
10148	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10149		      D)
10150	),
10151	member(E, D),
10152	E=suspension(_, active, _, _, _, F),
10153	F==A, !,
10154	(   var(G)
10155	->  true
10156	;   G=suspension(_, H, _, _, _, I),
10157	    setarg(2, G, removed),
10158	    (   H==not_stored_yet
10159	    ->  J=[]
10160	    ;   term_variables(I, J),
10161		( arg(5, G, K),
10162		  (   var(K)
10163		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10164				L),
10165		      L=[_|M],
10166		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10167			       M),
10168		      (   M=[N|_]
10169		      ->  setarg(5, N, _)
10170		      ;   true
10171		      )
10172		  ;   K=[_, _|M],
10173		      setarg(2, K, M),
10174		      (   M=[N|_]
10175		      ->  setarg(5, N, K)
10176		      ;   true
10177		      )
10178		  )
10179		),
10180		'detach_known/1_1_$special_ground/1___1'(J, G)
10181	    )
10182	).
10183'known/1_1_$special_ground/1___1__0'(_, C) :-
10184	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
10185		  A),
10186	member(B, A),
10187	B=suspension(_, active, _), !,
10188	(   var(C)
10189	->  true
10190	;   C=suspension(_, D, _, _, _, E),
10191	    setarg(2, C, removed),
10192	    (   D==not_stored_yet
10193	    ->  F=[]
10194	    ;   term_variables(E, F),
10195		( arg(5, C, G),
10196		  (   var(G)
10197		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10198				H),
10199		      H=[_|I],
10200		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10201			       I),
10202		      (   I=[J|_]
10203		      ->  setarg(5, J, _)
10204		      ;   true
10205		      )
10206		  ;   G=[_, _|I],
10207		      setarg(2, G, I),
10208		      (   I=[J|_]
10209		      ->  setarg(5, J, G)
10210		      ;   true
10211		      )
10212		  )
10213		),
10214		'detach_known/1_1_$special_ground/1___1'(F, C)
10215	    )
10216	).
10217'known/1_1_$special_ground/1___1__0'(A, N) :-
10218	(   'chr newvia_1'(A, B)
10219	->  get_attr(B, guard_entailment, C),
10220	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
10221	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10222		      D)
10223	),
10224	member(E, D),
10225	E=suspension(_, active, _, _, F),
10226	nonvar(F),
10227	F=ground(G),
10228	G==A, !,
10229	E=suspension(_, _, _, _, H),
10230	setarg(2, E, removed),
10231	term_variables(H, M),
10232	arg(4, E, I),
10233	(   var(I)
10234	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10235		      J),
10236	    J=[_|K],
10237	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10238		     K),
10239	    (   K=[L|_]
10240	    ->  setarg(4, L, _)
10241	    ;   true
10242	    )
10243	;   I=[_, _|K],
10244	    setarg(2, I, K),
10245	    (   K=[L|_]
10246	    ->  setarg(4, L, I)
10247	    ;   true
10248	    )
10249	),
10250	'detach_known/1_1_$special_\\+/1___1'(M, E),
10251	(   var(N)
10252	->  true
10253	;   N=suspension(_, O, _, _, _, P),
10254	    setarg(2, N, removed),
10255	    (   O==not_stored_yet
10256	    ->  Q=[]
10257	    ;   term_variables(P, Q),
10258		( arg(5, N, R),
10259		  (   var(R)
10260		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10261				S),
10262		      S=[_|T],
10263		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10264			       T),
10265		      (   T=[U|_]
10266		      ->  setarg(5, U, _)
10267		      ;   true
10268		      )
10269		  ;   R=[_, _|T],
10270		      setarg(2, R, T),
10271		      (   T=[U|_]
10272		      ->  setarg(5, U, R)
10273		      ;   true
10274		      )
10275		  )
10276		),
10277		'detach_known/1_1_$special_ground/1___1'(Q, N)
10278	    )
10279	),
10280	'known/1_1_$special_fail/0'.
10281'known/1_1_$special_ground/1___1__0'(B, A) :-
10282	(   var(A)
10283	->  A=suspension(C, not_stored_yet, t, 0, _, B),
10284	    'chr gen_id'(C)
10285	;   true
10286	),
10287	(   '$novel_production'(A, 235), !,
10288	    '$extend_history'(A, 235),
10289	    arg(2, A, F),
10290	    setarg(2, A, active),
10291	    arg(4, A, D),
10292	    E is D+1,
10293	    setarg(4, A, E),
10294	    (   F==not_stored_yet
10295	    ->  A=suspension(_, _, _, _, _, G),
10296		term_variables(G, H),
10297		'chr none_locked'(H),
10298		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10299			    I),
10300		  J=[A|I],
10301		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10302			   J),
10303		  (   I=[K|_]
10304		  ->  setarg(5, K, J)
10305		  ;   true
10306		  )
10307		),
10308		'attach_known/1_1_$special_ground/1___1'(H, A)
10309	    ;   true
10310	    ),
10311	    'known/1_1_$special_nonvar/1'(B),
10312	    (   A=suspension(_, active, _, E, _, _)
10313	    ->  setarg(2, A, inactive),
10314		'known/1_1_$special_ground/1___1__1'(B, A)
10315	    ;   true
10316	    )
10317	;   'known/1_1_$special_ground/1___1__1'(B, A)
10318	).
10319'known/1_1_$special_ground/1___1__1'(A, E) :-
10320	(   'chr newvia_1'(A, B)
10321	->  get_attr(B, guard_entailment, C),
10322	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
10323	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10324		      D)
10325	), !,
10326	'known/1_1_$special_ground/1___1__1__0__7'(D, A, E).
10327'known/1_1_$special_ground/1___1__1__0__7'([], A, B) :-
10328	'known/1_1_$special_ground/1___1__2'(A, B).
10329'known/1_1_$special_ground/1___1__1__0__7'([A|W], E, M) :-
10330	(   A=suspension(_, active, _, _, B, V),
10331	    nonvar(B),
10332	    B=(\+C),
10333	    nonvar(C),
10334	    C=ground(D),
10335	    D==E
10336	->  ( A=suspension(_, _, _, _, F, G),
10337	      setarg(2, A, removed),
10338	      term_variables(term(F, G), L),
10339	      ( arg(4, A, H),
10340		(   var(H)
10341		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10342			      I),
10343		    I=[_|J],
10344		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10345			     J),
10346		    (   J=[K|_]
10347		    ->  setarg(4, K, _)
10348		    ;   true
10349		    )
10350		;   H=[_, _|J],
10351		    setarg(2, H, J),
10352		    (   J=[K|_]
10353		    ->  setarg(4, K, H)
10354		    ;   true
10355		    )
10356		)
10357	      ),
10358	      'detach_known/1_1_$special_;/2___2'(L, A)
10359	    ),
10360	    ( arg(2, M, P),
10361	      setarg(2, M, active),
10362	      ( arg(4, M, N),
10363		O is N+1,
10364		setarg(4, M, O)
10365	      ),
10366	      (   P==not_stored_yet
10367	      ->  M=suspension(_, _, _, _, _, Q),
10368		  term_variables(Q, R),
10369		  'chr none_locked'(R),
10370		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10371			      S),
10372		    T=[M|S],
10373		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10374			     T),
10375		    (   S=[U|_]
10376		    ->  setarg(5, U, T)
10377		    ;   true
10378		    )
10379		  ),
10380		  'attach_known/1_1_$special_ground/1___1'(R, M)
10381	      ;   true
10382	      )
10383	    ),
10384	    known(V),
10385	    (   M=suspension(_, active, _, O, _, _)
10386	    ->  setarg(2, M, inactive),
10387		'known/1_1_$special_ground/1___1__1__0__7'(W,
10388							   E,
10389							   M)
10390	    ;   true
10391	    )
10392	;   'known/1_1_$special_ground/1___1__1__0__7'(W,
10393						       E,
10394						       M)
10395	).
10396'known/1_1_$special_ground/1___1__1'(A, B) :-
10397	'known/1_1_$special_ground/1___1__2'(A, B).
10398'known/1_1_$special_ground/1___1__2'(A, E) :-
10399	(   'chr newvia_1'(A, B)
10400	->  get_attr(B, guard_entailment, C),
10401	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
10402	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10403		      D)
10404	), !,
10405	'known/1_1_$special_ground/1___1__2__0__8'(D, A, E).
10406'known/1_1_$special_ground/1___1__2__0__8'([], A, B) :-
10407	'known/1_1_$special_ground/1___1__3'(A, B).
10408'known/1_1_$special_ground/1___1__2__0__8'([A|X], F, N) :-
10409	(   A=suspension(_, active, _, _, B, W),
10410	    nonvar(B),
10411	    B=(C, _),
10412	    nonvar(C),
10413	    C=(\+D),
10414	    nonvar(D),
10415	    D=ground(E),
10416	    E==F
10417	->  ( A=suspension(_, _, _, _, G, H),
10418	      setarg(2, A, removed),
10419	      term_variables(term(G, H), M),
10420	      ( arg(4, A, I),
10421		(   var(I)
10422		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10423			      J),
10424		    J=[_|K],
10425		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10426			     K),
10427		    (   K=[L|_]
10428		    ->  setarg(4, L, _)
10429		    ;   true
10430		    )
10431		;   I=[_, _|K],
10432		    setarg(2, I, K),
10433		    (   K=[L|_]
10434		    ->  setarg(4, L, I)
10435		    ;   true
10436		    )
10437		)
10438	      ),
10439	      'detach_known/1_1_$special_;/2___2'(M, A)
10440	    ),
10441	    ( arg(2, N, Q),
10442	      setarg(2, N, active),
10443	      ( arg(4, N, O),
10444		P is O+1,
10445		setarg(4, N, P)
10446	      ),
10447	      (   Q==not_stored_yet
10448	      ->  N=suspension(_, _, _, _, _, R),
10449		  term_variables(R, S),
10450		  'chr none_locked'(S),
10451		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10452			      T),
10453		    U=[N|T],
10454		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10455			     U),
10456		    (   T=[V|_]
10457		    ->  setarg(5, V, U)
10458		    ;   true
10459		    )
10460		  ),
10461		  'attach_known/1_1_$special_ground/1___1'(S, N)
10462	      ;   true
10463	      )
10464	    ),
10465	    known(W),
10466	    (   N=suspension(_, active, _, P, _, _)
10467	    ->  setarg(2, N, inactive),
10468		'known/1_1_$special_ground/1___1__2__0__8'(X,
10469							   F,
10470							   N)
10471	    ;   true
10472	    )
10473	;   'known/1_1_$special_ground/1___1__2__0__8'(X,
10474						       F,
10475						       N)
10476	).
10477'known/1_1_$special_ground/1___1__2'(A, B) :-
10478	'known/1_1_$special_ground/1___1__3'(A, B).
10479'known/1_1_$special_ground/1___1__3'(_, A) :-
10480	arg(2, A, D),
10481	setarg(2, A, active),
10482	arg(4, A, B),
10483	C is B+1,
10484	setarg(4, A, C),
10485	(   D==not_stored_yet
10486	->  A=suspension(_, _, _, _, _, E),
10487	    term_variables(E, F),
10488	    'chr none_locked'(F),
10489	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10490			G),
10491	      H=[A|G],
10492	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
10493		       H),
10494	      (   G=[I|_]
10495	      ->  setarg(5, I, H)
10496	      ;   true
10497	      )
10498	    ),
10499	    'attach_known/1_1_$special_ground/1___1'(F, A)
10500	;   true
10501	).
10502'known/1_1_$special_integer/1'(A) :-
10503	'known/1_1_$special_integer/1___1__0'(A, _).
10504'known/1_1_$special_integer/1___1__0'(A, G) :-
10505	(   'chr newvia_1'(A, B)
10506	->  get_attr(B, guard_entailment, C),
10507	    C=v(_, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _)
10508	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10509		      D)
10510	),
10511	member(E, D),
10512	E=suspension(_, active, _, _, _, F),
10513	F==A, !,
10514	(   var(G)
10515	->  true
10516	;   G=suspension(_, H, _, _, _, I),
10517	    setarg(2, G, removed),
10518	    (   H==not_stored_yet
10519	    ->  J=[]
10520	    ;   term_variables(I, J),
10521		( arg(5, G, K),
10522		  (   var(K)
10523		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10524				L),
10525		      L=[_|M],
10526		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10527			       M),
10528		      (   M=[N|_]
10529		      ->  setarg(5, N, _)
10530		      ;   true
10531		      )
10532		  ;   K=[_, _|M],
10533		      setarg(2, K, M),
10534		      (   M=[N|_]
10535		      ->  setarg(5, N, K)
10536		      ;   true
10537		      )
10538		  )
10539		),
10540		'detach_known/1_1_$special_integer/1___1'(J, G)
10541	    )
10542	).
10543'known/1_1_$special_integer/1___1__0'(_, C) :-
10544	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
10545		  A),
10546	member(B, A),
10547	B=suspension(_, active, _), !,
10548	(   var(C)
10549	->  true
10550	;   C=suspension(_, D, _, _, _, E),
10551	    setarg(2, C, removed),
10552	    (   D==not_stored_yet
10553	    ->  F=[]
10554	    ;   term_variables(E, F),
10555		( arg(5, C, G),
10556		  (   var(G)
10557		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10558				H),
10559		      H=[_|I],
10560		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10561			       I),
10562		      (   I=[J|_]
10563		      ->  setarg(5, J, _)
10564		      ;   true
10565		      )
10566		  ;   G=[_, _|I],
10567		      setarg(2, G, I),
10568		      (   I=[J|_]
10569		      ->  setarg(5, J, G)
10570		      ;   true
10571		      )
10572		  )
10573		),
10574		'detach_known/1_1_$special_integer/1___1'(F, C)
10575	    )
10576	).
10577'known/1_1_$special_integer/1___1__0'(A, B) :-
10578	nonvar(A),
10579	\+ integer(A), !,
10580	(   var(B)
10581	->  true
10582	;   B=suspension(_, C, _, _, _, D),
10583	    setarg(2, B, removed),
10584	    (   C==not_stored_yet
10585	    ->  E=[]
10586	    ;   term_variables(D, E),
10587		( arg(5, B, F),
10588		  (   var(F)
10589		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10590				G),
10591		      G=[_|H],
10592		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10593			       H),
10594		      (   H=[I|_]
10595		      ->  setarg(5, I, _)
10596		      ;   true
10597		      )
10598		  ;   F=[_, _|H],
10599		      setarg(2, F, H),
10600		      (   H=[I|_]
10601		      ->  setarg(5, I, F)
10602		      ;   true
10603		      )
10604		  )
10605		),
10606		'detach_known/1_1_$special_integer/1___1'(E, B)
10607	    )
10608	),
10609	'known/1_1_$special_fail/0'.
10610'known/1_1_$special_integer/1___1__0'(B, A) :-
10611	(   var(A)
10612	->  A=suspension(C, not_stored_yet, t, 0, _, B),
10613	    'chr gen_id'(C)
10614	;   true
10615	),
10616	(   '$novel_production'(A, 199), !,
10617	    '$extend_history'(A, 199),
10618	    arg(2, A, F),
10619	    setarg(2, A, active),
10620	    arg(4, A, D),
10621	    E is D+1,
10622	    setarg(4, A, E),
10623	    (   F==not_stored_yet
10624	    ->  A=suspension(_, _, _, _, _, G),
10625		term_variables(G, H),
10626		'chr none_locked'(H),
10627		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10628			    I),
10629		  J=[A|I],
10630		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10631			   J),
10632		  (   I=[K|_]
10633		  ->  setarg(5, K, J)
10634		  ;   true
10635		  )
10636		),
10637		'attach_known/1_1_$special_integer/1___1'(H, A)
10638	    ;   true
10639	    ),
10640	    'known/1_1_$special_number/1'(B),
10641	    (   A=suspension(_, active, _, E, _, _)
10642	    ->  setarg(2, A, inactive),
10643		'known/1_1_$special_integer/1___1__1'(B, A)
10644	    ;   true
10645	    )
10646	;   'known/1_1_$special_integer/1___1__1'(B, A)
10647	).
10648'known/1_1_$special_integer/1___1__1'(A, N) :-
10649	(   'chr newvia_1'(A, B)
10650	->  get_attr(B, guard_entailment, C),
10651	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
10652	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10653		      D)
10654	),
10655	member(E, D),
10656	E=suspension(_, active, _, _, F),
10657	nonvar(F),
10658	F=integer(G),
10659	G==A, !,
10660	E=suspension(_, _, _, _, H),
10661	setarg(2, E, removed),
10662	term_variables(H, M),
10663	arg(4, E, I),
10664	(   var(I)
10665	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10666		      J),
10667	    J=[_|K],
10668	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
10669		     K),
10670	    (   K=[L|_]
10671	    ->  setarg(4, L, _)
10672	    ;   true
10673	    )
10674	;   I=[_, _|K],
10675	    setarg(2, I, K),
10676	    (   K=[L|_]
10677	    ->  setarg(4, L, I)
10678	    ;   true
10679	    )
10680	),
10681	'detach_known/1_1_$special_\\+/1___1'(M, E),
10682	(   var(N)
10683	->  true
10684	;   N=suspension(_, O, _, _, _, P),
10685	    setarg(2, N, removed),
10686	    (   O==not_stored_yet
10687	    ->  Q=[]
10688	    ;   term_variables(P, Q),
10689		( arg(5, N, R),
10690		  (   var(R)
10691		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10692				S),
10693		      S=[_|T],
10694		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10695			       T),
10696		      (   T=[U|_]
10697		      ->  setarg(5, U, _)
10698		      ;   true
10699		      )
10700		  ;   R=[_, _|T],
10701		      setarg(2, R, T),
10702		      (   T=[U|_]
10703		      ->  setarg(5, U, R)
10704		      ;   true
10705		      )
10706		  )
10707		),
10708		'detach_known/1_1_$special_integer/1___1'(Q, N)
10709	    )
10710	),
10711	'known/1_1_$special_fail/0'.
10712'known/1_1_$special_integer/1___1__1'(A, E) :-
10713	(   'chr newvia_1'(A, B)
10714	->  get_attr(B, guard_entailment, C),
10715	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
10716	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10717		      D)
10718	), !,
10719	'known/1_1_$special_integer/1___1__1__0__8'(D, A, E).
10720'known/1_1_$special_integer/1___1__1__0__8'([], A, B) :-
10721	'known/1_1_$special_integer/1___1__2'(A, B).
10722'known/1_1_$special_integer/1___1__1__0__8'([A|W], E, M) :-
10723	(   A=suspension(_, active, _, _, B, V),
10724	    nonvar(B),
10725	    B=(\+C),
10726	    nonvar(C),
10727	    C=integer(D),
10728	    D==E
10729	->  ( A=suspension(_, _, _, _, F, G),
10730	      setarg(2, A, removed),
10731	      term_variables(term(F, G), L),
10732	      ( arg(4, A, H),
10733		(   var(H)
10734		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10735			      I),
10736		    I=[_|J],
10737		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10738			     J),
10739		    (   J=[K|_]
10740		    ->  setarg(4, K, _)
10741		    ;   true
10742		    )
10743		;   H=[_, _|J],
10744		    setarg(2, H, J),
10745		    (   J=[K|_]
10746		    ->  setarg(4, K, H)
10747		    ;   true
10748		    )
10749		)
10750	      ),
10751	      'detach_known/1_1_$special_;/2___2'(L, A)
10752	    ),
10753	    ( arg(2, M, P),
10754	      setarg(2, M, active),
10755	      ( arg(4, M, N),
10756		O is N+1,
10757		setarg(4, M, O)
10758	      ),
10759	      (   P==not_stored_yet
10760	      ->  M=suspension(_, _, _, _, _, Q),
10761		  term_variables(Q, R),
10762		  'chr none_locked'(R),
10763		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10764			      S),
10765		    T=[M|S],
10766		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10767			     T),
10768		    (   S=[U|_]
10769		    ->  setarg(5, U, T)
10770		    ;   true
10771		    )
10772		  ),
10773		  'attach_known/1_1_$special_integer/1___1'(R, M)
10774	      ;   true
10775	      )
10776	    ),
10777	    known(V),
10778	    (   M=suspension(_, active, _, O, _, _)
10779	    ->  setarg(2, M, inactive),
10780		'known/1_1_$special_integer/1___1__1__0__8'(W,
10781							    E,
10782							    M)
10783	    ;   true
10784	    )
10785	;   'known/1_1_$special_integer/1___1__1__0__8'(W,
10786							E,
10787							M)
10788	).
10789'known/1_1_$special_integer/1___1__1'(A, B) :-
10790	'known/1_1_$special_integer/1___1__2'(A, B).
10791'known/1_1_$special_integer/1___1__2'(A, E) :-
10792	(   'chr newvia_1'(A, B)
10793	->  get_attr(B, guard_entailment, C),
10794	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
10795	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10796		      D)
10797	), !,
10798	'known/1_1_$special_integer/1___1__2__0__9'(D, A, E).
10799'known/1_1_$special_integer/1___1__2__0__9'([], A, B) :-
10800	'known/1_1_$special_integer/1___1__3'(A, B).
10801'known/1_1_$special_integer/1___1__2__0__9'([A|X], F, N) :-
10802	(   A=suspension(_, active, _, _, B, W),
10803	    nonvar(B),
10804	    B=(C, _),
10805	    nonvar(C),
10806	    C=(\+D),
10807	    nonvar(D),
10808	    D=integer(E),
10809	    E==F
10810	->  ( A=suspension(_, _, _, _, G, H),
10811	      setarg(2, A, removed),
10812	      term_variables(term(G, H), M),
10813	      ( arg(4, A, I),
10814		(   var(I)
10815		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10816			      J),
10817		    J=[_|K],
10818		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
10819			     K),
10820		    (   K=[L|_]
10821		    ->  setarg(4, L, _)
10822		    ;   true
10823		    )
10824		;   I=[_, _|K],
10825		    setarg(2, I, K),
10826		    (   K=[L|_]
10827		    ->  setarg(4, L, I)
10828		    ;   true
10829		    )
10830		)
10831	      ),
10832	      'detach_known/1_1_$special_;/2___2'(M, A)
10833	    ),
10834	    ( arg(2, N, Q),
10835	      setarg(2, N, active),
10836	      ( arg(4, N, O),
10837		P is O+1,
10838		setarg(4, N, P)
10839	      ),
10840	      (   Q==not_stored_yet
10841	      ->  N=suspension(_, _, _, _, _, R),
10842		  term_variables(R, S),
10843		  'chr none_locked'(S),
10844		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10845			      T),
10846		    U=[N|T],
10847		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10848			     U),
10849		    (   T=[V|_]
10850		    ->  setarg(5, V, U)
10851		    ;   true
10852		    )
10853		  ),
10854		  'attach_known/1_1_$special_integer/1___1'(S, N)
10855	      ;   true
10856	      )
10857	    ),
10858	    known(W),
10859	    (   N=suspension(_, active, _, P, _, _)
10860	    ->  setarg(2, N, inactive),
10861		'known/1_1_$special_integer/1___1__2__0__9'(X,
10862							    F,
10863							    N)
10864	    ;   true
10865	    )
10866	;   'known/1_1_$special_integer/1___1__2__0__9'(X,
10867							F,
10868							N)
10869	).
10870'known/1_1_$special_integer/1___1__2'(A, B) :-
10871	'known/1_1_$special_integer/1___1__3'(A, B).
10872'known/1_1_$special_integer/1___1__3'(_, A) :-
10873	arg(2, A, D),
10874	setarg(2, A, active),
10875	arg(4, A, B),
10876	C is B+1,
10877	setarg(4, A, C),
10878	(   D==not_stored_yet
10879	->  A=suspension(_, _, _, _, _, E),
10880	    term_variables(E, F),
10881	    'chr none_locked'(F),
10882	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10883			G),
10884	      H=[A|G],
10885	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
10886		       H),
10887	      (   G=[I|_]
10888	      ->  setarg(5, I, H)
10889	      ;   true
10890	      )
10891	    ),
10892	    'attach_known/1_1_$special_integer/1___1'(F, A)
10893	;   true
10894	).
10895'known/1_1_$special_float/1'(A) :-
10896	'known/1_1_$special_float/1___1__0'(A, _).
10897'known/1_1_$special_float/1___1__0'(A, G) :-
10898	(   'chr newvia_1'(A, B)
10899	->  get_attr(B, guard_entailment, C),
10900	    C=v(_, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _)
10901	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
10902		      D)
10903	),
10904	member(E, D),
10905	E=suspension(_, active, _, _, _, F),
10906	F==A, !,
10907	(   var(G)
10908	->  true
10909	;   G=suspension(_, H, _, _, _, I),
10910	    setarg(2, G, removed),
10911	    (   H==not_stored_yet
10912	    ->  J=[]
10913	    ;   term_variables(I, J),
10914		( arg(5, G, K),
10915		  (   var(K)
10916		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
10917				L),
10918		      L=[_|M],
10919		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
10920			       M),
10921		      (   M=[N|_]
10922		      ->  setarg(5, N, _)
10923		      ;   true
10924		      )
10925		  ;   K=[_, _|M],
10926		      setarg(2, K, M),
10927		      (   M=[N|_]
10928		      ->  setarg(5, N, K)
10929		      ;   true
10930		      )
10931		  )
10932		),
10933		'detach_known/1_1_$special_float/1___1'(J, G)
10934	    )
10935	).
10936'known/1_1_$special_float/1___1__0'(_, C) :-
10937	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
10938		  A),
10939	member(B, A),
10940	B=suspension(_, active, _), !,
10941	(   var(C)
10942	->  true
10943	;   C=suspension(_, D, _, _, _, E),
10944	    setarg(2, C, removed),
10945	    (   D==not_stored_yet
10946	    ->  F=[]
10947	    ;   term_variables(E, F),
10948		( arg(5, C, G),
10949		  (   var(G)
10950		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
10951				H),
10952		      H=[_|I],
10953		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
10954			       I),
10955		      (   I=[J|_]
10956		      ->  setarg(5, J, _)
10957		      ;   true
10958		      )
10959		  ;   G=[_, _|I],
10960		      setarg(2, G, I),
10961		      (   I=[J|_]
10962		      ->  setarg(5, J, G)
10963		      ;   true
10964		      )
10965		  )
10966		),
10967		'detach_known/1_1_$special_float/1___1'(F, C)
10968	    )
10969	).
10970'known/1_1_$special_float/1___1__0'(A, B) :-
10971	nonvar(A),
10972	\+ float(A), !,
10973	(   var(B)
10974	->  true
10975	;   B=suspension(_, C, _, _, _, D),
10976	    setarg(2, B, removed),
10977	    (   C==not_stored_yet
10978	    ->  E=[]
10979	    ;   term_variables(D, E),
10980		( arg(5, B, F),
10981		  (   var(F)
10982		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
10983				G),
10984		      G=[_|H],
10985		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
10986			       H),
10987		      (   H=[I|_]
10988		      ->  setarg(5, I, _)
10989		      ;   true
10990		      )
10991		  ;   F=[_, _|H],
10992		      setarg(2, F, H),
10993		      (   H=[I|_]
10994		      ->  setarg(5, I, F)
10995		      ;   true
10996		      )
10997		  )
10998		),
10999		'detach_known/1_1_$special_float/1___1'(E, B)
11000	    )
11001	),
11002	'known/1_1_$special_fail/0'.
11003'known/1_1_$special_float/1___1__0'(B, A) :-
11004	(   var(A)
11005	->  A=suspension(C, not_stored_yet, t, 0, _, B),
11006	    'chr gen_id'(C)
11007	;   true
11008	),
11009	(   '$novel_production'(A, 200), !,
11010	    '$extend_history'(A, 200),
11011	    arg(2, A, F),
11012	    setarg(2, A, active),
11013	    arg(4, A, D),
11014	    E is D+1,
11015	    setarg(4, A, E),
11016	    (   F==not_stored_yet
11017	    ->  A=suspension(_, _, _, _, _, G),
11018		term_variables(G, H),
11019		'chr none_locked'(H),
11020		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11021			    I),
11022		  J=[A|I],
11023		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11024			   J),
11025		  (   I=[K|_]
11026		  ->  setarg(5, K, J)
11027		  ;   true
11028		  )
11029		),
11030		'attach_known/1_1_$special_float/1___1'(H, A)
11031	    ;   true
11032	    ),
11033	    'known/1_1_$special_number/1'(B),
11034	    (   A=suspension(_, active, _, E, _, _)
11035	    ->  setarg(2, A, inactive),
11036		'known/1_1_$special_float/1___1__1'(B, A)
11037	    ;   true
11038	    )
11039	;   'known/1_1_$special_float/1___1__1'(B, A)
11040	).
11041'known/1_1_$special_float/1___1__1'(A, N) :-
11042	(   'chr newvia_1'(A, B)
11043	->  get_attr(B, guard_entailment, C),
11044	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
11045	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
11046		      D)
11047	),
11048	member(E, D),
11049	E=suspension(_, active, _, _, F),
11050	nonvar(F),
11051	F=float(G),
11052	G==A, !,
11053	E=suspension(_, _, _, _, H),
11054	setarg(2, E, removed),
11055	term_variables(H, M),
11056	arg(4, E, I),
11057	(   var(I)
11058	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
11059		      J),
11060	    J=[_|K],
11061	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
11062		     K),
11063	    (   K=[L|_]
11064	    ->  setarg(4, L, _)
11065	    ;   true
11066	    )
11067	;   I=[_, _|K],
11068	    setarg(2, I, K),
11069	    (   K=[L|_]
11070	    ->  setarg(4, L, I)
11071	    ;   true
11072	    )
11073	),
11074	'detach_known/1_1_$special_\\+/1___1'(M, E),
11075	(   var(N)
11076	->  true
11077	;   N=suspension(_, O, _, _, _, P),
11078	    setarg(2, N, removed),
11079	    (   O==not_stored_yet
11080	    ->  Q=[]
11081	    ;   term_variables(P, Q),
11082		( arg(5, N, R),
11083		  (   var(R)
11084		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11085				S),
11086		      S=[_|T],
11087		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11088			       T),
11089		      (   T=[U|_]
11090		      ->  setarg(5, U, _)
11091		      ;   true
11092		      )
11093		  ;   R=[_, _|T],
11094		      setarg(2, R, T),
11095		      (   T=[U|_]
11096		      ->  setarg(5, U, R)
11097		      ;   true
11098		      )
11099		  )
11100		),
11101		'detach_known/1_1_$special_float/1___1'(Q, N)
11102	    )
11103	),
11104	'known/1_1_$special_fail/0'.
11105'known/1_1_$special_float/1___1__1'(A, E) :-
11106	(   'chr newvia_1'(A, B)
11107	->  get_attr(B, guard_entailment, C),
11108	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
11109	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11110		      D)
11111	), !,
11112	'known/1_1_$special_float/1___1__1__0__8'(D, A, E).
11113'known/1_1_$special_float/1___1__1__0__8'([], A, B) :-
11114	'known/1_1_$special_float/1___1__2'(A, B).
11115'known/1_1_$special_float/1___1__1__0__8'([A|W], E, M) :-
11116	(   A=suspension(_, active, _, _, B, V),
11117	    nonvar(B),
11118	    B=(\+C),
11119	    nonvar(C),
11120	    C=float(D),
11121	    D==E
11122	->  ( A=suspension(_, _, _, _, F, G),
11123	      setarg(2, A, removed),
11124	      term_variables(term(F, G), L),
11125	      ( arg(4, A, H),
11126		(   var(H)
11127		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11128			      I),
11129		    I=[_|J],
11130		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11131			     J),
11132		    (   J=[K|_]
11133		    ->  setarg(4, K, _)
11134		    ;   true
11135		    )
11136		;   H=[_, _|J],
11137		    setarg(2, H, J),
11138		    (   J=[K|_]
11139		    ->  setarg(4, K, H)
11140		    ;   true
11141		    )
11142		)
11143	      ),
11144	      'detach_known/1_1_$special_;/2___2'(L, A)
11145	    ),
11146	    ( arg(2, M, P),
11147	      setarg(2, M, active),
11148	      ( arg(4, M, N),
11149		O is N+1,
11150		setarg(4, M, O)
11151	      ),
11152	      (   P==not_stored_yet
11153	      ->  M=suspension(_, _, _, _, _, Q),
11154		  term_variables(Q, R),
11155		  'chr none_locked'(R),
11156		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11157			      S),
11158		    T=[M|S],
11159		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11160			     T),
11161		    (   S=[U|_]
11162		    ->  setarg(5, U, T)
11163		    ;   true
11164		    )
11165		  ),
11166		  'attach_known/1_1_$special_float/1___1'(R, M)
11167	      ;   true
11168	      )
11169	    ),
11170	    known(V),
11171	    (   M=suspension(_, active, _, O, _, _)
11172	    ->  setarg(2, M, inactive),
11173		'known/1_1_$special_float/1___1__1__0__8'(W,
11174							  E,
11175							  M)
11176	    ;   true
11177	    )
11178	;   'known/1_1_$special_float/1___1__1__0__8'(W, E, M)
11179	).
11180'known/1_1_$special_float/1___1__1'(A, B) :-
11181	'known/1_1_$special_float/1___1__2'(A, B).
11182'known/1_1_$special_float/1___1__2'(A, E) :-
11183	(   'chr newvia_1'(A, B)
11184	->  get_attr(B, guard_entailment, C),
11185	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
11186	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11187		      D)
11188	), !,
11189	'known/1_1_$special_float/1___1__2__0__9'(D, A, E).
11190'known/1_1_$special_float/1___1__2__0__9'([], A, B) :-
11191	'known/1_1_$special_float/1___1__3'(A, B).
11192'known/1_1_$special_float/1___1__2__0__9'([A|X], F, N) :-
11193	(   A=suspension(_, active, _, _, B, W),
11194	    nonvar(B),
11195	    B=(C, _),
11196	    nonvar(C),
11197	    C=(\+D),
11198	    nonvar(D),
11199	    D=float(E),
11200	    E==F
11201	->  ( A=suspension(_, _, _, _, G, H),
11202	      setarg(2, A, removed),
11203	      term_variables(term(G, H), M),
11204	      ( arg(4, A, I),
11205		(   var(I)
11206		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11207			      J),
11208		    J=[_|K],
11209		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11210			     K),
11211		    (   K=[L|_]
11212		    ->  setarg(4, L, _)
11213		    ;   true
11214		    )
11215		;   I=[_, _|K],
11216		    setarg(2, I, K),
11217		    (   K=[L|_]
11218		    ->  setarg(4, L, I)
11219		    ;   true
11220		    )
11221		)
11222	      ),
11223	      'detach_known/1_1_$special_;/2___2'(M, A)
11224	    ),
11225	    ( arg(2, N, Q),
11226	      setarg(2, N, active),
11227	      ( arg(4, N, O),
11228		P is O+1,
11229		setarg(4, N, P)
11230	      ),
11231	      (   Q==not_stored_yet
11232	      ->  N=suspension(_, _, _, _, _, R),
11233		  term_variables(R, S),
11234		  'chr none_locked'(S),
11235		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11236			      T),
11237		    U=[N|T],
11238		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11239			     U),
11240		    (   T=[V|_]
11241		    ->  setarg(5, V, U)
11242		    ;   true
11243		    )
11244		  ),
11245		  'attach_known/1_1_$special_float/1___1'(S, N)
11246	      ;   true
11247	      )
11248	    ),
11249	    known(W),
11250	    (   N=suspension(_, active, _, P, _, _)
11251	    ->  setarg(2, N, inactive),
11252		'known/1_1_$special_float/1___1__2__0__9'(X,
11253							  F,
11254							  N)
11255	    ;   true
11256	    )
11257	;   'known/1_1_$special_float/1___1__2__0__9'(X, F, N)
11258	).
11259'known/1_1_$special_float/1___1__2'(A, B) :-
11260	'known/1_1_$special_float/1___1__3'(A, B).
11261'known/1_1_$special_float/1___1__3'(_, A) :-
11262	arg(2, A, D),
11263	setarg(2, A, active),
11264	arg(4, A, B),
11265	C is B+1,
11266	setarg(4, A, C),
11267	(   D==not_stored_yet
11268	->  A=suspension(_, _, _, _, _, E),
11269	    term_variables(E, F),
11270	    'chr none_locked'(F),
11271	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11272			G),
11273	      H=[A|G],
11274	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
11275		       H),
11276	      (   G=[I|_]
11277	      ->  setarg(5, I, H)
11278	      ;   true
11279	      )
11280	    ),
11281	    'attach_known/1_1_$special_float/1___1'(F, A)
11282	;   true
11283	).
11284'known/1_1_$special_number/1'(A) :-
11285	'known/1_1_$special_number/1___1__0'(A, _).
11286'known/1_1_$special_number/1___1__0'(A, G) :-
11287	(   'chr newvia_1'(A, B)
11288	->  get_attr(B, guard_entailment, C),
11289	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _)
11290	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11291		      D)
11292	),
11293	member(E, D),
11294	E=suspension(_, active, _, _, _, F),
11295	F==A, !,
11296	(   var(G)
11297	->  true
11298	;   G=suspension(_, H, _, _, _, I),
11299	    setarg(2, G, removed),
11300	    (   H==not_stored_yet
11301	    ->  J=[]
11302	    ;   term_variables(I, J),
11303		( arg(5, G, K),
11304		  (   var(K)
11305		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11306				L),
11307		      L=[_|M],
11308		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11309			       M),
11310		      (   M=[N|_]
11311		      ->  setarg(5, N, _)
11312		      ;   true
11313		      )
11314		  ;   K=[_, _|M],
11315		      setarg(2, K, M),
11316		      (   M=[N|_]
11317		      ->  setarg(5, N, K)
11318		      ;   true
11319		      )
11320		  )
11321		),
11322		'detach_known/1_1_$special_number/1___1'(J, G)
11323	    )
11324	).
11325'known/1_1_$special_number/1___1__0'(_, C) :-
11326	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
11327		  A),
11328	member(B, A),
11329	B=suspension(_, active, _), !,
11330	(   var(C)
11331	->  true
11332	;   C=suspension(_, D, _, _, _, E),
11333	    setarg(2, C, removed),
11334	    (   D==not_stored_yet
11335	    ->  F=[]
11336	    ;   term_variables(E, F),
11337		( arg(5, C, G),
11338		  (   var(G)
11339		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11340				H),
11341		      H=[_|I],
11342		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11343			       I),
11344		      (   I=[J|_]
11345		      ->  setarg(5, J, _)
11346		      ;   true
11347		      )
11348		  ;   G=[_, _|I],
11349		      setarg(2, G, I),
11350		      (   I=[J|_]
11351		      ->  setarg(5, J, G)
11352		      ;   true
11353		      )
11354		  )
11355		),
11356		'detach_known/1_1_$special_number/1___1'(F, C)
11357	    )
11358	).
11359'known/1_1_$special_number/1___1__0'(A, B) :-
11360	nonvar(A),
11361	\+ number(A), !,
11362	(   var(B)
11363	->  true
11364	;   B=suspension(_, C, _, _, _, D),
11365	    setarg(2, B, removed),
11366	    (   C==not_stored_yet
11367	    ->  E=[]
11368	    ;   term_variables(D, E),
11369		( arg(5, B, F),
11370		  (   var(F)
11371		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11372				G),
11373		      G=[_|H],
11374		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11375			       H),
11376		      (   H=[I|_]
11377		      ->  setarg(5, I, _)
11378		      ;   true
11379		      )
11380		  ;   F=[_, _|H],
11381		      setarg(2, F, H),
11382		      (   H=[I|_]
11383		      ->  setarg(5, I, F)
11384		      ;   true
11385		      )
11386		  )
11387		),
11388		'detach_known/1_1_$special_number/1___1'(E, B)
11389	    )
11390	),
11391	'known/1_1_$special_fail/0'.
11392'known/1_1_$special_number/1___1__0'(A, N) :-
11393	(   'chr newvia_1'(A, B)
11394	->  get_attr(B, guard_entailment, C),
11395	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
11396	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
11397		      D)
11398	),
11399	member(E, D),
11400	E=suspension(_, active, _, _, F),
11401	nonvar(F),
11402	F=number(G),
11403	G==A, !,
11404	E=suspension(_, _, _, _, H),
11405	setarg(2, E, removed),
11406	term_variables(H, M),
11407	arg(4, E, I),
11408	(   var(I)
11409	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
11410		      J),
11411	    J=[_|K],
11412	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
11413		     K),
11414	    (   K=[L|_]
11415	    ->  setarg(4, L, _)
11416	    ;   true
11417	    )
11418	;   I=[_, _|K],
11419	    setarg(2, I, K),
11420	    (   K=[L|_]
11421	    ->  setarg(4, L, I)
11422	    ;   true
11423	    )
11424	),
11425	'detach_known/1_1_$special_\\+/1___1'(M, E),
11426	(   var(N)
11427	->  true
11428	;   N=suspension(_, O, _, _, _, P),
11429	    setarg(2, N, removed),
11430	    (   O==not_stored_yet
11431	    ->  Q=[]
11432	    ;   term_variables(P, Q),
11433		( arg(5, N, R),
11434		  (   var(R)
11435		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11436				S),
11437		      S=[_|T],
11438		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11439			       T),
11440		      (   T=[U|_]
11441		      ->  setarg(5, U, _)
11442		      ;   true
11443		      )
11444		  ;   R=[_, _|T],
11445		      setarg(2, R, T),
11446		      (   T=[U|_]
11447		      ->  setarg(5, U, R)
11448		      ;   true
11449		      )
11450		  )
11451		),
11452		'detach_known/1_1_$special_number/1___1'(Q, N)
11453	    )
11454	),
11455	'known/1_1_$special_fail/0'.
11456'known/1_1_$special_number/1___1__0'(B, A) :-
11457	(   var(A)
11458	->  A=suspension(C, not_stored_yet, t, 0, _, B),
11459	    'chr gen_id'(C)
11460	;   true
11461	),
11462	(   '$novel_production'(A, 238), !,
11463	    '$extend_history'(A, 238),
11464	    arg(2, A, F),
11465	    setarg(2, A, active),
11466	    arg(4, A, D),
11467	    E is D+1,
11468	    setarg(4, A, E),
11469	    (   F==not_stored_yet
11470	    ->  A=suspension(_, _, _, _, _, G),
11471		term_variables(G, H),
11472		'chr none_locked'(H),
11473		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11474			    I),
11475		  J=[A|I],
11476		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11477			   J),
11478		  (   I=[K|_]
11479		  ->  setarg(5, K, J)
11480		  ;   true
11481		  )
11482		),
11483		'attach_known/1_1_$special_number/1___1'(H, A)
11484	    ;   true
11485	    ),
11486	    'known/1_1_$special_nonvar/1'(B),
11487	    (   A=suspension(_, active, _, E, _, _)
11488	    ->  setarg(2, A, inactive),
11489		'known/1_1_$special_number/1___1__1'(B, A)
11490	    ;   true
11491	    )
11492	;   'known/1_1_$special_number/1___1__1'(B, A)
11493	).
11494'known/1_1_$special_number/1___1__1'(A, E) :-
11495	(   'chr newvia_1'(A, B)
11496	->  get_attr(B, guard_entailment, C),
11497	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
11498	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11499		      D)
11500	), !,
11501	'known/1_1_$special_number/1___1__1__0__8'(D, A, E).
11502'known/1_1_$special_number/1___1__1__0__8'([], A, B) :-
11503	'known/1_1_$special_number/1___1__2'(A, B).
11504'known/1_1_$special_number/1___1__1__0__8'([A|W], E, M) :-
11505	(   A=suspension(_, active, _, _, B, V),
11506	    nonvar(B),
11507	    B=(\+C),
11508	    nonvar(C),
11509	    C=number(D),
11510	    D==E
11511	->  ( A=suspension(_, _, _, _, F, G),
11512	      setarg(2, A, removed),
11513	      term_variables(term(F, G), L),
11514	      ( arg(4, A, H),
11515		(   var(H)
11516		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11517			      I),
11518		    I=[_|J],
11519		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11520			     J),
11521		    (   J=[K|_]
11522		    ->  setarg(4, K, _)
11523		    ;   true
11524		    )
11525		;   H=[_, _|J],
11526		    setarg(2, H, J),
11527		    (   J=[K|_]
11528		    ->  setarg(4, K, H)
11529		    ;   true
11530		    )
11531		)
11532	      ),
11533	      'detach_known/1_1_$special_;/2___2'(L, A)
11534	    ),
11535	    ( arg(2, M, P),
11536	      setarg(2, M, active),
11537	      ( arg(4, M, N),
11538		O is N+1,
11539		setarg(4, M, O)
11540	      ),
11541	      (   P==not_stored_yet
11542	      ->  M=suspension(_, _, _, _, _, Q),
11543		  term_variables(Q, R),
11544		  'chr none_locked'(R),
11545		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11546			      S),
11547		    T=[M|S],
11548		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11549			     T),
11550		    (   S=[U|_]
11551		    ->  setarg(5, U, T)
11552		    ;   true
11553		    )
11554		  ),
11555		  'attach_known/1_1_$special_number/1___1'(R, M)
11556	      ;   true
11557	      )
11558	    ),
11559	    known(V),
11560	    (   M=suspension(_, active, _, O, _, _)
11561	    ->  setarg(2, M, inactive),
11562		'known/1_1_$special_number/1___1__1__0__8'(W,
11563							   E,
11564							   M)
11565	    ;   true
11566	    )
11567	;   'known/1_1_$special_number/1___1__1__0__8'(W,
11568						       E,
11569						       M)
11570	).
11571'known/1_1_$special_number/1___1__1'(A, B) :-
11572	'known/1_1_$special_number/1___1__2'(A, B).
11573'known/1_1_$special_number/1___1__2'(A, E) :-
11574	(   'chr newvia_1'(A, B)
11575	->  get_attr(B, guard_entailment, C),
11576	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
11577	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11578		      D)
11579	), !,
11580	'known/1_1_$special_number/1___1__2__0__9'(D, A, E).
11581'known/1_1_$special_number/1___1__2__0__9'([], A, B) :-
11582	'known/1_1_$special_number/1___1__3'(A, B).
11583'known/1_1_$special_number/1___1__2__0__9'([A|X], F, N) :-
11584	(   A=suspension(_, active, _, _, B, W),
11585	    nonvar(B),
11586	    B=(C, _),
11587	    nonvar(C),
11588	    C=(\+D),
11589	    nonvar(D),
11590	    D=number(E),
11591	    E==F
11592	->  ( A=suspension(_, _, _, _, G, H),
11593	      setarg(2, A, removed),
11594	      term_variables(term(G, H), M),
11595	      ( arg(4, A, I),
11596		(   var(I)
11597		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11598			      J),
11599		    J=[_|K],
11600		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
11601			     K),
11602		    (   K=[L|_]
11603		    ->  setarg(4, L, _)
11604		    ;   true
11605		    )
11606		;   I=[_, _|K],
11607		    setarg(2, I, K),
11608		    (   K=[L|_]
11609		    ->  setarg(4, L, I)
11610		    ;   true
11611		    )
11612		)
11613	      ),
11614	      'detach_known/1_1_$special_;/2___2'(M, A)
11615	    ),
11616	    ( arg(2, N, Q),
11617	      setarg(2, N, active),
11618	      ( arg(4, N, O),
11619		P is O+1,
11620		setarg(4, N, P)
11621	      ),
11622	      (   Q==not_stored_yet
11623	      ->  N=suspension(_, _, _, _, _, R),
11624		  term_variables(R, S),
11625		  'chr none_locked'(S),
11626		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11627			      T),
11628		    U=[N|T],
11629		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11630			     U),
11631		    (   T=[V|_]
11632		    ->  setarg(5, V, U)
11633		    ;   true
11634		    )
11635		  ),
11636		  'attach_known/1_1_$special_number/1___1'(S, N)
11637	      ;   true
11638	      )
11639	    ),
11640	    known(W),
11641	    (   N=suspension(_, active, _, P, _, _)
11642	    ->  setarg(2, N, inactive),
11643		'known/1_1_$special_number/1___1__2__0__9'(X,
11644							   F,
11645							   N)
11646	    ;   true
11647	    )
11648	;   'known/1_1_$special_number/1___1__2__0__9'(X,
11649						       F,
11650						       N)
11651	).
11652'known/1_1_$special_number/1___1__2'(A, B) :-
11653	'known/1_1_$special_number/1___1__3'(A, B).
11654'known/1_1_$special_number/1___1__3'(_, A) :-
11655	arg(2, A, D),
11656	setarg(2, A, active),
11657	arg(4, A, B),
11658	C is B+1,
11659	setarg(4, A, C),
11660	(   D==not_stored_yet
11661	->  A=suspension(_, _, _, _, _, E),
11662	    term_variables(E, F),
11663	    'chr none_locked'(F),
11664	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11665			G),
11666	      H=[A|G],
11667	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
11668		       H),
11669	      (   G=[I|_]
11670	      ->  setarg(5, I, H)
11671	      ;   true
11672	      )
11673	    ),
11674	    'attach_known/1_1_$special_number/1___1'(F, A)
11675	;   true
11676	).
11677'known/1_1_$special_=\\=/2'(A, B) :-
11678	'known/1_1_$special_=\\=/2___2__0'(A, B, _).
11679'known/1_1_$special_=\\=/2___2__0'(A, B, I) :-
11680	(   'chr newvia_2'(A, B, C)
11681	->  get_attr(C, guard_entailment, D),
11682	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _, _)
11683	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11684		      E)
11685	),
11686	member(F, E),
11687	F=suspension(_, active, _, _, _, G, H),
11688	G==A,
11689	H==B, !,
11690	(   var(I)
11691	->  true
11692	;   I=suspension(_, J, _, _, _, K, L),
11693	    setarg(2, I, removed),
11694	    (   J==not_stored_yet
11695	    ->  M=[]
11696	    ;   term_variables(term(K, L), M),
11697		( arg(5, I, N),
11698		  (   var(N)
11699		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11700				O),
11701		      O=[_|P],
11702		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11703			       P),
11704		      (   P=[Q|_]
11705		      ->  setarg(5, Q, _)
11706		      ;   true
11707		      )
11708		  ;   N=[_, _|P],
11709		      setarg(2, N, P),
11710		      (   P=[Q|_]
11711		      ->  setarg(5, Q, N)
11712		      ;   true
11713		      )
11714		  )
11715		),
11716		'detach_known/1_1_$special_=\\=/2___2'(M, I)
11717	    )
11718	).
11719'known/1_1_$special_=\\=/2___2__0'(_, _, C) :-
11720	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
11721		  A),
11722	member(B, A),
11723	B=suspension(_, active, _), !,
11724	(   var(C)
11725	->  true
11726	;   C=suspension(_, D, _, _, _, E, F),
11727	    setarg(2, C, removed),
11728	    (   D==not_stored_yet
11729	    ->  G=[]
11730	    ;   term_variables(term(E, F), G),
11731		( arg(5, C, H),
11732		  (   var(H)
11733		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11734				I),
11735		      I=[_|J],
11736		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11737			       J),
11738		      (   J=[K|_]
11739		      ->  setarg(5, K, _)
11740		      ;   true
11741		      )
11742		  ;   H=[_, _|J],
11743		      setarg(2, H, J),
11744		      (   J=[K|_]
11745		      ->  setarg(5, K, H)
11746		      ;   true
11747		      )
11748		  )
11749		),
11750		'detach_known/1_1_$special_=\\=/2___2'(G, C)
11751	    )
11752	).
11753'known/1_1_$special_=\\=/2___2__0'(F, A, E) :-
11754	(   'chr newvia_1'(A, B)
11755	->  get_attr(B, guard_entailment, C),
11756	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _)
11757	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11758		      D)
11759	), !,
11760	(   var(E)
11761	->  E=suspension(G, not_stored_yet, t, 0, _, F, A),
11762	    'chr gen_id'(G)
11763	;   true
11764	),
11765	'known/1_1_$special_=\\=/2___2__0__0__5'(D, F, A, E).
11766'known/1_1_$special_=\\=/2___2__0__0__5'([], A, B, C) :-
11767	'known/1_1_$special_=\\=/2___2__1'(A, B, C).
11768'known/1_1_$special_=\\=/2___2__0__0__5'([A|H], I, C, J) :-
11769	(   ( A=suspension(_, active, _, _, _, B, D),
11770	      B==C
11771	    ),
11772	    (   'chr newvia_2'(C, D, E)
11773	    ->  get_attr(E, guard_entailment, F),
11774		F=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, G, _)
11775	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
11776			  G)
11777	    )
11778	->  'known/1_1_$special_=\\=/2___2__0__1__5'(G,
11779						     D,
11780						     A,
11781						     H,
11782						     I,
11783						     C,
11784						     J)
11785	;   'known/1_1_$special_=\\=/2___2__0__0__5'(H,
11786						     I,
11787						     C,
11788						     J)
11789	).
11790'known/1_1_$special_=\\=/2___2__0__1__5'([], _, _, A, B, C, D) :-
11791	'known/1_1_$special_=\\=/2___2__0__0__5'(A, B, C, D).
11792'known/1_1_$special_=\\=/2___2__0__1__5'([A|J], E, K, L, F, C, M) :-
11793	(   ( A=suspension(_, active, _, _, _, B, D),
11794	      B==C,
11795	      D==E
11796	    ),
11797	    (   'chr newvia_2'(F, C, G)
11798	    ->  get_attr(G, guard_entailment, H),
11799		H=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, I, _)
11800	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
11801			  I)
11802	    )
11803	->  'known/1_1_$special_=\\=/2___2__0__2__5'(I,
11804						     A,
11805						     J,
11806						     E,
11807						     K,
11808						     L,
11809						     F,
11810						     C,
11811						     M)
11812	;   'known/1_1_$special_=\\=/2___2__0__1__5'(J,
11813						     E,
11814						     K,
11815						     L,
11816						     F,
11817						     C,
11818						     M)
11819	).
11820'known/1_1_$special_=\\=/2___2__0__2__5'([], _, A, B, C, D, E, F, G) :-
11821	'known/1_1_$special_=\\=/2___2__0__1__5'(A,
11822						 B,
11823						 C,
11824						 D,
11825						 E,
11826						 F,
11827						 G).
11828'known/1_1_$special_=\\=/2___2__0__2__5'([A|T], B, U, S, H, V, D, F, G) :-
11829	(   A=suspension(_, active, _, _, _, C, E),
11830	    A\==B,
11831	    ( C==D,
11832	      E==F
11833	    ),
11834	    I=t(188, A, G, B, H),
11835	    '$novel_production'(A, I),
11836	    '$novel_production'(G, I),
11837	    '$novel_production'(B, I),
11838	    '$novel_production'(H, I)
11839	->  '$extend_history'(G, I),
11840	    ( arg(2, G, L),
11841	      setarg(2, G, active),
11842	      ( arg(4, G, J),
11843		K is J+1,
11844		setarg(4, G, K)
11845	      ),
11846	      (   L==not_stored_yet
11847	      ->  G=suspension(_, _, _, _, _, M, N),
11848		  term_variables(term(M, N), O),
11849		  'chr none_locked'(O),
11850		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11851			      P),
11852		    Q=[G|P],
11853		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11854			     Q),
11855		    (   P=[R|_]
11856		    ->  setarg(5, R, Q)
11857		    ;   true
11858		    )
11859		  ),
11860		  'attach_known/1_1_$special_=\\=/2___2'(O, G)
11861	      ;   true
11862	      )
11863	    ),
11864	    'known/1_1_$special_=\\=/2'(D, S),
11865	    (   G=suspension(_, active, _, K, _, _, _)
11866	    ->  setarg(2, G, inactive),
11867		'known/1_1_$special_=\\=/2___2__0__2__5'(T,
11868							 B,
11869							 U,
11870							 S,
11871							 H,
11872							 V,
11873							 D,
11874							 F,
11875							 G)
11876	    ;   true
11877	    )
11878	;   'known/1_1_$special_=\\=/2___2__0__2__5'(T,
11879						     B,
11880						     U,
11881						     S,
11882						     H,
11883						     V,
11884						     D,
11885						     F,
11886						     G)
11887	).
11888'known/1_1_$special_=\\=/2___2__0'(B, C, A) :-
11889	(   var(A)
11890	->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
11891	    'chr gen_id'(D)
11892	;   true
11893	),
11894	'known/1_1_$special_=\\=/2___2__1'(B, C, A).
11895'known/1_1_$special_=\\=/2___2__1'(A, E, F) :-
11896	(   'chr newvia_1'(A, B)
11897	->  get_attr(B, guard_entailment, C),
11898	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
11899	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
11900		      D)
11901	), !,
11902	'known/1_1_$special_=\\=/2___2__1__0__6'(D, A, E, F).
11903'known/1_1_$special_=\\=/2___2__1__0__6'([], A, B, C) :-
11904	'known/1_1_$special_=\\=/2___2__2'(A, B, C).
11905'known/1_1_$special_=\\=/2___2__1__0__6'([A|I], C, D, J) :-
11906	(   ( A=suspension(_, active, _, _, _, H, B),
11907	      B==C
11908	    ),
11909	    (   'chr newvia_2'(C, D, E)
11910	    ->  get_attr(E, guard_entailment, F),
11911		F=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, G, _)
11912	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
11913			  G)
11914	    )
11915	->  'known/1_1_$special_=\\=/2___2__1__1__6'(G,
11916						     H,
11917						     A,
11918						     I,
11919						     C,
11920						     D,
11921						     J)
11922	;   'known/1_1_$special_=\\=/2___2__1__0__6'(I,
11923						     C,
11924						     D,
11925						     J)
11926	).
11927'known/1_1_$special_=\\=/2___2__1__1__6'([], _, _, A, B, C, D) :-
11928	'known/1_1_$special_=\\=/2___2__1__0__6'(A, B, C, D).
11929'known/1_1_$special_=\\=/2___2__1__1__6'([A|K], G, B, L, D, F, M) :-
11930	(   ( A=suspension(_, active, _, _, _, C, E),
11931	      A\==B,
11932	      C==D,
11933	      E==F
11934	    ),
11935	    (   'chr newvia_2'(G, D, H)
11936	    ->  get_attr(H, guard_entailment, I),
11937		I=v(_, _, _, _, _, _, _, _, _, _, _, _, _, J, _, _, _, _, _, _, _, _)
11938	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11939			  J)
11940	    )
11941	->  'known/1_1_$special_=\\=/2___2__1__2__6'(J,
11942						     A,
11943						     K,
11944						     G,
11945						     B,
11946						     L,
11947						     D,
11948						     F,
11949						     M)
11950	;   'known/1_1_$special_=\\=/2___2__1__1__6'(K,
11951						     G,
11952						     B,
11953						     L,
11954						     D,
11955						     F,
11956						     M)
11957	).
11958'known/1_1_$special_=\\=/2___2__1__2__6'([], _, A, B, C, D, E, F, G) :-
11959	'known/1_1_$special_=\\=/2___2__1__1__6'(A,
11960						 B,
11961						 C,
11962						 D,
11963						 E,
11964						 F,
11965						 G).
11966'known/1_1_$special_=\\=/2___2__1__2__6'([A|T], G, U, C, F, V, E, S, H) :-
11967	(   A=suspension(_, active, _, _, _, B, D),
11968	    ( B==C,
11969	      D==E
11970	    ),
11971	    I=t(188, F, A, G, H),
11972	    '$novel_production'(F, I),
11973	    '$novel_production'(A, I),
11974	    '$novel_production'(G, I),
11975	    '$novel_production'(H, I)
11976	->  '$extend_history'(H, I),
11977	    ( arg(2, H, L),
11978	      setarg(2, H, active),
11979	      ( arg(4, H, J),
11980		K is J+1,
11981		setarg(4, H, K)
11982	      ),
11983	      (   L==not_stored_yet
11984	      ->  H=suspension(_, _, _, _, _, M, N),
11985		  term_variables(term(M, N), O),
11986		  'chr none_locked'(O),
11987		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11988			      P),
11989		    Q=[H|P],
11990		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
11991			     Q),
11992		    (   P=[R|_]
11993		    ->  setarg(5, R, Q)
11994		    ;   true
11995		    )
11996		  ),
11997		  'attach_known/1_1_$special_=\\=/2___2'(O, H)
11998	      ;   true
11999	      )
12000	    ),
12001	    'known/1_1_$special_=\\=/2'(C, S),
12002	    (   H=suspension(_, active, _, K, _, _, _)
12003	    ->  setarg(2, H, inactive),
12004		'known/1_1_$special_=\\=/2___2__1__2__6'(T,
12005							 G,
12006							 U,
12007							 C,
12008							 F,
12009							 V,
12010							 E,
12011							 S,
12012							 H)
12013	    ;   true
12014	    )
12015	;   'known/1_1_$special_=\\=/2___2__1__2__6'(T,
12016						     G,
12017						     U,
12018						     C,
12019						     F,
12020						     V,
12021						     E,
12022						     S,
12023						     H)
12024	).
12025'known/1_1_$special_=\\=/2___2__1'(A, B, C) :-
12026	'known/1_1_$special_=\\=/2___2__2'(A, B, C).
12027'known/1_1_$special_=\\=/2___2__2'(B, A, C) :-
12028	number(A),
12029	number(B),
12030	B=:=A, !,
12031	(   var(C)
12032	->  true
12033	;   C=suspension(_, D, _, _, _, E, F),
12034	    setarg(2, C, removed),
12035	    (   D==not_stored_yet
12036	    ->  G=[]
12037	    ;   term_variables(term(E, F), G),
12038		( arg(5, C, H),
12039		  (   var(H)
12040		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12041				I),
12042		      I=[_|J],
12043		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12044			       J),
12045		      (   J=[K|_]
12046		      ->  setarg(5, K, _)
12047		      ;   true
12048		      )
12049		  ;   H=[_, _|J],
12050		      setarg(2, H, J),
12051		      (   J=[K|_]
12052		      ->  setarg(5, K, H)
12053		      ;   true
12054		      )
12055		  )
12056		),
12057		'detach_known/1_1_$special_=\\=/2___2'(G, C)
12058	    )
12059	),
12060	'known/1_1_$special_fail/0'.
12061'known/1_1_$special_=\\=/2___2__2'(B, A, C) :-
12062	A==B, !,
12063	(   var(C)
12064	->  true
12065	;   C=suspension(_, D, _, _, _, E, F),
12066	    setarg(2, C, removed),
12067	    (   D==not_stored_yet
12068	    ->  G=[]
12069	    ;   term_variables(term(E, F), G),
12070		( arg(5, C, H),
12071		  (   var(H)
12072		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12073				I),
12074		      I=[_|J],
12075		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12076			       J),
12077		      (   J=[K|_]
12078		      ->  setarg(5, K, _)
12079		      ;   true
12080		      )
12081		  ;   H=[_, _|J],
12082		      setarg(2, H, J),
12083		      (   J=[K|_]
12084		      ->  setarg(5, K, H)
12085		      ;   true
12086		      )
12087		  )
12088		),
12089		'detach_known/1_1_$special_=\\=/2___2'(G, C)
12090	    )
12091	),
12092	'known/1_1_$special_fail/0'.
12093'known/1_1_$special_=\\=/2___2__2'(A, B, P) :-
12094	(   'chr newvia_2'(A, B, C)
12095	->  get_attr(C, guard_entailment, D),
12096	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
12097	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
12098		      E)
12099	),
12100	member(F, E),
12101	F=suspension(_, active, _, _, _, G, H),
12102	G==A,
12103	H==B, !,
12104	F=suspension(_, _, _, _, _, I, J),
12105	setarg(2, F, removed),
12106	term_variables(term(I, J), O),
12107	arg(5, F, K),
12108	(   var(K)
12109	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
12110		      L),
12111	    L=[_|M],
12112	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
12113		     M),
12114	    (   M=[N|_]
12115	    ->  setarg(5, N, _)
12116	    ;   true
12117	    )
12118	;   K=[_, _|M],
12119	    setarg(2, K, M),
12120	    (   M=[N|_]
12121	    ->  setarg(5, N, K)
12122	    ;   true
12123	    )
12124	),
12125	'detach_known/1_1_$special_=:=/2___2'(O, F),
12126	(   var(P)
12127	->  true
12128	;   P=suspension(_, Q, _, _, _, R, S),
12129	    setarg(2, P, removed),
12130	    (   Q==not_stored_yet
12131	    ->  T=[]
12132	    ;   term_variables(term(R, S), T),
12133		( arg(5, P, U),
12134		  (   var(U)
12135		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12136				V),
12137		      V=[_|W],
12138		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12139			       W),
12140		      (   W=[X|_]
12141		      ->  setarg(5, X, _)
12142		      ;   true
12143		      )
12144		  ;   U=[_, _|W],
12145		      setarg(2, U, W),
12146		      (   W=[X|_]
12147		      ->  setarg(5, X, U)
12148		      ;   true
12149		      )
12150		  )
12151		),
12152		'detach_known/1_1_$special_=\\=/2___2'(T, P)
12153	    )
12154	),
12155	'known/1_1_$special_fail/0'.
12156'known/1_1_$special_=\\=/2___2__2'(L, K, A) :-
12157	'$novel_production'(A, 195), !,
12158	'$extend_history'(A, 195),
12159	arg(2, A, D),
12160	setarg(2, A, active),
12161	arg(4, A, B),
12162	C is B+1,
12163	setarg(4, A, C),
12164	(   D==not_stored_yet
12165	->  A=suspension(_, _, _, _, _, E, F),
12166	    term_variables(term(E, F), G),
12167	    'chr none_locked'(G),
12168	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12169			H),
12170	      I=[A|H],
12171	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12172		       I),
12173	      (   H=[J|_]
12174	      ->  setarg(5, J, I)
12175	      ;   true
12176	      )
12177	    ),
12178	    'attach_known/1_1_$special_=\\=/2___2'(G, A)
12179	;   true
12180	),
12181	'known/1_1_$special_=\\=/2'(K, L),
12182	(   A=suspension(_, active, _, C, _, _, _)
12183	->  setarg(2, A, inactive),
12184	    'known/1_1_$special_=\\=/2___2__3'(L, K, A)
12185	;   true
12186	).
12187'known/1_1_$special_=\\=/2___2__2'(A, B, C) :-
12188	'known/1_1_$special_=\\=/2___2__3'(A, B, C).
12189'known/1_1_$special_=\\=/2___2__3'(A, B, P) :-
12190	(   'chr newvia_2'(A, B, C)
12191	->  get_attr(C, guard_entailment, D),
12192	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
12193	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12194		      E)
12195	),
12196	member(F, E),
12197	F=suspension(_, active, _, _, G),
12198	nonvar(G),
12199	G=(H=\=I),
12200	H==A,
12201	I==B, !,
12202	F=suspension(_, _, _, _, J),
12203	setarg(2, F, removed),
12204	term_variables(J, O),
12205	arg(4, F, K),
12206	(   var(K)
12207	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12208		      L),
12209	    L=[_|M],
12210	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12211		     M),
12212	    (   M=[N|_]
12213	    ->  setarg(4, N, _)
12214	    ;   true
12215	    )
12216	;   K=[_, _|M],
12217	    setarg(2, K, M),
12218	    (   M=[N|_]
12219	    ->  setarg(4, N, K)
12220	    ;   true
12221	    )
12222	),
12223	'detach_known/1_1_$special_\\+/1___1'(O, F),
12224	(   var(P)
12225	->  true
12226	;   P=suspension(_, Q, _, _, _, R, S),
12227	    setarg(2, P, removed),
12228	    (   Q==not_stored_yet
12229	    ->  T=[]
12230	    ;   term_variables(term(R, S), T),
12231		( arg(5, P, U),
12232		  (   var(U)
12233		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12234				V),
12235		      V=[_|W],
12236		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12237			       W),
12238		      (   W=[X|_]
12239		      ->  setarg(5, X, _)
12240		      ;   true
12241		      )
12242		  ;   U=[_, _|W],
12243		      setarg(2, U, W),
12244		      (   W=[X|_]
12245		      ->  setarg(5, X, U)
12246		      ;   true
12247		      )
12248		  )
12249		),
12250		'detach_known/1_1_$special_=\\=/2___2'(T, P)
12251	    )
12252	),
12253	'known/1_1_$special_fail/0'.
12254'known/1_1_$special_=\\=/2___2__3'(A, B, F) :-
12255	(   'chr newvia_2'(A, B, C)
12256	->  get_attr(C, guard_entailment, D),
12257	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12258	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12259		      E)
12260	), !,
12261	'known/1_1_$special_=\\=/2___2__3__0__12'(E,
12262						  A,
12263						  B,
12264						  F).
12265'known/1_1_$special_=\\=/2___2__3__0__12'([], A, B, C) :-
12266	'known/1_1_$special_=\\=/2___2__4'(A, B, C).
12267'known/1_1_$special_=\\=/2___2__3__0__12'([A|Z], E, G, O) :-
12268	(   A=suspension(_, active, _, _, B, Y),
12269	    nonvar(B),
12270	    B=(\+C),
12271	    nonvar(C),
12272	    C=(D=\=F),
12273	    D==E,
12274	    F==G
12275	->  ( A=suspension(_, _, _, _, H, I),
12276	      setarg(2, A, removed),
12277	      term_variables(term(H, I), N),
12278	      ( arg(4, A, J),
12279		(   var(J)
12280		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12281			      K),
12282		    K=[_|L],
12283		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12284			     L),
12285		    (   L=[M|_]
12286		    ->  setarg(4, M, _)
12287		    ;   true
12288		    )
12289		;   J=[_, _|L],
12290		    setarg(2, J, L),
12291		    (   L=[M|_]
12292		    ->  setarg(4, M, J)
12293		    ;   true
12294		    )
12295		)
12296	      ),
12297	      'detach_known/1_1_$special_;/2___2'(N, A)
12298	    ),
12299	    ( arg(2, O, R),
12300	      setarg(2, O, active),
12301	      ( arg(4, O, P),
12302		Q is P+1,
12303		setarg(4, O, Q)
12304	      ),
12305	      (   R==not_stored_yet
12306	      ->  O=suspension(_, _, _, _, _, S, T),
12307		  term_variables(term(S, T), U),
12308		  'chr none_locked'(U),
12309		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12310			      V),
12311		    W=[O|V],
12312		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12313			     W),
12314		    (   V=[X|_]
12315		    ->  setarg(5, X, W)
12316		    ;   true
12317		    )
12318		  ),
12319		  'attach_known/1_1_$special_=\\=/2___2'(U, O)
12320	      ;   true
12321	      )
12322	    ),
12323	    known(Y),
12324	    (   O=suspension(_, active, _, Q, _, _, _)
12325	    ->  setarg(2, O, inactive),
12326		'known/1_1_$special_=\\=/2___2__3__0__12'(Z,
12327							  E,
12328							  G,
12329							  O)
12330	    ;   true
12331	    )
12332	;   'known/1_1_$special_=\\=/2___2__3__0__12'(Z,
12333						      E,
12334						      G,
12335						      O)
12336	).
12337'known/1_1_$special_=\\=/2___2__3'(A, B, C) :-
12338	'known/1_1_$special_=\\=/2___2__4'(A, B, C).
12339'known/1_1_$special_=\\=/2___2__4'(A, B, F) :-
12340	(   'chr newvia_2'(A, B, C)
12341	->  get_attr(C, guard_entailment, D),
12342	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12343	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12344		      E)
12345	), !,
12346	'known/1_1_$special_=\\=/2___2__4__0__13'(E,
12347						  A,
12348						  B,
12349						  F).
12350'known/1_1_$special_=\\=/2___2__4__0__13'([], A, B, C) :-
12351	'known/1_1_$special_=\\=/2___2__5'(A, B, C).
12352'known/1_1_$special_=\\=/2___2__4__0__13'([A|A1], F, H, P) :-
12353	(   A=suspension(_, active, _, _, B, Z),
12354	    nonvar(B),
12355	    B=(C, _),
12356	    nonvar(C),
12357	    C=(\+D),
12358	    nonvar(D),
12359	    D=(E=\=G),
12360	    E==F,
12361	    G==H
12362	->  ( A=suspension(_, _, _, _, I, J),
12363	      setarg(2, A, removed),
12364	      term_variables(term(I, J), O),
12365	      ( arg(4, A, K),
12366		(   var(K)
12367		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12368			      L),
12369		    L=[_|M],
12370		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12371			     M),
12372		    (   M=[N|_]
12373		    ->  setarg(4, N, _)
12374		    ;   true
12375		    )
12376		;   K=[_, _|M],
12377		    setarg(2, K, M),
12378		    (   M=[N|_]
12379		    ->  setarg(4, N, K)
12380		    ;   true
12381		    )
12382		)
12383	      ),
12384	      'detach_known/1_1_$special_;/2___2'(O, A)
12385	    ),
12386	    ( arg(2, P, S),
12387	      setarg(2, P, active),
12388	      ( arg(4, P, Q),
12389		R is Q+1,
12390		setarg(4, P, R)
12391	      ),
12392	      (   S==not_stored_yet
12393	      ->  P=suspension(_, _, _, _, _, T, U),
12394		  term_variables(term(T, U), V),
12395		  'chr none_locked'(V),
12396		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12397			      W),
12398		    X=[P|W],
12399		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12400			     X),
12401		    (   W=[Y|_]
12402		    ->  setarg(5, Y, X)
12403		    ;   true
12404		    )
12405		  ),
12406		  'attach_known/1_1_$special_=\\=/2___2'(V, P)
12407	      ;   true
12408	      )
12409	    ),
12410	    known(Z),
12411	    (   P=suspension(_, active, _, R, _, _, _)
12412	    ->  setarg(2, P, inactive),
12413		'known/1_1_$special_=\\=/2___2__4__0__13'(A1,
12414							  F,
12415							  H,
12416							  P)
12417	    ;   true
12418	    )
12419	;   'known/1_1_$special_=\\=/2___2__4__0__13'(A1,
12420						      F,
12421						      H,
12422						      P)
12423	).
12424'known/1_1_$special_=\\=/2___2__4'(A, B, C) :-
12425	'known/1_1_$special_=\\=/2___2__5'(A, B, C).
12426'known/1_1_$special_=\\=/2___2__5'(_, _, A) :-
12427	arg(2, A, D),
12428	setarg(2, A, active),
12429	arg(4, A, B),
12430	C is B+1,
12431	setarg(4, A, C),
12432	(   D==not_stored_yet
12433	->  A=suspension(_, _, _, _, _, E, F),
12434	    term_variables(term(E, F), G),
12435	    'chr none_locked'(G),
12436	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12437			H),
12438	      I=[A|H],
12439	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
12440		       I),
12441	      (   H=[J|_]
12442	      ->  setarg(5, J, I)
12443	      ;   true
12444	      )
12445	    ),
12446	    'attach_known/1_1_$special_=\\=/2___2'(G, A)
12447	;   true
12448	).
12449'known/1_1_$special_\\+/1'(A) :-
12450	'known/1_1_$special_\\+/1___1__0'(A, _).
12451'known/1_1_$special_\\+/1___1__0'(A, G) :-
12452	(   'chr newvia_1'(A, B)
12453	->  get_attr(B, guard_entailment, C),
12454	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
12455	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12456		      D)
12457	),
12458	member(E, D),
12459	E=suspension(_, active, _, _, F),
12460	F==A, !,
12461	(   var(G)
12462	->  true
12463	;   G=suspension(_, H, _, _, I),
12464	    setarg(2, G, removed),
12465	    (   H==not_stored_yet
12466	    ->  J=[]
12467	    ;   term_variables(I, J),
12468		( arg(4, G, K),
12469		  (   var(K)
12470		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12471				L),
12472		      L=[_|M],
12473		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12474			       M),
12475		      (   M=[N|_]
12476		      ->  setarg(4, N, _)
12477		      ;   true
12478		      )
12479		  ;   K=[_, _|M],
12480		      setarg(2, K, M),
12481		      (   M=[N|_]
12482		      ->  setarg(4, N, K)
12483		      ;   true
12484		      )
12485		  )
12486		),
12487		'detach_known/1_1_$special_\\+/1___1'(J, G)
12488	    )
12489	).
12490'known/1_1_$special_\\+/1___1__0'(_, C) :-
12491	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
12492		  A),
12493	member(B, A),
12494	B=suspension(_, active, _), !,
12495	(   var(C)
12496	->  true
12497	;   C=suspension(_, D, _, _, E),
12498	    setarg(2, C, removed),
12499	    (   D==not_stored_yet
12500	    ->  F=[]
12501	    ;   term_variables(E, F),
12502		( arg(4, C, G),
12503		  (   var(G)
12504		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12505				H),
12506		      H=[_|I],
12507		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12508			       I),
12509		      (   I=[J|_]
12510		      ->  setarg(4, J, _)
12511		      ;   true
12512		      )
12513		  ;   G=[_, _|I],
12514		      setarg(2, G, I),
12515		      (   I=[J|_]
12516		      ->  setarg(4, J, G)
12517		      ;   true
12518		      )
12519		  )
12520		),
12521		'detach_known/1_1_$special_\\+/1___1'(F, C)
12522	    )
12523	).
12524'known/1_1_$special_\\+/1___1__0'(A, E) :-
12525	nonvar(A),
12526	(   (   (   (   (   (   (   (   (   (   (   A=functor(B, C, D),
12527						    nonvar(B),
12528						    'chr lock'(B),
12529						    'chr lock'(C),
12530						    'chr lock'(D),
12531						    functor(B,
12532							    C,
12533							    D),
12534						    'chr unlock'(B),
12535						    'chr unlock'(C),
12536						    'chr unlock'(D), !,
12537						    (   var(E)
12538						    ->  true
12539						    ;   E=suspension(_, F, _, _, G),
12540							setarg(2,
12541							       E,
12542							       removed),
12543							(   F==not_stored_yet
12544							->  H=[]
12545							;   term_variables(G,
12546									   H),
12547							    ( arg(4,
12548								  E,
12549								  I),
12550							      (   var(I)
12551							      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12552									    J),
12553								  J=[_|K],
12554								  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12555									   K),
12556								  (   K=[L|_]
12557								  ->  setarg(4,
12558									     L,
12559									     _)
12560								  ;   true
12561								  )
12562							      ;   I=[_, _|K],
12563								  setarg(2,
12564									 I,
12565									 K),
12566								  (   K=[L|_]
12567								  ->  setarg(4,
12568									     L,
12569									     I)
12570								  ;   true
12571								  )
12572							      )
12573							    ),
12574							    'detach_known/1_1_$special_\\+/1___1'(H,
12575												  E)
12576							)
12577						    ),
12578						    'known/1_1_$special_fail/0'
12579						;   A=(M;N),
12580						    (   'chr newvia_2'(M,
12581								       N,
12582								       O)
12583						    ->  get_attr(O,
12584								 guard_entailment,
12585								 P),
12586							P=v(_, _, _, Q, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12587						    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12588								  Q)
12589						    ),
12590						    member(R, Q),
12591						    R=suspension(_, active, _, _, S, T),
12592						    S==M,
12593						    T==N, !,
12594						    R=suspension(_, _, _, _, U, V),
12595						    setarg(2, R, removed),
12596						    term_variables(term(U,
12597									V),
12598								   A1),
12599						    arg(4, R, W),
12600						    (   var(W)
12601						    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12602								  X),
12603							X=[_|Y],
12604							b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
12605								 Y),
12606							(   Y=[Z|_]
12607							->  setarg(4,
12608								   Z,
12609								   _)
12610							;   true
12611							)
12612						    ;   W=[_, _|Y],
12613							setarg(2,
12614							       W,
12615							       Y),
12616							(   Y=[Z|_]
12617							->  setarg(4,
12618								   Z,
12619								   W)
12620							;   true
12621							)
12622						    ),
12623						    'detach_known/1_1_$special_;/2___2'(A1,
12624											R),
12625						    (   var(E)
12626						    ->  true
12627						    ;   E=suspension(_, B1, _, _, C1),
12628							setarg(2,
12629							       E,
12630							       removed),
12631							(   B1==not_stored_yet
12632							->  D1=[]
12633							;   term_variables(C1,
12634									   D1),
12635							    ( arg(4,
12636								  E,
12637								  E1),
12638							      (   var(E1)
12639							      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12640									    F1),
12641								  F1=[_|G1],
12642								  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12643									   G1),
12644								  (   G1=[H1|_]
12645								  ->  setarg(4,
12646									     H1,
12647									     _)
12648								  ;   true
12649								  )
12650							      ;   E1=[_, _|G1],
12651								  setarg(2,
12652									 E1,
12653									 G1),
12654								  (   G1=[H1|_]
12655								  ->  setarg(4,
12656									     H1,
12657									     E1)
12658								  ;   true
12659								  )
12660							      )
12661							    ),
12662							    'detach_known/1_1_$special_\\+/1___1'(D1,
12663												  E)
12664							)
12665						    ),
12666						    'known/1_1_$special_fail/0'
12667						)
12668					    ;   A=nonvar(I1),
12669						(   'chr newvia_1'(I1,
12670								   J1)
12671						->  get_attr(J1,
12672							     guard_entailment,
12673							     K1),
12674						    K1=v(_, _, _, _, L1, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12675						;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
12676							      L1)
12677						),
12678						member(M1, L1),
12679						M1=suspension(_, active, _, _, N1),
12680						N1==I1, !,
12681						M1=suspension(_, _, _, _, O1),
12682						setarg(2, M1, removed),
12683						term_variables(O1,
12684							       T1),
12685						arg(4, M1, P1),
12686						(   var(P1)
12687						->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
12688							      Q1),
12689						    Q1=[_|R1],
12690						    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
12691							     R1),
12692						    (   R1=[S1|_]
12693						    ->  setarg(4,
12694							       S1,
12695							       _)
12696						    ;   true
12697						    )
12698						;   P1=[_, _|R1],
12699						    setarg(2,
12700							   P1,
12701							   R1),
12702						    (   R1=[S1|_]
12703						    ->  setarg(4,
12704							       S1,
12705							       P1)
12706						    ;   true
12707						    )
12708						),
12709						'detach_known/1_1_$special_nonvar/1___1'(T1,
12710											 M1),
12711						(   var(E)
12712						->  true
12713						;   E=suspension(_, U1, _, _, V1),
12714						    setarg(2, E, removed),
12715						    (   U1==not_stored_yet
12716						    ->  W1=[]
12717						    ;   term_variables(V1,
12718								       W1),
12719							( arg(4,
12720							      E,
12721							      X1),
12722							  (   var(X1)
12723							  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12724									Y1),
12725							      Y1=[_|Z1],
12726							      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12727								       Z1),
12728							      (   Z1=[A2|_]
12729							      ->  setarg(4,
12730									 A2,
12731									 _)
12732							      ;   true
12733							      )
12734							  ;   X1=[_, _|Z1],
12735							      setarg(2,
12736								     X1,
12737								     Z1),
12738							      (   Z1=[A2|_]
12739							      ->  setarg(4,
12740									 A2,
12741									 X1)
12742							      ;   true
12743							      )
12744							  )
12745							),
12746							'detach_known/1_1_$special_\\+/1___1'(W1,
12747											      E)
12748						    )
12749						),
12750						'known/1_1_$special_fail/0'
12751					    )
12752					;   A=var(B2),
12753					    (   'chr newvia_1'(B2,
12754							       C2)
12755					    ->  get_attr(C2,
12756							 guard_entailment,
12757							 D2),
12758						D2=v(_, _, _, _, _, E2, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12759					    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
12760							  E2)
12761					    ),
12762					    member(F2, E2),
12763					    F2=suspension(_, active, _, _, G2),
12764					    G2==B2, !,
12765					    F2=suspension(_, _, _, _, H2),
12766					    setarg(2, F2, removed),
12767					    term_variables(H2, M2),
12768					    arg(4, F2, I2),
12769					    (   var(I2)
12770					    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
12771							  J2),
12772						J2=[_|K2],
12773						b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
12774							 K2),
12775						(   K2=[L2|_]
12776						->  setarg(4, L2, _)
12777						;   true
12778						)
12779					    ;   I2=[_, _|K2],
12780						setarg(2, I2, K2),
12781						(   K2=[L2|_]
12782						->  setarg(4,
12783							   L2,
12784							   I2)
12785						;   true
12786						)
12787					    ),
12788					    'detach_known/1_1_$special_var/1___1'(M2,
12789										  F2),
12790					    (   var(E)
12791					    ->  true
12792					    ;   E=suspension(_, N2, _, _, O2),
12793						setarg(2, E, removed),
12794						(   N2==not_stored_yet
12795						->  P2=[]
12796						;   term_variables(O2,
12797								   P2),
12798						    ( arg(4, E, Q2),
12799						      (   var(Q2)
12800						      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12801								    R2),
12802							  R2=[_|S2],
12803							  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12804								   S2),
12805							  (   S2=[T2|_]
12806							  ->  setarg(4,
12807								     T2,
12808								     _)
12809							  ;   true
12810							  )
12811						      ;   Q2=[_, _|S2],
12812							  setarg(2,
12813								 Q2,
12814								 S2),
12815							  (   S2=[T2|_]
12816							  ->  setarg(4,
12817								     T2,
12818								     Q2)
12819							  ;   true
12820							  )
12821						      )
12822						    ),
12823						    'detach_known/1_1_$special_\\+/1___1'(P2,
12824											  E)
12825						)
12826					    ),
12827					    'known/1_1_$special_fail/0'
12828					)
12829				    ;   A=atom(U2),
12830					(   'chr newvia_1'(U2, V2)
12831					->  get_attr(V2,
12832						     guard_entailment,
12833						     W2),
12834					    W2=v(_, _, _, _, _, _, X2, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12835					;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
12836						      X2)
12837					),
12838					member(Y2, X2),
12839					Y2=suspension(_, active, _, _, _, Z2),
12840					Z2==U2, !,
12841					Y2=suspension(_, _, _, _, _, A3),
12842					setarg(2, Y2, removed),
12843					term_variables(A3, F3),
12844					arg(5, Y2, B3),
12845					(   var(B3)
12846					->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
12847						      C3),
12848					    C3=[_|D3],
12849					    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
12850						     D3),
12851					    (   D3=[E3|_]
12852					    ->  setarg(5, E3, _)
12853					    ;   true
12854					    )
12855					;   B3=[_, _|D3],
12856					    setarg(2, B3, D3),
12857					    (   D3=[E3|_]
12858					    ->  setarg(5, E3, B3)
12859					    ;   true
12860					    )
12861					),
12862					'detach_known/1_1_$special_atom/1___1'(F3,
12863									       Y2),
12864					(   var(E)
12865					->  true
12866					;   E=suspension(_, G3, _, _, H3),
12867					    setarg(2, E, removed),
12868					    (   G3==not_stored_yet
12869					    ->  I3=[]
12870					    ;   term_variables(H3,
12871							       I3),
12872						( arg(4, E, J3),
12873						  (   var(J3)
12874						  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12875								K3),
12876						      K3=[_|L3],
12877						      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12878							       L3),
12879						      (   L3=[M3|_]
12880						      ->  setarg(4,
12881								 M3,
12882								 _)
12883						      ;   true
12884						      )
12885						  ;   J3=[_, _|L3],
12886						      setarg(2,
12887							     J3,
12888							     L3),
12889						      (   L3=[M3|_]
12890						      ->  setarg(4,
12891								 M3,
12892								 J3)
12893						      ;   true
12894						      )
12895						  )
12896						),
12897						'detach_known/1_1_$special_\\+/1___1'(I3,
12898										      E)
12899					    )
12900					),
12901					'known/1_1_$special_fail/0'
12902				    )
12903				;   A=atomic(N3),
12904				    (   'chr newvia_1'(N3, O3)
12905				    ->  get_attr(O3,
12906						 guard_entailment,
12907						 P3),
12908					P3=v(_, _, _, _, _, _, _, Q3, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
12909				    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
12910						  Q3)
12911				    ),
12912				    member(R3, Q3),
12913				    R3=suspension(_, active, _, _, _, S3),
12914				    S3==N3, !,
12915				    R3=suspension(_, _, _, _, _, T3),
12916				    setarg(2, R3, removed),
12917				    term_variables(T3, Y3),
12918				    arg(5, R3, U3),
12919				    (   var(U3)
12920				    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
12921						  V3),
12922					V3=[_|W3],
12923					b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
12924						 W3),
12925					(   W3=[X3|_]
12926					->  setarg(5, X3, _)
12927					;   true
12928					)
12929				    ;   U3=[_, _|W3],
12930					setarg(2, U3, W3),
12931					(   W3=[X3|_]
12932					->  setarg(5, X3, U3)
12933					;   true
12934					)
12935				    ),
12936				    'detach_known/1_1_$special_atomic/1___1'(Y3,
12937									     R3),
12938				    (   var(E)
12939				    ->  true
12940				    ;   E=suspension(_, Z3, _, _, A4),
12941					setarg(2, E, removed),
12942					(   Z3==not_stored_yet
12943					->  B4=[]
12944					;   term_variables(A4,
12945							   B4),
12946					    ( arg(4, E, C4),
12947					      (   var(C4)
12948					      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12949							    D4),
12950						  D4=[_|E4],
12951						  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
12952							   E4),
12953						  (   E4=[F4|_]
12954						  ->  setarg(4,
12955							     F4,
12956							     _)
12957						  ;   true
12958						  )
12959					      ;   C4=[_, _|E4],
12960						  setarg(2,
12961							 C4,
12962							 E4),
12963						  (   E4=[F4|_]
12964						  ->  setarg(4,
12965							     F4,
12966							     C4)
12967						  ;   true
12968						  )
12969					      )
12970					    ),
12971					    'detach_known/1_1_$special_\\+/1___1'(B4,
12972										  E)
12973					)
12974				    ),
12975				    'known/1_1_$special_fail/0'
12976				)
12977			    ;   A=compound(G4),
12978				(   'chr newvia_1'(G4, H4)
12979				->  get_attr(H4,
12980					     guard_entailment,
12981					     I4),
12982				    I4=v(_, _, _, _, _, _, _, _, J4, _, _, _, _, _, _, _, _, _, _, _, _, _)
12983				;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
12984					      J4)
12985				),
12986				member(K4, J4),
12987				K4=suspension(_, active, _, _, _, L4),
12988				L4==G4, !,
12989				K4=suspension(_, _, _, _, _, M4),
12990				setarg(2, K4, removed),
12991				term_variables(M4, R4),
12992				arg(5, K4, N4),
12993				(   var(N4)
12994				->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
12995					      O4),
12996				    O4=[_|P4],
12997				    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
12998					     P4),
12999				    (   P4=[Q4|_]
13000				    ->  setarg(5, Q4, _)
13001				    ;   true
13002				    )
13003				;   N4=[_, _|P4],
13004				    setarg(2, N4, P4),
13005				    (   P4=[Q4|_]
13006				    ->  setarg(5, Q4, N4)
13007				    ;   true
13008				    )
13009				),
13010				'detach_known/1_1_$special_compound/1___1'(R4,
13011									   K4),
13012				(   var(E)
13013				->  true
13014				;   E=suspension(_, S4, _, _, T4),
13015				    setarg(2, E, removed),
13016				    (   S4==not_stored_yet
13017				    ->  U4=[]
13018				    ;   term_variables(T4, U4),
13019					( arg(4, E, V4),
13020					  (   var(V4)
13021					  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13022							W4),
13023					      W4=[_|X4],
13024					      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13025						       X4),
13026					      (   X4=[Y4|_]
13027					      ->  setarg(4, Y4, _)
13028					      ;   true
13029					      )
13030					  ;   V4=[_, _|X4],
13031					      setarg(2, V4, X4),
13032					      (   X4=[Y4|_]
13033					      ->  setarg(4,
13034							 Y4,
13035							 V4)
13036					      ;   true
13037					      )
13038					  )
13039					),
13040					'detach_known/1_1_$special_\\+/1___1'(U4,
13041									      E)
13042				    )
13043				),
13044				'known/1_1_$special_fail/0'
13045			    )
13046			;   A=ground(Z4),
13047			    (   'chr newvia_1'(Z4, A5)
13048			    ->  get_attr(A5, guard_entailment, B5),
13049				B5=v(_, _, _, _, _, _, _, _, _, C5, _, _, _, _, _, _, _, _, _, _, _, _)
13050			    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
13051					  C5)
13052			    ),
13053			    member(D5, C5),
13054			    D5=suspension(_, active, _, _, _, E5),
13055			    E5==Z4, !,
13056			    D5=suspension(_, _, _, _, _, F5),
13057			    setarg(2, D5, removed),
13058			    term_variables(F5, K5),
13059			    arg(5, D5, G5),
13060			    (   var(G5)
13061			    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
13062					  H5),
13063				H5=[_|I5],
13064				b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
13065					 I5),
13066				(   I5=[J5|_]
13067				->  setarg(5, J5, _)
13068				;   true
13069				)
13070			    ;   G5=[_, _|I5],
13071				setarg(2, G5, I5),
13072				(   I5=[J5|_]
13073				->  setarg(5, J5, G5)
13074				;   true
13075				)
13076			    ),
13077			    'detach_known/1_1_$special_ground/1___1'(K5,
13078								     D5),
13079			    (   var(E)
13080			    ->  true
13081			    ;   E=suspension(_, L5, _, _, M5),
13082				setarg(2, E, removed),
13083				(   L5==not_stored_yet
13084				->  N5=[]
13085				;   term_variables(M5, N5),
13086				    ( arg(4, E, O5),
13087				      (   var(O5)
13088				      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13089						    P5),
13090					  P5=[_|Q5],
13091					  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13092						   Q5),
13093					  (   Q5=[R5|_]
13094					  ->  setarg(4, R5, _)
13095					  ;   true
13096					  )
13097				      ;   O5=[_, _|Q5],
13098					  setarg(2, O5, Q5),
13099					  (   Q5=[R5|_]
13100					  ->  setarg(4, R5, O5)
13101					  ;   true
13102					  )
13103				      )
13104				    ),
13105				    'detach_known/1_1_$special_\\+/1___1'(N5,
13106									  E)
13107				)
13108			    ),
13109			    'known/1_1_$special_fail/0'
13110			)
13111		    ;   A=integer(S5),
13112			(   'chr newvia_1'(S5, T5)
13113			->  get_attr(T5, guard_entailment, U5),
13114			    U5=v(_, _, _, _, _, _, _, _, _, _, V5, _, _, _, _, _, _, _, _, _, _, _)
13115			;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
13116				      V5)
13117			),
13118			member(W5, V5),
13119			W5=suspension(_, active, _, _, _, X5),
13120			X5==S5, !,
13121			W5=suspension(_, _, _, _, _, Y5),
13122			setarg(2, W5, removed),
13123			term_variables(Y5, D6),
13124			arg(5, W5, Z5),
13125			(   var(Z5)
13126			->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
13127				      A6),
13128			    A6=[_|B6],
13129			    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
13130				     B6),
13131			    (   B6=[C6|_]
13132			    ->  setarg(5, C6, _)
13133			    ;   true
13134			    )
13135			;   Z5=[_, _|B6],
13136			    setarg(2, Z5, B6),
13137			    (   B6=[C6|_]
13138			    ->  setarg(5, C6, Z5)
13139			    ;   true
13140			    )
13141			),
13142			'detach_known/1_1_$special_integer/1___1'(D6,
13143								  W5),
13144			(   var(E)
13145			->  true
13146			;   E=suspension(_, E6, _, _, F6),
13147			    setarg(2, E, removed),
13148			    (   E6==not_stored_yet
13149			    ->  G6=[]
13150			    ;   term_variables(F6, G6),
13151				( arg(4, E, H6),
13152				  (   var(H6)
13153				  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13154						I6),
13155				      I6=[_|J6],
13156				      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13157					       J6),
13158				      (   J6=[K6|_]
13159				      ->  setarg(4, K6, _)
13160				      ;   true
13161				      )
13162				  ;   H6=[_, _|J6],
13163				      setarg(2, H6, J6),
13164				      (   J6=[K6|_]
13165				      ->  setarg(4, K6, H6)
13166				      ;   true
13167				      )
13168				  )
13169				),
13170				'detach_known/1_1_$special_\\+/1___1'(G6,
13171								      E)
13172			    )
13173			),
13174			'known/1_1_$special_fail/0'
13175		    )
13176		;   A=float(L6),
13177		    (   'chr newvia_1'(L6, M6)
13178		    ->  get_attr(M6, guard_entailment, N6),
13179			N6=v(_, _, _, _, _, _, _, _, _, _, _, O6, _, _, _, _, _, _, _, _, _, _)
13180		    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
13181				  O6)
13182		    ),
13183		    member(P6, O6),
13184		    P6=suspension(_, active, _, _, _, Q6),
13185		    Q6==L6, !,
13186		    P6=suspension(_, _, _, _, _, R6),
13187		    setarg(2, P6, removed),
13188		    term_variables(R6, W6),
13189		    arg(5, P6, S6),
13190		    (   var(S6)
13191		    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
13192				  T6),
13193			T6=[_|U6],
13194			b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
13195				 U6),
13196			(   U6=[V6|_]
13197			->  setarg(5, V6, _)
13198			;   true
13199			)
13200		    ;   S6=[_, _|U6],
13201			setarg(2, S6, U6),
13202			(   U6=[V6|_]
13203			->  setarg(5, V6, S6)
13204			;   true
13205			)
13206		    ),
13207		    'detach_known/1_1_$special_float/1___1'(W6, P6),
13208		    (   var(E)
13209		    ->  true
13210		    ;   E=suspension(_, X6, _, _, Y6),
13211			setarg(2, E, removed),
13212			(   X6==not_stored_yet
13213			->  Z6=[]
13214			;   term_variables(Y6, Z6),
13215			    ( arg(4, E, A7),
13216			      (   var(A7)
13217			      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13218					    B7),
13219				  B7=[_|C7],
13220				  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13221					   C7),
13222				  (   C7=[D7|_]
13223				  ->  setarg(4, D7, _)
13224				  ;   true
13225				  )
13226			      ;   A7=[_, _|C7],
13227				  setarg(2, A7, C7),
13228				  (   C7=[D7|_]
13229				  ->  setarg(4, D7, A7)
13230				  ;   true
13231				  )
13232			      )
13233			    ),
13234			    'detach_known/1_1_$special_\\+/1___1'(Z6,
13235								  E)
13236			)
13237		    ),
13238		    'known/1_1_$special_fail/0'
13239		)
13240	    ;   A=number(E7),
13241		(   'chr newvia_1'(E7, F7)
13242		->  get_attr(F7, guard_entailment, G7),
13243		    G7=v(_, _, _, _, _, _, _, _, _, _, _, _, H7, _, _, _, _, _, _, _, _, _)
13244		;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
13245			      H7)
13246		),
13247		member(I7, H7),
13248		I7=suspension(_, active, _, _, _, J7),
13249		J7==E7, !,
13250		I7=suspension(_, _, _, _, _, K7),
13251		setarg(2, I7, removed),
13252		term_variables(K7, P7),
13253		arg(5, I7, L7),
13254		(   var(L7)
13255		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
13256			      M7),
13257		    M7=[_|N7],
13258		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
13259			     N7),
13260		    (   N7=[O7|_]
13261		    ->  setarg(5, O7, _)
13262		    ;   true
13263		    )
13264		;   L7=[_, _|N7],
13265		    setarg(2, L7, N7),
13266		    (   N7=[O7|_]
13267		    ->  setarg(5, O7, L7)
13268		    ;   true
13269		    )
13270		),
13271		'detach_known/1_1_$special_number/1___1'(P7, I7),
13272		(   var(E)
13273		->  true
13274		;   E=suspension(_, Q7, _, _, R7),
13275		    setarg(2, E, removed),
13276		    (   Q7==not_stored_yet
13277		    ->  S7=[]
13278		    ;   term_variables(R7, S7),
13279			( arg(4, E, T7),
13280			  (   var(T7)
13281			  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13282					U7),
13283			      U7=[_|V7],
13284			      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13285				       V7),
13286			      (   V7=[W7|_]
13287			      ->  setarg(4, W7, _)
13288			      ;   true
13289			      )
13290			  ;   T7=[_, _|V7],
13291			      setarg(2, T7, V7),
13292			      (   V7=[W7|_]
13293			      ->  setarg(4, W7, T7)
13294			      ;   true
13295			      )
13296			  )
13297			),
13298			'detach_known/1_1_$special_\\+/1___1'(S7, E)
13299		    )
13300		),
13301		'known/1_1_$special_fail/0'
13302	    )
13303	;   A=(X7=\=Y7),
13304	    (   'chr newvia_2'(X7, Y7, Z7)
13305	    ->  get_attr(Z7, guard_entailment, A8),
13306		A8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, B8, _, _, _, _, _, _, _, _)
13307	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
13308			  B8)
13309	    ),
13310	    member(C8, B8),
13311	    C8=suspension(_, active, _, _, _, D8, E8),
13312	    D8==X7,
13313	    E8==Y7, !,
13314	    C8=suspension(_, _, _, _, _, F8, G8),
13315	    setarg(2, C8, removed),
13316	    term_variables(term(F8, G8), L8),
13317	    arg(5, C8, H8),
13318	    (   var(H8)
13319	    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
13320			  I8),
13321		I8=[_|J8],
13322		b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
13323			 J8),
13324		(   J8=[K8|_]
13325		->  setarg(5, K8, _)
13326		;   true
13327		)
13328	    ;   H8=[_, _|J8],
13329		setarg(2, H8, J8),
13330		(   J8=[K8|_]
13331		->  setarg(5, K8, H8)
13332		;   true
13333		)
13334	    ),
13335	    'detach_known/1_1_$special_=\\=/2___2'(L8, C8),
13336	    (   var(E)
13337	    ->  true
13338	    ;   E=suspension(_, M8, _, _, N8),
13339		setarg(2, E, removed),
13340		(   M8==not_stored_yet
13341		->  O8=[]
13342		;   term_variables(N8, O8),
13343		    ( arg(4, E, P8),
13344		      (   var(P8)
13345		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13346				    Q8),
13347			  Q8=[_|R8],
13348			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13349				   R8),
13350			  (   R8=[S8|_]
13351			  ->  setarg(4, S8, _)
13352			  ;   true
13353			  )
13354		      ;   P8=[_, _|R8],
13355			  setarg(2, P8, R8),
13356			  (   R8=[S8|_]
13357			  ->  setarg(4, S8, P8)
13358			  ;   true
13359			  )
13360		      )
13361		    ),
13362		    'detach_known/1_1_$special_\\+/1___1'(O8, E)
13363		)
13364	    ),
13365	    'known/1_1_$special_fail/0'
13366	).
13367'known/1_1_$special_\\+/1___1__0'(A, N) :-
13368	(   'chr newvia_1'(A, B)
13369	->  get_attr(B, guard_entailment, C),
13370	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
13371	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13372		      D)
13373	),
13374	member(E, D),
13375	E=suspension(_, active, _, _, F),
13376	nonvar(F),
13377	F=(\+G),
13378	G==A, !,
13379	E=suspension(_, _, _, _, H),
13380	setarg(2, E, removed),
13381	term_variables(H, M),
13382	arg(4, E, I),
13383	(   var(I)
13384	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13385		      J),
13386	    J=[_|K],
13387	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13388		     K),
13389	    (   K=[L|_]
13390	    ->  setarg(4, L, _)
13391	    ;   true
13392	    )
13393	;   I=[_, _|K],
13394	    setarg(2, I, K),
13395	    (   K=[L|_]
13396	    ->  setarg(4, L, I)
13397	    ;   true
13398	    )
13399	),
13400	'detach_known/1_1_$special_\\+/1___1'(M, E),
13401	(   var(N)
13402	->  true
13403	;   N=suspension(_, O, _, _, P),
13404	    setarg(2, N, removed),
13405	    (   O==not_stored_yet
13406	    ->  Q=[]
13407	    ;   term_variables(P, Q),
13408		( arg(4, N, R),
13409		  (   var(R)
13410		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13411				S),
13412		      S=[_|T],
13413		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13414			       T),
13415		      (   T=[U|_]
13416		      ->  setarg(4, U, _)
13417		      ;   true
13418		      )
13419		  ;   R=[_, _|T],
13420		      setarg(2, R, T),
13421		      (   T=[U|_]
13422		      ->  setarg(4, U, R)
13423		      ;   true
13424		      )
13425		  )
13426		),
13427		'detach_known/1_1_$special_\\+/1___1'(Q, N)
13428	    )
13429	),
13430	'known/1_1_$special_fail/0'.
13431'known/1_1_$special_\\+/1___1__0'(A, N) :-
13432	nonvar(A),
13433	(   (   (   (   (   (   (   A=(\+B),
13434				    (   'chr newvia_1'(B, C)
13435				    ->  get_attr(C,
13436						 guard_entailment,
13437						 D),
13438					D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
13439				    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13440						  E)
13441				    ),
13442				    member(F, E),
13443				    F=suspension(_, active, _, _, G),
13444				    G==B, !,
13445				    F=suspension(_, _, _, _, H),
13446				    setarg(2, F, removed),
13447				    term_variables(H, M),
13448				    arg(4, F, I),
13449				    (   var(I)
13450				    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13451						  J),
13452					J=[_|K],
13453					b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13454						 K),
13455					(   K=[L|_]
13456					->  setarg(4, L, _)
13457					;   true
13458					)
13459				    ;   I=[_, _|K],
13460					setarg(2, I, K),
13461					(   K=[L|_]
13462					->  setarg(4, L, I)
13463					;   true
13464					)
13465				    ),
13466				    'detach_known/1_1_$special_\\+/1___1'(M,
13467									  F),
13468				    (   var(N)
13469				    ->  true
13470				    ;   N=suspension(_, O, _, _, P),
13471					setarg(2, N, removed),
13472					(   O==not_stored_yet
13473					->  Q=[]
13474					;   term_variables(P, Q),
13475					    ( arg(4, N, R),
13476					      (   var(R)
13477					      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13478							    S),
13479						  S=[_|T],
13480						  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13481							   T),
13482						  (   T=[U|_]
13483						  ->  setarg(4,
13484							     U,
13485							     _)
13486						  ;   true
13487						  )
13488					      ;   R=[_, _|T],
13489						  setarg(2, R, T),
13490						  (   T=[U|_]
13491						  ->  setarg(4,
13492							     U,
13493							     R)
13494						  ;   true
13495						  )
13496					      )
13497					    ),
13498					    'detach_known/1_1_$special_\\+/1___1'(Q,
13499										  N)
13500					)
13501				    ),
13502				    'known/1_1_$special_fail/0'
13503				;   A=functor(V, W, X),
13504				    (   'chr newvia'(
13505						     [ V,
13506						       W,
13507						       X
13508						     ],
13509						     Y)
13510				    ->  get_attr(Y,
13511						 guard_entailment,
13512						 Z),
13513					Z=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, A1, _, _, _, _, _, _)
13514				    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
13515						  A1)
13516				    ),
13517				    member(B1, A1),
13518				    B1=suspension(_, active, _, _, C1, D1, E1),
13519				    C1==V,
13520				    D1==W,
13521				    E1==X, !,
13522				    B1=suspension(_, _, _, _, F1, G1, H1),
13523				    setarg(2, B1, removed),
13524				    term_variables(term(F1,
13525							G1,
13526							H1),
13527						   M1),
13528				    arg(4, B1, I1),
13529				    (   var(I1)
13530				    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
13531						  J1),
13532					J1=[_|K1],
13533					b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
13534						 K1),
13535					(   K1=[L1|_]
13536					->  setarg(4, L1, _)
13537					;   true
13538					)
13539				    ;   I1=[_, _|K1],
13540					setarg(2, I1, K1),
13541					(   K1=[L1|_]
13542					->  setarg(4, L1, I1)
13543					;   true
13544					)
13545				    ),
13546				    'detach_known/1_1_$special_functor/3___3'(M1,
13547									      B1),
13548				    (   var(N)
13549				    ->  true
13550				    ;   N=suspension(_, N1, _, _, O1),
13551					setarg(2, N, removed),
13552					(   N1==not_stored_yet
13553					->  P1=[]
13554					;   term_variables(O1, P1),
13555					    ( arg(4, N, Q1),
13556					      (   var(Q1)
13557					      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13558							    R1),
13559						  R1=[_|S1],
13560						  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13561							   S1),
13562						  (   S1=[T1|_]
13563						  ->  setarg(4,
13564							     T1,
13565							     _)
13566						  ;   true
13567						  )
13568					      ;   Q1=[_, _|S1],
13569						  setarg(2, Q1, S1),
13570						  (   S1=[T1|_]
13571						  ->  setarg(4,
13572							     T1,
13573							     Q1)
13574						  ;   true
13575						  )
13576					      )
13577					    ),
13578					    'detach_known/1_1_$special_\\+/1___1'(P1,
13579										  N)
13580					)
13581				    ),
13582				    'known/1_1_$special_fail/0'
13583				)
13584			    ;   A=(U1\=V1),
13585				(   'chr newvia_2'(U1, V1, W1)
13586				->  get_attr(W1,
13587					     guard_entailment,
13588					     X1),
13589				    X1=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, Y1, _, _, _, _, _)
13590				;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
13591					      Y1)
13592				),
13593				member(Z1, Y1),
13594				Z1=suspension(_, active, _, _, _, A2, B2),
13595				A2==U1,
13596				B2==V1, !,
13597				Z1=suspension(_, _, _, _, _, C2, D2),
13598				setarg(2, Z1, removed),
13599				term_variables(term(C2, D2),
13600					       I2),
13601				arg(5, Z1, E2),
13602				(   var(E2)
13603				->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
13604					      F2),
13605				    F2=[_|G2],
13606				    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
13607					     G2),
13608				    (   G2=[H2|_]
13609				    ->  setarg(5, H2, _)
13610				    ;   true
13611				    )
13612				;   E2=[_, _|G2],
13613				    setarg(2, E2, G2),
13614				    (   G2=[H2|_]
13615				    ->  setarg(5, H2, E2)
13616				    ;   true
13617				    )
13618				),
13619				'detach_known/1_1_$special_\\=/2___2'(I2,
13620								      Z1),
13621				(   var(N)
13622				->  true
13623				;   N=suspension(_, J2, _, _, K2),
13624				    setarg(2, N, removed),
13625				    (   J2==not_stored_yet
13626				    ->  L2=[]
13627				    ;   term_variables(K2, L2),
13628					( arg(4, N, M2),
13629					  (   var(M2)
13630					  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13631							N2),
13632					      N2=[_|O2],
13633					      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13634						       O2),
13635					      (   O2=[P2|_]
13636					      ->  setarg(4, P2, _)
13637					      ;   true
13638					      )
13639					  ;   M2=[_, _|O2],
13640					      setarg(2, M2, O2),
13641					      (   O2=[P2|_]
13642					      ->  setarg(4, P2, M2)
13643					      ;   true
13644					      )
13645					  )
13646					),
13647					'detach_known/1_1_$special_\\+/1___1'(L2,
13648									      N)
13649				    )
13650				),
13651				'known/1_1_$special_fail/0'
13652			    )
13653			;   A=(Q2=R2),
13654			    (   'chr newvia_2'(Q2, R2, S2)
13655			    ->  get_attr(S2, guard_entailment, T2),
13656				T2=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, U2, _, _, _, _)
13657			    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
13658					  U2)
13659			    ),
13660			    member(V2, U2),
13661			    V2=suspension(_, active, _, _, W2, X2),
13662			    W2==Q2,
13663			    X2==R2, !,
13664			    V2=suspension(_, _, _, _, Y2, Z2),
13665			    setarg(2, V2, removed),
13666			    term_variables(term(Y2, Z2), E3),
13667			    arg(4, V2, A3),
13668			    (   var(A3)
13669			    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
13670					  B3),
13671				B3=[_|C3],
13672				b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
13673					 C3),
13674				(   C3=[D3|_]
13675				->  setarg(4, D3, _)
13676				;   true
13677				)
13678			    ;   A3=[_, _|C3],
13679				setarg(2, A3, C3),
13680				(   C3=[D3|_]
13681				->  setarg(4, D3, A3)
13682				;   true
13683				)
13684			    ),
13685			    'detach_known/1_1_$special_=/2___2'(E3,
13686								V2),
13687			    (   var(N)
13688			    ->  true
13689			    ;   N=suspension(_, F3, _, _, G3),
13690				setarg(2, N, removed),
13691				(   F3==not_stored_yet
13692				->  H3=[]
13693				;   term_variables(G3, H3),
13694				    ( arg(4, N, I3),
13695				      (   var(I3)
13696				      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13697						    J3),
13698					  J3=[_|K3],
13699					  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13700						   K3),
13701					  (   K3=[L3|_]
13702					  ->  setarg(4, L3, _)
13703					  ;   true
13704					  )
13705				      ;   I3=[_, _|K3],
13706					  setarg(2, I3, K3),
13707					  (   K3=[L3|_]
13708					  ->  setarg(4, L3, I3)
13709					  ;   true
13710					  )
13711				      )
13712				    ),
13713				    'detach_known/1_1_$special_\\+/1___1'(H3,
13714									  N)
13715				)
13716			    ),
13717			    'known/1_1_$special_fail/0'
13718			)
13719		    ;   A=(M3\==N3),
13720			(   'chr newvia_2'(M3, N3, O3)
13721			->  get_attr(O3, guard_entailment, P3),
13722			    P3=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, Q3, _, _, _)
13723			;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
13724				      Q3)
13725			),
13726			member(R3, Q3),
13727			R3=suspension(_, active, _, _, _, S3, T3),
13728			S3==M3,
13729			T3==N3, !,
13730			R3=suspension(_, _, _, _, _, U3, V3),
13731			setarg(2, R3, removed),
13732			term_variables(term(U3, V3), A4),
13733			arg(5, R3, W3),
13734			(   var(W3)
13735			->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
13736				      X3),
13737			    X3=[_|Y3],
13738			    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
13739				     Y3),
13740			    (   Y3=[Z3|_]
13741			    ->  setarg(5, Z3, _)
13742			    ;   true
13743			    )
13744			;   W3=[_, _|Y3],
13745			    setarg(2, W3, Y3),
13746			    (   Y3=[Z3|_]
13747			    ->  setarg(5, Z3, W3)
13748			    ;   true
13749			    )
13750			),
13751			'detach_known/1_1_$special_\\==/2___2'(A4,
13752							       R3),
13753			(   var(N)
13754			->  true
13755			;   N=suspension(_, B4, _, _, C4),
13756			    setarg(2, N, removed),
13757			    (   B4==not_stored_yet
13758			    ->  D4=[]
13759			    ;   term_variables(C4, D4),
13760				( arg(4, N, E4),
13761				  (   var(E4)
13762				  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13763						F4),
13764				      F4=[_|G4],
13765				      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13766					       G4),
13767				      (   G4=[H4|_]
13768				      ->  setarg(4, H4, _)
13769				      ;   true
13770				      )
13771				  ;   E4=[_, _|G4],
13772				      setarg(2, E4, G4),
13773				      (   G4=[H4|_]
13774				      ->  setarg(4, H4, E4)
13775				      ;   true
13776				      )
13777				  )
13778				),
13779				'detach_known/1_1_$special_\\+/1___1'(D4,
13780								      N)
13781			    )
13782			),
13783			'known/1_1_$special_fail/0'
13784		    )
13785		;   A=(I4==J4),
13786		    (   'chr newvia_2'(I4, J4, K4)
13787		    ->  get_attr(K4, guard_entailment, L4),
13788			L4=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, M4, _, _)
13789		    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
13790				  M4)
13791		    ),
13792		    member(N4, M4),
13793		    N4=suspension(_, active, _, _, _, O4, P4),
13794		    O4==I4,
13795		    P4==J4, !,
13796		    N4=suspension(_, _, _, _, _, Q4, R4),
13797		    setarg(2, N4, removed),
13798		    term_variables(term(Q4, R4), W4),
13799		    arg(5, N4, S4),
13800		    (   var(S4)
13801		    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
13802				  T4),
13803			T4=[_|U4],
13804			b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
13805				 U4),
13806			(   U4=[V4|_]
13807			->  setarg(5, V4, _)
13808			;   true
13809			)
13810		    ;   S4=[_, _|U4],
13811			setarg(2, S4, U4),
13812			(   U4=[V4|_]
13813			->  setarg(5, V4, S4)
13814			;   true
13815			)
13816		    ),
13817		    'detach_known/1_1_$special_==/2___2'(W4, N4),
13818		    (   var(N)
13819		    ->  true
13820		    ;   N=suspension(_, X4, _, _, Y4),
13821			setarg(2, N, removed),
13822			(   X4==not_stored_yet
13823			->  Z4=[]
13824			;   term_variables(Y4, Z4),
13825			    ( arg(4, N, A5),
13826			      (   var(A5)
13827			      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13828					    B5),
13829				  B5=[_|C5],
13830				  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13831					   C5),
13832				  (   C5=[D5|_]
13833				  ->  setarg(4, D5, _)
13834				  ;   true
13835				  )
13836			      ;   A5=[_, _|C5],
13837				  setarg(2, A5, C5),
13838				  (   C5=[D5|_]
13839				  ->  setarg(4, D5, A5)
13840				  ;   true
13841				  )
13842			      )
13843			    ),
13844			    'detach_known/1_1_$special_\\+/1___1'(Z4,
13845								  N)
13846			)
13847		    ),
13848		    'known/1_1_$special_fail/0'
13849		)
13850	    ;   A=(E5=<F5),
13851		(   'chr newvia_2'(E5, F5, G5)
13852		->  get_attr(G5, guard_entailment, H5),
13853		    H5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, I5, _)
13854		;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
13855			      I5)
13856		),
13857		member(J5, I5),
13858		J5=suspension(_, active, _, _, _, K5, L5),
13859		K5==E5,
13860		L5==F5, !,
13861		J5=suspension(_, _, _, _, _, M5, N5),
13862		setarg(2, J5, removed),
13863		term_variables(term(M5, N5), S5),
13864		arg(5, J5, O5),
13865		(   var(O5)
13866		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
13867			      P5),
13868		    P5=[_|Q5],
13869		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
13870			     Q5),
13871		    (   Q5=[R5|_]
13872		    ->  setarg(5, R5, _)
13873		    ;   true
13874		    )
13875		;   O5=[_, _|Q5],
13876		    setarg(2, O5, Q5),
13877		    (   Q5=[R5|_]
13878		    ->  setarg(5, R5, O5)
13879		    ;   true
13880		    )
13881		),
13882		'detach_known/1_1_$special_=</2___2'(S5, J5),
13883		(   var(N)
13884		->  true
13885		;   N=suspension(_, T5, _, _, U5),
13886		    setarg(2, N, removed),
13887		    (   T5==not_stored_yet
13888		    ->  V5=[]
13889		    ;   term_variables(U5, V5),
13890			( arg(4, N, W5),
13891			  (   var(W5)
13892			  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13893					X5),
13894			      X5=[_|Y5],
13895			      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13896				       Y5),
13897			      (   Y5=[Z5|_]
13898			      ->  setarg(4, Z5, _)
13899			      ;   true
13900			      )
13901			  ;   W5=[_, _|Y5],
13902			      setarg(2, W5, Y5),
13903			      (   Y5=[Z5|_]
13904			      ->  setarg(4, Z5, W5)
13905			      ;   true
13906			      )
13907			  )
13908			),
13909			'detach_known/1_1_$special_\\+/1___1'(V5, N)
13910		    )
13911		),
13912		'known/1_1_$special_fail/0'
13913	    )
13914	;   A=(A6=:=B6),
13915	    (   'chr newvia_2'(A6, B6, C6)
13916	    ->  get_attr(C6, guard_entailment, D6),
13917		D6=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E6)
13918	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
13919			  E6)
13920	    ),
13921	    member(F6, E6),
13922	    F6=suspension(_, active, _, _, _, G6, H6),
13923	    G6==A6,
13924	    H6==B6, !,
13925	    F6=suspension(_, _, _, _, _, I6, J6),
13926	    setarg(2, F6, removed),
13927	    term_variables(term(I6, J6), O6),
13928	    arg(5, F6, K6),
13929	    (   var(K6)
13930	    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
13931			  L6),
13932		L6=[_|M6],
13933		b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
13934			 M6),
13935		(   M6=[N6|_]
13936		->  setarg(5, N6, _)
13937		;   true
13938		)
13939	    ;   K6=[_, _|M6],
13940		setarg(2, K6, M6),
13941		(   M6=[N6|_]
13942		->  setarg(5, N6, K6)
13943		;   true
13944		)
13945	    ),
13946	    'detach_known/1_1_$special_=:=/2___2'(O6, F6),
13947	    (   var(N)
13948	    ->  true
13949	    ;   N=suspension(_, P6, _, _, Q6),
13950		setarg(2, N, removed),
13951		(   P6==not_stored_yet
13952		->  R6=[]
13953		;   term_variables(Q6, R6),
13954		    ( arg(4, N, S6),
13955		      (   var(S6)
13956		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13957				    T6),
13958			  T6=[_|U6],
13959			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
13960				   U6),
13961			  (   U6=[V6|_]
13962			  ->  setarg(4, V6, _)
13963			  ;   true
13964			  )
13965		      ;   S6=[_, _|U6],
13966			  setarg(2, S6, U6),
13967			  (   U6=[V6|_]
13968			  ->  setarg(4, V6, S6)
13969			  ;   true
13970			  )
13971		      )
13972		    ),
13973		    'detach_known/1_1_$special_\\+/1___1'(R6, N)
13974		)
13975	    ),
13976	    'known/1_1_$special_fail/0'
13977	).
13978'known/1_1_$special_\\+/1___1__0'(A, M) :-
13979	(   'chr newvia_1'(A, B)
13980	->  get_attr(B, guard_entailment, C),
13981	    C=v(_, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
13982	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
13983		      D)
13984	),
13985	member(E, D),
13986	E=suspension(_, active, _, _, F),
13987	F==A, !,
13988	E=suspension(_, _, _, _, G),
13989	setarg(2, E, removed),
13990	term_variables(G, L),
13991	arg(4, E, H),
13992	(   var(H)
13993	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
13994		      I),
13995	    I=[_|J],
13996	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
13997		     J),
13998	    (   J=[K|_]
13999	    ->  setarg(4, K, _)
14000	    ;   true
14001	    )
14002	;   H=[_, _|J],
14003	    setarg(2, H, J),
14004	    (   J=[K|_]
14005	    ->  setarg(4, K, H)
14006	    ;   true
14007	    )
14008	),
14009	'detach_known/1_1_$default___1'(L, E),
14010	(   var(M)
14011	->  true
14012	;   M=suspension(_, N, _, _, O),
14013	    setarg(2, M, removed),
14014	    (   N==not_stored_yet
14015	    ->  P=[]
14016	    ;   term_variables(O, P),
14017		( arg(4, M, Q),
14018		  (   var(Q)
14019		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14020				R),
14021		      R=[_|S],
14022		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14023			       S),
14024		      (   S=[T|_]
14025		      ->  setarg(4, T, _)
14026		      ;   true
14027		      )
14028		  ;   Q=[_, _|S],
14029		      setarg(2, Q, S),
14030		      (   S=[T|_]
14031		      ->  setarg(4, T, Q)
14032		      ;   true
14033		      )
14034		  )
14035		),
14036		'detach_known/1_1_$special_\\+/1___1'(P, M)
14037	    )
14038	),
14039	'known/1_1_$special_fail/0'.
14040'known/1_1_$special_\\+/1___1__0'(A, E) :-
14041	(   'chr newvia_1'(A, B)
14042	->  get_attr(B, guard_entailment, C),
14043	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14044	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14045		      D)
14046	), !,
14047	(   var(E)
14048	->  E=suspension(F, not_stored_yet, 0, _, A),
14049	    'chr gen_id'(F)
14050	;   true
14051	),
14052	'known/1_1_$special_\\+/1___1__0__0__33'(D, A, E).
14053'known/1_1_$special_\\+/1___1__0__0__33'([], A, B) :-
14054	'known/1_1_$special_\\+/1___1__1'(A, B).
14055'known/1_1_$special_\\+/1___1__0__0__33'([A|W], E, M) :-
14056	(   A=suspension(_, active, _, _, B, V),
14057	    nonvar(B),
14058	    B=(\+C),
14059	    nonvar(C),
14060	    C=(\+D),
14061	    D==E
14062	->  ( A=suspension(_, _, _, _, F, G),
14063	      setarg(2, A, removed),
14064	      term_variables(term(F, G), L),
14065	      ( arg(4, A, H),
14066		(   var(H)
14067		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14068			      I),
14069		    I=[_|J],
14070		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14071			     J),
14072		    (   J=[K|_]
14073		    ->  setarg(4, K, _)
14074		    ;   true
14075		    )
14076		;   H=[_, _|J],
14077		    setarg(2, H, J),
14078		    (   J=[K|_]
14079		    ->  setarg(4, K, H)
14080		    ;   true
14081		    )
14082		)
14083	      ),
14084	      'detach_known/1_1_$special_;/2___2'(L, A)
14085	    ),
14086	    ( arg(2, M, P),
14087	      setarg(2, M, active),
14088	      ( arg(3, M, N),
14089		O is N+1,
14090		setarg(3, M, O)
14091	      ),
14092	      (   P==not_stored_yet
14093	      ->  M=suspension(_, _, _, _, Q),
14094		  term_variables(Q, R),
14095		  'chr none_locked'(R),
14096		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14097			      S),
14098		    T=[M|S],
14099		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14100			     T),
14101		    (   S=[U|_]
14102		    ->  setarg(4, U, T)
14103		    ;   true
14104		    )
14105		  ),
14106		  'attach_known/1_1_$special_\\+/1___1'(R, M)
14107	      ;   true
14108	      )
14109	    ),
14110	    known(V),
14111	    (   M=suspension(_, active, O, _, _)
14112	    ->  setarg(2, M, inactive),
14113		'known/1_1_$special_\\+/1___1__0__0__33'(W,
14114							 E,
14115							 M)
14116	    ;   true
14117	    )
14118	;   'known/1_1_$special_\\+/1___1__0__0__33'(W, E, M)
14119	).
14120'known/1_1_$special_\\+/1___1__0'(B, A) :-
14121	(   var(A)
14122	->  A=suspension(C, not_stored_yet, 0, _, B),
14123	    'chr gen_id'(C)
14124	;   true
14125	),
14126	'known/1_1_$special_\\+/1___1__1'(B, A).
14127'known/1_1_$special_\\+/1___1__1'(A, E) :-
14128	(   'chr newvia_1'(A, B)
14129	->  get_attr(B, guard_entailment, C),
14130	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14131	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14132		      D)
14133	), !,
14134	'known/1_1_$special_\\+/1___1__1__0__34'(D, A, E).
14135'known/1_1_$special_\\+/1___1__1__0__34'([], A, B) :-
14136	'known/1_1_$special_\\+/1___1__2'(A, B).
14137'known/1_1_$special_\\+/1___1__1__0__34'([A|X], F, N) :-
14138	(   A=suspension(_, active, _, _, B, W),
14139	    nonvar(B),
14140	    B=(C, _),
14141	    nonvar(C),
14142	    C=(\+D),
14143	    nonvar(D),
14144	    D=(\+E),
14145	    E==F
14146	->  ( A=suspension(_, _, _, _, G, H),
14147	      setarg(2, A, removed),
14148	      term_variables(term(G, H), M),
14149	      ( arg(4, A, I),
14150		(   var(I)
14151		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14152			      J),
14153		    J=[_|K],
14154		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14155			     K),
14156		    (   K=[L|_]
14157		    ->  setarg(4, L, _)
14158		    ;   true
14159		    )
14160		;   I=[_, _|K],
14161		    setarg(2, I, K),
14162		    (   K=[L|_]
14163		    ->  setarg(4, L, I)
14164		    ;   true
14165		    )
14166		)
14167	      ),
14168	      'detach_known/1_1_$special_;/2___2'(M, A)
14169	    ),
14170	    ( arg(2, N, Q),
14171	      setarg(2, N, active),
14172	      ( arg(3, N, O),
14173		P is O+1,
14174		setarg(3, N, P)
14175	      ),
14176	      (   Q==not_stored_yet
14177	      ->  N=suspension(_, _, _, _, R),
14178		  term_variables(R, S),
14179		  'chr none_locked'(S),
14180		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14181			      T),
14182		    U=[N|T],
14183		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14184			     U),
14185		    (   T=[V|_]
14186		    ->  setarg(4, V, U)
14187		    ;   true
14188		    )
14189		  ),
14190		  'attach_known/1_1_$special_\\+/1___1'(S, N)
14191	      ;   true
14192	      )
14193	    ),
14194	    known(W),
14195	    (   N=suspension(_, active, P, _, _)
14196	    ->  setarg(2, N, inactive),
14197		'known/1_1_$special_\\+/1___1__1__0__34'(X,
14198							 F,
14199							 N)
14200	    ;   true
14201	    )
14202	;   'known/1_1_$special_\\+/1___1__1__0__34'(X, F, N)
14203	).
14204'known/1_1_$special_\\+/1___1__1'(A, B) :-
14205	'known/1_1_$special_\\+/1___1__2'(A, B).
14206'known/1_1_$special_\\+/1___1__2'(A, E) :-
14207	(   'chr newvia_1'(A, B)
14208	->  get_attr(B, guard_entailment, C),
14209	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14210	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14211		      D)
14212	), !,
14213	'known/1_1_$special_\\+/1___1__2__0__35'(D, A, E).
14214'known/1_1_$special_\\+/1___1__2__0__35'([], A, B) :-
14215	'known/1_1_$special_\\+/1___1__3'(A, B).
14216'known/1_1_$special_\\+/1___1__2__0__35'([A|U], C, K) :-
14217	(   A=suspension(_, active, _, _, B, T),
14218	    B==C
14219	->  ( A=suspension(_, _, _, _, D, E),
14220	      setarg(2, A, removed),
14221	      term_variables(term(D, E), J),
14222	      ( arg(4, A, F),
14223		(   var(F)
14224		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14225			      G),
14226		    G=[_|H],
14227		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14228			     H),
14229		    (   H=[I|_]
14230		    ->  setarg(4, I, _)
14231		    ;   true
14232		    )
14233		;   F=[_, _|H],
14234		    setarg(2, F, H),
14235		    (   H=[I|_]
14236		    ->  setarg(4, I, F)
14237		    ;   true
14238		    )
14239		)
14240	      ),
14241	      'detach_known/1_1_$special_;/2___2'(J, A)
14242	    ),
14243	    ( arg(2, K, N),
14244	      setarg(2, K, active),
14245	      ( arg(3, K, L),
14246		M is L+1,
14247		setarg(3, K, M)
14248	      ),
14249	      (   N==not_stored_yet
14250	      ->  K=suspension(_, _, _, _, O),
14251		  term_variables(O, P),
14252		  'chr none_locked'(P),
14253		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14254			      Q),
14255		    R=[K|Q],
14256		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14257			     R),
14258		    (   Q=[S|_]
14259		    ->  setarg(4, S, R)
14260		    ;   true
14261		    )
14262		  ),
14263		  'attach_known/1_1_$special_\\+/1___1'(P, K)
14264	      ;   true
14265	      )
14266	    ),
14267	    known(T),
14268	    (   K=suspension(_, active, M, _, _)
14269	    ->  setarg(2, K, inactive),
14270		'known/1_1_$special_\\+/1___1__2__0__35'(U,
14271							 C,
14272							 K)
14273	    ;   true
14274	    )
14275	;   'known/1_1_$special_\\+/1___1__2__0__35'(U, C, K)
14276	).
14277'known/1_1_$special_\\+/1___1__2'(A, B) :-
14278	'known/1_1_$special_\\+/1___1__3'(A, B).
14279'known/1_1_$special_\\+/1___1__3'(A, E) :-
14280	(   'chr newvia_1'(A, B)
14281	->  get_attr(B, guard_entailment, C),
14282	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14283	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14284		      D)
14285	), !,
14286	'known/1_1_$special_\\+/1___1__3__0__36'(D, A, E).
14287'known/1_1_$special_\\+/1___1__3__0__36'([], A, B) :-
14288	'known/1_1_$special_\\+/1___1__4'(A, B).
14289'known/1_1_$special_\\+/1___1__3__0__36'([A|V], D, L) :-
14290	(   A=suspension(_, active, _, _, B, U),
14291	    nonvar(B),
14292	    B=(C, _),
14293	    C==D
14294	->  ( A=suspension(_, _, _, _, E, F),
14295	      setarg(2, A, removed),
14296	      term_variables(term(E, F), K),
14297	      ( arg(4, A, G),
14298		(   var(G)
14299		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14300			      H),
14301		    H=[_|I],
14302		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14303			     I),
14304		    (   I=[J|_]
14305		    ->  setarg(4, J, _)
14306		    ;   true
14307		    )
14308		;   G=[_, _|I],
14309		    setarg(2, G, I),
14310		    (   I=[J|_]
14311		    ->  setarg(4, J, G)
14312		    ;   true
14313		    )
14314		)
14315	      ),
14316	      'detach_known/1_1_$special_;/2___2'(K, A)
14317	    ),
14318	    ( arg(2, L, O),
14319	      setarg(2, L, active),
14320	      ( arg(3, L, M),
14321		N is M+1,
14322		setarg(3, L, N)
14323	      ),
14324	      (   O==not_stored_yet
14325	      ->  L=suspension(_, _, _, _, P),
14326		  term_variables(P, Q),
14327		  'chr none_locked'(Q),
14328		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14329			      R),
14330		    S=[L|R],
14331		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14332			     S),
14333		    (   R=[T|_]
14334		    ->  setarg(4, T, S)
14335		    ;   true
14336		    )
14337		  ),
14338		  'attach_known/1_1_$special_\\+/1___1'(Q, L)
14339	      ;   true
14340	      )
14341	    ),
14342	    known(U),
14343	    (   L=suspension(_, active, N, _, _)
14344	    ->  setarg(2, L, inactive),
14345		'known/1_1_$special_\\+/1___1__3__0__36'(V,
14346							 D,
14347							 L)
14348	    ;   true
14349	    )
14350	;   'known/1_1_$special_\\+/1___1__3__0__36'(V, D, L)
14351	).
14352'known/1_1_$special_\\+/1___1__3'(A, B) :-
14353	'known/1_1_$special_\\+/1___1__4'(A, B).
14354'known/1_1_$special_\\+/1___1__4'(_, A) :-
14355	arg(2, A, D),
14356	setarg(2, A, active),
14357	arg(3, A, B),
14358	C is B+1,
14359	setarg(3, A, C),
14360	(   D==not_stored_yet
14361	->  A=suspension(_, _, _, _, E),
14362	    term_variables(E, F),
14363	    'chr none_locked'(F),
14364	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14365			G),
14366	      H=[A|G],
14367	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14368		       H),
14369	      (   G=[I|_]
14370	      ->  setarg(4, I, H)
14371	      ;   true
14372	      )
14373	    ),
14374	    'attach_known/1_1_$special_\\+/1___1'(F, A)
14375	;   true
14376	).
14377'known/1_1_$special_functor/3'(A, B, C) :-
14378	'known/1_1_$special_functor/3___3__0'(A, B, C, _).
14379'known/1_1_$special_functor/3___3__0'(A, B, C, K) :-
14380	(   'chr newvia'([A, B, C], D)
14381	->  get_attr(D, guard_entailment, E),
14382	    E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _)
14383	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14384		      F)
14385	),
14386	member(G, F),
14387	G=suspension(_, active, _, _, H, I, J),
14388	H==A,
14389	I==B,
14390	J==C, !,
14391	(   var(K)
14392	->  true
14393	;   K=suspension(_, L, _, _, M, N, O),
14394	    setarg(2, K, removed),
14395	    (   L==not_stored_yet
14396	    ->  P=[]
14397	    ;   term_variables(term(M, N, O), P),
14398		( arg(4, K, Q),
14399		  (   var(Q)
14400		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14401				R),
14402		      R=[_|S],
14403		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14404			       S),
14405		      (   S=[T|_]
14406		      ->  setarg(4, T, _)
14407		      ;   true
14408		      )
14409		  ;   Q=[_, _|S],
14410		      setarg(2, Q, S),
14411		      (   S=[T|_]
14412		      ->  setarg(4, T, Q)
14413		      ;   true
14414		      )
14415		  )
14416		),
14417		'detach_known/1_1_$special_functor/3___3'(P, K)
14418	    )
14419	).
14420'known/1_1_$special_functor/3___3__0'(_, _, _, C) :-
14421	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
14422		  A),
14423	member(B, A),
14424	B=suspension(_, active, _), !,
14425	(   var(C)
14426	->  true
14427	;   C=suspension(_, D, _, _, E, F, G),
14428	    setarg(2, C, removed),
14429	    (   D==not_stored_yet
14430	    ->  H=[]
14431	    ;   term_variables(term(E, F, G), H),
14432		( arg(4, C, I),
14433		  (   var(I)
14434		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14435				J),
14436		      J=[_|K],
14437		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14438			       K),
14439		      (   K=[L|_]
14440		      ->  setarg(4, L, _)
14441		      ;   true
14442		      )
14443		  ;   I=[_, _|K],
14444		      setarg(2, I, K),
14445		      (   K=[L|_]
14446		      ->  setarg(4, L, I)
14447		      ;   true
14448		      )
14449		  )
14450		),
14451		'detach_known/1_1_$special_functor/3___3'(H, C)
14452	    )
14453	).
14454'known/1_1_$special_functor/3___3__0'(C, B, A, L) :-
14455	ground(A),
14456	ground(B),
14457	var(C),
14458	nb_getval('$chr_store_global_list_guard_entailment____variables___1',
14459		  D),
14460	member(E, D),
14461	E=suspension(_, active, _, W), !,
14462	E=suspension(_, _, _, F),
14463	setarg(2, E, removed),
14464	term_variables(F, K),
14465	arg(3, E, G),
14466	(   var(G)
14467	->  nb_getval('$chr_store_global_list_guard_entailment____variables___1',
14468		      H),
14469	    H=[_|I],
14470	    b_setval('$chr_store_global_list_guard_entailment____variables___1',
14471		     I),
14472	    (   I=[J|_]
14473	    ->  setarg(3, J, _)
14474	    ;   true
14475	    )
14476	;   G=[_, _|I],
14477	    setarg(2, G, I),
14478	    (   I=[J|_]
14479	    ->  setarg(3, J, G)
14480	    ;   true
14481	    )
14482	),
14483	detach_variables___1(K, E),
14484	(   var(L)
14485	->  true
14486	;   L=suspension(_, M, _, _, N, O, P),
14487	    setarg(2, L, removed),
14488	    (   M==not_stored_yet
14489	    ->  Q=[]
14490	    ;   term_variables(term(N, O, P), Q),
14491		( arg(4, L, R),
14492		  (   var(R)
14493		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14494				S),
14495		      S=[_|T],
14496		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14497			       T),
14498		      (   T=[U|_]
14499		      ->  setarg(4, U, _)
14500		      ;   true
14501		      )
14502		  ;   R=[_, _|T],
14503		      setarg(2, R, T),
14504		      (   T=[U|_]
14505		      ->  setarg(4, U, R)
14506		      ;   true
14507		      )
14508		  )
14509		),
14510		'detach_known/1_1_$special_functor/3___3'(Q, L)
14511	    )
14512	),
14513	functor(C, B, A),
14514	C=..[_|V],
14515	append(V, W, X),
14516	variables(X).
14517'known/1_1_$special_functor/3___3__0'(A, B, C, D) :-
14518	nonvar(A),
14519	'chr lock'(A),
14520	'chr lock'(B),
14521	'chr lock'(C),
14522	\+ functor(A, B, C),
14523	'chr unlock'(A),
14524	'chr unlock'(B),
14525	'chr unlock'(C), !,
14526	(   var(D)
14527	->  true
14528	;   D=suspension(_, E, _, _, F, G, H),
14529	    setarg(2, D, removed),
14530	    (   E==not_stored_yet
14531	    ->  I=[]
14532	    ;   term_variables(term(F, G, H), I),
14533		( arg(4, D, J),
14534		  (   var(J)
14535		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14536				K),
14537		      K=[_|L],
14538		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14539			       L),
14540		      (   L=[M|_]
14541		      ->  setarg(4, M, _)
14542		      ;   true
14543		      )
14544		  ;   J=[_, _|L],
14545		      setarg(2, J, L),
14546		      (   L=[M|_]
14547		      ->  setarg(4, M, J)
14548		      ;   true
14549		      )
14550		  )
14551		),
14552		'detach_known/1_1_$special_functor/3___3'(I, D)
14553	    )
14554	),
14555	'known/1_1_$special_fail/0'.
14556'known/1_1_$special_functor/3___3__0'(C, B, A, S) :-
14557	nonvar(A),
14558	nonvar(B),
14559	(   'chr newvia_1'(C, D)
14560	->  get_attr(D, guard_entailment, E),
14561	    E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _)
14562	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14563		      F)
14564	),
14565	member(G, F),
14566	G=suspension(_, active, _, _, H, J, I),
14567	H==C,
14568	nonvar(I),
14569	nonvar(J), !,
14570	G=suspension(_, _, _, _, K, L, M),
14571	setarg(2, G, removed),
14572	term_variables(term(K, L, M), R),
14573	arg(4, G, N),
14574	(   var(N)
14575	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14576		      O),
14577	    O=[_|P],
14578	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14579		     P),
14580	    (   P=[Q|_]
14581	    ->  setarg(4, Q, _)
14582	    ;   true
14583	    )
14584	;   N=[_, _|P],
14585	    setarg(2, N, P),
14586	    (   P=[Q|_]
14587	    ->  setarg(4, Q, N)
14588	    ;   true
14589	    )
14590	),
14591	'detach_known/1_1_$special_functor/3___3'(R, G),
14592	(   var(S)
14593	->  true
14594	;   S=suspension(_, T, _, _, U, V, W),
14595	    setarg(2, S, removed),
14596	    (   T==not_stored_yet
14597	    ->  X=[]
14598	    ;   term_variables(term(U, V, W), X),
14599		( arg(4, S, Y),
14600		  (   var(Y)
14601		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14602				Z),
14603		      Z=[_|A1],
14604		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14605			       A1),
14606		      (   A1=[B1|_]
14607		      ->  setarg(4, B1, _)
14608		      ;   true
14609		      )
14610		  ;   Y=[_, _|A1],
14611		      setarg(2, Y, A1),
14612		      (   A1=[B1|_]
14613		      ->  setarg(4, B1, Y)
14614		      ;   true
14615		      )
14616		  )
14617		),
14618		'detach_known/1_1_$special_functor/3___3'(X, S)
14619	    )
14620	),
14621	'known/1_1_$special_fail/0'.
14622'known/1_1_$special_functor/3___3__0'(A, B, C, R) :-
14623	(   'chr newvia'([A, B, C], D)
14624	->  get_attr(D, guard_entailment, E),
14625	    E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _, _)
14626	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14627		      F)
14628	),
14629	member(G, F),
14630	G=suspension(_, active, _, _, H),
14631	nonvar(H),
14632	H=functor(I, J, K),
14633	I==A,
14634	J==B,
14635	K==C, !,
14636	G=suspension(_, _, _, _, L),
14637	setarg(2, G, removed),
14638	term_variables(L, Q),
14639	arg(4, G, M),
14640	(   var(M)
14641	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14642		      N),
14643	    N=[_|O],
14644	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
14645		     O),
14646	    (   O=[P|_]
14647	    ->  setarg(4, P, _)
14648	    ;   true
14649	    )
14650	;   M=[_, _|O],
14651	    setarg(2, M, O),
14652	    (   O=[P|_]
14653	    ->  setarg(4, P, M)
14654	    ;   true
14655	    )
14656	),
14657	'detach_known/1_1_$special_\\+/1___1'(Q, G),
14658	(   var(R)
14659	->  true
14660	;   R=suspension(_, S, _, _, T, U, V),
14661	    setarg(2, R, removed),
14662	    (   S==not_stored_yet
14663	    ->  W=[]
14664	    ;   term_variables(term(T, U, V), W),
14665		( arg(4, R, X),
14666		  (   var(X)
14667		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14668				Y),
14669		      Y=[_|Z],
14670		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14671			       Z),
14672		      (   Z=[A1|_]
14673		      ->  setarg(4, A1, _)
14674		      ;   true
14675		      )
14676		  ;   X=[_, _|Z],
14677		      setarg(2, X, Z),
14678		      (   Z=[A1|_]
14679		      ->  setarg(4, A1, X)
14680		      ;   true
14681		      )
14682		  )
14683		),
14684		'detach_known/1_1_$special_functor/3___3'(W, R)
14685	    )
14686	),
14687	'known/1_1_$special_fail/0'.
14688'known/1_1_$special_functor/3___3__0'(A, B, C, G) :-
14689	(   'chr newvia'([A, B, C], D)
14690	->  get_attr(D, guard_entailment, E),
14691	    E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14692	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14693		      F)
14694	), !,
14695	(   var(G)
14696	->  G=suspension(H, not_stored_yet, 0, _, A, B, C),
14697	    'chr gen_id'(H)
14698	;   true
14699	),
14700	'known/1_1_$special_functor/3___3__0__0__10'(F,
14701						     A,
14702						     B,
14703						     C,
14704						     G).
14705'known/1_1_$special_functor/3___3__0__0__10'([], A, B, C, D) :-
14706	'known/1_1_$special_functor/3___3__1'(A, B, C, D).
14707'known/1_1_$special_functor/3___3__0__0__10'([A|C1], E, G, I, Q) :-
14708	(   A=suspension(_, active, _, _, B, B1),
14709	    nonvar(B),
14710	    B=(\+C),
14711	    nonvar(C),
14712	    C=functor(D, F, H),
14713	    D==E,
14714	    F==G,
14715	    H==I
14716	->  ( A=suspension(_, _, _, _, J, K),
14717	      setarg(2, A, removed),
14718	      term_variables(term(J, K), P),
14719	      ( arg(4, A, L),
14720		(   var(L)
14721		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14722			      M),
14723		    M=[_|N],
14724		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14725			     N),
14726		    (   N=[O|_]
14727		    ->  setarg(4, O, _)
14728		    ;   true
14729		    )
14730		;   L=[_, _|N],
14731		    setarg(2, L, N),
14732		    (   N=[O|_]
14733		    ->  setarg(4, O, L)
14734		    ;   true
14735		    )
14736		)
14737	      ),
14738	      'detach_known/1_1_$special_;/2___2'(P, A)
14739	    ),
14740	    ( arg(2, Q, T),
14741	      setarg(2, Q, active),
14742	      ( arg(3, Q, R),
14743		S is R+1,
14744		setarg(3, Q, S)
14745	      ),
14746	      (   T==not_stored_yet
14747	      ->  Q=suspension(_, _, _, _, U, V, W),
14748		  term_variables(term(U, V, W), X),
14749		  'chr none_locked'(X),
14750		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14751			      Y),
14752		    Z=[Q|Y],
14753		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14754			     Z),
14755		    (   Y=[A1|_]
14756		    ->  setarg(4, A1, Z)
14757		    ;   true
14758		    )
14759		  ),
14760		  'attach_known/1_1_$special_functor/3___3'(X, Q)
14761	      ;   true
14762	      )
14763	    ),
14764	    known(B1),
14765	    (   Q=suspension(_, active, S, _, _, _, _)
14766	    ->  setarg(2, Q, inactive),
14767		'known/1_1_$special_functor/3___3__0__0__10'(C1,
14768							     E,
14769							     G,
14770							     I,
14771							     Q)
14772	    ;   true
14773	    )
14774	;   'known/1_1_$special_functor/3___3__0__0__10'(C1,
14775							 E,
14776							 G,
14777							 I,
14778							 Q)
14779	).
14780'known/1_1_$special_functor/3___3__0'(B, C, D, A) :-
14781	(   var(A)
14782	->  A=suspension(E, not_stored_yet, 0, _, B, C, D),
14783	    'chr gen_id'(E)
14784	;   true
14785	),
14786	'known/1_1_$special_functor/3___3__1'(B, C, D, A).
14787'known/1_1_$special_functor/3___3__1'(A, B, C, G) :-
14788	(   'chr newvia'([A, B, C], D)
14789	->  get_attr(D, guard_entailment, E),
14790	    E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14791	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14792		      F)
14793	), !,
14794	'known/1_1_$special_functor/3___3__1__0__11'(F,
14795						     A,
14796						     B,
14797						     C,
14798						     G).
14799'known/1_1_$special_functor/3___3__1__0__11'([], A, B, C, D) :-
14800	'known/1_1_$special_functor/3___3__2'(A, B, C, D).
14801'known/1_1_$special_functor/3___3__1__0__11'([A|D1], F, H, J, R) :-
14802	(   A=suspension(_, active, _, _, B, C1),
14803	    nonvar(B),
14804	    B=(C, _),
14805	    nonvar(C),
14806	    C=(\+D),
14807	    nonvar(D),
14808	    D=functor(E, G, I),
14809	    E==F,
14810	    G==H,
14811	    I==J
14812	->  ( A=suspension(_, _, _, _, K, L),
14813	      setarg(2, A, removed),
14814	      term_variables(term(K, L), Q),
14815	      ( arg(4, A, M),
14816		(   var(M)
14817		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14818			      N),
14819		    N=[_|O],
14820		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14821			     O),
14822		    (   O=[P|_]
14823		    ->  setarg(4, P, _)
14824		    ;   true
14825		    )
14826		;   M=[_, _|O],
14827		    setarg(2, M, O),
14828		    (   O=[P|_]
14829		    ->  setarg(4, P, M)
14830		    ;   true
14831		    )
14832		)
14833	      ),
14834	      'detach_known/1_1_$special_;/2___2'(Q, A)
14835	    ),
14836	    ( arg(2, R, U),
14837	      setarg(2, R, active),
14838	      ( arg(3, R, S),
14839		T is S+1,
14840		setarg(3, R, T)
14841	      ),
14842	      (   U==not_stored_yet
14843	      ->  R=suspension(_, _, _, _, V, W, X),
14844		  term_variables(term(V, W, X), Y),
14845		  'chr none_locked'(Y),
14846		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14847			      Z),
14848		    A1=[R|Z],
14849		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14850			     A1),
14851		    (   Z=[B1|_]
14852		    ->  setarg(4, B1, A1)
14853		    ;   true
14854		    )
14855		  ),
14856		  'attach_known/1_1_$special_functor/3___3'(Y, R)
14857	      ;   true
14858	      )
14859	    ),
14860	    known(C1),
14861	    (   R=suspension(_, active, T, _, _, _, _)
14862	    ->  setarg(2, R, inactive),
14863		'known/1_1_$special_functor/3___3__1__0__11'(D1,
14864							     F,
14865							     H,
14866							     J,
14867							     R)
14868	    ;   true
14869	    )
14870	;   'known/1_1_$special_functor/3___3__1__0__11'(D1,
14871							 F,
14872							 H,
14873							 J,
14874							 R)
14875	).
14876'known/1_1_$special_functor/3___3__1'(A, B, C, D) :-
14877	'known/1_1_$special_functor/3___3__2'(A, B, C, D).
14878'known/1_1_$special_functor/3___3__2'(A, E, F, G) :-
14879	(   'chr newvia_1'(A, B)
14880	->  get_attr(B, guard_entailment, C),
14881	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
14882	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14883		      D)
14884	), !,
14885	'known/1_1_$special_functor/3___3__2__0__12'(D,
14886						     A,
14887						     E,
14888						     F,
14889						     G).
14890'known/1_1_$special_functor/3___3__2__0__12'([], A, B, C, D) :-
14891	'known/1_1_$special_functor/3___3__3'(A, B, C, D).
14892'known/1_1_$special_functor/3___3__2__0__12'([A|M], E, N, O, P) :-
14893	(   A=suspension(_, active, _, _, B, _),
14894	    nonvar(B),
14895	    B=(\+C),
14896	    nonvar(C),
14897	    C=functor(D, _, _),
14898	    D==E
14899	->  ( A=suspension(_, _, _, _, F, G),
14900	      setarg(2, A, removed),
14901	      term_variables(term(F, G), L),
14902	      ( arg(4, A, H),
14903		(   var(H)
14904		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14905			      I),
14906		    I=[_|J],
14907		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
14908			     J),
14909		    (   J=[K|_]
14910		    ->  setarg(4, K, _)
14911		    ;   true
14912		    )
14913		;   H=[_, _|J],
14914		    setarg(2, H, J),
14915		    (   J=[K|_]
14916		    ->  setarg(4, K, H)
14917		    ;   true
14918		    )
14919		)
14920	      ),
14921	      'detach_known/1_1_$special_;/2___2'(L, A)
14922	    ),
14923	    'known/1_1_$special_functor/3___3__2__0__12'(M,
14924							 E,
14925							 N,
14926							 O,
14927							 P)
14928	;   'known/1_1_$special_functor/3___3__2__0__12'(M,
14929							 E,
14930							 N,
14931							 O,
14932							 P)
14933	).
14934'known/1_1_$special_functor/3___3__2'(A, B, C, D) :-
14935	'known/1_1_$special_functor/3___3__3'(A, B, C, D).
14936'known/1_1_$special_functor/3___3__3'(_, _, _, A) :-
14937	arg(2, A, D),
14938	setarg(2, A, active),
14939	arg(3, A, B),
14940	C is B+1,
14941	setarg(3, A, C),
14942	(   D==not_stored_yet
14943	->  A=suspension(_, _, _, _, E, F, G),
14944	    term_variables(term(E, F, G), H),
14945	    'chr none_locked'(H),
14946	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14947			I),
14948	      J=[A|I],
14949	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
14950		       J),
14951	      (   I=[K|_]
14952	      ->  setarg(4, K, J)
14953	      ;   true
14954	      )
14955	    ),
14956	    'attach_known/1_1_$special_functor/3___3'(H, A)
14957	;   true
14958	).
14959'known/1_1_$special_\\=/2'(A, B) :-
14960	'known/1_1_$special_\\=/2___2__0'(A, B, _).
14961'known/1_1_$special_\\=/2___2__0'(A, B, I) :-
14962	(   'chr newvia_2'(A, B, C)
14963	->  get_attr(C, guard_entailment, D),
14964	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _)
14965	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
14966		      E)
14967	),
14968	member(F, E),
14969	F=suspension(_, active, _, _, _, G, H),
14970	G==A,
14971	H==B, !,
14972	(   var(I)
14973	->  true
14974	;   I=suspension(_, J, _, _, _, K, L),
14975	    setarg(2, I, removed),
14976	    (   J==not_stored_yet
14977	    ->  M=[]
14978	    ;   term_variables(term(K, L), M),
14979		( arg(5, I, N),
14980		  (   var(N)
14981		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
14982				O),
14983		      O=[_|P],
14984		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
14985			       P),
14986		      (   P=[Q|_]
14987		      ->  setarg(5, Q, _)
14988		      ;   true
14989		      )
14990		  ;   N=[_, _|P],
14991		      setarg(2, N, P),
14992		      (   P=[Q|_]
14993		      ->  setarg(5, Q, N)
14994		      ;   true
14995		      )
14996		  )
14997		),
14998		'detach_known/1_1_$special_\\=/2___2'(M, I)
14999	    )
15000	).
15001'known/1_1_$special_\\=/2___2__0'(_, _, C) :-
15002	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
15003		  A),
15004	member(B, A),
15005	B=suspension(_, active, _), !,
15006	(   var(C)
15007	->  true
15008	;   C=suspension(_, D, _, _, _, E, F),
15009	    setarg(2, C, removed),
15010	    (   D==not_stored_yet
15011	    ->  G=[]
15012	    ;   term_variables(term(E, F), G),
15013		( arg(5, C, H),
15014		  (   var(H)
15015		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15016				I),
15017		      I=[_|J],
15018		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15019			       J),
15020		      (   J=[K|_]
15021		      ->  setarg(5, K, _)
15022		      ;   true
15023		      )
15024		  ;   H=[_, _|J],
15025		      setarg(2, H, J),
15026		      (   J=[K|_]
15027		      ->  setarg(5, K, H)
15028		      ;   true
15029		      )
15030		  )
15031		),
15032		'detach_known/1_1_$special_\\=/2___2'(G, C)
15033	    )
15034	).
15035'known/1_1_$special_\\=/2___2__0'(B, A, C) :-
15036	ground(A),
15037	ground(B),
15038	'chr lock'(B),
15039	'chr lock'(A),
15040	B=A,
15041	'chr unlock'(B),
15042	'chr unlock'(A), !,
15043	(   var(C)
15044	->  true
15045	;   C=suspension(_, D, _, _, _, E, F),
15046	    setarg(2, C, removed),
15047	    (   D==not_stored_yet
15048	    ->  G=[]
15049	    ;   term_variables(term(E, F), G),
15050		( arg(5, C, H),
15051		  (   var(H)
15052		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15053				I),
15054		      I=[_|J],
15055		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15056			       J),
15057		      (   J=[K|_]
15058		      ->  setarg(5, K, _)
15059		      ;   true
15060		      )
15061		  ;   H=[_, _|J],
15062		      setarg(2, H, J),
15063		      (   J=[K|_]
15064		      ->  setarg(5, K, H)
15065		      ;   true
15066		      )
15067		  )
15068		),
15069		'detach_known/1_1_$special_\\=/2___2'(G, C)
15070	    )
15071	),
15072	'known/1_1_$special_fail/0'.
15073'known/1_1_$special_\\=/2___2__0'(B, A, C) :-
15074	A==B, !,
15075	(   var(C)
15076	->  true
15077	;   C=suspension(_, D, _, _, _, E, F),
15078	    setarg(2, C, removed),
15079	    (   D==not_stored_yet
15080	    ->  G=[]
15081	    ;   term_variables(term(E, F), G),
15082		( arg(5, C, H),
15083		  (   var(H)
15084		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15085				I),
15086		      I=[_|J],
15087		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15088			       J),
15089		      (   J=[K|_]
15090		      ->  setarg(5, K, _)
15091		      ;   true
15092		      )
15093		  ;   H=[_, _|J],
15094		      setarg(2, H, J),
15095		      (   J=[K|_]
15096		      ->  setarg(5, K, H)
15097		      ;   true
15098		      )
15099		  )
15100		),
15101		'detach_known/1_1_$special_\\=/2___2'(G, C)
15102	    )
15103	),
15104	'known/1_1_$special_fail/0'.
15105'known/1_1_$special_\\=/2___2__0'(B, A, D) :-
15106	nonvar(A),
15107	(   var(B),
15108	    'chr lock'(A),
15109	    functor(A, M, C),
15110	    C>0,
15111	    'chr unlock'(A), !,
15112	    (   var(D)
15113	    ->  true
15114	    ;   D=suspension(_, E, _, _, _, F, G),
15115		setarg(2, D, removed),
15116		(   E==not_stored_yet
15117		->  H=[]
15118		;   term_variables(term(F, G), H),
15119		    ( arg(5, D, I),
15120		      (   var(I)
15121		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15122				    J),
15123			  J=[_|K],
15124			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15125				   K),
15126			  (   K=[L|_]
15127			  ->  setarg(5, L, _)
15128			  ;   true
15129			  )
15130		      ;   I=[_, _|K],
15131			  setarg(2, I, K),
15132			  (   K=[L|_]
15133			  ->  setarg(5, L, I)
15134			  ;   true
15135			  )
15136		      )
15137		    ),
15138		    'detach_known/1_1_$special_\\=/2___2'(H, D)
15139		)
15140	    ),
15141	    length(N, C),
15142	    A=..[M|O],
15143	    P=..[M|N],
15144	    add_args_nunif(O, N, Q),
15145	    R=(\+functor(B, M, C);B=P, Q),
15146	    known(R)
15147	;   nonvar(B),
15148	    'chr lock'(B),
15149	    functor(B, A1, B1),
15150	    'chr unlock'(B), !,
15151	    (   var(D)
15152	    ->  true
15153	    ;   D=suspension(_, S, _, _, _, T, U),
15154		setarg(2, D, removed),
15155		(   S==not_stored_yet
15156		->  V=[]
15157		;   term_variables(term(T, U), V),
15158		    ( arg(5, D, W),
15159		      (   var(W)
15160		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15161				    X),
15162			  X=[_|Y],
15163			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15164				   Y),
15165			  (   Y=[Z|_]
15166			  ->  setarg(5, Z, _)
15167			  ;   true
15168			  )
15169		      ;   W=[_, _|Y],
15170			  setarg(2, W, Y),
15171			  (   Y=[Z|_]
15172			  ->  setarg(5, Z, W)
15173			  ;   true
15174			  )
15175		      )
15176		    ),
15177		    'detach_known/1_1_$special_\\=/2___2'(V, D)
15178		)
15179	    ),
15180	    (   functor(A, A1, B1)
15181	    ->  B=..[A1|C1],
15182		A=..[A1|D1],
15183		add_args_nunif(C1, D1, E1),
15184		known(E1)
15185	    ;   true
15186	    )
15187	).
15188'known/1_1_$special_\\=/2___2__0'(B, C, A) :-
15189	(   var(A)
15190	->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
15191	    'chr gen_id'(D)
15192	;   true
15193	),
15194	(   '$novel_production'(A, 182), !,
15195	    '$extend_history'(A, 182),
15196	    arg(2, A, G),
15197	    setarg(2, A, active),
15198	    arg(4, A, E),
15199	    F is E+1,
15200	    setarg(4, A, F),
15201	    (   G==not_stored_yet
15202	    ->  A=suspension(_, _, _, _, _, H, I),
15203		term_variables(term(H, I), J),
15204		'chr none_locked'(J),
15205		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15206			    K),
15207		  L=[A|K],
15208		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15209			   L),
15210		  (   K=[M|_]
15211		  ->  setarg(5, M, L)
15212		  ;   true
15213		  )
15214		),
15215		'attach_known/1_1_$special_\\=/2___2'(J, A)
15216	    ;   true
15217	    ),
15218	    'known/1_1_$special_\\=/2'(C, B),
15219	    (   A=suspension(_, active, _, F, _, _, _)
15220	    ->  setarg(2, A, inactive),
15221		'known/1_1_$special_\\=/2___2__1'(B, C, A)
15222	    ;   true
15223	    )
15224	;   'known/1_1_$special_\\=/2___2__1'(B, C, A)
15225	).
15226'known/1_1_$special_\\=/2___2__1'(A, B, P) :-
15227	(   'chr newvia_2'(A, B, C)
15228	->  get_attr(C, guard_entailment, D),
15229	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
15230	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15231		      E)
15232	),
15233	member(F, E),
15234	F=suspension(_, active, _, _, G),
15235	nonvar(G),
15236	G=(H\=I),
15237	H==A,
15238	I==B, !,
15239	F=suspension(_, _, _, _, J),
15240	setarg(2, F, removed),
15241	term_variables(J, O),
15242	arg(4, F, K),
15243	(   var(K)
15244	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15245		      L),
15246	    L=[_|M],
15247	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15248		     M),
15249	    (   M=[N|_]
15250	    ->  setarg(4, N, _)
15251	    ;   true
15252	    )
15253	;   K=[_, _|M],
15254	    setarg(2, K, M),
15255	    (   M=[N|_]
15256	    ->  setarg(4, N, K)
15257	    ;   true
15258	    )
15259	),
15260	'detach_known/1_1_$special_\\+/1___1'(O, F),
15261	(   var(P)
15262	->  true
15263	;   P=suspension(_, Q, _, _, _, R, S),
15264	    setarg(2, P, removed),
15265	    (   Q==not_stored_yet
15266	    ->  T=[]
15267	    ;   term_variables(term(R, S), T),
15268		( arg(5, P, U),
15269		  (   var(U)
15270		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15271				V),
15272		      V=[_|W],
15273		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15274			       W),
15275		      (   W=[X|_]
15276		      ->  setarg(5, X, _)
15277		      ;   true
15278		      )
15279		  ;   U=[_, _|W],
15280		      setarg(2, U, W),
15281		      (   W=[X|_]
15282		      ->  setarg(5, X, U)
15283		      ;   true
15284		      )
15285		  )
15286		),
15287		'detach_known/1_1_$special_\\=/2___2'(T, P)
15288	    )
15289	),
15290	'known/1_1_$special_fail/0'.
15291'known/1_1_$special_\\=/2___2__1'(A, B, F) :-
15292	(   'chr newvia_2'(A, B, C)
15293	->  get_attr(C, guard_entailment, D),
15294	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
15295	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15296		      E)
15297	), !,
15298	'known/1_1_$special_\\=/2___2__1__0__11'(E, A, B, F).
15299'known/1_1_$special_\\=/2___2__1__0__11'([], A, B, C) :-
15300	'known/1_1_$special_\\=/2___2__2'(A, B, C).
15301'known/1_1_$special_\\=/2___2__1__0__11'([A|Z], E, G, O) :-
15302	(   A=suspension(_, active, _, _, B, Y),
15303	    nonvar(B),
15304	    B=(\+C),
15305	    nonvar(C),
15306	    C=(D\=F),
15307	    D==E,
15308	    F==G
15309	->  ( A=suspension(_, _, _, _, H, I),
15310	      setarg(2, A, removed),
15311	      term_variables(term(H, I), N),
15312	      ( arg(4, A, J),
15313		(   var(J)
15314		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15315			      K),
15316		    K=[_|L],
15317		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15318			     L),
15319		    (   L=[M|_]
15320		    ->  setarg(4, M, _)
15321		    ;   true
15322		    )
15323		;   J=[_, _|L],
15324		    setarg(2, J, L),
15325		    (   L=[M|_]
15326		    ->  setarg(4, M, J)
15327		    ;   true
15328		    )
15329		)
15330	      ),
15331	      'detach_known/1_1_$special_;/2___2'(N, A)
15332	    ),
15333	    ( arg(2, O, R),
15334	      setarg(2, O, active),
15335	      ( arg(4, O, P),
15336		Q is P+1,
15337		setarg(4, O, Q)
15338	      ),
15339	      (   R==not_stored_yet
15340	      ->  O=suspension(_, _, _, _, _, S, T),
15341		  term_variables(term(S, T), U),
15342		  'chr none_locked'(U),
15343		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15344			      V),
15345		    W=[O|V],
15346		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15347			     W),
15348		    (   V=[X|_]
15349		    ->  setarg(5, X, W)
15350		    ;   true
15351		    )
15352		  ),
15353		  'attach_known/1_1_$special_\\=/2___2'(U, O)
15354	      ;   true
15355	      )
15356	    ),
15357	    known(Y),
15358	    (   O=suspension(_, active, _, Q, _, _, _)
15359	    ->  setarg(2, O, inactive),
15360		'known/1_1_$special_\\=/2___2__1__0__11'(Z,
15361							 E,
15362							 G,
15363							 O)
15364	    ;   true
15365	    )
15366	;   'known/1_1_$special_\\=/2___2__1__0__11'(Z,
15367						     E,
15368						     G,
15369						     O)
15370	).
15371'known/1_1_$special_\\=/2___2__1'(A, B, C) :-
15372	'known/1_1_$special_\\=/2___2__2'(A, B, C).
15373'known/1_1_$special_\\=/2___2__2'(A, B, F) :-
15374	(   'chr newvia_2'(A, B, C)
15375	->  get_attr(C, guard_entailment, D),
15376	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
15377	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15378		      E)
15379	), !,
15380	'known/1_1_$special_\\=/2___2__2__0__12'(E, A, B, F).
15381'known/1_1_$special_\\=/2___2__2__0__12'([], A, B, C) :-
15382	'known/1_1_$special_\\=/2___2__3'(A, B, C).
15383'known/1_1_$special_\\=/2___2__2__0__12'([A|A1], F, H, P) :-
15384	(   A=suspension(_, active, _, _, B, Z),
15385	    nonvar(B),
15386	    B=(C, _),
15387	    nonvar(C),
15388	    C=(\+D),
15389	    nonvar(D),
15390	    D=(E\=G),
15391	    E==F,
15392	    G==H
15393	->  ( A=suspension(_, _, _, _, I, J),
15394	      setarg(2, A, removed),
15395	      term_variables(term(I, J), O),
15396	      ( arg(4, A, K),
15397		(   var(K)
15398		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15399			      L),
15400		    L=[_|M],
15401		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15402			     M),
15403		    (   M=[N|_]
15404		    ->  setarg(4, N, _)
15405		    ;   true
15406		    )
15407		;   K=[_, _|M],
15408		    setarg(2, K, M),
15409		    (   M=[N|_]
15410		    ->  setarg(4, N, K)
15411		    ;   true
15412		    )
15413		)
15414	      ),
15415	      'detach_known/1_1_$special_;/2___2'(O, A)
15416	    ),
15417	    ( arg(2, P, S),
15418	      setarg(2, P, active),
15419	      ( arg(4, P, Q),
15420		R is Q+1,
15421		setarg(4, P, R)
15422	      ),
15423	      (   S==not_stored_yet
15424	      ->  P=suspension(_, _, _, _, _, T, U),
15425		  term_variables(term(T, U), V),
15426		  'chr none_locked'(V),
15427		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15428			      W),
15429		    X=[P|W],
15430		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15431			     X),
15432		    (   W=[Y|_]
15433		    ->  setarg(5, Y, X)
15434		    ;   true
15435		    )
15436		  ),
15437		  'attach_known/1_1_$special_\\=/2___2'(V, P)
15438	      ;   true
15439	      )
15440	    ),
15441	    known(Z),
15442	    (   P=suspension(_, active, _, R, _, _, _)
15443	    ->  setarg(2, P, inactive),
15444		'known/1_1_$special_\\=/2___2__2__0__12'(A1,
15445							 F,
15446							 H,
15447							 P)
15448	    ;   true
15449	    )
15450	;   'known/1_1_$special_\\=/2___2__2__0__12'(A1,
15451						     F,
15452						     H,
15453						     P)
15454	).
15455'known/1_1_$special_\\=/2___2__2'(A, B, C) :-
15456	'known/1_1_$special_\\=/2___2__3'(A, B, C).
15457'known/1_1_$special_\\=/2___2__3'(_, _, A) :-
15458	arg(2, A, D),
15459	setarg(2, A, active),
15460	arg(4, A, B),
15461	C is B+1,
15462	setarg(4, A, C),
15463	(   D==not_stored_yet
15464	->  A=suspension(_, _, _, _, _, E, F),
15465	    term_variables(term(E, F), G),
15466	    'chr none_locked'(G),
15467	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15468			H),
15469	      I=[A|H],
15470	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
15471		       I),
15472	      (   H=[J|_]
15473	      ->  setarg(5, J, I)
15474	      ;   true
15475	      )
15476	    ),
15477	    'attach_known/1_1_$special_\\=/2___2'(G, A)
15478	;   true
15479	).
15480'known/1_1_$special_=/2'(A, B) :-
15481	'known/1_1_$special_=/2___2__0'(A, B, _).
15482'known/1_1_$special_=/2___2__0'(A, B, I) :-
15483	(   'chr newvia_2'(A, B, C)
15484	->  get_attr(C, guard_entailment, D),
15485	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _)
15486	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15487		      E)
15488	),
15489	member(F, E),
15490	F=suspension(_, active, _, _, G, H),
15491	G==A,
15492	H==B, !,
15493	(   var(I)
15494	->  true
15495	;   I=suspension(_, J, _, _, K, L),
15496	    setarg(2, I, removed),
15497	    (   J==not_stored_yet
15498	    ->  M=[]
15499	    ;   term_variables(term(K, L), M),
15500		( arg(4, I, N),
15501		  (   var(N)
15502		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15503				O),
15504		      O=[_|P],
15505		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15506			       P),
15507		      (   P=[Q|_]
15508		      ->  setarg(4, Q, _)
15509		      ;   true
15510		      )
15511		  ;   N=[_, _|P],
15512		      setarg(2, N, P),
15513		      (   P=[Q|_]
15514		      ->  setarg(4, Q, N)
15515		      ;   true
15516		      )
15517		  )
15518		),
15519		'detach_known/1_1_$special_=/2___2'(M, I)
15520	    )
15521	).
15522'known/1_1_$special_=/2___2__0'(_, _, C) :-
15523	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
15524		  A),
15525	member(B, A),
15526	B=suspension(_, active, _), !,
15527	(   var(C)
15528	->  true
15529	;   C=suspension(_, D, _, _, E, F),
15530	    setarg(2, C, removed),
15531	    (   D==not_stored_yet
15532	    ->  G=[]
15533	    ;   term_variables(term(E, F), G),
15534		( arg(4, C, H),
15535		  (   var(H)
15536		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15537				I),
15538		      I=[_|J],
15539		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15540			       J),
15541		      (   J=[K|_]
15542		      ->  setarg(4, K, _)
15543		      ;   true
15544		      )
15545		  ;   H=[_, _|J],
15546		      setarg(2, H, J),
15547		      (   J=[K|_]
15548		      ->  setarg(4, K, H)
15549		      ;   true
15550		      )
15551		  )
15552		),
15553		'detach_known/1_1_$special_=/2___2'(G, C)
15554	    )
15555	).
15556'known/1_1_$special_=/2___2__0'(B, A, C) :-
15557	A==B, !,
15558	(   var(C)
15559	->  true
15560	;   C=suspension(_, D, _, _, E, F),
15561	    setarg(2, C, removed),
15562	    (   D==not_stored_yet
15563	    ->  G=[]
15564	    ;   term_variables(term(E, F), G),
15565		( arg(4, C, H),
15566		  (   var(H)
15567		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15568				I),
15569		      I=[_|J],
15570		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15571			       J),
15572		      (   J=[K|_]
15573		      ->  setarg(4, K, _)
15574		      ;   true
15575		      )
15576		  ;   H=[_, _|J],
15577		      setarg(2, H, J),
15578		      (   J=[K|_]
15579		      ->  setarg(4, K, H)
15580		      ;   true
15581		      )
15582		  )
15583		),
15584		'detach_known/1_1_$special_=/2___2'(G, C)
15585	    )
15586	).
15587'known/1_1_$special_=/2___2__0'(A, K, B) :-
15588	var(A), !,
15589	(   var(B)
15590	->  true
15591	;   B=suspension(_, C, _, _, D, E),
15592	    setarg(2, B, removed),
15593	    (   C==not_stored_yet
15594	    ->  F=[]
15595	    ;   term_variables(term(D, E), F),
15596		( arg(4, B, G),
15597		  (   var(G)
15598		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15599				H),
15600		      H=[_|I],
15601		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15602			       I),
15603		      (   I=[J|_]
15604		      ->  setarg(4, J, _)
15605		      ;   true
15606		      )
15607		  ;   G=[_, _|I],
15608		      setarg(2, G, I),
15609		      (   I=[J|_]
15610		      ->  setarg(4, J, G)
15611		      ;   true
15612		      )
15613		  )
15614		),
15615		'detach_known/1_1_$special_=/2___2'(F, B)
15616	    )
15617	),
15618	A=K.
15619'known/1_1_$special_=/2___2__0'(K, A, B) :-
15620	var(A), !,
15621	(   var(B)
15622	->  true
15623	;   B=suspension(_, C, _, _, D, E),
15624	    setarg(2, B, removed),
15625	    (   C==not_stored_yet
15626	    ->  F=[]
15627	    ;   term_variables(term(D, E), F),
15628		( arg(4, B, G),
15629		  (   var(G)
15630		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15631				H),
15632		      H=[_|I],
15633		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15634			       I),
15635		      (   I=[J|_]
15636		      ->  setarg(4, J, _)
15637		      ;   true
15638		      )
15639		  ;   G=[_, _|I],
15640		      setarg(2, G, I),
15641		      (   I=[J|_]
15642		      ->  setarg(4, J, G)
15643		      ;   true
15644		      )
15645		  )
15646		),
15647		'detach_known/1_1_$special_=/2___2'(F, B)
15648	    )
15649	),
15650	K=A.
15651'known/1_1_$special_=/2___2__0'(A, K, B) :-
15652	'chr lock'(A),
15653	functor(A, L, M),
15654	'chr unlock'(A), !,
15655	(   var(B)
15656	->  true
15657	;   B=suspension(_, C, _, _, D, E),
15658	    setarg(2, B, removed),
15659	    (   C==not_stored_yet
15660	    ->  F=[]
15661	    ;   term_variables(term(D, E), F),
15662		( arg(4, B, G),
15663		  (   var(G)
15664		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15665				H),
15666		      H=[_|I],
15667		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15668			       I),
15669		      (   I=[J|_]
15670		      ->  setarg(4, J, _)
15671		      ;   true
15672		      )
15673		  ;   G=[_, _|I],
15674		      setarg(2, G, I),
15675		      (   I=[J|_]
15676		      ->  setarg(4, J, G)
15677		      ;   true
15678		      )
15679		  )
15680		),
15681		'detach_known/1_1_$special_=/2___2'(F, B)
15682	    )
15683	),
15684	(   functor(K, L, M),
15685	    A=K
15686	->  true
15687	;   'known/1_1_$special_fail/0'
15688	).
15689'known/1_1_$special_=/2___2__0'(A, B, P) :-
15690	(   'chr newvia_2'(A, B, C)
15691	->  get_attr(C, guard_entailment, D),
15692	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
15693	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15694		      E)
15695	),
15696	member(F, E),
15697	F=suspension(_, active, _, _, G),
15698	nonvar(G),
15699	G=(H=I),
15700	H==A,
15701	I==B, !,
15702	F=suspension(_, _, _, _, J),
15703	setarg(2, F, removed),
15704	term_variables(J, O),
15705	arg(4, F, K),
15706	(   var(K)
15707	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15708		      L),
15709	    L=[_|M],
15710	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
15711		     M),
15712	    (   M=[N|_]
15713	    ->  setarg(4, N, _)
15714	    ;   true
15715	    )
15716	;   K=[_, _|M],
15717	    setarg(2, K, M),
15718	    (   M=[N|_]
15719	    ->  setarg(4, N, K)
15720	    ;   true
15721	    )
15722	),
15723	'detach_known/1_1_$special_\\+/1___1'(O, F),
15724	(   var(P)
15725	->  true
15726	;   P=suspension(_, Q, _, _, R, S),
15727	    setarg(2, P, removed),
15728	    (   Q==not_stored_yet
15729	    ->  T=[]
15730	    ;   term_variables(term(R, S), T),
15731		( arg(4, P, U),
15732		  (   var(U)
15733		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15734				V),
15735		      V=[_|W],
15736		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15737			       W),
15738		      (   W=[X|_]
15739		      ->  setarg(4, X, _)
15740		      ;   true
15741		      )
15742		  ;   U=[_, _|W],
15743		      setarg(2, U, W),
15744		      (   W=[X|_]
15745		      ->  setarg(4, X, U)
15746		      ;   true
15747		      )
15748		  )
15749		),
15750		'detach_known/1_1_$special_=/2___2'(T, P)
15751	    )
15752	),
15753	'known/1_1_$special_fail/0'.
15754'known/1_1_$special_=/2___2__0'(A, B, F) :-
15755	(   'chr newvia_2'(A, B, C)
15756	->  get_attr(C, guard_entailment, D),
15757	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
15758	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15759		      E)
15760	), !,
15761	(   var(F)
15762	->  F=suspension(G, not_stored_yet, 0, _, A, B),
15763	    'chr gen_id'(G)
15764	;   true
15765	),
15766	'known/1_1_$special_=/2___2__0__0__10'(E, A, B, F).
15767'known/1_1_$special_=/2___2__0__0__10'([], A, B, C) :-
15768	'known/1_1_$special_=/2___2__1'(A, B, C).
15769'known/1_1_$special_=/2___2__0__0__10'([A|Z], E, G, O) :-
15770	(   A=suspension(_, active, _, _, B, Y),
15771	    nonvar(B),
15772	    B=(\+C),
15773	    nonvar(C),
15774	    C=(D=F),
15775	    D==E,
15776	    F==G
15777	->  ( A=suspension(_, _, _, _, H, I),
15778	      setarg(2, A, removed),
15779	      term_variables(term(H, I), N),
15780	      ( arg(4, A, J),
15781		(   var(J)
15782		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15783			      K),
15784		    K=[_|L],
15785		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15786			     L),
15787		    (   L=[M|_]
15788		    ->  setarg(4, M, _)
15789		    ;   true
15790		    )
15791		;   J=[_, _|L],
15792		    setarg(2, J, L),
15793		    (   L=[M|_]
15794		    ->  setarg(4, M, J)
15795		    ;   true
15796		    )
15797		)
15798	      ),
15799	      'detach_known/1_1_$special_;/2___2'(N, A)
15800	    ),
15801	    ( arg(2, O, R),
15802	      setarg(2, O, active),
15803	      ( arg(3, O, P),
15804		Q is P+1,
15805		setarg(3, O, Q)
15806	      ),
15807	      (   R==not_stored_yet
15808	      ->  O=suspension(_, _, _, _, S, T),
15809		  term_variables(term(S, T), U),
15810		  'chr none_locked'(U),
15811		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15812			      V),
15813		    W=[O|V],
15814		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15815			     W),
15816		    (   V=[X|_]
15817		    ->  setarg(4, X, W)
15818		    ;   true
15819		    )
15820		  ),
15821		  'attach_known/1_1_$special_=/2___2'(U, O)
15822	      ;   true
15823	      )
15824	    ),
15825	    known(Y),
15826	    (   O=suspension(_, active, Q, _, _, _)
15827	    ->  setarg(2, O, inactive),
15828		'known/1_1_$special_=/2___2__0__0__10'(Z,
15829						       E,
15830						       G,
15831						       O)
15832	    ;   true
15833	    )
15834	;   'known/1_1_$special_=/2___2__0__0__10'(Z,
15835						   E,
15836						   G,
15837						   O)
15838	).
15839'known/1_1_$special_=/2___2__0'(B, C, A) :-
15840	(   var(A)
15841	->  A=suspension(D, not_stored_yet, 0, _, B, C),
15842	    'chr gen_id'(D)
15843	;   true
15844	),
15845	'known/1_1_$special_=/2___2__1'(B, C, A).
15846'known/1_1_$special_=/2___2__1'(A, B, F) :-
15847	(   'chr newvia_2'(A, B, C)
15848	->  get_attr(C, guard_entailment, D),
15849	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
15850	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15851		      E)
15852	), !,
15853	'known/1_1_$special_=/2___2__1__0__11'(E, A, B, F).
15854'known/1_1_$special_=/2___2__1__0__11'([], A, B, C) :-
15855	'known/1_1_$special_=/2___2__2'(A, B, C).
15856'known/1_1_$special_=/2___2__1__0__11'([A|A1], F, H, P) :-
15857	(   A=suspension(_, active, _, _, B, Z),
15858	    nonvar(B),
15859	    B=(C, _),
15860	    nonvar(C),
15861	    C=(\+D),
15862	    nonvar(D),
15863	    D=(E=G),
15864	    E==F,
15865	    G==H
15866	->  ( A=suspension(_, _, _, _, I, J),
15867	      setarg(2, A, removed),
15868	      term_variables(term(I, J), O),
15869	      ( arg(4, A, K),
15870		(   var(K)
15871		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15872			      L),
15873		    L=[_|M],
15874		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
15875			     M),
15876		    (   M=[N|_]
15877		    ->  setarg(4, N, _)
15878		    ;   true
15879		    )
15880		;   K=[_, _|M],
15881		    setarg(2, K, M),
15882		    (   M=[N|_]
15883		    ->  setarg(4, N, K)
15884		    ;   true
15885		    )
15886		)
15887	      ),
15888	      'detach_known/1_1_$special_;/2___2'(O, A)
15889	    ),
15890	    ( arg(2, P, S),
15891	      setarg(2, P, active),
15892	      ( arg(3, P, Q),
15893		R is Q+1,
15894		setarg(3, P, R)
15895	      ),
15896	      (   S==not_stored_yet
15897	      ->  P=suspension(_, _, _, _, T, U),
15898		  term_variables(term(T, U), V),
15899		  'chr none_locked'(V),
15900		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15901			      W),
15902		    X=[P|W],
15903		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15904			     X),
15905		    (   W=[Y|_]
15906		    ->  setarg(4, Y, X)
15907		    ;   true
15908		    )
15909		  ),
15910		  'attach_known/1_1_$special_=/2___2'(V, P)
15911	      ;   true
15912	      )
15913	    ),
15914	    known(Z),
15915	    (   P=suspension(_, active, R, _, _, _)
15916	    ->  setarg(2, P, inactive),
15917		'known/1_1_$special_=/2___2__1__0__11'(A1,
15918						       F,
15919						       H,
15920						       P)
15921	    ;   true
15922	    )
15923	;   'known/1_1_$special_=/2___2__1__0__11'(A1,
15924						   F,
15925						   H,
15926						   P)
15927	).
15928'known/1_1_$special_=/2___2__1'(A, B, C) :-
15929	'known/1_1_$special_=/2___2__2'(A, B, C).
15930'known/1_1_$special_=/2___2__2'(_, _, A) :-
15931	arg(2, A, D),
15932	setarg(2, A, active),
15933	arg(3, A, B),
15934	C is B+1,
15935	setarg(3, A, C),
15936	(   D==not_stored_yet
15937	->  A=suspension(_, _, _, _, E, F),
15938	    term_variables(term(E, F), G),
15939	    'chr none_locked'(G),
15940	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15941			H),
15942	      I=[A|H],
15943	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
15944		       I),
15945	      (   H=[J|_]
15946	      ->  setarg(4, J, I)
15947	      ;   true
15948	      )
15949	    ),
15950	    'attach_known/1_1_$special_=/2___2'(G, A)
15951	;   true
15952	).
15953'known/1_1_$special_,/2'(_, _) :-
15954	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
15955		  A),
15956	member(B, A),
15957	B=suspension(_, active, _), !.
15958'known/1_1_$special_,/2'(A, B) :-
15959	known(A),
15960	known(B).
15961'known/1_1_$special_\\==/2'(A, B) :-
15962	'known/1_1_$special_\\==/2___2__0'(A, B, _).
15963'known/1_1_$special_\\==/2___2__0'(A, B, I) :-
15964	(   'chr newvia_2'(A, B, C)
15965	->  get_attr(C, guard_entailment, D),
15966	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _)
15967	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
15968		      E)
15969	),
15970	member(F, E),
15971	F=suspension(_, active, _, _, _, G, H),
15972	G==A,
15973	H==B, !,
15974	(   var(I)
15975	->  true
15976	;   I=suspension(_, J, _, _, _, K, L),
15977	    setarg(2, I, removed),
15978	    (   J==not_stored_yet
15979	    ->  M=[]
15980	    ;   term_variables(term(K, L), M),
15981		( arg(5, I, N),
15982		  (   var(N)
15983		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
15984				O),
15985		      O=[_|P],
15986		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
15987			       P),
15988		      (   P=[Q|_]
15989		      ->  setarg(5, Q, _)
15990		      ;   true
15991		      )
15992		  ;   N=[_, _|P],
15993		      setarg(2, N, P),
15994		      (   P=[Q|_]
15995		      ->  setarg(5, Q, N)
15996		      ;   true
15997		      )
15998		  )
15999		),
16000		'detach_known/1_1_$special_\\==/2___2'(M, I)
16001	    )
16002	).
16003'known/1_1_$special_\\==/2___2__0'(B, C, A) :-
16004	(   var(A)
16005	->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
16006	    'chr gen_id'(D)
16007	;   true
16008	),
16009	(   '$novel_production'(A, 138),
16010	    number(B), !,
16011	    '$extend_history'(A, 138),
16012	    arg(2, A, G),
16013	    setarg(2, A, active),
16014	    arg(4, A, E),
16015	    F is E+1,
16016	    setarg(4, A, F),
16017	    (   G==not_stored_yet
16018	    ->  A=suspension(_, _, _, _, _, H, I),
16019		term_variables(term(H, I), J),
16020		'chr none_locked'(J),
16021		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16022			    K),
16023		  L=[A|K],
16024		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16025			   L),
16026		  (   K=[M|_]
16027		  ->  setarg(5, M, L)
16028		  ;   true
16029		  )
16030		),
16031		'attach_known/1_1_$special_\\==/2___2'(J, A)
16032	    ;   true
16033	    ),
16034	    'known/1_1_$special_=\\=/2'(B, C),
16035	    (   A=suspension(_, active, _, F, _, _, _)
16036	    ->  setarg(2, A, inactive),
16037		'known/1_1_$special_\\==/2___2__1'(B, C, A)
16038	    ;   true
16039	    )
16040	;   'known/1_1_$special_\\==/2___2__1'(B, C, A)
16041	).
16042'known/1_1_$special_\\==/2___2__1'(L, B, A) :-
16043	'$novel_production'(A, 139),
16044	number(B), !,
16045	'$extend_history'(A, 139),
16046	arg(2, A, E),
16047	setarg(2, A, active),
16048	arg(4, A, C),
16049	D is C+1,
16050	setarg(4, A, D),
16051	(   E==not_stored_yet
16052	->  A=suspension(_, _, _, _, _, F, G),
16053	    term_variables(term(F, G), H),
16054	    'chr none_locked'(H),
16055	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16056			I),
16057	      J=[A|I],
16058	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16059		       J),
16060	      (   I=[K|_]
16061	      ->  setarg(5, K, J)
16062	      ;   true
16063	      )
16064	    ),
16065	    'attach_known/1_1_$special_\\==/2___2'(H, A)
16066	;   true
16067	),
16068	'known/1_1_$special_=\\=/2'(L, B),
16069	(   A=suspension(_, active, _, D, _, _, _)
16070	->  setarg(2, A, inactive),
16071	    'known/1_1_$special_\\==/2___2__2'(L, B, A)
16072	;   true
16073	).
16074'known/1_1_$special_\\==/2___2__1'(A, B, C) :-
16075	'known/1_1_$special_\\==/2___2__2'(A, B, C).
16076'known/1_1_$special_\\==/2___2__2'(_, _, C) :-
16077	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
16078		  A),
16079	member(B, A),
16080	B=suspension(_, active, _), !,
16081	(   var(C)
16082	->  true
16083	;   C=suspension(_, D, _, _, _, E, F),
16084	    setarg(2, C, removed),
16085	    (   D==not_stored_yet
16086	    ->  G=[]
16087	    ;   term_variables(term(E, F), G),
16088		( arg(5, C, H),
16089		  (   var(H)
16090		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16091				I),
16092		      I=[_|J],
16093		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16094			       J),
16095		      (   J=[K|_]
16096		      ->  setarg(5, K, _)
16097		      ;   true
16098		      )
16099		  ;   H=[_, _|J],
16100		      setarg(2, H, J),
16101		      (   J=[K|_]
16102		      ->  setarg(5, K, H)
16103		      ;   true
16104		      )
16105		  )
16106		),
16107		'detach_known/1_1_$special_\\==/2___2'(G, C)
16108	    )
16109	).
16110'known/1_1_$special_\\==/2___2__2'(A, B, P) :-
16111	(   'chr newvia_2'(A, B, C)
16112	->  get_attr(C, guard_entailment, D),
16113	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
16114	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
16115		      E)
16116	),
16117	member(F, E),
16118	F=suspension(_, active, _, _, G),
16119	nonvar(G),
16120	G=(H\==I),
16121	H==A,
16122	I==B, !,
16123	F=suspension(_, _, _, _, J),
16124	setarg(2, F, removed),
16125	term_variables(J, O),
16126	arg(4, F, K),
16127	(   var(K)
16128	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
16129		      L),
16130	    L=[_|M],
16131	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
16132		     M),
16133	    (   M=[N|_]
16134	    ->  setarg(4, N, _)
16135	    ;   true
16136	    )
16137	;   K=[_, _|M],
16138	    setarg(2, K, M),
16139	    (   M=[N|_]
16140	    ->  setarg(4, N, K)
16141	    ;   true
16142	    )
16143	),
16144	'detach_known/1_1_$special_\\+/1___1'(O, F),
16145	(   var(P)
16146	->  true
16147	;   P=suspension(_, Q, _, _, _, R, S),
16148	    setarg(2, P, removed),
16149	    (   Q==not_stored_yet
16150	    ->  T=[]
16151	    ;   term_variables(term(R, S), T),
16152		( arg(5, P, U),
16153		  (   var(U)
16154		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16155				V),
16156		      V=[_|W],
16157		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16158			       W),
16159		      (   W=[X|_]
16160		      ->  setarg(5, X, _)
16161		      ;   true
16162		      )
16163		  ;   U=[_, _|W],
16164		      setarg(2, U, W),
16165		      (   W=[X|_]
16166		      ->  setarg(5, X, U)
16167		      ;   true
16168		      )
16169		  )
16170		),
16171		'detach_known/1_1_$special_\\==/2___2'(T, P)
16172	    )
16173	),
16174	'known/1_1_$special_fail/0'.
16175'known/1_1_$special_\\==/2___2__2'(A, B, P) :-
16176	(   'chr newvia_2'(A, B, C)
16177	->  get_attr(C, guard_entailment, D),
16178	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _)
16179	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16180		      E)
16181	),
16182	member(F, E),
16183	F=suspension(_, active, _, _, _, G, H),
16184	G==A,
16185	H==B, !,
16186	F=suspension(_, _, _, _, _, I, J),
16187	setarg(2, F, removed),
16188	term_variables(term(I, J), O),
16189	arg(5, F, K),
16190	(   var(K)
16191	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16192		      L),
16193	    L=[_|M],
16194	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16195		     M),
16196	    (   M=[N|_]
16197	    ->  setarg(5, N, _)
16198	    ;   true
16199	    )
16200	;   K=[_, _|M],
16201	    setarg(2, K, M),
16202	    (   M=[N|_]
16203	    ->  setarg(5, N, K)
16204	    ;   true
16205	    )
16206	),
16207	'detach_known/1_1_$special_==/2___2'(O, F),
16208	(   var(P)
16209	->  true
16210	;   P=suspension(_, Q, _, _, _, R, S),
16211	    setarg(2, P, removed),
16212	    (   Q==not_stored_yet
16213	    ->  T=[]
16214	    ;   term_variables(term(R, S), T),
16215		( arg(5, P, U),
16216		  (   var(U)
16217		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16218				V),
16219		      V=[_|W],
16220		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16221			       W),
16222		      (   W=[X|_]
16223		      ->  setarg(5, X, _)
16224		      ;   true
16225		      )
16226		  ;   U=[_, _|W],
16227		      setarg(2, U, W),
16228		      (   W=[X|_]
16229		      ->  setarg(5, X, U)
16230		      ;   true
16231		      )
16232		  )
16233		),
16234		'detach_known/1_1_$special_\\==/2___2'(T, P)
16235	    )
16236	),
16237	'known/1_1_$special_fail/0'.
16238'known/1_1_$special_\\==/2___2__2'(A, E, F) :-
16239	(   'chr newvia_1'(A, B)
16240	->  get_attr(B, guard_entailment, C),
16241	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _)
16242	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16243		      D)
16244	), !,
16245	'known/1_1_$special_\\==/2___2__2__0__9'(D, A, E, F).
16246'known/1_1_$special_\\==/2___2__2__0__9'([], A, B, C) :-
16247	'known/1_1_$special_\\==/2___2__3'(A, B, C).
16248'known/1_1_$special_\\==/2___2__2__0__9'([A|Q], C, P, D) :-
16249	(   A=suspension(_, active, _, _, _, O, B),
16250	    B==C,
16251	    E=t(229, A, D),
16252	    '$novel_production'(A, E),
16253	    '$novel_production'(D, E)
16254	->  '$extend_history'(D, E),
16255	    ( arg(2, D, H),
16256	      setarg(2, D, active),
16257	      ( arg(4, D, F),
16258		G is F+1,
16259		setarg(4, D, G)
16260	      ),
16261	      (   H==not_stored_yet
16262	      ->  D=suspension(_, _, _, _, _, I, J),
16263		  term_variables(term(I, J), K),
16264		  'chr none_locked'(K),
16265		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16266			      L),
16267		    M=[D|L],
16268		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16269			     M),
16270		    (   L=[N|_]
16271		    ->  setarg(5, N, M)
16272		    ;   true
16273		    )
16274		  ),
16275		  'attach_known/1_1_$special_\\==/2___2'(K, D)
16276	      ;   true
16277	      )
16278	    ),
16279	    'known/1_1_$special_\\==/2'(O, P),
16280	    (   D=suspension(_, active, _, G, _, _, _)
16281	    ->  setarg(2, D, inactive),
16282		'known/1_1_$special_\\==/2___2__2__0__9'(Q,
16283							 C,
16284							 P,
16285							 D)
16286	    ;   true
16287	    )
16288	;   'known/1_1_$special_\\==/2___2__2__0__9'(Q,
16289						     C,
16290						     P,
16291						     D)
16292	).
16293'known/1_1_$special_\\==/2___2__2'(A, B, C) :-
16294	'known/1_1_$special_\\==/2___2__3'(A, B, C).
16295'known/1_1_$special_\\==/2___2__3'(L, K, A) :-
16296	'$novel_production'(A, 231), !,
16297	'$extend_history'(A, 231),
16298	arg(2, A, D),
16299	setarg(2, A, active),
16300	arg(4, A, B),
16301	C is B+1,
16302	setarg(4, A, C),
16303	(   D==not_stored_yet
16304	->  A=suspension(_, _, _, _, _, E, F),
16305	    term_variables(term(E, F), G),
16306	    'chr none_locked'(G),
16307	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16308			H),
16309	      I=[A|H],
16310	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16311		       I),
16312	      (   H=[J|_]
16313	      ->  setarg(5, J, I)
16314	      ;   true
16315	      )
16316	    ),
16317	    'attach_known/1_1_$special_\\==/2___2'(G, A)
16318	;   true
16319	),
16320	'known/1_1_$special_\\==/2'(K, L),
16321	(   A=suspension(_, active, _, C, _, _, _)
16322	->  setarg(2, A, inactive),
16323	    'known/1_1_$special_\\==/2___2__4'(L, K, A)
16324	;   true
16325	).
16326'known/1_1_$special_\\==/2___2__3'(A, B, C) :-
16327	'known/1_1_$special_\\==/2___2__4'(A, B, C).
16328'known/1_1_$special_\\==/2___2__4'(B, A, C) :-
16329	A==B,
16330	'$novel_production'(C, 232), !,
16331	'$extend_history'(C, 232),
16332	arg(2, C, F),
16333	setarg(2, C, active),
16334	arg(4, C, D),
16335	E is D+1,
16336	setarg(4, C, E),
16337	(   F==not_stored_yet
16338	->  C=suspension(_, _, _, _, _, G, H),
16339	    term_variables(term(G, H), I),
16340	    'chr none_locked'(I),
16341	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16342			J),
16343	      K=[C|J],
16344	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16345		       K),
16346	      (   J=[L|_]
16347	      ->  setarg(5, L, K)
16348	      ;   true
16349	      )
16350	    ),
16351	    'attach_known/1_1_$special_\\==/2___2'(I, C)
16352	;   true
16353	),
16354	'known/1_1_$special_fail/0',
16355	(   C=suspension(_, active, _, E, _, _, _)
16356	->  setarg(2, C, inactive),
16357	    'known/1_1_$special_\\==/2___2__5'(B, A, C)
16358	;   true
16359	).
16360'known/1_1_$special_\\==/2___2__4'(A, B, C) :-
16361	'known/1_1_$special_\\==/2___2__5'(A, B, C).
16362'known/1_1_$special_\\==/2___2__5'(B, A, C) :-
16363	nonvar(A),
16364	nonvar(B),
16365	'chr lock'(B),
16366	functor(B, L, M),
16367	'chr unlock'(B), !,
16368	(   var(C)
16369	->  true
16370	;   C=suspension(_, D, _, _, _, E, F),
16371	    setarg(2, C, removed),
16372	    (   D==not_stored_yet
16373	    ->  G=[]
16374	    ;   term_variables(term(E, F), G),
16375		( arg(5, C, H),
16376		  (   var(H)
16377		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16378				I),
16379		      I=[_|J],
16380		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16381			       J),
16382		      (   J=[K|_]
16383		      ->  setarg(5, K, _)
16384		      ;   true
16385		      )
16386		  ;   H=[_, _|J],
16387		      setarg(2, H, J),
16388		      (   J=[K|_]
16389		      ->  setarg(5, K, H)
16390		      ;   true
16391		      )
16392		  )
16393		),
16394		'detach_known/1_1_$special_\\==/2___2'(G, C)
16395	    )
16396	),
16397	(   functor(A, L, M)
16398	->  B=..[L|N],
16399	    A=..[L|O],
16400	    add_args_nmatch(N, O, P),
16401	    known(P)
16402	;   true
16403	).
16404'known/1_1_$special_\\==/2___2__5'(A, B, F) :-
16405	(   'chr newvia_2'(A, B, C)
16406	->  get_attr(C, guard_entailment, D),
16407	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
16408	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16409		      E)
16410	), !,
16411	'known/1_1_$special_\\==/2___2__5__0__13'(E,
16412						  A,
16413						  B,
16414						  F).
16415'known/1_1_$special_\\==/2___2__5__0__13'([], A, B, C) :-
16416	'known/1_1_$special_\\==/2___2__6'(A, B, C).
16417'known/1_1_$special_\\==/2___2__5__0__13'([A|Z], E, G, O) :-
16418	(   A=suspension(_, active, _, _, B, Y),
16419	    nonvar(B),
16420	    B=(\+C),
16421	    nonvar(C),
16422	    C=(D\==F),
16423	    D==E,
16424	    F==G
16425	->  ( A=suspension(_, _, _, _, H, I),
16426	      setarg(2, A, removed),
16427	      term_variables(term(H, I), N),
16428	      ( arg(4, A, J),
16429		(   var(J)
16430		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16431			      K),
16432		    K=[_|L],
16433		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16434			     L),
16435		    (   L=[M|_]
16436		    ->  setarg(4, M, _)
16437		    ;   true
16438		    )
16439		;   J=[_, _|L],
16440		    setarg(2, J, L),
16441		    (   L=[M|_]
16442		    ->  setarg(4, M, J)
16443		    ;   true
16444		    )
16445		)
16446	      ),
16447	      'detach_known/1_1_$special_;/2___2'(N, A)
16448	    ),
16449	    ( arg(2, O, R),
16450	      setarg(2, O, active),
16451	      ( arg(4, O, P),
16452		Q is P+1,
16453		setarg(4, O, Q)
16454	      ),
16455	      (   R==not_stored_yet
16456	      ->  O=suspension(_, _, _, _, _, S, T),
16457		  term_variables(term(S, T), U),
16458		  'chr none_locked'(U),
16459		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16460			      V),
16461		    W=[O|V],
16462		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16463			     W),
16464		    (   V=[X|_]
16465		    ->  setarg(5, X, W)
16466		    ;   true
16467		    )
16468		  ),
16469		  'attach_known/1_1_$special_\\==/2___2'(U, O)
16470	      ;   true
16471	      )
16472	    ),
16473	    known(Y),
16474	    (   O=suspension(_, active, _, Q, _, _, _)
16475	    ->  setarg(2, O, inactive),
16476		'known/1_1_$special_\\==/2___2__5__0__13'(Z,
16477							  E,
16478							  G,
16479							  O)
16480	    ;   true
16481	    )
16482	;   'known/1_1_$special_\\==/2___2__5__0__13'(Z,
16483						      E,
16484						      G,
16485						      O)
16486	).
16487'known/1_1_$special_\\==/2___2__5'(A, B, C) :-
16488	'known/1_1_$special_\\==/2___2__6'(A, B, C).
16489'known/1_1_$special_\\==/2___2__6'(A, B, F) :-
16490	(   'chr newvia_2'(A, B, C)
16491	->  get_attr(C, guard_entailment, D),
16492	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
16493	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16494		      E)
16495	), !,
16496	'known/1_1_$special_\\==/2___2__6__0__14'(E,
16497						  A,
16498						  B,
16499						  F).
16500'known/1_1_$special_\\==/2___2__6__0__14'([], A, B, C) :-
16501	'known/1_1_$special_\\==/2___2__7'(A, B, C).
16502'known/1_1_$special_\\==/2___2__6__0__14'([A|A1], F, H, P) :-
16503	(   A=suspension(_, active, _, _, B, Z),
16504	    nonvar(B),
16505	    B=(C, _),
16506	    nonvar(C),
16507	    C=(\+D),
16508	    nonvar(D),
16509	    D=(E\==G),
16510	    E==F,
16511	    G==H
16512	->  ( A=suspension(_, _, _, _, I, J),
16513	      setarg(2, A, removed),
16514	      term_variables(term(I, J), O),
16515	      ( arg(4, A, K),
16516		(   var(K)
16517		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16518			      L),
16519		    L=[_|M],
16520		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
16521			     M),
16522		    (   M=[N|_]
16523		    ->  setarg(4, N, _)
16524		    ;   true
16525		    )
16526		;   K=[_, _|M],
16527		    setarg(2, K, M),
16528		    (   M=[N|_]
16529		    ->  setarg(4, N, K)
16530		    ;   true
16531		    )
16532		)
16533	      ),
16534	      'detach_known/1_1_$special_;/2___2'(O, A)
16535	    ),
16536	    ( arg(2, P, S),
16537	      setarg(2, P, active),
16538	      ( arg(4, P, Q),
16539		R is Q+1,
16540		setarg(4, P, R)
16541	      ),
16542	      (   S==not_stored_yet
16543	      ->  P=suspension(_, _, _, _, _, T, U),
16544		  term_variables(term(T, U), V),
16545		  'chr none_locked'(V),
16546		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16547			      W),
16548		    X=[P|W],
16549		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16550			     X),
16551		    (   W=[Y|_]
16552		    ->  setarg(5, Y, X)
16553		    ;   true
16554		    )
16555		  ),
16556		  'attach_known/1_1_$special_\\==/2___2'(V, P)
16557	      ;   true
16558	      )
16559	    ),
16560	    known(Z),
16561	    (   P=suspension(_, active, _, R, _, _, _)
16562	    ->  setarg(2, P, inactive),
16563		'known/1_1_$special_\\==/2___2__6__0__14'(A1,
16564							  F,
16565							  H,
16566							  P)
16567	    ;   true
16568	    )
16569	;   'known/1_1_$special_\\==/2___2__6__0__14'(A1,
16570						      F,
16571						      H,
16572						      P)
16573	).
16574'known/1_1_$special_\\==/2___2__6'(A, B, C) :-
16575	'known/1_1_$special_\\==/2___2__7'(A, B, C).
16576'known/1_1_$special_\\==/2___2__7'(_, _, A) :-
16577	arg(2, A, D),
16578	setarg(2, A, active),
16579	arg(4, A, B),
16580	C is B+1,
16581	setarg(4, A, C),
16582	(   D==not_stored_yet
16583	->  A=suspension(_, _, _, _, _, E, F),
16584	    term_variables(term(E, F), G),
16585	    'chr none_locked'(G),
16586	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16587			H),
16588	      I=[A|H],
16589	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16590		       I),
16591	      (   H=[J|_]
16592	      ->  setarg(5, J, I)
16593	      ;   true
16594	      )
16595	    ),
16596	    'attach_known/1_1_$special_\\==/2___2'(G, A)
16597	;   true
16598	).
16599'known/1_1_$special_==/2'(A, B) :-
16600	'known/1_1_$special_==/2___2__0'(A, B, _).
16601'known/1_1_$special_==/2___2__0'(A, B, I) :-
16602	(   'chr newvia_2'(A, B, C)
16603	->  get_attr(C, guard_entailment, D),
16604	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _)
16605	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16606		      E)
16607	),
16608	member(F, E),
16609	F=suspension(_, active, _, _, _, G, H),
16610	G==A,
16611	H==B, !,
16612	(   var(I)
16613	->  true
16614	;   I=suspension(_, J, _, _, _, K, L),
16615	    setarg(2, I, removed),
16616	    (   J==not_stored_yet
16617	    ->  M=[]
16618	    ;   term_variables(term(K, L), M),
16619		( arg(5, I, N),
16620		  (   var(N)
16621		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16622				O),
16623		      O=[_|P],
16624		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16625			       P),
16626		      (   P=[Q|_]
16627		      ->  setarg(5, Q, _)
16628		      ;   true
16629		      )
16630		  ;   N=[_, _|P],
16631		      setarg(2, N, P),
16632		      (   P=[Q|_]
16633		      ->  setarg(5, Q, N)
16634		      ;   true
16635		      )
16636		  )
16637		),
16638		'detach_known/1_1_$special_==/2___2'(M, I)
16639	    )
16640	).
16641'known/1_1_$special_==/2___2__0'(B, C, A) :-
16642	(   var(A)
16643	->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
16644	    'chr gen_id'(D)
16645	;   true
16646	),
16647	(   '$novel_production'(A, 136),
16648	    number(B), !,
16649	    '$extend_history'(A, 136),
16650	    arg(2, A, G),
16651	    setarg(2, A, active),
16652	    arg(4, A, E),
16653	    F is E+1,
16654	    setarg(4, A, F),
16655	    (   G==not_stored_yet
16656	    ->  A=suspension(_, _, _, _, _, H, I),
16657		term_variables(term(H, I), J),
16658		'chr none_locked'(J),
16659		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16660			    K),
16661		  L=[A|K],
16662		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16663			   L),
16664		  (   K=[M|_]
16665		  ->  setarg(5, M, L)
16666		  ;   true
16667		  )
16668		),
16669		'attach_known/1_1_$special_==/2___2'(J, A)
16670	    ;   true
16671	    ),
16672	    'known/1_1_$special_=:=/2'(B, C),
16673	    (   A=suspension(_, active, _, F, _, _, _)
16674	    ->  setarg(2, A, inactive),
16675		'known/1_1_$special_==/2___2__1'(B, C, A)
16676	    ;   true
16677	    )
16678	;   'known/1_1_$special_==/2___2__1'(B, C, A)
16679	).
16680'known/1_1_$special_==/2___2__1'(L, B, A) :-
16681	'$novel_production'(A, 137),
16682	number(B), !,
16683	'$extend_history'(A, 137),
16684	arg(2, A, E),
16685	setarg(2, A, active),
16686	arg(4, A, C),
16687	D is C+1,
16688	setarg(4, A, D),
16689	(   E==not_stored_yet
16690	->  A=suspension(_, _, _, _, _, F, G),
16691	    term_variables(term(F, G), H),
16692	    'chr none_locked'(H),
16693	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16694			I),
16695	      J=[A|I],
16696	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16697		       J),
16698	      (   I=[K|_]
16699	      ->  setarg(5, K, J)
16700	      ;   true
16701	      )
16702	    ),
16703	    'attach_known/1_1_$special_==/2___2'(H, A)
16704	;   true
16705	),
16706	'known/1_1_$special_=:=/2'(L, B),
16707	(   A=suspension(_, active, _, D, _, _, _)
16708	->  setarg(2, A, inactive),
16709	    'known/1_1_$special_==/2___2__2'(L, B, A)
16710	;   true
16711	).
16712'known/1_1_$special_==/2___2__1'(A, B, C) :-
16713	'known/1_1_$special_==/2___2__2'(A, B, C).
16714'known/1_1_$special_==/2___2__2'(_, _, C) :-
16715	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
16716		  A),
16717	member(B, A),
16718	B=suspension(_, active, _), !,
16719	(   var(C)
16720	->  true
16721	;   C=suspension(_, D, _, _, _, E, F),
16722	    setarg(2, C, removed),
16723	    (   D==not_stored_yet
16724	    ->  G=[]
16725	    ;   term_variables(term(E, F), G),
16726		( arg(5, C, H),
16727		  (   var(H)
16728		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16729				I),
16730		      I=[_|J],
16731		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16732			       J),
16733		      (   J=[K|_]
16734		      ->  setarg(5, K, _)
16735		      ;   true
16736		      )
16737		  ;   H=[_, _|J],
16738		      setarg(2, H, J),
16739		      (   J=[K|_]
16740		      ->  setarg(5, K, H)
16741		      ;   true
16742		      )
16743		  )
16744		),
16745		'detach_known/1_1_$special_==/2___2'(G, C)
16746	    )
16747	).
16748'known/1_1_$special_==/2___2__2'(B, A, C) :-
16749	A==B, !,
16750	(   var(C)
16751	->  true
16752	;   C=suspension(_, D, _, _, _, E, F),
16753	    setarg(2, C, removed),
16754	    (   D==not_stored_yet
16755	    ->  G=[]
16756	    ;   term_variables(term(E, F), G),
16757		( arg(5, C, H),
16758		  (   var(H)
16759		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16760				I),
16761		      I=[_|J],
16762		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16763			       J),
16764		      (   J=[K|_]
16765		      ->  setarg(5, K, _)
16766		      ;   true
16767		      )
16768		  ;   H=[_, _|J],
16769		      setarg(2, H, J),
16770		      (   J=[K|_]
16771		      ->  setarg(5, K, H)
16772		      ;   true
16773		      )
16774		  )
16775		),
16776		'detach_known/1_1_$special_==/2___2'(G, C)
16777	    )
16778	).
16779'known/1_1_$special_==/2___2__2'(A, B, P) :-
16780	(   'chr newvia_2'(A, B, C)
16781	->  get_attr(C, guard_entailment, D),
16782	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
16783	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
16784		      E)
16785	),
16786	member(F, E),
16787	F=suspension(_, active, _, _, G),
16788	nonvar(G),
16789	G=(H==I),
16790	H==A,
16791	I==B, !,
16792	F=suspension(_, _, _, _, J),
16793	setarg(2, F, removed),
16794	term_variables(J, O),
16795	arg(4, F, K),
16796	(   var(K)
16797	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
16798		      L),
16799	    L=[_|M],
16800	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
16801		     M),
16802	    (   M=[N|_]
16803	    ->  setarg(4, N, _)
16804	    ;   true
16805	    )
16806	;   K=[_, _|M],
16807	    setarg(2, K, M),
16808	    (   M=[N|_]
16809	    ->  setarg(4, N, K)
16810	    ;   true
16811	    )
16812	),
16813	'detach_known/1_1_$special_\\+/1___1'(O, F),
16814	(   var(P)
16815	->  true
16816	;   P=suspension(_, Q, _, _, _, R, S),
16817	    setarg(2, P, removed),
16818	    (   Q==not_stored_yet
16819	    ->  T=[]
16820	    ;   term_variables(term(R, S), T),
16821		( arg(5, P, U),
16822		  (   var(U)
16823		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16824				V),
16825		      V=[_|W],
16826		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16827			       W),
16828		      (   W=[X|_]
16829		      ->  setarg(5, X, _)
16830		      ;   true
16831		      )
16832		  ;   U=[_, _|W],
16833		      setarg(2, U, W),
16834		      (   W=[X|_]
16835		      ->  setarg(5, X, U)
16836		      ;   true
16837		      )
16838		  )
16839		),
16840		'detach_known/1_1_$special_==/2___2'(T, P)
16841	    )
16842	),
16843	'known/1_1_$special_fail/0'.
16844'known/1_1_$special_==/2___2__2'(A, B, P) :-
16845	(   'chr newvia_2'(A, B, C)
16846	->  get_attr(C, guard_entailment, D),
16847	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _)
16848	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16849		      E)
16850	),
16851	member(F, E),
16852	F=suspension(_, active, _, _, _, G, H),
16853	G==A,
16854	H==B, !,
16855	F=suspension(_, _, _, _, _, I, J),
16856	setarg(2, F, removed),
16857	term_variables(term(I, J), O),
16858	arg(5, F, K),
16859	(   var(K)
16860	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16861		      L),
16862	    L=[_|M],
16863	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
16864		     M),
16865	    (   M=[N|_]
16866	    ->  setarg(5, N, _)
16867	    ;   true
16868	    )
16869	;   K=[_, _|M],
16870	    setarg(2, K, M),
16871	    (   M=[N|_]
16872	    ->  setarg(5, N, K)
16873	    ;   true
16874	    )
16875	),
16876	'detach_known/1_1_$special_\\==/2___2'(O, F),
16877	(   var(P)
16878	->  true
16879	;   P=suspension(_, Q, _, _, _, R, S),
16880	    setarg(2, P, removed),
16881	    (   Q==not_stored_yet
16882	    ->  T=[]
16883	    ;   term_variables(term(R, S), T),
16884		( arg(5, P, U),
16885		  (   var(U)
16886		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16887				V),
16888		      V=[_|W],
16889		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16890			       W),
16891		      (   W=[X|_]
16892		      ->  setarg(5, X, _)
16893		      ;   true
16894		      )
16895		  ;   U=[_, _|W],
16896		      setarg(2, U, W),
16897		      (   W=[X|_]
16898		      ->  setarg(5, X, U)
16899		      ;   true
16900		      )
16901		  )
16902		),
16903		'detach_known/1_1_$special_==/2___2'(T, P)
16904	    )
16905	),
16906	'known/1_1_$special_fail/0'.
16907'known/1_1_$special_==/2___2__2'(E, A, F) :-
16908	(   'chr newvia_1'(A, B)
16909	->  get_attr(B, guard_entailment, C),
16910	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _)
16911	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16912		      D)
16913	), !,
16914	'known/1_1_$special_==/2___2__2__0__10'(D, E, A, F).
16915'known/1_1_$special_==/2___2__2__0__10'([], A, B, C) :-
16916	'known/1_1_$special_==/2___2__3'(A, B, C).
16917'known/1_1_$special_==/2___2__2__0__10'([A|Q], O, C, D) :-
16918	(   A=suspension(_, active, _, _, _, B, P),
16919	    B==C,
16920	    E=t(228, D, A),
16921	    '$novel_production'(D, E),
16922	    '$novel_production'(A, E)
16923	->  '$extend_history'(D, E),
16924	    ( arg(2, D, H),
16925	      setarg(2, D, active),
16926	      ( arg(4, D, F),
16927		G is F+1,
16928		setarg(4, D, G)
16929	      ),
16930	      (   H==not_stored_yet
16931	      ->  D=suspension(_, _, _, _, _, I, J),
16932		  term_variables(term(I, J), K),
16933		  'chr none_locked'(K),
16934		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16935			      L),
16936		    M=[D|L],
16937		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16938			     M),
16939		    (   L=[N|_]
16940		    ->  setarg(5, N, M)
16941		    ;   true
16942		    )
16943		  ),
16944		  'attach_known/1_1_$special_==/2___2'(K, D)
16945	      ;   true
16946	      )
16947	    ),
16948	    'known/1_1_$special_==/2'(O, P),
16949	    (   D=suspension(_, active, _, G, _, _, _)
16950	    ->  setarg(2, D, inactive),
16951		'known/1_1_$special_==/2___2__2__0__10'(Q,
16952							O,
16953							C,
16954							D)
16955	    ;   true
16956	    )
16957	;   'known/1_1_$special_==/2___2__2__0__10'(Q,
16958						    O,
16959						    C,
16960						    D)
16961	).
16962'known/1_1_$special_==/2___2__2'(A, B, C) :-
16963	'known/1_1_$special_==/2___2__3'(A, B, C).
16964'known/1_1_$special_==/2___2__3'(A, E, F) :-
16965	(   'chr newvia_1'(A, B)
16966	->  get_attr(B, guard_entailment, C),
16967	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _)
16968	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16969		      D)
16970	), !,
16971	'known/1_1_$special_==/2___2__3__0__11'(D, A, E, F).
16972'known/1_1_$special_==/2___2__3__0__11'([], A, B, C) :-
16973	'known/1_1_$special_==/2___2__4'(A, B, C).
16974'known/1_1_$special_==/2___2__3__0__11'([A|Q], C, P, D) :-
16975	(   A=suspension(_, active, _, _, _, O, B),
16976	    B==C,
16977	    E=t(228, A, D),
16978	    '$novel_production'(A, E),
16979	    '$novel_production'(D, E)
16980	->  '$extend_history'(D, E),
16981	    ( arg(2, D, H),
16982	      setarg(2, D, active),
16983	      ( arg(4, D, F),
16984		G is F+1,
16985		setarg(4, D, G)
16986	      ),
16987	      (   H==not_stored_yet
16988	      ->  D=suspension(_, _, _, _, _, I, J),
16989		  term_variables(term(I, J), K),
16990		  'chr none_locked'(K),
16991		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16992			      L),
16993		    M=[D|L],
16994		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
16995			     M),
16996		    (   L=[N|_]
16997		    ->  setarg(5, N, M)
16998		    ;   true
16999		    )
17000		  ),
17001		  'attach_known/1_1_$special_==/2___2'(K, D)
17002	      ;   true
17003	      )
17004	    ),
17005	    'known/1_1_$special_==/2'(O, P),
17006	    (   D=suspension(_, active, _, G, _, _, _)
17007	    ->  setarg(2, D, inactive),
17008		'known/1_1_$special_==/2___2__3__0__11'(Q,
17009							C,
17010							P,
17011							D)
17012	    ;   true
17013	    )
17014	;   'known/1_1_$special_==/2___2__3__0__11'(Q,
17015						    C,
17016						    P,
17017						    D)
17018	).
17019'known/1_1_$special_==/2___2__3'(A, B, C) :-
17020	'known/1_1_$special_==/2___2__4'(A, B, C).
17021'known/1_1_$special_==/2___2__4'(E, A, F) :-
17022	(   'chr newvia_1'(A, B)
17023	->  get_attr(B, guard_entailment, C),
17024	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _)
17025	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
17026		      D)
17027	), !,
17028	'known/1_1_$special_==/2___2__4__0__12'(D, E, A, F).
17029'known/1_1_$special_==/2___2__4__0__12'([], A, B, C) :-
17030	'known/1_1_$special_==/2___2__5'(A, B, C).
17031'known/1_1_$special_==/2___2__4__0__12'([A|Q], O, C, D) :-
17032	(   A=suspension(_, active, _, _, _, B, P),
17033	    B==C,
17034	    E=t(229, D, A),
17035	    '$novel_production'(D, E),
17036	    '$novel_production'(A, E)
17037	->  '$extend_history'(D, E),
17038	    ( arg(2, D, H),
17039	      setarg(2, D, active),
17040	      ( arg(4, D, F),
17041		G is F+1,
17042		setarg(4, D, G)
17043	      ),
17044	      (   H==not_stored_yet
17045	      ->  D=suspension(_, _, _, _, _, I, J),
17046		  term_variables(term(I, J), K),
17047		  'chr none_locked'(K),
17048		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17049			      L),
17050		    M=[D|L],
17051		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17052			     M),
17053		    (   L=[N|_]
17054		    ->  setarg(5, N, M)
17055		    ;   true
17056		    )
17057		  ),
17058		  'attach_known/1_1_$special_==/2___2'(K, D)
17059	      ;   true
17060	      )
17061	    ),
17062	    'known/1_1_$special_\\==/2'(O, P),
17063	    (   D=suspension(_, active, _, G, _, _, _)
17064	    ->  setarg(2, D, inactive),
17065		'known/1_1_$special_==/2___2__4__0__12'(Q,
17066							O,
17067							C,
17068							D)
17069	    ;   true
17070	    )
17071	;   'known/1_1_$special_==/2___2__4__0__12'(Q,
17072						    O,
17073						    C,
17074						    D)
17075	).
17076'known/1_1_$special_==/2___2__4'(A, B, C) :-
17077	'known/1_1_$special_==/2___2__5'(A, B, C).
17078'known/1_1_$special_==/2___2__5'(L, K, A) :-
17079	'$novel_production'(A, 230), !,
17080	'$extend_history'(A, 230),
17081	arg(2, A, D),
17082	setarg(2, A, active),
17083	arg(4, A, B),
17084	C is B+1,
17085	setarg(4, A, C),
17086	(   D==not_stored_yet
17087	->  A=suspension(_, _, _, _, _, E, F),
17088	    term_variables(term(E, F), G),
17089	    'chr none_locked'(G),
17090	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17091			H),
17092	      I=[A|H],
17093	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17094		       I),
17095	      (   H=[J|_]
17096	      ->  setarg(5, J, I)
17097	      ;   true
17098	      )
17099	    ),
17100	    'attach_known/1_1_$special_==/2___2'(G, A)
17101	;   true
17102	),
17103	'known/1_1_$special_==/2'(K, L),
17104	(   A=suspension(_, active, _, C, _, _, _)
17105	->  setarg(2, A, inactive),
17106	    'known/1_1_$special_==/2___2__6'(L, K, A)
17107	;   true
17108	).
17109'known/1_1_$special_==/2___2__5'(A, B, C) :-
17110	'known/1_1_$special_==/2___2__6'(A, B, C).
17111'known/1_1_$special_==/2___2__6'(K, L, A) :-
17112	'$novel_production'(A, 234), !,
17113	'$extend_history'(A, 234),
17114	arg(2, A, D),
17115	setarg(2, A, active),
17116	arg(4, A, B),
17117	C is B+1,
17118	setarg(4, A, C),
17119	(   D==not_stored_yet
17120	->  A=suspension(_, _, _, _, _, E, F),
17121	    term_variables(term(E, F), G),
17122	    'chr none_locked'(G),
17123	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17124			H),
17125	      I=[A|H],
17126	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17127		       I),
17128	      (   H=[J|_]
17129	      ->  setarg(5, J, I)
17130	      ;   true
17131	      )
17132	    ),
17133	    'attach_known/1_1_$special_==/2___2'(G, A)
17134	;   true
17135	),
17136	'known/1_1_$special_=/2'(K, L),
17137	(   A=suspension(_, active, _, C, _, _, _)
17138	->  setarg(2, A, inactive),
17139	    'known/1_1_$special_==/2___2__7'(K, L, A)
17140	;   true
17141	).
17142'known/1_1_$special_==/2___2__6'(A, B, C) :-
17143	'known/1_1_$special_==/2___2__7'(A, B, C).
17144'known/1_1_$special_==/2___2__7'(A, B, F) :-
17145	(   'chr newvia_2'(A, B, C)
17146	->  get_attr(C, guard_entailment, D),
17147	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
17148	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17149		      E)
17150	), !,
17151	'known/1_1_$special_==/2___2__7__0__15'(E, A, B, F).
17152'known/1_1_$special_==/2___2__7__0__15'([], A, B, C) :-
17153	'known/1_1_$special_==/2___2__8'(A, B, C).
17154'known/1_1_$special_==/2___2__7__0__15'([A|Z], E, G, O) :-
17155	(   A=suspension(_, active, _, _, B, Y),
17156	    nonvar(B),
17157	    B=(\+C),
17158	    nonvar(C),
17159	    C=(D==F),
17160	    D==E,
17161	    F==G
17162	->  ( A=suspension(_, _, _, _, H, I),
17163	      setarg(2, A, removed),
17164	      term_variables(term(H, I), N),
17165	      ( arg(4, A, J),
17166		(   var(J)
17167		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17168			      K),
17169		    K=[_|L],
17170		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17171			     L),
17172		    (   L=[M|_]
17173		    ->  setarg(4, M, _)
17174		    ;   true
17175		    )
17176		;   J=[_, _|L],
17177		    setarg(2, J, L),
17178		    (   L=[M|_]
17179		    ->  setarg(4, M, J)
17180		    ;   true
17181		    )
17182		)
17183	      ),
17184	      'detach_known/1_1_$special_;/2___2'(N, A)
17185	    ),
17186	    ( arg(2, O, R),
17187	      setarg(2, O, active),
17188	      ( arg(4, O, P),
17189		Q is P+1,
17190		setarg(4, O, Q)
17191	      ),
17192	      (   R==not_stored_yet
17193	      ->  O=suspension(_, _, _, _, _, S, T),
17194		  term_variables(term(S, T), U),
17195		  'chr none_locked'(U),
17196		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17197			      V),
17198		    W=[O|V],
17199		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17200			     W),
17201		    (   V=[X|_]
17202		    ->  setarg(5, X, W)
17203		    ;   true
17204		    )
17205		  ),
17206		  'attach_known/1_1_$special_==/2___2'(U, O)
17207	      ;   true
17208	      )
17209	    ),
17210	    known(Y),
17211	    (   O=suspension(_, active, _, Q, _, _, _)
17212	    ->  setarg(2, O, inactive),
17213		'known/1_1_$special_==/2___2__7__0__15'(Z,
17214							E,
17215							G,
17216							O)
17217	    ;   true
17218	    )
17219	;   'known/1_1_$special_==/2___2__7__0__15'(Z,
17220						    E,
17221						    G,
17222						    O)
17223	).
17224'known/1_1_$special_==/2___2__7'(A, B, C) :-
17225	'known/1_1_$special_==/2___2__8'(A, B, C).
17226'known/1_1_$special_==/2___2__8'(A, B, F) :-
17227	(   'chr newvia_2'(A, B, C)
17228	->  get_attr(C, guard_entailment, D),
17229	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
17230	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17231		      E)
17232	), !,
17233	'known/1_1_$special_==/2___2__8__0__16'(E, A, B, F).
17234'known/1_1_$special_==/2___2__8__0__16'([], A, B, C) :-
17235	'known/1_1_$special_==/2___2__9'(A, B, C).
17236'known/1_1_$special_==/2___2__8__0__16'([A|A1], F, H, P) :-
17237	(   A=suspension(_, active, _, _, B, Z),
17238	    nonvar(B),
17239	    B=(C, _),
17240	    nonvar(C),
17241	    C=(\+D),
17242	    nonvar(D),
17243	    D=(E==G),
17244	    E==F,
17245	    G==H
17246	->  ( A=suspension(_, _, _, _, I, J),
17247	      setarg(2, A, removed),
17248	      term_variables(term(I, J), O),
17249	      ( arg(4, A, K),
17250		(   var(K)
17251		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17252			      L),
17253		    L=[_|M],
17254		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
17255			     M),
17256		    (   M=[N|_]
17257		    ->  setarg(4, N, _)
17258		    ;   true
17259		    )
17260		;   K=[_, _|M],
17261		    setarg(2, K, M),
17262		    (   M=[N|_]
17263		    ->  setarg(4, N, K)
17264		    ;   true
17265		    )
17266		)
17267	      ),
17268	      'detach_known/1_1_$special_;/2___2'(O, A)
17269	    ),
17270	    ( arg(2, P, S),
17271	      setarg(2, P, active),
17272	      ( arg(4, P, Q),
17273		R is Q+1,
17274		setarg(4, P, R)
17275	      ),
17276	      (   S==not_stored_yet
17277	      ->  P=suspension(_, _, _, _, _, T, U),
17278		  term_variables(term(T, U), V),
17279		  'chr none_locked'(V),
17280		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17281			      W),
17282		    X=[P|W],
17283		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17284			     X),
17285		    (   W=[Y|_]
17286		    ->  setarg(5, Y, X)
17287		    ;   true
17288		    )
17289		  ),
17290		  'attach_known/1_1_$special_==/2___2'(V, P)
17291	      ;   true
17292	      )
17293	    ),
17294	    known(Z),
17295	    (   P=suspension(_, active, _, R, _, _, _)
17296	    ->  setarg(2, P, inactive),
17297		'known/1_1_$special_==/2___2__8__0__16'(A1,
17298							F,
17299							H,
17300							P)
17301	    ;   true
17302	    )
17303	;   'known/1_1_$special_==/2___2__8__0__16'(A1,
17304						    F,
17305						    H,
17306						    P)
17307	).
17308'known/1_1_$special_==/2___2__8'(A, B, C) :-
17309	'known/1_1_$special_==/2___2__9'(A, B, C).
17310'known/1_1_$special_==/2___2__9'(_, _, A) :-
17311	arg(2, A, D),
17312	setarg(2, A, active),
17313	arg(4, A, B),
17314	C is B+1,
17315	setarg(4, A, C),
17316	(   D==not_stored_yet
17317	->  A=suspension(_, _, _, _, _, E, F),
17318	    term_variables(term(E, F), G),
17319	    'chr none_locked'(G),
17320	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17321			H),
17322	      I=[A|H],
17323	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
17324		       I),
17325	      (   H=[J|_]
17326	      ->  setarg(5, J, I)
17327	      ;   true
17328	      )
17329	    ),
17330	    'attach_known/1_1_$special_==/2___2'(G, A)
17331	;   true
17332	).
17333'known/1_1_$special_is/2'(A, B) :-
17334	'known/1_1_$special_=:=/2'(A, B).
17335'known/1_1_$special_</2'(A, B) :-
17336	'known/1_1_$special_=</2'(A, B),
17337	'known/1_1_$special_=\\=/2'(A, B).
17338'known/1_1_$special_>=/2'(B, A) :-
17339	'known/1_1_$special_=</2'(A, B).
17340'known/1_1_$special_>/2'(B, A) :-
17341	'known/1_1_$special_</2'(A, B).
17342'known/1_1_$special_=</2'(A, B) :-
17343	'known/1_1_$special_=</2___2__0'(A, B, _).
17344'known/1_1_$special_=</2___2__0'(A, B, I) :-
17345	(   'chr newvia_2'(A, B, C)
17346	->  get_attr(C, guard_entailment, D),
17347	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
17348	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17349		      E)
17350	),
17351	member(F, E),
17352	F=suspension(_, active, _, _, _, G, H),
17353	G==A,
17354	H==B, !,
17355	(   var(I)
17356	->  true
17357	;   I=suspension(_, J, _, _, _, K, L),
17358	    setarg(2, I, removed),
17359	    (   J==not_stored_yet
17360	    ->  M=[]
17361	    ;   term_variables(term(K, L), M),
17362		( arg(5, I, N),
17363		  (   var(N)
17364		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17365				O),
17366		      O=[_|P],
17367		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17368			       P),
17369		      (   P=[Q|_]
17370		      ->  setarg(5, Q, _)
17371		      ;   true
17372		      )
17373		  ;   N=[_, _|P],
17374		      setarg(2, N, P),
17375		      (   P=[Q|_]
17376		      ->  setarg(5, Q, N)
17377		      ;   true
17378		      )
17379		  )
17380		),
17381		'detach_known/1_1_$special_=</2___2'(M, I)
17382	    )
17383	).
17384'known/1_1_$special_=</2___2__0'(_, _, C) :-
17385	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
17386		  A),
17387	member(B, A),
17388	B=suspension(_, active, _), !,
17389	(   var(C)
17390	->  true
17391	;   C=suspension(_, D, _, _, _, E, F),
17392	    setarg(2, C, removed),
17393	    (   D==not_stored_yet
17394	    ->  G=[]
17395	    ;   term_variables(term(E, F), G),
17396		( arg(5, C, H),
17397		  (   var(H)
17398		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17399				I),
17400		      I=[_|J],
17401		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17402			       J),
17403		      (   J=[K|_]
17404		      ->  setarg(5, K, _)
17405		      ;   true
17406		      )
17407		  ;   H=[_, _|J],
17408		      setarg(2, H, J),
17409		      (   J=[K|_]
17410		      ->  setarg(5, K, H)
17411		      ;   true
17412		      )
17413		  )
17414		),
17415		'detach_known/1_1_$special_=</2___2'(G, C)
17416	    )
17417	).
17418'known/1_1_$special_=</2___2__0'(B, A, C) :-
17419	A==B, !,
17420	(   var(C)
17421	->  true
17422	;   C=suspension(_, D, _, _, _, E, F),
17423	    setarg(2, C, removed),
17424	    (   D==not_stored_yet
17425	    ->  G=[]
17426	    ;   term_variables(term(E, F), G),
17427		( arg(5, C, H),
17428		  (   var(H)
17429		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17430				I),
17431		      I=[_|J],
17432		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17433			       J),
17434		      (   J=[K|_]
17435		      ->  setarg(5, K, _)
17436		      ;   true
17437		      )
17438		  ;   H=[_, _|J],
17439		      setarg(2, H, J),
17440		      (   J=[K|_]
17441		      ->  setarg(5, K, H)
17442		      ;   true
17443		      )
17444		  )
17445		),
17446		'detach_known/1_1_$special_=</2___2'(G, C)
17447	    )
17448	).
17449'known/1_1_$special_=</2___2__0'(B, A, C) :-
17450	number(A),
17451	(   number(B),
17452	    B>A, !,
17453	    (   var(C)
17454	    ->  true
17455	    ;   C=suspension(_, D, _, _, _, E, F),
17456		setarg(2, C, removed),
17457		(   D==not_stored_yet
17458		->  G=[]
17459		;   term_variables(term(E, F), G),
17460		    ( arg(5, C, H),
17461		      (   var(H)
17462		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17463				    I),
17464			  I=[_|J],
17465			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17466				   J),
17467			  (   J=[K|_]
17468			  ->  setarg(5, K, _)
17469			  ;   true
17470			  )
17471		      ;   H=[_, _|J],
17472			  setarg(2, H, J),
17473			  (   J=[K|_]
17474			  ->  setarg(5, K, H)
17475			  ;   true
17476			  )
17477		      )
17478		    ),
17479		    'detach_known/1_1_$special_=</2___2'(G, C)
17480		)
17481	    ),
17482	    'known/1_1_$special_fail/0'
17483	;   (   'chr newvia_1'(B, L)
17484	    ->  get_attr(L, guard_entailment, M),
17485		M=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, N, _)
17486	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17487			  N)
17488	    ),
17489	    member(O, N),
17490	    O=suspension(_, active, _, _, _, P, Q),
17491	    P==B,
17492	    number(Q),
17493	    Q=<A, !,
17494	    (   var(C)
17495	    ->  true
17496	    ;   C=suspension(_, R, _, _, _, S, T),
17497		setarg(2, C, removed),
17498		(   R==not_stored_yet
17499		->  U=[]
17500		;   term_variables(term(S, T), U),
17501		    ( arg(5, C, V),
17502		      (   var(V)
17503		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17504				    W),
17505			  W=[_|X],
17506			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17507				   X),
17508			  (   X=[Y|_]
17509			  ->  setarg(5, Y, _)
17510			  ;   true
17511			  )
17512		      ;   V=[_, _|X],
17513			  setarg(2, V, X),
17514			  (   X=[Y|_]
17515			  ->  setarg(5, Y, V)
17516			  ;   true
17517			  )
17518		      )
17519		    ),
17520		    'detach_known/1_1_$special_=</2___2'(U, C)
17521		)
17522	    )
17523	).
17524'known/1_1_$special_=</2___2__0'(A, E, F) :-
17525	(   'chr newvia_1'(A, B)
17526	->  get_attr(B, guard_entailment, C),
17527	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
17528	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17529		      D)
17530	), !,
17531	'known/1_1_$special_=</2___2__0__0__12'(D, A, E, F).
17532'known/1_1_$special_=</2___2__0__0__12'([], A, B, C) :-
17533	'known/1_1_$special_=</2___2__1'(A, B, C).
17534'known/1_1_$special_=</2___2__0__0__12'([A|M], C, E, N) :-
17535	(   ( A=suspension(_, active, _, _, _, B, D),
17536	      B==C
17537	    ),
17538	    number(D),
17539	    number(E),
17540	    E=<D
17541	->  ( A=suspension(_, _, _, _, _, F, G),
17542	      setarg(2, A, removed),
17543	      term_variables(term(F, G), L),
17544	      ( arg(5, A, H),
17545		(   var(H)
17546		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17547			      I),
17548		    I=[_|J],
17549		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17550			     J),
17551		    (   J=[K|_]
17552		    ->  setarg(5, K, _)
17553		    ;   true
17554		    )
17555		;   H=[_, _|J],
17556		    setarg(2, H, J),
17557		    (   J=[K|_]
17558		    ->  setarg(5, K, H)
17559		    ;   true
17560		    )
17561		)
17562	      ),
17563	      'detach_known/1_1_$special_=</2___2'(L, A)
17564	    ),
17565	    'known/1_1_$special_=</2___2__0__0__12'(M,
17566						    C,
17567						    E,
17568						    N)
17569	;   'known/1_1_$special_=</2___2__0__0__12'(M,
17570						    C,
17571						    E,
17572						    N)
17573	).
17574'known/1_1_$special_=</2___2__0'(A, B, C) :-
17575	'known/1_1_$special_=</2___2__1'(A, B, C).
17576'known/1_1_$special_=</2___2__1'(A, B, I) :-
17577	number(A),
17578	(   'chr newvia_1'(B, C)
17579	->  get_attr(C, guard_entailment, D),
17580	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
17581	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17582		      E)
17583	),
17584	member(F, E),
17585	F=suspension(_, active, _, _, _, H, G),
17586	G==B,
17587	number(H),
17588	A=<H, !,
17589	(   var(I)
17590	->  true
17591	;   I=suspension(_, J, _, _, _, K, L),
17592	    setarg(2, I, removed),
17593	    (   J==not_stored_yet
17594	    ->  M=[]
17595	    ;   term_variables(term(K, L), M),
17596		( arg(5, I, N),
17597		  (   var(N)
17598		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17599				O),
17600		      O=[_|P],
17601		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17602			       P),
17603		      (   P=[Q|_]
17604		      ->  setarg(5, Q, _)
17605		      ;   true
17606		      )
17607		  ;   N=[_, _|P],
17608		      setarg(2, N, P),
17609		      (   P=[Q|_]
17610		      ->  setarg(5, Q, N)
17611		      ;   true
17612		      )
17613		  )
17614		),
17615		'detach_known/1_1_$special_=</2___2'(M, I)
17616	    )
17617	).
17618'known/1_1_$special_=</2___2__1'(E, A, F) :-
17619	(   'chr newvia_1'(A, B)
17620	->  get_attr(B, guard_entailment, C),
17621	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
17622	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17623		      D)
17624	), !,
17625	'known/1_1_$special_=</2___2__1__0__14'(D, E, A, F).
17626'known/1_1_$special_=</2___2__1__0__14'([], A, B, C) :-
17627	'known/1_1_$special_=</2___2__2'(A, B, C).
17628'known/1_1_$special_=</2___2__1__0__14'([A|M], D, C, N) :-
17629	(   ( A=suspension(_, active, _, _, _, E, B),
17630	      B==C
17631	    ),
17632	    number(D),
17633	    number(E),
17634	    E=<D
17635	->  ( A=suspension(_, _, _, _, _, F, G),
17636	      setarg(2, A, removed),
17637	      term_variables(term(F, G), L),
17638	      ( arg(5, A, H),
17639		(   var(H)
17640		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17641			      I),
17642		    I=[_|J],
17643		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17644			     J),
17645		    (   J=[K|_]
17646		    ->  setarg(5, K, _)
17647		    ;   true
17648		    )
17649		;   H=[_, _|J],
17650		    setarg(2, H, J),
17651		    (   J=[K|_]
17652		    ->  setarg(5, K, H)
17653		    ;   true
17654		    )
17655		)
17656	      ),
17657	      'detach_known/1_1_$special_=</2___2'(L, A)
17658	    ),
17659	    'known/1_1_$special_=</2___2__1__0__14'(M,
17660						    D,
17661						    C,
17662						    N)
17663	;   'known/1_1_$special_=</2___2__1__0__14'(M,
17664						    D,
17665						    C,
17666						    N)
17667	).
17668'known/1_1_$special_=</2___2__1'(A, B, C) :-
17669	'known/1_1_$special_=</2___2__2'(A, B, C).
17670'known/1_1_$special_=</2___2__2'(B, A, P) :-
17671	(   'chr newvia_2'(A, B, C)
17672	->  get_attr(C, guard_entailment, D),
17673	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
17674	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17675		      E)
17676	),
17677	member(F, E),
17678	F=suspension(_, active, _, _, _, G, H),
17679	G==A,
17680	H==B, !,
17681	F=suspension(_, _, _, _, _, I, J),
17682	setarg(2, F, removed),
17683	term_variables(term(I, J), O),
17684	arg(5, F, K),
17685	(   var(K)
17686	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17687		      L),
17688	    L=[_|M],
17689	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17690		     M),
17691	    (   M=[N|_]
17692	    ->  setarg(5, N, _)
17693	    ;   true
17694	    )
17695	;   K=[_, _|M],
17696	    setarg(2, K, M),
17697	    (   M=[N|_]
17698	    ->  setarg(5, N, K)
17699	    ;   true
17700	    )
17701	),
17702	'detach_known/1_1_$special_=</2___2'(O, F),
17703	(   var(P)
17704	->  true
17705	;   P=suspension(_, Q, _, _, _, R, S),
17706	    setarg(2, P, removed),
17707	    (   Q==not_stored_yet
17708	    ->  T=[]
17709	    ;   term_variables(term(R, S), T),
17710		( arg(5, P, U),
17711		  (   var(U)
17712		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17713				V),
17714		      V=[_|W],
17715		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17716			       W),
17717		      (   W=[X|_]
17718		      ->  setarg(5, X, _)
17719		      ;   true
17720		      )
17721		  ;   U=[_, _|W],
17722		      setarg(2, U, W),
17723		      (   W=[X|_]
17724		      ->  setarg(5, X, U)
17725		      ;   true
17726		      )
17727		  )
17728		),
17729		'detach_known/1_1_$special_=</2___2'(T, P)
17730	    )
17731	),
17732	'known/1_1_$special_=:=/2'(B, A).
17733'known/1_1_$special_=</2___2__2'(F, A, E) :-
17734	(   'chr newvia_1'(A, B)
17735	->  get_attr(B, guard_entailment, C),
17736	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
17737	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17738		      D)
17739	), !,
17740	(   var(E)
17741	->  E=suspension(G, not_stored_yet, t, 0, _, F, A),
17742	    'chr gen_id'(G)
17743	;   true
17744	),
17745	'known/1_1_$special_=</2___2__2__0__17'(D, F, A, E).
17746'known/1_1_$special_=</2___2__2__0__17'([], A, B, C) :-
17747	'known/1_1_$special_=</2___2__3'(A, B, C).
17748'known/1_1_$special_=</2___2__2__0__17'([A|Q], O, C, D) :-
17749	(   A=suspension(_, active, _, _, _, B, P),
17750	    B==C,
17751	    E=t(187, D, A),
17752	    '$novel_production'(D, E),
17753	    '$novel_production'(A, E)
17754	->  '$extend_history'(D, E),
17755	    ( arg(2, D, H),
17756	      setarg(2, D, active),
17757	      ( arg(4, D, F),
17758		G is F+1,
17759		setarg(4, D, G)
17760	      ),
17761	      (   H==not_stored_yet
17762	      ->  D=suspension(_, _, _, _, _, I, J),
17763		  term_variables(term(I, J), K),
17764		  'chr none_locked'(K),
17765		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17766			      L),
17767		    M=[D|L],
17768		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17769			     M),
17770		    (   L=[N|_]
17771		    ->  setarg(5, N, M)
17772		    ;   true
17773		    )
17774		  ),
17775		  'attach_known/1_1_$special_=</2___2'(K, D)
17776	      ;   true
17777	      )
17778	    ),
17779	    'known/1_1_$special_=</2'(O, P),
17780	    (   D=suspension(_, active, _, G, _, _, _)
17781	    ->  setarg(2, D, inactive),
17782		'known/1_1_$special_=</2___2__2__0__17'(Q,
17783							O,
17784							C,
17785							D)
17786	    ;   true
17787	    )
17788	;   'known/1_1_$special_=</2___2__2__0__17'(Q,
17789						    O,
17790						    C,
17791						    D)
17792	).
17793'known/1_1_$special_=</2___2__2'(B, C, A) :-
17794	(   var(A)
17795	->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
17796	    'chr gen_id'(D)
17797	;   true
17798	),
17799	'known/1_1_$special_=</2___2__3'(B, C, A).
17800'known/1_1_$special_=</2___2__3'(A, E, F) :-
17801	(   'chr newvia_1'(A, B)
17802	->  get_attr(B, guard_entailment, C),
17803	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
17804	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17805		      D)
17806	), !,
17807	'known/1_1_$special_=</2___2__3__0__18'(D, A, E, F).
17808'known/1_1_$special_=</2___2__3__0__18'([], A, B, C) :-
17809	'known/1_1_$special_=</2___2__4'(A, B, C).
17810'known/1_1_$special_=</2___2__3__0__18'([A|Q], C, P, D) :-
17811	(   A=suspension(_, active, _, _, _, O, B),
17812	    B==C,
17813	    E=t(187, A, D),
17814	    '$novel_production'(A, E),
17815	    '$novel_production'(D, E)
17816	->  '$extend_history'(D, E),
17817	    ( arg(2, D, H),
17818	      setarg(2, D, active),
17819	      ( arg(4, D, F),
17820		G is F+1,
17821		setarg(4, D, G)
17822	      ),
17823	      (   H==not_stored_yet
17824	      ->  D=suspension(_, _, _, _, _, I, J),
17825		  term_variables(term(I, J), K),
17826		  'chr none_locked'(K),
17827		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17828			      L),
17829		    M=[D|L],
17830		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17831			     M),
17832		    (   L=[N|_]
17833		    ->  setarg(5, N, M)
17834		    ;   true
17835		    )
17836		  ),
17837		  'attach_known/1_1_$special_=</2___2'(K, D)
17838	      ;   true
17839	      )
17840	    ),
17841	    'known/1_1_$special_=</2'(O, P),
17842	    (   D=suspension(_, active, _, G, _, _, _)
17843	    ->  setarg(2, D, inactive),
17844		'known/1_1_$special_=</2___2__3__0__18'(Q,
17845							C,
17846							P,
17847							D)
17848	    ;   true
17849	    )
17850	;   'known/1_1_$special_=</2___2__3__0__18'(Q,
17851						    C,
17852						    P,
17853						    D)
17854	).
17855'known/1_1_$special_=</2___2__3'(A, B, C) :-
17856	'known/1_1_$special_=</2___2__4'(A, B, C).
17857'known/1_1_$special_=</2___2__4'(E, A, F) :-
17858	(   'chr newvia_1'(A, B)
17859	->  get_attr(B, guard_entailment, C),
17860	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _)
17861	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
17862		      D)
17863	), !,
17864	'known/1_1_$special_=</2___2__4__0__19'(D, E, A, F).
17865'known/1_1_$special_=</2___2__4__0__19'([], A, B, C) :-
17866	'known/1_1_$special_=</2___2__5'(A, B, C).
17867'known/1_1_$special_=</2___2__4__0__19'([A|H], I, C, J) :-
17868	(   ( A=suspension(_, active, _, _, _, B, D),
17869	      B==C
17870	    ),
17871	    (   'chr newvia_2'(C, D, E)
17872	    ->  get_attr(E, guard_entailment, F),
17873		F=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, G, _)
17874	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17875			  G)
17876	    )
17877	->  'known/1_1_$special_=</2___2__4__1__19'(G,
17878						    D,
17879						    A,
17880						    H,
17881						    I,
17882						    C,
17883						    J)
17884	;   'known/1_1_$special_=</2___2__4__0__19'(H,
17885						    I,
17886						    C,
17887						    J)
17888	).
17889'known/1_1_$special_=</2___2__4__1__19'([], _, _, A, B, C, D) :-
17890	'known/1_1_$special_=</2___2__4__0__19'(A, B, C, D).
17891'known/1_1_$special_=</2___2__4__1__19'([A|J], E, K, L, F, C, M) :-
17892	(   ( A=suspension(_, active, _, _, _, B, D),
17893	      B==C,
17894	      D==E
17895	    ),
17896	    (   'chr newvia_2'(F, C, G)
17897	    ->  get_attr(G, guard_entailment, H),
17898		H=v(_, _, _, _, _, _, _, _, _, _, _, _, _, I, _, _, _, _, _, _, _, _)
17899	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
17900			  I)
17901	    )
17902	->  'known/1_1_$special_=</2___2__4__2__19'(I,
17903						    A,
17904						    J,
17905						    E,
17906						    K,
17907						    L,
17908						    F,
17909						    C,
17910						    M)
17911	;   'known/1_1_$special_=</2___2__4__1__19'(J,
17912						    E,
17913						    K,
17914						    L,
17915						    F,
17916						    C,
17917						    M)
17918	).
17919'known/1_1_$special_=</2___2__4__2__19'([], _, A, B, C, D, E, F, G) :-
17920	'known/1_1_$special_=</2___2__4__1__19'(A,
17921						B,
17922						C,
17923						D,
17924						E,
17925						F,
17926						G).
17927'known/1_1_$special_=</2___2__4__2__19'([A|T], H, U, S, B, V, D, F, G) :-
17928	(   A=suspension(_, active, _, _, _, C, E),
17929	    A\==B,
17930	    ( C==D,
17931	      E==F
17932	    ),
17933	    I=t(188, G, A, H, B),
17934	    '$novel_production'(G, I),
17935	    '$novel_production'(A, I),
17936	    '$novel_production'(H, I),
17937	    '$novel_production'(B, I)
17938	->  '$extend_history'(G, I),
17939	    ( arg(2, G, L),
17940	      setarg(2, G, active),
17941	      ( arg(4, G, J),
17942		K is J+1,
17943		setarg(4, G, K)
17944	      ),
17945	      (   L==not_stored_yet
17946	      ->  G=suspension(_, _, _, _, _, M, N),
17947		  term_variables(term(M, N), O),
17948		  'chr none_locked'(O),
17949		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17950			      P),
17951		    Q=[G|P],
17952		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17953			     Q),
17954		    (   P=[R|_]
17955		    ->  setarg(5, R, Q)
17956		    ;   true
17957		    )
17958		  ),
17959		  'attach_known/1_1_$special_=</2___2'(O, G)
17960	      ;   true
17961	      )
17962	    ),
17963	    'known/1_1_$special_=\\=/2'(D, S),
17964	    (   G=suspension(_, active, _, K, _, _, _)
17965	    ->  setarg(2, G, inactive),
17966		'known/1_1_$special_=</2___2__4__2__19'(T,
17967							H,
17968							U,
17969							S,
17970							B,
17971							V,
17972							D,
17973							F,
17974							G)
17975	    ;   true
17976	    )
17977	;   'known/1_1_$special_=</2___2__4__2__19'(T,
17978						    H,
17979						    U,
17980						    S,
17981						    B,
17982						    V,
17983						    D,
17984						    F,
17985						    G)
17986	).
17987'known/1_1_$special_=</2___2__4'(A, B, C) :-
17988	'known/1_1_$special_=</2___2__5'(A, B, C).
17989'known/1_1_$special_=</2___2__5'(A, E, F) :-
17990	(   'chr newvia_1'(A, B)
17991	->  get_attr(B, guard_entailment, C),
17992	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
17993	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
17994		      D)
17995	), !,
17996	'known/1_1_$special_=</2___2__5__0__20'(D, A, E, F).
17997'known/1_1_$special_=</2___2__5__0__20'([], A, B, C) :-
17998	'known/1_1_$special_=</2___2__6'(A, B, C).
17999'known/1_1_$special_=</2___2__5__0__20'([A|I], C, D, J) :-
18000	(   ( A=suspension(_, active, _, _, _, H, B),
18001	      B==C
18002	    ),
18003	    (   'chr newvia_2'(C, D, E)
18004	    ->  get_attr(E, guard_entailment, F),
18005		F=v(_, _, _, _, _, _, _, _, _, _, _, _, _, G, _, _, _, _, _, _, _, _)
18006	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
18007			  G)
18008	    )
18009	->  'known/1_1_$special_=</2___2__5__1__20'(G,
18010						    H,
18011						    A,
18012						    I,
18013						    C,
18014						    D,
18015						    J)
18016	;   'known/1_1_$special_=</2___2__5__0__20'(I,
18017						    C,
18018						    D,
18019						    J)
18020	).
18021'known/1_1_$special_=</2___2__5__1__20'([], _, _, A, B, C, D) :-
18022	'known/1_1_$special_=</2___2__5__0__20'(A, B, C, D).
18023'known/1_1_$special_=</2___2__5__1__20'([A|J], F, K, L, C, E, M) :-
18024	(   ( A=suspension(_, active, _, _, _, B, D),
18025	      B==C,
18026	      D==E
18027	    ),
18028	    (   'chr newvia_2'(F, C, G)
18029	    ->  get_attr(G, guard_entailment, H),
18030		H=v(_, _, _, _, _, _, _, _, _, _, _, _, _, I, _, _, _, _, _, _, _, _)
18031	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
18032			  I)
18033	    )
18034	->  'known/1_1_$special_=</2___2__5__2__20'(I,
18035						    A,
18036						    J,
18037						    F,
18038						    K,
18039						    L,
18040						    C,
18041						    E,
18042						    M)
18043	;   'known/1_1_$special_=</2___2__5__1__20'(J,
18044						    F,
18045						    K,
18046						    L,
18047						    C,
18048						    E,
18049						    M)
18050	).
18051'known/1_1_$special_=</2___2__5__2__20'([], _, A, B, C, D, E, F, G) :-
18052	'known/1_1_$special_=</2___2__5__1__20'(A,
18053						B,
18054						C,
18055						D,
18056						E,
18057						F,
18058						G).
18059'known/1_1_$special_=</2___2__5__2__20'([A|T], B, U, D, G, V, F, S, H) :-
18060	(   A=suspension(_, active, _, _, _, C, E),
18061	    A\==B,
18062	    ( C==D,
18063	      E==F
18064	    ),
18065	    I=t(188, G, A, H, B),
18066	    '$novel_production'(G, I),
18067	    '$novel_production'(A, I),
18068	    '$novel_production'(H, I),
18069	    '$novel_production'(B, I)
18070	->  '$extend_history'(H, I),
18071	    ( arg(2, H, L),
18072	      setarg(2, H, active),
18073	      ( arg(4, H, J),
18074		K is J+1,
18075		setarg(4, H, K)
18076	      ),
18077	      (   L==not_stored_yet
18078	      ->  H=suspension(_, _, _, _, _, M, N),
18079		  term_variables(term(M, N), O),
18080		  'chr none_locked'(O),
18081		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18082			      P),
18083		    Q=[H|P],
18084		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18085			     Q),
18086		    (   P=[R|_]
18087		    ->  setarg(5, R, Q)
18088		    ;   true
18089		    )
18090		  ),
18091		  'attach_known/1_1_$special_=</2___2'(O, H)
18092	      ;   true
18093	      )
18094	    ),
18095	    'known/1_1_$special_=\\=/2'(D, S),
18096	    (   H=suspension(_, active, _, K, _, _, _)
18097	    ->  setarg(2, H, inactive),
18098		'known/1_1_$special_=</2___2__5__2__20'(T,
18099							B,
18100							U,
18101							D,
18102							G,
18103							V,
18104							F,
18105							S,
18106							H)
18107	    ;   true
18108	    )
18109	;   'known/1_1_$special_=</2___2__5__2__20'(T,
18110						    B,
18111						    U,
18112						    D,
18113						    G,
18114						    V,
18115						    F,
18116						    S,
18117						    H)
18118	).
18119'known/1_1_$special_=</2___2__5'(A, B, C) :-
18120	'known/1_1_$special_=</2___2__6'(A, B, C).
18121'known/1_1_$special_=</2___2__6'(A, B, P) :-
18122	(   'chr newvia_2'(A, B, C)
18123	->  get_attr(C, guard_entailment, D),
18124	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
18125	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
18126		      E)
18127	),
18128	member(F, E),
18129	F=suspension(_, active, _, _, G),
18130	nonvar(G),
18131	G=(H=<I),
18132	H==A,
18133	I==B, !,
18134	F=suspension(_, _, _, _, J),
18135	setarg(2, F, removed),
18136	term_variables(J, O),
18137	arg(4, F, K),
18138	(   var(K)
18139	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
18140		      L),
18141	    L=[_|M],
18142	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
18143		     M),
18144	    (   M=[N|_]
18145	    ->  setarg(4, N, _)
18146	    ;   true
18147	    )
18148	;   K=[_, _|M],
18149	    setarg(2, K, M),
18150	    (   M=[N|_]
18151	    ->  setarg(4, N, K)
18152	    ;   true
18153	    )
18154	),
18155	'detach_known/1_1_$special_\\+/1___1'(O, F),
18156	(   var(P)
18157	->  true
18158	;   P=suspension(_, Q, _, _, _, R, S),
18159	    setarg(2, P, removed),
18160	    (   Q==not_stored_yet
18161	    ->  T=[]
18162	    ;   term_variables(term(R, S), T),
18163		( arg(5, P, U),
18164		  (   var(U)
18165		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18166				V),
18167		      V=[_|W],
18168		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18169			       W),
18170		      (   W=[X|_]
18171		      ->  setarg(5, X, _)
18172		      ;   true
18173		      )
18174		  ;   U=[_, _|W],
18175		      setarg(2, U, W),
18176		      (   W=[X|_]
18177		      ->  setarg(5, X, U)
18178		      ;   true
18179		      )
18180		  )
18181		),
18182		'detach_known/1_1_$special_=</2___2'(T, P)
18183	    )
18184	),
18185	'known/1_1_$special_fail/0'.
18186'known/1_1_$special_=</2___2__6'(A, B, F) :-
18187	(   'chr newvia_2'(A, B, C)
18188	->  get_attr(C, guard_entailment, D),
18189	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
18190	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18191		      E)
18192	), !,
18193	'known/1_1_$special_=</2___2__6__0__22'(E, A, B, F).
18194'known/1_1_$special_=</2___2__6__0__22'([], A, B, C) :-
18195	'known/1_1_$special_=</2___2__7'(A, B, C).
18196'known/1_1_$special_=</2___2__6__0__22'([A|Z], E, G, O) :-
18197	(   A=suspension(_, active, _, _, B, Y),
18198	    nonvar(B),
18199	    B=(\+C),
18200	    nonvar(C),
18201	    C=(D=<F),
18202	    D==E,
18203	    F==G
18204	->  ( A=suspension(_, _, _, _, H, I),
18205	      setarg(2, A, removed),
18206	      term_variables(term(H, I), N),
18207	      ( arg(4, A, J),
18208		(   var(J)
18209		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18210			      K),
18211		    K=[_|L],
18212		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18213			     L),
18214		    (   L=[M|_]
18215		    ->  setarg(4, M, _)
18216		    ;   true
18217		    )
18218		;   J=[_, _|L],
18219		    setarg(2, J, L),
18220		    (   L=[M|_]
18221		    ->  setarg(4, M, J)
18222		    ;   true
18223		    )
18224		)
18225	      ),
18226	      'detach_known/1_1_$special_;/2___2'(N, A)
18227	    ),
18228	    ( arg(2, O, R),
18229	      setarg(2, O, active),
18230	      ( arg(4, O, P),
18231		Q is P+1,
18232		setarg(4, O, Q)
18233	      ),
18234	      (   R==not_stored_yet
18235	      ->  O=suspension(_, _, _, _, _, S, T),
18236		  term_variables(term(S, T), U),
18237		  'chr none_locked'(U),
18238		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18239			      V),
18240		    W=[O|V],
18241		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18242			     W),
18243		    (   V=[X|_]
18244		    ->  setarg(5, X, W)
18245		    ;   true
18246		    )
18247		  ),
18248		  'attach_known/1_1_$special_=</2___2'(U, O)
18249	      ;   true
18250	      )
18251	    ),
18252	    known(Y),
18253	    (   O=suspension(_, active, _, Q, _, _, _)
18254	    ->  setarg(2, O, inactive),
18255		'known/1_1_$special_=</2___2__6__0__22'(Z,
18256							E,
18257							G,
18258							O)
18259	    ;   true
18260	    )
18261	;   'known/1_1_$special_=</2___2__6__0__22'(Z,
18262						    E,
18263						    G,
18264						    O)
18265	).
18266'known/1_1_$special_=</2___2__6'(A, B, C) :-
18267	'known/1_1_$special_=</2___2__7'(A, B, C).
18268'known/1_1_$special_=</2___2__7'(A, B, F) :-
18269	(   'chr newvia_2'(A, B, C)
18270	->  get_attr(C, guard_entailment, D),
18271	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
18272	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18273		      E)
18274	), !,
18275	'known/1_1_$special_=</2___2__7__0__23'(E, A, B, F).
18276'known/1_1_$special_=</2___2__7__0__23'([], A, B, C) :-
18277	'known/1_1_$special_=</2___2__8'(A, B, C).
18278'known/1_1_$special_=</2___2__7__0__23'([A|A1], F, H, P) :-
18279	(   A=suspension(_, active, _, _, B, Z),
18280	    nonvar(B),
18281	    B=(C, _),
18282	    nonvar(C),
18283	    C=(\+D),
18284	    nonvar(D),
18285	    D=(E=<G),
18286	    E==F,
18287	    G==H
18288	->  ( A=suspension(_, _, _, _, I, J),
18289	      setarg(2, A, removed),
18290	      term_variables(term(I, J), O),
18291	      ( arg(4, A, K),
18292		(   var(K)
18293		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18294			      L),
18295		    L=[_|M],
18296		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18297			     M),
18298		    (   M=[N|_]
18299		    ->  setarg(4, N, _)
18300		    ;   true
18301		    )
18302		;   K=[_, _|M],
18303		    setarg(2, K, M),
18304		    (   M=[N|_]
18305		    ->  setarg(4, N, K)
18306		    ;   true
18307		    )
18308		)
18309	      ),
18310	      'detach_known/1_1_$special_;/2___2'(O, A)
18311	    ),
18312	    ( arg(2, P, S),
18313	      setarg(2, P, active),
18314	      ( arg(4, P, Q),
18315		R is Q+1,
18316		setarg(4, P, R)
18317	      ),
18318	      (   S==not_stored_yet
18319	      ->  P=suspension(_, _, _, _, _, T, U),
18320		  term_variables(term(T, U), V),
18321		  'chr none_locked'(V),
18322		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18323			      W),
18324		    X=[P|W],
18325		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18326			     X),
18327		    (   W=[Y|_]
18328		    ->  setarg(5, Y, X)
18329		    ;   true
18330		    )
18331		  ),
18332		  'attach_known/1_1_$special_=</2___2'(V, P)
18333	      ;   true
18334	      )
18335	    ),
18336	    known(Z),
18337	    (   P=suspension(_, active, _, R, _, _, _)
18338	    ->  setarg(2, P, inactive),
18339		'known/1_1_$special_=</2___2__7__0__23'(A1,
18340							F,
18341							H,
18342							P)
18343	    ;   true
18344	    )
18345	;   'known/1_1_$special_=</2___2__7__0__23'(A1,
18346						    F,
18347						    H,
18348						    P)
18349	).
18350'known/1_1_$special_=</2___2__7'(A, B, C) :-
18351	'known/1_1_$special_=</2___2__8'(A, B, C).
18352'known/1_1_$special_=</2___2__8'(_, _, A) :-
18353	arg(2, A, D),
18354	setarg(2, A, active),
18355	arg(4, A, B),
18356	C is B+1,
18357	setarg(4, A, C),
18358	(   D==not_stored_yet
18359	->  A=suspension(_, _, _, _, _, E, F),
18360	    term_variables(term(E, F), G),
18361	    'chr none_locked'(G),
18362	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18363			H),
18364	      I=[A|H],
18365	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
18366		       I),
18367	      (   H=[J|_]
18368	      ->  setarg(5, J, I)
18369	      ;   true
18370	      )
18371	    ),
18372	    'attach_known/1_1_$special_=</2___2'(G, A)
18373	;   true
18374	).
18375'known/1_1_$special_=:=/2'(A, B) :-
18376	'known/1_1_$special_=:=/2___2__0'(A, B, _).
18377'known/1_1_$special_=:=/2___2__0'(A, B, I) :-
18378	(   'chr newvia_2'(A, B, C)
18379	->  get_attr(C, guard_entailment, D),
18380	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
18381	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18382		      E)
18383	),
18384	member(F, E),
18385	F=suspension(_, active, _, _, _, G, H),
18386	G==A,
18387	H==B, !,
18388	(   var(I)
18389	->  true
18390	;   I=suspension(_, J, _, _, _, K, L),
18391	    setarg(2, I, removed),
18392	    (   J==not_stored_yet
18393	    ->  M=[]
18394	    ;   term_variables(term(K, L), M),
18395		( arg(5, I, N),
18396		  (   var(N)
18397		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18398				O),
18399		      O=[_|P],
18400		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18401			       P),
18402		      (   P=[Q|_]
18403		      ->  setarg(5, Q, _)
18404		      ;   true
18405		      )
18406		  ;   N=[_, _|P],
18407		      setarg(2, N, P),
18408		      (   P=[Q|_]
18409		      ->  setarg(5, Q, N)
18410		      ;   true
18411		      )
18412		  )
18413		),
18414		'detach_known/1_1_$special_=:=/2___2'(M, I)
18415	    )
18416	).
18417'known/1_1_$special_=:=/2___2__0'(_, _, C) :-
18418	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
18419		  A),
18420	member(B, A),
18421	B=suspension(_, active, _), !,
18422	(   var(C)
18423	->  true
18424	;   C=suspension(_, D, _, _, _, E, F),
18425	    setarg(2, C, removed),
18426	    (   D==not_stored_yet
18427	    ->  G=[]
18428	    ;   term_variables(term(E, F), G),
18429		( arg(5, C, H),
18430		  (   var(H)
18431		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18432				I),
18433		      I=[_|J],
18434		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18435			       J),
18436		      (   J=[K|_]
18437		      ->  setarg(5, K, _)
18438		      ;   true
18439		      )
18440		  ;   H=[_, _|J],
18441		      setarg(2, H, J),
18442		      (   J=[K|_]
18443		      ->  setarg(5, K, H)
18444		      ;   true
18445		      )
18446		  )
18447		),
18448		'detach_known/1_1_$special_=:=/2___2'(G, C)
18449	    )
18450	).
18451'known/1_1_$special_=:=/2___2__0'(B, A, C) :-
18452	A==B, !,
18453	(   var(C)
18454	->  true
18455	;   C=suspension(_, D, _, _, _, E, F),
18456	    setarg(2, C, removed),
18457	    (   D==not_stored_yet
18458	    ->  G=[]
18459	    ;   term_variables(term(E, F), G),
18460		( arg(5, C, H),
18461		  (   var(H)
18462		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18463				I),
18464		      I=[_|J],
18465		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18466			       J),
18467		      (   J=[K|_]
18468		      ->  setarg(5, K, _)
18469		      ;   true
18470		      )
18471		  ;   H=[_, _|J],
18472		      setarg(2, H, J),
18473		      (   J=[K|_]
18474		      ->  setarg(5, K, H)
18475		      ;   true
18476		      )
18477		  )
18478		),
18479		'detach_known/1_1_$special_=:=/2___2'(G, C)
18480	    )
18481	).
18482'known/1_1_$special_=:=/2___2__0'(B, A, C) :-
18483	number(A),
18484	number(B),
18485	B=\=A, !,
18486	(   var(C)
18487	->  true
18488	;   C=suspension(_, D, _, _, _, E, F),
18489	    setarg(2, C, removed),
18490	    (   D==not_stored_yet
18491	    ->  G=[]
18492	    ;   term_variables(term(E, F), G),
18493		( arg(5, C, H),
18494		  (   var(H)
18495		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18496				I),
18497		      I=[_|J],
18498		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18499			       J),
18500		      (   J=[K|_]
18501		      ->  setarg(5, K, _)
18502		      ;   true
18503		      )
18504		  ;   H=[_, _|J],
18505		      setarg(2, H, J),
18506		      (   J=[K|_]
18507		      ->  setarg(5, K, H)
18508		      ;   true
18509		      )
18510		  )
18511		),
18512		'detach_known/1_1_$special_=:=/2___2'(G, C)
18513	    )
18514	),
18515	'known/1_1_$special_fail/0'.
18516'known/1_1_$special_=:=/2___2__0'(A, B, P) :-
18517	(   'chr newvia_2'(A, B, C)
18518	->  get_attr(C, guard_entailment, D),
18519	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _, _)
18520	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
18521		      E)
18522	),
18523	member(F, E),
18524	F=suspension(_, active, _, _, _, G, H),
18525	G==A,
18526	H==B, !,
18527	F=suspension(_, _, _, _, _, I, J),
18528	setarg(2, F, removed),
18529	term_variables(term(I, J), O),
18530	arg(5, F, K),
18531	(   var(K)
18532	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
18533		      L),
18534	    L=[_|M],
18535	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
18536		     M),
18537	    (   M=[N|_]
18538	    ->  setarg(5, N, _)
18539	    ;   true
18540	    )
18541	;   K=[_, _|M],
18542	    setarg(2, K, M),
18543	    (   M=[N|_]
18544	    ->  setarg(5, N, K)
18545	    ;   true
18546	    )
18547	),
18548	'detach_known/1_1_$special_=\\=/2___2'(O, F),
18549	(   var(P)
18550	->  true
18551	;   P=suspension(_, Q, _, _, _, R, S),
18552	    setarg(2, P, removed),
18553	    (   Q==not_stored_yet
18554	    ->  T=[]
18555	    ;   term_variables(term(R, S), T),
18556		( arg(5, P, U),
18557		  (   var(U)
18558		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18559				V),
18560		      V=[_|W],
18561		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18562			       W),
18563		      (   W=[X|_]
18564		      ->  setarg(5, X, _)
18565		      ;   true
18566		      )
18567		  ;   U=[_, _|W],
18568		      setarg(2, U, W),
18569		      (   W=[X|_]
18570		      ->  setarg(5, X, U)
18571		      ;   true
18572		      )
18573		  )
18574		),
18575		'detach_known/1_1_$special_=:=/2___2'(T, P)
18576	    )
18577	),
18578	'known/1_1_$special_fail/0'.
18579'known/1_1_$special_=:=/2___2__0'(F, A, E) :-
18580	(   'chr newvia_1'(A, B)
18581	->  get_attr(B, guard_entailment, C),
18582	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D)
18583	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18584		      D)
18585	), !,
18586	(   var(E)
18587	->  E=suspension(G, not_stored_yet, t, 0, _, F, A),
18588	    'chr gen_id'(G)
18589	;   true
18590	),
18591	'known/1_1_$special_=:=/2___2__0__0__11'(D,
18592						 F,
18593						 A,
18594						 E).
18595'known/1_1_$special_=:=/2___2__0__0__11'([], A, B, C) :-
18596	'known/1_1_$special_=:=/2___2__1'(A, B, C).
18597'known/1_1_$special_=:=/2___2__0__0__11'([A|Q], F, C, D) :-
18598	(   A=suspension(_, active, _, _, _, B, G),
18599	    B==C,
18600	    ( E=t(193, D, A),
18601	      '$novel_production'(D, E),
18602	      '$novel_production'(A, E)
18603	    ),
18604	    F\==G
18605	->  '$extend_history'(D, E),
18606	    ( arg(2, D, J),
18607	      setarg(2, D, active),
18608	      ( arg(4, D, H),
18609		I is H+1,
18610		setarg(4, D, I)
18611	      ),
18612	      (   J==not_stored_yet
18613	      ->  D=suspension(_, _, _, _, _, K, L),
18614		  term_variables(term(K, L), M),
18615		  'chr none_locked'(M),
18616		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18617			      N),
18618		    O=[D|N],
18619		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18620			     O),
18621		    (   N=[P|_]
18622		    ->  setarg(5, P, O)
18623		    ;   true
18624		    )
18625		  ),
18626		  'attach_known/1_1_$special_=:=/2___2'(M, D)
18627	      ;   true
18628	      )
18629	    ),
18630	    'known/1_1_$special_=:=/2'(F, G),
18631	    (   D=suspension(_, active, _, I, _, _, _)
18632	    ->  setarg(2, D, inactive),
18633		'known/1_1_$special_=:=/2___2__0__0__11'(Q,
18634							 F,
18635							 C,
18636							 D)
18637	    ;   true
18638	    )
18639	;   'known/1_1_$special_=:=/2___2__0__0__11'(Q,
18640						     F,
18641						     C,
18642						     D)
18643	).
18644'known/1_1_$special_=:=/2___2__0'(B, C, A) :-
18645	(   var(A)
18646	->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
18647	    'chr gen_id'(D)
18648	;   true
18649	),
18650	'known/1_1_$special_=:=/2___2__1'(B, C, A).
18651'known/1_1_$special_=:=/2___2__1'(A, E, F) :-
18652	(   'chr newvia_1'(A, B)
18653	->  get_attr(B, guard_entailment, C),
18654	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D)
18655	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18656		      D)
18657	), !,
18658	'known/1_1_$special_=:=/2___2__1__0__12'(D,
18659						 A,
18660						 E,
18661						 F).
18662'known/1_1_$special_=:=/2___2__1__0__12'([], A, B, C) :-
18663	'known/1_1_$special_=:=/2___2__2'(A, B, C).
18664'known/1_1_$special_=:=/2___2__1__0__12'([A|Q], C, G, D) :-
18665	(   A=suspension(_, active, _, _, _, F, B),
18666	    B==C,
18667	    ( E=t(193, A, D),
18668	      '$novel_production'(A, E),
18669	      '$novel_production'(D, E)
18670	    ),
18671	    F\==G
18672	->  '$extend_history'(D, E),
18673	    ( arg(2, D, J),
18674	      setarg(2, D, active),
18675	      ( arg(4, D, H),
18676		I is H+1,
18677		setarg(4, D, I)
18678	      ),
18679	      (   J==not_stored_yet
18680	      ->  D=suspension(_, _, _, _, _, K, L),
18681		  term_variables(term(K, L), M),
18682		  'chr none_locked'(M),
18683		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18684			      N),
18685		    O=[D|N],
18686		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18687			     O),
18688		    (   N=[P|_]
18689		    ->  setarg(5, P, O)
18690		    ;   true
18691		    )
18692		  ),
18693		  'attach_known/1_1_$special_=:=/2___2'(M, D)
18694	      ;   true
18695	      )
18696	    ),
18697	    'known/1_1_$special_=:=/2'(F, G),
18698	    (   D=suspension(_, active, _, I, _, _, _)
18699	    ->  setarg(2, D, inactive),
18700		'known/1_1_$special_=:=/2___2__1__0__12'(Q,
18701							 C,
18702							 G,
18703							 D)
18704	    ;   true
18705	    )
18706	;   'known/1_1_$special_=:=/2___2__1__0__12'(Q,
18707						     C,
18708						     G,
18709						     D)
18710	).
18711'known/1_1_$special_=:=/2___2__1'(A, B, C) :-
18712	'known/1_1_$special_=:=/2___2__2'(A, B, C).
18713'known/1_1_$special_=:=/2___2__2'(L, K, A) :-
18714	'$novel_production'(A, 194), !,
18715	'$extend_history'(A, 194),
18716	arg(2, A, D),
18717	setarg(2, A, active),
18718	arg(4, A, B),
18719	C is B+1,
18720	setarg(4, A, C),
18721	(   D==not_stored_yet
18722	->  A=suspension(_, _, _, _, _, E, F),
18723	    term_variables(term(E, F), G),
18724	    'chr none_locked'(G),
18725	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18726			H),
18727	      I=[A|H],
18728	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18729		       I),
18730	      (   H=[J|_]
18731	      ->  setarg(5, J, I)
18732	      ;   true
18733	      )
18734	    ),
18735	    'attach_known/1_1_$special_=:=/2___2'(G, A)
18736	;   true
18737	),
18738	'known/1_1_$special_=:=/2'(K, L),
18739	(   A=suspension(_, active, _, C, _, _, _)
18740	->  setarg(2, A, inactive),
18741	    'known/1_1_$special_=:=/2___2__3'(L, K, A)
18742	;   true
18743	).
18744'known/1_1_$special_=:=/2___2__2'(A, B, C) :-
18745	'known/1_1_$special_=:=/2___2__3'(A, B, C).
18746'known/1_1_$special_=:=/2___2__3'(A, B, P) :-
18747	(   'chr newvia_2'(A, B, C)
18748	->  get_attr(C, guard_entailment, D),
18749	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
18750	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
18751		      E)
18752	),
18753	member(F, E),
18754	F=suspension(_, active, _, _, G),
18755	nonvar(G),
18756	G=(H=:=I),
18757	H==A,
18758	I==B, !,
18759	F=suspension(_, _, _, _, J),
18760	setarg(2, F, removed),
18761	term_variables(J, O),
18762	arg(4, F, K),
18763	(   var(K)
18764	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
18765		      L),
18766	    L=[_|M],
18767	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
18768		     M),
18769	    (   M=[N|_]
18770	    ->  setarg(4, N, _)
18771	    ;   true
18772	    )
18773	;   K=[_, _|M],
18774	    setarg(2, K, M),
18775	    (   M=[N|_]
18776	    ->  setarg(4, N, K)
18777	    ;   true
18778	    )
18779	),
18780	'detach_known/1_1_$special_\\+/1___1'(O, F),
18781	(   var(P)
18782	->  true
18783	;   P=suspension(_, Q, _, _, _, R, S),
18784	    setarg(2, P, removed),
18785	    (   Q==not_stored_yet
18786	    ->  T=[]
18787	    ;   term_variables(term(R, S), T),
18788		( arg(5, P, U),
18789		  (   var(U)
18790		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18791				V),
18792		      V=[_|W],
18793		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18794			       W),
18795		      (   W=[X|_]
18796		      ->  setarg(5, X, _)
18797		      ;   true
18798		      )
18799		  ;   U=[_, _|W],
18800		      setarg(2, U, W),
18801		      (   W=[X|_]
18802		      ->  setarg(5, X, U)
18803		      ;   true
18804		      )
18805		  )
18806		),
18807		'detach_known/1_1_$special_=:=/2___2'(T, P)
18808	    )
18809	),
18810	'known/1_1_$special_fail/0'.
18811'known/1_1_$special_=:=/2___2__3'(A, B, F) :-
18812	(   'chr newvia_2'(A, B, C)
18813	->  get_attr(C, guard_entailment, D),
18814	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
18815	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18816		      E)
18817	), !,
18818	'known/1_1_$special_=:=/2___2__3__0__15'(E,
18819						 A,
18820						 B,
18821						 F).
18822'known/1_1_$special_=:=/2___2__3__0__15'([], A, B, C) :-
18823	'known/1_1_$special_=:=/2___2__4'(A, B, C).
18824'known/1_1_$special_=:=/2___2__3__0__15'([A|Z], E, G, O) :-
18825	(   A=suspension(_, active, _, _, B, Y),
18826	    nonvar(B),
18827	    B=(\+C),
18828	    nonvar(C),
18829	    C=(D=:=F),
18830	    D==E,
18831	    F==G
18832	->  ( A=suspension(_, _, _, _, H, I),
18833	      setarg(2, A, removed),
18834	      term_variables(term(H, I), N),
18835	      ( arg(4, A, J),
18836		(   var(J)
18837		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18838			      K),
18839		    K=[_|L],
18840		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18841			     L),
18842		    (   L=[M|_]
18843		    ->  setarg(4, M, _)
18844		    ;   true
18845		    )
18846		;   J=[_, _|L],
18847		    setarg(2, J, L),
18848		    (   L=[M|_]
18849		    ->  setarg(4, M, J)
18850		    ;   true
18851		    )
18852		)
18853	      ),
18854	      'detach_known/1_1_$special_;/2___2'(N, A)
18855	    ),
18856	    ( arg(2, O, R),
18857	      setarg(2, O, active),
18858	      ( arg(4, O, P),
18859		Q is P+1,
18860		setarg(4, O, Q)
18861	      ),
18862	      (   R==not_stored_yet
18863	      ->  O=suspension(_, _, _, _, _, S, T),
18864		  term_variables(term(S, T), U),
18865		  'chr none_locked'(U),
18866		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18867			      V),
18868		    W=[O|V],
18869		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18870			     W),
18871		    (   V=[X|_]
18872		    ->  setarg(5, X, W)
18873		    ;   true
18874		    )
18875		  ),
18876		  'attach_known/1_1_$special_=:=/2___2'(U, O)
18877	      ;   true
18878	      )
18879	    ),
18880	    known(Y),
18881	    (   O=suspension(_, active, _, Q, _, _, _)
18882	    ->  setarg(2, O, inactive),
18883		'known/1_1_$special_=:=/2___2__3__0__15'(Z,
18884							 E,
18885							 G,
18886							 O)
18887	    ;   true
18888	    )
18889	;   'known/1_1_$special_=:=/2___2__3__0__15'(Z,
18890						     E,
18891						     G,
18892						     O)
18893	).
18894'known/1_1_$special_=:=/2___2__3'(A, B, C) :-
18895	'known/1_1_$special_=:=/2___2__4'(A, B, C).
18896'known/1_1_$special_=:=/2___2__4'(A, B, F) :-
18897	(   'chr newvia_2'(A, B, C)
18898	->  get_attr(C, guard_entailment, D),
18899	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
18900	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18901		      E)
18902	), !,
18903	'known/1_1_$special_=:=/2___2__4__0__16'(E,
18904						 A,
18905						 B,
18906						 F).
18907'known/1_1_$special_=:=/2___2__4__0__16'([], A, B, C) :-
18908	'known/1_1_$special_=:=/2___2__5'(A, B, C).
18909'known/1_1_$special_=:=/2___2__4__0__16'([A|A1], F, H, P) :-
18910	(   A=suspension(_, active, _, _, B, Z),
18911	    nonvar(B),
18912	    B=(C, _),
18913	    nonvar(C),
18914	    C=(\+D),
18915	    nonvar(D),
18916	    D=(E=:=G),
18917	    E==F,
18918	    G==H
18919	->  ( A=suspension(_, _, _, _, I, J),
18920	      setarg(2, A, removed),
18921	      term_variables(term(I, J), O),
18922	      ( arg(4, A, K),
18923		(   var(K)
18924		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18925			      L),
18926		    L=[_|M],
18927		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
18928			     M),
18929		    (   M=[N|_]
18930		    ->  setarg(4, N, _)
18931		    ;   true
18932		    )
18933		;   K=[_, _|M],
18934		    setarg(2, K, M),
18935		    (   M=[N|_]
18936		    ->  setarg(4, N, K)
18937		    ;   true
18938		    )
18939		)
18940	      ),
18941	      'detach_known/1_1_$special_;/2___2'(O, A)
18942	    ),
18943	    ( arg(2, P, S),
18944	      setarg(2, P, active),
18945	      ( arg(4, P, Q),
18946		R is Q+1,
18947		setarg(4, P, R)
18948	      ),
18949	      (   S==not_stored_yet
18950	      ->  P=suspension(_, _, _, _, _, T, U),
18951		  term_variables(term(T, U), V),
18952		  'chr none_locked'(V),
18953		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18954			      W),
18955		    X=[P|W],
18956		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18957			     X),
18958		    (   W=[Y|_]
18959		    ->  setarg(5, Y, X)
18960		    ;   true
18961		    )
18962		  ),
18963		  'attach_known/1_1_$special_=:=/2___2'(V, P)
18964	      ;   true
18965	      )
18966	    ),
18967	    known(Z),
18968	    (   P=suspension(_, active, _, R, _, _, _)
18969	    ->  setarg(2, P, inactive),
18970		'known/1_1_$special_=:=/2___2__4__0__16'(A1,
18971							 F,
18972							 H,
18973							 P)
18974	    ;   true
18975	    )
18976	;   'known/1_1_$special_=:=/2___2__4__0__16'(A1,
18977						     F,
18978						     H,
18979						     P)
18980	).
18981'known/1_1_$special_=:=/2___2__4'(A, B, C) :-
18982	'known/1_1_$special_=:=/2___2__5'(A, B, C).
18983'known/1_1_$special_=:=/2___2__5'(_, _, A) :-
18984	arg(2, A, D),
18985	setarg(2, A, active),
18986	arg(4, A, B),
18987	C is B+1,
18988	setarg(4, A, C),
18989	(   D==not_stored_yet
18990	->  A=suspension(_, _, _, _, _, E, F),
18991	    term_variables(term(E, F), G),
18992	    'chr none_locked'(G),
18993	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18994			H),
18995	      I=[A|H],
18996	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
18997		       I),
18998	      (   H=[J|_]
18999	      ->  setarg(5, J, I)
19000	      ;   true
19001	      )
19002	    ),
19003	    'attach_known/1_1_$special_=:=/2___2'(G, A)
19004	;   true
19005	).
19006'known/1_1_$special_fail/0' :-
19007	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
19008		  A),
19009	member(B, A),
19010	B=suspension(_, active, _), !.
19011'known/1_1_$special_fail/0' :-
19012	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
19013		  A), !,
19014	'known/1_1_$special_fail/0___0__0__0__24'(A).
19015'known/1_1_$special_fail/0___0__0__0__24'([]) :-
19016	'known/1_1_$special_fail/0___0__1'.
19017'known/1_1_$special_fail/0___0__0__0__24'([A|I]) :-
19018	(   A=suspension(_, active, _, _, _, _)
19019	->  ( A=suspension(_, _, _, _, B, C),
19020	      setarg(2, A, removed),
19021	      term_variables(term(B, C), H),
19022	      ( arg(4, A, D),
19023		(   var(D)
19024		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
19025			      E),
19026		    E=[_|F],
19027		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
19028			     F),
19029		    (   F=[G|_]
19030		    ->  setarg(4, G, _)
19031		    ;   true
19032		    )
19033		;   D=[_, _|F],
19034		    setarg(2, D, F),
19035		    (   F=[G|_]
19036		    ->  setarg(4, G, D)
19037		    ;   true
19038		    )
19039		)
19040	      ),
19041	      'detach_known/1_1_$special_;/2___2'(H, A)
19042	    ),
19043	    'known/1_1_$special_fail/0___0__0__0__24'(I)
19044	;   'known/1_1_$special_fail/0___0__0__0__24'(I)
19045	).
19046'known/1_1_$special_fail/0' :-
19047	'known/1_1_$special_fail/0___0__1'.
19048'known/1_1_$special_fail/0___0__1' :-
19049	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
19050		  A), !,
19051	'known/1_1_$special_fail/0___0__1__0__25'(A).
19052'known/1_1_$special_fail/0___0__1__0__25'([]) :-
19053	'known/1_1_$special_fail/0___0__2'.
19054'known/1_1_$special_fail/0___0__1__0__25'([A|H]) :-
19055	(   A=suspension(_, active, _, _, _)
19056	->  ( A=suspension(_, _, _, _, B),
19057	      setarg(2, A, removed),
19058	      term_variables(B, G),
19059	      ( arg(4, A, C),
19060		(   var(C)
19061		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
19062			      D),
19063		    D=[_|E],
19064		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
19065			     E),
19066		    (   E=[F|_]
19067		    ->  setarg(4, F, _)
19068		    ;   true
19069		    )
19070		;   C=[_, _|E],
19071		    setarg(2, C, E),
19072		    (   E=[F|_]
19073		    ->  setarg(4, F, C)
19074		    ;   true
19075		    )
19076		)
19077	      ),
19078	      'detach_known/1_1_$special_nonvar/1___1'(G, A)
19079	    ),
19080	    'known/1_1_$special_fail/0___0__1__0__25'(H)
19081	;   'known/1_1_$special_fail/0___0__1__0__25'(H)
19082	).
19083'known/1_1_$special_fail/0___0__1' :-
19084	'known/1_1_$special_fail/0___0__2'.
19085'known/1_1_$special_fail/0___0__2' :-
19086	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
19087		  A), !,
19088	'known/1_1_$special_fail/0___0__2__0__26'(A).
19089'known/1_1_$special_fail/0___0__2__0__26'([]) :-
19090	'known/1_1_$special_fail/0___0__3'.
19091'known/1_1_$special_fail/0___0__2__0__26'([A|H]) :-
19092	(   A=suspension(_, active, _, _, _)
19093	->  ( A=suspension(_, _, _, _, B),
19094	      setarg(2, A, removed),
19095	      term_variables(B, G),
19096	      ( arg(4, A, C),
19097		(   var(C)
19098		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
19099			      D),
19100		    D=[_|E],
19101		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
19102			     E),
19103		    (   E=[F|_]
19104		    ->  setarg(4, F, _)
19105		    ;   true
19106		    )
19107		;   C=[_, _|E],
19108		    setarg(2, C, E),
19109		    (   E=[F|_]
19110		    ->  setarg(4, F, C)
19111		    ;   true
19112		    )
19113		)
19114	      ),
19115	      'detach_known/1_1_$special_var/1___1'(G, A)
19116	    ),
19117	    'known/1_1_$special_fail/0___0__2__0__26'(H)
19118	;   'known/1_1_$special_fail/0___0__2__0__26'(H)
19119	).
19120'known/1_1_$special_fail/0___0__2' :-
19121	'known/1_1_$special_fail/0___0__3'.
19122'known/1_1_$special_fail/0___0__3' :-
19123	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
19124		  A), !,
19125	'known/1_1_$special_fail/0___0__3__0__27'(A).
19126'known/1_1_$special_fail/0___0__3__0__27'([]) :-
19127	'known/1_1_$special_fail/0___0__4'.
19128'known/1_1_$special_fail/0___0__3__0__27'([A|H]) :-
19129	(   A=suspension(_, active, _, _, _, _)
19130	->  ( A=suspension(_, _, _, _, _, B),
19131	      setarg(2, A, removed),
19132	      term_variables(B, G),
19133	      ( arg(5, A, C),
19134		(   var(C)
19135		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
19136			      D),
19137		    D=[_|E],
19138		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
19139			     E),
19140		    (   E=[F|_]
19141		    ->  setarg(5, F, _)
19142		    ;   true
19143		    )
19144		;   C=[_, _|E],
19145		    setarg(2, C, E),
19146		    (   E=[F|_]
19147		    ->  setarg(5, F, C)
19148		    ;   true
19149		    )
19150		)
19151	      ),
19152	      'detach_known/1_1_$special_atom/1___1'(G, A)
19153	    ),
19154	    'known/1_1_$special_fail/0___0__3__0__27'(H)
19155	;   'known/1_1_$special_fail/0___0__3__0__27'(H)
19156	).
19157'known/1_1_$special_fail/0___0__3' :-
19158	'known/1_1_$special_fail/0___0__4'.
19159'known/1_1_$special_fail/0___0__4' :-
19160	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
19161		  A), !,
19162	'known/1_1_$special_fail/0___0__4__0__28'(A).
19163'known/1_1_$special_fail/0___0__4__0__28'([]) :-
19164	'known/1_1_$special_fail/0___0__5'.
19165'known/1_1_$special_fail/0___0__4__0__28'([A|H]) :-
19166	(   A=suspension(_, active, _, _, _, _)
19167	->  ( A=suspension(_, _, _, _, _, B),
19168	      setarg(2, A, removed),
19169	      term_variables(B, G),
19170	      ( arg(5, A, C),
19171		(   var(C)
19172		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
19173			      D),
19174		    D=[_|E],
19175		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
19176			     E),
19177		    (   E=[F|_]
19178		    ->  setarg(5, F, _)
19179		    ;   true
19180		    )
19181		;   C=[_, _|E],
19182		    setarg(2, C, E),
19183		    (   E=[F|_]
19184		    ->  setarg(5, F, C)
19185		    ;   true
19186		    )
19187		)
19188	      ),
19189	      'detach_known/1_1_$special_atomic/1___1'(G, A)
19190	    ),
19191	    'known/1_1_$special_fail/0___0__4__0__28'(H)
19192	;   'known/1_1_$special_fail/0___0__4__0__28'(H)
19193	).
19194'known/1_1_$special_fail/0___0__4' :-
19195	'known/1_1_$special_fail/0___0__5'.
19196'known/1_1_$special_fail/0___0__5' :-
19197	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
19198		  A), !,
19199	'known/1_1_$special_fail/0___0__5__0__29'(A).
19200'known/1_1_$special_fail/0___0__5__0__29'([]) :-
19201	'known/1_1_$special_fail/0___0__6'.
19202'known/1_1_$special_fail/0___0__5__0__29'([A|H]) :-
19203	(   A=suspension(_, active, _, _, _, _)
19204	->  ( A=suspension(_, _, _, _, _, B),
19205	      setarg(2, A, removed),
19206	      term_variables(B, G),
19207	      ( arg(5, A, C),
19208		(   var(C)
19209		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
19210			      D),
19211		    D=[_|E],
19212		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
19213			     E),
19214		    (   E=[F|_]
19215		    ->  setarg(5, F, _)
19216		    ;   true
19217		    )
19218		;   C=[_, _|E],
19219		    setarg(2, C, E),
19220		    (   E=[F|_]
19221		    ->  setarg(5, F, C)
19222		    ;   true
19223		    )
19224		)
19225	      ),
19226	      'detach_known/1_1_$special_compound/1___1'(G, A)
19227	    ),
19228	    'known/1_1_$special_fail/0___0__5__0__29'(H)
19229	;   'known/1_1_$special_fail/0___0__5__0__29'(H)
19230	).
19231'known/1_1_$special_fail/0___0__5' :-
19232	'known/1_1_$special_fail/0___0__6'.
19233'known/1_1_$special_fail/0___0__6' :-
19234	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
19235		  A), !,
19236	'known/1_1_$special_fail/0___0__6__0__30'(A).
19237'known/1_1_$special_fail/0___0__6__0__30'([]) :-
19238	'known/1_1_$special_fail/0___0__7'.
19239'known/1_1_$special_fail/0___0__6__0__30'([A|H]) :-
19240	(   A=suspension(_, active, _, _, _, _)
19241	->  ( A=suspension(_, _, _, _, _, B),
19242	      setarg(2, A, removed),
19243	      term_variables(B, G),
19244	      ( arg(5, A, C),
19245		(   var(C)
19246		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
19247			      D),
19248		    D=[_|E],
19249		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
19250			     E),
19251		    (   E=[F|_]
19252		    ->  setarg(5, F, _)
19253		    ;   true
19254		    )
19255		;   C=[_, _|E],
19256		    setarg(2, C, E),
19257		    (   E=[F|_]
19258		    ->  setarg(5, F, C)
19259		    ;   true
19260		    )
19261		)
19262	      ),
19263	      'detach_known/1_1_$special_ground/1___1'(G, A)
19264	    ),
19265	    'known/1_1_$special_fail/0___0__6__0__30'(H)
19266	;   'known/1_1_$special_fail/0___0__6__0__30'(H)
19267	).
19268'known/1_1_$special_fail/0___0__6' :-
19269	'known/1_1_$special_fail/0___0__7'.
19270'known/1_1_$special_fail/0___0__7' :-
19271	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
19272		  A), !,
19273	'known/1_1_$special_fail/0___0__7__0__31'(A).
19274'known/1_1_$special_fail/0___0__7__0__31'([]) :-
19275	'known/1_1_$special_fail/0___0__8'.
19276'known/1_1_$special_fail/0___0__7__0__31'([A|H]) :-
19277	(   A=suspension(_, active, _, _, _, _)
19278	->  ( A=suspension(_, _, _, _, _, B),
19279	      setarg(2, A, removed),
19280	      term_variables(B, G),
19281	      ( arg(5, A, C),
19282		(   var(C)
19283		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
19284			      D),
19285		    D=[_|E],
19286		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
19287			     E),
19288		    (   E=[F|_]
19289		    ->  setarg(5, F, _)
19290		    ;   true
19291		    )
19292		;   C=[_, _|E],
19293		    setarg(2, C, E),
19294		    (   E=[F|_]
19295		    ->  setarg(5, F, C)
19296		    ;   true
19297		    )
19298		)
19299	      ),
19300	      'detach_known/1_1_$special_integer/1___1'(G, A)
19301	    ),
19302	    'known/1_1_$special_fail/0___0__7__0__31'(H)
19303	;   'known/1_1_$special_fail/0___0__7__0__31'(H)
19304	).
19305'known/1_1_$special_fail/0___0__7' :-
19306	'known/1_1_$special_fail/0___0__8'.
19307'known/1_1_$special_fail/0___0__8' :-
19308	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
19309		  A), !,
19310	'known/1_1_$special_fail/0___0__8__0__32'(A).
19311'known/1_1_$special_fail/0___0__8__0__32'([]) :-
19312	'known/1_1_$special_fail/0___0__9'.
19313'known/1_1_$special_fail/0___0__8__0__32'([A|H]) :-
19314	(   A=suspension(_, active, _, _, _, _)
19315	->  ( A=suspension(_, _, _, _, _, B),
19316	      setarg(2, A, removed),
19317	      term_variables(B, G),
19318	      ( arg(5, A, C),
19319		(   var(C)
19320		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
19321			      D),
19322		    D=[_|E],
19323		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
19324			     E),
19325		    (   E=[F|_]
19326		    ->  setarg(5, F, _)
19327		    ;   true
19328		    )
19329		;   C=[_, _|E],
19330		    setarg(2, C, E),
19331		    (   E=[F|_]
19332		    ->  setarg(5, F, C)
19333		    ;   true
19334		    )
19335		)
19336	      ),
19337	      'detach_known/1_1_$special_float/1___1'(G, A)
19338	    ),
19339	    'known/1_1_$special_fail/0___0__8__0__32'(H)
19340	;   'known/1_1_$special_fail/0___0__8__0__32'(H)
19341	).
19342'known/1_1_$special_fail/0___0__8' :-
19343	'known/1_1_$special_fail/0___0__9'.
19344'known/1_1_$special_fail/0___0__9' :-
19345	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
19346		  A), !,
19347	'known/1_1_$special_fail/0___0__9__0__33'(A).
19348'known/1_1_$special_fail/0___0__9__0__33'([]) :-
19349	'known/1_1_$special_fail/0___0__10'.
19350'known/1_1_$special_fail/0___0__9__0__33'([A|H]) :-
19351	(   A=suspension(_, active, _, _, _, _)
19352	->  ( A=suspension(_, _, _, _, _, B),
19353	      setarg(2, A, removed),
19354	      term_variables(B, G),
19355	      ( arg(5, A, C),
19356		(   var(C)
19357		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
19358			      D),
19359		    D=[_|E],
19360		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
19361			     E),
19362		    (   E=[F|_]
19363		    ->  setarg(5, F, _)
19364		    ;   true
19365		    )
19366		;   C=[_, _|E],
19367		    setarg(2, C, E),
19368		    (   E=[F|_]
19369		    ->  setarg(5, F, C)
19370		    ;   true
19371		    )
19372		)
19373	      ),
19374	      'detach_known/1_1_$special_number/1___1'(G, A)
19375	    ),
19376	    'known/1_1_$special_fail/0___0__9__0__33'(H)
19377	;   'known/1_1_$special_fail/0___0__9__0__33'(H)
19378	).
19379'known/1_1_$special_fail/0___0__9' :-
19380	'known/1_1_$special_fail/0___0__10'.
19381'known/1_1_$special_fail/0___0__10' :-
19382	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
19383		  A), !,
19384	'known/1_1_$special_fail/0___0__10__0__34'(A).
19385'known/1_1_$special_fail/0___0__10__0__34'([]) :-
19386	'known/1_1_$special_fail/0___0__11'.
19387'known/1_1_$special_fail/0___0__10__0__34'([A|I]) :-
19388	(   A=suspension(_, active, _, _, _, _, _)
19389	->  ( A=suspension(_, _, _, _, _, B, C),
19390	      setarg(2, A, removed),
19391	      term_variables(term(B, C), H),
19392	      ( arg(5, A, D),
19393		(   var(D)
19394		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
19395			      E),
19396		    E=[_|F],
19397		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
19398			     F),
19399		    (   F=[G|_]
19400		    ->  setarg(5, G, _)
19401		    ;   true
19402		    )
19403		;   D=[_, _|F],
19404		    setarg(2, D, F),
19405		    (   F=[G|_]
19406		    ->  setarg(5, G, D)
19407		    ;   true
19408		    )
19409		)
19410	      ),
19411	      'detach_known/1_1_$special_=\\=/2___2'(H, A)
19412	    ),
19413	    'known/1_1_$special_fail/0___0__10__0__34'(I)
19414	;   'known/1_1_$special_fail/0___0__10__0__34'(I)
19415	).
19416'known/1_1_$special_fail/0___0__10' :-
19417	'known/1_1_$special_fail/0___0__11'.
19418'known/1_1_$special_fail/0___0__11' :-
19419	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
19420		  A), !,
19421	'known/1_1_$special_fail/0___0__11__0__35'(A).
19422'known/1_1_$special_fail/0___0__11__0__35'([]) :-
19423	'known/1_1_$special_fail/0___0__12'.
19424'known/1_1_$special_fail/0___0__11__0__35'([A|H]) :-
19425	(   A=suspension(_, active, _, _, _)
19426	->  ( A=suspension(_, _, _, _, B),
19427	      setarg(2, A, removed),
19428	      term_variables(B, G),
19429	      ( arg(4, A, C),
19430		(   var(C)
19431		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
19432			      D),
19433		    D=[_|E],
19434		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
19435			     E),
19436		    (   E=[F|_]
19437		    ->  setarg(4, F, _)
19438		    ;   true
19439		    )
19440		;   C=[_, _|E],
19441		    setarg(2, C, E),
19442		    (   E=[F|_]
19443		    ->  setarg(4, F, C)
19444		    ;   true
19445		    )
19446		)
19447	      ),
19448	      'detach_known/1_1_$special_\\+/1___1'(G, A)
19449	    ),
19450	    'known/1_1_$special_fail/0___0__11__0__35'(H)
19451	;   'known/1_1_$special_fail/0___0__11__0__35'(H)
19452	).
19453'known/1_1_$special_fail/0___0__11' :-
19454	'known/1_1_$special_fail/0___0__12'.
19455'known/1_1_$special_fail/0___0__12' :-
19456	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
19457		  A), !,
19458	'known/1_1_$special_fail/0___0__12__0__36'(A).
19459'known/1_1_$special_fail/0___0__12__0__36'([]) :-
19460	'known/1_1_$special_fail/0___0__13'.
19461'known/1_1_$special_fail/0___0__12__0__36'([A|J]) :-
19462	(   A=suspension(_, active, _, _, _, _, _)
19463	->  ( A=suspension(_, _, _, _, B, C, D),
19464	      setarg(2, A, removed),
19465	      term_variables(term(B, C, D), I),
19466	      ( arg(4, A, E),
19467		(   var(E)
19468		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
19469			      F),
19470		    F=[_|G],
19471		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
19472			     G),
19473		    (   G=[H|_]
19474		    ->  setarg(4, H, _)
19475		    ;   true
19476		    )
19477		;   E=[_, _|G],
19478		    setarg(2, E, G),
19479		    (   G=[H|_]
19480		    ->  setarg(4, H, E)
19481		    ;   true
19482		    )
19483		)
19484	      ),
19485	      'detach_known/1_1_$special_functor/3___3'(I, A)
19486	    ),
19487	    'known/1_1_$special_fail/0___0__12__0__36'(J)
19488	;   'known/1_1_$special_fail/0___0__12__0__36'(J)
19489	).
19490'known/1_1_$special_fail/0___0__12' :-
19491	'known/1_1_$special_fail/0___0__13'.
19492'known/1_1_$special_fail/0___0__13' :-
19493	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
19494		  A), !,
19495	'known/1_1_$special_fail/0___0__13__0__37'(A).
19496'known/1_1_$special_fail/0___0__13__0__37'([]) :-
19497	'known/1_1_$special_fail/0___0__14'.
19498'known/1_1_$special_fail/0___0__13__0__37'([A|I]) :-
19499	(   A=suspension(_, active, _, _, _, _, _)
19500	->  ( A=suspension(_, _, _, _, _, B, C),
19501	      setarg(2, A, removed),
19502	      term_variables(term(B, C), H),
19503	      ( arg(5, A, D),
19504		(   var(D)
19505		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
19506			      E),
19507		    E=[_|F],
19508		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
19509			     F),
19510		    (   F=[G|_]
19511		    ->  setarg(5, G, _)
19512		    ;   true
19513		    )
19514		;   D=[_, _|F],
19515		    setarg(2, D, F),
19516		    (   F=[G|_]
19517		    ->  setarg(5, G, D)
19518		    ;   true
19519		    )
19520		)
19521	      ),
19522	      'detach_known/1_1_$special_\\=/2___2'(H, A)
19523	    ),
19524	    'known/1_1_$special_fail/0___0__13__0__37'(I)
19525	;   'known/1_1_$special_fail/0___0__13__0__37'(I)
19526	).
19527'known/1_1_$special_fail/0___0__13' :-
19528	'known/1_1_$special_fail/0___0__14'.
19529'known/1_1_$special_fail/0___0__14' :-
19530	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
19531		  A), !,
19532	'known/1_1_$special_fail/0___0__14__0__38'(A).
19533'known/1_1_$special_fail/0___0__14__0__38'([]) :-
19534	'known/1_1_$special_fail/0___0__15'.
19535'known/1_1_$special_fail/0___0__14__0__38'([A|I]) :-
19536	(   A=suspension(_, active, _, _, _, _)
19537	->  ( A=suspension(_, _, _, _, B, C),
19538	      setarg(2, A, removed),
19539	      term_variables(term(B, C), H),
19540	      ( arg(4, A, D),
19541		(   var(D)
19542		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
19543			      E),
19544		    E=[_|F],
19545		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
19546			     F),
19547		    (   F=[G|_]
19548		    ->  setarg(4, G, _)
19549		    ;   true
19550		    )
19551		;   D=[_, _|F],
19552		    setarg(2, D, F),
19553		    (   F=[G|_]
19554		    ->  setarg(4, G, D)
19555		    ;   true
19556		    )
19557		)
19558	      ),
19559	      'detach_known/1_1_$special_=/2___2'(H, A)
19560	    ),
19561	    'known/1_1_$special_fail/0___0__14__0__38'(I)
19562	;   'known/1_1_$special_fail/0___0__14__0__38'(I)
19563	).
19564'known/1_1_$special_fail/0___0__14' :-
19565	'known/1_1_$special_fail/0___0__15'.
19566'known/1_1_$special_fail/0___0__15' :-
19567	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
19568		  A), !,
19569	'known/1_1_$special_fail/0___0__15__0__40'(A).
19570'known/1_1_$special_fail/0___0__15__0__40'([]) :-
19571	'known/1_1_$special_fail/0___0__16'.
19572'known/1_1_$special_fail/0___0__15__0__40'([A|I]) :-
19573	(   A=suspension(_, active, _, _, _, _, _)
19574	->  ( A=suspension(_, _, _, _, _, B, C),
19575	      setarg(2, A, removed),
19576	      term_variables(term(B, C), H),
19577	      ( arg(5, A, D),
19578		(   var(D)
19579		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
19580			      E),
19581		    E=[_|F],
19582		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
19583			     F),
19584		    (   F=[G|_]
19585		    ->  setarg(5, G, _)
19586		    ;   true
19587		    )
19588		;   D=[_, _|F],
19589		    setarg(2, D, F),
19590		    (   F=[G|_]
19591		    ->  setarg(5, G, D)
19592		    ;   true
19593		    )
19594		)
19595	      ),
19596	      'detach_known/1_1_$special_\\==/2___2'(H, A)
19597	    ),
19598	    'known/1_1_$special_fail/0___0__15__0__40'(I)
19599	;   'known/1_1_$special_fail/0___0__15__0__40'(I)
19600	).
19601'known/1_1_$special_fail/0___0__15' :-
19602	'known/1_1_$special_fail/0___0__16'.
19603'known/1_1_$special_fail/0___0__16' :-
19604	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
19605		  A), !,
19606	'known/1_1_$special_fail/0___0__16__0__41'(A).
19607'known/1_1_$special_fail/0___0__16__0__41'([]) :-
19608	'known/1_1_$special_fail/0___0__17'.
19609'known/1_1_$special_fail/0___0__16__0__41'([A|I]) :-
19610	(   A=suspension(_, active, _, _, _, _, _)
19611	->  ( A=suspension(_, _, _, _, _, B, C),
19612	      setarg(2, A, removed),
19613	      term_variables(term(B, C), H),
19614	      ( arg(5, A, D),
19615		(   var(D)
19616		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
19617			      E),
19618		    E=[_|F],
19619		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
19620			     F),
19621		    (   F=[G|_]
19622		    ->  setarg(5, G, _)
19623		    ;   true
19624		    )
19625		;   D=[_, _|F],
19626		    setarg(2, D, F),
19627		    (   F=[G|_]
19628		    ->  setarg(5, G, D)
19629		    ;   true
19630		    )
19631		)
19632	      ),
19633	      'detach_known/1_1_$special_==/2___2'(H, A)
19634	    ),
19635	    'known/1_1_$special_fail/0___0__16__0__41'(I)
19636	;   'known/1_1_$special_fail/0___0__16__0__41'(I)
19637	).
19638'known/1_1_$special_fail/0___0__16' :-
19639	'known/1_1_$special_fail/0___0__17'.
19640'known/1_1_$special_fail/0___0__17' :-
19641	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
19642		  A), !,
19643	'known/1_1_$special_fail/0___0__17__0__46'(A).
19644'known/1_1_$special_fail/0___0__17__0__46'([]) :-
19645	'known/1_1_$special_fail/0___0__18'.
19646'known/1_1_$special_fail/0___0__17__0__46'([A|I]) :-
19647	(   A=suspension(_, active, _, _, _, _, _)
19648	->  ( A=suspension(_, _, _, _, _, B, C),
19649	      setarg(2, A, removed),
19650	      term_variables(term(B, C), H),
19651	      ( arg(5, A, D),
19652		(   var(D)
19653		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
19654			      E),
19655		    E=[_|F],
19656		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
19657			     F),
19658		    (   F=[G|_]
19659		    ->  setarg(5, G, _)
19660		    ;   true
19661		    )
19662		;   D=[_, _|F],
19663		    setarg(2, D, F),
19664		    (   F=[G|_]
19665		    ->  setarg(5, G, D)
19666		    ;   true
19667		    )
19668		)
19669	      ),
19670	      'detach_known/1_1_$special_=</2___2'(H, A)
19671	    ),
19672	    'known/1_1_$special_fail/0___0__17__0__46'(I)
19673	;   'known/1_1_$special_fail/0___0__17__0__46'(I)
19674	).
19675'known/1_1_$special_fail/0___0__17' :-
19676	'known/1_1_$special_fail/0___0__18'.
19677'known/1_1_$special_fail/0___0__18' :-
19678	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
19679		  A), !,
19680	'known/1_1_$special_fail/0___0__18__0__47'(A).
19681'known/1_1_$special_fail/0___0__18__0__47'([]) :-
19682	'known/1_1_$special_fail/0___0__19'.
19683'known/1_1_$special_fail/0___0__18__0__47'([A|I]) :-
19684	(   A=suspension(_, active, _, _, _, _, _)
19685	->  ( A=suspension(_, _, _, _, _, B, C),
19686	      setarg(2, A, removed),
19687	      term_variables(term(B, C), H),
19688	      ( arg(5, A, D),
19689		(   var(D)
19690		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
19691			      E),
19692		    E=[_|F],
19693		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
19694			     F),
19695		    (   F=[G|_]
19696		    ->  setarg(5, G, _)
19697		    ;   true
19698		    )
19699		;   D=[_, _|F],
19700		    setarg(2, D, F),
19701		    (   F=[G|_]
19702		    ->  setarg(5, G, D)
19703		    ;   true
19704		    )
19705		)
19706	      ),
19707	      'detach_known/1_1_$special_=:=/2___2'(H, A)
19708	    ),
19709	    'known/1_1_$special_fail/0___0__18__0__47'(I)
19710	;   'known/1_1_$special_fail/0___0__18__0__47'(I)
19711	).
19712'known/1_1_$special_fail/0___0__18' :-
19713	'known/1_1_$special_fail/0___0__19'.
19714'known/1_1_$special_fail/0___0__19' :-
19715	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
19716		  A), !,
19717	'known/1_1_$special_fail/0___0__19__0__50'(A).
19718'known/1_1_$special_fail/0___0__19__0__50'([]) :-
19719	'known/1_1_$special_fail/0___0__20'.
19720'known/1_1_$special_fail/0___0__19__0__50'([A|H]) :-
19721	(   A=suspension(_, active, _, _, _)
19722	->  ( A=suspension(_, _, _, _, B),
19723	      setarg(2, A, removed),
19724	      term_variables(B, G),
19725	      ( arg(4, A, C),
19726		(   var(C)
19727		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
19728			      D),
19729		    D=[_|E],
19730		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
19731			     E),
19732		    (   E=[F|_]
19733		    ->  setarg(4, F, _)
19734		    ;   true
19735		    )
19736		;   C=[_, _|E],
19737		    setarg(2, C, E),
19738		    (   E=[F|_]
19739		    ->  setarg(4, F, C)
19740		    ;   true
19741		    )
19742		)
19743	      ),
19744	      'detach_known/1_1_$default___1'(G, A)
19745	    ),
19746	    'known/1_1_$special_fail/0___0__19__0__50'(H)
19747	;   'known/1_1_$special_fail/0___0__19__0__50'(H)
19748	).
19749'known/1_1_$special_fail/0___0__19' :-
19750	'known/1_1_$special_fail/0___0__20'.
19751'known/1_1_$special_fail/0___0__20' :-
19752	B=suspension(A, active, _),
19753	'chr gen_id'(A),
19754	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
19755		  C),
19756	D=[B|C],
19757	b_setval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
19758		 D),
19759	(   C=[E|_]
19760	->  setarg(3, E, D)
19761	;   true
19762	).
19763:- (multifile chr:'$chr_module'/1).19764chr:'$chr_module'(guard_entailment)